Jedes Mal, wenn eine Kassiererin deine Einkaufe scannt, liest ein Laser ein praezises mathematisches Muster, das in schwarzen und weissen Linien kodiert ist. Aber wie kodieren Barcodes eigentlich Daten? Die Antwort ist eleganter als die meisten Menschen erkennen, und sie zu verstehen zeigt, warum Barcodes eines der zuverlassigsten Datensysteme sind, die je gebaut wurden. Dieser Leitfaden erklaert die tatsachlichen Kodierungsmechanismen hinter jedem wichtigen Barcode-Format, von den Streifen auf einer Cerealienpackung bis zum QR-Code auf deiner Bordkarte.
Eine Kurze Geschichte: Vom Patent zum Supermarkt
Die Geschichte beginnt mit Norman Woodland und Bernard Silver, die 1949 das US-Patent 2612994 anmeldeten. Woodland, inspiriert vom Morsecode, erweiterte Punkte und Striche zu Linien mit variierenden Breiten. Die Technologie blieb jahrzehntelang groesstenteils inaktiv, bis das Laser-Scanning praktisch wurde.
Der erste kommerzielle Barcode-Scan fand am 26. Juni 1974 in Troy, Ohio statt, als ein Paket Wrigley's Juicy Fruit Kaugummi in einem Marsh-Supermarkt gescannt wurde. Dieser einzelne Scan bewies, dass das System mit Einzelhandelsgeschwindigkeit funktionierte, und die moderne Lieferkette war geboren.
Heute verwaltet GS1, die globale Normungsorganisation, Barcode-Standards, die in uber 150 Landern verwendet werden. Weltweit werden taglich ungefahr 6 Milliarden Barcodes gescannt.
Wie 1D-Barcodes Informationen Kodieren
Traditionelle eindimensionale Barcodes kodieren Daten durch die Breiten von abwechselnden Balken und Lucken. Die Schlusselerkenntnis ist, dass ein Scanner keine Farbe liest: Er liest Ubergange zwischen dunkel und hell und misst, wie breit jedes Element ist.
Die meisten modernen 1D-Barcode-Systeme verwenden einen modulbasierten Kodierungsansatz. Ein "Modul" ist der schmalstmogliche Balken oder Abstand in einem gegebenen Symbol. Breitere Elemente sind genaue Vielfache dieser Modulbreite. Der Scanner misst die Elementbreiten als Vielfache des Moduls und wandelt sie in eine Binarkette um, die er dann gegen eine vom Barcode-Standard definierte Nachschlagetabelle dekodiert.
EAN-13: Der Globale Einzelhandelsstandard
EAN-13 (European Article Number, 13 Ziffern) ist der Barcode auf fast jedem Konsumprodukt, das ausserhalb Nordamerikas verkauft wird. Seine Struktur ist:
| Position | Ziffern | Bedeutung |
|---|---|---|
| 1-3 | Lander-/Regionsprafixe | GS1-Prafix (z.B. 400-440 = Deutschland) |
| 4-8 | Herstellercode | Von GS1 dem Unternehmen zugewiesen |
| 9-12 | Produktcode | Vom Hersteller zugewiesen |
| 13 | Pruefziffer | Aus den ersten 12 berechnet |
Pruefziffernberechnung fur EAN-13: Fur die 12-stellige Zeichenkette 590123412345:
- Ziffern an ungeraden Positionen nehmen (Positionen 1, 3, 5, 7, 9, 11): 5, 0, 2, 4, 2, 4. Summe = 17.
- Ziffern an geraden Positionen nehmen (Positionen 2, 4, 6, 8, 10, 12): 9, 1, 3, 1, 3, 5. Jede mit 3 multiplizieren, Summe = 66.
- Gesamt = 17 + 66 = 83.
- Pruefziffer = nachstes Vielfaches von 10 minus Gesamt = 90 - 83 = 7.
Der vollstandige EAN-13 ist 5901234123457.
UPC-A: Der Nordamerikanische Standard
UPC-A ist der 12-stellige Barcode, der in den USA und Kanada verwendet wird. Er ist im Wesentlichen EAN-13 mit einer impliziten fuhrenden Null. Seine Struktur:
- Ziffer 1: Nummernziffernziffer (0 = Standard-Lebensmittel, 2 = Produkte mit variablem Gewicht, 3 = Arzneimittel, 5 = Gutscheine)
- Ziffern 2-6: Herstellercode (5 Ziffern, von GS1 zugewiesen)
- Ziffern 7-11: Produktcode (5 Ziffern, vom Hersteller zugewiesen)
- Ziffer 12: Pruefziffer (gleiche Formel mit wechselnden Gewichtungen 1/3)
Code 39: Der Erste Alphanumerische Barcode
Code 39 wurde 1974 erfunden. Er war der erste Barcode, der Buchstaben sowie Zahlen kodierte. Die Kodierungslogik steckt im Namen: Jedes Zeichen wird durch 9 Elemente (5 Balken und 4 Lucken) dargestellt, und genau 3 dieser 9 Elemente sind breit. "Drei von neun" gibt Code 39 seinen alternativen Namen.
Code 39 unterstuetzt nativ Grossbuchstaben A-Z, Ziffern 0-9 und die Symbole: Leerzeichen, $, %, +, -, ., /. Er enthalt ein Start- und Stoppzeichen (Sternchen, *), das der Scanner als Begrenzungszeichen erkennt.
Code 128: Hochdichte ASCII-Kodierung
Code 128 ist ein viel dichteres Barcode-Format, das alle 128 ASCII-Zeichen kodieren kann. Jedes Zeichen wird durch 3 Balken und 3 Lucken mit variierenden Breiten dargestellt, und die Gesamtbreite jedes Zeichens ist immer genau 11 Module. Diese Eigenschaft fester Breite macht das Scannen sehr zuverlassig.
Code 128 hat drei Untertypen:
| Untertyp | Kodiert |
|---|---|
| Code 128A | Grossbuchstaben, Ziffern, Steuerzeichen |
| Code 128B | Gross- und Kleinbuchstaben, Ziffern, Sonderzeichen |
| Code 128C | Nur numerische Paare (Zifferndichte verdoppelt) |