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 verringerten 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 der Platzbedarf mit dem Platzbedarf eines DataMatrix Code verglichen wird. Um einen gültigen Vergleich zu erzielenm wird ein identischer Dateninhalt und eine identische Modulgröße benutzt. 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 ein GS1 Databar (14), der zweite ein EAN-13 Code und der dritte Code ist ein GS1 Databar limited. Darunter steht in der Mitte ein DataMatrix Code mit dem identischen Dateninhalt und der identischen Modulgröße

Codegroessenvergleich

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. Relevant ist dieses Merkmal für traditionelle Scanner, die mit einem Laserstrahl anstelle von einer Kamera arbeiten. Der  Scannerlichtstrahl eines Laserscanners, der den Code erfasst, muss  nicht den gesamten Code in einem Zug lesen, sondern der Scanner kann seinen Lichtstrahl in beliebigen Winkeln über den Code laufen lassen, solange bis alle  Codeworte und das dazugehörige Suchmuster, im Extremfall jeweils einzeln, erfasst wurden. Sinn- und Zweck dieser Konstruktion 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.

Im Einzelhandel sieht man  vermehrt fast nur noch Scanner, die mit einer Kamera anstelle von einem Laserstrahl arbeiten. Höhenverkürzte Codes sind bei einem Kameascanner unkritischer. Ein GS1 Databar Code,  der für Scannerkassen mit Laser konstruiert wurde ist damit überflüssig (bzw. kam viel zu spät), da es mit der Kategorie der Matrixcodes eine sehr viel bessere Lösung gibt.

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.

databar 14  
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 orangenen 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 beinhaltet 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 (Application Identifier) aus der Datenstruktur, die in den  GS1 General Specifications spezifiziert ist. 01 zeigt eine Artikelnummer nach dem Vergabeschema von 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.  

 

databar stacked  

Bild: GS1 DataBar Stacked

Die gestapelte Version des GS1 DataBar entspricht der normalen GS1 DataBar Version. Auch hier gilt die Unterscheidung "Omnidirectional" 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.

databar limited

Das GS1 Databar limited Symbol ist in einigen Konstellationen so aufgebaut dass im Code die Strich/Lückenabfolge eines  UPC-A Codes erscheint. Es besteht daher die Möglichkeit, dass ein UPC-A Code anstelle des GS1-DataBar limited erkannt und 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 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 nach ISO 646 kodierbar. Dazu kommen codespezifische Zeichen wie das FNC1 Zeichen und Umschaltzeichen 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.

databar expanded stacked

Im Gegensatz zu den anderen GS1 DataBar Versionen wird der Application Identifier (AI) 01 nicht vom Scanner generiert und dem Code vorangestellt mit ausgegeben. Die benötigten Datenbezeichner müssen immer mit im Code enthalten sein.  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. Die Eigenschaft der lageeunabhängige Lesefähigkeit (Omnidirektional) ist daber aucg bei dieser GS1 Databar Varaiante vorhanden. 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 mit demselben Codeinhalt wie der obige GS1 DataBar Expanded stacked.

datavar exp linear

Für den GS1 Databar Expanded Stacked gelten die folgenden Regeln: 

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). Die erste und alle folgenden ungeraden Zeilennummer beginnen mit einer Lücke. Die zweite und alle folgenden geraden Zeilennummer beginnen 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)