DE69728485T2 - Abtaster für Strichkodes mit Fehlern - Google Patents

Abtaster für Strichkodes mit Fehlern Download PDF

Info

Publication number
DE69728485T2
DE69728485T2 DE69728485T DE69728485T DE69728485T2 DE 69728485 T2 DE69728485 T2 DE 69728485T2 DE 69728485 T DE69728485 T DE 69728485T DE 69728485 T DE69728485 T DE 69728485T DE 69728485 T2 DE69728485 T2 DE 69728485T2
Authority
DE
Germany
Prior art keywords
bar code
error
width
bar
spaces
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69728485T
Other languages
English (en)
Other versions
DE69728485D1 (de
Inventor
Theodore Suwanee Heske
Barry Myron Lawrenceville Mergenthaler
Denis Michael Duluth Blanford
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NCR International Inc
Original Assignee
NCR International Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NCR International Inc filed Critical NCR International Inc
Application granted granted Critical
Publication of DE69728485D1 publication Critical patent/DE69728485D1/de
Publication of DE69728485T2 publication Critical patent/DE69728485T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/146Methods for optical code recognition the method including quality enhancement steps
    • G06K7/1486Setting the threshold-width for bar codes to be decoded
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Toxicology (AREA)
  • Health & Medical Sciences (AREA)
  • Electromagnetism (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Printers Characterized By Their Purpose (AREA)
  • Character Input (AREA)

Description

  • Die Erfindung bezieht sich allgemein auf Balkencode-Abtaster und speziell auf das Abtasten von durch Druckfehler beeinträchtigten Balkencodes.
  • Übliche Balkencodes haben unterschiedlich breite Balken und Zwischenräume, die geeignet auf ein Etikett gedruckt sind. Der Balkencode kann jegliche übliche Form in ein oder zwei Dimensionen annehmen und enthält beispielsweise die typische eindimensionale UPC-Form. Die UPC-Symbologie basiert auf einer Spezifikation, die von der Uniform Product Code Council, Inc. in Dayton, Ohio, eingeführt wurde. Ein typischer UPC-Balkencode enthält eine Reihe oder Folge von abwechselnden dunklen Balken und hellen Zwischenräumen unterschiedlicher Breiten. Die Balken und Zwischenräume sind in Gruppen angeordnet, welche einzelne Zeichen darstellen. Der Balkencode beginnt mit einem Zeichen am linken Rand und endet mit einem Zeichen am rechten Rand und hat weiterhin in der Mitte Bezugszeichen, wobei irgendwelche gewünschte Daten darstellenden Zeichen dazwischen angeordnet sind.
  • Die minimale Breite entweder eines Balkens oder eines Zwischenraums in der UPC-Symbologie ist definiert als ein einzelnes Modul, welches eine Einheitsbreite darstellt. Die Breite eines einzelnen Zeichens, welches nach UPC-Symbologie codiert ist, beträgt sieben (7) Module. Ein Sieben-Modul-UPC-Zeichen hat zwei Balken und zwei Zwischenraumelemente, die unterschiedliche Breite haben, um zwischen den jeweiligen Zeichen zu unterscheiden. Ein üblicher Balkencode-Abtaster, etwa ein Laserscanner, wie er in dem Dokument US 5 493 108 A beschrieben ist, tastet den Balkencode mit einem Abtaststrahl über alle Balken und Zwischenräume ab, und das davon zurückgeworfene Licht wird von einem Photodetektor im Abtaster festgestellt, der daraus eine Signatur abwechselnder maximaler und minimaler Signalintensitäten und unterschiedlicher Zeitdauer erzeugt. Die maximale Signalintensität entspricht dem Feststellen eines weißen Zwischenraums, und die minimale Signalintensität entspricht dem Feststellen eines dunklen Balkens. Da die Abtastgeschwindigkeit des Abtaststrahls genau bekannt ist, entspricht die relative Zeitdauer der abwechselnden minimalen und maximalen Signalintensitäten den unterschiedlichen Breiten der Balken und Zwischenräume. Der Abtaster enthält einen üblichen Decoder, welcher die unterschiedlichen Breiten der festgestellten Balken und Zwischenräume aufgrund der Breitenmodule erkennt und das auf diese Weise codierte entsprechende Datenzeichen liefert.
  • Daher sind die genauen Größenverhältnisse der Breiten von Balken und Zwischenräumen kritisch für eine einwandfreie Decodierung der auf diese Weise codierten Daten. Wenn ein Balken oder ein Zwischenraum entweder zu breit oder zu schmal ist, dann kann der Decodierer den Balkencode nicht als gültig erkennen und ihn daher nicht lesen.
  • Es gibt viele praktikable Möglichkeiten zum Drucken existierender Balkencode-Etiketten. Bei einer Ausführung enthält ein linearer Druckkopf, wie etwa ein Thermodrucker, eine lineare Anordnung von Hunderten von Thermodruckelementen, die unter einzelner Ansteuerung geheizt werden können. Ein Etikett wird gedruckt durch Vorbeiführen eines thermoempfindlichen leeren Papieretiketts an der linearen Thermodruckelementanordnung. Das Papier reagiert auf die Hitze durch Dunkelwerden an der Stelle der Hitzezuführung, während die nicht der Hitze ausgesetzten Stellen im Wesentlichen weiß bleiben. Auf diese Weise lassen sich die Druckelemente einzeln steuern, um Bilder von Text, Zahlen und insbesondere Balkencodes auf Papier hervorzubringen.
  • Ein üblicher Fehler bei linearen Druckern besteht in dem Ausfall eines einzelnen Druckelementes. In diesem Fall kann der Drucker an der Stelle des ausgefallenen Elementes nicht drucken, und anstelle des beabsichtigten dunklen Zwischenraums bleibt ein weißer Zwischenraum auf dem Papier. Bei einem Balkencode-Etikett erzeugt ein ausgefallenes Element, welches sich dort findet, wo ein dunkler Balken erforderlich ist, einen sichtbaren dünnen Zwischenraum in der Länge des Balkens, wo der Druck fehlt. Solch ein Druckzwischenraum beeinträchtigt einen Balkencode leicht, der dann fehlerhaft ist, weil ein Zwischenraum an der gesamten Länge des einzelnen Balkens auftritt und entsprechende Änderungen seiner Breite von der beabsichtigten Größe die Folge sind. Ein Druckfehler kann entweder an den beiden Grenzen eines einzelnen Balkens oder im Inneren eines einzelnen Balkens auftreten und in beiden Fällen ändert sich die entsprechende Breite und führt zu Decodierfehlern, da der Balkencode nicht mehr die erforderlichen Spezifikationen der anwendbaren Balkencode-Symbologie erfüllt.
  • Die Aufgabe der Erfindung besteht in der Schaffung eines Balkencode-Abtasters, welcher weniger anfällig gegen Druckfehler als bisherige Abtaster ist.
  • Gemäß der Erfindung zeichnet sich ein Verfahren zum Abtasten eines Balkencodes mit einer Mehrzahl aufeinanderfolgender Balken und Zwischenräume unterschiedlicher Breite aus durch die Schritte:
    Aufeinanderfolgendes Abtasten eines Balkencodes über seine Balken und Zwischenräume zur Erzeugung einer Balkencode-Signatur;
    Messen der Breiten der Balken und Zwischenräume in der Signatur als Vielfache eines Minimalbreitenmoduls; und
    Ermittlung jeglicher Teilbreiten in angrenzenden Balken und Zwischenräumen zum Auffinden jeglichen Fehlers in dem festzustellenden Balkencode.
  • Weiterhin hat gemäß der Erfindung ein Abtaster zum Abtasten eines Balkencodes mit mehreren abwechselnden Balken und Zwischenräumen verschiedener Breiten
    eine Vorrichtung zum sequentiellen Abtasten eines Balkencodes über dessen Balken und Zwischenräume zur Lieferung einer Balkencode-Signatur;
    eine Vorrichtung zum Messen der Breiten und Zwischenraumbreiten in der Signatur als Vielfache eines Minimalbreitenmoduls; und
    eine Vorrichtung zum Feststellen jeglicher Teilbreiten in benachbarten Balken bzw. Zwischenräumen zur Ermittlung jeglichen Fehlers in dem festzustellenden Balkencode.
  • Die Erfindung sei nun in Beispielform mit Bezug auf die beiliegenden Zeichnungen erläutert. Es zeigen:
  • 1 eine schematische Darstellung eines Balkencode-Abtasters, der einen fehlerhaften Balkencode feststellt und Fehler darin zum Zwecke der Decodierung korrigiert, gemäß einer beispielhaften Ausführungsform der Erfindung;
  • 2 ein Beispiel eines Flussdiagramms für ein Verfahren zum Feststellen, Korrigieren und Decodieren eines feh lerhaften Balkencodes, wie er in dem Balkencode-Abtaster nach 1 enthalten ist;
  • 3 einen vergrößerten linken Randteil eines beispielhaften UPC-Balkencode-Etiketts und linearen Druckers, um Balken darauf zu drucken;
  • 4 eine Kopie des Balkencode-Etiketts nach 3 zur Veranschaulichung eines fehlerhaften Druckelementes am Rand eines Balkens;
  • 5 eine Kopie des Balkencode-Etiketts nach 3 mit einem fehlerhaften Druckelement im Inneren eines Balkens; und
  • 6 eine Kopie des Balkencodes nach 5 zusammen mit einer schematischen Darstellung entsprechender Balkencode-Signatur-Abtastdaten und zugehöriger Druckfehlerprotokolle.
  • 1 zeigt schematisch einen Laser-Balkencode-Abtaster 1 zum Abtasten und Decodieren eines üblichen Balkencodes 12, der auf ein geeignetes Etikett 14 aufgedruckt ist. Der Balkencode 12 kann irgendeine übliche Form in ein oder mehreren Dimensionen sein, einschließlich der dargestellten üblichen eindimensionalen UPC-Symbologie.
  • Der in 1 veranschaulichte beispielhafte Balkencode 12 enthält eine Mehrzahl aufeinanderfolgender oder abwechselnder dunkler Balken 12a und heller Zwischenräume 12b, welche geradlinig und parallel zueinander verlaufen und entsprechend unterschiedliche Breiten Wb und Ws haben. Die Balken und Zwischenräume sind in einer Mehrzahl aufeinanderfolgender Gruppen angeordnet, welcher jeweils Zeichen gleicher Breite definieren. Die Minimalbreite eines Balkens oder Zwischenraums wird als Minimalbreitenmodul definiert und muss in der UPC-Symbologie definitionsgemäß mehr als 228,6 μ (9 mils) betra gen. Ein einzelnes UPC-Zeichen hat definitionsgemäß zwei Balken 12a und zwei Zwischenräume 12b unterschiedlicher Breiten. Ferner müssen die definierten Breiten eines einzelnen unter Verwendung der UPC-Symbologie codierten Zeichens definitionsgemäß sieben Module betragen. Die UPC-Symbologie definiert schließlich auch die maximale Balkenbreite als vier Module.
  • Bei dem in 1 veranschaulichten beispielhaften Balkencode 12 beginnt der Balkencode üblicherweise mit einem Linksrandzeichen 12c und endet mit einem Rechtsrandzeichen 12d und hat in der Mitte ein Bezugszeichen 12e, wobei die übrigen Balken und Zwischenräume dazwischen die gewünschten Datenzeichen bestimmen. Wie oben gesagt, hat jedes der Datenzeichen eine Gesamtbreite von sieben Modulen und umfasst zwei Balken und zwei Zwischenräume.
  • Das in 1 gezeigte Beispiel eines Abtasters 10 enthält übliche Mittel zur optischen Abtastung des Balkencodes 12 in einer Abfolge über die Balken und Zwischenräume 12a, b über die gesamte Breite des Balkencodes 12 von linken Randzeichen 12c zum rechten Randzeichen 12d. Bei der gezeigten bevorzugten Ausführungsform erfolgt die Abtastung unter Verwendung eines üblichen Lasers 16, der einen geeigneten Laserstrahl 16a aussendet, welcher mit Hilfe eines üblichen Ablenkgenerators 18 über die Fläche des Balkencodes 12 geführt wird, der die Form eines rotierenden Mehrflächenspiegels haben kann. Der Laserstrahl 16a wird quer über den Balkencode 12 in Abtastrichtung S geführt, so dass das zurück reflektierte Licht 16b die Balken und Zwischenräume zum Abtaster zurück reflektiert. Da die Balken 12a dunkel sind, wird von ihnen nur sehr wenig Licht reflektiert, während die Zwischenräume 12b im Wesentlichen weiß sind und erheblich mehr Abtastlicht zum Abtaster zurück streuen.
  • Im Abtaster 10 ist ein üblicher Photodetektor 20 in geeigneter optischer Ausrichtung vorgesehen, um das zurückgestreute Licht 16b zu empfangen und eine elektrische Balkencode-Signatur 20s zu erzeugen, deren Intensität zwischen Maximal- und Minimalwerten liegt entsprechend dem von den Zwischenräumen 12b bzw. Balken 12a zurückgestreuten Licht. Die zeitliche Dauer der Teile der maximalen und minimalen Intensität in der Signatur 20s entspricht den unterschiedlichen Breiten der Balken und Zwischenräume. Da der Abtaststrahl 16a über den Balkencode 12 in bekannter Weise und mit konstanter Geschwindigkeit geführt wird, stellt die Balkencode-Signatur 20s den Balkencode 12 selbst dar und kann mit einem üblichen Decoder 22 decodiert werden, der speziell für die entsprechende Symbologie des auf das Etikett 14 gedruckten Balkencodes konfiguriert ist.
  • Der Decoder 22 kann irgendeine geeignete Form haben und ist typischerweise ein digital programmierbarer Mikroprozessor, der eine geeignete Software für die Analysierung der Balkencode-Signatur 20s und für die Decodierung der darin enthaltenen Daten enthält. Der Abtaster 10 ist elektrisch mit einem geeigneten Display 24 verbunden, das zur Darstellung bestimmter im Balkencode 12 codierter Information benutzt werden kann, wie etwa dem Preis eines durch ihn repräsentierten Verkaufsartikels. Wenn der Balkencode 12 genau abgetastet und decodiert ist, dann können die Daten auf dem Display 24 angezeigt werden, und ein mit dem Abtaster 10 verbundener kleiner Lautsprecher 26 gibt einen Ton, um die erfolgreiche Decodierung des Balkencodes 12 anzugeben.
  • Wenn jedoch der Abtaster 10 den Balkencode 12 nicht lesen kann, dann piept der Lautsprecher nicht, und das Display 24 bleibt leer. Man kann ein mehrfaches Überstreichen des Balkencodes 12 mit dem Abtaster 10 versuchen, um das Etikett falls möglich richtig abzulesen, oder der Balkencode 12 kann nicht gelesen werden, wenn er fehlerhaft ist.
  • Wie oben im Abschnitt über den technischen Hintergrund beschrieben wurde, wird der in 1 gezeigte Balkencode 12 typischerweise unter Verwendung eines üblichen linearen Druckers 28 gedruckt, von denen in 1 drei Stück gezeigt sind. Mehrere Drucker 28 sind veranschaulicht, weil der Abtaster 10 typischerweise in einem Ladengeschäft benutzt wird zur Decodierung der verschiedenen Balkencodes, die sich auf den verschiedenen Verbraucherwaren befinden und mit einer erheblichen Anzahl verschiedener Drucker gedruckt worden sein können. Jeder der drei Drucker kann im Laufe der Zeit ausfallen und die Balken und Zwischenräume nicht richtig drucken, wobei einzelne der Balken und Zwischenräume entweder Untergröße oder Obergröße haben, so dass der Abtaster 10 den Balkencode im normalen Betrieb nicht erkennen und decodieren kann.
  • Da ein grundlegender Gesichtspunkt der üblichen Decodierung eines beispielsweise die UPC-Symbologie verwendenden Balkencodes in der Benutzung von Minimalbreitenmodulen für die Definierung der Balken und Zwischenraumelemente liegt, kann dies mit Vorteil für die Erfindung ausgenutzt werden zum Feststellen bestimmter Arten von Druckfehlern im Balkencode 12. 2 zeigt ein Flussdiagramm eines Beispiels für ein Verfahren gemäß einer Ausführung der Erfindung, welches zum Feststellen von Fehlern im Balkencode in den im übrigen normalen Abtaster 10 gemäß 1 inkorporiert werden kann.
  • Das Verfahren beginnt bei irgendeinem Typ von Balkencode 12, der in üblicher Weise abgetastet wird, um seine Balkencode-Signatur 20s zu bekommen. Die Breiten der Balken und Abstände in der Signatur 20s sind dann passend als Vielfache des Mini malbreitenmoduls bemessen. Dann können aufeinanderfolgende Teilbreiten benachbarter der Balken und Zwischenräume festgestellt werden, um Druckfehler im Balkencode 12 zu entdecken. Da definitionsgemäß nach der UPC-Symbologie jeder Balken 12a und Zwischenraum 12b ein ganzes Vielfaches von ihre Breite definierenden Modulen haben muss, sind Teilbreiten oder nicht ganzzahlige Breiten ein Zeichen für einen Balkencodefehler, der gemäß der Erfindung festgestellt werden kann und gewünschtenfalls anschließend korrigiert werden kann.
  • Im einzelnen veranschaulicht 3 den linken Randteil des in 1 gezeigten Balkencode-Etiketts 14, auf dem als Beispiel ein Balkencode 12 aufgedruckt ist. Der lineare Drucker 28 ist schematisch neben dem Etikett 14 angeordnet veranschaulicht, um in üblicher Weise die Balkencodes 12a aufzudrucken. Der Drucker 28 enthält einen linearen Druckkopf, der durch eine Reihe individueller Druckelemente 28a definiert ist, welche bei einem Ausführungsbeispiel Thermodruckelemente sein können. Lineare Thermodrucker sind allgemein bekannt, und bei ihnen wird jedes Druckelement 28a unter individueller Steuerung erhitzt, um mit thermisch empfindlichem Papier zusammenzuwirken, welches das Etikett 14 bildet. Wenn das in 3 gezeigte Etikett 14 nach unten bewegt wird, wie es die Figur zeigt, dann werden die jeweiligen Druckelemente 28a geheizt, um das Etikett 14 unter den betreffenden Elementen 28a thermisch dunkel werden zu lassen, um die gewünschten Balken 12a zu erzeugen, zwischen denen die Zwischenräume 12b verbleiben, da die dortigen Druckelemente 28a nicht geheizt werden.
  • Ein repräsentativer Thermodruckkopf hat eine lineare Auflösung von 137 Druckelementen pro 25,4 mm oder 185,42 μ (7.3 mils) pro Element. Weil ein UPC-Minimalmodul größer als 228,6 μ (9 mils) sein muss, muss man ein Minimum von zwei Druckelementen 28a verwenden, um die minimale Balkenbreitengröße zu überdecken. Daher bestimmt die anwendbare Balkencode-Symbologie die Breite des Minimalmoduls beim Drucken von Etiketten, und die lineare Auflösung des Thermodruckers bestimmt die Anzahl von Druckelementen, die benutzt werden muss, um die minimale Modulbreite zu erfüllen.
  • Die Mehrzahl der üblichen linearen Druckköpfe, die zum Drucken von Balkencode-Etiketten benutzt werden, arbeiten entweder mit zwei oder drei Druckelementen 28a für jedes Balkencodemodul, wobei 3 zwei Druckelemente 28a pro Modul veranschaulicht. Es sei bemerkt, dass die ersten drei Balken, welche in 3 gezeigt sind, jeweils die Breite eines einzigen Moduls haben, der unter Verwendung von zwei benachbarten Druckelementen 28a gedruckt ist. Der vierte Balken 12a hat eine Breite von zwei Modulen und ist unter Verwendung von vier benachbarten Druckelementen 28a gedruckt. Die entsprechenden Zwischenräume 12b zwischen den benachbarten Balken 12a haben entsprechend der Symbologie notwendigerweise Breiten von einem oder mehr Modulen und werden einfach dadurch erzeugt, dass das darüber befindliche Druckelement 28a nicht geheizt wird.
  • Fehlertypen
  • Wenn das Druckelement 28a schlecht wird, hört es auf zu drucken. Dies führt zu zwei verschiedenen Arten von Fehlern in gedruckten Balkencode-Etiketten 14. 4 veranschaulicht einen ersten Fehlertyp I. Hier liegt der Fall vor, dass ein schlechtes Druckelement 28b in die normale Grenze zwischen einem Balken- und einem Zwischenraumelement fällt. Das schlechte Druckelement 28b führt zu einer Verschiebung in dieser Grenze, wie gestrichelt gezeichnet, und dies verfälscht die beabsichtigte Symbolcodierung. Wenn das gedruckte Etikett von einem Balkencode-Abtaster gelesen wird, dann sieht der Abtaster nur das beschädigte Symbol. Ein Fehler des Typs I vergrößert die betroffene Zwischenraumbreite Ws und verringert die Breite Wb des benachbarten Balkens.
  • 5 zeigt einen Fehler vom Typ II. Hier fällt das schlechte Druckelement 28 ins Innere eines beabsichtigten Balkens, wie gestrichelt gezeigt. Das schlechte Druckelement 28b führt dazu, dass benachbarte Balkenteile fälschlicherweise als Balken-Zwischenraum-Balken-Muster erscheinen. Wenn dieses gedruckte Etikett von einem Balkencode-Abtaster gelesen wird, dann sieht dieser nur das beeinträchtigte Symbol, und weil dies keine gültige Codierung darstellt, kann er es nicht mit den üblichen Methoden decodieren.
  • Feststellung eines Fehlers vom Typ I
  • Im Prinzip verlässt sich die Feststellung eines Fehlers vom Typ 1 auf die Fähigkeit, eine verschobene Grenze zwischen benachbarten Paaren von Zwischenraum/Balken und Balken/Zwischenraum festzustellen. Bei vielen gebräuchlichen Balkencode-Symbologien sind die Zeichen unter Verwendung einer ganzzahligen Anzahl von Balken- und Zwischenraum-Modulen codiert. Da ein typischer linearer Druckkopf 28 mehr als ein Druckelement 28a pro Modul enthalten muss, führen Ausfälle einzelner Druckelemente zu einer Verschiebung der Grenze um einen Bruchteilsbetrag. Bei zwei Druckelementen pro Modul verschiebt beispielsweise ein einziges fehlerhaftes Druckelement 28b eine Grenze um die Hälfte eines Moduls. Bei drei Druckelementen pro Modul (nicht dargestellt) verschiebt ein einzelnes fehlerhaftes Druckelement gleichermaßen eine Grenze um ein Drittel eines Moduls.
  • Ein Fehler vom Typ I wird festgestellt durch Suche nach dem Auftreten von Grenzverschiebungsversetzungen von einem halben Modul in benachbarten Paaren von Zwischenraum/Balken oder Balken/Zwischenraum. Ein Grenzverschiebungsversatz bedeutet, dass ein vergrößerter Zwischenraum 12b zusammen mit einem äquivalent verdünnten benachbarten Balken auftreten muss. Betrachtet man wiederum 4, so sieht man, dass der angrenzende Zwischenraum durch einen Nichtdruck-Fehler 30 um 2,5 Module vergrößert ist, während der betroffene Balken 12a in der Breite um 1,5 Module abgenommen hat. Alle anderen benachbarten Balken und Zwischenräume haben Maße von ganzzahligen Anzahlen von Modulen.
  • Entdeckung von Fehlern des Typs II
  • Im Prinzip verlässt sich die Feststellung eines Fehlers vom Typ II auf die Fähigkeit zu ermitteln, dass ein normaler Balken durch einen fehlerhaften Druckkopf in ein unnormales Balken-Zwischenraum-Balken-Muster aufgeteilt ist. Weil wiederum der typische lineare Druckkopf 28 zwei oder mehr Druckelemente 28a pro Modul verwenden muss, muss der Zwischenraum 30, der, wie 5 zeigt, innerhalb des Balkens gebildet worden ist, einen halben Modul oder weniger breit sein. Wenn die Breite des Zwischenraums zur Breite der beiden benachbarten Balken hinzuaddiert wird, dann muss die Gesamtbreite eine ganze Anzahl von Modulen betragen. Wenn die Breite der Kombination Balken-Zwischenraum-Balken zu den übrigen Balken und Zwischenräumen dieses speziellen Zeichens hinzuaddiert wird, dann muss die Breite der Summe für diese spezielle Symbologie mit der Breite des Zeichens übereinstimmen. Für einen echten Fehler vom Typ 2 muss die Gesamtbreite der Kombination Balken-Zwischenraum-Balken kleiner als die maximale Balkenbreite sein, wie sie für diese spezielle Symbologie definiert ist, d. h. vier Module für die UPC-Symbologie.
  • Als Beispiel sei die in 5 verwendete UPC-Symbologie betrachtet. Die Breite eines einzelnen Zeichens, das unter Verwendung der UPC-Symbologie codiert ist, muss definitionsgemäß sieben Module betragen. Ein Sieben-Modul-UPC-Zeichen hat zwei Balken und zwei Zwischenräume. Vergleicht man ein gutes UPC-Zeichen mit einem durch einen Fehler vom Typ II gestörten UPC-Zeichen, dann sieht man, dass die vier Balken und Zwischenräume des guten Zeichens sich zu sieben Modulen aufaddieren, während die sechs Balken und Zwischenräume des schlechten Zeichens sich auf sieben Module aufaddieren. Der in 5 gezeigte Fehler vom Typ II zeigt diese Eigenschaften deutlich.
  • Die oben beschriebenen Fehler vom ersten und zweiten Typ sind insofern ähnlich, als ein einzelnes fehlerhaftes Druckelement 28b den erforderlichen Teil eines entsprechenden Balkens 12a nicht druckt. Der Druckausfall des schlechten Druckelementes 20b führt jedoch nicht zu einem Fehler im beabsichtigten Zwischenraum 12b, weil dort kein Druck erforderlich ist. Die Fehlertypen sind also ähnlich, weil sie dazu führen, dass die benachbarten Balken und Zwischenräume nicht ganzzahlige Teilbreiten haben. Weil definitionsgemäß eine Mehrzahl einzelner Druckelemente 28 zum Drucken der einzelnen Balken 12a mit unterschiedlichen Breiten benutzt werden, indem nur eine entsprechende Anzahl der einzelnen Druckelemente 28a geheizt wird, hat der Ausfall eines einzelnen Druckelementes, wie beispielsweise des fehlerhaften Druckelements 28b, das Nichtdrucken eines durch die Breite des einzelnen Druckelementes 28a dargestellten Teils des Moduls zur Folge. Für zwei Druckelemente pro Modul hat der Fehler eine Breite von 1/2 Modul, und für eine Ausführung mit drei Druckelementen pro Modul hat der Fehler eine Breite von 1/3 Modul.
  • Bei dem in 4 veranschaulichten Fehler vom Typ I nimmt die Breite des dem Fehler 30 benachbarten beeinträchtigten Zwischenraums 12b im selben Maße zu, wie die Breite des benachbarten Balkens 12a abnimmt. Beim in 5 veranschaulichten Fehler vom Typ II verliert der beeinträchtigte Balken 12a einen inneren Teil, der eine Teilbreite hat, so dass der übrig bleibende linke Balkenteil ebenfalls nur eine Teilbreite hat.
  • Da der Fehler 30 bei beiden in den 4 und 5 gezeigten Fehlertypen notwendigerweise eine Teilkomponente in einen andernfalls ganzzahligen Modulzwischenraum einführt, können beide Fehler einfach dadurch entdeckt werden, dass die Teilbreite im Zwischenraumteil der abgetasteten Signatur festgestellt wird.
  • Wie oben angedeutet, ist der Balkencode 12 ferner aufgrund einer speziellen Symbologie codiert worden, die spezielle Datengruppen definiert, die vom Decodier 12 beim Decodieren des Balkencodes benutzt werden. Die Balken und Zwischenräume sind daher in mehreren aufeinanderfolgenden Gruppen angeordnet, welche die jeweiligen Zeichen gleicher Breite definieren, welche die gleiche Anzahl von Modulen haben, wie etwa bei der als Beispiel genannten UPC-Symbologie sieben Module. Der oben beschriebene Fehler vom zweiten Typ verändert nicht die gesamte Modulbreite der gestörten Zeichengruppe, und daher können diese Fehler ermittelt werden, indem eine der Gruppen festgestellt wird, welche die richtige Zeichenbreite hat, aber einen Teilbreiten-Zwischenraum enthält.
  • Wie oben gesagt, können die Fehler des ersten und zweiten Typs voneinander unterschieden werden durch Feststellen, ob die Teilbreite in dem beeinträchtigten Zwischenraum entweder grö ßer oder kleiner als ein einzelnes Modul ist, je nachdem, ob es sich um einen Fehler vom ersten oder zweiten Typ handelt.
  • Bei dem in 4 gezeigten Fehler vom ersten Typ nimmt der Fehler 30 an der Grenze des beeinträchtigten Balkens 12a notwendigerweise in seiner Breite ab, wobei gleichzeitig die Breite des benachbarten Zwischenraums 12 zunimmt. Da jeglicher Zwischenraum 12b definitionsgemäß mindestens ein Modul breit sein muss, führt das Hinzufügen der Teilbreite zum vom Fehler 30 beeinträchtigten Zwischenraum zu einem Anwachsen der Breite des Zwischenraums 12 um mehr als das einzelne Modul. Durch Feststellung, dass die Teilbreite des Zwischenraums 12b größer als ein einzelnes Modul ist, wird der Fehler vom ersten Typ angezeigt, der definiert ist durch einen fehlenden Grenzteil einer Seite des benachbarten Balkens 12a. In 4 hat der betroffene Zwischenraum 12b eine vergrößerte Breite von 2,5 Modulen, und der beeinträchtigte Balken 12a hat eine verringerte Breite von 1,5 Modulen.
  • Der in 5 veranschaulichte Fehler vom zweiten Typ, der im Inneren eines beeinträchtigten Balkens 12a erscheint, verursacht notwendigerweise einen Zwischenraum einer Teilbreite von weniger als einem einzelnen Modul. Demgemäss zeigt die Entdeckung der Teilbreite eines Zwischenraums von weniger als einem einzelnen Modul den Fehler vom zweiten Typ an, der durch den fehlenden inneren Teil von zwei aneinandergrenzenden Balkenteilen definiert ist. Wenn der in 5 gezeigte fehlerhafte Balken im normalen Betrieb abgetastet wird, wird er in der Balkencode-Signatur als Balken-Zwischenraum-Balken identifiziert anstelle eines einzigen Balkens. Die beiden Balkenteile, die durch den Fehler 30 entstanden sind, werden von dem Abtaster als Balken gelesen, und weil der linke Balkenteil weniger als eine einzelne Modulbreite hat, entspricht er nicht der betreffenden Symbologie, und die Decodierung des Balkencodes wird normalerweise fehlerhaft.
  • Wie oben gezeigt, wird der in 1 veranschaulichte Decoder 22 typischerweise unter Verwendung geeigneter Software in einem digital programmierbaren Prozessor implementiert. Der Decoder 22 bestimmt normalerweise die relativen Breiten der Balken und Zwischenräume für die Decodierung. Wenn die relativen Breiten nicht der Spezifizierung für die spezielle Symbologie entsprechen oder wenn die einzelnen Balken, Zwischenräume oder Gruppen von ihnen nicht der Symbologiespezifizierung entsprechen, dann schlägt die Decodierung fehl.
  • Erfindungsgemäß kann im Prozessor oder Decoder 22 zusätzliche Software ergänzt werden, um speziell die oben beschriebenen Fehler vom ersten und zweiten Typ für nachfolgende Evaluierung und Verwendung durch einen Benutzer zu identifizieren. Der in 1 gezeigte Abtaster 10 enthält daher vorzugsweise Einrichtungen, die speziell für die Ermittlung dieser Fehler, wie oben beschrieben, konfiguriert sind und üblicherweise in geeigneter Software in einem Fehlerdetektor 22a implementierbar sind, der Teil des Prozessors ist. Durch Feststellung der Teilbreite, wie oben erwähnt, können Fehler vom ersten Typ identifiziert werden, wenn die Teilbreite größer als ein einzelnes Modul ist, und können Fehler vom zweiten Typ identifiziert werden, wenn die Teilbreite kleiner als ein einzelnes Modul ist. Die Fehlerfeststellung kann dann in geeigneter Weise über das Display 24 oder durch irgendwelche anderen geeignete Mittel für nachfolgende Evaluierung bei der Identifizierung des betreffenden fehlerhaften Druckers 28 an den Benutzer gemeldet werden.
  • Da die oben beschriebenen Fehler vom ersten und zweiten Typ ermittelbar sind und die bekannte Wirkung in benachbarten Balken und Zwischenräumen zeigen, können sie, falls gewünscht, nun automatisch korrigiert werden.
  • Fehlerkorrektur
  • Ein gedrucktes Balkencode-Etikett 14, welches von einem Fehler des Typs 1 oder 2 beeinträchtigt ist, kann mit einem Abtaster unter Verwendung der üblichen Decodiermethoden nicht korrekt gelesen werden. Jedoch können die nachstehend beschriebenen Fehlerkorrekturverfahren erfolgreich bei einem zuvor entdeckten Fehler vom Typ I oder II angewandt werden.
  • Zur Durchführung einer Fehlerkorrektur werden die Ergebnisse der Fehlerfeststellung vorzugsweise akkumuliert. Der Grund für die Akkumulierung dieser Daten liegt in einer Verbesserung der Qualität der Fehlerkorrektur. Es ist zwar möglich, eine Korrektur lediglich aufgrund der Daten einer einzigen Abtastung des Balkencode-Etiketts 14 vorzunehmen, jedoch führt ein solcher Versuch üblicherweise zu unrichtigen Korrekturen des fehlerhaften Etiketts. Akkumuliert man Fehler vom Typ I und II über mehrfache Abtastungen eines einzigen Etiketts oder mehrerer Etiketten, dann vergrößerte sich die mögliche Qualität der Fehlerkorrektur. Daher ist eine Druckkopffehlerprotokollierung (PEL) 22b ein zentraler Punkt der Fehlerkorrekturverfahren. Das Protokoll 22b enthält die Akkumulierung von Ermittlungen von Fehlern des Typs I und II.
  • Druckkopffehlerprotokoll
  • Das Druckkopffehlerprotokoll (PEL) 22b codiert und repräsentiert ein Modell des linearen Druckkopfs, der zum Drucken von Balkencode-Etiketten benutzt wird. Jedoch ist das PEL eine Abstraktion des tatsächlichen Druckkopfmechanismus, weil es nicht versucht, die einzelnen Druckkopfelemente direkt nachzubilden. Stattdessen bildet das PEL den Druckkopf als lineare Folge von Modulen ab, welche die Gesamtbreite des Balkencodes überspannen. Das PEL verwendet eine Auflösung von 1/n Modul, wobei n eine ganze Zahl größer oder gleich 1 ist. Der Parameter n wird so gewählt, dass Fehler vom Typ I und Typ II für die typischen ein-dimensionalen Balkencode-Symbologien adequat dargestellt werden. Die aktuellen Daten im PEL geben die Lage der guten und schlechten Druckkopfelemente über die Gesamtbreite des Balkencodes an. Durch Verwendung einer Auflösung von 1/n Modul erfasst das PEL akkurat die Wirkung von Druckkopffehlern auf dem Balkencode-Etikett und bildet sie nach.
  • Wie 1 zeigt, kann das Protokoll 22b üblicherweise im Prozessor in einem geeigneten, dafür vorgesehenen Speicher implementiert werden. 6 zeigt das beispielhafte Balkencode-Etikett 14 von 5 mit einem Defekt 30 im Inneren des Balkens schematisch mit den zugehörigen Abtastdaten und eine Mehrzahl beispielhafter Druckkopffehlerprotokolle 22b, die als Protokolle 1 ... n bezeichnet sind. Die individuellen Protokolle sind lediglich lineare Anordnungen, die in geeigneter Weise im Speicher als Folge von Speicherregistern an Stellen gespeichert sind, welche sowohl dem Balkencode 12 wie auch jeglicher Art von Drucker 28 entsprechen, mit denen die Balken gebildet werden. In den Ausführungsbeispielen der 6 sind zwei Registerplätze für jedes Modul vorgesehen, welche den beiden Druckerelementen 28a entsprechen, die zu jedem Modul gehören. Bei einer (hier nicht gezeigten) Ausführungsform mit drei Druckerelementen pro Modul würden zu jedem Modul drei Register gehören. Auf diese Weise lassen sich die Protokolle benutzen zur Darstellung des Status oder Zustandes jedes Untermodulinkrements zusammen mit dem gesamten Balkencode 12 mit geeigne ter Auflösung entsprechend den erwarteten Auflösungen des Druckers 28.
  • Bei einer Ausführungsform gibt es für jeden Platz im Protokoll drei mögliche Werte. Der Wert GUT zeigt an, dass die Druckkopfelemente 28a, die für das Drucken dieser speziellen 1/n Modulbreite des Balkencode-Etiketts zuständig sind, in gutem Betriebszustand sind. Der Wert SCHLECHT zeigt an, dass die für das Drucken dieser speziellen 1/n Modulbreite des Balkencode-Etiketts zuständigen Druckkopfelemente eine Fehlfunktion aufweisen. Eine solche Fehlfunktion hat zur Folge, dass das Druckkopfelement kein dunkles (Balken-)Element druckt, wenn es dazu angesteuert wird, jedoch hat dies keine Auswirkung, wenn ein helles (Zwischenraum-)Element an dieser Stelle gedruckt werden soll. Der Wert ZWEIFELHAFT zeigt an, dass die für das Drucken dieser speziellen 1/n Modulbreite im Balkencode verantwortlichen Druckkopfelemente möglicherweise nicht funktionieren.
  • Es sollte an dieser Stelle klar sein, dass ein Nichtfunktionieren des Druckkopfelements nicht notwendigerweise jedes mit diesem Drucker gedruckte Balkencode-Element fehlerhaft werden lässt. Speziell wirkt sich ein fehlerhaftes oder nichtfunktionierendes Druckkopfelement auf das Etikett überhaupt nicht aus, wenn ein helles Element (Zwischenraum) an der Stelle des Druckkopffehlers erscheinen soll.
  • Aktualisierung des Druckkopffehlerprotokolls
  • Ehe irgendwelche Etiketten abgetastet worden sind, kann jeder Protokollplatz auf den Wert GUT eingestellt werden. Wenn Abtastungen verschiedener Etiketten durchgeführt werden, dann werden Fehler vom Typ I und II, wie oben beschrieben festgestellt. Der Protokollplatz eines Fehlers beider dieser Typen kann leicht im Decoder 22 berechnet werden als eine bestimmte Anzahl von 1/n Modulbreiten vom ersten normalerweise auftretenden Balkenmodul der linken Seite des Balkencodes. 6 zeigt die Platz- oder Stellenberechnung unter Verwendung einer UPC-Symbologie mit n = 2 in diesem speziellen Beispiel. Das Protokoll beginnt vorzugsweise mit dem ersten festgestellten Balken 12a an der linken Seite des Balkencodes 12, der einen Bezugs- oder Indexpunkt für alle nachfolgenden hierauf bezogenen Plätze bildet.
  • Beispielsweise zeigt 6 ein UPC-Symbol, welches mit einem Fehler vom Typ II gedruckt worden ist und sich an der PEL-Indexnummer 18 vom linken Ende des Symbols befindet. Solange der Druckkopf an dieser Stelle defekt bleibt, zeigen mit diesem Gerät weitergedruckte Etiketten immer die Fehlertypen I und II am Protokollplatz 18. Beim ersten Feststellen eines Problems am Protokollplatz 18 wird der Protokollwert von GUT auf ZWEIFELHAFT geändert. Wenn am Platz 18 weiterhin Fehler festgestellt werden, dann verstärkt sich der Verdacht, dass in der Tat dort ein Druckkopffehler vorliegt, welcher die Fehler am Platz 18 verursacht. Wenn sich zusätzliche Fehler am Platz 18 akkumulieren, dann wächst der Wert ZWEIFELHAFT proportional an. Nachdem eine geeignete Menge von Fehlern, z. B. etwa 4 bis 12 Fehler, am Platz 18 festgestellt worden sind, dann wird dessen Wert in SCHLECHT geändert. Nur solche Protokollplätze, die den Wert SCHLECHT enthalten, werden zur Durchführung einer Fehlerkorrektur benutzt.
  • Fehlerkorrektur unter Verwendung des PEL
  • Es wird keine Fehlerkorrektur versucht, solange PEL nicht mindestens einen Platz enthält, der von dem oben erwähnten PEL-Aktualisierungsverfahren als SCHLECHT markiert worden ist. Eine Fehlerkorrektur wird nur versucht, wenn das PEL diesen Zu stand erfüllt und in der laufenden Abtastung ein Fehler vom Typ I oder II festgestellt worden ist. Wenn der Platz des Fehlers in der momentanen Abtastung mit dem Platz im PEL übereinstimmt, der vorher als SCHLECHT markiert worden war, dann wird angenommen, dass der Fehler durch ein fehlerhaftes Druckelement verursacht worden ist. Das Fehlerkorrekturverfahren stellt dann die von dem fehlerhaften Druckelement beeinflussten Abtastdaten ein. Die zentrale Idee des Korrekturverfahrens besteht darin, den weißen Zwischenraum aufzufüllen, der von dem oder den fehlerhaften Druckelement(en) übrig geblieben ist. Speziell werden die von den beeinträchtigten Balken- oder Zwischenraum-Modulen erzeugten Abtastdaten um eine 1/n Modulbreite berichtigt entsprechend dem Platz im SCHLECHT-Bereich, und die Rohdaten werden mit dem Standard-Balkencode-Decodierverfahren im Decoder 22 verarbeitet. Die verarbeiteten Abtastdaten ergeben dann den korrigierten Balkencode.
  • Wenn also einmal ein Fehler vom Typ I oder II festgestellt worden ist, dann kann er automatisch korrigiert werden, indem die festgestellte Teilbreite des beeinträchtigten benachbarten Balkens oder Zwischenraums korrigiert wird durch entsprechendes Vergrößern oder Verkleinern, bis im Wesentlichen ganzzahlige vielfache Modulen hiervon erhalten sind. Die Korrektur kann üblicherweise im Prozessor in einem zugeordneten Teil des Decoders 22 programmiert werden, der als Fehlerkorrektur 22 in 1 gezeigt ist. Nach Feststellung einer fehlerhaften Balkencode-Signatur 20s kann die Signatur selbst korrigiert werden durch Berichtigen ihrer örtlichen Intensitäten, um die Intensität des festgestellten Fehlers 30 über seine entsprechende Teilbreite effektiv zu vergrößern, anstatt einen Balkenteil zu zeigen. Auf diese Weise wird die Signatur 20s korrigiert und füllt effektiv den Fehler 30 aus und zwar bei Fehlern des ersten sowie des zweiten Typs, wie in 4 und 5 gezeigt, um den dortigen fehlerhaften Balken 12a vollständig zu machen. Die korrigierte Signatur wird in üblicherweise durch den Decoder 22 verarbeitet, welcher dann in der Lage sein sollte, den korrigierten Balkencode erfolgreich zu decodieren. Falls gewünscht, kann der Abtaster 10 automatisch dem Benutzer beispielsweise über das Display 24 berichten, dass ein Fehler festgestellt und korrigiert worden ist.
  • Anordnung mit mehreren Druckköpfen
  • Wenn auch das oben beschriebene Fehlerkorrekturverfahren im Prinzip funktioniert, werden vorzugsweise zusätzliche Maßnahmen getroffen zur Anpassung an den Fall, dass viele verschiedene Druckköpfe Balkencode-Etiketten erzeugen, die von einem einzigen Abtaster gelesen werden. Speziell kann jedes PEL dazu bestimmt sein, eine einzelne Druckkopf-Signatur nachzubilden. Im Falle mehrerer Druckköpfe sollten daher viele PELs gleichzeitig gemanagt und aktualisiert werden. Es sollte auch ein Verfahren geben, um zu bestimmen, welches PEL sich auf die momentanen Abtastdaten bezieht.
  • Zuordnung eines PEL zu Abtastdaten
  • Dieser Abschnitt beschreibt ein Verfahren, das zur Zuordnung der momentanen Abtastdaten zu einem speziellen PEL 22b verwendet wird. Mit diesem Verfahren werden PELs gefunden, welche zu den Daten und Fehlern passen, die in den momentanen Abtastdaten ermittelt wurden. Der Zweck dieses Verfahrens besteht in der Bestimmung, welches PEL, falls überhaupt, die momentanen Abtastdaten erzeugt haben könnte. Zur Ermöglichung dieser Vergleiche kann jeder PEL-Platz einen von vier Zuständen haben: GUT, SCHLECHT, UNBEKANNT und ZWEIFELHAFT. Außerdem ist jeder entsprechende Platz in den Abtastdaten gekennzeichnet durch einen der drei Zustände: GUT, UNBEKANNT und ZWEIFELHAFT. Die Zuordnung und Verarbeitung dieser Zustände sei nachfolgend beschrieben.
  • Abtastdatenklassifizierung
  • Bei der Abtastung eines Balkencode-Etiketts werden Daten erzeugt, die für die auf dem Etikett codierten Symbole typisch sind. Diese Daten stellen Balken und Zwischenräume dar, die auf dem zugehörigen balkencodierten Etikett zu sehen sind. Es ist damit möglich, Stellen in den Abtastdaten zu identifizieren, welche direkt den tatsächlich gedruckten Balken entsprechen. Weil das Drucken eines Balkenelements zeigt, dass sein zugehöriger Druckkopf richtig funktioniert, kann es als GUT markiert werden. Wenn die Abtastdaten einen Zwischenraum anzeigen (also das Fehlen eines Balkens), dann weiß man nichts über die Unversehrtheit des zugehörigen Druckelementes. Daher bewirkt ein Zwischenraumelement in den Abtastdaten, dass sein zugehöriger Platz in den Zustand UNBEKANNT eingestellt wird. Werden durch die vorstehend beschriebenen Fehler Ermittlungsmethoden Fehler vom Typ I oder II festgestellt, dann werden die beeinträchtigten Plätze als ZWEIFELHAFT markiert. Nachdem alle PEL-Plätze der Abtastdaten klassifiziert worden sind, werden sie mit den existierenden PELs verglichen.
  • Vergleich klassifizierter Abtastdaten mit PELs
  • Wenn ein oder mehrere Fehler vom Typ I oder II bei einer momentanen Abtastung festgestellt werden, dann können sie mit den existierenden PELs verglichen werden. Gibt es keine PELs, dann wird aufgrund der momentanen Abtastdaten ein neues geschaffen. Die Fehlerplätze in der laufenden Abtastung werden mit einer Auflösung von 1/n Modulen, wie oben beschrieben, berechnet. Gibt es bereits ein oder mehrere PELs, dann werden die momentanen Abtastdaten mit allen PELs verglichen, um sicherzustellen, dass die momentanen Daten zu irgendeinem der bestehenden PELs passen. Der Zweck des Vergleichs der Fehler in der momemtanen Abtastung mit allen PELs liegt in der Ausschaltung derjenigen PELs, welche nicht das spezielle Fehlermuster erzeugen konnten, das in der momentanen Abtastung beobachtet wurde. Die momentanen Abtastdaten werden mit einem PEL Platz für Platz verglichen.
  • Tabelle 1 zeigt die Logik der Entscheidungen, welche bei dem Vergleich der momentanen Abtastdaten mit einem vorhandenen PEL gemacht werden. Erfolgt bei irgendeinem Platz während des Vergleichsvorgangs eine Entscheidung KEINE ÜBEREINSTIMMUNG, dann könnte das betrachtete PEL die momentanen Abtastdaten nicht erzeugt haben. Es erfolgen Vergleiche für alle vorhandenen PELs. Wird eine Entscheidung KEINE ÜBEREINSTIMMUNG beim Vergleich mit allen PELs getroffen, dann wird ein neues PEL erschaffen und entsprechend den momentanen Abtastdaten initialisiert.
  • Figure 00250001
  • 6 veranschaulicht das Übereinstimmungsverfahren durch die Darstellung eines Etiketts 14, von Beispielsprotokollen und den klassifizierten Abtastdaten. Die Protokolle 1–n werden durch das in den vorangegangenen Abschnitten beschriebene Verfahren erzeugt. Danach stellen Fehler in den momentanen Abtastdaten, beispielsweise am Platz 18, ein definitives KEINE ÜBEREINSTIMMUNG mit Protokoll 1 dar. Die Entscheidung KEINE ÜBEREINSTIMMUNG erfolgt, weil das Protokoll 1 am Platz 18 ein GUT vorhersagt, wo diese Abtastdaten ZWEIFELHAFT sind. Somit kann das in 6 gezeigte Balkencode-Etikett nicht mit demselben Druckkopf gedruckt worden sein, welcher die nun im Protokoll 1 protokollierten Fehler verursacht hat. Das Protokoll n kann nunmehr im Zustand ZWEIFELHAFT, wie in den vorangehenden Abschnitten beschrieben, gestartet werden. Nach einer geeigneten Anzahl von Abtastungen erreicht der vom Protokoll n nachgebildete Druckkopffehler den Zustand SCHLECHT, wie 6 zeigt, und wird damit während der Fehlerkorrektur benutzbar.
  • Wie bereits erwähnt, können nur PELs, die mindestens einen Platz mit dem Zustand SCHLECHT haben, an der Fehlerkorrektur teilnehmen. Ein neu erzeugtes PEL, wie im Beispiel der 6, nimmt nicht an der Fehlerkorrektur teil, bis sein Platz ZWEIFELHAFT in den Zustand SCHLECHT umgesetzt worden ist. Diese Umwandlung erfolgt nur dann, wenn derselbe Fehlerplatz in einer geeigneten Anzahl zusätzlicher Abtastungen festgestellt worden ist. Die Plätze ZWEIFELHAFT in PELs werden in dem nachfolgend beschriebenen Aktualisierungsverfahren in Plätze SCHLECHT umgewandelt.
  • PEL-Aktualisierungsverfahren
  • Nach der Ausführung des oben beschriebenen Vergleichsverfahrens wird eine Liste von Null oder mehreren PELs als mit den Abtastdaten übereinstimmend identifiziert. Im Fall von null Übereinstimmungen wird, wie oben erwähnt, ein neues PEL erstellt. Im Falle von ein oder mehreren Übereinstimmungen werden die Abtastdaten zur Aktualisierung der übereinstimmenden PELs benutzt. Außerdem werden nur diejenigen PELs aktualisiert, welche mindestens eine EXAKTE ÜBEREINSTIMMUNG erzeugt haben, wie anhand von 1 beschrieben. Das Aktualisierungsverfahren ist im Tabelle 2 zusammengefasst.
  • Figure 00270001
  • Die Notierung ZWEIFELHAFT+ in Tabelle 2 zeigt an, dass der Zustand des Platzes ZWEIFELHAFT in dem PEL als Ergebnis des Aktualisierungsprozesses in seiner "Zweifelhaftigkeit" zunimmt. Typischerweise kann jedem zweifelhaften Platz ein Zähler zugeordnet werden, dessen Zählerstand dann jedes Mal erhöht wird, wenn an diesem Platz eine EXAKTE ÜBEREINSTIMMUNG zu finden ist. Wenn dieser Zähler einen bestimmten Zählwert überschreitet, dann wird der Zustand dieses Platzes auf SCHLECHT gesetzt.
  • Die Aktualisierung lässt sich leicht mit geeigneter Software in dem in 1 veranschaulichten Fehlerkorrektor 22c bewirken und ist schematisch im Flussdiagramm der 2 gezeigt. Jedes Mal, wenn ein Balkencode abgetastet wird, werden die seiner Signatur entsprechenden Abtastdaten evaluiert. Wird ein Balken festgestellt, dann wird das anfängliche UNBEKANNT für den entsprechenden Registerplatz in die Anzeige GUT geändert, wie in Tabelle 2 dargestellt ist. Nach einer geeigneten Anzahl von Abtastungen verschiedener Balkencodes, die mit einem gegebenen Drucker 28 gedruckt worden sind, wird die Verhaltenssignatur für diesen Drucker durch sein entsprechendes Protokoll dargestellt. Wenn ein bestimmter Registerplatz ZWEIFELHAFT ist, wie in Tabelle 2 gezeigt, dann zeigt das Pluszeichen (+) die Verwendung eines geeigneten Zählers an, welcher jedes Mal nach oben indexiert wird, wenn ein Platz ZWEIFELHAFT in den Abtastdaten mit einem entsprechenden Protokollregister übereinstimmt. Hat sich eine genügende Anzahl von ZWEIFELHAFT-Übereinstimmungen ergeben, beispielsweise etwa 4 bis 12 Übereinstimmungen, dann wird der Registerplatz aktualisiert, um eine Anzeige SCHLECHT wiederzugeben.
  • Ein Registerplatz SCHLECHT zeigt die Wahrscheinlichkeit eines fehlerhaften Druckelementes 28b an, das fortlaufend zu einer Bestimmung ZWEIFELHAFT an dem entsprechenden Registerplatz führt. In Tabelle 2 zeigt die erste Reihe an, dass die Bezeichnung SCHLECHT+ unter Verwendung eines geeigneten Zählers jedes Mal dann inkrementiert wird, wenn eine Bestimmung ZWEIFELHAFT mit einer Anzeige SCHLECHT in den entsprechenden Protokollen übereinstimmt. Auf diese Weise wird beim Abtasten fehlerhaften Balkencodes mit einem gegebenen Drucker 28 ein Zählwert seines kumulierten Gesamtwertes erhalten. Da der im Abtaster 10 verfügbare Speicher begrenzt ist, kann dieser Zähler benutzt werden, um eine bestimmte Anzahl von Protokollen entsprechend dem Zähler SCHLECHT+ festzuhalten, wobei relativ hohe Zählwertprotokolle beibehalten werden und die niedrigsten Zählwertprotokolle wenn nötig durch neue Protokolle ersetzt werden.
  • Fehlerkorrektur bei Verwendung mehrerer Druckköpfe
  • Ein Fehler in den momentanen Abtastdaten wird nur dann korrigiert, wenn ein PEL 1.) einen Vergleichsprozess durchläuft, bei dem keine Anzeige KEINE ÜBEREINSTIMMUNG auftritt, wie oben angegeben, und 2.) eine EXAKTE ÜBEREINSTIMMUNG hat, wenn ein Zustand SCHLECHT in dem PEL an der gleichen Stelle wie ein Zustand ZWEIFELHAFT in den momentanen Abtastdaten protokolliert wird. Wie oben beschrieben, besteht der zentrale Gedanke des Korrekturverfahrens im Auffüllen des weißen Zwischenraums, der von dem oder den fehlerhaften Element(en) hinterlassen wird. Speziell werden die von den beeinträchtigten Balken und Zwischenraummodulen erzeugten Abtastdaten um die 1/n Modulbreite korrigiert entsprechend dem Platz des SCHLECHT-Bereiches, und die Rohdaten werden im Decoder 22 durch Standard-Balkencode-Decodierverfahren nachbearbeitet. Die nachbearbeiteten Abtastdaten ergeben dann den korrigierten Balkencode.
  • Berichten von Fehlern an den Benutzer
  • Wenn eine erfolgreiche Fehlerkorrektur durchgeführt ist, dann wird der korrigierte Balkencode zum Benutzer (Terminal) weitergegeben. Ebenfalls kann dem Benutzer der betreffende Fehlertyp angegeben werden. Der Benutzer kann dann eventuell eine Korrekturhandlung vornehmen, um den fehlerhaften Druckkopf zu kennzeichnen oder zu ersetzen.
  • Wie in 2 gezeigt ist, können Fehler des ersten und zweiten Typs sofort korrigiert werden und es erfolgt gewünschtenfalls eine Decodierung. Es ist jedoch vorzuziehen, dass man die Balkencodefehler in einem entsprechenden der Fehlerprotokolle über eine Mehrzahl von Abtastungen einzelner Balkencodes und aufeinanderfolgender Balkencodes akkumuliert. Auf diese Weise geben die Protokolle genau den Zustand des betreffenden Druckers 28 wieder. Dann kann in nachfolgenden Abtastungen ein Balkencodefehler entdeckt und mit jedem der mehreren Protokolle verglichen werden, um eine Übereinstimmung dazwischen aufzudecken. Sobald man eine passende Übereinstimmung findet, kann dann, wie oben beschrieben, eine automatische Korrektur des Balkencodefehlers erfolgen.
  • Jedes der in 6 schematisch gezeigten Fehlerprotokolle enthält vorzugsweise eine lineare Folge von Registern, die, wie gezeigt, den jeweiligen Plätzen längs der Gesamtbreite des Balkencodes 12 entsprechen, wobei jedes Register das Vorhandensein eines Balkencodefehlers an dem zugehörigen Platz anzeigt. Das Register wird anfangs auf die Bezeichnung UNBEKANNT gesetzt, und über eine geeignete Anzahl von Abtastungen ändert sich das Register dann nach und nach zur Anzeige SCHLECHT, nachdem das Vorhandensein eines SCHLECHTEN Druckelementes 28b sichergestellt ist. Die genaue Auflösung der verschiedenen Balkencodes 12 selbst und der entsprechenden Drucker 28 wird leicht erhalten durch Vorsehen einer Mehrzahl von Registern entsprechend jedem der den Balkencode 12 definierenden Modulen. Bei einer bevorzugten Ausführung ist die Anzahl von Registern pro Modul in einer Eins-zu-Eins-Entsprechung gleich der Anzahl von Druckelementen 28a pro Modul.
  • Durch das Vorsehen einer Mehrzahl von Fehlerprotokollen lässt sich eine entsprechende Anzahl einzelner Drucker 28 nachbilden zur fortlaufenden Identifizierung ihres Betriebsverhaltens im Bestreben, fehlerhafte Drucker 28 zu identifizieren. Da der in 1 gezeigte Abtaster 10 Balkencodefehler feststellt und den Benutzer darauf aufmerksam macht, kann dieser seinerseits Untersuchungen anstellen und zu versuchen zu bestimmen, welcher der verschiedenen Drucker 28 fehlerhaft ist, und dann wiederum den fehlerhaften Drucker 28 in Ordnung bringen.
  • Da das oben beschriebene Verfahren zum Feststellen und Korrigieren fehlerhafter Balkencodes leicht in übliche Software innerhalb zugehöriger Teile des Decoders 22 inkorporiert werden kann, wie oben beschrieben, können weiterhin vorhandene Abtaster durch geeignete Programmänderungen leicht nachgerüstet werden. Derzeitige Abtaster und Decoder können die relativen Breiten von Balken und Zwischenräumen in typischen Balkencodes bestimmen und können geeignet abgewandelt werden, um auch die oben erläuterten Teilbreiten zu identifizieren, die dadurch entstehen, dass ein einzelnes Druckelement 28a dort nicht druckt, wie ein Balken 12a erforderlich wäre.

