Universell produktkod - Universal Product Code

En UPC -streckkod

Den Universal Product Code ( UPC , redundant : UPC-kod ) är en streckkod symbolik som ofta används över hela världen för att spåra handelsposter i butikerna.

UPC (tekniskt hänvisat till UPC-A) består av 12 numeriska siffror som är unikt tilldelade varje handelsartikel. Tillsammans med den relaterade EAN -streckkoden är UPC streckkoden som huvudsakligen används för att skanna handelsvaror vid försäljningsstället , enligt GS1 -specifikationer. UPC -datastrukturer är en del av GTIN: er och följer den globala GS1 -specifikationen, som är baserad på internationella standarder. Men vissa återförsäljare (kläder, möbler) använder inte GS1 -systemet (snarare andra streckkodssymboler eller artikelnummersystem). Å andra sidan använder vissa återförsäljare streckkodssymbolen EAN/UPC, men utan att använda ett GTIN (endast för produkter som säljs i egna butiker).

Forskning tyder på att adoption och spridning av UPC stimulerade innovation och bidrog till tillväxten av internationella detaljhandelskedjor.

Historia

Wallace Flint föreslog ett automatiserat kassasystem 1932 med stansade kort . Bernard Silver och Norman Joseph Woodland , en doktorand från Drexel Institute of Technology (nu Drexel University) , utvecklade en kod i bull-eye-stil och ansökte om patentet 1949.

På 1960-talet och början av 1970-talet experimenterade järnvägar i Nordamerika med flerfärgade streckkoder för att spåra järnvägsvagnar , men detta system övergavs så småningom och ersattes med ett radiobaserat system som kallas Automatic Equipment Identification (AEI) .

År 1973 bildade en grupp branschorganisationer från livsmedelsindustrin Uniform Product Code Council (UPCC) som med hjälp av konsulterna Larry Russell och Tom Wilson från McKinsey & Company definierade det numeriska format som låg till grund för den enhetliga produkten Koda. Teknikföretag inklusive Charegon, IBM , Litton-Zellweger, Pitney Bowes-Alpex, Plessey-Anker, RCA , Scanner Inc., Singer och Dymo Industries /Data General, lade fram alternativa förslag på symbolrepresentationer till rådet. Symbolvalskommittén valde slutligen att implementera IBM -förslaget designat av George J. Laurer , men med en liten ändring av teckensnittet i det människoläsbara området.

Det första UPC-märkta objektet någonsin som skannades vid en detaljhandelskassa var ett 10-pack (50 pinnar) av Wrigleys Juicy Fruit- tuggummi, köpt på Marsh-stormarknaden i Troy, Ohio , klockan 8:01 den 26 juni 1974 . Den NCR kassa ringde upp 67 cent. Varukorgen innehöll också andra streckkodade artiklar men tuggummit var det första som hämtades i kassan. En faksimil av tandköttet paketet gick på skärm på Smithsonian Institution : s amerikansk historia museum i Washington, DC

Murray Eden var en konsult i teamet som skapade streckkoden för Universal Product Code. Som ordförande för en forskarkommitté vid Massachusetts Institute of Technology hjälpte han till att  välja en symbol som skulle uthärda den oundvikliga brådskan av teknik som väntade. Han valde teckensnitt, och han kom på idén att lägga till siffror i botten, vilket är ett felsäkert system, om kodläsaren är nere.

IBM -förslag

Omkring sent 1969 tilldelade IBM vid Research Triangle Park (RTP) i North Carolina George Laurer att bestämma hur man gör en stormarknadsscanner och etikett. I slutet av 1970 gav Heard Baumeister ekvationer för att beräkna tecken per tum som kan uppnås med två IBM -streckkoder, Delta A och Delta B. I februari 1971 gick Baumeister med Laurer.

