2020. szept. 15.

EAN 13, Pharmacode. Lovin' it!

Allriot
Nem, nem fogunk most globalizáció- és rendszerkritikát csinálni, hanem kifejezetten a bárkód-rendszert járjuk körül, csakis műszaki oldalról.  De te azért közben berakhatod a Shock to the system örök klasszikust, hátha a tudatalattid ökölbe szorul.

A két, számunkra leggyakrabban használt kódot nézzük meg. Az EAN13 kódolás elsőre sokkal bonyolultabbnak tűnik, mint a Pharmacode. Mert sokkal bonyolultabb is. Ezért haladjunk a könnyebbtől.

A Pharmacode (Laetus) egy nagyon egyszerű kódtípus (industry standard, quality control meg hasonló hangzatos kifejezésekkel bandázik szívesen). Csomagolóipar, főleg a gyógyszeripar eszköze, elvileg a nyomtatási hibák mellett is olvashatónak kell maradnia. Kevésbé érzékeny a színekre (nem mint például az EAN13). Nem szükséges egy szervezet, ami kiosztja a kódokat (pénzért), mindenki házon belül tudja használni. Ha ismered a kettes számrendszert, akkor már ezt is ismered. Vékony és vastag vonalakkal operál, tehát bináris. A világos közöknek nincs információhordozó szerepe (mint más kódok esetén), csakis elválasztja a vonalakat, illetve a kód előtt és után lennie kell egy világos csend-zónának (5-6mm).
Sima helyi értékes logika, mindig a legkisebb szabad helyi értéket töltjük fel vastag vonallal és úgy haladunk jobbról balra. Ha nem ismered a bináris számokat, akkor csak figyeld meg a sorozatot és magadtól is kitalálod, hogy kell kinéznie a 11-es számnak. Az IQ teszteken is hasonlók szoktak lenni, most megtudhatod, hogy vagy e olyan értelmes, mint egy kódolvasó. 

Mivel sima digitális kódsor, ezért fordítva beolvasva (a szimmetrikus elrendezéseket leszámítva) rossz számot fog adni, például a 4-est balról jobbra olvasva 5 lesz az eredmény, 8 helyett 11 és így tovább, de a csomagolóiparban nem is gyakran fordul elő, hogy egy doboz, vagy egy prospektus fordítva érkezzen a gyártósoron (dehogyis nem). 

Az ajánlás szerint 3 - 131.070 közötti egész számokat lehet kódolni ezzel (2 vékonytól - 16 vastag vonalig), de ettől eltérő infókat is kaptunk, hogy minimum két nem egyforma vonaltól felfele lehet használni (tehát csak 4-től felfele), de gyakorlatban simán használható 1-től felfele is. 

Van ez az online eszköz, pharmakódot is tud elvileg, de ne bízzatok benne, annyiszor szívattuk meg, ahányszor csak akartuk, például nem tud különbséget tenni a 16 vastag (131.070) és a  16 vékony  (16.383) vonal között se, ami azt jelenti, hogy nem tud különbséget tenni a 3-6, 7-14, 15-30, 31-62 és így tovább, számok között sem, mert ezek mind csak vékony, vagy mind csak vastag vonalakból állnak. Nem tudjuk mi az oka annak, hogy az androidos applikációk nem tudják olvasni ezt a kódtípust (mi egyet sem találtunk). Elképzelhető, hogy pont a fent említett problémákat nem tudják kezelni egy telefonos képen, szemben egy gyártósori Pharmakód olvasóval, ahol számos paraméter beállítása szavatolja a vonalak helyes értelmezését (nálunk a szakmai gyakorlat még a vonalak közötti fehér mező szélességét is előírja). 

Ezzel szemben az EAN13 rendszere sokkal komplexebb. Lássuk sikerül e elmagyarázni érthetőbben, mint ahogyan a neten megtaláltuk azt, mert annak alapján nekünk kellett 3 óra, mire képben lettünk.

Az európai 13 számú rendszer az UPC-A (amerikai 12 számos) továbbfejlesztett változata. Először az emberi olvasásra alkalmas számsort vegyük belőle, majd utána a vonalkódolást. Ahogy a neve is mutatja 13 számot jelöl. Ezt a GS1-től vásárolhatod meg.

Az utolsó szám (magentával jelölt fehér egyes) egy ellenőrző szám, amit a rendszer ad meg a 12 előző szám alapján, mégpedig a következő módon: jobbról balra haladva minden számot súlyoz 3-mal, majd 1-gyel, 3-mal, megint 1-gyel. Egy kép többet ér ezer szónál:

A számok összegét (esetünkben ez 99) a következő 10-zel maradék nélkül osztható számig kell felkerekíteni (ez a 100) és amennyivel kerekítünk, az lesz az ellenőrző számunk (a példában ez 1).  Ez a módszer egyes számok felcserélését, elgépelését rossz beolvasását kiszűri (számpárok felcserélését már nem). 

