UPC eller Universal Product Code (universal product code) er en amerikansk stregkodestandard designet til at spore produkter i butikker. UPC'en blev udviklet i 1973 af George Joseph Laurer , en ingeniør hos IBM Corporation . I juni 1974 blev NCRs første UPC-scanner installeret i Marsh Supermarket i Troy, Ohio . Den 26. juni 1974 scannede kassereren i dette supermarked den første vare, en æske med 10 Wrigley - frugtgummier .
UCC (Uniform Code Council, Inc.) i USA og ECCC (Electronic Commerce Council of Canada) i Canada var involveret i standardisering og registrering af UPC-koder. I 2005 fusionerede disse organisationer med den europæiske sammenslutning EAN for at danne den globale standardiseringsorganisation GS1 . "Den nationale GS1-organisation i Rusland" er repræsentanten for denne organisation i Den Russiske Føderation.
Kodetyper:
UPC-A | UPC-E |
---|---|
UPC-koden indeholder kun tal og ingen bogstaver eller andre symboler.
Den 12-cifrede UPC er stamfader til den europæiske EAN-13 Improved Code , som koder for 13 cifre. UPC-koden er et specialtilfælde, en delmængde af EAN-13-koden. UPC-koden konverteres til EAN-13-koden ved at tilføje et nul før de tolv cifre i UPC-koden. Det vil sige, at produktet, hvis stregkode vi ser i figuren til denne artikel, vil have EAN-13-koden: 0 036000291452. Det er af denne grund, at koderne for produkter fremstillet i USA eller Canada i europæisk kodning starter fra nul.
Det er vigtigt, at selve "skraveringen" i en sådan transformation, det vil sige EAN-13 mønsteret for koder svarende til UPC, er identisk med "skraveringen" af UPC. På denne måde blev kompatibiliteten af amerikanske koder til læsning i Europa sikret uden gentryk af etiketter eller ompakning af varerne.
For mere information om EAN-13-koden og hvordan den adskiller sig fra UPC, se det europæiske artikelnummer .
UPC-koden er en simpel og næsten symmetrisk lineær stregkode. Enkelhed, symmetri og høj støjimmunitet skyldes den utilstrækkeligt udviklede teknologi på tidspunktet for oprettelsen af disse koder.
Koden består af 2 grupper af cifre, 6 cifre i hver gruppe - venstre og højre. Grupper af tal er omkranset af de såkaldte beskyttende eller omsluttende stregmønstre (Guard Patterns). Disse skabeloner indeholder streger med enkelt bredde, der bruges til at synkronisere stregkodescanneren. Tilstedeværelsen af præcis tre sådanne felter skyldes primært den mulige anvendelse af en stregkode på en afrundet overflade. Og hvis nu dette ikke er et særligt problem, så på tidspunktet for oprettelsen af denne kode, skulle scanneren kende bredden af et enkelt slag i begyndelsen, midten og slutningen af koden. Venstre og højre beskyttelsesmønster består af 3 strøg af enhedsbredden - to mørke og en lys en imellem dem. Den gennemsnitlige beskyttende skabelon består af 5 streger - tre lyse og to mørke. Alt andet er tal.
Hvert ciffer i venstre eller højre gruppe kodes med fire streger: to lyse og to mørke. Hvert slag kan have en relativ bredde på en, to, tre eller fire enheder. Den samlede stregbredde for et enkelt ciffer er altid syv enheder. Bitmønsteret for hvert ciffer er designet således, at cifrene er så forskellige fra hinanden som muligt. Den maksimale længde af et mørkt eller lyst område må ikke overstige fire enheder. Den samlede bredde af hele koden er altid 95 enheder. Der er 29 lyse og 30 mørke streger i enhver kode. Alle disse tekniske løsninger er vigtige for pålideligheden og nem scanning af denne kode.
Det første ciffer i koden - dette er det såkaldte præfiks - har en vis logisk betydning, men er ikke så vigtigt fra et teknisk synspunkt. Det sidste ciffer er et kontrolnummer, det bruges til at opdage en mulig fejl ved læsning af koden med en scanner eller manuel indtastning af kodenumre fra tastaturet.
Retningen for at læse kombinationen af slag er ligegyldig - koden er designet, så den er lige så nem at læse både fremad og baglæns (hvis produktet er vendt på hovedet). Det er heller ikke lige meget, hvilket design hele stregkoden har - fotografisk positiv eller negativ: en stregkode trykt med lyse striber på en mørk baggrund aflæses på samme måde som med mørke striber på en lys baggrund. Streg- og baggrundsfarverne behøver ikke at være hvide og sorte, andre farvekombinationer er mulige.
"Rolig" zone |
S (start) |
L (venstre kode) |
M (midten) |
R (højre kode) |
E (slut) |
"Rolig" zone | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | en | 2 | 3 | fire | 5 | 6 | 7 | otte | 9 | 0 | en | 2 | 3 | fire | 5 | 6 | 7 | otte | 9 | |||||
Nummer | Venstre kode | Omvendt kode | Den rigtige kode | Linjebredde |
---|---|---|---|---|
0 | 0001101 | 0100111 | 1110010 | 3-2-1-1 |
en | 0011001 | 0110011 | 1100110 | 2-2-2-1 |
2 | 0010011 | 0011011 | 1101100 | 2-1-2-2 |
3 | 0111101 | 0100001 | 1000010 | 1-4-1-1 |
fire | 0100011 | 0011101 | 1011100 | 1-1-3-2 |
5 | 0110001 | 0111001 | 1001110 | 1-2-3-1 |
6 | 0101111 | 0000101 | 1010000 | 1-1-1-4 |
7 | 0111011 | 0010001 | 1000100 | 1-3-1-2 |
otte | 0110111 | 0001001 | 1001000 | 1-2-1-3 |
9 | 0001011 | 0010111 | 1110100 | 3-1-1-2 |
Prøve | Venstre | Centreret | Til højre |
---|---|---|---|
Skabelon til venstre vagt | 101 | ||
Medium beskyttende skabelon | 01010 | ||
Højre beskyttelsesskabelon | 101 |
Ved udformningen af kodens struktur, under forhold med endnu ikke for avanceret elektronik, var det vigtigt at gøre det så let som muligt for scanneren at læse og at forenkle selve scannerens hardware. En af vanskelighederne var problemet med den sandsynlige læsning af koden i den modsatte retning, det vil sige at læse koden på det produkt, som kassereren bragte til scanneren "på hovedet". Derfor var det meget vigtigt, at vekslen af striber var den samme i begge retninger - først et mørkt streg, så hvidt, så mørkt igen, og så videre. Ja, og det ville også være rart, hvis placeringen af beskyttelsesskabelonerne altid var på samme sted.
Løsningen er fundet. Du kan bemærke, at koden ser meget symmetrisk ud, det vil sige, at antallet af streger til højre og venstre for midten altid er det samme, og bredden af højre og venstre del af stregkoden er den samme. Det vil sige, at stregkodelæsemekanismen altid er den samme, uanset hvordan du drejer denne kode.
Hvad angår den samme sekvens af vekslende lyse og mørke streger under frem- og tilbagelæsning, opnåede udviklerne dette ved, at kodningen af højre og venstre talgrupper er lidt anderledes - de højre tegn har en fotografisk negativ kontur i forhold til venstre. Det vil sige, at stregmønstrene for det samme ciffer er identiske, men positive eller negative. Med andre ord er den eneste forskel, at hvis det for venstre side af koden er et let streg, så er det mørkt for højre.
Problemet med at genkende frem- eller tilbagelæsning er lige så let løst logisk. For eksempel, hvis scanneren læser et tal med en stregtykkelse på 3-2-1-1, så forstår den, at dette er tallet "nul" og dets direkte aflæsning, og hvis den læser streger med en tykkelse på 1-1 -2-3, så forstår den, at dette er det samme "nul", men læst i den modsatte retning. Ved læsning af tal, der er spejlkodede i forhold til den sædvanlige kodning, forstår scanneren, at hele stregkoden læses i den modsatte retning, derfor skal hele den resulterende sekvens på 12 cifre overføres til computeren i omvendt rækkefølge.
Alt dette var en vis genforsikring og overkill efter moderne standarder, men året var 1973.
I UPC-A (GTIN-12)-koden beregnes kontrolcifferet (cifferet) som følger:
For eksempel beregnes kontrolcifferet for UPC-A stregkoden vist i figuren "03600029145X", hvor "X" er det kontrolciffer, du leder efter, ved at tilføje alle ulige cifre (0+6+0+2+1 +5 = 14), ganget med tre (14 × 3 = 42), resultatet summeres med alle lige cifre (42+3+0+0+9+4 = 58), alle undtagen det sidste ciffer kasseres (58) mod 10 = 8), trukket fra 10 (10 − 8 = 2) og igen, om nødvendigt, kasseres alt undtagen det sidste ciffer (2 mod 10 = 2). Det ønskede checknummer er nummer 2.
Når du læser koden, kontrolleres korrektheden af aflæsningen på lignende måde, men noget enklere:
Teknisk set behandles cifrene sekventielt i én omgang, hvor hvert ciffer ganges med 1 eller 3, afhængigt af positionens jævnhed, lægges til summen og tage resten modulo 10 af den aktuelle sum. Med andre ord kasseres tiere med det samme, hvilket i høj grad forenkler beregningsmekanismen.
Hvis resultatet er nul, besluttes det, at koden blev læst korrekt, hvis der var et andet ciffer, så blev koden utvetydigt læst forkert.
Denne kode blev primært skabt for at automatisere handelen med produkter produceret af mange virksomheder, så spørgsmålet om internt indhold var også vigtigt for standardisering og regulering, så forskellige virksomheder ikke kunne tildele den samme kode til et produkt. Hver nyproduceret type produkt skulle have sin egen unikke kode, og dette var hovedideen i hele dette system. Det vil sige, at hvis en producent for eksempel producerer jeans, så skal jeans i forskellige farver, størrelser og snit have forskellige koder. Det vil sige, at hvis det for eksempel er 10 farver, 50 typer, 20 størrelser, så vil der kræves ti tusinde koder for at kode dem.
Til gengæld bør det samme produkt, men fra forskellige fremstillingsvirksomheder, også have en anden kodning. Alt dette var vigtigt for automatisering af regnskab i handel, automatisk kontrol af varebalancer på et lager, butikshylder og så videre.
Det teoretiske maksimum for denne kode er 100 milliarder forskellige typer varer (11 cifre). Det virkede som et stort antal. Men teori svarer ikke altid til praksis, og den nuværende situation er sådan, at i mere end 30 år efter systemets eksistens, har disse koder ikke været nok. Dette skyldes deres ubalancerede, spildte udgifter.
Oprindeligt blev de 11 cifre i koden fordelt som følger:
Det vil sige, at systemet teoretisk betød op til seks hundrede tusinde virksomheder (et hundrede tusinde pr. præfiks), som hver kunne kode op til hundrede tusinde navne på dets produkter.
Dette er det første ciffer i koden. Inddeler logisk koder i typer af fremstillede produkter.
For europæiske EAN-13-koder ser alle disse amerikanske præfikser ud til at starte med et nul, dvs. 01, 02, 03 og så videre. Efter fusionen med den europæiske sammenslutning fik den globale GS1 America tildelt yderligere præfikser 10-13 i europæisk kodning, som vil blive brugt til at kode det almindelige produkt.
En virksomhedskode er den del af koden, som er tildelt af den regulerende organisation til virksomheder, der ønsker at kode deres produkt. Virksomhedskoden skulle ifølge den oprindelige plan have 5 cifre plus præfikser reserveret til kodning af et almindeligt produkt. Således var det muligt at registrere omkring seks hundrede tusinde virksomheder. Som det viste sig, er dette ikke nok. Firmakoden er placeret på venstre side af UPC-koden.
Produktkoden optager de første 5 cifre i højre side af koden. Virksomheden skulle indkode hver type produkt med sin egen unikke kode. Koden 99999 er reserveret til kodning af selve virksomheden, for at sikre workflow-automatisering.
Den semantiske belastning af tal i produktets navn: I modsætning til hvad folk tror, bærer selve produktets digitale kode (3-5 cifre) ingen semantisk belastning. Foreningen anbefaler konsekvent tildeling af koder, da nye typer produkter frigives uden at investere i denne kode nogen yderligere semantisk belastning.
Til brug af UPC i virksomheder og brancheorganisationer tildeles alle koder, der starter med tallet 2. Enhver virksomhed kan bruge dem på enhver måde og efter eget skøn, men udelukkende til egne interne formål. Brugen af disse koder uden for virksomheden er forbudt. Det interne indhold af koder, der starter med 2, kan følge enhver logik, som den eller den virksomhed har sat for sig selv (normalt er disse forhandlere), og kan indeholde produktets pris eller vægt eller andre parametre, og denne kodning er især ofte bruges til vægtgods.
"Myte" om de kodede tre seksere
For at synkronisere læsningen af koden leverede George Laurer 3 særlige beskyttende eller omsluttende felter (Guard Patterns) - det venstre felt (LGP), det centrale felt (CGP) og det højre felt (RGP). På figuren er disse felter fremhævet med grønt for tydelighedens skyld, faktisk er de hvide. Venstre og højre marginer er tre enheder brede, midtermargenen er 5 enheder bred (husk, koden for ethvert ciffer er 7 enheder bred). Legenden opstod på grund af det faktum, at i en af kodningerne (se tabellen ovenfor) er tallet 6 repræsenteret af sekvensen 1010000, som visuelt kan opfattes som to streger. De beskyttende felter (101 og 01010) ligner også to streger, men dette har intet at gøre med indkodningen af tallet 6, bortset fra visuel lighed. George Laurer genkender selv en vis lighed mellem disse felter med kodningen af de seks, men betragter dette som en ulykke. Han betragter det også som en tilfældighed, at hans fornavn, efternavn og patronym (George Joseph Laurer) hver indeholder seks bogstaver. Der er ingen kodede tre seksere i UPC-stregkoden. [4] På den anden side sagde Thomas Psaras, en græsk datalog, som ikke har noget med religion at gøre: "For at kunne bruge stregkoden korrekt og præcist, bruges skjulte dobbelte kodestrøg til at adskille information, som tilfældigt betegner tallet 6 i begyndelsen, i midten og slutningen af enhver numerisk information, der er gengivet ved hjælp af en stregkode.
Stregkoder | |
---|---|
Lineær |
|
2D |
|
Andet |
|
Relaterede artikler | Sammenligning af stregkodekarakteristika |