I mitten av 1971 uppfann William "Bill" Crouse en ny streckkod som heter Delta C. Den uppnådde fyra gånger tecknen per tum som Delta B. Delta B jämförde stapelbredder med rymdbredd med kodbitar. Detta var extremt känsligt för bläckspridning där för mycket bläck eller tryck skulle få båda kanterna på en stapel att spridas utåt och för lite för att få dem att krympa. För att göra det värre när staplar sprider utrymmen krymper och vice versa. Delta C uppnådde sin högre prestanda genom att bara använda ledande till bakre eller bakre till bakkant som inte påverkades av enhetlig bläckspridning. Koden gav bästa prestanda när den hade en definierad teckenuppsättning med ett fast referensavstånd som sträckte sig över mest eller helst allt tecken. I augusti 1971 gick Crouse med i skannerinsatsen. Efter flera månader hade de inte gjort några framsteg. De var medvetna om RCA bull -eye -etiketten som kunde skannas med en enkel raksträckt laserskanner, men en läsbar etikett var alldeles för stor. Även om Litton Industries föreslog en bull -eye -symbol skärs i hälften för att minska området, var den fortfarande för stor och gav samma problem med tryckfärg som RCA -symbolen. Redundansen och kontrollförmågan togs bort helt. De var också medvetna om de många förslagen från hela världen, varav inga var genomförbara.

UPC -etiketten som visar de allmänna egenskaperna hos Baumeisters förslag

Våren 1972 tillkännagav Baumeister ett genombrott. Han föreslog en etikett med staplar som var något längre än avståndet över alla staplar som behövde läsas i ett enda pass. Denna etikett kan skannas med en enkel "X" -skanner som är bara något mer komplex än raklinjeskannern. Nästa dag föreslog Baumeister att om etiketten delades upp i två halvor skulle stånglängderna kunna skäras nästan till hälften. Dessa två förslag minskade området från bull's eye med en tredjedel och sedan en sjätte. Bilden till höger visar etiketten som föreslagits av Baumeister. Han angav inte någon specifik streckkod eftersom det var väl förstådt. Förutom streckkodningen och tio siffror är UPC -etiketten idag hans förslag. Kort därefter överfördes Baumeister till ett annat område av RTP.

Laurer fortsatte med att definiera detaljerna på etiketten och skriva ett förslag. NJ Woodland tilldelades som planerare för projektet och hjälpte Laurer att skriva sitt förslag.

Laurers första försök med en streckkod använde Delta B. Den resulterande etikettstorleken var cirka sex tum med tre tum vilket var för stort. Crouse föreslog att Laurer skulle använda sin Delta C -streckkod och lämnade en kopia av hans patent som hade ett prov alfanumeriskt teckenuppsättning och regler för att generera andra storleksalfabet. Detta reducerade etikettstorleken till cirka 1,5 ”x 0,9”. Senare bad Laurer Crouse om hjälp med hur skannern kunde upptäcka en etikett. Tillsammans definierade de skyddsstänger och en definition av hur man upptäcker etiketten. Skyddsstängerna gav också identifikation för halv etikett diskriminering och träningsstänger för skannertröskelkretsarna. Laurer hade en fullständig etikettdefinition och fortsatte att skriva sitt förslag.

Tidigare hade Crouse en idé om en enkel trollstav som bärs som en ring och ett armband. Han bestämde sig för att utveckla den trollstaven för att ge en demonstration av etiketten.

Den 1 december 1972 presenterade IBM Laurers förslag för Super Market Committee i Rochester, Minnesota , där IBM skulle utveckla skannern. Under presentationen gav Crouse en laboratoriedemonstration där han läste UPC-liknande etiketter med sin ringstav. Förutom att han läste vanliga etiketter läste han den stora tvåsidiga mittfältetiketten i förslagshäftet. Han vände sig sedan till en sida som visar ett foto med märkta föremål som sitter på ett bord. Etiketterna var små och bristfälliga på grund av upplösningen på det tryckta fotot, men tryllstaven läste många av dem. Denna demonstration visade robustheten hos den rena Delta C -koden. Förslaget godtogs.

En månad senare, 1 januari 1973, överförde Crouse tillbaka till IBMs Advanced Technology -grupp, och Laurer stod kvar med hela ansvaret för etiketten.

Dymo Industries , tillverkare av handhållna utskriftsenheter, insisterade på att koden skulle vara oberoende av tecken, så att handhållna utskriftsenheter kunde producera streckkoden i butiken om produkterna inte streckkodades av tillverkarna. Dymos förslag accepterades av IBM och införlivades i IBMs senaste förslag.

