Code 39, czyli kod kreskowy 39 (kod 39, Code 3 of 9, USD-3), to jeden z najstarszych kodów alfanumerycznych 1D. Zapisuje wielkie litery, cyfry i kilka znaków specjalnych, a odczyta go praktycznie każdy czytnik. Nadal jest standardem w wojsku USA, przemyśle motoryzacyjnym i opiece zdrowotnej.
Poniżej wyjaśniamy, jak zbudowany jest kod 39, czym jest Code 39 Extended i jak policzyć opcjonalną sumę kontrolną modulo 43.
W tym artykule omówimy:
- Co to jest Code 39?
- Budowa kodu 39
- Code 39 Extended – pełny ASCII
- Suma kontrolna modulo 43
- Zastosowanie Code 39
Co to jest Code 39?
Code 39 opracowali w 1974 roku David Allais i Ray Stevens z firmy Intermec. W 1981 roku Departament Obrony USA przyjął go jako standard oznaczania dostaw (LOGMARS), a amerykański przemysł motoryzacyjny – w normach AIAG do znakowania części.
Kod ma zmienną długość i 43 znaki: cyfry 0–9, wielkie litery A–Z, spację oraz - . $ / + %. Gwiazdka (*) to znak startu i stopu. Kod jest samosprawdzający: pojedynczy źle odczytany element nie da innego, poprawnego znaku, dlatego suma kontrolna jest opcjonalna.
Budowa kodu 39
- Każdy znak to 9 elementów – 5 kresek i 4 przerwy – z których 3 są szerokie (stąd nazwa „3 z 9”). Szeroki element jest 2–3 razy szerszy od wąskiego.
- Odstęp między znakami – wąska przerwa. Code 39 to kod dyskretny, więc łatwo go wydrukować nawet na prostych drukarkach.
- Znak startu i stopu (*) – ten sam znak na początku i na końcu kodu.
- Strefa ciszy – jasny margines po obu stronach kodu (co najmniej 10 modułów).
Code 39 ma niską gęstość – jeden znak zajmuje 13–16 modułów. Gęstsze kody to kod 93 (ten sam zestaw znaków, o jedną trzecią krótszy) i kod kreskowy 128.
Code 39 Extended – pełny ASCII
Odmiana Code 39 Extended (Full ASCII) zapisuje wszystkie 128 znaków ASCII, w tym małe litery. Robi to parami zwykłych znaków: np. „+A” to „a”, a „%U” to znak zerowy. Czytnik musi mieć włączony tryb Full ASCII – inaczej zwróci pary znaków zamiast małych liter.
Na Code 39 opierają się kody farmaceutyczne: włoski Code 32 i niemiecki PZN. Nie myl ich z kodem Pharmacode, który służy do kontroli opakowań na linii pakującej.
Suma kontrolna modulo 43
Gdy system wymaga sumy kontrolnej (Code 39 mod 43), liczysz ją tak:
- Każdy znak ma wartość: cyfry 0–9 = 0–9, litery A–Z = 10–35, a dalej - = 36, . = 37, spacja = 38, $ = 39, / = 40, + = 41, % = 42.
- Zsumuj wartości wszystkich znaków danych (bez gwiazdek).
- Podziel sumę przez 43 – reszta to wartość znaku kontrolnego, który dopisuje się przed znakiem stopu.
Przykład dla CODE39: C = 12, O = 24, D = 13, E = 14, 3 = 3, 9 = 9 – suma 75, a 75 mod 43 = 32, czyli litera W. Pełny kod to *CODE39W*.
Czy wiesz, że...
- Code 39 powstał w 1974 roku w firmie Intermec – to jeden z najstarszych kodów kreskowych w użyciu.
- Nazwa „3 z 9” oznacza, że 3 z 9 elementów każdego znaku są szerokie.
- Gwiazdka nie jest częścią danych – to znak startu i stopu, często drukowany pod kodem.
Zastosowanie Code 39
- Wojsko i administracja USA – oznaczanie dostaw (LOGMARS).
- Motoryzacja – etykiety części i opakowań według norm AIAG.
- Opieka zdrowotna – standard HIBC do znakowania wyrobów medycznych, etykiety próbek i dokumentów.
- Przemysł i magazyn – numery części, lokalizacje i identyfikatory pracowników z literami.
Na produktach w sklepie stosuje się kod EAN, a w nowych systemach logistycznych zwykle Code 128 – Code 39 zostaje tam, gdzie wymaga go norma branżowa albo istniejące etykiety. Gdy na etykiecie trzeba zmieścić więcej danych, zamiast kodu 1D stosuje się kod QR albo Data Matrix.
Code 39 utworzysz za darmo – generator kodu kreskowego HDWR ma Code 39 i jego wersję z pełnym zestawem ASCII (Code 39 Extended), a odczytasz go każdym czytnikiem kodów 1D i 2D.
Drukujesz albo skanujesz kody 39?
Sprzęt HDWR do kodów kreskowych – czytniki odczytają Code 39 na częściach i etykietach magazynowych, a drukarka termiczna wydrukuje etykiety bez tuszu i tonera.
Podsumowanie
Code 39 to prosty, samosprawdzający kod alfanumeryczny z 43 znakami, w którym każdy znak ma 9 elementów, w tym 3 szerokie. Ma odmianę Extended z pełnym ASCII i opcjonalną sumę kontrolną modulo 43. Jest standardem w wojsku USA, motoryzacji (AIAG) i medycynie (HIBC).

