UPC eller Universal Product Code (universal product code) är en amerikansk streckkodsstandard utformad för att spåra produkter i butik. UPC:n utvecklades 1973 av George Joseph Laurer , ingenjör vid IBM Corporation . I juni 1974 installerades NCR :s första UPC-skanner på Marsh Supermarket i Troy, Ohio . Den 26 juni 1974 skannade kassörskan i denna stormarknad det första föremålet, en låda med 10 Wrigley -fruktgummin .
UCC (Uniform Code Council, Inc.) i USA och ECCC (Electronic Commerce Council of Canada) i Kanada var involverade i standardisering och registrering av UPC-koder. 2005 slogs dessa organisationer samman med den europeiska sammanslutningen EAN för att bilda den globala standardiseringsorganisationen GS1 . Den "nationella GS1-organisationen i Ryssland" är representant för denna organisation i Ryska federationen.
Typer av kod:
UPC-A | UPC-E |
---|---|
UPC-koden innehåller endast siffror och inga bokstäver eller andra symboler.
Den 12-siffriga UPC:n är stamfadern till den europeiska EAN-13 Improved Code , som kodar 13 siffror. UPC-koden är ett specialfall, en delmängd av EAN-13-koden. UPC-koden konverteras till EAN-13-koden genom att lägga till en nolla före de tolv siffrorna i UPC-koden. Det vill säga produkten, vars streckkod vi ser i figuren för denna artikel, kommer att ha EAN-13-koden: 0 036000291452. Det är av denna anledning som koderna för produkter tillverkade i USA eller Kanada i europeisk kodning börjar från noll.
Det är viktigt att själva "kläckningen" i en sådan transformation, det vill säga EAN-13-mönstret för koder som motsvarar UPC, är identisk med "kläckningen" av UPC. På så sätt säkerställdes kompatibiliteten av amerikanska koder för läsning i Europa utan någon nytryckning av etiketter eller ompaketering av varorna.
För mer information om EAN-13-koden och hur den skiljer sig från UPC, se det europeiska artikelnumret .
UPC-koden är en enkel och nästan symmetrisk linjär streckkod. Enkelhet, symmetri och hög brusimmunitet beror på den otillräckligt utvecklade tekniken vid tidpunkten för skapandet av dessa koder.
Koden består av 2 grupper av siffror, 6 siffror i varje grupp - vänster och höger. Grupper av siffror kantas av de så kallade skyddande, eller omslutande, slagmönster (Guard Patterns). Dessa mallar innehåller streck med enkel bredd som används för att synkronisera streckkodsläsaren. Förekomsten av exakt tre sådana fält beror i första hand på möjlig tillämpning av en streckkod på en rundad yta. Och om nu detta inte är ett särskilt problem, så behövde skannern vid tidpunkten för att skapa denna kod veta bredden på ett enda slag i början, mitten och slutet av koden. De vänstra och högra skyddsmönstren består av 3 slag av enhetsbredd - två mörka och en ljus en mellan dem. Den genomsnittliga skyddsmallen består av 5 slag - tre ljusa och två mörka. Allt annat är siffror.
Varje siffra i den vänstra eller högra gruppen kodas med fyra slag: två ljusa och två mörka. Varje slag kan ha en relativ bredd på en, två, tre eller fyra enheter. Den totala slagbredden för en enstaka siffra är alltid sju enheter. Bitmönstret för varje siffra är utformat så att siffrorna skiljer sig så mycket från varandra som möjligt. Den maximala längden på ett mörkt eller ljust område får inte överstiga fyra enheter. Den totala bredden på hela koden är alltid 95 enheter. Det finns 29 ljusa och 30 mörka streck i valfri kod. Alla dessa tekniska lösningar är viktiga för tillförlitligheten och enkelheten att skanna denna kod.
Den första siffran i koden - det här är det så kallade prefixet - har en viss logisk betydelse, men är inte så viktig ur teknisk synvinkel. Den sista siffran är ett kontrollnummer, det används för att upptäcka ett eventuellt fel vid läsning av koden med en skanner eller manuell inmatning av kodnummer från tangentbordet.
Riktningen för att läsa kombinationen av slag spelar ingen roll - koden utformades så att den är lika lätt att läsa både framåt och bakåt (om produkten vänds upp och ner). Det spelar heller ingen roll vilken design hela streckkoden har - fotografiskt positiv eller negativ: en streckkod tryckt med ljusa ränder på mörk bakgrund läses på samma sätt som med mörka ränder på ljus bakgrund. Linje- och bakgrundsfärgerna behöver inte vara vita och svarta, andra färgkombinationer är möjliga.
"Tyst" zon |
S (start) |
L (vänster kod) |
M (mitten) |
R (höger kod) |
E (slut) |
"Tyst" zon | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | ett | 2 | 3 | fyra | 5 | 6 | 7 | åtta | 9 | 0 | ett | 2 | 3 | fyra | 5 | 6 | 7 | åtta | 9 | |||||
siffra | Vänster kod | Omvänd kod | Rätt kod | Linjebredd |
---|---|---|---|---|
0 | 0001101 | 0100111 | 1110010 | 3-2-1-1 |
ett | 0011001 | 0110011 | 1100110 | 2-2-2-1 |
2 | 0010011 | 0011011 | 1101100 | 2-1-2-2 |
3 | 0111101 | 0100001 | 1000010 | 1-4-1-1 |
fyra | 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 |
åtta | 0110111 | 0001001 | 1001000 | 1-2-1-3 |
9 | 0001011 | 0010111 | 1110100 | 3-1-1-2 |
Prov | Vänster | centrerad | Till höger |
---|---|---|---|
Vänster vakt mall | 101 | ||
Medium skyddsmall | 01010 | ||
Rätt skyddsmall | 101 |
Vid utformningen av kodens struktur, under förhållanden med ännu inte alltför avancerad elektronik, var det viktigt att göra det så enkelt som möjligt för skannern att läsa och att förenkla hårdvaran i själva skannern. En av svårigheterna var problemet med den sannolika läsningen av koden i motsatt riktning, det vill säga att läsa koden på produkten som kassörskan förde till skannern "upp och ner". Därför var det mycket viktigt att växlingen av ränder var densamma i båda riktningarna - först ett mörkt streck, sedan vitt, sedan mörkt igen, och så vidare. Ja, och det skulle också vara trevligt om placeringen av skyddsmallarna alltid var på samma plats.
Lösningen har hittats. Du kan märka att koden ser väldigt symmetrisk ut, det vill säga antalet slag till höger och vänster om mitten är alltid detsamma, och bredden på höger och vänster del av streckkoden är densamma. Det vill säga, streckkodsläsningsmekanismen är alltid densamma, oavsett hur du vänder den här koden.
När det gäller samma sekvens av omväxlande ljusa och mörka streck under framåt- och bakåtläsning, uppnådde utvecklarna detta genom att kodningen av höger och vänster siffror är något annorlunda - de högra tecknen har en fotografiskt negativ kontur i förhållande till vänster. Det vill säga, streckmönstren för samma siffra är identiska, men positiva eller negativa. Med andra ord, den enda skillnaden är att om det för den vänstra sidan av koden är ett ljust slag, så är det mörkt för den högra.
Problemet med att känna igen framåt- eller bakåtläsning löses lika enkelt logiskt. Till exempel, om skannern läser ett tal med en strecktjocklek på 3-2-1-1, förstår den att detta är siffran "noll" och dess direkta avläsning, och om den läser streck med en tjocklek på 1-1 -2-3, då förstår den att detta är samma "nolla", men läses i motsatt riktning. Vid läsning av siffror som är spegelkodade med avseende på den vanliga kodningen förstår skannern att hela streckkoden läses i motsatt riktning, därför måste hela den resulterande sekvensen på 12 siffror överföras till datorn i omvänd ordning.
Allt detta var en viss återförsäkring och överdrift med moderna standarder, men året var 1973.
I UPC-A (GTIN-12)-koden beräknas kontrollsiffran (siffran) enligt följande:
Till exempel, kontrollsiffran för UPC-A streckkoden som visas i figuren "03600029145X", där "X" är kontrollsiffran du letar efter, beräknas genom att lägga till alla udda siffror (0+6+0+2+1 +5 = 14), multiplicerat med tre (14 × 3 = 42), resultatet summeras med alla jämna siffror (42+3+0+0+9+4 = 58), alla utom den sista siffran kasseras (58) mod 10 = 8), subtraherad från 10 (10 − 8 = 2) och igen, om nödvändigt, kasseras allt utom den sista siffran (2 mod 10 = 2). Det önskade kontrollnumret är siffran 2.
När du läser koden kontrolleras läsningens korrekthet på ett liknande sätt, men något enklare:
Tekniskt sett bearbetas siffrorna sekventiellt, i en omgång, med varje siffra multiplicerad med 1 eller 3, beroende på positionens jämnhet, adderas till summan och tar resten modulo 10 av den aktuella summan. Med andra ord kasseras tiotals omedelbart, vilket avsevärt förenklar beräkningsmekanismen.
Om resultatet är noll, bestäms det att koden lästes korrekt, om någon annan siffra, så lästes koden otvetydigt felaktigt.
Denna kod skapades i första hand för att automatisera handeln med produkter producerade av många företag, så frågan om internt innehåll var också viktig för standardisering och reglering, så att olika företag inte kunde tilldela samma kod till en produkt. Varje nyproducerad produkttyp måste ha sin egen unika kod, och detta var huvudidén med hela systemet. Det vill säga, om en tillverkare tillverkar till exempel jeans, så bör jeans i olika färger, storlekar och skärningar ha olika koder. Det vill säga, om det till exempel är 10 färger, 50 typer, 20 storlekar, kommer det att krävas tiotusen koder för att koda dem.
I sin tur bör samma produkt, men från olika tillverkningsföretag, också ha en annan kodning. Allt detta var viktigt för att automatisera bokföringen i handeln, automatisk kontroll av varubalanser i ett lager, butikshyllor och så vidare.
Det teoretiska maximumet för denna kod är 100 miljarder olika typer av varor (11 siffror). Det verkade vara ett stort antal. Men teori stämmer inte alltid överens med praktiken, och den nuvarande situationen är sådan att dessa koder inte har räckt till under mer än 30 år av systemets existens. Detta beror på deras obalanserade, slösaktiga utgifter.
Ursprungligen fördelades de 11 siffrorna i koden enligt följande:
Det vill säga, teoretiskt sett innebar systemet upp till sexhundratusen företag (hundratusen per prefix), som var och en kunde koda upp till hundra tusen namn på sina produkter.
Detta är den första siffran i koden. Delar logiskt in koder i typer av tillverkade produkter.
För europeiska EAN-13-koder verkar alla dessa amerikanska prefix börja med en nolla, dvs. 01, 02, 03 och så vidare. Efter sammanslagning med den europeiska föreningen tilldelades den globala GS1 America ytterligare prefix 10-13 i europeisk kodning, som kommer att användas för att koda den vanliga produkten.
En företagskod är den del av koden som tilldelas av tillsynsorganisationen till företag som vill koda sin produkt. Företagskoden, enligt den ursprungliga planen, skulle ha 5 siffror plus prefix reserverade för kodning av en vanlig produkt. Således var det möjligt att registrera cirka sexhundratusen företag. Som det visade sig är detta inte tillräckligt. Företagskoden finns till vänster om UPC-koden.
Produktkoden upptar de första 5 siffrorna på höger sida av koden. Företaget var tvungen att koda varje typ av produkt med sin egen unika kod. Koden 99999 är reserverad för kodningen av själva företaget, för att säkerställa automatisering av arbetsflödet.
Den semantiska belastningen av siffror i produktens namn: I motsats till vad många tror, bär den digitala koden för själva produkten (3-5 siffror) ingen semantisk belastning. Föreningen rekommenderar konsekvent tilldelning av koder eftersom nya typer av produkter släpps utan att investera i denna kod någon ytterligare semantisk belastning.
För användning av UPC inom företag och branschorganisationer tilldelas alla koder som börjar med siffran 2. Alla företag kan använda dem på vilket sätt som helst och efter eget gottfinnande, men uteslutande för sina egna interna ändamål. Det är förbjudet att använda dessa koder utanför företaget. Det interna innehållet i koder som börjar med 2 kan följa vilken logik som helst som det eller det företaget har satt upp för sig själv (vanligtvis är dessa återförsäljare), och kan innehålla produktens pris eller vikt, eller andra parametrar, och denna kodning är särskilt ofta används för viktgods.
"Myt" om de kodade tre sexorna
För att synkronisera läsningen av koden tillhandahöll George Laurer 3 speciella skyddande, eller omslutande, fält (Guard Patterns) - det vänstra fältet (LGP), det centrala fältet (CGP) och det högra fältet (RGP). I figuren är dessa fält markerade i grönt för tydlighetens skull, i själva verket är de vita. Den vänstra och högra marginalen är tre enheter breda, mittmarginalen är 5 enheter bred (kom ihåg, koden för valfri siffra är 7 enheter bred). Legenden uppstod på grund av det faktum att i en av kodningarna (se tabellen ovan) representeras siffran 6 av sekvensen 1010000, som visuellt kan uppfattas som två slag. Skyddsfälten (101 och 01010) ser också ut som två slag, men detta har ingenting att göra med kodningen av siffran 6, förutom visuell likhet. George Laurer själv känner igen en viss likhet mellan dessa fält med kodningen av de sex, men anser att detta är en olycka. Han anser också att det är en slump att hans förnamn, efternamn och patronym (George Joseph Laurer) innehåller sex bokstäver vardera. Det finns inga kodade tre sexor i UPC-streckkoden. [4] Å andra sidan sa Thomas Psaras, en grekisk datavetare som inte har något med religion att göra: "För att korrekt och korrekt använda streckkoden används dolda dubbla koddrag för att separera information, som av en slump betecknar siffran 6 , i början, i mitten och i slutet av all numerisk information som återges med hjälp av en streckkod.
Streckkoder | |
---|---|
Linjär |
|
2D |
|
Övrig |
|
Relaterade artiklar | Jämförelse av streckkodsegenskaper |