Universal Product Code
Z Wikipedii
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.
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.
Spis treści |
[edytuj] Rodzaje kodów UPC
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
[edytuj] Struktura kodu
W kodzie UPC-A dwanaście cyfr dziesiętnych kodowane jest jako SLLLLLLMRRRRRRE, gdzie S (początek) i E (koniec) są 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ą.
[edytuj] Znaczenie prefiksów
- 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 Talony - 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.
[edytuj] Obliczanie sumy kontrolnej
W systemie UPC-A, sumę kontrolną oblicza się w następujący sposób:
- Cyfry będące na miejscach nieparzystych (pierwsze, trzecie, piąte, itd) należy dodać i pomnożyć całość przez 3.
- Do wyniku dodać cyfry znajdujące się na miejscach parzystych
- Od otrzymanego wyniku obliczyć wartość modulo 10
- Odjąć otrzymany wynik od 10
- 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). Suma kontrolna ma wartość 2.
W UPC-E cyfra kontrolna wynika z parytetu zakodowanych w kodzie cyfr.
[edytuj] Sposób zapisu znaków
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)
Cyfry występujące po lewej stronie kodu są przedstawiane następująco:
- 0: 0001101
- 1: 0011001
- 2: 0010011
- 3: 0111101
- 4: 0100011
- 5: 0110001
- 6: 0101111
- 7: 0111011
- 8: 0110111
- 9: 0001011
Cyfry występujące po prawej stronie kodu są przedstawiane następująco:
- 0: 1110010
- 1: 1100110
- 2: 1101100
- 3: 1000010
- 4: 1011100
- 5: 1001110
- 6: 1010000
- 7: 1000100
- 8: 1001000
- 9: 1110100