UPC tai Universal Product Code (yleinen tuotekoodi) on amerikkalainen viivakoodistandardi , joka on suunniteltu seuraamaan kaupoissa olevia tuotteita. UPC:n kehitti vuonna 1973 IBM Corporationin insinööri George Joseph Laurer . Kesäkuussa 1974 NCR :n ensimmäinen UPC-skanneri asennettiin Marsh Supermarketiin Troyssa, Ohiossa . 26. kesäkuuta 1974 tämän supermarketin kassa skannasi ensimmäisen tuotteen, laatikon, jossa oli 10 Wrigley - hedelmäkumia .
UCC (Uniform Code Council, Inc.) Yhdysvalloissa ja ECCC (Electronic Commerce Council of Canada) Kanadassa osallistuivat UPC-koodien standardointiin ja rekisteröintiin. Vuonna 2005 nämä organisaatiot sulautuivat eurooppalaiseen EAN-yhdistykseen ja muodostivat maailmanlaajuisen standardointijärjestön GS1 :n . "Venäjän kansallinen GS1-organisaatio" on tämän organisaation edustaja Venäjän federaatiossa.
Koodityypit:
UPC-A | UPC-E |
---|---|
UPC-koodi sisältää vain numeroita, ei kirjaimia tai muita symboleja.
12-numeroinen UPC on eurooppalaisen EAN-13 Improved Code -koodin esikuva , joka koodaa 13 numeroa. UPC-koodi on erikoistapaus, EAN-13-koodin osajoukko. UPC-koodi muunnetaan EAN-13-koodiksi lisäämällä nolla ennen UPC-koodin kahtatoista numeroa. Eli tuotteella, jonka viivakoodin näemme tämän artikkelin kuvassa, on EAN-13-koodi: 0 036000291452. Tästä syystä Yhdysvalloissa tai Kanadassa valmistettujen tuotteiden koodit alkavat eurooppalaisella koodauksella. nollasta.
On tärkeää, että itse "viivous" sellaisessa muunnoksessa eli UPC:tä vastaavien koodien EAN-13-kuvio on identtinen UPC:n "viivouksen" kanssa. Tällä tavalla varmistettiin amerikkalaisten koodien yhteensopivuus Euroopassa lukemista varten ilman tarrojen uudelleenpainottamista tai tavaroiden uudelleen pakkaamista.
Lisätietoja EAN-13-koodista ja sen eroista UPC:stä on eurooppalaisessa artikkelinumerossa .
UPC-koodi on yksinkertainen ja lähes symmetrinen lineaarinen viivakoodi. Yksinkertaisuus, symmetria ja korkea kohinansieto johtuvat riittämättömästä tekniikasta näiden koodien luomishetkellä.
Koodi koostuu 2 numeroryhmästä, 6 numeroa kussakin ryhmässä - vasen ja oikea. Numeroryhmiä rajaavat niin sanotut suojaavat tai sulkevat viivakuviot (Guard Patterns). Nämä mallit sisältävät yhden leveyden viivoja, joita käytetään viivakoodinlukijan synkronointiin. Täsmälleen kolmen tällaisen kentän olemassaolo johtuu ensisijaisesti mahdollisesta viivakoodin käytöstä pyöristetylle pinnalle. Ja jos nyt tämä ei ole erityinen ongelma, niin tätä koodia luotaessa skannerin piti tietää yhden vedon leveys koodin alussa, keskellä ja lopussa. Vasen ja oikea suojakuviot koostuvat kolmesta yksikön leveydestä - kahdesta tummasta ja yhdestä vaaleasta niiden välissä. Keskimääräinen suojamalli koostuu viidestä vedosta - kolme vaaleaa ja kaksi tummaa. Kaikki muu on numeroita.
Jokainen vasemman tai oikean ryhmän numero on koodattu neljällä vedolla: kaksi vaaleaa ja kaksi tummaa. Jokaisen vedon suhteellinen leveys voi olla yksi, kaksi, kolme tai neljä yksikköä. Yhden numeron viivan kokonaisleveys on aina seitsemän yksikköä. Jokaisen numeron bittikuvio on suunniteltu siten, että numerot ovat mahdollisimman erilaisia. Tumman tai vaalean alueen enimmäispituus ei saa ylittää neljää yksikköä. Koko koodin kokonaisleveys on aina 95 yksikköä. Missä tahansa koodissa on 29 vaaleaa ja 30 tummaa viivaa. Kaikki nämä tekniset ratkaisut ovat tärkeitä tämän koodin luotettavuuden ja helppouden kannalta.
Koodin ensimmäisellä numerolla - tämä on ns. etuliite - on jokin looginen merkitys, mutta se ei ole niin tärkeä teknisestä näkökulmasta. Viimeinen numero on tarkistusnumero, sitä käytetään mahdollisen virheen havaitsemiseen luettaessa koodia skannerilla tai syötettäessä koodinumeroita manuaalisesti näppäimistöltä.
Vetoyhdistelmän lukusuunnalla ei ole väliä - koodi on suunniteltu niin, että se on yhtä helppo lukea sekä eteen- että taaksepäin (jos tuote käännetään ylösalaisin). Sillä ei myöskään ole väliä, millainen muotoilu koko viivakoodilla on - valokuvallisesti positiivinen vai negatiivinen: tummalle taustalle vaaleilla raidoilla painettu viivakoodi luetaan samalla tavalla kuin tummia raitoja vaalealla taustalla. Viivan ja taustan värien ei tarvitse olla valkoista ja mustaa, muut väriyhdistelmät ovat mahdollisia.
"Hiljainen" vyöhyke |
S (aloitus) |
L (vasen koodi) |
M (keskellä) |
R (oikea koodi) |
E (loppu) |
"Hiljainen" vyöhyke | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | yksi | 2 | 3 | neljä | 5 | 6 | 7 | kahdeksan | 9 | 0 | yksi | 2 | 3 | neljä | 5 | 6 | 7 | kahdeksan | 9 | |||||
Määrä | Vasen koodi | Käänteinen koodi | Oikea koodi | Viivan leveys |
---|---|---|---|---|
0 | 0001101 | 0100111 | 1110010 | 3-2-1-1 |
yksi | 0011001 | 0110011 | 1100110 | 2-2-2-1 |
2 | 0010011 | 0011011 | 1101100 | 2-1-2-2 |
3 | 0111101 | 0100001 | 1000010 | 1-4-1-1 |
neljä | 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 |
kahdeksan | 0110111 | 0001001 | 1001000 | 1-2-1-3 |
9 | 0001011 | 0010111 | 1110100 | 3-1-1-2 |
Näyte | Vasen | Keskitetty | Oikealla |
---|---|---|---|
Vasemman suojan malli | 101 | ||
Keskikokoinen suojaava malli | 01010 | ||
Oikea suojamalli | 101 |
Koodin rakennetta suunniteltaessa, ei vielä kovin kehittyneen elektroniikan olosuhteissa, oli tärkeää tehdä skannerin lukemisesta mahdollisimman helppoa ja yksinkertaistaa itse skannerin laitteistoa. Yksi vaikeuksista oli ongelma, joka koski koodin todennäköistä lukemista päinvastaiseen suuntaan, eli tuotteen koodin lukemiseen, jonka kassa toi skannerille "ylös alaspäin". Siksi oli erittäin tärkeää, että raitojen vuorottelu on sama molempiin suuntiin - ensin tumma veto, sitten valkoinen, sitten taas tumma ja niin edelleen. Kyllä, ja olisi myös mukavaa, jos suojamallien sijainti olisi aina samassa paikassa.
Ratkaisu on löydetty. Voit huomata, että koodi näyttää erittäin symmetriseltä, eli vedon määrä oikealla ja vasemmalla keskellä on aina sama ja viivakoodin oikean ja vasemman osan leveys ovat samat. Eli viivakoodin lukumekanismi on aina sama, riippumatta siitä, kuinka käännät tätä koodia.
Mitä tulee samaan vuorottelevien vaaleiden ja tummien vetojen sarjaan eteenpäin ja taaksepäin luettaessa, kehittäjät saavuttivat tämän sillä tosiasialla, että oikean ja vasemman numeroryhmän koodaus on hieman erilainen - oikeilla merkeillä on valokuvallisesti negatiivinen ääriviiva suhteessa numeroon. vasemmat. Eli saman numeron vetokuviot ovat identtisiä, mutta positiivisia tai negatiivisia. Toisin sanoen, ainoa ero on, että jos koodin vasemmalla puolella se on vaalea veto, niin oikealla se on tumma.
Eteenpäin tai taaksepäin lukemisen tunnistamisen ongelma on yhtä helposti ratkaistavissa loogisesti. Jos skanneri esimerkiksi lukee luvun, jonka vetopaksuus on 3-2-1-1, se ymmärtää, että tämä on luku "nolla" ja sen suora lukema, ja jos se lukee lyöntejä, joiden paksuus on 1-1 -2-3, niin se ymmärtää, että tämä on sama "nolla", mutta lue päinvastaiseen suuntaan. Lukeessaan numeroita, jotka on peilikoodattu tavanomaiseen koodaukseen nähden, skanneri ymmärtää, että koko viivakoodi luetaan vastakkaiseen suuntaan, joten koko tuloksena oleva 12 numeron sarja on lähetettävä tietokoneelle käänteisessä järjestyksessä.
Kaikki tämä oli tiettyä jälleenvakuutusta ja ylilyöntiä nykyaikaisin standardein, mutta vuosi oli 1973.
UPC-A (GTIN-12) -koodissa tarkistusnumero (numero) lasketaan seuraavasti:
Esimerkiksi kuvassa "03600029145X" näkyvä UPC-A-viivakoodin tarkistusnumero, jossa "X" on etsimäsi tarkistusnumero, lasketaan laskemalla yhteen kaikki parittomat numerot (0+6+0+2+1 +5 = 14), kerrottuna kolmella (14 × 3 = 42), tulos lasketaan yhteen parillisilla numeroilla (42+3+0+0+9+4 = 58), kaikki paitsi viimeinen numero hylätään (58 mod 10 = 8), vähennetään luvusta 10 (10 − 8 = 2) ja uudelleen tarvittaessa hylätään kaikki paitsi viimeinen numero (2 mod 10 = 2). Haluttu sekkinumero on numero 2.
Koodia luettaessa lukeman oikeellisuus tarkistetaan samalla tavalla, mutta hieman yksinkertaisemmin:
Teknisesti numerot käsitellään peräkkäin, yhdellä ajolla, jolloin jokainen numero kerrotaan 1:llä tai 3:lla paikan tasaisuudesta riippuen, summaan lisätään ja jäännös modulo 10 otetaan nykyisestä summasta. Toisin sanoen kymmenet hylätään välittömästi, mikä yksinkertaistaa huomattavasti laskentamekanismia.
Jos tulos on nolla, päätetään, että koodi luettiin oikein, jos jokin muu numero, niin koodi luettiin yksiselitteisesti väärin.
Tämä koodi luotiin ensisijaisesti automatisoimaan monien yritysten valmistamien tuotteiden kauppaa, joten sisäinen sisältö oli tärkeä myös standardoinnin ja sääntelyn kannalta, jotta eri yritykset eivät voineet antaa samaa koodia tuotteelle. Jokaisella äskettäin valmistetulla tuotetyypillä oli oltava oma ainutlaatuinen koodinsa, ja tämä oli koko järjestelmän pääidea. Eli jos valmistaja valmistaa esimerkiksi farkkuja, niin erivärisillä, -kokoisilla ja -leikkauksilla olevilla farkuilla tulee olla eri koodit. Eli jos kyseessä on esimerkiksi 10 väriä, 50 tyyppiä, 20 kokoa, niiden koodaamiseen tarvitaan kymmenen tuhatta koodia.
Samalla tuotteella, mutta eri valmistajilta, tulisi puolestaan olla erilainen koodaus. Kaikki tämä oli tärkeää kaupan kirjanpidon automatisoinnissa, varaston, myymälän hyllyjen ja muiden tuotteiden saldojen automaattisessa hallinnassa.
Tämän koodin teoreettinen enimmäismäärä on 100 miljardia erilaista tavaraa (11 numeroa). Se tuntui valtavalta määrältä. Mutta teoria ei aina vastaa käytäntöä, ja nykyinen tilanne on sellainen, että yli 30 vuoden järjestelmän olemassaolon aikana nämä koodit eivät ole riittäneet. Tämä johtuu heidän epätasapainoisesta ja turhasta kulumisestaan.
Aluksi koodin 11 numeroa jaettiin seuraavasti:
Eli teoriassa järjestelmä tarkoitti jopa kuusisataatuhatta yritystä (satatuhatta etuliitettä kohti), joista kukin pystyi koodaamaan jopa satatuhatta tuotteidensa nimeä.
Tämä on koodin ensimmäinen numero. Jakaa koodit loogisesti valmistettujen tuotteiden tyyppeihin.
Eurooppalaisissa EAN-13-koodeissa kaikki nämä amerikkalaiset etuliitteet näyttävät alkavan nollalla, eli 01, 02, 03 ja niin edelleen. Eurooppalaisen yhdistyksen kanssa sulautumisen jälkeen globaalille GS1 Americalle annettiin eurooppalaisessa koodauksessa lisäetuliitteet 10-13, joita käytetään koodaamaan tavallinen tuote.
Yrityskoodi on se osa koodista, jonka sääntelyorganisaatio antaa yrityksille, jotka haluavat koodata tuotteensa. Alkuperäisen suunnitelman mukaan yrityskoodin piti olla 5 numeroa plus tavallisen tuotteen koodaamiseen varatut etuliitteet. Näin ollen oli mahdollista rekisteröidä noin kuusisataa tuhatta yritystä. Kuten kävi ilmi, tämä ei riitä. Yrityskoodi sijaitsee UPC-koodin vasemmalla puolella.
Tuotekoodi on koodin oikean puolen 5 ensimmäistä numeroa. Yrityksen oli koodattava jokainen tuotetyyppi omalla yksilöllisellä koodillaan. Koodi 99999 on varattu yrityksen itsensä koodaamiseen työnkulun automatisoinnin varmistamiseksi.
Numeroiden semanttinen kuorma tuotteen nimessä: Toisin kuin yleisesti luullaan, itse tuotteen digitaalinen koodi (3-5 numeroa) ei kanna semanttista kuormaa. Yhdistys suosittelee koodien johdonmukaista osoittamista, kun uudentyyppisiä tuotteita julkaistaan investoimatta tähän koodiin mitään ylimääräistä semanttista kuormitusta.
UPC:n käyttöön yrityksissä ja toimialajärjestöissä on allokoitu kaikki koodit, jotka alkavat numerolla 2. Jokainen yritys voi käyttää niitä millä tahansa tavalla ja oman harkintansa mukaan, mutta yksinomaan omiin sisäisiin tarkoituksiinsa. Näiden koodien käyttö yrityksen ulkopuolella on kielletty. 2-alkuisten koodien sisäinen sisältö voi seurata mitä tahansa logiikkaa, jonka tämä tai tuo yritys on itselleen asettanut (yleensä nämä ovat jälleenmyyjiä), ja se voi sisältää tuotteen hinnan tai painon tai mitä tahansa muita parametreja, ja tämä koodaus on erityisen usein käytetään painotavaroihin.
"Myytti" koodatusta kolmesta kuutosta
Koodin lukemisen synkronoimiseksi George Laurer toimitti 3 erityistä suojaavaa tai sulkevaa kenttää (Guard Patterns) - vasemman kentän (LGP), keskikentän (CGP) ja oikean kentän (RGP). Kuvassa nämä kentät on korostettu vihreällä selvyyden vuoksi, itse asiassa ne ovat valkoisia. Vasen ja oikea marginaali ovat kolme yksikköä leveät, keskimarginaali 5 yksikköä leveä (muista, minkä tahansa numeron koodi on 7 yksikköä leveä). Legenda syntyi siitä syystä, että yhdessä koodauksessa (katso yllä oleva taulukko) numeroa 6 edustaa sekvenssi 1010000, joka voidaan visuaalisesti havaita kahdeksi vedoksi. Suojakentät (101 ja 01010) näyttävät myös kahdelta vedolta, mutta tällä ei ole mitään tekemistä luvun 6 koodauksen kanssa, paitsi visuaalinen samankaltaisuus. George Laurer itse tunnistaa näiden kenttien jonkinlaisen samankaltaisuuden kuuden koodauksen kanssa, mutta pitää tätä sattumana. Hän pitää myös sattumana, että hänen etunimensä, sukunimensä ja sukunimensä (George Joseph Laurer) sisältävät kuusi kirjainta. UPC-viivakoodissa ei ole koodattua kolmea kuutosta. [4] Toisaalta kreikkalainen tietojenkäsittelytieteilijä Thomas Psaras, jolla ei ole mitään tekemistä uskonnon kanssa, sanoi: "Jotta viivakoodia voidaan käyttää oikein ja tarkasti, piilotettuja kaksoiskoodin viivoja käytetään erottamaan tiedot, jotka sattumalta osoittavat numero 6 viivakoodilla toistettujen numeeristen tietojen alussa, keskellä ja lopussa.
Viivakoodit | |
---|---|
Lineaarinen |
|
2D |
|
muu |
|
Aiheeseen liittyvät artikkelit | Viivakoodien ominaisuuksien vertailu |