GS1 DataBar

Der GS1 DataBar beschreibt eine Familie von Codes die in der Norm ISO/IEC 24724 beschrieben ist.

Im Gegensatz zu den bisherigen Strichcodearten hat der GS1 Databar keine direkte Zuordnung eines Codewortes zu dem dekodierten Codeinhalt. Es werden z.B. nur zwei Codewörter benutzt die zusammengesetzt und dekodiert eine 14-stellige Nummer ergeben.

Ursprünglich wurde der Code RSS Code genannt. Das steht für Reduced Space Symbology (= Codeart mit veringerten Platzanforderungen). Aufgrund der Namensgleichheit zu den RSS Feeds wurde dieser Name aufgegeben.

Im Gegensatz zu allen anderen Codearten ist der GS1 Databar ausschließlich für die Nutzung der GS1 Datenstruktur mit Application Identifiern vorgesehen. Dazu kommt eine weitere Besonderheit. Im Falle der GS1 Datenstrukturen wird das Sonderzeichen FNC1 (ist nicht im ASCII Zeichensatz vorhanden) grundsätzlich an der ersten Stelle im Code verwendet.  Eine Ausnahme ist der GS1 DataBar Code in allen Varianten. Das FNC1 Zeichen darf in diesem Code nie als Erkennungsmerkmal der Datenstruktur an der ersten Stelle im Code benutzt werden.

Wenn der Platzbedarf der klassischen Codearten (EAN, Code 128) mit dem GS1 DataBar verglichen wird dann stellt sich heraus dass der Platzvorteil vorhanden ist aber eher marginal ausfällt. Das macht sich insbesondere bemerkbar, wenn man den Platzbedarf eines EAN Codes mit einem DataMatrix Code vergleicht. Zum Vergleich wird ein identischer Dateninhalt und eine identische Modulgröße festgelegt und vorausgesetzt. Der EAN-13 Code wird als Bezug mit 100% Platzbedarf angenommen. Der Data Matrix Code ist mit weniger als 20% Platzbedarf bezogen auf den EAN-13 Code drastisch kleiner. Der GS1 DataBar benötigt immer noch 70 - 90 % des Platzes eine EAN-13 Codes.

Das folgende Bild zeigt diese Verhältnisse auf. Der erste Code ist eine GS1 Databar (14), der zweite ein EAN-13 Code und der dritte ist ein GS1 Databar limited. Darunter steht in der Mitte ein DataMatrix Code mit dem identischen Dateninhalt und der identischen Modulgröße

Das Bild unterschlägt die Möglichkeit den GS1-Databar mit einer geringeren Codehöhe zu benutzen als dies bei dem EAN-13 Code der Fall ist. Dies ist relevant wenn die Codes an der Scannerkasse lageunabhängig gelesen werden sollen. 

Eine Besonderheit des GS1 DataBar ist die Anordnung der Codewörter mit den Suchmustern. Diese sind so angelegt worden dass der Scanner jedes einzelne Codewort zusammen mit dem Suchmuster lesen kann und nachher wieder alles richtig zusammenfügen kann. Dies dient dazu dass Scannerlichtstrahl der den Code erfasst nicht den gesamten Code in einem Zug lesen muss sondern der Scanner kann seinen Lichtstrahl in beliebigen Winkeln über den Code laufen lassen solange noch mindestens ein Codewort und das dazugehörige Suchmuster erfasst wird. Sinn- und Zweck dieser Konstruktrion ist die möglichst lageunabhängige Lesefähigkeit des Codes (Omnidirektional). Die höhenverkürzte Version (truncated) wirkt dieser Eigenschaft wieder entgegen und ist daher nicht für den Scanner an der Kasse (im Tisch eingebaut) vorgesehen sondern für manuell bediente Handscanner bei denen der sichtbare Lesestrahl auch bei höhenverkürzten Symbolen einfach positioniert werden kann.

 

Der GS1 Databar teilt sich in drei Gruppen ein.

Gruppe bzw. Version 1:

GS1 DataBar Omnidirectional

