Kody kreskowe są generowane w taki sposób, że bezpośrednie czytanie przez człowieka nie jest priorytetem. Nie przeszkadza nam to jednak poznać ich dokładny mechanizm. Proces zajmuje komputerowi zaledwie kilka milisekund, ale ten zwykły „pisk” kryje w sobie znaczną ilość informacji: kraj, nazwę firmy, produkt oraz końcową weryfikację mającą sprawdzić poprawność odczytu kodu.
Krótka historia kodu kreskowego
Podobnie jak wiele innych wynalazków, historia pierwszego kodu kreskowego przeznaczonego do powszechnego użytku konsumenckiego sięga późnych lat 40. Z jego stworzeniem wiąże się kilka nazwisk, ale na początku listy znajdują się Norman Joseph Woodland i Bernard Silver. Obaj opatentowali wstępną wersję opartą na okrągłym projekcie, która według samego Woodlanda była inspirowana kodem Morse’a.
Woodland ostatecznie trafił pod skrzydła IBM, które wykazało duże zainteresowanie tym systemem (nawet próbowało kupić patent), ale przyznało, że wymagana moc obliczeniowa nie była jeszcze dostępna. 70 lat później kody kreskowe widnieją na niemal wszystkim, co możesz sobie wyobrazić. Żywność, leki, narzędzia, ubrania… jeśli coś jest sprzedawane sztukowo, w opakowaniu lub na wagę, najprawdopodobniej zobaczysz na tym kod.
Jak działają kody kreskowe
A teraz magiczne pytanie… jak to działa? W jaki sposób laser wydobywa liczby z tak cienkich linii? Oczywiście, jeśli czytanie sprawia problem, zawsze możemy wprowadzić liczby ręcznie, ale wszystko zaczyna się od standardu, a w tym miejscu pojawia się organizacja GS1, której siedziba znajduje się w Brukseli.
Mając ponad 100 biur na całym świecie i półtora miliona zarejestrowanych firm, w zasadzie musisz się z nimi kontaktować, jeśli potrzebujesz kodów kreskowych dla swoich produktów. Dwa najpopularniejsze formaty to UPC-A i EAN-13. Zakłada się, że UPC-A jest używany w Stanach Zjednoczonych i Kanadzie, ale magia handlu międzynarodowego sprawia, że bardzo łatwo znaleźć egzemplarze obu formatów.
Weźmy pod uwagę przypadku UPC-A:: Każdy kod ma 95 kresek (tak, 95), które mogą być czarne lub białe, z trzema filarami oddzielającymi, wyznaczającymi początek, środek i koniec. Na filary przypada 11 kresek (wzorzec 3-5-3), co pozostawia w sumie 84 kreski na zapisanie informacji. Te 84 kreski są podzielone na dwanaście grup (po jednej na liczbę), każda składająca się z siedmiu kresek. Konfiguracja kresek określa kodowanie grupy, a co za tym idzie cyfrę, którą grupa ma reprezentować. Wikipedia wykonała ciężką pracę, publikując dokładny schemat każdej możliwej kombinacji:
Coś jest dziwnego na tym obrazku, prawda? Można by się spodziewać, że kodowanie każdej cyfry będzie takie samo po obu stronach kodu, ale tak nie jest. W rzeczywistości wprawne oko prawdopodobnie dostrzeże pewną subtelność: białe kreski w lewej połowie są zawsze parzyste, natomiast w prawej połowie są nieparzyste. Dlaczego? Ponieważ gwarantuje to proces odczytu nawet wtedy, gdy kod jest do góry nogami, co zdarza się bardzo często. Jeśli czytnik rozpozna, że białe kreski po lewej stronie są nieparzyste, automatycznie wie, że musi zaczynać od prawej strony.
Co mówi nam sama liczba? Ponownie pozostajemy w obszarze UPC-A i odkrywamy, że pierwsze trzy cyfry reprezentują kraj. Jeśli masz w pobliżu kody, które chcesz sprawdzić, możesz kliknąć tutaj, aby wejść do oficjalnej tabeli prefiksów GS1, lub alternatywnie użyć tego międzynarodowego wyszukiwania tożsamości (wystarczy wpisać kod, ale jest dzienny limit wyszukiwań). Reszta kodu zawiera firmę i produkt.
I tu GS1 zarabia: duzi gracze na każdym rynku mają ogromną liczbę produktów, dlatego potrzebują, aby sekcja „kraj + firma” w kodzie była krótka, w przeciwnym razie nie byliby w stanie wygenerować kodów kreskowych dla całego swojego katalogu. Natomiast firmy z małą ofertą (dziesięć produktów lub mniej) mogą otrzymać znacznie tańszy prefiks.
Cyfra kontrolna
Zakończenie tego artykułu należy do ostatniej cyfry kodu kreskowego UPC-A, która w istocie jest sumą kontrolną, czyli zabezpieczeniem potwierdzającym poprawny odczyt kodu. Jak ją obliczyć? Najpierw sumujemy sześć cyfr na nieparzystych pozycjach kodu i mnożymy przez trzy. Następnie sumujemy pięć cyfr na parzystych pozycjach. Potem dodajemy wyniki obu operacji. Ostatnim krokiem jest wzięcie tej liczby i dodanie cyfry kontrolnej, która powinna uczynić wynik wielokrotnością 10. Zróbmy test na kodzie z naszej myszy Logitech:
- (0 + 7 + 5 + 0 + 3 + 5) = 20
- (20 x 3) = 60
- (9 + 8 + 5 + 6 + 9) = 37
- (60 + 37) = 97
- (97 + 3) = 100
Tak jak pokazuje obraz.