Universal Product Code

UPC (skrót od ang.: Universal Product Code) – pierwszy standard kodu kreskowego, wprowadzony został w supermarketach w USA i Kanadzie w 1973 roku, z myślą o usprawnieniu obsługi klientów i gromadzeniu danych w punktach sprzedaży.

Przykład kodu UPC-A
Przykład kodu UPC-E

Standaryzacją zajmowały się organizacje UCC (Uniform Code Council, Inc.) w USA oraz ECCC (Electronic Commerce Council of Canada). W wyniku podjęcia działań mających na celu połączenie standardów UPC oraz konkurencyjnego EAN w 2005 roku organizacje te weszły w skład globalnej organizacji GS1.

Rodzaje kodów UPC edytuj

W chwili obecnej stosowane są 2 rodzaje kodów numerycznych UPC:

  • UPC-A (pełna) – kodowane jest 12 cyfr
  • UPC-E (skrócona) – kodowane jest 6 cyfr

Struktura kodu edytuj

 
W kodzie kreskowym UPC-A, każda cyfra jest reprezentowana przez siedmiobitową sekwencję, zakodowaną jako serię naprzemiennych kresek i przerw. Kreski ochronne (zaznaczone na zielono) oddzielają dwie sześciocyfrowe grupy.

W kodzie UPC-A dwanaście cyfr dziesiętnych kodowane jest jako SLLLLLLMRRRRRRE, gdzie S (początek) i E (koniec) oznaczone są przez 3 moduły (bity – 101), M (środek, pole ochronne) jako 01010. Każde L i R jest cyfrą przedstawioną przez 7 modułów (siedem bitów). Całość kodu składa się z 95 bitów. Aby zmniejszyć prawdopodobieństwo błędnego odczytu, każde cyfra zakodowana jest tak, by w jak największym stopniu różnić się od pozostałych. Dodatkowo w kodowaniu nie występują moduły dłuższe od 4 przerw lub pasków.

Pierwsza cyfra L jest prefiksem, natomiast ostatnia cyfra R jest sumą kontrolną.

W kodzie UPC-E można zaprezentować to jako SLLLRRRE

Znaczenie prefiksów edytuj

  • 0, 1, 6, 7, 8 lub 9 dla większości produktów
  • 2 zarezerwowane dla produktów o zmiennej masie w obrocie lokalnym. Produkty takie mają przydzielany kod UPC przez sklepy, jeżeli są tam pakowane. W tym przypadku LLLLL jest numerem produktu, a _RRRR przedstawia wagę albo cenę produktu – jest to określone w pierwszym R.
  • 3 leki według numeru National Drug Code – Narodowego Kodeksu Leków
  • 4 zarezerwowane dla użytku lokalnego, często dla kart lojalnościowych
  • 5 kupony – rzadko używany. Kod kuponu zapisany jest w LLLLL, natomiast _RRRR podaje wartość (wyrażoną w procentach albo liczbowo – pierwsze R określa rodzaj danych)

Poprzez dodanie prefiksu 0, kody te stają się zgodne z EAN-13.

Obliczanie sumy kontrolnej edytuj

W systemie UPC-A, sumę kontrolną oblicza się w następujący sposób:

  1. Cyfry będące na miejscach nieparzystych (pierwsze, trzecie, piąte, itd) należy dodać i pomnożyć całość przez 3.
  2. Do wyniku dodać cyfry znajdujące się na miejscach parzystych
  3. Od otrzymanego wyniku obliczyć wartość modulo 10
  4. Odjąć otrzymany wynik od 10
  5. Od otrzymanego wyniku obliczyć wartość modulo 10 – (stosowane w przypadku, gdy otrzymany wynik równy jest 10. Powoduje to jego skrócenie do jednocyfrowego 0)

Na przykład dla kodu "03600029145X", gdzie X oznacza cyfrę kontrolną, X zostaje wyliczone w następujący sposób: Suma cyfr znajdujących się w miejscach nieparzystych (0+6+0+2+1+5 = 14) jest mnożona przez 3 (14 × 3 = 42), następnie dodawane są cyfry znajdujące się na miejscach parzystych – (42+3+0+0+9+4 = 58), obliczana jest wartość modulo 10 (58%10 = 8), a następnie wynik odejmowany jest od 10 (10 – 8 = 2). Obliczamy po raz kolejny modulo 10 (2%10 = 2). Suma kontrolna ma wartość 2.

W UPC-E cyfra kontrolna wynika z parytetu zakodowanych w kodzie cyfr.

Sposób zapisu znaków edytuj

W kodzie UPC-A, każda cyfra jest zapisana przez kombinację 4 modułów (kreska przerwa kreska przerwa lub na odwrót). Ze względu na możliwość odczytu kodu w dwie strony cyfry zapisane po lewej stronie kodu ("L") są przedstawione jako dopełnienie takiej samej cyfry zapisanej po prawej stronie kodu ("R").

Na przykład cyfra "6" jest zapisana jako:

  • 0101111 (Dla lewej strony kodu)
  • 1010000 (Dla prawej strony kodu)
Tablica znaków[1]
Znak Sposób
kodowania
lewa strona
Sposób
kodowania
prawa strona
0 0001101 1110010
1 0011001 1100110
2 0010011 1101100
3 0111101 1000010
4 0100011 1011100
5 0110001 1001110
6 0101111 1010000
7 0111011 1000100
8 0110111 1001000
9 0001011 1110100

Przypisy edytuj

  1. EAN-13 SYMBOLOGY [online], www.barcodeisland.com [dostęp 2017-11-27] [zarchiwizowane z adresu 2016-01-14].

Bibliografia edytuj

Linki zewnętrzne edytuj