DE3306088C2 - Verfahren und Einrichtung zum Lesen eines Balkencodes - Google Patents

Verfahren und Einrichtung zum Lesen eines Balkencodes

Info

Publication number
DE3306088C2
DE3306088C2 DE3306088A DE3306088A DE3306088C2 DE 3306088 C2 DE3306088 C2 DE 3306088C2 DE 3306088 A DE3306088 A DE 3306088A DE 3306088 A DE3306088 A DE 3306088A DE 3306088 C2 DE3306088 C2 DE 3306088C2
Authority
DE
Germany
Prior art keywords
bar code
reference number
character
binary
code label
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 - Fee Related
Application number
DE3306088A
Other languages
English (en)
Other versions
DE3306088A1 (de
Inventor
Robert E 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.)
Texas Instruments Tucson Corp
Original Assignee
Burr Brown 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 Corp filed Critical Burr Brown 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

Die Erfindung betrifft eine Einrichtung sowie ferner ein Verfahren zum Lesen von Balkencode-Etiketten, bei denen alternierend dunkle Balken und helle Zwischenräume variabler Breite vorgesehen sind, welche numerische und alphanumerische Informationen darstellen, mit den Merkmalen des Oberbegriffs des Patentanspruchs 1 bzw. des Patentanspruchs 10.
Es sind verschiedene "Balkencodes" im Gebrauch, welche alternierende, langgestreckte, dunkle Balken und helle Zwischenräume umfassen und digitale sowie alphanumerische Codes darstellen. Beispielsweise wird der "Universal Product Code" (UPC) allgemein bei Nahrungsmitteln angewen­ det. Zum Lesen und Decodieren solcher Balkencode-Etiket­ ten werden Balkencode-Lesegeräte verwendet. Typischerwei­ se 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 rela­ tiv 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 Phototransi­ stor, empfängt das Licht, welches von der lichtemittie­ renden Diode emittiert wurde und von den hellen Zwi­ schenräumen zwischen den dunklen Balken des Etiketts re­ flektiert wird. Der Fühler umfaßt typischerweise einen einstufigen Verstärker, welcher das Ausgangssignal der photoempfindlichen Einrichtung verstärkt. Dieses Signal wird als "Fühlersignale" bezeichnet oder aber auch als "Analogsignal". Es hat typischerweise eine Amplitude von etwa 200 bis 300 mV. Vom oberen Ende des Fühlers er­ streckt sich ein flexibles Kabel zu einer Schaltung, und das Signal wird über dieses Kabel zur Schaltung übertra­ gen 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 Ab­ tastgeschwindigkeit 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 Mikroprozes­ sor-System, in dem Algorithmen zur Umwandlung des Rohda­ tensignals in binäre Zahlen ausgeführt werden. Jede die­ ser binären Zahlen entspricht einem Zeichen des Balken­ code-Etiketts und jedes Bit hat einen logischen Zustand ("1" oder "0"), welcher der Breite des Balkens oder Zwischenraums des Balkencode-Etiketts entspricht. So­ bald die binären Zahlen ermittelt wurden, können auch die entsprechenden Zeichen automatisch unter Zuhilfe­ nahme einer Tabelle ermittelt werden.
Beispielsweise ist eine gattungsgemäße Einrichtung zum Lesen eines Balkencode-Etiketts, das mindestens ein Zeichen mit einer Vielzahl von Balken und Zwischenräu­ men aufweist, aus der DE-OS 22 31 953 bekannt. Bei die­ ser vorbekannten Einrichtung kann der aus dem zeitli­ chen Durchschnittswert aller Balken bzw. Zwischenräume gewonnene Referenzwert mit verringerter Genauigkeit ge­ bildet werden, indem nicht alle Zeichen Code-Bits, d. h. alle Balken und Zwischenräume herangezogen werden. Hieraus folgt eine lediglich verringerte Genauigkeit bei verringertem Aufwand, woraus folgt, daß eine Über­ prüfung des Vergleichsergebnisses, d. h. der Binärzahl hinsichtlich ihrer Qualität nicht durchgeführt wird oder, daß bei Feststellung nicht ausreichender Güte ein entsprechend korrigierter Referenzwert eingesetzt wird. Diese Überprüfungsaufgaben können mit den aus diesen Datengruppen gebildeten Referenzwerten nicht durchge­ führt werden, da sich hierbei keine gezielte Korrektur­ verschiebung ergeben würde.
Die derzeit bekannten Balkencode-Lesegeräte, zu denen auch die Einrichtung gemäß der DE-OS 22 31 953 gehört, sind nicht genau genug. Bei einigen Balkencode-Etiket­ ten führen sie zu Fehlleseergebnissen. Bei manchen Ge­ rä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 Lese­ stabes von einem Ende zum anderen. Typischerweise und unbeabsichtigter Weise wird die Geschwindigkeit des Le­ sestabes relativ zum Balkencode-Etikett beschleunigt. Dies beruht auf der Überwindung der Schwerkraft des Arms und des Lesestabs während des Tastvorgangs. Am Ende des Abtastvorgangs ist die Geschwindigkeit des Lesestabs oft um 50% 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 hellge­ färbten Zwischenraums zum benachbarten, dunklen Balken nicht abrupt erfolgt, sondern allmählich. Ein weiterer Faktor, welcher die Genauigkeit des Balkencode-Lesege­ rätes herabsetzt, besteht in der Anwesenheit von klei­ nen Fasenfehlern der Signalkonditionierschaltung, und zwar bei der Verstärkung und beim Formen des Analogsi­ gnals niedrigen Pegels zum Zwecke der Erzeugung von Standard-Logikpegels. Die besten, herkömmlichen Lesesy­ steme sind unfähig, Balkencode-Etiketts schlechter Druckqualität mit verschwommenen Übergängen von den Zwischenräumen zu den Balken genau zu lesen oder bei einer fehlenden Konstanz der Abtastgeschwindigkeit ge­ naue Leseergebnisse zu erzeugen. Es besteht daher ein erheblicher Bedarf nach verbesserten, zuverlässigen Balkencode-Leseverfahren und -geräten.
Ausgehend von diesem Stand der Technik liegt der Erfindung demzufolge die Aufgabe zugrunde, eine gattungsgemäße Einrich­ tung und ein Verfahren zum Lesen eines Balkencode-Etiketts, das mindestens ein Zeichen mit einer Vielzahl von Bal­ ken und Zwischenräumen aufweist, derart weiterzuent­ wickeln, daß Ungenauigkeiten des Erkennungsvorgangs mit dem Balkencode-Lesegerät vermieden werden, welche ei­ nerseits durch unterschiedliche Relativgeschwindigkei­ ten zwischen dem Balkencode-Lesegerät und dem Balken­ code-Etikett während des Leseverfahrens und anderer­ seits durch ungenaue Balkencode-Etikette hervorgerufen werden.
Diese Aufgabe wird durch die Merkmale des Patentanspruchs 1 bzw. des Patentanspruchs 10 gelöst. Vorteilhafte Ausge­ staltungen des erfindungsgemäßen Verfahrens und der Ein­ richtung sind in den Unteransprüchen angegeben.
Erfindungsgemäß wird ein Verfahren und eine Einrichtung zum Lesen eines Balkencode-Etiketts geschaffen, bei dem von einem Lesestab oder einer photoempfindlichen Einrich­ tung Gebrauch gemacht wird, mit der das Balkencode- Etikett abgetastet wird. Hierdurch wird ein Analogsignal erzeugt, welches die Menge des von den Balken und Zwi­ schenrä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 Zwischen­ raums 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 ein 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 Zwi­ schenräumen des vorbestimmten Bereichs entsprechen. Jedes Bit hat den Zustand "Eins", wenn die zugeordnete, digita­ le Zeitspannenzahl größer als die Referenzzahl ist. Nun wird bestimmt, ob die Binärzahl gemäß vorbestimmten Krite­ rien akzeptabel ist. Falls die Binärzahl nicht akzeptabel ist, wird die erste Referenzzahl eingestellt. Nun werden die digitalen Zeitspannenzahlen wiederum mit den einge­ stellten 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 Rohdatensignal wird mit einer her­ kömmlichen Signalkonditionierschaltung gewonnen. Das Roh­ datensignal wird in ein Mikroprozessorsystem gegeben, in dem die Übergänge im Rohdatensignal erfaßt werden und die Zeitspannen der Impulse und der Intervalle des Roh­ datensignals gemessen werden. Ferner werden hier die ent­ sprechenden, digitalen Zeitspannensignale erzeugt und ge­ speichert. Das Mikroprozessorsystem errechnet eine Refe­ renzzahl für ein erstes Zeichen des Balkencode-Etiketts, und zwar dadurch, daß die Summe der digitalen Zeitspan­ nenzahlen des ersten Zeichens durch acht dividiert wird (Durchführung einer dreifachen Binärverschiebung). Hier­ durch wird ein Anfangswert der Referenzzahl etwa in der Mitte zwischen einer "typischen" niedrigen, digitalen Zeitspannenzahl, welche "Null" bedeutet, und einer "typi­ schen" höheren, digitalen Zeitspannenzahl, welche als "Eins" bedeutet, angenommen, und zwar bei der Tastge­ schwindigkeit, welche bei der Abtastung des ersten Sym­ bols vorliegt. Alle digitalen Zeitspannenzahlen des er­ sten Symbols werden nun mit der Referenzzahl verglichen und erhalten entweder den Wert einer logischen "Null" oder einer logischen "Eins", je nach dem, ob sie kleiner sind als die Referenzzahl oder diese übersteigen. Auf diese Weise erhält man die Binärzahl, welche eine Folge von logischen "1" und "0" darstellt und dem ersten Sym­ bol des Balkencode-Etiketts entspricht.
Mit dem erfindungsgemäßen Verfahren und der erfindungs­ gemäßen Einrichtung wird insbesondere der Vorteil er­ zielt, daß der beschriebene Vergleich und, falls erfor­ derlich, die Einstellung der Referenzzahl und der er­ neute Vergleich der digitalen Zeitspannenzahl mit der eingestellten Referenzzahl für jedes Zeichen des Eti­ ketts zu einer vorzüglichen Kompensation der normalen Änderung der Lesestabgeschwindigkeit während des Abta­ stens eines jeweiligen Balkencode-Etiketts führt. Dar­ überhinaus ist die erfindungsgemäße Einrichtung und das erfindungsgemäße Verfahren dahingehend vorteilhaft, daß Balkencode-Etiketten mit geringer Qualität in zuverläs­ siger Weise lesbar sind. Es wurde bei der Durchführung des erfindungsgemäßen Verfahrens mit der erfindungsge­ mäßen Einrichtung festgestellt, daß in mehr als 99% der Fälle genaue Leseergebnisse erzielt wurden. Mit dem erfindungsgemäßen Verfahren und der erfindungsgemäßen Einrichtung können Balkencode-Etiketten nach dem Code 39 genau gelesen werden, auch wenn diese drei- oder viermal kopiert wurden und auch wenn die Abtastung mit dem Taststift diagonal über das Etikett erfolgt.
Bei der im einzelnen beschriebenen Ausführungsform der Er­ findung handelt es sich bei dem Balkencode-Etikett um ein Etikett mit dem Code 39. Dieser erfordert, daß jedem Zei­ chen genau dreimal die logische "Eins" zukommt. Das Mikro­ prozessorsystem 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 Zei­ chen ermittelt. Falls die erste Binärzahl die logische "Eins" mehr als dreimal umfaßt, so erhöht das Mikroprozes­ sorsystem die erste Referenzzahl um 6 1/4% (durch eine einfache binäre Verschiebung; Teilen durch 16). Dann wer­ den die digitalen Zeitspannenzahlen des ersten Zeichens wiederum mit der neu eingestellten Referenzzahl vergli­ chen. 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 Ver­ fahren, 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äng­ liche Wert der ersten Binärzahl die binäre "Eins" weni­ ger als dreimal enthält, so vermindert das Mikroprozessor­ system den Anfangswert der Referenzzahl um 6,25%. Nun werden die digitalen Zeitspannenzahlen des ersten Zeichens wiederum mit dem neu eingestellten Wert der ersten Refe­ renzzahl verglichen, und es wird ermittelt, ob der gebil­ dete Wert der ersten Referenzzahl dreimal die logische "Eins" enthält. Falls erforderlich, wird dieses Verfahren wiederholt, in dem Bestreben, einen akzeptablen Wert der 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 30% 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 je­ des Zeichen des Balkencode-Etiketts errechnet und modifi­ ziert, und zwar in dem Bestreben, die Wirkung von Ände­ rungen der Tastgeschwindigkeit und eines unvollkommenen Drucks des Balkencode-Etiketts sowie etwaiger Phasenfeh­ ler, welche durch die Konditionierschaltung eingeführt werden, auf ein Minimum zu bringen. Es wird ein "Zeichen­ fenster" verwendet, welches jeweils nur ein einziges Zei­ chen des Balkencode-Etiketts erfaßt. Hierdurch werden die Wirkungen von Rauschsignalen eliminiert, welche vom Tast­ gerä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 Si­ gnalkonditionierschaltung, ansprechend auf das Ausgangs­ signal der Fig. 3B, erzeugt wird;
Fig. 4 ein Fließdiagramm des vom Mikroprozessor in der Schaltung der Fig. 2A ausgeführten Programms.
Zur Erläuterung der Erfindung wird ein weithin gebräuch­ licher 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 in Tabelle 1. Jedes Zeichen des Codes 39 besteht aus neun "Elementen". Diese neun Elemente umfassen fünf "Balken", z. B. die Balken 51, 53, 55, 57 und 59 im Zei­ chen 50 der Fig. 1A. Die fünf Balken des Zeichens sind je­ weils durch vier "Zwischenräume", nämlich die Zwischenräu­ me 52, 54, 56 und 58 getrennt. Die Breite eines jeden 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 zwi­ schen den Balken 60 bzw. 62 und dem Zwischenraum 61 dar­ gestellt. Dies veranschaulicht das zuvor erwähnte Über­ gangsproblem, welches häufig dazu führt, daß herkömmliche Balkencode-Lesesysteme ungenau gedruckte oder wiedergege­ bene Balkencode-Etiketten nicht richtig zu lesen vermögen.
Jedes breite Element, sei es nun ein Balken oder ein Zwi­ schenraum, hat die 2,2fache Breite eines schmalen Elemen­ tes (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 be­ zeichnet sind. Ferner ist ein mit der Hand bewegter Lese­ stab 7 dargestellt, welcher von der Bedienungsperson in Richtung des Pfeils 8 bewegt wird, wobei sich das untere Ende des Lesestabes 7 dicht am Balkencode-Etikett 3 befindet.
Eine Lichtemissionsdiode, eine herkömmliche, photoempfind­ liche Einrichtung und ein Verstärker sind in dem Lesestab 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 11 für das Lesestabsignal sind bekannt und im Handel erhält­ liche Komponenten von Balkencode-Lesesystemen (z. B. Inter­ mech, 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 einem Leiter 13 zu erfassen. Die periphere Zeitgeberschaltung 15 erzeugt ein Unterbrechungs­ signal auf dem IRQ-Eingang eines Mikroprozessors 21 (Syner­ tek 6502A). Die Datenbusanschlüsse des Mikroprozessors 21 und der peripheren Zeitgeberschaltung 15 sind durch acht Daten­ busleitungen 19 verbunden.
Ein Nur-Lesespeicher (ROM) 29 (integrierte Schaltung 2732) ist vorgesehen, dessen Datenbusanschlüsse mit den Daten­ busleitern 19 verbunden sind. Ein Speicher 31 mit freiem Zugriff (RAM) ist ebenfalls vorgesehen (integrierte Schal­ tung 2016P). Seine Datenbusanschlüsse sind mit den ent­ sprechenden Leitern des Datenbusses 19 verbunden. Die je­ weiligen Leiter eines Adreßbusses 25 sind mit den entspre­ chenden Adressenausgängen des Mikroprozessors 21 und den entsprechenden Adresseneingängen des ROM 29 und des Speichers 31 verbunden. Ein Decodierchip 33 (74LS42) umfaßt drei Adresseneingänge, welche mit drei Adressenausgängen des Mikroprozessors 21 verbunden sind. Die dort anstehenden Signale werden decodiert, und es werden Eingangssignale erzeugt, welche für die periphere Zeitgeberschaltung 15, den ROM 29 und den Speicher 31 sowie eine Latch-Schaltung 35 benötigt werden. Bei der Latch-Schaltung 35 kann es sich beispiels­ weise um die integrierte Schaltung 74LS244 handeln.
Acht manuelle Schalter 39 sind mit entsprechenden Eingän­ gen der Latch-Schaltung 35 verbunden, so daß die Bedie­ nungsperson manuell zwischen einer Vielzahl von verschie­ denen Typen von Balkencodes wählen kann. Die Ausgangssi­ gnale der Latch-Schaltung 35 werden vom Mikroprozessor 21 gelesen, da die entsprechenden Ausgänge mit den entspre­ chenden Leitern des-Datenbusses 19 verbunden sind. Die I/O-Anschlüsse 17 der peripheren Zeitgeberschaltung 15 ermög­ lichen es dem System 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 der Leitung 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 Zwischen­ räume, wie man leicht durch Vergleich mit Tabelle 1 verifizieren kann. Die Konditionierschaltung 11 wandelt das 200 mV-Analogsignal der Fig. 3B in eine Folge von Im­ pulsen mit Standard-Logikpegeln gemäß Fig. 3C um, wobei nun die Balken oder Zwischenräume (logisch "Null" 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 Zeitskala (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 entspre­ chenden Änderungen der Zeitskala der Fig. 3B und 3C.
Wie zuvor erwähnt, neigt der Benutzer dazu, die Geschwin­ digkeit der Lesestabbewegung zwischen dem Anfang und dem Ende des Balkencode-Etiketts 3 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ömm­ lichen Balkenlesegeräte beschränken.
Zur Vermeidung der erläuterten Probleme hinsichtlich der Änderung der Lesestabgeschwindigkeit, hinsichtlich ver­ schiedener Phasenverzögerungen in der Konditionierschal­ tung 11 und hinsichtlich verschiedener Druckungenauigkeiten des Balkencode-Etiketts 3 sammelt und speichert das System alle rohen Daten, welche auf dem Leiter 13 beim Abtasten des gesamten Balkencode-Etiketts 3 erscheinen. Die Rohdaten (in Form von Impulsen und Intervallen) werden in Zeitmessungen zwischen den Übergängen auf dem Leiter 13 umgewandelt. Die periphere Zeitgeberschaltung 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) in der peripheren Zeitgeberschaltung 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 3 interpre­ tiert. Immer wenn ein Übergang auf der Leitung 13 erscheint, ehe die Zeitschaltung der peripheren Zeitgeberschaltung 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 Zwi­ schenraum) auf dem Leiter 13 gemessen werden kann.
Diese Zählungen, welche im folgenden als "digitale Zeit­ spannenzahlen" bezeichnet werden und welche im Idealfall nur einen von zwei Werten haben, nämlich einen ersten Wert, der der logischen "Eins" entspricht, oder einen zwei­ ten Wert, der der logischen "Null" entspricht, variieren jedoch in der Praxis beträchtlich aufgrund der erläuterten Änderung der Abtastgeschwindigkeit.
Erfindungsgemäß beginnt das Balkencode-Lesesystem mit der Berechnung eines Anfangswertes einer "Referenzzeit" oder einer "Referenzzahlung", 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 er­ sten Zeichen des Balkencode-Etiketts 3 liegt. Jede gespei­ cherte, 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 lo­ gisch "Null" interpretiert, wenn die digitale Zeitspannen­ zahl 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 lo­ gische "Eins" in der binären Zahl, welche dem ersten Zei­ chen entspricht, erscheint. Wir erinnern uns nun, daß im Code 39 die logische "Eins" genau dreimal in jedem Zei­ chen erscheinen muß. Wenn die logische "Eins" weniger als dreimal erscheint, so wird der Anfangswert der Referenz­ zahl um einen kleinen Prozentsatz herabgesetzt (6,25%, erhalten durch binäres Teilen durch 16). Nun wird der er­ wähnte Vergleich der digitalen Zeitspannenzahlen des er­ sten Zeichens wiederholt, jedoch in bezug auf die modifi­ zierte und eingestellte Referenzzahl. Wenn der neue Wert der erwähnten Binärzahl die logische "Eins" bei einem Zei­ chen dreimal enthält, so wird davon ausgegangen, daß die Rohdaten dieses Zeichens korrekt interpretiert wurden. Wenn die logische "Eins" weniger als dreimal erscheint, so wird der Wert der Computer-Referenzzahl wiederum ver­ ringert. Dieses Verfahren wird wiederholt, und zwar bis zu insgesamt fünf Mal bis die logische "Eins" dreimal erscheint. Wenn nach dieser Aufwärtsveränderung der anfangs errechneten Referenzzahl um bis zu etwa 30% 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.
Wenn in ähnlicher Weise der Anfangsvergleich der neun Ab­ tastzeitspannenzählungen 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,25%), und der Ver­ gleich der neun digitalen Zeitspannenzahlen des ersten Zeichens mit der eingestellten Referenzzahl wird wieder­ holt. Dies geschieht so oft, bis die als Ergebnis des Vergleichs gebildete Binärzahl die logische "Eins" genau dreimal enthält. Wenn die logische "Eins" durch diese Ab­ wärtseinstellung um etwa 30% 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 Ab­ tastens eines jeweiligen Balkencode-Etiketts 3 führt.
Im folgenden soll unter Bezugnahme auf Fig. 4 dieses Verfahren näher erläutert werden. Das Diagramm der Fig. 4 ist ein funk­ tionelles Fließdiagramm des vom Mikroprozessor 21 durchgeführ­ ten Verfahrens zur Umwandlung des Rohdatensignals auf dem Leiter 13 in einen Code mit "hohen Pegeln", welcher den einzelnen Zeichen 5 entspricht (Gruppen von Balken und Zwischenräumen), welche bei der erfolgreichen Abtastung eines Balkencode-Etiketts 3 erhalten werden.
Gemäß Fig. 4 wird das Programm bei der Position 100 gestartet, und es folgt zunächst der Block 101. Im Block 101 spricht der Mikroprozessor 21 auf das Unterbrechungssignal an, welches von der peripheren Zeitgeberschaltung 15 an seinen Eingang IRQ ange­ legt wird, und zwar ansprechend auf jeden Übergang des auf dem Leiter 13 stehenden Signals. Dabei wird jeweils der aktuelle Inhalt der internen Zeitschaltung der peripheren Zeitgeber­ schaltung 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 3 durchgeführt, bis die interne Zeit­ einheit 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 3 gespeichert sind. Nun schreitet das Programm zum Block 102 weiter.
Im Block 102 wird der vorerwähnte Referenzzählwert für das erste, zuvor abgetastete Zeichen 5 ermittelt. Aus Grün­ den der Programmierwirtschaftlichkeit unterteilt das Programm die Gesamtheit der Abtastzählungen der neun Ele­ mente für das jeweilige Zeichen 5 durch acht, und zwar ein­ fach durch drei binäre Verschiebungen nach rechts. Dieser Wert wird nun als Anfangswert des Referenzzählwertes ver­ wendet. Das Programm tritt nun in den Block 103 ein und vergleicht einen jeden der gespeicherten digitalen Zeit­ spannenzählwerte des ersten Zeichens mit dem errechneten Referenzzählwert. Wenn der zuvor gelesene, digitale Zeit­ spannenzä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 logi­ schen Wert "Eins" zu. Das Programm tritt sodann in den Entscheidungsblock 104 ein. Hier wird die neun Bit-Binär­ ziffer 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 Tabelle 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 3.
Wenn jedoch das Ergebnis des Entscheidungsblocks 104 nega­ tiv ist, so schreitet das Programm zum Entscheidungsblock 105 fort. Hier bestimmt das Programm, ob mehr als fünf Einstellungen des anfangs errechneten Referenzzahlwertes für das erste Zeichen 5 vorgenommen wurden. Falls die Ant­ wort negativ ist, so schreitet das Programm zum Entschei­ dungsblock 106 weiter und erhöht den derzeitigen Wert der Referenzzeit für das aktuelle Zeichen, wenn in der vorer­ wähnten neun 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 21 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,25% des Ursprungswertes darstellt. Dieser Wert wird zum aktuellen Referenzzähl­ wert addiert, um eine Aufwärtsberichtigung vorzunehmen, oder subtrahiert, um eine Abwärtsberichtigung vorzunehmen. Sodann kehrt das Programm zum Block 103 zurück und ver­ gleicht wiederum eine jede der neun digitalen Zeitspan­ nenzählwerte mit dem voreingestellten Referenzzählwert, und zwar wiederum unter Erzeugung der binären Ziffern "Eins" oder "Null" aus den digitalen Zeitspannenzählwer­ ten. Wenn die vorgenommene Einstellung des Referenzzähl­ wertes zu einer positiven oder bejahenden Antwort im Ent­ scheidungsblock 104 kommt (ehe fünf Einstellungen des Referenzzählwertes des aktuellen Zeichens vorgenommen wur­ den), so wird hieraus entnommen, daß das Auslesen des ak­ tuellen Zeichens erfolgreich war, und das Programm schrei­ tet nun zum Block 108 weiter. Hier wird die jeweils zu­ letzt erhaltene neun Bit-Binärziffer des Blocks 103 in einen "höheren Code" umgewandelt, und zwar unter Bezug­ nahme auf die vorerwähnte, gespeicherte Tabelle. Wenn jedoch nach fünf Versuchen der Einstellung des Referenz­ zählwertes für das jeweils aktuelle Zeichen die korrekte Anzahl der logischen "Eins" nicht erhalten wird, so er­ hält man im Entscheidungsblock 105 eine bestätigende Ant­ wort, und das Programm schreitet zum Entscheidungsblock 109 weiter. Der Entscheidungsblock 109 des Programms be­ stimmt nun, ob das aktuelle Zeichen 5 das erste Zeichen 5 des Balkencode-Etiketts 3 ist. Wenn die Antwort im Entscheidungs­ block 109 negativ ist, so schreitet das Programm zum Block 111 weiter. Die Dekodierungssequenz wird terminiert, und es wird ein Fehler angezeigt oder die Unmöglichkeit, dieses Balkencode- Etikett 3 zu lesen. Falls jedoch die Antwort dieses Entschei­ dungsblocks 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 Bal­ kencode-Abtastung stets die Gefahr des Auftretens eines Rauschens besteht, und zwar besonders zu Beginn des Bal­ kencode-Etiketts 3. Dies beruht darauf, daß der Vorgang des Aufsetzens der Lesestiftspitze auf das Substrat des Etiketts 3 zu einem Übergang im Logikpegel der Leitung 13 führen kann. Ferner kann auch die Fläche vor Beginn des Balkencode-Etiketts 3 ausreichend dunkle Bereiche aufwei­ sen, so daß ein fehlerhaftes Übergangssignal in die Lei­ tung 13 gegeben werden kann, und zwar vor der eigentli­ chen Abtastung des Balkencode-Etiketts 3. Falls das Programm dennoch versuchen würde, diesen Übergang zu interpretie­ ren, so könnte dies zu erheblichen Schwierigkeiten füh­ ren. Erfindungsgemäß wird diese Art von Störeffekten oder Rauschen maskiert, und zwar durch Bewegen eines Zei­ chenfensters, welches zu einer gegebenen Zeit immer nur ein Zeichen 5 umfaßt, und zwar zu einer Zeit, welche weiter "in" die zuvor gesammelte und gespeicherte Liste von digi­ talen Zeitspannenzählwerten liegt, bis schließlich das Startzeichen gefunden wird. Wenn das Startzeichen nicht gefunden werden kann, so wird angezeigt, daß das derzeiti­ ge Balkencode-Etikett 3 vom Programm nicht lesbar ist. Die­ se Situation entspricht einer positiven Antwort im Ent­ scheidungsblock 110. Im Block 107 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 3 geringer Qualität getestet. Es wurde festgestellt, daß in mehr als 99% der Fälle genaue Leseergebnisse erzielt wurden. Das Balkencode-Lesesystem vermag Balkencode-Etiketten 3 nach dem Code 39 genau zu lesen, auch wenn diese drei- oder viermal kopiert wurden und auch wenn die Abtastung mit dem Taststift 7 diagonal über das Etikett 3 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 Rohdaten des des Zeichens in eine Binärziffer, beste­ hend 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 Rohdaten 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 3 kann dies auch in bezug auf einen anderen Teil des Etiketts 3 erfolgen oder in bezug auf eine Gruppe von Balken oder Zwischenräumen.
Tabelle 1

Claims (19)

1. Einrichtung zum Lesen eines Balkencode-Etiketts (3), das mindestens ein Zeichen mit einer Vielzahl von Balken und Zwischenräumen aufweist, mit
einem Lesestab (7) zur Erzeugung eines Analogsi­ gnals bei Abtastung des Balkencode-Etiketts (3), wo­ bei das Analogsignal Signalanteile umfaßt, die die von Balken und Zwischenräumen des Balkencode-Etiketts (3) reflektierte Lichtmenge wiedergeben, und die Breiten der Balken und Zwischenräume jeweils einen ersten und einen zweiten logischen Zustand repräsentieren,
einer Konditionierschaltung (11) zur Verstärkung und Formung des Analogsignals unter Erzeugung eines Datensignals mit einer Vielzahl von Impulsen, wobei die Dauer der aufeinanderfolgenden Impulse den Breiten der entspre­ chenden Balken des Balkencode-Signals und die Zeitdauer der aufeinanderfolgenden Zwischenräume zwischen den Im­ pulsen den Breiten der aufeinanderfolgenden Zwischen­ räume des Balkencode-Etiketts (3) entsprechen,
einer Zeitgeberschaltung zum Messen der Zeitspan­ ne jedes zu zumindest einem Zeichen des Balkencode-Eti­ ketts (3) gehörenden Impulses und Intervalls unter Er­ zeugung einer Vielzahl von von digitalen Zeitspannenzahlen, die dann gespeichert werden,
einem Mikroprozessor (21) zur Errechnung einer Refe­ renzzahl,
einer Vergleichseinrichtung zum Vergleichen jeder digitalen Zeitspannenzahl mit der Referenzzahl unter Erzeugung einer Binärzahl mit einer Vielzahl von Bits, die jeweils den Balken und Zwischenräumen des Zeichens zugeordnet sind, wobei ein jeweiliges Bit den ersten logischen Zustand besitzt, wenn die zugehörige digita­ le Zeitspannenzahl kleiner ist als die Referenzzahl, und ein jeweiliges Bit den zweiten logischen Zustand besitzt, wenn die zugehörige digitale Zeitspannenzahl größer ist als die Referenzzahl, und
einer Decodiereinrichtung zur Decodierung der Bi­ närzahl unter Ermittlung des zugeordneten Zeichens,
dadurch, gekennzeichnet,
daß eine Ermittlungseinrichtung vorgesehen ist, die ermittelt, ob die Binärzahl gemäß vorbestimmten Krite­ rien eine akzeptable Zahl ist,
daß die Decodiereinrichtung die Binärzahl nur dann decodiert, wenn sie als akzeptabel beurteilt ist,
daß eine Einrichtung vorhanden ist, die den Wert der Referenzzahl um einen vorbestimmten Korrekturwert verändert, falls die Binärzahl nicht akzeptabel ist, und
daß die Vergleichseinrichtung nach Korrektur der Referenzzahl die digitale Zeitspannenzahl mit der kor­ rigierten Referenzzahl vergleicht und eine entsprechend korrigierte Binärzahl erzeugt.
2. Einrichtung nach Anspruch 1, dadurch gekennzeich­ net, daß die vorbestimmten Kriterien das Erfordernis umfassen, daß die erste Binärzahl genau eine vorbe­ stimmte Anzahl von Bits umfaßt, welche den ersten logi­ schen Zustand haben.
3. Einrichtung nach Anspruch 2, dadurch gekennzeich­ net, daß die Einstelleinrichtung die erste Referenzzahl verringert, falls die Anzahl der Bits, welche den er­ sten logischen Zustand haben, in der ersten Binärzahl kleiner ist als die erste vorbestimmte Zahl, so daß, ei­ ne größere Anzahl der digitalen Zeitspannen-Zahlenwerte die eingestellte, erste Referenzzahl übersteigt und mehr Bits der ersten binären Zahl den ersten logischen Zustand haben.
4. Einrichtung nach Anspruch 2, dadurch gekennzeich­ net, 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 einge­ stellten ersten Referenzzahlenwertes liegt und eine größere Anzahl Bits der ersten binären Zahl den zweiten logischen Zustand hat.
5. Einrichtung nach Anspruch 1, dadurch gekennzeich­ net, daß das Balkencode-Etikett (3) eine Vielzahl von Zeichen umfaßt.
6. Einrichtung nach Anspruch 5, gekennzeichnet durch eine Einrichtung zur Errechnung einer zweiten Referenz­ zahl, welche einem anderen der Zeichen entspricht.
7. Einrichtung nach Anspruch 1, dadurch gekennzeich­ net, daß die Decodierung der ersten binären Zahl unter Bezugnahme auf eine gespeicherte Tabelle erfolgt.
8. Einrichtung nach Anspruch 5, gekennzeichnet durch eine Einrichtung zur Auswahl eines Zeichenfensters, das zu jeder Zeit nur ein Zeichen durchläßt, und zur Bewe­ gung dieses Zeichenfensters, so daß die Berechnung der Referenzzahlen nur auf Grundlage der digitalen Zeit­ spannenzahlenwerte erfolgt, welche in einem Zeichen vorhanden sind, das vollständig im Zeichenfenster er­ scheint, so daß Störungen durch Rauschsignale, welche außerhalb der Zeit der Abtastung der Zeichen des Bal­ kencode-Etiketts (3) erzeugt werden, eliminiert werden.
9. Einrichtung nach Anspruch 1, dadurch gekennzeich­ net, daß der Lesestab (7) zur Erzeugung eines Ana­ logsignals einen Taststift umfaßt, und daß die Zeitgeberschaltung (15) einen Zähler umfaßt, welcher mit einer vorbestimmten Geschwindig­ keit zählt, und daß der Mikroprozessor (21), die Vergleichsein­ richtung und die Einrichtung, die den Wert der Referenzzahl ver­ ändert, in einem Mikroprozessorsystem enthalten sind.
10. Verfahren zum Lesen eines Balkencode-Etiketts (3) mit den Schritten:
  • a) Erzeugung eines Analogsignals bei Abtastung ei­ nes mindestens ein Zeichen mit einer Vielzahl von Bal­ ken und Zwischenräumen aufweisenden Balkencode-Etiketts (3), wobei das Analogsignal Signalanteile umfaßt, die die von den Balken und Zwischenräumen des Balkencode- Etiketts (3) reflektierten Lichtmengen wiedergeben und wobei die Breiten der Balken und Zwischenräume einen ersten und einen zweiten logischen Zustand repräsen­ tieren,
  • b) Verstärken und Formen des Analogsignals unter Erzeugung eines Datensignals mit einer Vielzahl von Im­ pulsen, wobei die Dauer der aufeinanderfolgenden Impul­ se den Breiten der aufeinanderfolgenden Balken ent­ spricht und den Zwischenräumen zwischen den Balken des Balkencode-Etiketts (3) entsprechen,
  • c) Messen der Zeitspannen jedes Impulses und Inter­ valls des mindestens einen Zeichens des Balkencode-Eti­ ketts (3) unter Bildung einer Vielzahl von die gemesse­ nen Zeitspannen repräsentierenden digitalen Zeitspan­ nen-Zählerwerten, die nachfolgend gespeichert werden,
  • d) Berechnen einer Referenzzahl und
  • e) Vergleichen jedes digitalen Zeitspannen-Zähler­ wertes mit der Referenzzahl unter Erzeugung einer nachfolgend decodierbaren Binärzahl mit einer Vielzahl von Bits, die jeweils den Balken und Zwischenräumen des Zeichens entsprechen und den ersten logischen Zustand besitzen, wenn der zugehörige digitale Zeitspannen-Zäh­ lerwert kleiner ist als die Referenzzahl, und den zwei­ ten digitalen Zustand besitzen, wenn der zugehörigen digitale Zeitspannen-Zählerwert größer ist als die Re­ ferenzzahl, gekennzeichnet durch die Schritte:
  • f) Feststellen, ob die Binärzahl gemäß vorbestimm­ ten Kriterien eine akzeptable Zahl ist und Decodierung der Binärzahl, wenn diese akzeptabel ist, unter Ermitt­ lung des entsprechenden Zeichens, und
  • g) Korrigieren des Wertes der Referenzzahl um einen vorbestimmten Korrekturbetrag, falls die Binärzahl nicht akzeptabel ist, und Wiederholen der Schritte (e) und (f) unter Zugrundelegung der korrigierten Referenz­ zahl.
