DE3306088A1 - Verfahren und einrichtung zum lesen eines balkencodes - Google Patents

Verfahren und einrichtung zum lesen eines balkencodes

Info

Publication number
DE3306088A1
DE3306088A1 DE19833306088 DE3306088A DE3306088A1 DE 3306088 A1 DE3306088 A1 DE 3306088A1 DE 19833306088 DE19833306088 DE 19833306088 DE 3306088 A DE3306088 A DE 3306088A DE 3306088 A1 DE3306088 A1 DE 3306088A1
Authority
DE
Germany
Prior art keywords
bar code
character
code label
reference number
bars
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.)
Granted
Application number
DE19833306088
Other languages
English (en)
Other versions
DE3306088C2 (de
Inventor
Robert E. 85718 Tucson Ariz. Smith
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.)
Intelligent Instrumentation Inc
Original Assignee
Burr Brown Research Corp
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 Burr Brown Research Corp filed Critical Burr Brown Research Corp
Publication of DE3306088A1 publication Critical patent/DE3306088A1/de
Application granted granted Critical
Publication of DE3306088C2 publication Critical patent/DE3306088C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related 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/01Details
    • G06K7/016Synchronisation of sensing process
    • G06K7/0166Synchronisation of sensing process by means of clock-signals derived from the code marks, e.g. self-clocking code

Description

