Kod 128 – Wikipedia, wolna encyklopedia

Przykład kodu Code 128-B

Kod 128 (code128) – alfanumeryczny jednowymiarowy kod kreskowy wysokiej rozdzielczości. Został stworzony do zakodowania 128 znaków ASCII, do kodowania używa się kreski i przerwy o czterech możliwych szerokościach, co czyni go zwartym kodem.

Kod 128 może być skanowany w każdym kierunku i nie ma ograniczeń co do długości samego kodu.

Każdy znak Kodu 128 składa się z 11 czarnych i białych modułów (wykorzystuje zatem 11 bitów), wyjątkiem jest znak Stop, który składa się z 13 modułów. 11 modułów musi tworzyć następujący schemat – Pasek Przerwa Pasek Przerwa Pasek Przerwa o długości od 1 do 4 modułów każdy (11 bitów daje 2048 możliwości, z czego 216 jest możliwych do wykorzystania – Code 128 wykorzystuje tylko 107)

Przykład: znak a = 10010110000 > (1)x1 (2)x0 (1)x1 (1)x0 (2)x1 (4)x0  >  1 2 1 1 2 4

Nie licząc znaku STOP, mamy do dyspozycji 106 kombinacji czarnych i białych modułów. Każda z tych kombinacji może być wykorzystana do określenia znaku w jednym z trzech zestawów znaków (Code Set A, B i C). Wybór konkretnego zestawu dokonujemy poprzez użycie odpowiedniego znaku startowego (START A – 103, START B – 104, START C – 105). Mamy również do dyspozycji specjalne znaki CODE i SHIFT. Pozwalają one na zmianę zestawu znaków w trakcie skanowania (CODE zmienia zestaw od danego momentu, SHIFT tylko dla następnego znaku). W zestawie znaków znajdują się także znaki funkcyjne (FNC) – FNC1 określa np. standard GS1-128.

Każdy znak ma wartość od 0 do 105, wartość ta jest wykorzystywana do obliczenia znaku kontrolnego.

Obliczanie znaku kontrolnego

[edytuj | edytuj kod]

Znak kontrolny jest resztą z dzielenia sumy znaku start i iloczynów wartości znaków i ich pozycji przez 103 (liczbę znaków możliwych do wykorzystania jako znak kontrolny). Dla tekstu Code 128 wygląda to następująco:

                              Wartość		    Suma 			      =====                 =====              Start Code B      104                   104 Pozycja 1              C       35         1 x 35 =    35 Pozycja 2              o       79         2 x 79 =   158 Pozycja 3              d       68         3 x 68 =   204 Pozycja 4              e       69         4 x 69 =   276 Pozycja 5                       0         5 x  0 =     0 Pozycja 6              1       17         6 x 17 =   102 Pozycja 7              2       18         7 x 18 =   126 Pozycja 8              8       24         8 x 24 =   192                                                     =====                                                     1197                                                     =====              1197 mod 103 = 64 

