back: HIB Homepage
  Prof. Urban
Materialien für Mathematik, Physik, Informatik
 
 
zurück
 

Der EAN Strichcode

Dieser Code dient zur maschinellen Erfassung von Zahlen. Heute werden viele Produkte mit einem Strichcode versehen, um sie mit automatischen Lesegeräten identifizieren zu können. Der Scanner einer Warenhauskassa liest genau diesen Code ein, ermittelt anhand einer firmenweiten Datenbank den Verkaufspreis und aktualisiert auch gleich den Warenbestand.
Die Europäische ArtikelNummer ist nach der DIN 66236 festgelegt.

EAN-13

Dieser Code besteht aus 13 Dezimalziffern, wie etwa 4957054071493 (dies ist der Strichcode unserer Masterkeyboards aus dem EDV-Raum).
Manchmal wird er auch so angeschrieben: 49-57054-07149-3

Der grundlegende Aufbau:

  • die ersten beiden Ziffern stehen für ein Land. So bedeutet 49 im obigen Beispiel Japan.
  • es folgen 5 Ziffern, die für den Produzenten im Land (etwa die Herstellerfirma) stehen. Oben steht 57054 für die Firma Roland.
  • Nun folgen 5 Stellen für die Produktnummer. 07149 bezeichnet das Midi Controller Keyboard PC-180A
  • Die letzte Stelle ist eine Prüfziffer, um die Korrektheit der 12 Stellen abzusichern (mit 10% Fehlerwahrscheinlichkeit, wie Du gleich sehen wirst)

Ländercodes

Mit dem Anwachsen der Anzahl wichtiger Produktionsländer sind 2 Stellen nicht mehr ausreichend. Deshalb nimmt man die erste Stelle des Firmencodes als Landesanteil für kleine Länder. Besonders große Produzenten erhielten mehrere Nummern, da man pro Nummer ja nur 100000 Produzenten angeben kann.

Beispiele für Ländercodes: 90-91 Österreich, 40-43 Deutschland, 00-13 USA und Kanada, 30-37 Frankreich, 482 Ukraine, 484 Moldawien, 485 Armenien, 99 für Geschenkgutscheine, usw.

Die Prüfziffer

Sie entsteht aus einer gewichteten Summe der 12 Code-Ziffern. Man bildet die Summe aus 3 mal letzte Stelle +1 mal vorletzte + 3 mal vorvorletzte + 1 mal vorvorvorletzte usw.
Im obigen Beispiel 3x9+1x4+3x1+1x7+3x0+1x4+3x5+1x0+... wobei sich 117 ergibt. Die Prüfziffer ist nun die Zahl, die diese Summe zu einer durch 10 teilbaren Zahl ergänzt, in unserem Fall also 3.

Zusammengefasst für unser Beispiel:

Länder-
code
Hersteller Produkt Prüf-
ziffer
49 57054 07149 3
Japan Roland PC-180A  

 

Der Strichcode

Seine Erstellung ist etwas tüftelig. Die Zahlen werden in Bitcodes umgewandelt. Wert 1 bedeutet eine Linie, Wert 0 einen Zwischenraum. So ergibt etwa 101011100001 zwei dünne Streifen mit schmalem Zwischenraum, dann einen dicken, einen breiten Zwischenraum und schließlich noch eine dünnen Streifen.

Eigentlich kodiert EAN zwei getrennte Zifferngruppen mit je 6 Stellen. Jede Ziffer ergibt ein Muster aus zwei Streifen und 2 Zwischenräumen ganz spezieller Breite. Die dreizehnte Stelle (es ist die erste Ziffer des Codes) wird trickreich in den ersten Sechserblock verschlüsselt.

Weiters werden am Anfang, am Ende und in der Mitte spezielle Strichcodes eingefügt, um den Lesegeräten Vergleichswerte für die Breite der folgenden Striche zu bieten (die Größe des Strichcodes ist nicht festgelegt) und eine Adaption zu erlauben, wenn nicht mit konstanter Geschwindigkeit gescannt wird. Das Lesegerät liefert ja nur eine Aufzeichnung von 'hell' und 'dunkel'-Werten verteilt über die Zeit des Einlesens.

Randzeichen
Teil 1
Trennzeichen
Teil 2
Randzeichen
101
Stellen 2 bis 7
01010
Stellen 8 bis 12
101

Für die Bitmuster, in die die Ziffern übersetzt werden, gibt es drei Zeichensatztabellen

Ziffer Zeichensatz A Zeichensatz B Zeichensatz C
0
1
2
3
4
5
6
7
8
9
0001101
0011001
0010011
0111101
0100011
0110001
0101111
0111011
0110111
0001011
0100111
0110011
0011011
0100001
0011101
0111001
0000101
0010001
0001001
0010111
1110010
1100110
1101100
1000010
1011100
1001110
1010000
1000100
1001000
1110100

So wird 4 im Zeichensatz B in das Muster 0111001 verwandelt, was eine kurze Lücke, eine dreifach dicken Streifen, dein Doppellücke und einen Einserstreifen bedeutet.