11. Verfahren nach Anspruch 10, dadurch gekennzeichnet, daß die vorbestimmten Kriterien das Erfordernis bein­ halten, daß die erste binäre Zahl genau eine erste, vorbestimmte Anzahl von Bits des ersten logischen Zu­ stands umfaßt.
12. Verfahren nach Anspruch 11, dadurch gekennzeichnet, daß bei der Einstellung der Referenzzahl diese vermin­ dert wird, falls die Anzahl der Bits des ersten logi­ schen Zustands in der ersten binären Zahl kleiner ist als die erste vorbestimmte Zahl, so daß ein größerer Anteil der digitalen Zeitspannen-Zählerwerte die einge­ stellte erste Referenzzahl übersteigt und eine grö­ ßere Anzahl von Bits der ersten binären Zahl den ersten logischen Zustand hat.
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 und eine größere Anzahl von Bits der ersten Binär­ zahl den zweiten logischen Zustand hat.
14. Verfahren nach Anspruch 10, dadurch gekennzeichnet, daß das Balkencode-Etikett (3) eine Vielzahl von Zei­ chen umfaßt, wobei die Stufe (c) für das gesamte Bal­ kencode-Etikett (3) durchgeführt wird, bevor die Stufe (d) für das erste Zeichen durchgeführt wird.
15. Verfahren nach Anspruch 14, dadurch gekennzeichnet, daß eine zweite Referenzzahl für ein anderes der Zei­ chen errechnet wird.
16. Verfahren nach Anspruch 10, dadurch gekennzeichnet, daß die erste Referenzzahl errechnet wird unter Durch­ führung einer Vielzahl von binären Verschiebungen der Summe aller digitalen Zeitspannen-Zahlenwerten des Zei­ chens, wobei der vorbestimmte Betrag der Stufe (g) die Durchführung einer Vielzahl von binären Verschiebungen der ersten Referenzzahl beinhaltet.
17. Verfahren nach Anspruch 16, dadurch gekennzeichnet, daß bis zu fünf Einstellungen des Wertes der ersten Re­ ferenzzahl vorgenommen werden.
18. Verfahren nach Anspruch 10, dadurch gekennzeichnet, daß die Decodierung der ersten binären Zahl anhand ei­ ner gespeicherten Tabelle erfolgt.
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 be­ wegt wird unter Errechnung einer Referenzzahl nur auf Basis der digitalen Zeitspannen-Zahlenwerte dieses Zei­ chens, welches vollständig im Zeichenfenster erscheint, so daß die Effekte von Rauschsignalen eliminiert wer­ den, welche außerhalb der Abtastung der Zeichen des Balkencode-Etiketts (3) zustandekommen.
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 DE3306088A1 (de) 1983-10-27
DE3306088C2 true 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
DE19705225A1 (de) * 1997-02-12 1998-08-20 Leuze Electronic Gmbh & Co Optoelektronischer Sensor
DE19936440A1 (de) * 1999-08-03 2001-03-15 Leuze Electronic Gmbh & Co Optoelektronische Vorrichtung

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
US4794239A (en) * 1987-10-13 1988-12-27 Intermec Corporation Multitrack bar code and associated decoding method
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
WO1993003455A1 (en) * 1991-08-02 1993-02-18 Intermec Corporation Method and apparatus for scanning symbols
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
US6267722B1 (en) 1998-02-03 2001-07-31 Adeza Biomedical Corporation Point of care diagnostic systems
US6394952B1 (en) 1998-02-03 2002-05-28 Adeza Biomedical Corporation Point of care diagnostic systems
USD434153S (en) * 1998-04-20 2000-11-21 Adeza Biomedical Corporation Point of care analyte detector system
USD432244S (en) * 1998-04-20 2000-10-17 Adeza Biomedical Corporation Device for encasing an assay test strip
DE19843688C2 (de) * 1998-09-24 2003-04-24 Wst Steuerungstechnik Gmbh Verfahren zum Lesen eines Barcodes
JP3548025B2 (ja) * 1998-12-17 2004-07-28 富士通株式会社 バーコード読取装置および方法
JP5970546B2 (ja) * 2012-05-31 2016-08-17 株式会社オプトエレクトロニクス 読取装置、読取結果出力方法及びプログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3811033A (en) * 1971-06-29 1974-05-14 Monarch Marking Systems Inc Coded record interpreting system
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

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19705225A1 (de) * 1997-02-12 1998-08-20 Leuze Electronic Gmbh & Co Optoelektronischer Sensor
DE19936440A1 (de) * 1999-08-03 2001-03-15 Leuze Electronic Gmbh & Co Optoelektronische Vorrichtung
DE19936440C2 (de) * 1999-08-03 2003-12-24 Leuze Electronic Gmbh & Co Kg Optoelektronische Vorrichtung