Claims (10)

  1. Verfahren zum Abtasten eines Balkencodes (12), der eine Mehrzahl abwechselnder Balken (12a) und Zwischenräume (12b) unterschiedlicher Breite aufweist, mit den Schritten: Sequentielles Abtasten eines Balkencodes (12) über seine Balken (12a) und Zwischenräume (12b) zur Lieferung einer Balkencode-Signatur (20s); gekennzeichnet durch Messen der Balken- und Zwischenraumbreiten (Wb und Ws) in der Signatur als Vielfache eines Minimalbreitenmoduls und Ermittlung jeglicher Teilbreiten in angrenzenden der Balken (12a) und Zwischenräume (12b), um die Feststellung jegliches Fehlers im Balkencode (12) zu erlauben.
  2. Verfahren nach Anspruch 1, bei welchem die Balken (12a) und Zwischenräume (12b) in einer Mehrzahl von jeweilige Zeichen definierenden Gruppen angeordnet sind, von denen jede die gleiche Breite hat.
  3. Verfahren nach einem der vorstehenden Ansprüche, weiterhin mit dem Schritt der Bestimmung, ob eine festgestellte Teilbreite in einem Zwischenraum (12b) größer oder kleiner als ein einzelnes Modul ist.
  4. Verfahren nach einem der vorstehenden Ansprüche, weiterhin mit den Schritten: Korrigieren der festgestellten Teilbreite des angrenzenden Balkens (12a) und Zwischenraums (12b) durch entsprechende Vergrößerung der Breite des Balkens und Verringerung der Breite des Zwischenraums, derart, dass ganzzahlige Vielfache des Minimalbreitenmoduls erhalten werden; und Decodieren der korrigierten Balkencode-Signatur.
  5. Verfahren nach einem der vorstehenden Ansprüche, weiterhin mit den Schritten: Akkumulieren jeglicher Balkencodefehler in einem Fehlerprotokoll (22b) über eine Mehrzahl von Abtastschritten; Feststellen jeglichen Balkencodefehlers in einer nachfolgenden Abtastung; Vergleichen des so festgestellten Balkencodefehlers mit dem Fehlerprotokoll (22b); und Korrigieren des in der nachfolgenden Abtastung festgestellten Balkencodefehlers, wenn der Vergleichsschritt zu einer Übereinstimmung mit dem Fehlerprotokoll (22b) geführt hat.
  6. Abtaster für einen Balkencode (12) mit einer Mehrzahl abwechselnder Balken (12a) und Zwischenräume (12b) unterschiedlicher Breiten mit: einer Einrichtung (10) zum sequentiellen Abtasten eines Balkencodes (12) über dessen Balken (12a) und Zwischenräume (12b) zur Lieferung einer Balkencode-Signatur (20s), gekennzeichnet durch die weiteren Merkmale: eine Einrichtung zum Messen der Balken- und Zwischenraumbreiten (Wb und Ws) in der Signatur als Vielfache eines Minimalbreitenmoduls; und eine Einrichtung (22a) zum Feststellen jeglicher Teilbreiten in benachbarten der Balken (12a) und Zwischenräume (12b), um das Feststellen jeglichen Fehlers im Balkencode (12) zu ermöglichen.
  7. Abtaster nach Anspruch 6, weiterhin enthaltend: eine Einrichtung (22c) zur Korrigieren jeglicher festgestellter Teilbreite in einem angrenzenden Balken (12a) und Zwischenraum (12b) durch Vergrößern der Breite des Balkens (12a) und Verringern der Breite des Zwischenraums (12b) derart, dass ganzzahlige Vielfache des Minimalbreitenmoduls erhalten werden; und eine Einrichtung (22) zum Decodieren der korrigierten Balkencode-Signatur (22s).
  8. Abtaster nach Anspruch 7, weiterhin enthaltend: ein Fehlerprotokoll (22b) zum Akkumulieren jeglicher Balkencodefehler über eine Mehrzahl von Abtastungen; eine Einrichtung (22a) zum Feststellen eines solchen Balkencodefehlers in einer nachfolgenden Abtastung; eine Einrichtung zum Vergleichen des Balkencodefehlers mit dem Fehlerprotokoll; und eine Einrichtung (22) zum Korrigieren des Balkencodefehlers bei der nachfolgenden Abtastung.
  9. Abtaster nach Anspruch 8, bei welcher das Fehlerprotokoll eine lineare Folge von Registern entsprechend jeweiligen Plätzen längs der Gesamtbreite des Balkencodes aufweist, wobei jedes Register so angeordnet ist, dass es das Vorhandensein eines Balkencodefehlers an dem zugehörigen Platz anzeigt.
  10. Abtaster nach Anspruch 8 oder 9, weiterhin enthaltend eine Mehrzahl von Fehlerprotokollen (22b), und bei dem die Vergleichseinrichtung den Balkencodefehler mit jedem der Fehlerprotokolle vergleicht und die Korrektureinrichtung (22c) den Balkencodefehler nach seiner Übereinstimmung mit einem entsprechenden der Fehlerprotokolle korrigiert.
