SYMBOLIKA KODU KRESKOWEGO EAN-13Cyfra Kontrolna Wagi lub Ceny | Tablica Kodowania | Tablica Parzystości | Przykład | Przykład kodu w Turbo Paskalu Historia kodu EAN-13System wywodzi się z USA i został opracowany przez Uniform Code Council, Inc. w 1973 roku. UCC przyjęło wówczas dwunastocyfrowy numer i pierwsze kody kreskowe na otwartym rynku zaczęto skanować w 1974 roku. Po sukcesie systemu UPC, utworzono European Article Numbering Association w 1977 roku, z zadaniem opracowania kompatybilnego systemu, który mógłby być stosowany poza Ameryką Północną. System EAN został pomyślany jako odmiana systemu UCC i zasadniczo wykorzystuje numery trzynastocyfrowe. Kod EAN-13 został zrobiony przez International Article Numbering Association (IANA) na podstawie standardu UPC-A, przez rozszerzenie z jednej do dwóch cyfr systemu numerowego. Ten system numerowania stał się de facto kodem kraju. Ale ze względu na liczbę państw na świecie konieczne było w wielu przypadkach wydłużenie kodu kraju do 3. cyfr, i tak Polska ma kod 590. Wprowadzono też kody nie oznaczające kraju, np. kod 290 oznacza towary ważone w sklepach. Wizualną różnicą między kodem kreskowym EAN-13 i kodem UPC-A jest to, że cyfra kontrolna jest umieszczona pod kodem kreskowym zamiast na prawo od niego, ale nie powoduje to różnic w samym kodowaniu. Weźmy dla przykładu, kod UPC-A "075678164125".
Ten sam kod wyrażony jako EAN-13, byłby "0075678164125".
Jak można zauważyć dodano "0" na początku kodu.
Porównajmy oryginalny kod UPC-A (górny) z kodem EAN-13 (dolny): Na pierwszy rzut oka oba kody kreskowe wyglądają inaczej. W kodzie UPC-A
występują cyfry po prawej i po lewej od kodu kreskowego (cyfra 0 kodu kraju
i cyfra kontrolna 5), a pod paskami są dwie grupy po 5 cyfr (kod wytwórcy
i kod produktu). W symbolu EAN-13, nie występuje cyfra kontrolna na prawo
od 'kodu kreskowego', oraz cyfry pod 'kodem kreskowym' składają się z dwóch
grup po 6 cyfr każda. Składniki kodu kreskowego EAN-13Typowy kod kreskowy EAN-13 wygląda tak: Kod liczbowy EAN-13 składa się z czterech obszarów: 1) system numerowania,
2) kod wytwórcy, 3) kod produktu, 4) cyfra kontrolna.
Pierwsza cyfra systemu numerowego jest drukowana na lewo od kodu kreskowego,
a druga cyfra systemu jest drukowana jako pierwsza cyfra 6-cio cyfrowej grupy
poniżej lewej części kodu kreskowego, kod wytwórcy daje następne cyfry tej
grupy. Kod produktu stanowi pierwsze 5 cyfr 'prawej' grupy poniżej kodu
kreskowego, a cyfra kontrolna stanowi 6-tą cyfrę tej grupy. System numerowy: system numerowy składa się z dwóch cyfr (czasami trzech cyfr) identyfikujących władze kraju (lub regionu gospodarczego) nadające kod wytwórcy. Jakikolwiek system numerowy zaczynający się od cyfry 0 jest kodem liczbowym UPC-A. Zatwierdzone systemy numerowe podano w Tabeli systemów numerowych. Kod wytwórcy: Kod wytwórcy jest unikalnym kodem przydzielonym
każdemu wytwórcy przez 'władzę numerową' właściwą dla systemu numerowego.
Wszystkie produkty produkowane przez daną firmę będą używały tego samego
kodu wytwórcy oraz różnych kodów produktu.
Uwaga:
Na podstawie numeru EAN-13 można też zidentyfikować polskiego producenta
na stronie gepir.pl/
(pod warunkiem, że przeglądarka obsługuje XML). Kod produktu: Kod produktu jest unikalnym kodem przydzielonym przez wytwórcę. W przeciwieństwie do kodu wytwórcy, wytwórca ma wolną rękę przy przydzielaniu kodu produktu do swoich wyrobów, bez konsultacji z innymi wytwórcami. Ponieważ EAN gwarantuje, że pierwsza część kodu jest unikalna, to wytwórca musi się tylko upewnić, że do nowych produktów nie używa kodów produktu używanych wcześniej do starych produktów. Cyfra kontrolna: Cyfra kontrolna jest dodatkową cyfrą w numerze używaną do sprawdzenia, że kod kreskowy został prawidłowo zeskanowany. Ponieważ skanowanie może dać błędne dane z powodu zmiennej prędkości skanowania, błędów w druku kodu i wielu innych przyczyn, przydatne może być sprawdzenie, że pozostałe cyfry kodu kreskowego zostały poprawnie wczytane. Cyfra kontrolna jest obliczona na podstawie pozostałych cyfr kodu kreskowego. Jeśli cyfra kontrolna obliczona w oparciu o pozostałe cyfry kodu kreskowego ma wartość taką jak zeskanowana cyfra kontrolna, to jest duże prawdopodobieństwo, że kod kreskowy został poprawnie zeskanowany. Metoda obliczania cyfry kontrolnej będzie pokazana dalej na stronie. Kodowanie EAN-13 (i UPC-A)Kodowanie kodu kreskowego EAN-13 (i UPC-A) jest względnie nieskomplikowane.
Aby zakodować ciąg cyfr jako kod kreskowy EAN-13, najpierw należy obliczyć cyfrę
kontrolną dla danego ciągu, a następnie całość, włączając w to cyfrę kontrolną
może być zamieniona w sekwencję czarnych i białych pasków. Służy do tego wiele
komercyjnych programów, ale można też skorzystać z darmowego i prostego
generatora kodów kreskowych EAN-13 on-line |
Obliczanie Cyfry KontrolnejCyfra kontrolna umożliwia weryfikację
poprawności wczytania ciągu cyfr. Kroki obliczenia cyfry kontrolnej są następujące:
Ilustruje to poniższy przykład dla kodu 0075678164125. Faktycznie cyfra kontrolna jest znana i wynosi "5". To znaczy, że cyfrę kontrolną wyliczamy dla 007567816412 (odrzuciliśmy ostatni znak kodu). Oznacza to system numerowy "00", kod producenta "75678" i kod produktu "16412".
Sumując iloczyny wag i cyfr otrzymujemy
UWAGA: W oryginalnym opisie kodowania EAN-13 pierwszy znak z lewej
określany jest jako parzysty (ang. even) a drugi jako nieparzysty (ang. odd)
itd. wbrew zwykłej logice, ale ma to racjonalne wyjaśnienie. Możesz użyć poniższego 'kalkulatora' do obliczenia ostatniej cyfry kodu kreskowego EAN-13. Wprowadź pierwsze 12 znaków kodu, kliknij na guziku [Oblicz], a wtedy pojawi się obliczona cyfra kontrolna. Kalkulator wymaga włączonej obsługi języka JavaScript.
Numery GTIN-13 dla towarów o zmiennej ilości
Algorytm obliczania cyfry kontrolnej dla pola ceny i masyAlgorytm ten jest modyfikacją algorytmu Luhna. W jego oryginalnej wersji stosowanej np. do obliczeń cyfry kontrolnej w kartach kredytowych występowały mnożniki 12121212121212 itd.. Każdą cyfrę numeru mnoży sie przez 1 lub 2 i jeśli wyjdzie wynik dwucyfowy to dwie
cyfry dodaje się. W programach liczących wg algorytmu Luhna zamiast dodawania cyfr wyniku dwucyfrowego
stosuje się odjęcie 9 od wyniku mnożenia. Cyfrę kontrolną dla 5 cyfrowej grupy ceny i masy oblicza się w sposób następujący: ETAP 1. Obliczyć iloczyn ważony dla każdej z pięciu pozycji cyfr pola ceny lub masy.
Każda z pięciu pozycji ceny lub masy ma przydzielony współczynnik wagowy: 5+ 2- 5- 5+ 2-
Iloczyn cyfry 6 i współczynnika wagowego 2+ oznacza, że dana cyfra jest mnożona 6 * 2 = 12. Jeżeli wynik jest dwucyfrowy to do wyniku dodaje się liczbę dziesiątek wyniku. Czyli 12 + 1 = 13. Z tego wyniku bierze się tylko ostatnią cyfrę = 3. Iloczyn cyfry 6 i współczynnika wagowego 2- oznacza, że dana cyfra jest mnożona 6 * 2 = 12. Jeżeli wynik jest dwucyfrowy to od wyniku odejmuje się liczbę dziesiątek wyniku. Czyli 12 - 1 = 11. Z tego wyniku bierze się tylko ostatnią cyfrę = 1. Iloczyn cyfry 6 i współczynnika wagowego 5+ oznacza, że dana cyfra jest mnożona 6 * 5 = 30. Jeżeli wynik jest dwucyfrowy to do wyniku dodaje się liczbę dziesiątek wyniku. Czyli 30 + 3 = 33. Z tego wyniku bierze się tylko ostatnią cyfrę = 3. Iloczyn cyfry 6 i współczynnika wagowego 5- oznacza, że dana cyfra jest mnożona 6 * 5 = 30. Jeżeli wynik jest dwucyfrowy to od wyniku odejmuje się liczbę dziesiątek wyniku. Czyli 30 - 3 = 27. Z tego wyniku bierze się tylko ostatnią cyfrę = 7. W programach zwykle używa się gotowych tablic iloczynów ważonych jakie przedstawia tabela:
ETAP 2. Zsumować iloczyny ważone otrzymane w ETAPIE 1 ETAP 3. Znaleźć cyfrę, która po dodaniu do cyfry na miejscu jednostkowym, daje wynik 10. ETAP 4. W tabeli znaleźć cyfrę, której iloczyn ważony 5- jest taki
sam jak wynik ETAPU 3. Przykładowe obliczenie:
Powyższy algorytm przepisany z dokumentów GS1-Polska można trochę uprościć
przez zrobienie funkcji odwrotnej, która łączy ETAPY 3 i 4. Tak więc
Weryfikacja cyfry kontrolnej pola wagi lub ceny
Możesz użyć poniższego 'kalkulatora' do obliczenia cyfry kontrolnej pola wagi lub ceny kodu kreskowego EAN-13 z prefiksem 2. Wprowadź 5 znaków tego pola, kliknij na guziku [Oblicz], a wtedy pojawi się obliczona cyfra kontrolna. Kalkulator wymaga włączonej obsługi języka JavaScript.
Kodowanie kodu kreskowegoPo obliczeniu cyfry kontrolnej znamy cały kod cyfrowy, który musi być zakodowany w postaci kodu kreskowego. W przykładzie zakodujemy kod kreskowy EAN-13 dla wartości cyfrowej 0075678164125.
Paski kodu EAN-13 i UPC-A mają następującą strukturę:
Znaki zakodowane na lewo od środkowych pasków ochronnych traktowane są jako "lewe znaki" kodu podczas gdy wszystkie znaki kodowane po prawej od pasków środkowych są "prawymi znakami" symbolu. Pierwszy znak kodu EAN-13 (tzn. pierwszy znak systemu numerowego) jest 'wkodowany' w sekwencje 'parzystości' znaków lewej strony symbolu. Inaczej mówiąc, pierwszy znak kodu EAN-13 określa parzystości użyte do kodowania znaków lewej strony kodu kreskowego zgodnie z tablicą poniżej. UWAGA: Przy kodowaniu lewej strony, nieparzysty i parzysty są często określane jako 'character set A' (nieparzysty) i 'character set B' (parzysty). Tablica Kodowania Pasków EANTablica wskazuje jak kodować każdą cyfrę kodu kreskowego EAN-13 w zależności od położenia w lewej lub prawej połówce kodu kreskowego. W przypadku cyfry z 'lewej' połówki kodowanie zależy także od pierwszej cyfry kodu kraju (patrz Tablica Kodowania Parzystości poniżej).
SPOSTRZEŻENIA:
Tablica ParzystościPoniższa tablica (ang 'parity table') wskazuje sposób kodowania każdego znaku w lewej części kodu kreskowego. Wybór zależy od pierwszej cyfry kodu EAN. Na przykład, płyta CD ma kod EAN-13 5010304193150. W tym przypadku pierwsza cyfra kodu kraju jest "5", dlatego sposób kodowania powinien być oparty o numer 5 w tabeli poniżej:
SPOSTRZEŻENIA:
Ostatnie dwie tablice są kluczowe dla zrozumienia genialności kodowania EAN-13 tak aby uzyskać kompatybilność z istniejącymi paskami UPC-A. Rozważmy na moment pasek UPC-A. Jak poprzednio wspomnieliśmy, pasek UPC-A jest po prostu paskiem EAN-13 który ma pierwszą cyfrę kodu kraju jako 'domyślne' zero. Patrząc do Tablicy Parzystości powyżej, jest oczywiste że gdy pierwsza cyfra jest zero, to wszystkie znaki lewej strony kodu kreskowyego będą kodowane jako nieparzyste. Taki był oryginalny standard przyjęty dla UPC-A. Kody EAN-13 rozwinięto na bazie tego standardu i zdefiniowano "niezerowe" możliwości z innymi wzorcami parzystości. Czyni to UPC-A kompatybilne z EAN-13 (a także EAN-13 niekompatybilne z UPC-A). Na pocieszenie trzeba zaznaczyć, że współcześnie produkowane skanery same rozpoznają oba typy kodów oraz kilkanaście innych. Przykład kodowaniaW przykładzie zakodujmy kod cyfrowy 75 01031 31130. Po pierwsze obliczamy cyfrę kontrolną; korzystamy z kalkulatora podanego wcześniej lub liczymy na piechotę i dopisujemy '9' na końcu numeru. Widzimy, że pierwsza cyfra systemu numerowania (pierwsza z lewej cyfra w kodzie cyfrowym) wynosi '7'. Zaglądamy do Tablicy Parzystości dla cyfry '7', i widzimy, że parzystości dla kolejnych cyfr lewej połowy kodu cyfrowego powiny być 'N/P/N/P/N/P'. To oznacza, że druga cyfra systemu numerowego będzie kodowana przy użyciu 'lewy nieparzysty' z Tablicy Kodowania, kolejna cyfra będzie kodowana jako 'lewy parzysty', itd. Można więc zacząć składanie kodu kreskowego z następujących kawałków. W przykładzie używamy binarnego zapisu kodu kreskowego, który skleja się z kolejnych 'sekcji'.
W celu lepszego widzenia budowy kodu kreskowego, poniższy obrazek pokazuje kod kreskowy, ale każda cyfra i ciąg pasków kodu jest zaznaczona naprzemian zmieniającym się tłem. Nad kodem zaznaczono sekcje ponumerowane do 1 do 15, odpowiadające opisowi powyżej. Pamiętajmy, że '1' reprezentuje pasek, '0' reprezentuje przerwa. Można porównać sekwencje binarne sekcji z obrazem graficznym poniżej: Przykład kodu w Turbo PaskaluPoniższy programik produkuje sekwencję zerojedynkową dla wczytanego pełnego kodu EAN-13. Program nie sprawdza poprawności cyfry kontrolnej. W wyniku 0 oznacza wąski biały pasek tła, a 1 wąski czarny pasek nadruku.
Ciąg dalszy: Symbology Index | UPC-A | UPC-E | EAN-8 | Bookland UPC 2-Digit Supplement | UPC 5-Digit Supplement |