GS1 Databar truncated

GS1 Databar stacked

GS1 DataBar stacked Omnidirectional

Die truncated und omnidirectional Versionen unterscheiden sich nur in der Codehöhe. Alles andere ist völlig identisch.

Die stacked Version teilt den Code in zwei Zeilen auf. Dadurch wird der Code schmaler.

Alle vier Versionen kodieren nur eine 14-stellige Nummer und können nur die Ziffern von 0 bis 9 kodieren.


Bild: GS1 Databar (14)

Das blau/dunkelrote Zebrastreifenraster zeigt das Modulraster des Codes. Die grünen Teile sind das Start- und Stoppzeichen. (Left and right guard pattern). Korrekter ist die Bezeichnung Begrenzungszeichen weil die breite der Lücke links und des rechten Striches nicht begrenzt sind. Die blauen Bereiche sind die Suchmuster (finder Pattern, 15 Module). Die roten und orangen Bereiche sind die Codewörter in der Sequenz 1, 2, 4, 3. Die Codewörter 1 und 3 sind 16 Module breit. Die Codewörter 2 und 4 sind 15 Module breit. Jedes Datencodewort besteht immer aus 4 Strichen und 4 Lücken. Das Gesamtsymbol hat 46 Elemente (Balken und Lücken) und eine Breite von  96 Modulen.

Die Prüfziffer wird nach dem Modulo 10 Verfahren berechnet und mit in die 14 Datenzeichen kodiert. Zusätzlich ist in den Suchmuster noch eine Modulo 79 Prüfziffer kodiert.  Das erste Codewort behinhaltet eine Verbindungsanzeige (linkage flag). Wenn der Wert von diesem flag 1 ist dann zeigt es an dass es sich um einen Composite Code handelt. Dabei wird über dem Strichcode noch ein 2D Code angeordnet der weitere Daten aufnimmt.
Im Klartext wird zusätzliche (01) angezeigt. Dies ist nie Bestandteil des Codes. Die Klammern sind nur im Klartext eingefügt damit ein Mensch zwischen dem eigentlichen Dateninhalt und dem Scanner hinzugefügten Wert 01 unterscheiden kann. Der Wert 01 ist ein Datenbezeichner in der ISO/IEC  15418 Struktur. 01 zeigt eine Artikelnummer nach dem Vergabeschema der Firma GS1 an. Für diesen Code wird nur der Datenbezeicher 01 zugelassen. Der Datenbezeichner wird verwendet damit die Programme die, die Daten vom Scanner erhalten immer identisch strukturierte Daten erhalten und damit die Daten immer gleich verarbeiten können ohne auf die jeweilige Codeart Rücksicht nehmen zu müssen, die diese Datenstruktur benutzt.

 

Bild: GS1 DataBar Stacked

Die gestapelte Version des GS1 DataBar entspricht der normalen GS1 DataBar Version. Auch hier gilt die Unterscheidung "Omindirectional" für eine große Zeilenhöhe und "truncated" für ein Symbol mit geringen Zeilenhöhen.
An der ersten Zeile ist zusätzlich hinten ein Balken und eine Lücke mit je einem Modul Breite angehängt. Bei der zweiten Zeile ist ein Balken und eine Lücke der Zeile vorangestellt.

Gruppe bzw. Version 2

GS1 Databar limited

Der GS1 Databar limited ist eine Version des Codes die noch weiter größenreduziert wurde. Dies wurde dadurch erreicht dass es nur noch zwei anstelle von vier Codewörtern (rot markiert) gibt. Die Suchmuster sind von zwei auf eines reduziert worden (grün in der Mitte). Zur Prüfziffernberechnung wird Modulo 89 benutzt.

