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)