DE69728485T 1996-09-17 1997-08-05 Abtaster für Strichkodes mit Fehlern Expired - Lifetime DE69728485T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/718,620 US5767498A (en) 1996-09-17 1996-09-17 Bar code error scanner
US718620 1996-09-17

Publications (2)

Publication Number Publication Date
DE69728485D1 DE69728485D1 (de) 2004-05-13
DE69728485T2 true DE69728485T2 (de) 2005-02-24

Family

ID=24886795

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69728485T Expired - Lifetime DE69728485T2 (de) 1996-09-17 1997-08-05 Abtaster für Strichkodes mit Fehlern

Country Status (4)

Country Link
US (1) US5767498A (de)
EP (1) EP0829815B1 (de)
JP (1) JP4162279B2 (de)
DE (1) DE69728485T2 (de)

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5811781A (en) * 1993-11-05 1998-09-22 Intermec Corporation Bar code symbology capable of encoding 16-bit characters, and method and apparatus for printing and reading same
US6321986B1 (en) 1993-11-05 2001-11-27 Intermec Ip Corporation Robust machine-readable symbology and method and apparatus for printing and reading same
US6422476B1 (en) 1993-11-05 2002-07-23 Intermec Ip Corp. Method, apparatus and character set for encoding and decoding data characters in data carriers, such as RFID tags
US6149059A (en) * 1993-11-05 2000-11-21 Intermec Ip Corporation Bar code symbology capable of encoding bytes, words, 16-bit characters, etc. and method and apparatus for printing and reading same
US6371375B1 (en) 1995-09-25 2002-04-16 Intermec Ip Corp. Method and apparatus for associating data with a wireless memory device
US5798513A (en) * 1996-12-03 1998-08-25 Intermec Corporation Method and apparatus for decoding unresolved profiles produced from relief formed symbols
US6454168B1 (en) 1998-09-14 2002-09-24 Psc Scanning, Inc. Correlation and stitching techniques in a bar code scanning system
US6513714B1 (en) * 1998-09-14 2003-02-04 Psc Scanning, Inc. Character reconstruction and element level processing in bar code scanning system
US6585157B2 (en) 1998-09-14 2003-07-01 Psc Scanning, Inc. Symbology determination to aid decoding in a bar code scanning system
JP3548025B2 (ja) * 1998-12-17 2004-07-28 富士通株式会社 バーコード読取装置および方法
US6514140B1 (en) * 1999-06-17 2003-02-04 Cias, Inc. System for machine reading and processing information from gaming chips
JP4416980B2 (ja) 1999-10-25 2010-02-17 富士通株式会社 バーコード読取装置およびバーコード読取方法
US6189792B1 (en) * 1999-12-14 2001-02-20 Ncr Corporation System and methods for exemplar based bar code error detection and correction
US6398113B1 (en) * 1999-12-23 2002-06-04 Ncr Corporation System and methods for collaborative bar code error detection and correction
US6540143B1 (en) * 2000-05-19 2003-04-01 Fujitsu Limited System and method for recovering bar code errors
US6666377B1 (en) 2000-07-18 2003-12-23 Scott C. Harris Bar code data entry device
US6357942B1 (en) 2000-08-24 2002-03-19 Lexmark International, Inc. Method for reducing cyclic print errors
US7051930B2 (en) * 2002-05-22 2006-05-30 Lockheed Martin Corportion Bar code for mail processing systems
US6651887B1 (en) * 2002-07-26 2003-11-25 Storage Technology Corporation Reading and interpreting barcodes using low resolution line scan cameras
JP4070631B2 (ja) * 2003-02-21 2008-04-02 富士通株式会社 バーコード読取装置およびバーコード読取方法
US20060027657A1 (en) 2004-08-04 2006-02-09 Laurens Ninnink Method and apparatus for high resolution decoding of encoded symbols
US7175090B2 (en) 2004-08-30 2007-02-13 Cognex Technology And Investment Corporation Methods and apparatus for reading bar code identifications
EP1645992A1 (de) 2004-10-08 2006-04-12 Philip Morris Products S.A. Verfahren und Vorrichtung zur Markierung, Tracking und Authentifizierung von Produkten
US7963448B2 (en) * 2004-12-22 2011-06-21 Cognex Technology And Investment Corporation Hand held machine vision method and apparatus
US9552506B1 (en) 2004-12-23 2017-01-24 Cognex Technology And Investment Llc Method and apparatus for industrial identification mark verification
US8199689B2 (en) 2005-09-21 2012-06-12 Intermec Ip Corp. Stochastic communication protocol method and system for radio frequency identification (RFID) tags based on coalition formation, such as for tag-to-tag communication
US8120461B2 (en) * 2006-04-03 2012-02-21 Intermec Ip Corp. Automatic data collection device, method and article
US8108176B2 (en) 2006-06-29 2012-01-31 Cognex Corporation Method and apparatus for verifying two dimensional mark quality
US8002173B2 (en) * 2006-07-11 2011-08-23 Intermec Ip Corp. Automatic data collection device, method and article
US8169478B2 (en) * 2006-12-14 2012-05-01 Cognex Corporation Method and apparatus for calibrating a mark verifier
JP5089158B2 (ja) * 2006-12-19 2012-12-05 沖電気工業株式会社 媒体処理システム及び改札機
US7546955B2 (en) * 2007-03-16 2009-06-16 Intermec Ip Corp. Systems, devices, and methods for reading machine-readable characters and human-readable characters
US20090015875A1 (en) * 2007-06-20 2009-01-15 Ctb/Mcgraw-Hill Companies, Inc. Image manipulation of digitized images of documents
US9734376B2 (en) 2007-11-13 2017-08-15 Cognex Corporation System and method for reading patterns using multiple image frames
EP2472451A1 (de) 2010-12-30 2012-07-04 Philip Morris Products S.A. Verfahren und Vorrichtung zur Markierung von Erzeugnissen
US20130169996A1 (en) * 2011-12-30 2013-07-04 Zih Corp. Enhanced printer functionality with dynamic identifier code
WO2013126591A1 (en) 2012-02-21 2013-08-29 Zih Corp. Method and apparatus for implementing near field communications with a printer
EP3051469B1 (de) 2015-01-28 2024-05-22 Inexto Sa Verfahren und Vorrichtung für Einheiten- und Behälteridentifizierung und Nachverfolgung
EP3051372B1 (de) 2015-01-31 2019-03-06 Inexto Sa Sichere Produktidentifizierung und -verifizierung
CN104700064B (zh) * 2015-04-02 2017-11-07 宁波聚思信息科技有限公司 一种包装条码纠错一体化设备
US20180205543A1 (en) 2015-08-13 2018-07-19 Inexto Sa Enhanced obfuscation or randomization for secure product identification and verification
US10594494B2 (en) 2015-08-25 2020-03-17 Inexto Sa Multiple authorization modules for secure production and verification
CN108140076B (zh) 2015-08-25 2022-04-05 英艾克斯图股份有限公司 用于安全产品标识符的具有容错的验证
JP7419084B2 (ja) * 2020-01-28 2024-01-22 東芝テック株式会社 リーダ、方法、プログラム

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4146046A (en) * 1973-11-16 1979-03-27 Monarch Marking Systems, Inc. Coded record and methods of and apparatus for encoding and decoding records
US3887792A (en) * 1973-12-04 1975-06-03 Scope Inc Method and device for reading and decoding a delta-distance code
US3969613A (en) * 1975-02-03 1976-07-13 International Business Machines Corporation Two frequency coded data interpreting method and apparatus
JPS61101880A (ja) * 1984-10-24 1986-05-20 Sato :Kk バ−コ−ド読取方法および装置
US5036183A (en) * 1988-08-25 1991-07-30 Alps Electric Co., Ltd. Code reading device
JP2886545B2 (ja) * 1989-03-03 1999-04-26 富士通株式会社 マージン認識方法及びバーコード読取り装置
US5493108A (en) * 1992-10-14 1996-02-20 Spectra-Physics Scanning Systems, Inc. Method and apparatus for recognizing and assembling optical code information from partially scanned segments
US5486689A (en) * 1993-01-22 1996-01-23 Intermec Corporation Method and apparatus for decoding unresolved multi-width bar code symbology profiles
DE4323293C2 (de) * 1993-07-12 1996-07-25 Sick Optik Elektronik Erwin Verfahren und Abtastanordnung zur Identifizierung eines aus aufeinanderfolgenden hellen und dunklen Feldern bestehenden Codes
US5489767A (en) * 1994-02-14 1996-02-06 Storage Technology Corporation Media labeling system for data storage elements having a common form factor
US5412196A (en) * 1994-04-01 1995-05-02 United Parcel Service Of America, Inc. Method and apparatus for decoding bar code images using multi-order feature vectors
US5602382A (en) * 1994-10-31 1997-02-11 Canada Post Corporation Mail piece bar code having a data content identifier

