CIB barcode technischer Leitfaden

5. Barcodes und OMR Strichcodes

5.2. Barcode Typen

Es sind zahlreiche Barcode Typen definiert. Diese sind entstanden aufgrund unterschiedlicher Anforderungen. Entsprechend den speziellen Erfordernissen kann also für jede Anwendung der am besten geeignete Barcode Typ ausgewählt werden. In diesem Abschnitt werden nur die derzeit geforderten kurz beschrieben.

Code ITF (Code 2/5 Interleaved)
Code 2/5 Industrie
Code 2/5 Matrix
Code 39
Code 39 erweitert
Code 128
EAN 8
EAN 13
EAN 128
DataMatrix
QR-Code
PDF417
Code 93
Code 93 Extended

Code ITF (Code 2/5 Interleaved)

Interleaved Two of Five / Code 2/5 Interleaved.

Der Code 2/5 Interleaved (interleaved = überlappt) ist ein Zweibreitencode mit einem Zeichenvorrat von 10 Ziffern (numerischer Code). Er beinhaltet somit nur die Ziffern 0 bis 9. Die Stellenzahl kann beliebig lang sein, muss aber geradzahlig sein. Die Verwendung von Prüfziffern ist nicht vorgeschrieben. Der Urtyp des Codes verwendet keine Prüfsumme. Er bietet, ähnlich dem Code 39 den Vorteil der Selbstprüfung. Es werden ein Start- und ein Stopp-Zeichen verwendet. Die Länge ist variabel. Er ist eine Variante des Code 25.

Dieser Code ist aufgebaut aus 2 breiten und 3 schmalen Strichen, bzw. 2 breiten und 3 schmalen Lücken. Druckverhältnis V: schmales Element : breites Element V = 1 : 2 bis 1 : 3. Ist das schmale Element kleiner als 0,5mm, dann gilt: schmales Element : breites Element V = 1 : 2,25, bis max. V = 1 : 3. Zwei Ziffern bilden immer ein Paar. Die erste Ziffer wird dargestellt mit 5 Strichen, die 2. Ziffer mit den unmittelbar den Strichen der 1. Ziffer folgenden Lücken. Fünf Striche und Lücken stellen ein Ziffernpaar dar. Zielsetzung ist es durch eine paarweise Darstellung der zu codierenden Ziffern eine Platzersparnis zu erhalten. Hieraus ergibt sich eine hohe Informationsdichte z.B. 2,7 mm/Ziffer bei einer Modulbreite X = 0,3 mm und Verhältnis V = 1 : 3.

Vorteil: Hohe Informationsdichte, selbstprüfbar.

Nachteil: Alle Lücken tragen Information, deshalb kleine Toleranz (gute Druckqualität erforderlich); sowie die paarweise Darstellung der Nutzzeichen (kann jedoch umgangen werden indem man dem Code eine Null voranstellt).

Achtung:
Wenn der Barcode-Wert aus einer ungeraden Anzahl von Zeichen besteht, wird durch den Modul CIB barcode die Zeichenzahl durch Voranstellen einer „0“ geradzahlig gemacht. Es erfolgt kein Fehlerhinweis an den Benutzer.


Code 2/5 Industrie

Dieser Barcode ist ein Zweibreitencode, mit dem die Ziffern 0 bis 9 dargestellt werden können. Die Anzahl der Zeichen ist variabel, die Verwendung von Prüfziffern ist nicht vorgeschrieben. Vom Urtyp des Codes werden keine Prüfsummen genutzt. Es werden jeweils ein Start- und ein Stoppzeichen verwendet.

Der Code findet seine Hauptanwendung in der Industrie und ist auch als Code 2 aus 5 bekannt. Der Code ist mittlerweile recht alt und primitiv, dies äußert sich negativ in seinem Platzverbrauch. Deshalb findet der Code heutzutage kaum noch Verwendung.