Det bestämdes att etikettens två halvor skulle ha en annan uppsättning numeriska tecken. Teckenuppsättningen Laurer härledd från Delta C -patentet använde sju utskrivbara steg eller enheter där två staplar och två mellanslag skulle skrivas ut. Detta gav tjugo kombinationer av tecken, men det fanns två par som vid läsning av Delta C -regler gav samma kod för paret. Eftersom arton tecken inte räckte till försökte Laurer lägga till en enhet i teckenuppsättningen. Detta gav 26 Delta C-tecken som kunde ge de två uppsättningarna decimaltecken, men det gav också fjorton procent till etikettens bredd och därmed höjden. Detta skulle vara en trettio procent ökning av arean eller en etikett på 1,7 ”x1,03”. Laurer ansåg att detta inte var acceptabelt. Han återvände till den ursprungliga teckenuppsättningen med tjugo tecken men fyra av dem var två par med samma Delta C -läsning. Han bestämde sig för att använda dem alla. För att skilja mellan paren skulle han mäta en stapelbredd i vart och ett av paren för att skilja dem från varandra. För varje par skulle dessa staplar vara en eller två enheter breda. Laurer tillämpade inte Baumeisters ekvationer på den här uppsättningen. Han kände att bara en barbreddsmätning inte skulle vara för allvarlig. Som det visade sig skulle det ha krävts över femtio procents ökning i bredd och höjd för en arealökning på mer än dubbelt. Laurer erkände senare att dessa fyra tecken i varje uppsättning var ansvariga för de flesta skannerns läsfel.

David Savir, en matematiker, fick i uppgift att bevisa att symbolen kunde skrivas ut och skulle uppfylla tillförlitlighetskraven, och var troligtvis inte medveten om Baumeisters ekvationer. Han och Laurer lade till ytterligare två siffror till tio för felkorrigering och upptäckt . Sedan bestämde de sig för att lägga till udda/jämn paritet till antalet enheter fyllda med staplar på varje sida. Udda/jämn paritet är en teknik som används för att upptäcka alla udda antal bitfel i en bitström. De bestämde sig för att använda udda på ena halvan och till och med på den andra. Detta skulle ge ytterligare indikation på vilken halvbiljett som lästes. Detta innebar att varje stapelbredd måste läsas exakt för att ge en bra avläsning. Det innebar också att varje utrymme också skulle vara känt. Att kräva att varje bitbredd läses exakt i princip upphävde Delta C -fördelen utom Delta C -referensmätning. Endast den konstiga teckenuppsättningen och etikettens storlek återstår som en skugga av Delta C -koden. Storleken var fortfarande den som beräknades för rena Delta C. Om etikettstorleken hade räknats om ordentligt, med hänsyn till de nödvändiga stapelbreddsmätningarna hade etiketten varit alldeles för stor för att vara acceptabel.

Maskinteknik och elektronisk kretsdesign kräver vanligtvis design i värsta fall med hjälp av kända toleranser. Många ingenjörer som arbetar med streckkoder hade liten erfarenhet av sådant och använde lite intuitiva metoder. Detta var orsaken till dålig prestanda för Delta B -koden och troligtvis misslyckandet med RCA: s bull -eye -scanner.

Följande tabell visar de användbara etiketterna, tillgängliga i början av 1970 -talet, med deras storlekar.

Etikettyp Etikettmått Område
Bull's eye med Morse Code Stor Stor
Bull's eye med Delta B 300 mm i diameter 113,10 tum 2 (729,7 cm 2 )
Bull's eye med Delta A 230 mm diameter 63,62 tum 2 (410,5 cm 2 )
Baumeister 1st w/ Delta B 6,0 tum × 5,8 tum (150 mm × 150 mm) 34,80 i två (224,5 cm 2 )
Baumeister 2 halvor m/ Delta B 152 mm × 76 mm 18.00 i 2 (116,1 cm 2 )
Baumeister 2 halvor m/ Delta A 4,5 tum × 2,3 tum (114 mm × 58 mm) 10.35 i 2 (66,8 cm 2 )
Baumeister med Delta C 1,5 tum × 0,9 tum (38 mm × 23 mm) 1,35 i 2 (8,7 cm 2 )

