DE3306088C2 - Verfahren und Einrichtung zum Lesen eines Balkencodes - Google Patents
Verfahren und Einrichtung zum Lesen eines BalkencodesInfo
- 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
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
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.
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.
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.
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)
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)
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)
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 |
-
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
Cited By (3)
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 |