1A-4O49
BURR-BROWN RESEARCH CORPORATION Tucson, Arizona» USA
Verfahren und Einrichtung zum Lesen eines Balkencodes
Die Erfindung betrifft eine verbesserte Einrichtung sowie ferner ein Verfahren zum genauen Lesen von Balkencode-Etiketten, bei denen alternierend dunkle Balken und helle Zwischenräume variabler Breite vorgesehen sind, welche numerische und alphanumerische Informationen darstellen.
Es sind verschiedene "Balkencodes11 im Gebrauch, welche alternierende, langgestreckte, dunkle Balken und helle Zwischenräume umfassen und digitale sowie alphanumerische Codes darstellen. Beispielsweise wird der "Universal
JJÜ6088
Product Code" (UPC) allgemein bei Nahrungsmitteln angewendet. Zum Lesen und Decodieren solcher Balkencode-Etiketten werden Balkencode-Lesegeräte verwendet. Typischerweise umfaßt ein Balkencode-Lesegerät einen Fühler mit einer lichtemittierenden Diode, deren Licht aus einer Öffnung an einem Ende des Fühlers austritt. Der Fühler wird relativ zum Balkencode-Etikett vertikal gehalten und rasch von einem Ende zum anderen des Balkencode-Etiketts bewegt. Diesen Vorgang bezeichnet man als "Abtastung" des Etiketts. Eine photoempfindliche Einrichtung, z.B. ein Phototransistor, empfängt das Licht, welches von der lichtemittierenden Diode emittiert wurde und von den hellen Zwischenräumen zwischen den dunklen Balken des Etiketts reflektiert wird. Der Fühler umfaßt typischerweise einen einstufigen Verstärker, welcher das Ausgangssignal der photoempfindlichen Einrichtung verstärkt. Dieses Signal wird als "Fühlersignal" bezeichnet oder aber auch als "Analogsignal". Es hat typischerweise eine Amplitude von etwa 200 bis 300 mV. Vom oberen Ende des Fühlers erstreckt sich ein flexibles Kabel zu einer Schaltung, und das Signal wird über dieses Kabel zur Schaltung übertragen und hier weiter verstärkt und "geformt". Auf diese Weise erhält man ein Rohdatensignal, welches eine Folge von Impulsen und Intervallen umfaßt. Bei konstanter Abtastgeschwindigkeit entsprechen die Breiten der Impulse und der Intervalle präzise den Breiten der Balken und der Zwischenräume. Bei einigen bekannten Systemen, z.B. beim System der Interface Mechanisms, Inc. (Intermech, Inc.), Lynnwood, Washington, gelangt das Signal von der Fühlersignal-Konditionierschaltung zu einem Mikroprozessor-System, in dem Algorithmen zur Umwandlung des Rohdatensignals in binäre Zahlen ausgeführt werden. Jede dieser binären Zahlen entspricht einem Zeichen des Balkencode-Etiketts und jedes Bit hat einen logischen Zustand
("Eins" oder "Null"), welcher der Breite des Balkens oder Zwischenraums des Balkencode-Etiketts entspricht. Sobald die binären Zahlen ermittelt wurden, können auch die entsprechenden Zeichen automatisch unter Zuhilfenahme einer Tabelle ermittelt werden.
Die derzeit bekannten Balkencode-Lesegeräte sind nicht genau genug. Bei einigen Balkencode-Etiketten führen sie zu Fehlleseergebnissen. Bei manchen Geräten wird der Fühler oder Lesestab von Hand gehalten und von Hand bewegt. Dabei kommt es zu Änderungen in der Abtastgeschwindigkeit bei der Bewegung des Lesestabes von einem Ende zum anderen. Typischerweise und unbeabsichtigterweise wird die Geschwindigkeit des Lesestabes relativ zum Balkencode-Etikett beschleunigt. Dies beruht auf der Überwindung der Schwerkraft des Arms und des Lesestabes während des Tastvorgangs. Am Ende des Abtastvorgangs 1st die Geschwindigkeit des Lesestabes oft um 5096 größer als zu Beginn des Abtastvorgangs eines jeweiligen Balkencode-Etiketts. Ein weiterer Umstand, welcher zu Schwierigkeiten und Ungenauigkeiten bei der Umwandlung der vorerwähnten rohen Daten in binäre Zahlen, welche Zeichen des Balkencode-Etiketts darstellen, führt, besteht in der Tatsache, daß häufig der Farbübergang eines hellgefärbten Zwischenraums zum benachbarten, dunklen Balken nicht abrupt erfolgt, sondern allmählich. Ein weiterer Faktor, welcher die Genauigkeit des Balkencode-Lesegeräts herabsetzt, besteht in der Anwesenheit von kleinen Phasenfehlem der Signalkonditionierschaltung, und zwar bei der Verstärkung und beim Formen des Analogsignals niedrigen Pegels zum Zwecke der Erzeugung von Standard-Logikpegeln* Die besten, herkömmlichen Lesesysteme sind unfähig, Balkencode-Etiketts schlechter Druckqualität mit verschwommenen Übergängen von den Zwißchenräumen zu den Balken ge-
nau zu lesen oder bei einer fehlenden Konstanz der Abtastgeschwindigkeit genaue Leseergebnisse zu erzeugen. Es besteht daher ein erheblicher Bedarf nach verbesserten, zuverlässigen Balkencode-Leseverfahren und -geräten.
Es ist somit Aufgabe der vorliegenden Erfindung, ein verbessertes Balkencode-Lesegerät zu schaffen sowie ein verbessertes Balkencode-Leseverfahren, welches wesentlich weniger empfindlich auf Unvollkommenheiten des Balkencode-Etiketts anspricht und auch wesentlich weniger empfindlich auf Geechwindigkeitsschwankungen während des Abtastens des Balkencode-Etiketts reagiert.
Es ist ferner Aufgabe der Erfindung, ein äußerst genaues und zuverlässiges Balkencode-Leseverfahren sowie ein Gerät zur Durchführung desselben zu schaffen.
Erfindungsgemäß wird ein Verfahren und eine Vorrichtung zum Lesen eines Balkencode-Etiketts geschaffen, bei dem von einem Lesestab oder einer photoempfindlichen Einrichtung Gebrauch gemacht wird, mit der das Balkencode-Etikett abgetastet wird. Hierdurch wird ein Analogsignal erzeugt, welches die Menge des von den Balken und Zwischenräumen des Balkencode-Etiketts reflektierten Lichts wiedergibt. Dieses Analogsignal wird nun verstärkt und geformt, wobei man ein Rohdatensignal erhält. Nun wird in mindestens einem Teilbereich des Balkencode-Etiketts die Dauer eines jeden Impulses oder eines Jeden Zwischenraums zwischen den Impulsen gemessen. Auf diese Weise werden digitale Zeitdauersignale erzeugt und gespeichert, welche diesen Zeitspannen der Erzeugung der Balkensignale bzw. der Zwischenraumsignale entsprechen. Nun wird eine Referenzzahl errechnet. Sodann erfolgt ©in Vergleich zwischen dieser Referenzzahl und den zuvor ermittelten, digitalen Zeitspannenzahlen für den vorbestimmten Bereich
des Balkencode-Etiketts. Auf diese Weise erhält man eine binäre Zahl mit Bits, welche jeweils den Balken und Zwischenräumen des vorbestimmten Bereichs entsprechen. Jedes Bit hat den Zustand "Eins", wenn die zugeordnete, digitale Zeitspannenzahl größer als die Referenzzahl ist. Nun wird bestimmt, ob die Binärzahl gemäß vorbestimmten Kriterien akzeptabel ist. Falls die Binärzahl nicht akzeptabel ist, wird die erste Referenzzahl eingestellt. Nun werden die digitalen Zeitspannenzahlen wiederum mit den eingestellten Referenzzahlen verglichen, und es wird wiederum festgestellt, ob die erhaltene, neue Binärzahl akzeptabel ist. Bei dieser Ausführungsform der Erfindung werden die Analogsignale mit einem herkömmlichen Balkencode-Lesestab erzeugt, und auch das Rohdatonsignal wird mit einer herkömmlichen Signalkonditionierschaltung gewonnen. Das Rohdatensignal wird in ein Mikroprozessorsystem gegeben, in dem die Übergänge im Rohdatensignal erfaSt werden und di® Zeitspannen der Impulse und der Intervalle des Rohdatensignals gemessen werden. Ferner werden hier die entsprechenden, digitalen Zeitspannensignale erzeugt und gespeichert. Das Mikroprozessorsystem errechnet eine Referenzzahl für ein erstes Zeichen des Balkencode-Etiketts, und zwar dadurch, daß die Summe der digitalen Zeitspannenzahlen des ersten Zeichens durch acht dividiert wird (Durchführung einer dreifachen Binärverschiebung). Hierdurch wird ein Anfangswert der Referenzzahl etwa in der Mitte zwischen einer "typischen" niedrigen, digitalen Zeitspannenzahl, welche "Null" bedeutet, und einer "typischen" höheren, digitalen Zeitspannenzahl, welche als "Eins" bedeutet, angenommen, und zwar bei der Tastgeschwindigkeit, welche bei der Abtastung des ersten Symbols vorliegt. Alle digitalen Zeitspannenzahlen des ersten Symbols werden nun mit der Referenzzahl verglichen und erhalten entweder den Wert einer logischen "Null" oder einer logischen "Eins", jenachdem, ob sie kleiner
sind als die Referenzzahl oder diese übersteigen. Auf diese Weise erhält man die Binärzahl, welche eine Folge von logischen "Eins" und "Null" darstellt und dem ersten Symbol des Balkencode-Etiketts entspricht.
Bei der im einzelnen beschriebenen Ausführungsform der Erfindung handelt es sich bei dem Balkencode-Etikett um ein Etikett mit dem Code 39. Dieser erfordert, daß jedem Zeichen genau dreimal die logische "Eins" zukommt. Das Mikroprozessorsystem ermittelt, ob die erste Binärzahl genau dreimal die logische "Eins" umfaßt. Falls dies der Fall ist, so erfolgt ein Vergleich mit einer gespeicherten Nachschlagetafel, und auf diese Weise wird das erste Zeichen ermittelt. Falls die erste Binärzahl die logische "Eins" mehr als dreimal umfaßt, so erhöht das Mikroprozessorsystem die erste Referenzzahl um 6 1/496 (durch eine einfache binäre Verschiebung; Teilen durch 16). Dann werden die digitalen Zeitspannenzahlen des ersten Zeichens wiederum mit der neu eingestellten Referenzzahl verglichen* Das Mikroprozessorsystem erzeugt nun einen neuen Wert der ersten Binärzahl und bestimmt, ob der neue Wert der ersten Binärzahl nun genau dreimal die logische "Eins" enthält. Das Mikroprozessorsystem wiederholt dieses Verfahren, falls erforderlich, mehrmals in dem Bestreben, einen Wert der ersten binären Zahl zu erhalten, welche die logische "Eins" genau dreimal enthält. Wenn der anfängliche Wert der ersten Binärzahl die binäre "Eins" weniger als dreimal enthält, so vermindert das Mikroprozessorsystem den Anfangswert der Referenzzahl um 6,2596. Nun werden die digitalen Zeitspannenzahlen des ersten Zeichens wiederum mit dem neu eingestellten Wert der ersten Referenzzahl verglichen, und es wird ermittelt, ob der gebildete Wert der ersten Referenzzahl dreimal die logische "Eins" enthält» Falls erforderlich, wird dieses Verfahren wiederholt, in dem Bestreben, einen akzeptablen Wert der
-r-
ersten Binärzahl zu erhalten. Falls kein akzeptabler Wert der ersten Binärzahl durch Modifizierung des Wertes der ersten Referenzzahl um einen Gesamtbetrag von etwa 3O# erhalten werden kann, so stellt das Mikroprozessorsystem fest, daß es unmöglich ist, das erste Zeichen zu lesen.
Bei der beschriebenen Ausführungsform der Erfindung wird, falls erforderlich, eine gesonderte Referenzzahl für jedes Zeichen des Balkencode-Etiketts errechnet und modifiziert, und zwar in dem Bestreben, die Wirkung von Änderungen der Tastgeschwindigkeit und eines unvollkommenen Drucks des Balkencode-Etiketts sowie etwaiger Phasenfehler, welche durch die Konditionierschaltung eingeführt werden, auf ein Minimum zu bringen. Es wird ein "Zeichenfenster11 verwendet, welches jeweils nur ein einziges Zeichen des Balkencode-Etiketts erfaßt. Hierdurch werden die Wirkungen von Rauschsignalen eliminiert, welche vom Tastgerät erzeugt werden, wenn kein Zeichen des Balkencode-Etiketts abgetastet wird.
Im folgenden wird die Erfindung anhand von Zeichnungen näher erläutert; es zeigen:
Fig. 1A und 1B Balkencode-Elemente und Zeichen zur Erläuterung der Erfindung;
Fig. 2A und 2B Blockschaltbilder der Erfindung;
Fig. 3A ein Diagramm eines typischen Balkencode-Zeichens;
Fig. 3B die Wellenform des Ausgangssignals des Taststabes beim Abtasten des Zeichens gemäß Fig. 3A;
Fig. 3C ein Rohdatensignal, welches von der Signalkonditionierschaltung, ansprechend auf das Ausgangssignal der Fig. 3B, erzeugt wird;
Fig. hj( ein Fließdiagramm des vom Mikroprozessor in der Schaltung der Fig. 2A ausgeführten Programms.
j ο υ b υ ö ö
-r-
Zur Erläuterung der Erfindung wird ein weithin gebräuchlicher Balkencode, nämlich der "Code 39", herangezogen. Die Fig. 1A zeigt ein vergrößertes Diagramm des Zeichens "6" im Code 39. Die übrigen Zeichen im Code 39 finden sich im Anhang 1. Jedes Zeichen des Balkencodes 39 besteht aus neun "Elementen". Diese neun Elemente umfassen fünf "Balken", z.B. die Balken 51, 53, 55, 57 und 59 im Zeichen 50 der Fig. 1A. Die fünf Balken des Zeichens sind jeweils durch vier "Zwischenräume", nämlich die Zwischenräume 52, 54, 56 und 58 im Zeichen 50, getrennt. Die Breite eines ^eden Elements gibt einen Binärwert wieder. Ein schmaler Balken oder Zwischenraum bedeutet binär "Null", und ein breiter Balken oder Zwischenraum bedeutet binär "Eins".
In Fig. 1B sind die allmählichen Übergänge 63 und 64 zwischen den Balken 60 bzw. 62 und dem Zwischenraum 61 dargestellt. Dies veranschaulicht das zuvor erwähnte Übergangsproblem, welches häufig dazu führt, daß herkömmliche Balkencode-Lesesysteme ungenau gedruckte oder wiedergegebene Balkencode-Etiketten nicht richtig zu lesen vermögen.
Jedes breite Element, sei es nun ein Balken oder ein Zwischenraum, hat die 2,2fache Breite eines schmalen Elementes (Balken oder Zwischenraum).
Im folgenden soll die erfindungsgemäße Einrichtung anhand der Fig. 2A und 2B erläutert werden. Diese zeigen ein Balkencode-Etikett 3 mit einem "Start"-Zeichen und einer Vielzahl von Balkencodezeichen, die allgemein mit 5 bezeichnet sind. Ferner ist ein mit der Hand bewegter Lesestab 7 dargestellt, welcher von der Bedienungsperson in Richtung des Pfeils 8 bewegt wird, wobei sich das untere Ende des Stabes 7 dicht am Balkencode-Etikett 3 befindet.
Eine Lichtemissionsdiode, eine herkömmliche, photoempfindliche Einrichtimg und ein Verstärker sind in dem Stab 7 enthalten und erzeugen ein Analogsignal, welches über eine flexible Leitung 9 ausgegeben wird. Die Leitung 9 ist mit dem Eingang einer herkömmlichen Konditionierschaltung 11 verbunden. Der Lesestab 7 und die Konditionierschaltung für das Lesestabsignal sind bekannt und im Handel erhältliche Komponenten von Balkencode-Lesesystemen (z.B.Intermech, Inc.).
Der Ausgang der Konditionierschaltung 11 ist mit dem CB2-Eingang einer Zeitgeberschaltung 15 verbunden (Synertek 6522A). Diese umfaßt einen Zeitgeber und ist dazu befähigt, Übergänge des Rohdatensignals auf dem Leiter 13 zu erfassen. Die periphere Schaltung 15 erzeugt ein Unterbrechungssignal auf dem TKS-Eingang des Mikroprozessors 21 (Synertek 65O2A). Die Datenbusanschlüsse des Mikroprozessors 21 und des peripheren Chips 15 sind durch acht Datenbusleitungen 19 verbunden.
Ein Nur-Lesespeicher (ROM) 29 (integrierte Schaltung2732) ist vorgesehen, dessen Datenbusanschlüsse mit den Datenbusleitern 19 verbunden sind. Ein Speicher 31 mit freiem Zugriff (RAM) ist ebenfalls vorgesehen (integrierte Schaltung 2016P). Seine Datenbusanschlüsse sind mit den entsprechenden Leitern des Datenbusses 19 verbunden. Die jeweiligen Leiter des Adreßbusses 25 sind mit den entsprechenden Adressenausgängen des Mikroprozessors 21 und den entsprechenden Adresseneingängen des ROM 29 und des RAM 31 verbunden. Ein Decodierchip 33 (74LS42) umfaßt drei Adressen-eingänge, welche mit den Adressenausgängen des Mikroprozessors 21 verbunden sind. Die dort anstehenden Signale werden decodiert, und es werden Eingangssignale erzeugt, welche für die periphere Schaltung 25, den ROM 29 und den RAM 31 sowie eine Latch-Schaltung 35 benötigt
-42-
werden. Bei der Latch-Schaltung 35 kann es sich beispielsweise um die integrierte Schaltung 74LS244 handeln.
Acht manuelle Schalter 39 sind mit entsprechenden Eingängen der Latch-Schaltung 35 verbunden, so daß die Bedienungsperson manuell zwischen einer Vielzahl von verschiedenen Typen von Balkencodes wählen kann. Die Ausgangssignale der Latch-Schaltung 35 werden vom Mikroprozessor 21 gelesen» da die entsprechenden Ausgänge mit den entsprechenden Leitern des Datenbusses 19 verbunden sind. Die I/O-Anschlüsse 17 des peripheren Chips 15 ermöglichen es dem System 1 der Fig. 2A und 2B, mit beispielsweise einem anderen, bereits vorhandenen Computer zu kommunizieren.
Fig. 3A zeigt das "Start"-Zeichen im Code 39. Fig. 3B zeigt das Analogausgangssignal, welches auf dem Leiter 9 der Fig. 2A erscheint, wenn das Startzeichen der Fig.3A von links nach rechts abgetastet wird. Die Ziffern "Null" und "Eins" über den Balken und Zwischenräumen der Fig.3A bezeichnen die logischen Zustände der Balken und Zwischenräume, wie man leicht durch Vergleich mit dem Anhang 1 verifizieren kann. Die Konditionierschaltung 11 wandelt das 200 mV-Analogsignal der Fig. 3B in eine Folge von Impulsen mit Standard-Logikpegeln gemäß Fig. 3C um, wobei nun die Balken oder Zwischenräume (logisch "Null11 bzw. logisch "Eins") der Fig. 3A mit entsprechenden Impulsen oder Zwischenräumen zwischen den Impulsen der Fig. 3C fluchten. Es sollte betont werden, daß die Zeitskale (t) in den Fig. 3B und 3C nicht notwendigerweise linear sein muß. Eine lineare Zeitskala würde nur vorliegen, wenn die Bedienungsperson das Startzeichen der Fig. 3A mit präzis konstanter Geschwindigkeit abtasten würde. Etwaige Änderungen der Abtastgeschwindigkeit führen zu entsprechenden Änderungen der Zeitskala der Fig. 3B und 3C. Wie
Wie zuvor erwähnt, neigt der Benutzer dazu, die Geschwindigkeit der Lesestabbewegung zwischen dem Anfang und dem Ende des Balkencode-Etiketts erheblich zu erhöhen, und zwar einfach aufgrund der Überwindung der Trägheit des eigenen Arms. Wie bereits erläutert, ist diese Änderung der Abtastgeschwindigkeit einer der wichtigsten Faktoren, welche die Genauigkeit und Zuverlässigkeit der herkömmlichen Balkenlesegeräte beschränken.
Zur Vermeidung der erläuterten Probleme hinsichtlich der Änderung der Lesestabgeschwindigkeit, hinsichtlich verschiedener Phasenverzögerungen in der Konditionierschaltung und hinsichtlich verschiedener Druckungenauigkeiten des Balkencode-Etiketts sammelt und speichert das System 1 alle rohen Daten, welche auf dem Leiter 13 beim Abtasten des gesamten Balkencode-Etiketts 5 erscheinen. Die rohen Daten (in Form von Impulsen und Intervallen) werden in Zeitmessungen zwischen den übergängen auf dem Leiter 13 umgewandelt. Der periphere Chip 15 unterbricht den Mikroprozessor 21 Jedesmal, wenn ein übergang in den Rohdatensignalen auf dem Leiter 13 erscheint,und der Mikroprozessor 21 liest den Inhalt einer Zeitschaltung (welche mit konstanter Geschwindigkeit zählt) im peripheren Chip 15, und zwar ansprechend auf Jede Unterbrechung. Sobald die Zeitschaltung abläuft, und zwar durch Verstreichen von 53 msec, ohne Auftreten eines Übergangs auf dem Leiter 13, so wird diese Tatsache vom Mikroprozessor 21 als das Ende des abgetasteten Balkencode-Etiketts interpretiert. Immer wenn ein Übergang auf der Leitung 13 erscheint, ehe die Zeitschaltung des peripheren Chips 15 ausläuft, wird die Zeitschaltung zurückgestellt und beginnt wiederum von neuem zu zählen, so daß auf diese Weise die Dauer des nächsten Impulses oder Intervalls (entsprechend einem Balken oder Zwischenraum) auf dem Leiter 13 gemessen werden kann.
Diese Zählungen, welche im folgenden als "digitale Zeitspannenzahlen11 bezeichnet werden und welche im Idealfall nur einen von zwei Werten haben, nämlich einen ersten Wert, der der logischen "Eins" entspricht,oder einen zweiten Wert, der der logischen "SuIl" entspricht, variieren Jedoch in der Praxis beträchtlich aufgrund der erläuterten iinderung der Abtastgeschwindigkeit.
Erfindungsgemäß beginnt das Balkencode-Lesesystem 1 mit der Berechnung eines Anfangswertes einer "Referenzzeit11 oder einer BReferenzzählung", welche etwa in der Mitte zwischen einer typischen oberen, digitalen Zähldauer, entsprechend logisch "Eins", und einer typischen, unteren, digitalen Zähldauer, entsprechend logisch "Null", im ersten Zeichen des Balkencode-Etiketts liegt. Jede gespeicherte, digitale Zähldauer, welche die Abtastzeitdauer eines Balkens oder eines Zwischenraums dieses Zeichens darstellt, wird sodann verglichen mit dem errechneten Anfangswert der Referenzzahl und somit entweder als logisch "Null" interpretiert, wenn die digitale Zeitspannenzahl unterhalb der Referenzzahl liegt, oder als logisch •♦Eins··, wenn die digitale Zeitspannenzahl den Anfangswert der errechneten Referenzzahl übersteigt. Die gebildete Binärzahl entspricht nun den Balken und Zwischenräumen des ersten Zeichens auf einer Bit-Element-Basis, unter der Voraussetzung, daß das Zeichen genau gelesen wurde.
Erfindungsgemäß wird sodann festgestellt, wie oft die logische nEinstt in der binären Zahl, welche dem ersten Zeichen entspricht, erscheint. Wir erinnern uns nun, daß im Code 39 die logische "Eins" genau dreimal in jedem Zeichen erscheinen muß. Wenn die logische "Eins" weniger als dreimal erscheint, so wird der Anfangswert der Referenzzahl um einen kleinen Prozentsatz herabgesetzt (6,25#,
erhalten durch binäres Teilen durch 16). Nun wird der erwähnte Vergleich der digitalen Zeitspannenzahlen des ersten Zeichens wiederholt, jedoch in bezug auf die modifizierte und eingestellte Referenzzahl· Venn der neue Wert der erwähnten Binärzahl die logische «Eins1» bei einem Zeichen dreimal enthält, so wird davon ausgegangen, daß die rohen Daten dieses Zeichens korrekt interpretiert wurden. Venn die logische "Eins" weniger als dreimal erscheint, so wird der Vert der Computer-Referenzzahl wiederum verringert. Dieses Verfahren wird wiederholt, und zwar bis zu insgesamt fünf Mal, bis die logische "Eins" dreimal erscheint. Venn nach dieser Aufwärtsveränderung der anfangs errechneten Referenzzahl um bis zu etwa 3O# kein Erfolg eintritt und die logische "Eins" in der Binärzahl nicht dreimal erscheint, so nimmt der Mikroprozessor 21 an, daß das erste Zeichen nicht korrekt gelesen werden kann.
Venn in ähnlicher Veise der Anfangsvergleich der neun Abtastzeitspannenzählung des ersten Zeichens mit dem zu Anfang errechneten Referenzzahlenwert dazu führt, daß die logische "Eins" mehr als dreimal vorhanden ist, so wird der Anfangswert der Referenzzahl automatisch gesteigert, und zwar um einen kleinen Betrag (6,2596) f und der Vergleich der neun digitalen Zeitspannenzahlen des ersten Zeichens mit der eingestellten Referenzzahl wird wiederholt. Dies geschieht so oft, bis die als Ergebnis des Vergleichs gebildete Binärzahl die logische "Eins" genau dreimal enthält. Venn die logische "Eins1* durch diese Abwärtseinstellung um etwa 3O# des Anfangswertes nicht dreimal erhalten werden kann, so nimmt der Mikroprozessor 21 an, daß das erste Zeichen unleserlich ist.
Es wurde festgestellt, daß der beschriebene Vergleich und, falls erforderlich, die Einstellung der Referenzzahl und der erneute Vergleich der digitalen Zeitspannenzahl mit der eingestellten Referenzzahl für jedes Zeichen des Etiketts zu einer vorzüglichen Kompensation der normalen Änderungen der Lesestabgeschwindigkeit während des Abtastens eines jeweiligen Balkencode-Etiketts führt.
Im folgenden soll unter Bezugnahme auf Fig. 4 dieses Verfahren näher erläutert werden. Das Diagramm der Fig. 4A ist ein funktionelles Fließdiagramm des vom Mikroprozessor 21 durchgeführten Verfahrens zur Umwandlung des Rohdatensignals auf dem Leiter 13 in einen Code mit "hohen Pegeln", welcher den einzelnen Zeichen entspricht (Gruppen von Balken und Zwischenräumen), welche bei der erfolgreichen Abtastung eines Balkencode-Etiketts erhalten werden. Der Anhang 2 enthält den Code für den Mikroprozessor 21 des Typs 6502A zur Ausführung des in Fig. 4 dargestellten Verfahrens.
Gemäß Fig. 4 wird das Programm bei der Position 100 gestartet, und es folgt zunächst der Block 101. Im Block spricht der Mikroprozessor 21 auf das Unterbrechungssignal an, welches vom peripheren Chip 15 an seinen Eingang TR<3 angelegt wird, und zwar ansprechend auf jeden übergang des auf dem Leiter 13 stehenden Signals. Dabei wird jeweils der aktuelle Inhalt der internen Zeitschaltung des peripheren Chips 15 gelesen. Die jeweils aktuellen Inhalte konstituieren die digitale Zeitspannenzählung, welche die Breite des Impulses oder des Intervalls zwischen den beiden jüngsten übergängen des Signals auf dem Leiter 13 darstellt. Dieser Prozeß wird für das gesamte Balkencode-Etikett durchgeführt, bis die interne Zeiteinheit mit 53 msec ausläuft und ein weiteres Unterbrechungs-
signal erzeugt. In dieser Stelle erkennt das Programm, daß die digitalen Zeitspannenzählungen beendet sind und daß alle Daten gesammelt und im Speicher für das gesamte Balkencode-Etikett gespeichert sind. Nun schreitet das Programm zum Block 102 weiter.
Im Block 102 wird der vorerwähnte Referenzzahlwert für das erste, zuvor abgetastete Zeichen ermittelt. Aus Gründen der Programmierwirtschaftlichkeit unterteilt das Programm die Gesamtheit der Abtastzählungen der neun Elemente für das jeweilige Zeichen durch acht, und zwar einfach durch drei binäre Verschiebungen nach rechts. Dieser Wert wird nun als Anfangswert des Referenzzählwertes verwendet. Das Programm tritt nun in den Block 103 ein und vergleicht einen jeden der gespeicherten digitalen Zeitspannenzählwerte des ersten Zeichens mit dem errechneten Referenzzählwert· Wenn der zuvor gelesene, digitale Zeitspannenzählwert kleiner ist als der Referenzzählwert, so ordnet ihm das Programm den logischen Wert "Null" zu. Wenn der digitale Zeitspannenzählwert größer ist als der Referenzzählwert, so ordnet ihm das Programm den logischen Wert "Eins" zu. Das Programm tritt sodann in den Entscheidungsblock 104 ein. Hier wird die neun Bit-Binärziffer daraufhin überprüft, ob sie die logische "Eins" genau dreimal enthält (im Falle der Verwendung des Codes 39). Falls dies bestätigt wird, geht das Programm zum Block 108 über. Es erfolgt nun ein Vergleich mit einer gespeicherten Tabelle, welche die Information der Anlage 1 enthält. Hierdurch wird die Art des ersten Zeichens ermittelt. Das Programm kehrt nun zum Block 102 zurück und errechnet die Anfangsreferenzzeit für ein zweites Zeichen des Balkencode-Etiketts.
Wenn jedoch das Ergebnis des Entscheidungsblocks 104 negativ ist, so schreitet das Programm zum Entscheidungsblock 105 fort. Hier bestimmt das Programm, ob mehr als fünf Einstellungen des .anfangs errechneten Referenzzählwertes für das erste Zeichen vorgenommen wurden. Falls die Antwort negativ ist, so schreitet das Programm zum Entscheidungsblock 106 weiter und erhöht den derzeitigen Wert der Referenzzeit für das aktuelle Zeichen, wenn in der vorerwähnten neu Bit-Binärziffer die logische "Eins" mehr als dreimal vorkommt, oder andererseits wird der Wert der Referenzziffer vermindert, wenn die logische "Eins" in der neun Bit-Binärziffer weniger als dreimal vorkommt. Zur wirtschaftlichen Durchführung der Datenverarbeitung im Block 106 verschiebt der Mikroprozessor den aktuellen Binärwert des Referenzzählwertes viermal nach rechts. Dies ist äquivalent einer binären Division durch 16. Hierdurch erhält man eine Zahl, welche 6,2596 des Ursprungswertes darstellt. Dieser Wert wird zum aktuellen Referenzzählwert addiert, um eine Aufwärtsberichtigung vorzunehmen, oder subtrahiert, um eine Abwärtsberichtigung vorzunehmen. Sodann kehrt das Programm zum Block 103 zurück und vergleicht wiederum eine jede der neun digitalen Zeitspannenzählwerte mit dem voreingestellten Referenzzählwert, und zwar wiederum unter Erzeugung der binären Ziffern "Eins" oder wNulln aus den digitalen Zeitspannenzählwerten. Wenn die vorgenommene Einstellung des Referenzzählwertes zu einer positiven oder bejahenden Antwort im Entscheidungsblock 104 kommt (ehe fünf Einstellungen des Referenzzählwertes des aktuellen Zeichens vorgenommen wurden) , so wird hieraus entnommen, daß das Auslesen des aktuellen Zeichens erfolgreich war, und das Programm schreitet nun zum Block 108 weiter. Hier wird die jeweils zuletzt erhaltene neun Bit-Binärziffer des Blocks 103 in einen "höheren Code11 umgewandelt, und zwar unter Bezug-
nahme auf die vorerwähnte, gespeicherte Tabelle. Venn jedoch nach fünf Versuchen der Einstellung des Referenzzählwertes für das jeweils aktuelle Zeichen die korrekte Anzahl der logischen "Eins" nicht erhalten wird, so erhält man im Entscheidungsblock 105 eine bestätigende Antwort, und das Programm schreitet zum Entscheidungsblock 109 weiter. Der Entecheidungsblock 109 des Programms bestimmt nun, ob das aktuelle Zeichen das erste Zeichen des Balkencode-Etiketts ist. Wenn die Antwort im Entscheidungsblock 109 negativ ist, so schreitet das Programm zum Block 111 weiter. Die Decodiersequenz wird terminiert, und es wird ein Fehler angezeigt oder die Unmöglichkeit, dieses Balkencode-Etikett zu lesen. Falls jedoch die Antwort dieses Entscheidungsblocks 109 positiv ist, so schreitet das Programm zum Block 110 weiter.
Zum Verständnis des Entscheidungsblocks 110 ist es nun wichtig zu erkennen, daß bei der Durchführung einer Balkencode-Abtastung stets die Gefahr des Auftretens eines Rauschens besteht, und zwar besonders zu Beginn des Balkencode-Etiketts. Dies beruht darauf, daß der Vorgang des Aufsetzens der Lesestiftspitze auf das Substrat des Etiketts zu einem Übergang im Logikpegel der Leitung 13 führen kann. Ferner kann auch die Fläche vor Beginn des Balkencode-Etiketts ausreichend dunkle Bereiche aufweisen, so daß ein fehlerhaftes Übergangssignal in die Leitung 13 gegeben werden kann, und zwar vor der eigentlichen Abtastung des Balkencode-Etiketts. Falls das Programm dennoch versuchen würde, diesen übergang zu interpretieren, so könnte dies zu erheblichen Schwierigkeiten führen. Erfindungsgemäß wird diese Art von Störeffekten oder Rauschen maskiert, und zwar durch Bewegen eines Zeichenfensters, welches zu einer gegebenen Zeit immer nur ein Zeichen umfaßt, und zwar zu einer Zeit, welche weiter
-ZG-
"in" die zuvor gesammelte und gespeicherte Liste von digitalen Zeitspannenzählwerten liegt, bis schließlich das Startzeichen gefunden wird. Wenn das Startzeichen nicht gefunden werden kann, so wird angezeigt, daß das derzeitige Balkencode-Etikett vom Programm nicht lesbar ist. Diese Situation entspricht einer positiven Antwort im Entscheidungsblock 110. Im Block 197 wird die Funktion der Bewegung des vorerwähnten Zeichenfensters durchgeführt, bis das Startzeichen gefunden wird.
Dieses Balkencode-Lesesystem 1 wurde an einer Vielzahl von Balkencode-Etiketten geringer Qualität getestet. Es wurde festgestellt, daß in mehr als 9996 der Fälle genaue Leseergebnisse erzielt wurden. Das Balkencode-Lesesystem 1 vermag Balkencode-Etiketten nach dem Code 39 genau zu lesen, auch wenn diese drei- oder viermal kopiert wurden und auch wenn die Abtastung mit dem Taststift diagonal über das Etikett erfolgt.
Vorstehend wurde nur eine spezielle Ausführungsform der Erfindung erläutert. Die Erfindung eignet sich jedoch für alle äquivalenten Balkencode-Lesesysteme, welche eine Referenzzeit automatisch zählen oder errechnen und danach den Zählwert automatisch einstellen, um die Umwandlung der rohen Daten des Zeichens in eine Binärziffer, bestehend aus logisch "Eins" und logisch "Null", umzuwandeln, und zwar gemäß den speziellen Kriterien des abgetasteten Balkencodes. Die Kriterien können einfach darin bestehen, daß die Binärzahl, die aus den rohen Daten erhalten wird, in der Nachschlagetabelle der gültigen Zeichen gefunden wird. Anstelle der Grundberechnung der Referenzzahl in bezug auf ein vollständiges Zeichen des Etiketts kann dies auch in bezug auf einen anderen Teil des Etiketts erfolgen oder in bezug auf eine Gruppe von Balken oder Zwischenräumen.
Tabelle
Balken Code 39 Zeichen Balken Zwischen 0001
Zeichen Zwischen räume 0001
10001 räume M 11000 0001
1 01001 0100 N 00101 0001
2 11000 0100 O 10100 0001
3 00101 0100 P 01100 0001
4 10100 0100 Q 00011 0001
5 01100 0100 R 10010 0001
6 00011 0100 S 01010 1000
7 10010 0100 T 00110 1000
8 01010 0100 U 10001 1000
9 00110 0100 V 01001 1000
O 10001 0100 W 11000 1000
A 01001 0010 X 00101 1000
B 11000 0010 γ 10100 1000
C 00101 0010 Z 01100 1000
D 10100 0010 00011 1000
ε 01100 0010 10010 1110
F 00011 0010 Leertaste 01010 1101
G 10010 0010 $ 00000 1011
H 01010 0010 00000 Olli
I 00110 0010 + 00000
J 10001 0010 % 00000
K 01001 0001
L 00110 0001
START: 00110 1000
STOP: 1000
, -StS-.
Leerseite

Claims (20)

  1. Patentansprüche
    Einrichtung zum Lesen eines Balkencode-Etiketts, gekennzeichnet durch folgende Merkmale:
    (a) eine Einrichtung zur Erzeugung eines Analogsignals, ansprechend auf die Abtastung eines Balkencode-Etiketts, wobei dieses Analogsignal Signale umfaßt, welche die von Balken und Zwischenräumen des Balkencode-Etiketts reflektierte Lichtmenge wiedergeben sowie die Breiten der Balken und der Zwischenräume, jenachdem, ob die Balken oder Zwischenräume einem ersten oder zweiten logischen Zustand zugeordnet sind;
    (b) eine Einrichtung zur Verstärkung des Analogsignals und zur Impulsformung desselben unter Erzeugung eines Rohdatensignals mit einer Vielzahl von Impulsen, wobei die Dauer der aufeinanderfolgenden Impulse den Breiten der entsprechenden Balken des Balkencode-Signals entsprechen und wobei die Zeitdauer der aufeinanderfolgenden Zwischenräume zwischen den Impulsen den Breiten der aufeinanderfolgenden Zwischenräume des Balkencode-Etiketts entsprechen, welches mindestens ein Zeichen mit einer Vielzahl von Balken und Zwischenräumen aufweist;
    (c) eine Einrichtung zum Kessen der Zeitspanne eines jeden einer Vielzahl dieser Impulse und Intervalle, welche zumindest einem Zeichen des Balkencode-Etiketts gehören, unter Erzeugung einer Vielzahl von digitalen Zeitspannenzahlen, welche sodann gespeichert werden;
    (d) eine Einrichtung zur Erre dinung einer ersten Referenzzahl;
    (e) eine Einrichtung zum Vergleich einer jeden der digitalen Zeitspannenzahlen mit der ersten Referenzzahl und zur Erzeugung einer ersten Binärzahl mit einer Vielzahl von Bits, welche jeweils den Balken und Zwischenräumen des Zeichens zugeordnet sind, wobei ein jedes der
    Bits den ersten logischen Zustand hat, wenn die entsprechende digitale Zeitspannenzahl kleiner ist als die erste Referenzzahl, und wobei ein Jedes dieser Bits den zweiten logischen Zustand hat, wenn die entsprechende digitale Zeitspannenzahl größer ist als die erste Referenzzahl;
    (f) eine Einrichtung zur Ermittlung, ob die erste Binärzahl gemäß vorbestimmten Kriterien eine akzeptable Zahl ist, und zur Decodierung dieser ersten binären Zahl, falls sie akzeptabel ist, unter Ermittlung des zugeordneten Zeichens; und
    (g) eine Einrichtung zur Einstellung des Wertes der ersten Referenzzahl um einen vorbestimmten Korrekturwert, falls die erste binäre Zahl nicht akzeptabel ist.
  2. 2. Einrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die vorbestimmten Kriterien das Erfordernis umfassen, daß die erste Binärzahl genau eine vorbestimmte Anzahl von Bits umfaßt, welche den ersten logischen Zustand haben.
  3. 3. Einrichtung nach Anspruch 2, dadurch gekennzeichnet, daß die Einstelleinrichtung die erste Referenzzahl verringert, falls die Anzahl der Bits, welche den ersten logischen Zustand haben, in der ersten Binärzahl kleiner ist als die erste vorbestimmte Zahl, so daß eine größere Anzahl der digitalen Zeitspannen-Zahlenwerte die eingestellte, erste Referenzzahl übersteigt, so daß mehr Bits der ersten binären Zahl den ersten logischen Zustand haben.
  4. 4. Einrichtung nach Anspruch 2, dadurch gekennzeichnet, daß die Einstelleinrichtung die erste Referenzzahl erhöht, falls die Anzahl der Bits des ersten logischen
    Zustandes in der ersten binären Zahl größer ist als die erste vorbestimmte Zahl, so daß eine größere Anzahl der digitalen Zeitspannen-Zahlenwerte unterhalb des eingestellten ersten Referenzzahlenwertes liegt, so daß eine größere Anzahl Bits der ersten binären Zahl den zweiten logischen Zustand hat.
  5. 5. Einrichtung nach Anspruch 1, dadurch gekennzeichnet, daß das Balkencode-Etikett eine Vielzahl von Zeichen umfaßt.
  6. 6. Einrichtung nach Anspruch 5» gekennzeichnet durch eine Einrichtung zur Errechnung einer zweiten Referenzzahl, welche einem anderen der Zeichen entspricht.
  7. 7. Einrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die Decodierung der ersten binären Zahl unter Bezugnahme auf eine gespeicherte Tabelle erfolgt.
  8. 8. Einrichtung nach Anspruch 5» gekennzeichnet durch ©ine Einrichtung zur Auswahl eines Zeichenfensters, das zu jeder Zeit nur ein Zeichen durchläßt, und zur Bewegung dieses Zeichenfensters, so daß die Berechnung der Referenzzahlen nur auf Grundlage der digitalen Zeitspannenzahlenwerte erfolgt, welche in einem Zeichen vorhanden sind, das vollständig im Zeichenfenster erscheint, so daß Störungen durch Rauschsignale, welche außerhalb der Zeit der Abtastung der Zeichen des Balkencode-Etiketts erzeugt werden, eliminiert werden.
  9. 9. Einrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die Einrichtung zur Erzeugung eines Analogsignals einen Taststift umfaßt, und daß die Meßeinrichtung einen Zähler umfaßt, welcher mit einer vorbestimmten Ge-
    schwindigkeit zählt, und daß die Recheneinrichtung, die Vergleichseinrichtung und die Einstelleinrichtung in einem Mikroprozessorsystem enthalten sind.
  10. 10. Verfahren zum Lesen eines Balkencode-Etiketts, gekennzeichnet durch die folgenden Stufen:
    (a) Erzeugung eines Analogsignals, ansprechend auf die Abtastung des Balkencode-Etiketts, wobei das Analogsignal Signale umfaßt, welche die Lichtmengen wiedergeben, welche von den Balken und Zwischenräumen des Balkencode-Etiketts reflektiert werden, wobei die Breiten der Balken und Zwischenräume bestimmen, ob diese den ersten oder zweiten logischen Zustand haben;
    (b) Verstärken und Formen des Analogsignals unter Erzeugung eines Rohdatensignals mit einer Vielzahl von Impulsen, wobei die Dauer der aufeinanderfolgenden Impulse den Breiten der aufeinanderfolgenden Balken entspricht und wobei die Zeitspannen der aufeinanderfolgenden Intervalle zwischen den Impulsen den Breiten der auf einanderfolgenden Zwischenräume zwischen den Balken des Balkencode-Etiketts entsprechen, wobei das Balkencode-Etikett mindestens ein Zeichen umfaBt, das eine Vielzahl von Balken und Zwischenräumen aufweist;
    (c) Messung der Zeitspannen eines jeden der Vielzahl der Impulse und Intervalle des mindestens einen Zeichens des Balkencode-Etiketts unter Gewinnung einer Vielzahl von digitalen Zeitspannen-Zählwerten, welche die Vielzahl der Zeitspannen wiedergeben, gefolgt von einer Speicherung der Vielzahl der Zeitspannen-Zählwerte;
    (d) Berechnung einer ersten Referenzzahl;
    (e) Vergleich eines jeden der digitalen Zeitspannen-Zählwerte mit der ersten Referenzzahl unter Erzeugung einer ersten binären Zahl mit einer Vielzahl von
    Bits, welche jeweils den Balken und Zwischenräumen des Zeichens entsprechen, wobei ein jedes der Bits den ersten logischen Zustand hat, falls der zugeordnete digitale Zeitspannen-Zählwert kleiner ist als die erste Referenzzahl, und wobei ein jedes der Bits gleich dem zweiten Digitalzustand ist, falls eine entsprechende, digitale Zeitspannenzahl größer ist als der erste Referenzzählwert;
    (f) Feststellen, ob die erste binäre Zahl eine akzeptable Zahl ist, und zwar gemäß vorbestimmten Kriterien, gefolgt von einer Decodierung der ersten binären Zahl, falls diese akzeptabel ist, unter Ermittlung des entsprechenden Zeichens; und
    (g) Einstellen des Wertes der ersten Referenzzahl um einen vorbestimmten Korrekturbetrag, falls die erste binäre Zahl nicht akzeptabel ist, und Wiederholung der Stufen (e) und (f).
  11. 11. Verfahren nach Anspruch 10, dadurch gekennzeichnet, daß die vorbestimmten Kriterien das Erfordernis beinhalten, daß die erste binäre Zahl genau eine erste, vorbestimmte Anzahl von Bits des ersten logischen Zustands umfaßt.
  12. 12. Verfahren nach Anspruch 11, dadurch gekennzeichnet, daß bei der Einstellung der Referenzzahl diese vermindert wird, falls die Anzahl der Bits des ersten logischen Zustande in der ersten binären Zahl kleiner ist als die erste vorbestimmte Zahl, so daß ein größerer Anteil der digitalen Zeitspannen-Zahlenwerte die eingestellte erste Referenzzahl übersteigt, so daß eine größe re Anzahl von Bits der ersten binären Zahl den ersten logischen Zustand hat.
  13. 13. Verfahren nach Anspruch 11, dadurch gekennzeichnet, daß die Einstellung der ersten Referenzzahl eine Erhöhung derselben beinhaltet, falls die Anzahl der Bits mit dem ersten logischen Zustand in der ersten binären Zahl größer ist als die vorbestimmte Anzahl, so daß ein größerer Anteil der digitalen Zeitspannen-Zahlenwerte kleiner ist als die voreingestellte erste Referenzzahl, so daß eine größere Anzahl von Bits der ersten Binärzahl den zweiten logischen Zustand hat.
  14. 14. Verfahren nach Anspruch 10, dadurch gekennzeichnet, daß das Balkencode-Etikett eine Vielzahl von Zeichen umfaßt, wobei die Stufe (c) für das gesamte Balkencode-Etikett durchgeführt wird, bevor die Stufe (d) für das erste Zeichen durchgeführt wird.
  15. 15. Verfahren nach Anspruch 14, dadurch gekennzeichnet, daß eine zweite Referenzzahl für ein anderes der Zeichen errechnet wird.
  16. 16. Verfahren nach Anspruch 10, dadurch gekennzeichnet, daß die erste Referenzzahl errechnet wird unter Durchführung einer Vielzahl von binären Verschiebungen der Summe aller digitalen Zeitspannen-Zahlenwerte des Zeichens, wobei der vorbestimmte Betrag der Stufe (g) die Durchführung einer Vielzahl von binären Verschiebungen der ersten Referenzzahl beinhaltet.
  17. 17. Verfahren nach Anspruch 16, dadurch gekennzeichnet, daß bis zu fünf Einstellungen des Wertes der ersten Referenzzahl vorgenommen werden.
  18. 18. Verfahren nach Anspruch 10, dadurch gekennzeichnet, daß die Decodierung der ersten binären Zahl anhand einer gespeicherten Tabelle erfolgt.
  19. 19. Verfahren nach Anspruch 14, dadurch gekennzeichnet, daß man ein Zeichenfenster auswählt, welches zu jeder Zeit nur ein Zeichen umfaßt, und daß dieses Zeichen bewegt wird unter Errechnung einer Referenzzahl nur auf Basis der digitalen Zeitspannen-Zahlenwerte dieses Zeichens, welches vollständig im Zeichenfenster erscheint, so daß die Effekte von Rauschsignalen eliminiert werden, welche außerhalb der Abtastung der Zeichen des Balken-CQde-Etiketts Zustandekommen.
  20. 20. Verfahren zum Lesen eines Balkencode-Etiketts, gekennzeichnet durch die folgenden Stufen:
    (a) Erzeugung eines analogen Signals, ansprechend auf die Abtastung des Balkencode-Etiketts, wobei das analoge Signal Signale umfaßt, welche die Lichtmengen wiedergeben, die von den Balken und Zwischenräumen des Balkencode-Etiketts reflektiert werden, wobei die Breiten der Balken und Zwischenräume bestimmen, ob diesen der erste oder zweite logische Zustand zukommt;
    (b) Verstärkung und Formung des analogen Signals unter Erzeugung eines Rohdatensignals mit einer Vielzahl von Impulsen, wobei die Dauer der aufeinanderfolgenden Impulse den Breiten der aufeinanderfolgenden Balken des Balkencode-Etiketts entspricht und wobei die Dauer der aufeinanderfolgenden Intervalle der Impulse den Breiten der aufeinanderfolgenden Zwischenräume des Balkencode-Etiketts entspricht, wobei dieses Balkencode-Etikett mindestens einen Teilbereich mit einer Vielzahl von Balken und Zwischenräumen umfaßt;
    (c) Messung der Zeitspannen eines jeden der Vielzahl der Impulse und Zwischenräume in mindestens einem Teilbereich des Balkencode-Etiketts unter Erzeugung einer Vielzahl von digitalen Zeitspannen-Zahlenwerten, die der Vielzahl der Zeitspannen entsprechen, gefolgt von ei-
    330S088
    ner Speicherung dieser Vielzahl von digitalen Zeitspannen-Zahlenwerten;
    (d) Berechnung einer ersten Referenzzahl;
    (e) Vergleich der jeweiligen digitalen Zeitspannen-Zahlenwerte mit der ersten Referenzzahl unter Erzeugung einer ersten binären Zahl mit einer Vielzahl von Bits, welche den Balken und Zwischenräumen dieses Bereichs entsprechen, wobei die Bits den logischen Zustand "Eins" haben, falls die entsprechende digitale Zeitspannenzahl kleiner als die erste Referenzzahl ist, und wobei das Jeweilige Bit den zweiten logischen Zustand hat, falls die zugeordnete, digitale Zeitspannenzahl größer als die erste Referenzzahl ist;
    (f) Ermitteln, ob die erste binäre Zahl akzeptabel ist, und zwar anhand vorbestimmter Kriterien, gefolgt von einer Decodierung der ersten Binärzahl, falls diese akzeptabel ist; und
    (g) Einstellen des Wertes der ersten Referenzzahl um einen vorbestimmten Betrag, falls die erste Binärzahl nicht akzeptabel ist, und Wiederholung der Stufen (e) und (f).
DE3306088A 1982-04-21 1983-02-22 Verfahren und Einrichtung zum Lesen eines Balkencodes Expired - Fee Related DE3306088C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US06/370,373 US4438327A (en) 1982-04-21 1982-04-21 Bar code reading system and method

Publications (2)

Publication Number Publication Date
DE3306088A1 true DE3306088A1 (de) 1983-10-27
DE3306088C2 DE3306088C2 (de) 1995-04-27

Family

ID=23459355

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3306088A Expired - Fee Related DE3306088C2 (de) 1982-04-21 1983-02-22 Verfahren und Einrichtung zum Lesen eines Balkencodes

Country Status (5)

Country Link
US (1) US4438327A (de)
JP (1) JPS58189773A (de)
DE (1) DE3306088C2 (de)
FR (1) FR2525788B1 (de)
GB (1) GB2118752B (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0312026A2 (de) * 1987-10-13 1989-04-19 Intermec Corporation Mehrspuriger Strichkode und zugehöriges Abtastverfahren
WO1993003455A1 (en) * 1991-08-02 1993-02-18 Intermec Corporation Method and apparatus for scanning symbols

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4528443A (en) * 1982-04-21 1985-07-09 Burr-Brown Corporation Bar code reading system and method
GB2202664B (en) * 1985-10-22 1990-08-15 Garry Douglas Robb Automated service systems
US4855581A (en) * 1988-06-17 1989-08-08 Microscan Systems Incorporated Decoding of barcodes by preprocessing scan data
US5177346A (en) * 1989-12-13 1993-01-05 Computer Identics Bar code reader system for reading bar code labels with a highly specular and low contrast surface
US4992650A (en) * 1990-03-29 1991-02-12 International Business Machines Corporation Method and apparatus for barcode recognition in a digital image
JP2740418B2 (ja) * 1992-07-14 1998-04-15 富士通株式会社 バーコード読取復調方法
US5550362A (en) * 1992-11-20 1996-08-27 Intermec Corporation Method and apparatus for calibrating a bar code scanner
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
US5708261A (en) * 1995-10-02 1998-01-13 Pitney Bowes Inc. Bar code decoding with speed compensation
DE19705225A1 (de) * 1997-02-12 1998-08-20 Leuze Electronic Gmbh & Co Optoelektronischer Sensor
US6394952B1 (en) 1998-02-03 2002-05-28 Adeza Biomedical Corporation Point of care diagnostic systems
US6267722B1 (en) 1998-02-03 2001-07-31 Adeza Biomedical Corporation Point of care diagnostic systems
USD432244S (en) * 1998-04-20 2000-10-17 Adeza Biomedical Corporation Device for encasing an assay test strip
USD434153S (en) * 1998-04-20 2000-11-21 Adeza Biomedical Corporation Point of care analyte detector system
DE19843688C2 (de) * 1998-09-24 2003-04-24 Wst Steuerungstechnik Gmbh Verfahren zum Lesen eines Barcodes
JP3548025B2 (ja) * 1998-12-17 2004-07-28 富士通株式会社 バーコード読取装置および方法
DE19936440C2 (de) * 1999-08-03 2003-12-24 Leuze Electronic Gmbh & Co Kg Optoelektronische Vorrichtung
WO2013179436A1 (ja) * 2012-05-31 2013-12-05 株式会社オプトエレクトロニクス 読取装置、読取結果出力方法及びプログラム

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2231953A1 (de) * 1971-06-29 1973-01-18 Monarch Marking Systems Inc Verfahren und einrichtung zum auswerten von kodierten aufzeichnungen

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE360398B (de) * 1972-02-24 1973-09-24 Lindholm J
US3784792A (en) * 1972-03-29 1974-01-08 Monarch Marking Systems Inc Coded record and methods of and apparatus for encoding and decoding records
US4146782A (en) * 1977-08-05 1979-03-27 Process Computer Systems, Inc. Decoder system for light pen bar code reader
US4282426A (en) * 1979-05-30 1981-08-04 Ncr Corporation Slot scanning system
JPS6014829Y2 (ja) * 1980-06-13 1985-05-11 東芝住宅産業株式会社 水槽
FR2490848B1 (fr) * 1980-09-22 1986-08-29 Dassault Electronique Appareil de saisie d'informations issues de la lecture d'une inscription en code a barres

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2231953A1 (de) * 1971-06-29 1973-01-18 Monarch Marking Systems Inc Verfahren und einrichtung zum auswerten von kodierten aufzeichnungen

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0312026A2 (de) * 1987-10-13 1989-04-19 Intermec Corporation Mehrspuriger Strichkode und zugehöriges Abtastverfahren
EP0312026A3 (de) * 1987-10-13 1990-12-19 Intermec Corporation Mehrspuriger Strichkode und zugehöriges Abtastverfahren
WO1993003455A1 (en) * 1991-08-02 1993-02-18 Intermec Corporation Method and apparatus for scanning symbols
US5548108A (en) * 1991-08-02 1996-08-20 Intermec Corporation Method and apparatus for scanning symbols

Also Published As

Publication number Publication date
GB2118752B (en) 1985-10-09
GB2118752A (en) 1983-11-02
FR2525788A1 (fr) 1983-10-28
GB8310521D0 (en) 1983-05-25
US4438327A (en) 1984-03-20
JPS58189773A (ja) 1983-11-05
FR2525788B1 (fr) 1991-01-25
JPS6224836B2 (de) 1987-05-30
DE3306088C2 (de) 1995-04-27

Similar Documents

Publication Publication Date Title
DE3306088A1 (de) Verfahren und einrichtung zum lesen eines balkencodes
DE3633743C2 (de)
DE2228526C3 (de) Verfahren und Anordnung zum Lesen und Decodieren von Strichmarken-Gruppen, die Daten in codierter Form darstellen
DE3719553C2 (de) Verfahren und Vorrichtung zur Schattierungskorrektur
DE1549930C3 (de) Einrichtung zum Erkennen vorzugsweise handgeschriebener Schriftzeichen
DE2654765C3 (de) Einrichtung zum Dekodieren von Daten, die in einer vorgegebenen Anzahl abwechselnd aufeinanderfolgender Striche und Leerfelder von verschiedenen Breiten kodiert sind
DE2632206A1 (de) Lesegeraet mit lampensteuerung
DE2147896B2 (de) Gerat zum Erkennen normaler Schriftzeichen
DE2315528A1 (de) Abfuehleinrichtung
DE1549673A1 (de) Zeichenlese- und -uebertragungsvorrichtung
DE2208309C3 (de) Verfahren zur Auswertung von Informationen in Form gruppenweise zusammengefaßter Informationselemente aus einfarbig gedruckten Strichen, Anordnung zur Darstellung von Informationen zur Auswertung nach dem Verfahren und Schaltungsanordnung zur Durchführung des Verfahrens
DE2746969C2 (de) Einrichtung zum Vergleichen von Mustern
DE3622382C2 (de) Verfahren und Vorrichtung zur Verarbeitung eines Bilds zur Berechnung einer kumulativen Leuchtdichte
DE2338561A1 (de) Verfahren und vorrichtung zum identifizieren von objekten
DE3508400A1 (de) Vorrichtung und verfahren zur mustererkennung
DE3103592A1 (de) Verfahren und vorrichtung zur zeichenidentifizierung
DE2013620A1 (de) Vorrichtung zum Sichtbarmachen analog anfallender zeitabhängiger Meßgrößen
DE2064602A1 (de) Verfahren und Anordnung zur Zeichentrennung bei der maschinellen Zeichen erkennung
AT223668B (de) Verfahren und Schaltungsanordnung zur automatischen Erkennung von Schriftzeichen
DE3009907C2 (de) Speicheradressensignalgenerator für eine automatische Justiereinrichtung einer Fernsehkamera
DE1138571B (de) Zeichen-Erkennungsvorrichtung
DE3304280A1 (de) Verfahren zum darstellen eines logischen signales
DE2118791A1 (de) Verfahren und Anordnung zur Erkennung von Zeichen, insbesondere von alphanumerischen Zeichen
DE1298326B (de) Vorrichtung zum maschinellen Erkennen von Zeichen
DE3617774C2 (de) Vorrichtung zur Verarbeitung serieller Daten

Legal Events

Date Code Title Description
8127 New person/name/address of the applicant

Owner name: BURR-BROWN CORP., TUCSON, ARIZ., US

8110 Request for examination paragraph 44
D2 Grant after examination
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: INTELLIGENT INSTRUMENTATION, INC. (N.D.GES.D. STAA

8339 Ceased/non-payment of the annual fee