Detta förutsätter ett bull's eye med samma information och tillförlitlig läsbarhet.

Sammansättning

Varje UPC-A streckkod består av en skannbar remsa av svarta staplar och vita mellanslag ovanför en sekvens av 12 numeriska siffror. Inga bokstäver , tecken eller annat innehåll av något slag får visas på en UPC-A-streckkod. Det finns en en-till-en-överensstämmelse mellan 12-siffriga nummer och remsa med svarta staplar och vita mellanslag, dvs det finns bara ett sätt att representera varje 12-siffrigt nummer visuellt och det finns bara ett sätt att representera varje remsa med svarta staplar och vita mellanslag numeriskt.

Det skannbara området för varje UPC-A-streckkod följer mönstret S L LLLLLMRRRR R E, där S (start), M (mitten) och E (slutet) skyddsmönster representeras på samma sätt på varje UPC-A-streckkod och L (vänster) och R (höger) sektioner representerar tillsammans de 12 numeriska siffrorna som gör varje UPC-A unik. Den första siffran L anger ett visst nummersystem som ska användas av följande siffror. Den sista siffran R är ett fel som upptäcker kontrollsiffran , som gör att vissa fel kan upptäckas vid skanning eller manuell inmatning. Vaktmönstren separerar de två grupperna med sex numeriska siffror och fastställer tidpunkten.

UPC-A UPC-E
UPC-A.png UPC-E.png

UPC-A 042100005264 motsvarar UPC-E 425261 med paritetsmönstret "EOEEOO", som definieras av UPC-A-nummersystem 0 och UPC-A-kontrollsiffra 4.

Formatering

UPC-A streckkoder kan skrivas ut i olika densiteter för att rymma en mängd olika utskrifts- och skanningsprocesser. Den signifikanta dimensionella parametern kallas x-dimension (bredden på ett modulelement). Bredden på varje stapel (mellanslag) bestäms genom att multiplicera x-dimensionen och modulbredden (1, 2, 3 eller 4 enheter) för varje stapel (mellanslag). Eftersom vaktmönstren var och en innehåller två staplar och var och en av de 12 siffrorna i UPC-A-streckkoden består av två staplar och två mellanslag, består alla UPC-A-streckkoder av exakt (3 × 2) + (12 × 2) = 30 staplar, varav 6 representerar skyddsmönster och 24 representerar numeriska siffror.