Das GS1 Databar limited Symbol ist in einigen Konstellationen des UPC-A Codes enthalten. Es besteht daher die Möglichkeit dass ein UPC-A Code als GS1-DataBar limited gelesen wird. Aus diesem Grund wurde die Referzenzdekodierung des GS1 Databar limited verbessert. Zum einen wird das Suchmuster überprüft und zum anderen wird überpüft (wenn ein GS1 DataBar limited erkannt wurde) ob die Muster des UPC-A Codes vor oder hinter dem GS1 Databar limited erkannt werden. Zusätzlich wurde eine Ruhezone von 5 Modulen eingeführt. Weitere Details dazu sind in der Norm ISO/IEC 24724 im Annex H zu finden.

Ein gestapelte Version des  GS1 Databar limited Codes gibt es nicht.

Gruppe bzw. Version 3

GS1 DataBar Expanded

GS1 DataBar Expanded stacked

Diese beiden GS1 Databar Versionen sind sind längenvariabel und nicht auf die 14 stellige rein numerische Kodierung wie die beiden anderen Versionen des GS1 Databar beschränkt. Es sind  alle Ziffern, Groß- und Kleinbuchstaben sowie 21 Sonderzeichen noch ISO 646 kodierbar. Dazu kommen Codespezifische Zeichen wie das FNC1 Zeichen und Umschlaltzeichen in die numerische und alphanumerische Kodierung. Die Norm begrenzt den Dateninhalt auf 74 Ziffern bzw.  41 alphanumerische Zeichen. Die Prüfziffer wird im Modulo 211 Verfahren berechnet.

Im Gegensatz zu den anderen GS1 DataBar Versionen wird der Application Identifier (AI) 01 nicht vom Scanner generiert und dem Code vorangestellt mit ausgegeben. Da der GS1 Databar expanded nicht immer mit dem AI 01 beginnt würde das Verfahren zu Fehlern führen. Die Application Identifier müssen daher mit kodiert werden. Die grundlegende Struktur Codewörter und Suchmuster zu Blöcken anzuordnen (Im Bild Blau Suchmuster, Orange und Rot Codewörter) wird in der Expanded Version des GS1 DataBar beibehalten. Damit kann auch diese Codeversion bei schrägen Leselinien Blockweise gelesen werden und der Decoder im Scanner kann den Code wieder zusammensetzten. Damit wird auch bei dieser Codeversion die lageeunabhängige Lesefähigkeit (Omnidirektional) verbessert. Das FNC1 Zeichen an der ersten Position zur Kennung der GS1 Datenstruktur darf auch in der Expanded Version des GS1 Databar nicht verwendet werden. Es muss aber nach wie vor als Feldtrenner vewendet werden, wenn an ein Datenfeld wie die Charge (AI10) mit einer variablen Länge ein weiteres Datenfeld anschließt.

Das folgende Beispiel zeigt einen GS1 DataBar Expanded stacked mit demselben Codeinhalt wie der obige GS1 DataBar Expanded.

Die erste und die folgenden Zeilen müssen mindestens vier Datencodewörter beinhalten. Es dürfen geradzahlige Anzahlen von Codewörtern benutzt werden. Eine Ausnahme bildet die letzte Zeile. Diese Zeile soll mindestens zwei Codewörter beinhalten. Wenn die Daten das nicht benötigen wird das Codewort mit einem Füllzeichen komplettiert (Pad Zeichen).

Jede Zeile beginnt und schließt mit einem Begrenzungszeichen ab. Das Begrenzungszeichen besteht aus 2 Elementen (Balken oder Lücke). Dier erste und alle folgenden ungeraden Zeilennummer beginnen mit einer Lücke. Die zweite und alle folgenden geraden Zeilennummer beginnnen mit einem Strich.

Je nach Anzahl der Codewörter werden die Codewörter normal oder in umgekehrter Reihenfolge gedruckt damit die Begrenzungszeichen korrekt gesetzt werden können. Zwischen den Zeilen wird ein Trennmuster eingefügt das mindestens 3 Module hoch ist.

Eine weitere Besonderheit ist eine Kompression des Codes wenn bestimmte AI Kombinationen verwendet werden. In diesem Fall wird ein bestimmtes Bitmuster benutzt das z.B.  3 AI und einen Teil der Daten zusammenfasst (ISO/IEC 24724 Kapitel 7.2.5.4  Compressed data field)