|
|
Kod kreskowy to graficzne odzwierciedlenie określonych znaków poprzez kombinację ciemnych i jasnych elementów, ustaloną według przyjętych reguł budowy danego kodu (symboliki). Rozróżnia się znaki kodujące dane oraz znaki pomocnicze, charakterystyczne dla danej symboliki.
Symbolika to opis zasad tworzenia poszczególnych rodzajów kodów, czyli sposobu, w jaki znaki pisma, czytelne wzrokowo, odwzorowane są poprzez jasne i ciemne elementy o różnej szerokości.
Symbol kodu kreskowego składa się z zestawu elementów, których struktura wynika z danej symboliki oraz ze znaków czytelnych wzrokowo, przedstawionych graficznie.
|
|
Code 128, jednowymiarowy kod kreskowy typu 4W, w którym występują paski o czterech różnych szerokościach.
|
|
Kodowane znaki: A: ASCII(0)-ASCII(95), B: ASCII(32)-ASCII(127), C: cyfry 0-9.
Długość kodu: zmienna.
|
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.
|
Poniżej przedstawiony jest sposób obliczania sumy kontrolnej wraz z przykładem obliczeń dla "Code 128"
- 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 |
- 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
- Oblicz resztę z dzielenia wartości otrzymanej w punkcie drugim przez 103.
1197 mod 103 = 64
- 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)"
|
|
Stosowany jest głównie do oznaczania urządzeń telekomunikacyjnych.
|
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 |
|
|
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 wygenerował program |
|