DE3306088A1 - Verfahren und einrichtung zum lesen eines balkencodes - Google Patents
Verfahren und einrichtung zum lesen eines balkencodesInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/01—Details
- G06K7/016—Synchronisation of sensing process
- G06K7/0166—Synchronisation of sensing process by means of clock-signals derived from the code marks, e.g. self-clocking code
Landscapes
- Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Printers Characterized By Their Purpose (AREA)
- Character Input (AREA)
- Character Discrimination (AREA)
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.
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)
- PatentansprücheEinrichtung 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 derBits 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. 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. 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. Einrichtung nach Anspruch 2, dadurch gekennzeichnet, daß die Einstelleinrichtung die erste Referenzzahl erhöht, falls die Anzahl der Bits des ersten logischenZustandes 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. Einrichtung nach Anspruch 1, dadurch gekennzeichnet, daß das Balkencode-Etikett eine Vielzahl von Zeichen umfaßt.
- 6. Einrichtung nach Anspruch 5» gekennzeichnet durch eine Einrichtung zur Errechnung einer zweiten Referenzzahl, welche einem anderen der Zeichen entspricht.
- 7. Einrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die Decodierung der ersten binären Zahl unter Bezugnahme auf eine gespeicherte Tabelle erfolgt.
- 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. 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. 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 vonBits, 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. 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. 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. 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. 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. Verfahren nach Anspruch 14, dadurch gekennzeichnet, daß eine zweite Referenzzahl für ein anderes der Zeichen errechnet wird.
- 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. Verfahren nach Anspruch 16, dadurch gekennzeichnet, daß bis zu fünf Einstellungen des Wertes der ersten Referenzzahl vorgenommen werden.
- 18. Verfahren nach Anspruch 10, dadurch gekennzeichnet, daß die Decodierung der ersten binären Zahl anhand einer 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 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. 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-330S088ner 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).
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)
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)
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 |
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 | 富士通株式会社 | バーコード読取装置および方法 |
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)
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)
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 |
-
1982
- 1982-04-21 US US06/370,373 patent/US4438327A/en not_active Expired - Fee Related
- 1982-11-19 FR FR828219388A patent/FR2525788B1/fr not_active Expired - Fee Related
- 1982-11-24 JP JP57205936A patent/JPS58189773A/ja active Granted
-
1983
- 1983-02-22 DE DE3306088A patent/DE3306088C2/de not_active Expired - Fee Related
- 1983-04-19 GB GB08310521A patent/GB2118752B/en not_active Expired
Patent Citations (1)
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)
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 |
---|---|
FR2525788A1 (fr) | 1983-10-28 |
FR2525788B1 (fr) | 1991-01-25 |
GB2118752A (en) | 1983-11-02 |
US4438327A (en) | 1984-03-20 |
DE3306088C2 (de) | 1995-04-27 |
GB8310521D0 (en) | 1983-05-25 |
GB2118752B (en) | 1985-10-09 |
JPS58189773A (ja) | 1983-11-05 |
JPS6224836B2 (de) | 1987-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3306088A1 (de) | Verfahren und einrichtung zum lesen eines balkencodes | |
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 | |
DE3633743A1 (de) | Zeichenerkennungssystem | |
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 | |
DE3508400A1 (de) | Vorrichtung und verfahren zur mustererkennung | |
DE3103592A1 (de) | Verfahren und vorrichtung zur zeichenidentifizierung | |
DE2064602A1 (de) | Verfahren und Anordnung zur Zeichentrennung bei der maschinellen Zeichen erkennung | |
AT223668B (de) | Verfahren und Schaltungsanordnung zur automatischen Erkennung von Schriftzeichen | |
DE68912557T2 (de) | Verfahren und gerät zum lesen von zeichen. | |
DE3009907C2 (de) | Speicheradressensignalgenerator für eine automatische Justiereinrichtung einer Fernsehkamera | |
DE1138571B (de) | Zeichen-Erkennungsvorrichtung | |
DE2146497A1 (de) | Segmentierungs-Vorrichtung für optische Zeichenleser | |
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 | |
DE3617774A1 (de) | Datenverarbeitungsvorrichtung fuer serielle 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 |