Opis

Kod Code 128 jest alfanumerycznym kodem o bardzo dużej gęstości. Ilość kodowanych znaków może być dowolna. Kodowane mogą być wszystkie 128 znaków ASCII. Kod ten zajmuje najmniej miejsca spośród kodów jednowymiarowych dla 6 lub więcej znaków.
Każdy kodowany znak składa się z 11 czarnych lub białych modułów. Znak stopu składa się z 13 modułów. 11 modułów składa się na trzy paski i trzy odstępy. Paski i odstępy mogą składać się z od 1 do 4 modułów.
Kod kreskowy Code 128 składa się z:
  • Cicha strefa (przynajmniej 10 razy szersza niż wąski pasek)
  • Znak start
  • Zmienna ilość danych
  • Suma kontrolna
  • Znak stop
  • Cicha strefa (przynajmniej 10 razy szersza niż wąski pasek)
Jest 106 różnych kombinacji ustawień pasków i odstępów. Każdej takiej kombinacji można przypisać jedno z trzech znaczeń. To znaczenie określa się poprzez jeden z trzech różnych znaków startowych. Znak startowy Code A pozwala na kodowanie wszystkich standardowych alfanumerycznych znaków plus znaki sterujące i specjalne znaki. Znak startowy Code B włącza wszystkie standardowe znaki alfanumeryczne plus małe litery oraz specjalne znaki. Znak startowy Code C obejmuje 100 par cyfr od 00 do 99 i może być używany do podwojenia gęstości kodowania danych numerycznych.
Wewnątrz kodu można zmienić zestaw kodowanych znaków na inny (A, B, C) stosując specjalne znaki CODE i SHIFT. Znak CODE zmienia zestaw znaków dla wszystkich kolejnych znaków w kodzie. Znak SHIFT zmienia zestaw znaków tylko dla następnego znaku i te zmiany są pomiędzy zestawami: Code A i Code B.
Kody FNC określają instrukcje dla czytnika kodów kreskowych. FNC 1 jest zarezerwowane dla przyszłego użycia. FNC 2 informuje czytnik, aby zgromadził dane i przesłać je z następnym kodem. FNC 3 jest zarezerwowany do inicjalizacji czytnika i innych funkcji czytnika. FNC 4 jest zarezerwowany dla przyszłych zastosowań.
Każdy znak ma wartość od 0 do 105. Ta wartość jest używana do obliczania sumy kontrolnej dla każdego kodu.

Suma kontrolna

Poniżej przedstawiony jest sposób obliczania sumy kontrolnej wraz z przykładem obliczeń dla "Code 128"
  1. Przypisz wagę do każdego znaku, której wartość odpowiada numerowi pozycji znaku w kodzie.

    Znak C o d e   1 2 8
    Waga 1 2 3 4 5 6 7 8
    Wartość 35 79 68 69 0 17 18 24
  2. Dla każdego znaku przemnóż jego wartość przez wagę i zsumuj wszystko. Dodaj wartość dla symbolu startowego. 1*35 + 2*79 + 3*68 + 4*69 + 5*0 + 6*17 + 7*18 + 8*24 + 104 = 1197
  3. Oblicz resztę z dzielenia wartości otrzymanej w punkcie drugim przez 103. 1197 mod 103 = 64
  4. Sumą kontrolną jest znak, którego wartość jest równa wynikowi z trzeciego punktu. ZNAK (64) = `
Kod wraz z sumą kontrolną ma więc postać: "(Start B)Code 128`(Stop)"

Tabela

Pierwsza kolumna zawiera wartości znaków. W następnych trzech są zestawy znaków: A, B, C. Kolejne cyfry w danej komórce z ostatniej kolumny oznaczają z ilu modułów składają się kolejne elementy (pasek - odstęp - pasek - odstęp - pasek - odstęp - pasek - odstęp)

Wartość Zestaw
Code A
Zestaw
Code B
Zestaw
Code C
Szerokość Pasek/Odstęp
P O P O P O
0 SPACE SPACE 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 I 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 4 1 1 1 3 1
103 Start A 2 1 1 4 1 2
104 Start B 2 1 1 2 1 4
105 Start C 2 1 1 2 3 2
106 Stop 2 3 3 1 1 1 2

Zastosowanie

Kod ten ma szerokie zastosowanie. Jest używany między innymi w magazynach, logistyce (opakowania transportowe), sprzedaży detalicznej (daty produkcji, okresy trwałości).

Przykład


Przykład wygenerował program HDF® BarCode System.