Also Published As

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

Similar Documents

Publication Publication Date Title
DE3306088C2 (de) Verfahren und Einrichtung zum Lesen eines Balkencodes
DE3633743C2 (de)
DE2801536C2 (de) Zeichenformkodiervorrichtung
DE3013833C2 (de) Vorrichtung zur Prüfung eines auf einem Gegenstand befindlichen Musters auf Fehler
DE3719553C2 (de) Verfahren und Vorrichtung zur Schattierungskorrektur
DE833868C (de) Elektrische Stromkreise fuer Rechenmaschinen
DE3219810A1 (de) Logischer analysator
DE2354723A1 (de) Verfahren und vorrichtung zum identifizieren von objekten
DE3326583C2 (de)
DE3322443C2 (de)
DE2509353A1 (de) Verfahren und vorrichtung zur gewinnung einer einem muster entsprechenden information
DE2147896B2 (de) Gerat zum Erkennen normaler Schriftzeichen
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
DE1774314B1 (de) Einrichtung zur maschinellen zeichenerkennung
DE2521325A1 (de) Druckeinrichtung zum gesteuerten ausdrucken von daten
AT223668B (de) Verfahren und Schaltungsanordnung zur automatischen Erkennung von Schriftzeichen
DE3304280C2 (de)
DE3036737C2 (de) Anordnung zum Erzeugen eines Lichtstärkesteuersignals für einen Videoverstärker eines Datensichtgerätes
DE1499394B2 (de) Anordnung zum messen der groesse von zeichen
DE19531036C2 (de) Analog/Digital-Wandler
DE2118791A1 (de) Verfahren und Anordnung zur Erkennung von Zeichen, insbesondere von alphanumerischen Zeichen
DE2119555A1 (de) Gerät zum Erkennen graphischer Symbole
DE3029839C2 (de)
DE3039067A1 (de) Verfahren zur pruefung von gedruckten schaltungsplatinen
DE2513605A1 (de) Verfahren und anordnung zur selektiven abtastung eines balkencode

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