Vonalkód technika alapjai
Mi is a vonalkód? A vonalkód egy számokból és betűkből álló azonosító kódolt formája, amely gépekkel optikailag leolvasható. A vonalkód kizárólag egy azonosítót, hivatkozást jelöl, amely egy adatbázis meghatározott elemére mutat. Minden egyéb információ, például egy termék ára, vagy az aktuális raktárkészlet az adatbázisban kerül tárolásra.
Mielőtt belemerülnénk a vonalkódok világába: az Ident az azonosítástechnikai rendszerek szakértőjeként nem csak információkat kínál ezen az oldalon. Rendkívül szerteágazó a termékpalettánk többek között a vonalkódolvasók terén is. A kézi / állványos változatoktól kezdve, a pultba építhető és pultra szerelhető típusokon keresztül a vezeték nélküli vonalkódolvasókig sokféle eszköz közül választhat – ajánlatkérése pedig minden esetben ingyenes!
Vonalkódok két fő típusa
Léteznek 1 dimenziós (1D) és 2 dimenziós (2D) vonalkódok. Az alábbiakban részletesen ismertetjük a legelterjedtebb 1 és 2 dimenziós vonalkódokat.
1D
1D: A különböző vastagságú függőleges sötét vonalak és világos közök meghatározott váltakozása fejezi ki az információt a leolvasók számára.
EAN 13 vonalkód
Az EAN 13 vonalkód világszerte elterjedt a kiskereskedelemben. Az EAN 13 vonalkód 13 karaktert kódol: az első két vagy három vonal az országkód mely jelezi, hogy melyik országban regisztrált a gyártó. Az országkódot fojtatja 9 vagy 10 adat jegyszám, és egy ellenőrző szám (checksum). Az EAN 13 vonalkód két vagy öt jegyszámú kiegészítő vonalkóddal bővíthető, így elérhető a 14 vagy 17 jegyszámú vonalkód. Az ellenőrző szám a következő módon képződik: (Modulo 10 kalkuláció checkszum):
- Add össze a páros számú számjegyeket: 2, 4, 6, stb.
- Az eredményt 3 -al beszorozni.
- Add össze a páratlan számú számjegyeket: 1, 3, 5, stb.
- Add össze a 2. és 3. végeredményét.
- A check karakter a legkisebb szám mely a 4. lépéshez adható, hogy a 10 többszöröse legyen az eredmény.
Például: Legyen a vonalkód adata = 001234567890
- 0 + 2 + 4 + 6 + 8 + 0 = 20
- 20 * 3 = 60
- 0 + 1 + 3 + 5 + 7 + 9 = 25
- 60 + 25 = 85
- 85 + X = 90 (10 többszöröse legyen az eredmény), tehát X = 5 (checkszum)
Visual Basic minta funkció a checkszum kikalkulálásához: Function Append_EAN_Checksum (RawString as String) Dim Position as Integer Dim CheckSum as Integer CheckSum = 0 For Position = 2 to 12 step 2 Checksum = Checksum + Val(Mid$(RawString, Position, 1)) Next Position CheckSum = CheckSum * 3 For Position = 1 to 11 Step 2 CheckSum = CheckSum + Val(Mid$(RawString, Position, 1)) Next Position CheckSum = CheckSum Mod 10 CheckSum = 10 – CheckSum If CheckSum = 10 Then CheckSum = 0 End If Append_Ean_Checksum = RawString & Format$(CheckSum, “0”) End Function
EAN 13 vonalkód országkódok
A listában találhatóak a vonalkódok megfejtéséhez szükséges országkódok. Magyarország EAN 13 országkódja az 599 – vagyis ezzel a számmla kezdődik minden forgalomba hozott magyar termék kódja.
Kód | Ország | Kód | Ország |
00 – 09 | Amerikai Egyesült Államok | 10 – 19 | Lefoglalt EAN-hez csatlakozó UCC (USA) |
20 – 29 | Kiskereskedelmek és kiszállítók lokális használatára | 30-37 | Franciaország |
400 – 440 | Németország | 45 | Japán |
46 | Oroszország | 471 | Tajvan |
474 | Észtország | 475 | Lettország |
477 | Litvánia | 479 | Srí Lanka |
480 | Fülöp-szigetek | 481 | Fehéroroszország |
482 | Ukrajna | 484 | Moldva |
485 | Örményország | 486 | Grúzia |
487 | Kazahsztán | 489 | Hong Kong |
49 | Japán | 50 | Egyesült Királyság |
520 | Görögország | 528 | Libanon |
529 | Ciprus | 531 | Macedónia |
535 | Málta | 539 | Írország</td |
54 | Belgium és Luxembourg | 560 | Portugália |
569 | Izland | 57 | Dánia |
590 | Lengyelország | 594 | Románia |
599 | Magyarország | 600 – 601 | Dél Afrika |
609 | Mauritius | 611 | Marokkó |
613 | Algéria | 619 | Tunézia |
622 | Egyiptom | 625 | Jordánia |
626 | Irán | 64 | Finnország |
690 – 692 | Kína | 70 | Norvégia |
729 | Izrael | 73 | Svédország |
740 – 745 | Guatemala, El Salvador, Honduras, Nicaragua, Costa Rica, Panama | 746 | Dominikai Köztársaság |
750 | Mexikó | 759 | Venezuela |
76 | Svájc | 770 | Kolumbia |
773 | Uruguay | 775 | Peru |
777 | Bolívia | 779 | Argentína |
780 | Chile | 784 | Paraguay |
785 | Peru | 786 | Ecuador |
789 | Brazília | 80 – 83 | Olaszország |
84 | Spanyolország | 850 | Kuba |
858 | Szlovákia | 859 | Csehország |
860 | Jugoszlávia | 869 | Törökország |
87 | Hollandia | 880 | Dél Korea |
885 | Thaiföld | 888 | Szingapúr |
890 | India | 893 | Vietnam |
899 | Indonézia | 90 – 91 | Ausztria |
93 | Ausztrália | 94 | Új-Zéland |
955 | Malajzia | 959 | Pápua Új-Guinea |
977 | Periodikusok (ISSN) | 978 | Könyvek (ISBN) |
979 | Zene (ISMN) | 980 | Visszafizetési receptek |
EAN 8 vonalkód
Az EAN 8 vonalkód, az EAN-13 kód rövidített változata. Az első két vagy három vonal az országkód, 4 of 5 adat számjegy (az országkód hosszúságán függő), és a checkszum. Az EAN 8 vonalkód 2 vagy 5 számjegyes kiegészítéssel bővíthető. Az EAN 8 vonalkód fő célja, hogy minél kisebb helyet foglaljon el. Az EAN 8 vonalkód azonosítja a gyártót és a gyártmányt. Mivel az EAN 8 vonalkód esetében kisebb az országonként alkalmazható kódtartomány, mint az EAN 13-nál , az EAN 8 vonalkód-ot csak olyan gyártmányokra teszik, melyre nem fér rá a EAN-13 .
– Átfedés kettő az ötből (interleaved 2 of 5) vonalkód
– Codebar vonalkód
Code 39 vonalkód
A Code 39 vonalkód szimbológiát különböző iparágak használják, és állami vonalkód standard is. Az ANSI (Amerikai Nemzeti Szabványügyi Intézet) meghatározza a Code 39 standardot, mint MH10.8M-1983, és USD-3, 3 of 9 -ként is ismert. A Code 39 vonalkód teljes karakter sorozata 0-9, A-Z (csak nagy betűk), és a space, mínusz (-), plusz (+), pont (.), dollár ($), slash (/), és százalék (%). A Code 39 vonalkód esetében a start/stop karakter a kód elején és végén található, és a vonalkódnak nincs maximum hosszassága, viszont 25 -nél több karakter terheli kapacitását. Minden egyes karakter 9 elemből áll: 5 vonal, és 4 üres hely. Egy karakter 3 vastag, és 6 vékony elemből áll. Inter-karakter hely választja el a karaktereket, amely akkora, mint a vékony vonal. A vastag : vékony vonalak aránya 1.8 – 3.4. Vonalkódok, melyeknek a vékony vonala kisebb, mint 0. 020 arasz (0.508mm), legalább 2.5 arány kell, hogy legyen, de 3.0 a javasolt. 10 vékony vonalas holtzóna van a Code 39 vonalkód elején és végén. A checkszum nem kötelező a Code 39 vonalkód-hoz, viszont az adat integritása miatt a Modulo 43 check számjegy hozzátéte javasolt. Code 39 vonalkód jóformán az egyetlen szimbológia, melynél a checkszum nem kötelező, tehát előnyösebb mikor lehetetlen, vagy alkalmatlan checkszumokat kalkulálni minden egyes vonalkód nyomtatáskor.
Extended Code 39 Kibővíti a Code 39 vonalkód karakter sorozatát (kisbetűkkel és jelekkel). A Code 39 vonalkód karaktereket páros Code 39 karakterekkel kell kódolni, például, a kicsi “a” betű, amely nem szerepel a Code 39 karaktersorozatban, a “+A” párral lehet kódolni.
Tippek… Majdnem mindegyik piacon lévő vonalkód képes elolvasni a Code 39 vonal kódokat. Főleg cégen belül használják, hol a vonalkódok belsőleg alkalmazhatók. Előtagként a vonalkódhoz illeszteni egy karaktert segít a hiba kikerülésében. Például, árú azonosító számok lehet “P”-vel, és a mennyiség száma “Q”-val, kezdődhetnek. Ha a felhasználó leolvas egy alkatrész számot, a vonalkód olvasó le tudja ellenőrizni a “P” jelenlétét és automatikusan visszautasítani a kódot, ha az nincs ott.
– Code-93 vonalkód
Code 128 vonalkód
A Code 128 vonalkód kitűnően tömöríti a numerikus és alfanumerikus adatokat. Előnyösebb, mint a Code 39, mivel karakterválasztéka bővebb, és tömörebb. A Code 128 vonalkód karakter sorozata 0-9, A-Z (nagy és kis betűk), és az összes standard ASCII jelek és kontrol kódokból áll. A Code 128 vonalkód három jelkészletből áll: A, B és C. Az A jelkészlet a standard ASCII jeleket, számokat, nagybetűket és kontroll kódokat tartalmazza; A B jelkészlet a standard ASCII jeleket, számokat, nagybetűket és kisbetűket foglalja össze; míg a pusztán numerikus C változat két számot tömörít egy karakterbe, ráadásul, mindegyik alegység tartalmaz kontroll karaktereket, ami engedi a váltást egyik alegységtől a másikig egy vonalkódban. Végül, három külön start kód létezik, mely jelzi, hogy melyik alegységet használja.
A Code 128 vonalkód ellenőrző szám kalkulációja:
Minden egyes Code 128 karakternek van egy száma 0-102 ig. Az A és B alegységekben, a karakterek száma az ASCII kód megfelelője mínusz 32. Például, a felkiáltó jel (ASCII 33) száma 1. Az A alegység engedélyezi az ASCII kontroll karakterek nyomtatását (0-31 számú ASCII kódok). Ezekre a karakterekre vonatkozva, 64 -t kell adni az ASCII kódhoz a karakter száma kiszámításához. Például a NUL értéke (ASCII 0) 64, SOH (ASCII 1) 65, STX (ASCII 2) 66, stb. A C alegység párosan nyomtatja a számokat, és a karakter száma a checkszum kiszámításához, a pár értéke (00, 01, 02,.., 99). Az ellenőrző szám kalkulálása:
- A checkszum kezdeti értékét állítsd a start karakter értékére (103, 104, vagy 105 az A, B, vagy C alegység megfelelőjével).
- A szorzó kezdeti értékét állítsd 1-re.
- Kezdvén a vonalkód bal oldalán, add a karakter számát szorozva a szorzó értékével a checkszumhoz. A szorzó egyel növekszik minden karakter után.
- Oszd a végeredményt 103-lal.
- Alakítsd át a checkszum számértékét ASCII karakterekre.
A checkszum számértéke átalakítása ASCII karakterekre a betűtípuson is múlhat. Óvatosnak kell lenni mikor az eredményes ASCII kód szám értéke nulla, vagy ha 95-nél magasabb. Általában, ha az A alegységbe a checkszum 0-63-ig, add a “space” checkszumot az ASCII kódjához (32) a karakter kód kiszámításához. Ha a checkszum meghaladja 64 -t, vegyél el 64 -t a karakter kód kiszámításához. A B alegységbe, add a “space” checkszumot az ASCII kódjához (32) a karakter kód kiszámításához. A C alegységben, a checkszum egyenlő a karakter ASCII számértékével.
UPC A vonalkód
A UPC A vonalkód Struktúrája: A UPC A vonalkód 12 numerikus karaktert tartalmaz. Az első számjegy a kódrendszert azonosítja: 0: szabályos UPC kódok 1: foglalt 2: boltban címkézett rendszertelen súlyú tárgyak 3: National Drug Code (Országos drog kód) és National Health Related Items (Országos egészségügyi tárgyak) kód 4: nincs forma korlátozás, üzleten belüli használatra (kivéve élelmiszerekre) 5: kuponokon használható 6: foglalt 7: szabályos UPC kódok 8: foglalt 9: foglalt
- Add össze a páros számú számjegyeket: 2, 4, 6, stb.
- Az eredményt 3 -al beszorozni.
- Add össze a páratlan számú számjegyeket: 1, 3, 5, stb.
- Add össze a 2. és 3. végeredményét.
- A check karakter a legkisebb szám mely a 4. lépéshez adható, hogy a 10 többszöröse legyen az eredmény.
- 6. 0 + 2 + 4 + 6 + 8 + 0 = 20
- 20 * 3 = 60
- 0 + 1 + 3 + 5 + 7 + 9 = 25
- 60 + 25 = 85
- 85 + X = 90 (10 többszöröse legyen az eredmény), tehát X = 5 (checkszum)
A UPC A vonalkód 2-számjegyű kiegészítő kódja: A UPC A vonalkód két számjegyű kiegészítő vonalkóddal bővíthető, mely a sajtótermékeknél a periodius számát jelzi. Heti kiadványok általában 1-52 -ig; a félhavi kiadványok 1-24-ig ; míg a havi kiadványok 1-12-ig vannak számozva.
UPC E vonalkód
A UPC E, a UPC A variációja, amelyet a 0-s számú rendszerre használható. A UPC E kódok nagyon kis helyen elférnek mivel a 0 -t kiszűrik. Négy szabály vonatkozik az UPC vonalkód nyomtatására az UPC E formában:
- Ha a gyártó utolsó 3 számjegye 000, 100, vagy 200, az érvényes termék kódok 00000 – 00999 (1 000 szám).
- Ha a gyártó utolsó 3 számjegye 300, 400, 500, 600, 700, 800, vagy 900, az érvényes termék kódok 00000 – 00099 (100 szám).
- Ha a gyártó utolsó 2 számjegye 10, 20, 30, 40, 50, 60, 70, 80, vagy 90, az érvényes termék kódok 00000 – 00009 (10 szám).
- Ha a gyártó számjegye nem nullával végzõdik, az érvényes termék kódok 00005 – 00009 (5 szám).
2D
2D: A kétdimenziós vonalkódok jóval nagyobb információmennyiség megjelenítésére képesek, mint az 1D kódok. Az adatok megjelenítésére különböző geometriai formákat használnak, amelyek több irányból is könnyedén leolvashatóak.
PDF 417 vonalkód
A PDF 417 vonalkód olyan speciális összetett lineáris (egydimenziós) kód, amely, egymás alá nyomtatott egydimenziós kódokból áll. A PDF 417 vonalkód elnevezésben, a PDF a Portable Data File (hordozható adat állomány) szavak kezdőbetűiből áll össze. A PDF 417 vonalkód fő alkalmazási területei elsősorban logisztika, az azonosító kártyák, és a leltári rendszerek. A PDF 417 vonalkód a Symbol Technologies cég találmánya, és az ISO 15438 szabvány tartalmazza részletes leírását.
Főbb jellemzői:
- Beágyazhatóság: A PDF 417 vonalkód további szimbólumokra mutathat, melyeket sorrendben beolvasva tovább növelhető a kód kapacitása.
- Felhasználó által meghatározott méretek: A felhasználó definiálhatja a legkeskenyebb vonalak szélességét (X méret), és a sorok magasságát (Y méret).
- Nyilvánosan használható: Bárki bevezethet rendszereket a PDF 417 vonalkód formátumot alkalmazva. A PDF 417 vonalkód nem engedélyköteles (license free).
Formátum: A PDF 417 vonalkód 3-90 sorból áll, melyek mindegyike lényegében egy-egy alacsony lineáris vonalkód. Minden egyes sor rendelkezik
- margóval (quiet zone), mely a vonalkód előtti minimális szabad fehér terület
- kezdő karakterrel, amely a vonalkód olvasó berendezések számára azonosítja a formátumot, mint PDF 417 vonalkód. Minden egyes vonalkód típus egyedi start karakterrel rendelkezik.
- egy speciális kódszó (row left), amely a sorra vonatkozó adatokat tartalmazza (a sor száma, a redundancia foka)
- 1-30 adat kódszavak: A kódszavak vonalakból, és hézagokból álló csoportok, amelyek egy, vagy több számot, betűt, vagy más szimbólumot jelenítenek meg.
- Minden egyes sor ugyanannyi kódszóból áll.
- Minden egyes kódszó négy vonalból, és négy hézagból áll (A kód nevében (PDF 417) a 4-es erre utal.
- A kódszó teljes szélessége a megengedett legkeskenyebb vonal 17 szerese. (A kód nevében (PDF 417) a 17 erre utal.)
- Minden egyes kódszó vonallal kezdődik, és hézaggal végződik
- Összesen 929 különböző kódszó létezik, melyből kilencszáz adat, míg a többi valamilyen vezérlő funkcióval rendelkezik.
- Minden egyes kódszó három különböző kódkészlet egyikéből kell hogy kinyomtatásra kerüljön
- A kódkészlet olyan vonal, hézag kombináció, mellyel az összes 929 kódszó megjeleníthető
- Az egyes kódkészletekben minden egyes kódszónak egyedi vonal/hézag kombináció felel meg.
- A PDF kódon belüli sor száma határozza meg, hogy melyik kódkészlet kerül alkalmazásra a háromból.
- Adott soron belül minden egyes kódszó ugyanazt a kódkészletet használja
- A három különböző kódkészlet használata lehetővé teszi az olvasó berendezések számára a sor azonosítását, amely nagy segítséget jelent az olyan esetekben, amikor a vonalkód olvasó a kódot a vízszintestől eltérő szögben olvassa. Például előfordulhat, hogy az olvasási vonal elején a szkenner a 3. sort látja, míg az olvasási vonal végén már a 7. sort olvassa.
- egy speciális kódszó (row right), amely további a sorra vonatkozó adatokat tartalmaz.
- záró karakterrel.
- margóval (quiet zone), mely a vonalkód utáni minimális szabad fehér terület
Alkalmazás: A Datamatrix kódhoz hasonlóan a PDF 417 vonalkód postai bélyegként is használatos az USA-ban. A PDF 417-et alkalmazzák a papír alapú beszállókártyák két dimenziós vonalkódjaként a repülő társaságoknál. Az USA bizonyos államinál a gépjárművezetői jogosítványok adatainak gépi kódolására is alkalmazzák, az adatokat a dokumentumra nyomtatva PDF kód formájában. Hazánkban az APEH adóívein látható, ahol a tartalom géppel olvasható változataként használatos.
Datamatrix kód
A DataMatrix kód az a kétdimenziós vonalkód, amely információ sűrűsége, megbízhatósága, robusztussága révén ipari szabvánnyá vált. Mivel gyengébb kontraszt mellett is biztosítható olvashatósága, ezért előszeretettel használják a DPM (direct part marking, a kódot közvetlenül a termékre rögzítő) alkalmazások. A Datamatrix olyan két dimenziós (2D), amely négyzet, vagy téglalap alakú. Az információt a négyszög X, és Y irányban elhelyezkedő fekete, és fehér rácspontok kombinációja képviseli. Ennek okán a Datamatrix kód nem olvasható hagyományos lézer, vagy CCD szkennerekkel, olvasásához mindenképpen képalkotó szkenner szükséges. A kód különféle DPM eszközökkel (lézer gravírozó, ink jet nyomtatófej, pontozóeszköz), vagy papírra, öntapadós címkére nyomtatva állítható elő. A Datamarix kódot elsősorban információ sűrűsége, nagy adatkapacítása, kis helyigénye, kiváló olvasási tulajdonságai (hibatűrő képessége, nyomtatási minőséggel szembeni kissebb érzékenysége) helyezik előtérbe a többi vonalkóddal összehasonlítva. A Datamatrix kód információ tároló kapacitása révén rendkívül megbízhatóvá tehető. A Datamatrix szabvány hibafelismerő, és javító algoritmusól is gondoskodik, melyet a felhasználó különböző szintekre állíthat be. A fenti körülmények miatt még az olyan Datamatrix vonalkódok is sikeresen, adatveszteség nélkül olvashatók, melyek karcolások, tépések, foltok, vagy lyukak miatt sérültek, esetenként felületük több mint 20%-án. A Datamatrix kód a nyomtatási kontraszt tekintetében nem támaszt túlzott követelményeket, még gyengébb minőségű kódok is biztonsággal olvashatók a modern vonalkódolvasó eszközökkel. Ez a tulajdonság különösen az olyan alkalmazásoknál előnyös, ahol a vonalkód ki van téve a zsír, kosz, festék, vagy más vegyi bevonatok okozta szennyeződésnek. A Datamatrix nagy hibatűrőképessége szintén nagy előnyt képez az olyan alkalmazásoknál, ahol a kódot közvetlenül fémre, vagy más visszatükröző felületre nyomtatják.
QR kód
QR kód egyfajta 2-D (síkbeli) vonalkód, melyet a Denso Wave (a Denso Corporation részlege) fejlesztett ki, 1994-ben azzal az elsődleges céllal, hogy a jel hogy könnyen értelmezhető legyen az akkori olvasó berendezések által. A QR kód használata egyre szélesebb körű. Használják az iparban, logisztikában, de igazi népszerűségét a marketing alkalmazásokban, és a mobil telefonos megoldásokban érte le. Sajátosságai miatt alkalmas postai címek, telefonszámok, internetcímek, sőt akár GPS koordináták tárolására. Az egyre jobban elterjedő okostelefonok (Android, IPhone, Symbian, Windows Mobile, stb.) alkalmazásokat kínálnak a QR kód olvasására, sőt bizonyos programok Pl. Android Market a QR kódot is felhasználják a termékek, szolgáltatások azonosítására. A mai olvasóberendezések kíválóan olvassák a QR kódot nemcsak papírról, de akár a képernyőkről, sőt a mobiltelefonok kijelzőiről is. Ez újabb alkalmazások felé nyit kaput (mobil fizetés, mobil beléptetés, stb.)
A QR kód a hagyományos vonalkódokkal összehasonlítva a következő tulajdonságokkal rendelkezik: | |
A hagyományos egydimenziós kódok maximum 20 karakter tárolására alkalmasak, ezzel szemben a QR kód információ tartalma ennek több tucat szorosától egészen a több százszorosáig terjedhet. A QR kód mindenféle adat kódolására alkalmas beleértve a numerikus, alfanumerikus karaktereket, a Kanji, Kana, Hiragana jelkészleteket, a bináris, és kontrol kódokat. |
QR kód adat kapacitása | |
Csak numerikus | Max. 7,089 karakter |
Alfanumerikus | Max. 4,296 karakter |
Bináris (8 bites) | Max. 2,953 bájt |
Kanji, Kana(teljes sz.) | Max. 1,817 karakter |
Kis nyomtatási méret Mivel a QR kód mind horizontális, mind vertikális irányban adatokat hordoz, ezért a hagyományos 1D vonalkódok adatsűrűségének tízszeresére képes. (Kisebb nyomtatási méretben a Micro QR kód is rendelkezésre áll.) Kanji és Kana képesség Mivel a QR kódot Japánban fejlesztették ki, ezért képes a JIS Level 1 és Level 2 kanji karakterek kódolására is. Japán nyelv használata esetén egy teljes szélességű Kana, vagy Kanji karakter 13 biten kerül kódolásra, mely a QR kódnak több mint 20 % nagyobb információ sűrűséget a többi 2D kóddal összehasonlítva. Ellenáll a sérüléseknek, és szennyeződéseknek A QR kód redundáns felépítésű, ezért a kód akkor is rekonstruálható, ha annak egy része sérült, vagy szennyeződött.
Bármely irányból olvasható
A QR kód nagy sebességgel, tetszőleges irányból olvasható (omnidirekcionális). A QR kód ezen tulajdonságát a kód három sarkában található helyzet meghatározó jelek biztosítják. Ezek a helyzet meghatározó jelek stabil nagy sebességű olvasást biztosítanak, és segítenek a háttérzavarok elnyomásában.
Strukturált appendálási funkció