UPC sau Universal Product Code (codul universal de produs) este un standard american de coduri de bare conceput pentru a urmări produsele din magazine. UPC a fost dezvoltat în 1973 de George Joseph Laurer , inginer la IBM Corporation . În iunie 1974, primul scaner UPC al NCR a fost instalat la Supermarketul Marsh din Troy, Ohio . Pe 26 iunie 1974, casieria acestui supermarket a scanat primul articol, o cutie de 10 gume de fructe Wrigley .
UCC (Uniform Code Council, Inc.) din Statele Unite și ECCC (Electronic Commerce Council of Canada) din Canada au fost implicate în standardizarea și înregistrarea codurilor UPC. În 2005, aceste organizații au fuzionat cu asociația europeană EAN pentru a forma organizația globală de standardizare GS1 . „Organizația Națională GS1 din Rusia” este reprezentantul acestei organizații în Federația Rusă.
Tipuri de coduri:
UPC-A | UPC-E |
---|---|
Codul UPC conține doar cifre și nu litere sau alte simboluri.
UPC-ul din 12 cifre este precursorul Codului îmbunătățit european EAN-13 , care codifică 13 cifre. Codul UPC este un caz special, un subset al codului EAN-13. Codul UPC este convertit în codul EAN-13 prin adăugarea unui zero înaintea celor douăsprezece cifre ale codului UPC. Adică produsul, al cărui cod de bare îl vedem în figura pentru acest articol, va avea codul EAN-13: 0 036000291452. Din acest motiv încep codurile pentru produsele fabricate în SUA sau Canada în codificare europeană. de la zero.
Este important ca „hașura” în sine într-o astfel de transformare, adică modelul EAN-13 pentru codurile corespunzătoare UPC, să fie identică cu „hașura” UPC. În acest fel, s-a asigurat compatibilitatea codurilor americane pentru citire în Europa fără nicio retipărire a etichetelor sau reambalare a mărfurilor.
Pentru mai multe informații despre codul EAN-13 și despre modul în care acesta diferă de UPC, consultați Numărul articolului european .
Codul UPC este un cod de bare liniar simplu și aproape simetric. Simplitatea, simetria și imunitatea ridicată la zgomot se datorează tehnologiei insuficient dezvoltate la momentul creării acestor coduri.
Codul este format din 2 grupuri de cifre, câte 6 cifre în fiecare grup - stânga și dreapta. Grupurile de numere sunt mărginite de așa-numitele modele de contur de protecție sau de închidere (modele de gardă). Aceste șabloane conțin linii de o singură lățime care sunt utilizate pentru a sincroniza scanerul de coduri de bare. Prezența a exact trei astfel de câmpuri se datorează în primul rând posibilei aplicări a unui cod de bare pe o suprafață rotunjită. Și dacă acum aceasta nu este o problemă specială, atunci în momentul creării acestui cod, scanerul trebuia să cunoască lățimea unei singure linii la începutul, mijlocul și sfârșitul codului. Modelele de gardă stânga și dreapta constau din 3 linii de lățime unitară - două întunecate și una deschisă între ele. Șablonul mediu de protecție este format din 5 lovituri - trei deschise și două întunecate. Orice altceva sunt numere.
Fiecare cifră din grupul din stânga sau din dreapta este codificată folosind patru linii: două deschise și două întunecate. Fiecare cursă poate avea o lățime relativă de una, două, trei sau patru unități. Lățimea totală a cursei pentru o singură cifră este întotdeauna de șapte unități. Modelul de biți pentru fiecare cifră este proiectat astfel încât cifrele să fie cât mai diferite unele de altele. Lungimea maximă a unei zone întunecate sau luminoase nu poate depăși patru unități. Lățimea totală a întregului cod este întotdeauna de 95 de unități. Există 29 de linii deschise și 30 de linii întunecate în orice cod. Toate aceste soluții tehnice sunt importante pentru fiabilitatea și ușurința scanării acestui cod.
Prima cifră a codului - acesta este așa-numitul prefix - are o anumită semnificație logică, dar nu este atât de importantă din punct de vedere tehnic. Ultima cifră este un număr de verificare, este folosită pentru a detecta o posibilă eroare la citirea codului cu un scaner sau introducerea manuală a numerelor de cod de la tastatură.
Direcția de citire a combinației de curse nu contează - codul a fost conceput astfel încât să fie la fel de ușor de citit atât în direcția înainte, cât și în cea înapoi (dacă produsul este răsturnat). De asemenea, nu contează ce design are întregul cod de bare - pozitiv sau negativ din punct de vedere fotografic: un cod de bare imprimat cu dungi deschise pe un fundal întunecat este citit în același mod ca și cu dungi întunecate pe un fundal deschis. Culorile de contur și de fundal nu trebuie să fie alb și negru, sunt posibile alte combinații de culori.
Zona „liniștită” . |
S (începe) |
L (codul din stânga) |
M (mijloc) |
R (codul din dreapta) |
E (sfârșit) |
Zona „liniștită” . | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | unu | 2 | 3 | patru | 5 | 6 | 7 | opt | 9 | 0 | unu | 2 | 3 | patru | 5 | 6 | 7 | opt | 9 | |||||
Număr | Cod stânga | Cod invers | Cod corect | Lățimea liniei |
---|---|---|---|---|
0 | 0001101 | 0100111 | 1110010 | 3-2-1-1 |
unu | 0011001 | 0110011 | 1100110 | 2-2-2-1 |
2 | 0010011 | 0011011 | 1101100 | 2-1-2-2 |
3 | 0111101 | 0100001 | 1000010 | 1-4-1-1 |
patru | 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 |
opt | 0110111 | 0001001 | 1001000 | 1-2-1-3 |
9 | 0001011 | 0010111 | 1110100 | 3-1-1-2 |
Probă | Stânga | Centrat | Pe dreapta |
---|---|---|---|
Șablon de gardă stânga | 101 | ||
Șablon de protecție mediu | 01010 | ||
Șablon de protecție corect | 101 |
La proiectarea structurii codului, în condițiile unei electronice încă nu prea avansate, a fost important să fie cât mai ușor de citit scanerului și să se simplifice hardware-ul scanerului în sine. Una dintre dificultăți a fost problema citirii probabile a codului în direcția opusă, adică citirea codului de pe produsul pe care casieria l-a adus la scaner „cu susul în jos”. Prin urmare, a fost foarte important ca alternanța dungilor să fie aceeași în ambele direcții - mai întâi o linie întunecată, apoi albă, apoi din nou întunecată și așa mai departe. Da, și ar fi, de asemenea, bine dacă poziția șabloanelor de protecție ar fi mereu în același loc.
Soluția a fost găsită. Puteți observa că codul arată foarte simetric, adică numărul de lovituri la dreapta și la stânga centrului este întotdeauna același, iar lățimea părților din dreapta și din stânga codului de bare este aceeași. Adică, mecanismul de citire a codului de bare este întotdeauna același, indiferent de modul în care ai transforma acest cod.
În ceea ce privește aceeași secvență de linii alternante de lumină și întuneric în timpul citirii înainte și înapoi, dezvoltatorii au reușit acest lucru prin faptul că codificarea grupurilor de numere din dreapta și din stânga este ușor diferită - caracterele din dreapta au un contur negativ fotografic în raport cu cele stângi. Adică, modelele de contur pentru aceeași cifră sunt identice, dar pozitive sau negative. Cu alte cuvinte, singura diferență este că, dacă pentru partea stângă a codului este o lovitură ușoară, atunci pentru dreapta este întuneric.
Problema recunoașterii lecturii înainte sau înapoi este la fel de ușor de rezolvat logic. De exemplu, dacă scanerul citește un număr cu o grosime a tractului de 3-2-1-1, atunci înțelege că acesta este numărul „zero” și citirea lui directă, iar dacă citește linii cu o grosime de 1-1 -2-3, atunci înțelege că acesta este același „zero”, dar citit în sens invers. La citirea numerelor care sunt codificate în oglindă în raport cu codificarea obișnuită, scanerul înțelege că întregul cod de bare este citit în direcția opusă, prin urmare, întreaga secvență rezultată de 12 cifre trebuie transmisă computerului în ordine inversă.
Toate acestea au fost o anumită reasigurare și exagerare după standardele moderne, dar anul era 1973.
În codul UPC-A (GTIN-12), cifra de verificare (cifra) este calculată după cum urmează:
De exemplu, cifra de verificare pentru codul de bare UPC-A prezentat în figura „03600029145X”, unde „X” este cifra de verificare pe care o căutați, este calculată prin adăugarea tuturor cifrelor impare (0+6+0+2+1 +5 = 14), înmulțit cu trei (14 × 3 = 42), rezultatul este însumat cu toate cifrele pare (42+3+0+0+9+4 = 58), toate, cu excepția ultimei cifre, sunt eliminate (58 mod 10 = 8), scăzut din 10 (10 − 8 = 2) și din nou, dacă este necesar, totul este aruncat, cu excepția ultimei cifre (2 mod 10 = 2). Numărul de cec dorit este numărul 2.
La citirea codului, corectitudinea citirii este verificată într-un mod similar, dar oarecum mai simplu:
Din punct de vedere tehnic, cifrele sunt procesate secvențial, într-o singură trecere, cu fiecare cifră înmulțită cu 1 sau 3, în funcție de uniformitatea poziției, adunând la sumă și luând restul modulo 10 al sumei curente. Cu alte cuvinte, zeci sunt imediat aruncate, ceea ce simplifică foarte mult mecanismul de calcul.
Dacă rezultatul este zero, atunci se decide că codul a fost citit corect, dacă orice altă cifră, atunci codul a fost citit incorect fără ambiguitate.
Acest cod a fost creat în primul rând pentru a automatiza comerțul cu produse produse de multe întreprinderi, astfel încât problema conținutului intern a fost, de asemenea, importantă pentru standardizare și reglementare, astfel încât diferitele întreprinderi să nu poată atribui același cod unui produs. Fiecare tip de produs nou produs trebuia să aibă propriul cod unic, iar aceasta a fost ideea principală a întregului sistem. Adică, dacă un producător produce, de exemplu, blugi, atunci blugii de diferite culori, mărimi și croi ar trebui să aibă coduri diferite. Adică, dacă este, de exemplu, 10 culori, 50 de tipuri, 20 de dimensiuni, atunci vor fi necesare zece mii de coduri pentru a le codifica.
La rândul său, același produs, dar de la întreprinderi de producție diferite, ar trebui să aibă și o codificare diferită. Toate acestea au fost importante pentru automatizarea contabilității în comerț, controlul automat al soldurilor produselor într-un depozit, rafturile magazinelor și așa mai departe.
Maximul teoretic al acestui cod este de 100 de miliarde de tipuri diferite de bunuri (11 cifre). Părea un număr mare. Dar teoria nu corespunde întotdeauna practicii, iar situația actuală este de așa natură încât, de mai bine de 30 de ani de existență a sistemului, aceste coduri nu au fost suficiente. Acest lucru se datorează cheltuielilor lor dezechilibrate și risipitoare.
Inițial, cele 11 cifre ale codului au fost distribuite după cum urmează:
Adică, teoretic, sistemul însemna până la șase sute de mii de întreprinderi (o sută de mii pe prefix), fiecare dintre acestea putând codifica până la o sută de mii de nume ale produselor sale.
Aceasta este prima cifră a codului. Împarte logic codurile în tipuri de produse fabricate.
Pentru codurile europene EAN-13, toate aceste prefixe americane par să înceapă cu zero, adică 01, 02, 03 și așa mai departe. După fuzionarea cu asociația europeană, GS1 America globală a primit prefixe suplimentare 10-13 în codificarea europeană, care vor fi folosite pentru a codifica produsul obișnuit.
Un cod de întreprindere este acea parte a codului care este atribuită de către organizația de reglementare întreprinderilor care doresc să-și codifice produsul. Codul întreprinderii, conform planului inițial, urma să ia 5 cifre plus prefixe rezervate pentru codificarea unui produs obișnuit. Astfel, a fost posibil să se înregistreze aproximativ șase sute de mii de întreprinderi. După cum sa dovedit, acest lucru nu este suficient. Codul companiei este situat în partea stângă a codului UPC.
Codul produsului ocupă primele 5 cifre din partea dreaptă a codului. Întreprinderea trebuia să codifice fiecare tip de produs cu propriul său cod unic. Codul 99999 este rezervat codificării întreprinderii în sine, pentru a asigura automatizarea fluxului de lucru.
Încărcarea semantică a numerelor din numele produsului: Contrar credinței populare, codul digital al produsului în sine (3-5 cifre) nu poartă nicio încărcătură semantică. Asociația recomandă atribuirea consecventă a codurilor pe măsură ce noi tipuri de produse sunt lansate fără a investi în acest cod nicio încărcare semantică suplimentară.
Pentru utilizarea UPC în cadrul întreprinderilor și organizațiilor comerciale sunt alocate toate codurile care încep cu cifra 2. Orice întreprindere le poate folosi în orice mod și la discreția sa, dar exclusiv în scopuri interne. Utilizarea acestor coduri în afara întreprinderii este interzisă. Conținutul intern al codurilor care încep cu 2 poate urma orice logică pe care aceasta sau acea întreprindere și-a stabilit-o (de obicei, aceștia sunt comercianți cu amănuntul) și poate conține prețul sau greutatea produsului sau orice alți parametri, iar această codificare este deosebit de des folosit pentru mărfuri cu greutate.
„Mit” despre cei trei șase codificați
Pentru a sincroniza citirea codului, George Laurer a furnizat 3 câmpuri speciale de protecție sau de închidere (Guard Patterns) - câmpul din stânga (LGP), câmpul central (CGP) și câmpul din dreapta (RGP). În figură, aceste câmpuri sunt evidențiate cu verde pentru claritate, de fapt sunt albe. Marginile din stânga și din dreapta au o lățime de trei unități, marginea din mijloc este de 5 unități (reamintim, codul oricărei cifre este de 7 unități). Legenda a apărut din cauza faptului că într-una dintre codificări (vezi tabelul de mai sus) numărul 6 este reprezentat de secvența 1010000, care poate fi percepută vizual ca două linii. Câmpurile de protecție (101 și 01010) arată și ele ca două lovituri, dar acest lucru nu are nimic de-a face cu codificarea numărului 6, cu excepția similitudinii vizuale. George Laurer însuși recunoaște o oarecare similitudine a acestor câmpuri cu codificarea celor șase, dar consideră acest lucru un accident. De asemenea, consideră un accident faptul că prenumele, prenumele și patronimul (George Joseph Laurer) să conțină câte șase litere. Nu există coduri trei șase în codul de bare UPC. [4] Pe de altă parte, Thomas Psaras, un informatician grec care nu are nimic de-a face cu religia, a spus: „Pentru a utiliza corect și cu acuratețe codul de bare, se folosesc linii de cod dublu ascunse pentru a separa informații, care denotă întâmplător. numărul 6 , la începutul, la mijloc și la sfârșitul oricărei informații numerice reproduse cu ajutorul unui cod de bare.
Codurile de bare | |
---|---|
Liniar |
|
2D |
|
Alte |
|
Articole similare | Comparația caracteristicilor codurilor de bare |