Znakiem kontrolnym jest znak z wartością 64 – jest to w tym przypadku `

Tablica znaków Kodu 128

[edytuj | edytuj kod]
War   Code A   Code B   Code C     Paski/ tość                                   Przerwy  0    spacja   spacja     00       2 1 2 2 2 2  1     !        !         01       2 2 2 1 2 2  2     "        "         02       2 2 2 2 2 1  3     #        #         03       1 2 1 2 2 3  4     $        $         04       1 2 1 3 2 2  5     %        %         05       1 3 1 2 2 2  6     &        &         06       1 2 2 2 1 3  7     '        '         07       1 2 2 3 1 2  8     (        (         08       1 3 2 2 1 2  9     )        )         09       2 2 1 2 1 3  10    *        *         10       2 2 1 3 1 2  11    +        +         11       2 3 1 2 1 2  12    ,        ,         12       1 1 2 2 3 2  13    -        -         13       1 2 2 1 3 2  14    .        .         14       1 2 2 2 3 1  15    /        /         15       1 1 3 2 2 2  16    0        0         16       1 2 3 1 2 2  17    1        1         17       1 2 3 2 2 1  18    2        2         18       2 2 3 2 1 1  19    3        3         19       2 2 1 1 3 2  20    4        4         20       2 2 1 2 3 1  21    5        5         21       2 1 3 2 1 2  22    6        6         22       2 2 3 1 1 2  23    7        7         23       3 1 2 1 3 1  24    8        8         24       3 1 1 2 2 2  25    9        9         25       3 2 1 1 2 2  26    :        :         26       3 2 1 2 2 1  27    ;        ;         27       3 1 2 2 1 2  28    <        <         28       3 2 2 1 1 2  29    =        =         29       3 2 2 2 1 1  30    >        >         30       2 1 2 1 2 3  31    ?        ?         31       2 1 2 3 2 1  32    @        @         32       2 3 2 1 2 1  33    A        A         33       1 1 1 3 2 3  34    B        B         34       1 3 1 1 2 3  35    C        C         35       1 3 1 3 2 1  36    D        D         36       1 1 2 3 1 3  37    E        E         37       1 3 2 1 1 3  38    F        F         38       1 3 2 3 1 1  39    G        G         39       2 1 1 3 1 3  40    H        H         40       2 3 1 1 1 3  41    I        I         41       2 3 1 3 1 1  42    J        J         42       1 1 2 1 3 3  43    K        K         43       1 1 2 3 3 1  44    L        L         44       1 3 2 1 3 1  45    M        M         45       1 1 3 1 2 3  46    N        N         46       1 1 3 3 2 1  47    O        O         47       1 3 3 1 2 1  48    P        P         48       3 1 3 1 2 1  49    Q        Q         49       2 1 1 3 3 1  50    R        R         50       2 3 1 1 3 1  51    S        S         51       2 1 3 1 1 3  52    T        T         52       2 1 3 3 1 1  53    U        U         53       2 1 3 1 3 1  54    V        V         54       3 1 1 1 2 3  55    W        W         55       3 1 1 3 2 1  56    X        X         56       3 3 1 1 2 1  57    Y        Y         57       3 1 2 1 1 3  58    Z        Z         58       3 1 2 3 1 1  59    [        [         59       3 3 2 1 1 1  60    \        \         60       3 1 4 1 1 1  61    ]        ]         61       2 2 1 4 1 1  62    ^        ^         62       4 3 1 1 1 1  63    _        _         63       1 1 1 2 2 4  64    NUL      `         64       1 1 1 4 2 2  65    SOH      a         65       1 2 1 1 2 4  66    STX      b         66       1 2 1 4 2 1  67    ETX      c         67       1 4 1 1 2 2  68    EOT      d         68       1 4 1 2 2 1  69    ENQ      e         69       1 1 2 2 1 4  70    ACK      f         70       1 1 2 4 1 2  71    BEL      g         71       1 2 2 1 1 4  72    BS       h         72       1 2 2 4 1 1  73    HT       i         73       1 4 2 1 1 2  74    LF       j         74       1 4 2 2 1 1  75    VT       k         75       2 4 1 2 1 1  76    FF       l         76       2 2 1 1 1 4  77    CR       m         77       4 1 3 1 1 1  78    SO       n         78       2 4 1 1 1 2  79    SI       o         79       1 3 4 1 1 1  80    DLE      p         80       1 1 1 2 4 2  81    DC1      q         81       1 2 1 1 4 2  82    DC2      r         82       1 2 1 2 4 1  83    DC3      s         83       1 1 4 2 1 2  84    DC4      t         84       1 2 4 1 1 2  85    NAK      u         85       1 2 4 2 1 1  86    SYN      v         86       4 1 1 2 1 2  87    ETB      w         87       4 2 1 1 1 2  88    CAN      x         88       4 2 1 2 1 1  89    EM       y         89       2 1 2 1 4 1  90    SUB      z         90       2 1 4 1 2 1  91    ESC      {         91       4 1 2 1 2 1  92    FS       |         92       1 1 1 1 4 3  93    GS       }         93       1 1 1 3 4 1  94    RS       ~         94       1 3 1 1 4 1  95    US       DEL       95       1 1 4 1 1 3  96    FNC 3    FNC 3     96       1 1 4 3 1 1  97    FNC 2    FNC 2     97       4 1 1 1 1 3  98    SHIFT    SHIFT     98       4 1 1 3 1 1  99    CODE C   CODE C    99       1 1 3 1 4 1  100   CODE B   FNC 4     CODE B   1 1 4 1 3 1  101   FNC 4    CODE A    CODE A   3 1 1 1 4 1  102   FNC 1    FNC 1     FNC 1    4 1 1 1 3 1  103   Start A  Start A   Start A  2 1 1 4 1 2  104   Start B  Start B   Start B  2 1 1 2 1 4  105   Start C  Start C   Start C  2 1 1 2 3 2  106   Stop     Stop      Stop     2 3 3 1 1 1 2 

Zapis

2 1 1 2 3 2

dla kodu START C oznacza po kolei:

czarny pasek o szer. 2, biały pasek o szer. 1, czarny pasek o szer. 1, biały pasek o szer. 2, czarny pasek o szer. 3, biały pasek o szer. 2,

Bibliografia

[edytuj | edytuj kod]

Linki zewnętrzne

[edytuj | edytuj kod]