Also Published As

Publication number Publication date
EP0829815A2 (de) 1998-03-18
US5767498A (en) 1998-06-16
EP0829815A3 (de) 2000-11-08
JPH10105643A (ja) 1998-04-24
EP0829815B1 (de) 2004-04-07
JP4162279B2 (ja) 2008-10-08
DE69728485D1 (de) 2004-05-13

Similar Documents

Publication Publication Date Title
DE69728485T2 (de) Abtaster für Strichkodes mit Fehlern
DE102006049578B4 (de) Optisch lesbarer Informationsträger mit einem Informationssymbol und einem Maskierungselement
BE1027447B1 (de) Zweidimensionaler strichcode, der mit einem dynamischen umgebungsindikator versehen ist, der in einem spalt angeordnet ist
DE102015219541A1 (de) Dekodieren von strichcodes
DE2740105A1 (de) Optische zeichenerkennungseinrichtung
DE69814105T2 (de) Verfahren zur automatischen Regulierung der Eigenschaften eines optischen Codelesesystems
BE1027449A1 (de) Zweidimensionaler strichcode, der mit einem umgebenden dynamischen umgebungsindikator und einer farbkalibrierungsreferenz versehen ist
DE60220871T2 (de) Optimalisierte Echtzeit-Druckmaskenüberprüfung und optimalisiertes Druckelementendatensystem zur Vermeidung der Verwendung von fehlerhaften Elementen
DE60030484T2 (de) Tintenstrahlfehlertoleranz unter verwendung von tropfen in übergrösse
DE2834662A1 (de) Kodiertes druckelement und dessen verwendung
DE4107020A1 (de) Verfahren zur zweidimensionalen speicherung von daten auf einem bedruckbaren oder fotografisch entwickelbaren medium
DE60303003T2 (de) Verfahren und System zur Verifikation von Übergängen zwischen kontrastierenden Elementen
EP3428835B1 (de) Verfahren zum lesen eines optischen codes
DE60028116T2 (de) Verfahren zum Dekodieren von Strichcodes
EP1546996B1 (de) Verfahren zum erzeugen von lern- und/oder teststichproben
DE69735834T2 (de) Verfahren und Vorrichtung zur Erfassung von Gegenständen zugewiesenen Daten
DE102004050360A1 (de) Druckzustands-Kontrollverfahren, Zeichenfolge-Kontrollverfahren und Kontrollvorrichtung, die die Verfahren verwendet
DE2307005A1 (de) Vorrichtung zum maschinellen lesen bzw. erkennen von zeichen, z. b. buchstaben
DE2026033C3 (de) Rasterverfahren zur Klassifizierung von Schriftzeichen
EP3871892A1 (de) Makulaturoptimierte detektion
EP4258160B1 (de) Lesen von optischen codes
DE19504912C2 (de) Verfahren und Vorrichtung zum Erkennen von Barcode-Symbolen
EP0767441B1 (de) Verfahren und Vorrichtung zum Lesen eines Strichkodes
DE2817630A1 (de) Verfahren zum beurteilen der eingelesenen daten fuer einen etikettenleser
WO2008128605A1 (de) Verfahren zum erfassen eines auf einer postsendung aufgebrachten codes, vorrichtung zur durchführung des verfahrens und verfahren zum versehen der postsendung mit dem maschinenlesbaren code

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8320 Willingness to grant licences declared (paragraph 23)