Opis

Code 93 (czasami zwany Code 9 z 3 - ang. "3 of 9 Code" i "USD-3") został zaprojektowany w celu udostępnienia kodu o większej gęstości i większym bezpieczeństwie niż pokrewny Code 39.
Jest to kod ciągły o większej gęstości. Długość kodu może być zmienna. Koduje wszystkie wielkie litery, cyfry i kilka dodatkowych znaków.
Istnieje także rozszerzenie: Code 93 extended. Kod ten umożliwia kodowanie znaków ASCII(0)-ASCII(127). W tym celu używane są specjalne znaki przełączające tryb na ASCII 128. Znakami tymi są: ($), (/), (%) i (+). Znaki te są używane z pozostałymi znakami i dzięki temu można uzyskać wszystkie kody ASCII 128.
Dla przykładu jeśli chcemy zakodować małą literę 'b', to musimy użyć kombinacji "(+)B", gdzie (+) jest specjalnym znakiem przełączającym.

Budowa

Struktura Code 93
  1. Znak start
  2. Zmiennej długości kod
  3. Dwie sumy kontrolne ('C' i 'K')
  4. Znak stop
Poniżej znajduje się tablica z kodami znaków.
 
  Znak Wartość    Znak Wartość     Znak Wartość     Znak Wartość
   0     0         C    12           O    24          -    36      
   1     1         D    13           P    25          .    37
   2     2         E    14           Q    26        space  38 
   3     3         F    15           R    27          $    39
   4     4         G    16           S    28          /    40
   5     5         H    17           T    29          +    41
   6     6         I    18           U    30          %    42
   7     7         J    19           V    31         ($)   43
   8     8         K    20           W    32         (%)   44
   9     9         L    21           X    33         (/)   45
   A    10         M    22           Y    34         (+)   46
   B    11         N    23           Z    35       
Znaki ($), (%), (/) i (+) są specjalnymi znakami używanymi do kodowania wszystkich 128 znaków ASCII (Code 93 extended).
W Code 93 cztery znaki ('$', '%', '/', '+') są używane opcjonalnie do kodowania wszystkich 128 znaków ASCII. Nie ma jednak żadnego sposobu aby odróżnić kiedy znaki te są używane jako znaki przełączenia na tryb ASCII 128, a kiedy są używane do reprezentowania znaków '$', '%', '/' i '+'. W Code 93 ten problem został rozwiązany w ten sposób, że znaki '$', '%', '/' i '+' służą do przełączania na tryb ASCII 128.

Cyfra kontrolna

Code 93 zawsze zawiera dwie sumy kontrolne: 'C' i 'K'. Występują one za kodowaną informacją, a przed znakiem stop. Sposób obliczania sumy kontrolnej 'C' wraz z przykładem dla "Code93":
  1. Przypisz wagi znakom zaczynając od prawej strony. Pierwszy znak będzie miał wagę 1, drugi znak od prawej strony będzie miał wagę 2, trzeci - 3, i tak aż osiągnie się wartość 20. Po osiągnięciu wartości 20, następna przypisana waga będzie miała wartość 1, kolejna 2 itd.

    Kod C O D E 9 3
    Wartość 12 24 13 14  9   3 
    Waga 6 5 4 3 2 1
  2. Przemnóż wartości znaków przez przypisane im wagi i zsumuj to. 12*6 + 24*5 + 13*4 + 14*3 + 9*2 + 3*1 = 307
  3. Oblicz resztę z dzielenia wyniku otrzymanego w poprzednim punkcie przez 47. 307 mod 47 = 25
  4. Jako suma kontrolna zapisuje się znak, którego wartość jest równa wynikowi z punktu 3. 25 => P
Kod pod dodaniu sumy kontrolnej 'C' będzie miał postać: Code93P
Sumę kontrolną 'K' oblicza się analogicznie jak 'C'. Różnica jest tylko taka, że kod jest dłuższy o jeden znak (cyfra kontrolna 'C' dodana na koniec) oraz wagi są z przedziału od 1 do 15.
Sposób obliczania sumy kontrolnej 'K' wraz z przykładem dla "Code93P":
  1. Przypisz wagi znakom zaczynając od prawej strony. Pierwszy znak będzie miał wagę 1, drugi znak od prawej strony będzie miał wagę 2, trzeci - 3, i tak aż osiągnie się wartość 15. Po osiągnięciu wartości 15, następna przypisana waga będzie miała wartość 1, kolejna 2 itd.

    Kod C O D E 9 3 P
    Wartość 12 24 13 14  9   3  25
    Waga 7 6 5 4 3 2 1
  2. Przemnóż wartości znaków przez przypisane im wagi i zsumuj to.
    12*7 + 24*6 + 13*5 + 14*4 + 9*3 + 3*2 + 25*1 = 407
  3. Oblicz resztę z dzielenia wyniku otrzymanego w poprzednim punkcie przez 47.
    407 mod 47 = 31
  4. Jako suma kontrolna zapisuje się znak, którego wartość jest równa wynikowi z punktu 3. 31 => V
Kod po dodaniu dwóch sum kontrolnych będzie miał postać: Code93PV

Zastosowanie

Kod ten ma takie samo zastosowanie jak Code 39 jeśli potrzebne jest większe zagęszczenie. Używany jest w przemyśle metalurgicznym, przemyśle chemicznym, w transporcie lotniczym, a także w logistyce wewnątrz przedsiębiorstw.

Przykład


Przykład wygenerował program HDF® BarCode System.