A számsor első 2-3 tagja (sárga színnel jelölve)  az ország kódja, Romániában ez 594, tehát minden itt gyártott terméken a bárkód 594... kezdetű lesz. Utána következik a gyártó saját kódja (kék színnel), ez is a GS1 hatásköre (nem ingyen), majd következik a termék saját kódja (rózsaszín), aminek a célja, hogy a cég által gyártott egyes termékeket azonosítani lehessen. Ezek együttes hossza összesen 9 szám, de változó lehet, hosszabb gyártói-, rövidebb termékkód, vagy fordítva. Ugyanis fenti fiktív példában a termék kódja 5 szám, vagyis 89123. Öt számjegyen 99,999 külön termék kódolható, amit nem minden gyártó tud kihasználni (ez pazarlása a szóba jöhető számsoroknak). Ezért kaphat a GS1-től olyan gyártói kódot is, ami hosszabb, mint 4 karakter, így a termékekre kevesebb szám jut. Mondjuk a legnagyobb csokigyárról se hiszem, hogy 999 féle csokinál többet gyártson egyszerre, és akkor ebben benne van a paprikás, a mentolos, a pukkanós, a himalájasós is.

Most a gép által értelmezhető vonalkódot nézzük. Minden EAN 13 kód 95 kétállású mezőből, modulból áll (szürke jelöléssel), ami lehet fekete vagy fehér (fényt ver vissza, fényt nyel el az olvasó felé).

Ebből egy bevezető vonalpár (3 modul fekete/fehér/fekete), egy záró vonalpár (szintén 3 modul fekete/fehér/fekete) és egy középső vékony vonalpár (5 modul: fehér/fekete/fehér/fekete/fehér) mindig konstans. Ezek a vonalpárok nem kódolnak számokat, de tagolják a kódot. A középjeltől balra és jobbra 6-6 karakter (42-42 modul) kódolható el.

Értelemszerűen egy számot 7 modullal kódolnak (95-3-5-3=84/12=7), de nem úgy mint a pharmakód esetén (ez 2^7 vagyis 128 külön jel lehetne kódolni, amire itt nincs szükség mert csak 0-9 között kell kódoljunk). Ráadásul nem lenne védelem a fordítva beolvasás ellen - ahogy a Pharmacodenál nincsen. Tehát inkább mintázat-kódokat használnak, mégpedig 3 különböző kódtáblát használnak, ezeket nevezzük Left - kék, Right - piros és G-zöld kódolásnak.

A jobboldali  6 számot mindig R mintázattal kódolják el. Az baloldali 6 szám elkódolására pedig 2 külön mintázatot használnak. A kék az L - vagyis left tábla, ezt az UPC-ből örökölte (ahol csak left és right patterneket használtak). És melléje bejön még a zöld is, vagyis a G, aminek a nevére nem találtunk utalást. Forrás: wikipédia - így kódolnak az egyes táblák számokat. Mint említettük 7 mezőn 2^7 vagyis 128 variáció kódolható, de ebben a háromtáblás rendszerben csak 3 X 0-9, vagyis összesen csak a 30 legpraktikusabb mintázatot használjuk fel a 128-ból.


Az L mintázat az R mintázat bitenkénti negáltja, A G mintázat pedig R fordítottja (180 fokban). Ez jól látszik, hogyha egymásra tesszük. 

Ugyanez a wikipédiáról számokban, 0 fehér (space), 1 fekete (bar) modult jelöl:
Encoding of the digits
DigitL-codeG-codeR-code
0000110101001111110010
1001100101100111100110
2001001100110111101100
3011110101000011000010
4010001100111011011100
5011000101110011001110
6010111100001011010000
7011101100100011000100
8011011100010011001000
9000101100101111110100
Jól látszik, hogy az L mindig páratlan paritású (az egyesek összege mindig páratlan szám), az R és a G pedig mindig páros (hiszen csak egymás fordítottjai de az L-nek a negáltjai). Mivel minden EAN13 L-el kezdődik és R-re végződik, ezért kiküszöbölhető a fordítva beolvasás hibája, amit a Pharmacode például nem kezel le. 

Na de miért nem lehetne a baloldali 6 számot is csak egyetlen (L) patternnel kódolni? Remélem feltűnt, hogy még nem esett szó a legelső számról, ami a kódon kívül balra helyezkedik el. Nem véletlenül, hiszen ezt nem 7 fekete/fehér modul kódolja valamelyik R, L, vagy G pattern alapján, hanem az első 6 karakter elkódolására használt mintázat adja ki. Mégpedig így: 
Structure of EAN-13
First digitFirst group of 6 digitsLast group of 6 digits
0LLLLLLRRRRRR
1LLGLGGRRRRRR
2LLGGLGRRRRRR
3LLGGGLRRRRRR
4LGLLGGRRRRRR
5LGGLLGRRRRRR
6LGGGLLRRRRRR
7LGLGLGRRRRRR
8LGLGGLRRRRRR
9LGGLGLRRRRRR
Tehát a mi fiktív példánkban LLGLGG vagyis: 1
Na, vajon sikerült érthetően összefoglalni?

Limitek között egy EAN13 mérete variálható, a 100% kód az SC2 26*35mm körüli, majdnem minden androidos app képes olvasni. Ez meg itt egy online kódkereső, ami megmondja melyik cégé az adott kód., de eddig már úgyse jutott el senki az olvasásban.

Nincsenek megjegyzések:

Megjegyzés küldése