Der Code 2/5 Industrie ist aus 2 breiten und 3 schmalen Strichen aufgebaut. Nur die Striche sind codiert, die Lücken tragen keine Information. Druckverhältnis V: schmaler Strich : breitem Strich  V = 1 : 2 bis 1 : 3; (Verhältnis: 3:1 (empfohlen), (auch 5:2 oder 2:1 (High Density) möglich.)
Codeaufbau: Ruhezone, Startzeichen, Nutzziffern, (Prüfziffer,) Stoppzeichen, Ruhezone; Prüfziffernverfahren: Standard (Modulo 10 mit der Gewichtung 3)

Vorteil: besteht nur aus Strichen, Lücken tragen keine Information. Grosse Drucktoleranz (+/- 15%), deshalb auch mit den einfachsten Druckverfahren herstellbar, selbstüberprüfend

Nachteil: Kleine Informationsdichte


Code 2/5 Matrix

Dieser Code ist mit der Ausnahme der überbreiten Balken ein Zweibreitencode, mit dem die Ziffern 0 bis 9 dargestellt werden können. Die Anzahl der Zeichen ist variabel. Im Start- und Stoppzeichen befindet sich ein überbreiter Balken. Die Verwendung von Prüfziffern ist nicht vorgeschrieben.


Code 39

Alphanumerischer Code. Darstellbar 0 bis 9, 26 Buchstaben (Großbuchstaben!), 7 Sonderzeichen. Der Zeichenvorrat ist somit 0123456789[Space]ABCDEFGHIJKLMNOPQRSTUVWXYZ-.$/+%. Der Code besitzt keine feste Länge.

Die Prüfziffernberechnung erfolgt nach Modulo 43. Alle Zeichen eines Codes werden Referenzzahlen zugeordnet, welche zu einer Summe addiert werden. Diese wird durch 43 dividiert. Der Rest der Division entspricht der Prüfsumme.

Jedes Zeichen besteht aus 9 Elementen (5 Strichen und 4 Lücken). 3 der Elemente sind breit und 6 schmal, mit Ausnahme der Darstellung der Sonderzeichen. Dies erlaubt die Selbstprüfung des Codes. Die Lücke zwischen den Zeichen (als Trennung) ist ohne Information. Druckverhältnis V: schmales Element : breitem Element V = 1 : 2 bis 1 : 3. Ist das schmale Element kleiner als 0,5mm, dann gilt schmales Element : breites Element V = 1 : 2,25, bis max. V = 1 : 3. Die erste Ziffer wird dargestellt mit 5 Strichen, die 2. Ziffer mit den unmittelbar den Strichen der 1. Ziffer folgenden Lücken. Niedrige Informationsdichte, z.B. 4,8 mm/Ziffer bei einer Modulbreite X = 0,3 mm und Verhältnis V = 1 : 3

Vorteil: Alphanumerische Darstellung, großer Zeichenvorrat

Nachteil: Niedrige Informationsdichte, z.B. 4,8 mm/Ziffer bei einer Modulbreite X = 0,3 mm und Verhältnis V = 1 : 3. Kleine Toleranz.


Code 39 erweitert

Der Code 39 erweitert ist eine erweiterte Version des Code 39. Mit Code 39 erweitert sind auch die 26 Kleinbuchstaben (a-z) sowie die Sonderzeichen der Tastatur darstellbar (alphanumerischer Code). Besitzt ebenfalls keine feste Länge.

Die zusätzlichen Zeichen (z.B. die Kleinbuchstaben) werden durch Kombination von jeweils zwei Zeichen (der bereits von Code 39 existierenden Zeichen) dargestellt. Der Decoder des Lesegerätes interpretiert ein Sonderzeichen gefolgt von einem Großbuchstaben entsprechend der Referenztabelle des Code 39 extended.

Code 39 erweitert kann je nach Anwendungsfall mit oder auch ohne Prüfsumme verwendet werden. Die Prüfsumme wird ebenfalls nach Modulo 43 berechnet.

Nachteil: sehr kleine Informationsdichte, kleine Toleranz


Code 128

Der Code 128 Auto ermöglicht den vollen ASCII-Zeichensatz darzustellen. Hierzu wird automatisch zwischen den 3 Zeichensätzen A, B und C hin- und her geschaltet um damit alphanumerische Daten in der kürzest möglichen Form zu verschlüsseln. Wegen der hohen Informationsdichte und der Fähigkeit, den vollen ASCII-Zeichensatz darstellen zu können, hat sich der Code 128 weit verbreitet.

Ein Zeichen des Codes 128 setzt sich aus 11 Modulen, nämlich drei Strichen und drei Lücken, zusammen. Ausnahme ist das Stoppzeichen, das sich aus 13 Modulen zusammensetzt. Die Codelänge ist variabel.

Die drei Zeichensätze im Einzelnen:

Code 128A: Er enthält Ziffern, Großbuchstaben, Sonderzeichen und ASCII-Steuerzeichen.

Code 128B: Er enthält Ziffern und alle Groß- und Kleinbuchstaben, sowie Sonderzeichen und Umschaltzeichen.

Code 128C: Dieser Zeichensatz ordnet speziell für numerische Erfordernisse den Barcodemustern 100 Wertepaare von „00“ bis „99“ zu (plus Sonderzeichen FNC1).

Der Barcodewert muss aus einer geraden Anzahl von Zeichen bestehen. Wenn der Barcodewert aus einer ungeraden Anzahl von Zeichen besteht, wird der Barcode nicht erzeugt, sondern eine Fehlermeldung ausgegeben.

 Diese 3 eigenständigen Zeichensätze sind nur Bestandteil des Code128 Auto und werden daher kaum als eigenständiger Typ verwendet. In der Regel ist eine Nutzung eines speziellen Zeichensatzes unnötig, da der Haupttyp Code128 Auto die Zeichensätze automatisch optimiert auswählt. 


Prüfsumme Bei dem Code 128 wird intern eine Prüfsumme gebildet. Sie berechnet sich aus Modulo 103. Sie ist jedoch nicht Teil des Barcodes und wird deshalb in der Klarschriftzeile nicht dargestellt.

Der Code 128 ermöglicht ohne Zeichenkombinationen den vollen ASCII-Zeichensatz darzustellen. Jedoch darf nicht angenommen werden, dass der Code 128 mit seinem Zeichensatz alle ASCII-Zeichen direkt darstellen kann. Es wird zwischen 3 Zeichensätzen A, B und C unterschieden, die je nach Problemstellung zu verwenden sind. Ebenso ist auch  eine Vermischung dieser Zeichensätze möglich. Um den vollen ASCII-Zeichensatz darstellen zu können, benötigt man das Startzeichen A oder B in Verbindung mit einem Sonderzeichen des Code 128. Jedes Zeichen besteht aus 11 Modulen, aufgeteilt in 3 Striche und 3 Lücken. Die Striche bestehen immer aus einer gerad zahligen Anzahl von Modulen (gerade Parität) und die Lücken aus einer ungerad zahligen Anzahl von Modulen. Das Stoppzeichen ist die Ausnahme und besitzt 13 Module, bestehend aus 11 Modulen und einem Begrenzungsstrich mit 2 Modulen.

Vorteil. Voller ASCII-Zeichensatz, Hohe Informationsdichte

Nachteil: Kleine Toleranz, Vierbreiten Code, ASCII-Zeichen­satz nicht vollständig mit einem Zeichensatz darstellbar


EAN 8

Hier gibt es zwei Zeichensätze A und C mit jeweils 10 Ziffern. Die Länge ist auf acht Stellen festgelegt. Dieser Barcode ist besonders für Artikel gedacht, die wenig Platz zum Aufdruck von Barcodes bereitstellen. Da diese Nummern nur begrenzt verfügbar sind, werden sie nur auf Antrag vergeben. Ein Zeichen setzt sich - wie auch beim EAN 13 - aus sieben Elementen zusammen. Es besteht aus einem 3-stelligen Präfix (Kennzahlorganisation von der EAN zugeordnet) und einer 4-stellige Artikel Identifikation. Die Verwendung von Prüfziffern ist vorgeschrieben. Sie berechnen sich nach Modulo 10. Auch hier werden ein Start-, ein Stopp- und ein Trennzeichen verwendet.

Vorteil: Hohe Informationsdichte in 10 verschiedenen Größen.

Nachteil: Sehr kleine Toleranzen +/- 10%

(Von CIB format nicht unterstützt)


EAN 13

Er dient der Auszeichnung von Gebrauchs- und Verbrauchsgütern. Es stehen drei verschiedene Zeichensätze zur Verfügung mit einem Zeichenvorrat von je zehn Ziffern. Die Zeichen setzen sich aus vier unterschiedlich breiten Elementen zusammen. Prüfziffern sind vorgeschrieben (Modulo 10), die Barcodelänge ist auf dreizehn Stellen begrenzt. Es werden ein Start-, ein Stop- und ein Trennzeichen verwendet. Als Start- und Stopzeichen dienen hier sogenannte Randzeichen.

Vorteil: Hohe Informationsdichte in 10 verschiedenen Größen.

Nachteil: Sehr kleine Toleranzen +/- 10%

(Von CIB format nicht unterstützt)


EAN 128

Entspricht dem Code 128, jedoch wird als Startzeichen die Kombination von Start A, Start B oder Start C mit dem Zeichen FNC1 (der s.g. Function Code 1) verwendet. Diese direkte Aufeinanderfolge von Startzeichen und FNC1 am Anfang ist ein eindeutiges Kennzeichen des EAN 128. Obwohl die Länge des Codes variabel ist sollten 165 mm nicht überschritten werden. Maximal sind 48 Nutzzeichen (inklusive Datenbezeichner/AIs und eventueller FNC1 Trennzeichen) und 35 Symbolzeichen (incl. Hilfszeichen und Prüfzeichen) erlaubt.

Es können mehrere Daten gleichzeitig codiert werden. Üblich ist z.B. Lebensmittelpaletten neben dem Produktcode zusätzlich mit Gewichtsangaben und dem Haltbarkeitsdatum im Barcode auszuzeichnen.

(Von CIB format nicht unterstützt)


DataMatrix

Es wird der gesamte ASCII-Zeichensatz unterstützt. Die Länge ist variabel. Die Prüfziffer wird berechnet nach der Reed-Solomon-Fehlerkorrektur/Interne Fehlerkorrektur.

Dieser Code stellt einer der bekanntesten 2D Codes dar. Er besteht aus 4 Hauptkomponenten. Der Datenbereich enthält die Daten in der codierten Form. Die feste Begrenzungslinie ist die Ecke, die bei normaler Ausrichtung links und unten des Datenbereichs mit einer ununterbrochenen Linie dargestellt wird. Er wird benötigt um die Lage des Codes beim Scannen zu erkennen. Die „offene Begrenzungslinie“ liegt in der gegenüberliegenden Ecke der „festen Begrenzungslinie“. Diese Linien (oben und rechts) bestehen abwechselnd aus schwarzen und weißen Punkten. Sie stellen somit offene Linien dar. Beim Scannen werden diese zum Bestimmen der Zeilen und Spalten verwendet. Die Ruhelinie umgibt den Code. Dieser Bereich muss mindestens so breit sein, wie eine Spalte/Zeile bzw. ein Punkt des Codes.

Es ist möglich 3116 Ziffern oder 2335 Zeichen zu codieren. Je nach Datenmenge ist dies abhängig von einer unterschiedlichen Symbolgröße.

Vorteil: Er ist ein sehr kompakter und sicherer Code.

Nachteil: Er ist nur mit Bildverarbeitungssystemen lesbar und nicht mit linearen Barcodelesern.


QR-Code

(ab CIB format 5.3.237)

Der QR-Code (Quick Response) ist ein 2D-Code, der von der  Firma Denso im Jahr 1994 entwickelt und zur Markierung von Baugruppen und Komponenten in der japanischen Automobilproduktion eingesetzt wurde.

Der japanische Standard für QR-Codes "Japan Industrial Standard" X 0510, wurde im Januar 1999 veröffentlicht und entspricht seit dem Jahr 2000 dem Standard ISO/IEC18004.

Der QR-Code besteht aus einer quadratischen Matrix aus schwarzen und weißen Punkten, die die kodierten Daten binär darstellen. Zur Feldbegrenzung enthält er in drei seiner Ecken ein bestimmtes Muster. Über das fehlende Muster in der vierten Ecke erkennt das Lesegerät die Orientierung. Bei zunehmender Größe des Codes werden weitere Muster hinzugefügt, um die Ausrichtung des Codes besser erkennbar zu machen. Zwischen den drei Hauptpositions-Markierungen befindet sich eine Linie aus einer Folge streng abwechselnder Bits, worüber sich die Matrix definiert. Im Code enthalten sind Versionsinformationen und das benutzte Datenformat. Diese Informationen sind neben den Mustern in den Ecken angeordnet. Der restliche Bereich des Quadrats ist der Datenteil, der die kodierten Daten in redundanter Form enthält.

Die Matrixgröße des QR-Codes beträgt mindestens 21×21 und maximal 177×177. Dadurch ergeben sich folgende Darstellungs-Kapazitäten:

  • Numerisch: maximal 7.089 Zeichen
  • Alphanumerisch: maximal 4.296 Zeichen
  • Binär: maximal 2.953 Bytes


Die Randzone (quiet zone) sollte mindestens 4 Elemente breit sein. Größere Inhalte lassen sich auf bis zu 16 einzelne Codes aufteilen.

Es existieren vier Fehlerkorrektur-Levels, die eine Rekonstruktion von 7 % (Level L) bis zu 30 % (Level H) beschädigter Daten zulassen. Dabei kommt die Fehlerkorrektur der Reed-Solomon-Code zum Einsatz.


PDF417

(ab CIB format 5.3.225)

Dieser 2D-Code besitzt eine variable Länge. Es wird der gesamte ASCII-Zeichensatz unterstützt. Er basiert auf gestapelte Strichcodes (Stapelcodes).

Ein PDF417 Barcode besteht aus 3 bis 90 Zeilen, von denen jede ein Strichcode ist. Jede Zeile besteht aus:

  • Einer “quiet zone”, d.h. eine vorgegebene Anzahl Leerstellen vor dem Barcode.
  • Ein  “Startmuster”, das den Barcode-Typ identifiziert (z.B. PDF417). Jeder Barcode-Typ hat sein spezielles “Start-/Stopmuster”.
  • Ein "Zeilen-Codewort-links”, das Informationen über diese Zeile enthält (wie z.B. Zeilennummer, Fehler-Korrektur-Rate)
    • 1 - 30 Daten-Codewörter: Ein Codewort ist eine Gruppe von Strichen und Lücken, die jeweils eine Zahl, einen Buchstaben oder ein anderes Zeichen repräsentieren.
    • Jede Zeile besteht aus der gleichen Anzahl von Codewörtern.
    • Jedes Codewort besteht aus vier Strichen und vier Lücken. Daher kommt die „4“ im Namen des Barcodes.
    • Die Gesamtbreite eines Codewortes ist das 17fache der Breite des schmalsten erlaubten Striches (berechnet sich aus der x-Dimension=Anzahl Spalten). Daraus resultiert die „17“, die im Namen des Barcodes enthalten ist.
    • Jedes Codewort beginnt und endet mit einem Leerzeichen.
    • Es gibt insgesamt 926 mögliche Codewörter, 900 für Daten, 26 für Spezialfunktionen.
    • Jedes Codewort wird aus einem von drei verschiedenen „Clustern“ geholt:
      • Jedes Cluster enthält ein bestimmtes Strich-/Lücken-Muster für jedes der 926 Codewörter.
      • Innerhalb der Cluster kommt jedes Strich-/Lücken-Muster nur einmal vor.
      • Die Zeilennummer (mod 3) legt fest, welches Cluster zu verwenden ist.
      • Dadurch wird für alle Codewörter einer Zeile das gleiche Cluster verwendet.
      • Der Zweck des Clusters ist, eine feste Beziehung zwischen Codewort und Zeile herzustellen. Dadurch kann der Scanner auch waagrecht über den Barcode bewegt werden.
  • Ein  „Zeilen-Codewort-rechts” mit weiteren Informationen zu der Zeile.
  • Ein “Stopmuster
  • Eine “quietzone”.

Die Korrektur-Rate ist von „0“ bis „8“ einstellbar. Bei „8“ können ca. 50% der Zeichen rekonstruiert werden, der Barcode wird dann allerdings sehr groß.

Vorteil: Sehr kompakter und flexibler Code mit variabler Länge. Er hat sehr gute Fehlerkorrektur-Möglichkeiten.


Code 93

Dieser Code umfasst eine variable Länge. Es sind keine Prüfziffern vorgesehen. Er ist ein alphanumerischer Code vergleichbar dem Code 39. Sein Zeichenvorrat beinhaltet die Ziffern 0 bis 9, 26 Großbuchstaben (A–Z), das Leerzeichen sowie die Sonderzeichen Minus, Punkt, Dollarzeichen, Schrägstrich, Plus und das Prozentzeichen.

(Von CIB format nicht unterstützt)


Code 93 Extended

Er stellt eine erweiterte Version des Code 93 dar. Er kann den einfachen ASCII-Zeichensatz darstellen. Es sind die 26 Kleinbuchstaben (a-z) sowie die Sonderzeichen der Tastatur darstellbar. Die Breite des Codes kann hierdurch jedoch erheblich erhöht werden, da einige Zeichen aus zwei Zeichen im Strichcode gebildet werden.

(Von CIB format nicht unterstützt)