Die Sätze A und B beginnen immer mit 0 und einden mit 1, bei C ist es umgekehrt. Satz C entsteht aus A durch Vertauschen von 0 und 1 im Muster, B ist das gespiegelte Muster aus C. Die Auswahl wurde so getroffen, dass wenig 'Ähnlichkeiten' auftreten und niemals Striche oder Lücken benachbarter Codes aneinander stoßen, um einen ständigen Wechsel von dunkel und hell zu erzielen. Deshalb muss C auch "umgedreht" mit 0 und 1 sein, denn es stößt ja direkt an das Randzeichen am Ende, das mit einer 1 beginnt. A hat ungerade Parität (ungerade Anzahl von Einsen), C (und B) gerade Parität. Daran kann ein Lesegerät erkennen, von welcher Seite der Code gescannt wurde.

 

Leicht erklärt ist die Kodierungsvorschrift für den zweiten Zahlenteil: hier wird immer der Zeichensatz C verwendet.

Im Teil 1 muss aber zusätzlich die erste Ziffer verschlüsselt werden, weshalb man die Zeichensätze A und B wechselweise verwendet. Folgende Tabelle wird angewendet:

erste
Stelle
Zeichensatz für die Stelle
2 3 4 5 6 7
0
1
2
3
4
5
6
7
8
9
A
A
A
A
A
A
A
A
A
A
A
A
A
A
B
B
B
B
B
B
A
B
B
B
A
B
B
A
A
B
A
A
B
B
A
A
B
B
B
A
A
B
A
B
B
A
A
A
B
B
A
B
B
A
B
B
A
B
A
A

In unserem Beispiel 4957054 ist die erste Stelle 4 und somit die Zeichensatzliste ABAABB. Demnach wird 9 mit A, 5 mit B, 7 und 0 mit A, 5 und 4 mit B kodiert.

Wenn Du es selbst versuchen willst:

Unser Beispiel liefert

101 als Startrandzeichen
0001011 0111001 0111011 0001101 0111001 0011101 für den Teil 1
01010 als Trennzeichen
1110010 1000100 1100110 1011100 1110100 1000010 für den Teil 2
101 als Endrandzeichen.

Diesen Code habe ich übrigens mit dem zugehörigen Python-Programm ean.py erzeugt. Lade es Dir herunter und experimentiere selbst!

Der EAN-ISBN-Code

Der Ländercode 978 wurde für die Codierung von Büchern reserviert. Deshalb beginnt der EAN Code auf jedem Buch mit diesem Wert.

Darauf folgt die ISBN Nummer ohne die zugehörige ISBN-Prüfziffer (wenn Du wissen willst, wie sie definiert ist, dann schau im Python-Programm nach), und am Ende die sich daraus ergebende EAN Prüfziffer.

Der EAN-8 Kurzcode

Auf speziellen Antrag bekommen Firmen eine Kennung mit 2 Nullen am Schluss. Haben sie dann maximal 100 Artikel zu verzeichnen, wird z.B. der österreichische dreizehnercode 90-12300-00058-x verkürzt zu 90-12358-x, indem man die mittleren Nullen unterdrückt.

Der Kurzcode ist also achtstellig und wird folgendermaßen kodiert:

Zuerst ein Randzeichen, dann die ersten 4 Stellen mit Zeichensatz A, das Trennzeichen, dann die zweiten 4 Stellen nach Zeichensatz C, schließlich das Randzeichen am Ende. Fertig.

Aufgabe: kodiere Dein Geburtsdatum nach EAN-8 (für den 4. Juli 1901 etwa 04071901).

 

Anhang

Die Liste der Ländercodes nach der aktuellen Festlegung des Standards

00-13: USA & Canada 20-29: In-Store Functions 30-37: France
40-44: Germany 45: Japan (also 49) 46: Russian Federation
471: Taiwan 474: Estonia 475: Latvia
477: Lithuania 479: Sri Lanka 480: Philippines
482: Ukraine 484: Moldova 485: Armenia
486: Georgia 487: Kazakhstan 489: Hong Kong
49: Japan (JAN-13) 50: United Kingdom 520: Greece
528: Lebanon 529: Cyprus 531: Macedonia
535: Malta 539: Ireland 54: Belgium & Luxembourg
560: Portugal 569: Iceland 57: Denmark
590: Poland 594: Romania 599: Hungary
600 & 601: South Africa 609: Mauritius 611: Morocco
613: Algeria 619: Tunisia 622: Egypt
625: Jordan 626: Iran 64: Finland
690-692: China 70: Norway 729: Israel
73: Sweden 740: Guatemala 741: El Salvador
742: Honduras 743: Nicaragua 744: Costa Rica
746: Dominican Republic 750: Mexico 759: Venezuela
76: Switzerland 770: Colombia 773: Uruguay
775: Peru 777: Bolivia 779: Argentina
780: Chile 784: Paraguay 785: Peru
786: Ecuador 789: Brazil 80 - 83: Italy
84: Spain 850: Cuba 858: Slovakia
859: Czech Republic 860: Yugloslavia 869: Turkey
87: Netherlands 880: South Korea 885: Thailand
888: Singapore 890: India 893: Vietnam
899: Indonesia 90 & 91: Austria 93: Australia
94: New Zealand 955: Malaysia 977: International Standard Serial Number for Periodicals (ISSN)
978: International Standard Book Numbering (ISBN) 979: International Standard Music Number (ISMN) 980: Refund receipts
981 & 982: Common Currency Coupons 99: Coupons

 


--- © Wolfgang.Urban@schule.at ---