X-dimensionen för UPC-A vid den nominella storleken är 0,33 mm (0,013 "). Den nominella symbolhöjden för UPC-A är 25,9 mm (1,02"). Stavarna som bildar S (start), M (mitten) och E (slutet) skyddsmönster, förlängs nedåt med 5 gånger x-dimensionen, med en resulterande nominell symbolhöjd på 27,55 mm (1,08 "). Detta gäller även för staplarna i den första och sista numeriska siffran i UPC-A-streckkoden. UPC-A kan reduceras eller förstoras var som helst från 80% till 200%.

En tyst zon, med en bredd på minst 9 gånger x-dimensionen, måste finnas på varje sida av det skannbara området i UPC-A-streckkoden. För ett GTIN-12-nummer som är kodat i en UPC-A-streckkod placeras alltid de första och sista siffrorna i den läsbara tolkningen utanför symbolen för att indikera de tysta zoner som är nödvändiga för att UPC-streckkodsläsare ska fungera korrekt.

Kodning

UPC-A-streckkoden representeras visuellt av remsor av staplar och mellanslag som kodar UPC-A 12-siffriga nummer. Varje siffra representeras av ett unikt mönster med 2 staplar och 2 mellanslag. Staplarna och mellanslag har varierande bredd, dvs 1, 2, 3 eller 4 moduler breda. Den totala bredden för en siffra är alltid 7 moduler; följaktligen kräver UPC-A 12-siffrigt antal totalt 7 × 12 = 84 moduler.

En komplett UPC-A är 95 moduler bred: 84 moduler för siffrorna (L och R sektioner) kombinerat med 11 moduler för S (start), M (mitten) och E (slutet) skyddsmönster. S (start) och E (slutet) skyddsmönster är 3 moduler breda och använder mönsterfältet -mellanslag , där varje stapel och mellanslag är en modul bred. M (mitten) skyddsmönster är 5 moduler brett och använder mönstret space-bar-space-bar-space , där varje stapel och utrymme också är en modul bred. Dessutom kräver en UPC-A-symbol en tyst zon (extra utrymme på 9 moduler bred) före S (start) och efter E (slutet) skyddsmönster.

Kodar tabell för UPC-A streckkod mönster S L LLLLLMRRRRR R E
Lugn
zon
S
(start)
L
(vänster numerisk siffra)
M
(mitten)
R
(höger numerisk siffra)
E
(slut)
Lugn
zon
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9
UPC-A Q.svg UPC-A S.svg UPC-A L0.svg UPC-A L1.svg UPC-A L2.svg UPC-A L3.svg UPC-A L4.svg UPC-A L5.svg UPC-A L6.svg UPC-A L7.svg UPC-A L8.svg UPC-A L9.svg UPC-A M.svg UPC-A R0.svg UPC-A R1.svg UPC-A R2.svg UPC-A R3.svg UPC-A R4.svg UPC-A R5.svg UPC-A R6.svg UPC-A R7.svg UPC-A R8.svg UPC-A R9.svg UPC-A S.svg UPC-A Q.svg

UPC-A: s siffror på vänster sida (siffrorna till vänster om M (mitten) skyddsmönster) har udda paritet, vilket innebär att de svarta staplarnas totala bredd är ett udda antal moduler. Tvärtom, siffrorna på höger sida har jämn paritet. Följaktligen kan en UPC-skanner avgöra om den skannar en symbol från vänster till höger eller från höger till vänster (symbolen är upp och ner). Efter att ha sett ett S (start) eller E (slutet) skyddsmönster (de är samma, bar-mellanslag-bar , i vilken riktning de läses), kommer skannern först att se udda paritetssiffror, om man skannar från vänster till höger, eller till och med paritetssiffror om du skannar från höger till vänster. Med paritets-/riktningsinformation kommer en upp-och-ner-symbol inte att förvirra skannern. När den står inför en upp-och-ner-symbol kan skannern helt enkelt ignorera den (många skannrar alternerar vänster-till-höger och höger-till-vänster-skanning, så att de kommer att läsa symbolen vid en efterföljande passering) eller känna igen siffrorna och sätta dem i rätt ordning. Det finns en annan egenskap i sifferkodningen. Siffrorna på höger sida är den optiska inversen för de vänstra sidosiffrorna, dvs svarta staplar förvandlas till vita utrymmen och vice versa. Till exempel är vänster sida "4" mellanslag × 1 - stapel × 1 - mellanslag × 3 - stapel × 2 , medan höger sida "4" är stapel × 1 - mellanslag × 1 - stapel × 3 - mellanslag × 2 .

Numrering

Antalet UPC-A- och UPC-E-streckkoder begränsas av de standarder som används för att skapa dem.

UPC-A: (10 möjliga värden per vänster siffra ^ 6 vänstra siffror) × (10 möjliga värden per höger siffra ^ 5 högra siffror) = 100,000,000,000,000.
UPC-E: (10 möjliga värden per siffra ^ 6 siffror) × (2 möjliga paritetsmönster per UPC-E-tal) = 2 000 000.

Numbersystemsiffra

Nedan är beskrivning av alla möjliga talsystem med motsvarande 12-siffriga UPC-A numreringsschema L LLLLLRRRRR R , där L betecknar talsystemet siffra och R kontrollsiffra.

0–1, 6–9
För de flesta produkter. LLLLL -siffrorna är tillverkarkoden (tilldelad av den lokala GS1 -organisationen) och RRRRR -siffrorna är produktkoden.
2
Reserv för lokal användning (butik/lager), för artiklar som säljs med variabel vikt. Varier med varierande vikt, till exempel kött, färsk frukt eller grönsaker, tilldelas ett artikelnummer av butiken om de är förpackade där. I det här fallet är LLLLL artikelnumret och RRRRR är antingen vikten eller priset, med den första R som avgör vilken (0 för vikten).
3
Läkemedel efter National Drug Code (NDC) nummer. Läkemedel i USA använder UPC: s mellersta tio siffror som sitt NDC -nummer. Även om vanligtvis endast receptfria läkemedel skannas vid försäljningsstället, används NDC-baserade UPC på receptbelagda läkemedelsförpackningar och kirurgiska produkter och kallas i detta fall vanligtvis UPN-koder.
4
Reserverad för lokal användning (butik/lager), ofta för lojalitetskort eller butikskuponger.
5
Kuponger . LLLLL -siffrorna är tillverkarkoden, de tre första RRR är en familjekod (anges av tillverkaren) och de två nästa RR är en kupongkod som bestämmer rabattens storlek. Dessa kuponger kan fördubblas eller tredubblas.

Kontrollera siffror

UPC innehåller en kontrollsiffra för att upptäcka vanliga datainmatningsfel. UPC-A-koder väljer till exempel kontrollsiffran för att uppfylla kontrollsiffrans ekvation :

Om en angiven kod inte uppfyller ekvationen är den inte en giltig UPC-A.

UPC-A-kontrollsiffran kan beräknas enligt följande:

  1. Summa siffrorna på udda nummer (första, tredje, femte, ..., elfte).
  2. Multiplicera resultatet med 3.
  3. Lägg till siffran vid jämna nummer (andra, fjärde, sjätte, ..., tionde) till resultatet.
  4. Hitta resultatet modulo 10 (dvs resten när divideras med 10) och kalla det M .
  5. Om M är noll är kontrollsiffran 0; annars kontrollsiffran är 10 - M .

Till exempel, i en UPC-A-streckkod "03600029145 x 12 ", där x 12 är den okända kontrollsiffran, kan x 12 beräknas med:

  1. Summa de udda siffrorna (0 + 6 + 0 + 2 + 1 + 5 = 14).
  2. Multiplicera resultatet med 3 (14 × 3 = 42).
  3. Lägg till jämna siffror (42 + (3 + 0 + 0 + 9 + 4) = 58).
  4. Hitta resultatet modulo 10 (58 mod 10 = 8 = M ).
  5. Om M inte är 0, subtrahera M från 10 ( 10 - M = 10 - 8 = 2 ).

Således är kontrollsiffran x 12 2.

Kontrollsiffrans ekvation har valts för att ha rimliga feldetekteringsegenskaper (se Luhn -algoritm ).

  • UPC-A kan upptäcka 100% av ensiffriga fel.
    Ett ensiffrigt fel betyder att exakt en siffra är fel. Låt skillnaden modulo 10 för den felaktiga siffran och den korrekta siffran vara d . Värdet på d kan inte vara noll eftersom det betyder att siffrorna är desamma, men d kan vara vilket annat värde som helst i {1, 2, 3, 4, 5, 6, 7, 8, 9}. Om felsiffran är i ett udda läge (vikt 1), ändras vänstersidan av kontrollsiffrans ekvation med d och ekvivalensen är inte längre noll. Om felsiffran är i ett jämnt läge (vikt 3), ändras vänster sida med 3 d , men den ändringen är också noll -noll modulo 10, så att kontrollsiffran inte uppfylls.
  • UPC-A kan upptäcka cirka 89% av transponeringsfelen. Närmare bestämt, om och bara om skillnaden mellan två intilliggande siffror är 5, kan UPC-A inte upptäcka deras transponering.
    1. Om 2 närliggande siffror transponeras, kommer en av siffrorna a att vägas med 1, och den andra siffran b = a + d vägs med 3, där d är skillnaden mellan de två siffrorna. Om siffrorna var i rätt ordning skulle de bidra
      till vänster om kontrollsiffrans ekvation. I den införlivade ordningen bidrar de
      .
      till LHS. Att dra av de två bidragen ger hur mycket de ändrar LHS:
      Ett fel kommer att upptäckas så länge moduländringen är noll; om 2d ≡ 0 modulo 10, kommer ändringen inte att detekteras. Följaktligen är det bara när teckenskillnaden d ≡ 5 upptäcks ett fel (när d ≡ 0 är den degenererade "transpositionen" inte ett fel).
    2. Tänk sedan på hur ofta en transposition har avståndet d på 5.
Här är tabellen över d-transpositioner för UPC-A-streckkoder , där
Tabell över d -transpositioner för UPC -A -streckkoder
d
Nr
0 1 2 3 4 5 6 7 8 9
1 0 0 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9
2 1 1 1 2 13 1 4 15 16 17 18 1 9
3 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9
4 3 3 3 4 35 3 6 3 7 3 8 3 9
5 4 4 4 5 4 6 4 7 4 8 4 9
6 5 5 5 6 5 7 5 8 5 9
7 6 6 6 7 6 8 6 9
8 7 7 7 8 7 9
9 8 8 8 9
10 9 9
Belopp 10 18 16 14 12 10 8 6 4 2
Rad summa innehåller antalet d -transpositioner, därför är andelen icke -detekterbara transponeringsfel (ignorerar transpositionerna där d = 0 ):

Variationer

UPC hänvisar tekniskt till UPC-A i sin vanligaste användning.

Andra varianter av UPC finns:

  • UPC-B är en 12-siffrig version av UPC utan kontrollsiffra, utvecklad för National Drug Code (NDC) och National Health Related Items Code. Den har 11 siffror plus en 1-siffrig produktkod och är inte vanligt förekommande.
  • UPC-C är en 12-siffrig kod med en produktkod och en kontrollsiffra; inte i vanligt bruk.
  • UPC-D är en variabel längdkod (12 siffror eller mer) där den 12: e siffran är kontrollsiffran. Dessa versioner är inte vanligt förekommande.
  • UPC-E är en 6-siffrig kod, som har sin motsvarighet i UPC-A 12-siffrig kod med nummersystem 0 eller 1.
  • UPC-2 är ett tvåsiffrigt tillägg till UPC som används för att ange utgåvan av en tidning eller tidskrift.
  • UPC-5 är ett 5-siffrigt tillägg till UPC som används för att ange rekommenderat pris för böcker.

UPC-E

För att tillåta användning av UPC-streckkoder på mindre paket, där en fullständig 12-siffrig streckkod kanske inte passar, utvecklades en nollundertryckt version av UPC, kallad UPC-E, där nummersystemets siffra, alla efterföljande nollor i tillverkaren kod och alla ledande nollor i produktkoden undertrycks (utelämnas). Denna symbolik skiljer sig från UPC-A genom att den bara använder en 6-siffrig kod, inte använder M (mitt) skyddsmönster och E (slutet) skyddsmönster bildas som mellanslag-mellanslag-mellanslag-streck dvs. UPC-E-streckkoden följer mönstret SDDDDDDE. Det sätt på vilket en 6-siffrig UPC-E relaterar till en 12-siffrig UPC-A, bestäms av UPC-E numeriskt mönster och UPC-E paritetsmönster. Det kan bara motsvara UPC-A-nummersystemet 0 eller 1, vars värde, tillsammans med UPC-A-kontrollsiffran, bestämmer UPC-E-paritetsmönstret för kodningen. Med tillverkarens kodsiffror representerade av X och produktkodssiffror med N:

Sista UPC-E-siffran UPC-E numeriskt mönster UPC-A motsvarande
0 XXNNN0 0 eller 1 + XX000-00NNN + kontrollsiffra
1 XXNNN1 0 eller 1 + XX100-00NNN + kontrollsiffra
2 XXNNN2 0 eller 1 + XX200-00NNN + kontrollsiffra
3 XXXNN3 0 eller 1 + XXX00-000NN + kontrollsiffra
4 XXXXN4 0 eller 1 + XXXX0-0000N + kontrollsiffra
5 XXXXX5 0 eller 1 + XXXXX-00005 + kontrollsiffra
6 XXXXX6 0 eller 1 + XXXXX-00006 + kontrollsiffra
7 XXXXX7 0 eller 1 + XXXXX-00007 + kontrollsiffra
8 XXXXX8 0 eller 1 + XXXXX-00008 + kontrollsiffra
9 XXXXX9 0 eller 1 + XXXXX-00009 + kontrollsiffra

Till exempel kan en UPC-E 654321 motsvara UPC-A 065100004327 eller 165100004324, beroende på UPC-E-paritetsmönstret för de kodade siffrorna, såsom beskrivs nedan:

UPC-A
kontrollsiffra
UPC-E paritetsmönster för UPC-A

nummersystem 0

UPC-E paritetsmönster för UPC-A

nummersystem 1

0 EEEOOO OOOEEE
1 EEOEOO OOEOEE
2 EEOOEO OOEEOE
3 EEOOOE OOEEEO
4 EOEEOO OEOOEE
5 EOOEEO OEEOOE
6 EOOOEE OEEEOO
7 EOEOEO OEOEOE
8 EOEOOE OEOEEO
9 EOOEOE OEEOEO
Kodningstabell för UPC-E streckkodsmönster SDDDDDDE
S
(start)
O
(udda paritetssiffra)
E
(jämn paritetssiffra)
E
(slut)
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9
UPC-E S.svg UPC-E 0ow.svg
3-2-1-1
UPC-E 1ow.svg
2-2-2-1
UPC-E 2ow.svg
2-1-2-2
UPC-E 3ow.svg
1-4-1-1
UPC-E 4ow.svg
1-1-3-2
UPC-E 5ow.svg
1-2-3-1
UPC-E 6ow.svg
1-1-1-4
UPC-E 7ow.svg
1-3-1-2
UPC-E 8ow.svg
1-2-1-3
UPC-E 9ow.svg
3-1-1-2
UPC-E 0ew.svg
1-1-2-3
UPC-E 1ew.svg
1-2-2-2
UPC-E 2ew.svg
2-2-1-2
UPC-E 3ew.svg
1-1-4-1
UPC-E 4ew.svg
2-3-1-1
UPC-E 5ew.svg
1-3-2-1
UPC-E 6ew.svg
4-1-1-1
UPC-E 7ew.svg
2-1-3-1
UPC-E 8ew.svg
3-1-2-1
UPC-E 9ew.svg
2-1-1-3
UPC-E E.svg

UPC-E 654321 med "EOEOEO" paritetsmönster (UPC-A 065100004327) skulle kodas som

1-1-1 4-1-1-1 1-2-3-1 2-3-1-1 1-4-1-1 2-2-1-2 2-2-2-1 1-1 -1-1-1-1.

Streckkoden skulle se ut så här:

UPC-E-654321.png

EAN-13

Den EAN-13 utvecklades som en superset av UPC-A, lägga till en extra siffra i början av varje UPC-A-nummer. Detta utökade antalet unika värden teoretiskt möjligt med tio gånger till 1 biljon. EAN-13 streckkoder anger också i vilket land företaget som säljer produkten är baserat (vilket kanske är detsamma som det land där varan tillverkas). Kodens tre ledande siffror avgör detta enligt GS1 -landskoderna . Varje UPC-A-kod kan enkelt konverteras till motsvarande EAN-13-kod genom att förbereda 0-siffran till UPC-A-koden. Detta ändrar inte kontrollsiffran . Alla system för försäljning kan nu förstå båda lika.

EAN-8 är en åttasiffrig variant av EAN-streckkoden.

UPC -användningsanmärkningar:

  • Alla produkter som är märkta med ett EAN accepteras för närvarande i Nordamerika, förutom de som redan är märkta med en UPC.
  • Produkter med befintlig UPC behöver inte märkas om med en EAN.
  • I Nordamerika lägger EAN till 30% fler koder, främst genom att lägga till siffrorna 10 till 12 till UPC -siffrorna 00 till 09. Detta är ett kraftfullt incitament att fasa ut UPC.

Se även

Referenser

Vidare läsning

  • US 3832686 , Bilgutay, Ilhan M., "Bar Code Font", publicerad 11 maj 1972, utfärdat 27 augusti 1974 
  • US 3145291 , Brainerd, HB, "Identification System", publicerad 2 juli 1959, utfärdat 18 april 1964  Railroad streckkod.
  • US 3617707 , Shields, Charles B. & Roelif Stapelfeldt, "Automatic car identifier system", publicerad 17 augusti 1967, utfärdat 2 november 1971 
  • US 3723710 , Crouse, William G. & John E. Jones, "Method and Device for Reading and Decoding a High Density Self-Clocking Bar Code", publicerad 28 juni 1971, utfärdat 27 mars 1973 

externa länkar