DE3711855A1 - Verfahren und system zum lesen von in balkencodesymbolen codierter information - Google Patents
Verfahren und system zum lesen von in balkencodesymbolen codierter informationInfo
- Publication number
- DE3711855A1 DE3711855A1 DE19873711855 DE3711855A DE3711855A1 DE 3711855 A1 DE3711855 A1 DE 3711855A1 DE 19873711855 DE19873711855 DE 19873711855 DE 3711855 A DE3711855 A DE 3711855A DE 3711855 A1 DE3711855 A1 DE 3711855A1
- Authority
- DE
- Germany
- Prior art keywords
- arrangement
- bar code
- pulses
- transitions
- data
- 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/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
- G06K7/1404—Methods for optical code recognition
-
- 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/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/10544—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum
- G06K7/10821—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum further details of bar or optical code scanning devices
- G06K7/10861—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum further details of bar or optical code scanning devices sensing of data fields affixed to objects or articles, e.g. coded labels
-
- 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
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Electromagnetism (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Toxicology (AREA)
- Facsimile Scanning Arrangements (AREA)
- Length Measuring Devices By Optical Means (AREA)
- Automatic Analysis And Handling Materials Therefor (AREA)
Description
Die vorliegende Erfindung betrifft ein Verfahren und ein System
zum Lesen von in Balkencodesymbolen codierter Information bei
sich schnell ändernder Lesegeschwindigkeit.
Da sich Balkencodes für eine Vielzahl von Dateneingabe-,
Identifikations- und Programmierungserfordernisse gut eignen,
gewinnt die Anwendung von Abtasttechniken zur Wiedergewinnung
von Information aus maschinenlesbaren Etiketten, Abzeichen,
Dokumenten usw. in einem weiten Bereich von Anwendungsfällen
Bedeutung. Daraus folgt, daß Balkencodesysteme unter Ausnutzung
optischer Abtasttechniken den Bedarf für schnelle genaue
Dateneingaben wachsen lassen. Die leichte Verfügbarkeit von
Mikroprozessoren und zugehörigen Systemen zur Datenverarbeitung
vereinfacht die Decodierung von in einem Balkencode-Format
vorliegender Information und deren Aufbereitung für die
Übertragung zu zugehörigen Datennutzungsgeräten. Weiterhin sind
sehr genaue Balkencodesysteme verfügbar, die in Geräten
Verwendung finden, in denen eine entsprechend hohe Genauigkeit
bei der Identifizierung von Gegenständen erforderlich ist, auf
denen der Balkencode aufgedruckt ist. Die gebräuchlichste Art
von in einem Balkencode gespeicherten Daten ist daher eine
Gegenstands-Identifikationsinformation, die für
Inventarisierungen, Arbeitsabläufe, Materialverteilungen und
andere Materialdispositionsfunktionen verwendet wird. In diesen
Anwendungsfällen kann das Balkencodesymbol eine Produktnummer,
eine Seriennummer oder eine alphanumerische Beschreibung des
Gegenstandes repräsentieren.
Im Grundsatz werden Balkencodedaten als eine Folge von auf ein
Medium aufgedruckten Balken und Abständen gespeichert, wobei
der Balkencode durch Bewegung eines kleinen Lichtpunktes über
die Balken und Abständen bei glatter kontinuierlicher (d. h.,
konstanter) Abtastbewegung abgetastet wird.
Das Ausgangssignal der Abtasteinrichtung wird durch die
Differenz des Reflexionsvermögens der Balken und Abstände
festgelegt. Die im Balkencodesymbol gespeicherten Daten werden
durch Bewegung des Lichtpunktes des optischen Abtasters über
das Symbol oder durch die Bewegung des Symbols relativ zum
Lichtpunkt gelesen.
Generell können die Abtasteinrichtungen feststehende oder
bewegliche Abtasteinrichtungen sein, wobei von Hand oder durch
Maschinen gehaltene Abtasteinrichtungen vorkommen. Bei
beweglichen Abtasteinrichtungen kann die Relativbewegung
zwischen Abtasteinrichtung und Symbol manuell durch Bewegung
eines in der Hand gehaltenen Stabes oder automatisch in einem
Fördersystem realisiert werden, welche das Symbol an einem
festen Lichtstrahl in einem Lichtstrahlsystem vorbei führt.
Dabei wird das Symbol über einen abtastenden Lichtstrahl oder
in einem durch eine Maschine gehaltenen Stabsystem, in dem die
Maschine den Stab mechanisch am Symbol vorbei bewegt,
abgetastet. In derartigen Abtastsystemen ist eine im
wesentlichen glatte und konstante Abtastgeschwindigkeit
erforderlich, um das Balkencodesymbol zuverlässig zu lesen.
Sind die Daten als eine relativ konstante serielle Folge von
Datenimpulsen gelesen, so werden sie durch einen Decoder in
durch Computer lesbare Daten überführt, auf Fehler überprüft
und sodann zur Weiterverwendung zu einem Zentralcomputer
übertragen.
Typischerweise überführen Balkencode-Lesesysteme breite und
schmale Balken- (und Abstands-) information in eine digitale
Zeitinformation, in welcher die Balkencodeinformation mit einer
glatten kontinuierlichen Bewegung abgetastet werden. Diese
Lösung führt jedoch dann nicht zu einem zuverlässigen Lesen,
wenn die Abtastgeschwindigkeit sich schnell ändert, da die
Geschwindigkeitsänderungen zu großen Zeitänderungen der
zugehörigen Zeitperioden führen, welche breite Balken und
Abstände sowie schmale Balken und Abstände identifizieren, so
daß die wahren Zeitlängen der Balken und Abstände in
Bewegungsrichtung verdeckt werden. Bewegt sich die
Abtasteinrichtung beispielsweise mit einer Geschwindigkeit
unter der Nenngeschwindigkeit, so kann ein schmaler Balken
leicht als breiter Balken gelesen werden, während bei einer
Geschwindigkeit oberhalb der Nenngeschwindigkeit ein breiter
Balken leicht als schmaler Balken detektiert werden kann.
Daraus folgt, daß beispielsweise in heutigen Systemen mit von
Hand gehaltenen Lesestäben die Bedienungsperson zur
Realisierung einer glatten kontinuierlichen Bewegung bei der
Abtastung der Balkencodeinformation angehalten werden muß, da
sonst ungültige Daten bei der Auslesung des Symbols erzeugt
werden. Entsprechend werden auch heutige Systeme mit durch eine
Maschine gehaltenen Lesestäben sowie Lichtstrahl-Abtastsysteme
zur Sicherstellung einer zuverlässigen Auslesung des Symbols
mit glatter kontinuierlicher Abtastgeschwindigkeit betrieben.
Es gibt jedoch Anwendungsfälle, beispielsweise bei einem durch
eine Maschine gehaltenen beweglichen Lesestab, bei denen es für
den Leseabtastmechanismus zweckmäßig ist, daß er vom Stillstand
auf eine hohe Geschwindigkeit schnell beschleunigt und/oder von
einer hohen Geschwindigkeit auf Stillstand schnell abbremst,
wenn eine Balkencodeinformation abgetastet werden soll. In
derartigen Systemen bewegt sich der Balkencode-Lesemechanismus
nicht mit der für heutige Balkencode-Lesesysteme notwendigen
glatten kontinuierlichen Bewegung, wobei sich schnell ändernde
Abtastgeschwindigkeiten zu einer unzuverlässigen Auslesung der
Balkencodeinformation führen.
Der vorliegenden Erfindung liegt daher die Aufgabe zugrunde,
eine Möglichkeit zur zuverlässigen Auslesung von
Balkencodeinformation unabhängig von Änderungen der
Abtastgeschwindigkeit während des Ausleseprozesses anzugeben.
Diese Aufgabe wird bei einem Verfahren der eingangs genannten
Art durch die Merkmale des kennzeichnenden Teils insbesondere
des Patentanspruchs 1 gelöst.
Ein System der eingangs genannten Art löst die genannte Aufgabe
durch die Merkmale des kennzeichnenden Teils insbesondere des
Patentanspruchs 15.
Erfindungsgemäß werden die vorstehend diskutierten Nachteile
heutiger Balkencode-Lesesysteme durch eine
Balkencode-Lesetechnik vermieden, mit der Balkencodeinformation
auch bei Abtastung eines Balkencodesymbols mit sich schnell
ändernden Geschwindigkeiten zuverlässig gelesen werden kann. Zu
diesem Zweck wird im erfindungsgemäßen System das Zeitelement
aus der Balkencodedaten-Auslesetechnik eliminiert, wodurch die
Breiten der Balken und Abstände durch die Zahl von
Tachometerimpulsen repräsentiert wird, welche zwischen
aufeinanderfolgenden Grenzen, d. h., während jeder durch
Übergänge definierten Datenzelle gespeichert werden.
Erfindungsgemäß ist daher ein Balken oder ein Abstand eine zu
messende Abmessung bzw. Strecke, wobei die Periode der
Tachometerimpulse die Meßstreckeneinheit definiert, die zur
Messung der Balken- oder Abstandsabmessung verwendet wird. Die
Periode zwischen Tachometerimpulsen ändert sich dabei invers
mit der Abtastgeschwindigkeit, d. h., sie ist eine inverse
Funktion der Abtastgeschwindigkeit. Daraus folgt, daß die
Zeitdimension durch Zählung der Anzahl von Tachometerimpulsen,
welche zwischen Balkenübergängen auftreten, aus dem Leseprozeß
eliminiert wird.
Ein Tachometergenerator liefert dabei eine Folge von Impulsen,
welche ein Maß für die Geschwindigkeit des Balkencodelesers bei
der Abtastung eines Balkencodesymbols in Abtastrichtung ist.
Das Datensignal vom Balkencodeleser wird in einen
Übergangsdetektor eingespeist, welcher Übergangsimpulse für
jede Grenze zwischen einem Balken und einem Abstand sowie einem
Abstand und einem Balken des Symbols liefert. Ein Datenzähler
zählt die Folge von Impulsen, welche zwischen
aufeinanderfolgenden Übergängen auftreten und liefert einen
akkumulierten Zählwert für jede Datenzelle. Beispielsweise kann
ein breiter Balken oder Abstand durch 30 Tachometerimpulse
repräsentiert sein, während ein schmaler Balken oder Abstand
durch eine vergleichsweise kleinere Anzahl von 10
Tachometerimpulsen repräsentiert sein kann. Die
aufeinanderfolgenden, die Datenzellen breiten repräsentierenden
Zählwerte werden in entsprechende Adreßplätze in einem Speicher
geladen, bis Daten für ein vollständiges Symbol im Speicher
vorhanden sind. Die Daten werden mittels
Mikroprozessorsteuerung aus dem Speicher ausgelesen und es
erfolgt eine Festlegung durch einen Vergleich der Zählwerte mit
entsprechenden vorgesetzten Zählwerten, ob eine Datenzelle
breit oder schmal ist. Die vollständige Sequenz von Balken- und
Abstandsdaten jedes Symbols wird sodann durch den
Mikroprozessor decodiert, um die in den Symbolen enthaltenen im
Balkencode codierten Zahlen zu erhalten.
Wie im folgenden noch ausgeführt wird, muß die Folge von
Impulsen nicht unbedingt durch einen Tachometer erzeugt werden.
Es können beispielsweise auch Meßräder verwendet werden, welche
Impulse mit einer Folgefrequenz erzeugen, die ein Maß für ihre
Bewegung über ein Medium ist. In Balkencodeformaten kann die
Information auch lediglich in Balken, lediglich in Abständen
oder sowohl in Balken und Abständen enthalten sein. Die
Begriffe Balken und Abstände werden daher gleichwertig
gebraucht. Weiterhin braucht eine gegebene
Balkencode-Codierungstechnik keine leicht identifizierbaren
Übergänge an den Grenzen jeder Datenzelle, d. h., eines Balkens
oder eines Abstandes zu gewährleisten. Es können auch Grenzen
an anderen Teilen des Barcodesymbols realisiert werden. Wie im
folgenden noch beschrieben wird, ist erfindungsgemäß auch die
Ausnutzung der letztgenannten Codierungstechnik möglich.
Darüber hinaus ist die Erfindung sowohl im Software- als auch
im Hardware-Bereich, in dem sie im folgenden beispielhaft
beschrieben wird, realisierbar.
Weitere Ausgestaltungen sowohl des erfindungsgemäßen Verfahrens
als auch des erfindungsgemäßen Systems sind Gegenstand weiterer
Ansprüche.
Die Erfindung wird im folgenden anhand von in den Figuren der
Zeichnung dargestellten Ausführungsbeispielen näher erläutert.
Es zeigt
Fig. 1 eine Blockdarstellung eines Kassettenschrank mit in
X- und Y- angeordneten Kassetten, wie er in einem
automatisierten Mehrfach-Kassettenabspielgerät
Verwendung findet, wobei die erfindungsgemäße
Balkencode-Lesetechnik verwendbar ist. Dabei sind
eine X, Y-Achsen-Kassettenentnehmervorrichtung sowie
zugehörige X, Y-Entnehmertreiberschaltungen
vorgesehen;
Fig. 2 ein Blockschaltbild einer Ausführungsform eines
erfindungsgemäßen Systems für ein Gerät nach Fig. 1;
Fig. 3A bis 3D jeweils ein Diagramm eines Teils von codierten
Balkencodedaten sowie zugehörigen Signalverläufen;
Fig. 4A, 4B jeweils ein Blockschaltbild von Teilen des
Blockschaltbildes nach Fig. 2 im einzelnen;
Fig. 5 ein Schaltbild einer Fensterdetektoranordnung nach
Fig. 4A;
Fig. 6A bis 6E jeweils ein Diagramm, aus dem das Ende und der
Beginn aufeinanderfolgender Balkencodesymbole,
entsprechende Stop- und Startränder sowie zugehörige
Fenstergeneratorsignale ersichtlich sind;
Fig. 7 ein Schaltbild einer Byte-Folgesteueranordnung gemäß
Fig. 4A;
Fig. 8A bis 8G jeweils ein Diagramm eines
Byte-Folgesteuer-Zeittaktes;
Fig. 9A bis 9F jeweils ein Diagramm eines
Status-Byte-Schreibfolgesteuer-Zeittaktes; und
Fig. 10 ein Flußdiagramm der Decodierungsfunktion eines
Mikroprozessors nach Fig. 4B.
Bei konventionellen Balkencodesystemen besteht das vollständige
Balkencodesymbol aus Start- und Stoprändern, Start- und Stop-Zeichenmustern,
den Daten- oder Informationszeichen sowie ggf.
einem Prüfsummenzeichen. Die Start- und Stopränder enthalten
keine gedruckten Zeichen bzw. Balkeninformation und werden
beispielsweise durch einen weißen Bereich gebildet, der weit
länger als ein breiter Abstand ist, wodurch dem Balkencode-Decoder
normalerweise eine Information darüber enthält, daß die
Abtasteinrichtung ein Balkencodesymbol zu lesen beginnt oder
gerade eine Abtastung beendet hat. Das Startzeichen, das dem
ersten Zeichen der Balkencodeinformation voraus geht, ist ein
spezielles Balken-/Abstandsmuster, das zur Identifizierung des
Beginns eines Balkencodesymbols verwendet wird. Das Stopzeichen
ist jedenfalls ein spezielles Balken-/Abstandsmuster, das der
Anzeige des Endes des Symbols dient. Die
Balken-/Abstandsmuster, die zur Codierung der Start- und
Stopzeichen verwendet werden, besitzen generell keine
Start-Stop-Symmetrie, um es möglich zu machen, die Start- und
Stopzeichen auswechselbar zu verwenden, weil der
Decodierungsprozeß zwischen einer Abtastung in Vorwärts- und
Rückwärtsrichtung unterscheiden kann. Die Start- und
Stopzeichen ermöglichen daher eine bidirektionale Abtastung
eines Symbols.
Die Daten- bzw. Informationszeichen definieren die generelle
Struktur des Balkencodesymbols und sind in den verschiedenen in
der Industrie entwickelten Balkencodes unterschiedlich
realisiert. Die verschiedenen zur Verfügung stehenden
symbolischen Darstellungen sind gemäß der verwendeten
Codierungstechnik, dem zur Verfügung stehenden Zeichensatz
(numerisch oder alphanumerisch) und der Informationsdichte bei
einer speziellen Modulbreite gruppiert. Die folgende Tabelle 1
zeigt eine Anzahl von gebräuchlichen Balkencodes und listet
diese in Form der verwendeten Codierungstechnik und der
codierten Daten auf. Bei den beiden angegebenen
Codierungstechniken handelt es sich um eine
Modulbreitencodierung und eine NRZ-Codierung. Die
Modulbreitencodierung wird in den meisten industriellen
Balkencodes verwendet, während kommerzielle Balkencodes
gewöhnlich die NRZ-Codierung verwenden.
Die zur Darstellung von Binärdaten verwendete Technik
unterscheidet zwischen Modulbreitencodierung und NRZ-Codierung.
In der Modulbreitencodierung repräsentiert ein schmales Element
(Balken oder Abstand) Daten, deren logischer Wert Null ist.
Daten mit einem logischen Wert von Eins werden als breites
Element gedruckt, dessen Breite typischer Weise zwei oder drei
Mal so groß wie die des schmalen Elementes ist. Es sind somit
definierte Druckübergänge von schwarz nach weiß oder weiß nach
schwarz vorhanden, welche jede Binärdatenzelle von ihrer
Nachbarin trennen. Andererseits codiert die
NRZ-Codierungstechnik Binärdaten in dem zugehörigen
Reflektionsvermögen der Balken und der Abstände. Hier sind
Daten mit dem logischen Wert Null als reflektierende Fläche und
Daten mit dem logischen Wert Eins als nicht reflektierende
Fläche gegeben. Zwischen Bits ist kein Druckübergang vorhanden,
es sei denn, der logische Zustand ändert sich.
Weiterhin enthält jedes Datenzeichen in einer 2 von 5
Codefamilie gemäß Tabelle 1 zwei breite Elemente pro
Fünfelementzeichen (daher der Name 2 von 5). Der Code verwendet
schwarze Balken und weiße Abstände mit numerischen
Zeichensetzen (0-9) und mit einer Binärcodierung von Eins für
breite und eine Binärcodierung von Null für schmale Elemente.
Schmale Abstände zwischen den Zeichen trennen die Zeichen in
einem nicht verschachtelten Code, während im verschachtelten
Code die Abstände zwischen den Zeichen fehlen. Wie bereits
ausgeführt, sind an den Grenzen der Balken und Abstände in der
Modulbreitencodierung definierte Druckübergänge vorhanden. In
der NRZ-Codierung ist jedoch zwischen Elementen oder
Datenzellen in einem Zeichen kein Druckübergang vorhanden, es
sei denn, es findet eine logische Änderung statt. In diesen
Techniken sind Abstände zwischen den Zeichen vorhanden, die
jedoch definierte Übergänge erzeugen. Erfindungsgemäße sind
daher die Zeichenabstände als inverse Funktion der
Abtastgeschwindigkeit in der gleichen Weise detektierbar, wie
die Datenzellenlängen bei der beispielhaft beschriebenen
Modulbreitencodierung. Die Datenelemente in den Zeichen einer
NRZ-Codierung können dann im Zeichen detektiert werden.
Erfindungsgemäß erfolgt die Darstellung von Datenzellen,
Zeichen und/oder den Balkencodesymbol-Grenzen bei der
Modulbreitencodierung oder der NRZ-Codierung durch die Anzahl
von zwischen unterscheidbaren Übergängen gezählten Impulsen,
wobei die Periode der Impulse die Meßabstandseinheit definiert,
die eine inverse Funktion der Abtastgeschwindigkeit ist und die
zur Messung der Breiten der Datenzellen in Abtastrichtung
verwendet wird.
Das erfindungsgemäße Verfahren und das erfindungsgemäße System
sind in einem automatisierten Videoband-Abspielgerät für
Kassetten verwendbar und ermöglichen die Identifizierung von
256 möglichen Videokassetten, auf denen beispielsweise
Werbematerial aufgezeichnet ist, das durch Sendestudios
ausgesendet wird. Zwar werden im folgenden das erfindungsgemäße
Verfahren und das erfindungsgemäße System anhand eines Gerätes
der vorgenannten Art und in Verbindung mit einem speziellen
Tachometersystem zur Festlegung der Bewegungsgeschwindigkeit
der optischen Abtasteinrichtung beschrieben. Das Verfahren und
das System sind jedoch für alle verfügbaren Balkencodes mit
Modulbreiten- oder NRZ-Codierung verwendbar, wie sie oben in
der Tabelle 1 angegeben sind. Weiterhin sind sie auch in
Verbindung mit den oben erläuterten stationären und/oder
beweglichen optischen Abtastsystemen verwendbar. Zur
Vereinfachung der Beschreibung werden das erfindungsgemäße
Verfahren und das erfindungsgemäße System in Verbindung mit dem
verschachtelten 2 von 5 Code, einem Balkencode mit
Modulbreitencodierung beschrieben. Sie sind jedoch auch für
andere Balkencodes verwendbar.
Fig. 1 zeigt ein elektromechanisches Gerät, in dem ein
erfindungsgemäßes Balkencode-Lesesystem verwendbar ist, wobei
es sich um ein Videoband-Kassettenabspielgerät 12 zur
automatischen Entnahme und Abspielung von in einem
Kassettenschrank 14 aufgehobenen Kassetten handelt. Der
Kassettenschrank 14 umfaßt X-Zeilen 16 und Y-Zeilen 18 von
Fächern 20 für die Aufbewahrung von Videokassetten 22. Auf
einem freiliegenden Ende der Kassetten befindet sich ein
Identifikations-Balkencodesymbol 24 in Form eines vorgedruckten
Balkencodeetiketts.
Eine X, Y-Kassettenentnahmevorrichtung enthält einen
Kassettenaufnehmer 26, der beweglich auf einem bewegbaren
vertikalen Element 28 montiert ist und auf diesem zur Bewegung
in Y-Richtung durch einen Antrieb gleitet. Der
Kassettenaufnehmer 26 sowie das halternde vertikale Element 28
können durch einen entsprechenden Antrieb unabhängig in
X-Richtung bewegt werden. Somit kann der Kassettenaufnehmer 26
in X-Richtung längs einer einzigen Zeile von Fächern durch
Bewegen des Elementes 28 in Horizontalrichtung bewegt werden
oder er kann durch gleichzeitige Bewegung sowohl in X- als auch
in Y-Richtung zu einem speziellen Fach des Schranks 14 geführt
werden.
Auf dem Kassettenaufnehmer ist eine optische
Balkencode-Abtasteinrichtung 34 montiert, die beispielsweise
einen nicht mit einem Objekt in Kontakt tretenden Lichtstab der
eingangs genannten Art aufweist, welcher zur Abtastung der
Balkencodesymbole auf einer einzigen Kassette oder einer Zeile
aufeinanderfolgender Kassetten in X-Richtung dient. Das
vertikale Element 28 und damit der Kassettenaufnehmer 26 sowie
die Balkencode-Abtasteinrichtung 34 werden in beiden Richtungen
auf der X-Achse durch eine geeignete Einrichtung horizontal
bewegt, wobei es sich beispielsweise um eine Trommel 36 zur
Erzeugung einer Bewegung eines Kabels 37 handeln kann, das um
eine Umfangsnut geführt ist. Dieses Kabel ist über (nicht
dargestellte), am Fachschrank befestigte Rollen mit beiden
Enden an den Enden des vertikalen Elementes 28 befestigt. Die
Trommel ist mechanisch mit einer Welle eines Antriebsmotors 38
gekoppelt, welcher seinerseits durch einen
Motortreiberverstärker 44 angesteuert wird. Dieser Verstärker
ist über eine X-Servoschaltung 42 mit einer geeigneten
Spannungsversorgung 40 gekoppelt. Zusätzlich zu den üblichen
Servofunktionen liefert die X-Servoschaltung ein logisches
Pegelrichtungssignal auf eine Leitung 45, das in einer
Leseschaltung nach Fig. 4 auch zur Anzeige der Richtung der
Abtastbewegung verwendet wird. Ein mit dem Motor 38 gekoppelter
Tachometer 46 liefert über eine X-Tachometerleitung 48 eine
entsprechende Folge von X-Tachometerimpulsen, die ein Maß für
die Motordrehung und damit für die Bewegungsgeschwindigkeit der
Balkencode-Abtasteinrichtung 34 in X-Richtung sind.
Erfindungsgemäß definiert die Periode zwischen den
Tachometerimpulsen die Meßabstandseinheit, welche eine inverse
Funktion der Abtastgeschwindigkeit ist. Ein typischer
Tachometer 46 mit hoher Auflösung kann größenordnungsmäßig 2000
Tachometerimpulse pro Motorumdrehung liefern.
Die Anordnung aus Kassettenaufnehmer 26 und
Balkencode-Abtasteinrichtung 34 wird durch eine geeignete
Einrichtung der bereits beschriebenen Art in Vertikalrichtung
nach oben oder nach unten bewegt. Es kann sich dabei ebenfalls
wieder um ein um eine Trommel 50 geführtes Kabel 49 handeln,
das an beiden Enden mit dem Kassettenaufnehmer 26 verbunden
ist. Ein Motor 52 dreht die Trommel unter Steuerung durch einen
Motortreiberverstärker 54, eine Y-Servoschaltung 56 und die
Spannungsversorgung 40. Ein an den Motor 52 gekoppelter
Y-Tachometer 58 liefert über eine Y-Tachometerleitung 60 eine
Folge von Y-Tachometerimpulsen, die ein Maß für die Bewegung
des Aufnehmers 26 in Y-Richtung sind. Da die
Balkencode-Abtasteinrichtung 34 die Balkencodesymbole bei
Abtastung in beiden Richtungen längs der X-Achse, nicht jedoch
bei Bewegung in X-Richtung liest, sind der X-Tachometer 46 und
die zugehörigen Komponenten erfindungsgemäß wesentlich.
Ersichtlich können die Symbole bei vertikal orientierten
Kassetten auch in Y-Richtung abgetastet werden, wobei dann der
Y-Tachometer 46 die Bewegungsgeschwindigkeitsinformation
liefert.
Die in den Symbolen der Kassetten codierten Balkencodedaten
werden durch die Balkencode-Abtasteinrichtung 34 gelesen und
als Signal mit breiten und schmalen Impulsen entsprechend den
breiten der Balken und Abständen der Balkencodesymbole auf eine
Balkencode-Datenleitung 62 gegeben. Sind die Kassetten
identifiziert und entsprechenden Fächern zugeordnet, so kann
ihre Lage durch Führen der Balkencode-Abtasteinrichtung 34 über
die Kassetten geprüft werden, wobei die entsprechenden
Balkencodesymbole gelesen werden. Da die
Betriebsgeschwindigkeit kritisch ist und da sich der Aufnehmer
26 und damit die Abtasteinrichtung 34 mit Geschwindigkeiten von
Null bis zu sehr hohen Geschwindigkeiten, beispielsweise
2,54 m/s bewegen müssen, bewegt sich die Abtasteinrichtung 34
im Bereich von 0 bis zu 2,54 m/s mit schnell ändernder
Geschwindigkeit, wenn sie die verschiedenen Kassetten
überläuft.
Das erfindungsgemäße Balkencode-Lesesystem gewährleistet eine
zuverlässige Auslesung der Symbole durch Eliminierung des
Zeitelementes aus der Auslesetechnik. Zu diesem Zweck sind die
X-Tachometerimpulse eine inverse Funktion der Geschwindigkeit
der Balkencode-Abtasteinrichtung 34, wobei die Breiten der
Balken und Abstände, d. h., die gemessenen Strecken dadurch
unterschieden werden, wieviele Tachometerimpulse auftreten,
wenn die Abtasteinrichtung 34 einen breiten Balken oder Abstand
abtastet, und wieviel Impulse auftreten, wenn er einen schmalen
Balken oder Abstand abtastet. Die Zeitdimension ist daher aus
dem Ausleseprozeß eliminiert.
Dafür zeigt Fig. 2 das erfindungsgemäße Konzept, bei dem das
Datensignal auf der Leitung 62 und das X-Tachometersignal auf
der Leitung 48 nach Fig. 1 als entsprechende Eingangssignale in
die Schaltung nach Fig. 2 eingespeist werden. Das Datensignal
auf der Leitung 62 wird in einen Datenübergangsdetektor 100
sowie in einen Speicher 102 mit wahlfreiem Zugriff (RAM) als
ein Bit eines digitalen Datums eingespeist, das das Datum als
Balken oder Abstand identifiziert, wie dies anhand von Fig. 4
noch beschrieben wird. Der Übergangsdetektor 100 ist an eine
Byte-Steuerfolgeschaltung 104 und weiterhin als Taktgeber an
einen Adreßzähler 106 sowie als Rücksetzgeber an einen
Datenzähler 108 angekoppelt. Das X-Tachometersignal auf der
Leitung 48 wird in die Byte-Folgesteuerschaltung 104 und als
Takt in den Datenzähler 108 eingespeist. Die
Byte-Folgesteuerschaltung 104 liefert verschiedene
Steuersignale zur Synchronisation des Ladens von Daten, zum
Rücksetzen des Zählers sowie zur Freigabe der Schreibfunktion
des RAM 102, wobei sie Puffersteuersignale für einen
Datenpuffer 110 und einen Adreßpuffer 112 sowie ein
Schreibsteuersignal für das RAM 102 liefert. Der Datenzähler
zählt die X-Tachometerimpulse, welche zwischen
aufeinanderfolgenden Datenübergängen auftreten, wobei ein
Datenübergang zwischen jedem Balken/Abstand oder Abstand/Balken
auftritt.
Die Fig. 3A bis 3D zeigen die durch die
Balkencode-Abtasteinrichtung 34 bei der Abtastung von Balken
und Abständen im verschachtelten 2 von 5 Balkencode erzeugten
Signale, wobei Information sowohl in den Balken als auch in den
Abständen enthalten ist und Zwischenzeichenabstände eliminiert
sind. Fig. 3B zeigt das Ausgangssignal der die Folge von Balken
und Abständen gemäß Fig. 3A lesenden
Balkencode-Abtasteinrichtung 34. Jeder Balken und Abstand
definiert eine entsprechende Datenzelle. Jede positive und
negative Flanke des Datensignals wird durch den
Übergangsdetektor 100 detektiert, welcher für jeden Übergang
einen Impuls gemäß Fig. 3C liefert. Das X-Tachometersignal auf
der Leitung 48 ist in Fig. 3D dargestellt, worin die Anzahl der
Tachometerimpulse, die während jedes breiten oder schmalen
Balken oder Abstandes zwischen Übergangsimpulsen, d. h., einer
Datenzelle, auftreten, durch den Datenzähler 108 gezählt wird.
Der Übergangsdetektor 100 liefert ein Rücksetzsignal zum
Löschen des Datenzählers 108, wonach dieser die
Tachometerimpulse speichert, welche während einer Datenzelle
auftreten, d. h., bis der Übergangsdetektor 100 den nächsten
Übergangsimpuls liefert. Sodann puffert die
Byte-Folgesteuerschaltung 104 die Zählung in den Datenpuffer
110 und lädt den Zählwert mittels eines
RAM-Schreibsteuersignals in das RAM 102. Der Datenzähler 108
wird zur Vorbereitung für die Zählung von Tachometerimpulsen
der nächsten Datenzelle auf Null rückgesetzt. Die
Übergangsimpulse vom Übergangsdetektor 100 takten weiterhin den
Adreßzähler über Adressen entsprechend den RAM-Plätzen für jede
der Datenzellen. Die Byte-Folgesteuerschaltung 100 liefert die
Steuersignale zum Adreßpuffer zur Pufferung und
Wirksamschaltung der Adreßdaten für das RAM 102 für
entsprechenden Datenzellen.
In dem hier beispielsweise verwendeten verschachtelten 2 von 5
Balkencode sind 38 Balken und Abständen in einem
Balkencodesymbol vorhanden. Da jeder Balken und Abstand eine
Datenzelle darstellt, sind auch in jedem Symbol 38 Datenzellen
vorhanden. Daraus folgt, daß 38 Speicherplätze im RAM 102 und
entsprechende Adressen vorhanden sind. Da der Datenzähler für
jede Datenzelle einen Zählwert in das RAM 102 lädt, speichert
dieses 38 Datenzählwerte für jedes Symbol, wobei jeder Zählwert
gleich einer Binärzahl ist, die entweder einen breiten oder
schmalen Balken oder Abstand repräsentiert. Besitzt
beispielsweise ein breiter Balken oder Abstand eine
Abstandsstrecke zwischen Übergängen von 30 X-Impulsen und ein
schmaler Balken oder Abstand eine Abstandsstrecke von 10
X-Impulsen, so speichert das RAM 38 Binärwerte, wobei jeder
Wert gleich 30 Zählwerten für breite Balken und Abstände und
gleich 10 Zählwerten für schmale Balken und Abstände ist. Im
hier beschriebenen System liegt ein vorgewählter Impulszählwert
zur Darstellung eines breiten Elementes im Bereich von 26 bis
50 Impulsen, während ein Impulszählwert für das schmale Element
im Bereich von 5 bis 26 Impulsen liegt. Impulszählwerte über 50
oder unter 5 werden als ungültig betrachtet.
Wie im folgenden noch beschrieben wird, ist am Beginn der Folge
von Datenzellen eine Statuszelle und ein entsprechender
Statusplatz im RAM enthalten. Die Statuszelle wird zum Teil als
Binärwert repräsentiert, der gleich der Anzahl von Übergängen
ist, die während des Auslesens eines Balkencodesymbols
gespeichert werden, und der im hier beschriebenen Format eine
feste Zahl 38 ist. Speziell enthält das Status-Byte den
Übergangszählwert in den ersten sechs Bits D 0 bis D 5, wobei D 6
nicht ausgenutzt wird und D 7 die Vorwärts/Rückwärts-Information
für den Decodierungsprozeß enthält. Somit wird das
Statuszellen-Byte vor der tatsächlichen Decodierung der
Datenzelleninformation aus dem RAM benutzt, um sicherzustellen,
daß die richtige Anzahl von Übergängen und damit Datenzellen
gelesen und gespeichert wurde. Ist dies nicht der Fall, so wird
die Information verworfen.
Die einem Symbol entsprechende Information wird als Funktion
eines Unterbrechungsbefehls, der von der
Byte-Folgesteuerschaltung 104 zu einem Mikroprozessor (Fig. 4)
geliefert wird, aus dem RAM 102 gelesen, wobei der
Mikroprozessor die Information erhält, das Daten im RAM 102
bereitstehen. Das Status-Byte wird zunächst in den Speicher
geladen und hinsichtlich der richtigen Anzahl von Übergängen
geprüft. Falls richtig, werden die Daten für den
nachfolgenden Decodierungsprozeß in einen
Mikroprozessorspeicher geladen, wie dies im folgenden anhand
von Fig. 10 beschrieben wird. Das RAM 102 ist dann für den
Beginn des Ladens der Datenzellen-Zählwerte für das nächste
Balkencodesymbol frei.
Fig. 4 zeigt weitere Einzelheiten des Balkencode-Lesesystems
nahe Fig. 2, wobei sich entsprechende Komponenten mit sich
entsprechenden Bezugszeichen versehen sind. Das Datensignal
wird über die Leitung 62 von der Balkencode-Leseeinrichtung 34
(Fig. 1) in Form eines Digitalsignals, das sich beispielsweise
von 0 bis 5 V ändert, in ein D-Flip-Flop 114 eingespeist.
Dieses Flip-Flop 114 wird durch das X-Tachometersignal auf der
Leitung 48 getaktet und liefert ein digitales Datensignal an
einem Ausgang Q sowie ein invertiertes digitales Datensignal an
einem Ausgang , wobei beide Signale durch das
X-Tachometersignal neu getaktet werden und Balken und Abstände
des Balkencodesymbols als entsprechende logische Pegel
repräsentieren. Der Ausgang Q ist an einen Eingang eines
Fenstergenerators 116 sowie an die Bit-Position D 7 des
Datenpuffers 110 angekoppelt. Er liefert einen logischen Pegel
zur Identifizierung, ob das Daten-Byte ein Balken oder ein
Abstand ist. Der Ausgang ist an den Übergangsdetektor 100
und einen zweiten Eingang des Fenstergenerators 116
angekoppelt. Das X-Tachometersignal auf der Leitung 48 wird auf
einen dritten Eingang des Fenstergenerators 116 gekoppelt.
Der Übergangsdetektor 100 wird durch eine
Exklusiv-ODER-Schaltung mit einer geringen Verzögerung zwischen
den Eingängen gebildet und liefert einen Übergangsimpuls für
jeden Übergang zwischen Datenzellen für eine Verzögerungsstufe
118 mit einer Verzögerung um einen Tachometerimpuls, den
Takteingang des Datenpuffers 110, eine erste
Übergangssperrschaltung 120 und für den Takteingang eines
Übergangszählers 122. Die Verzögerungsstufe 118 wird durch das
X-Tachometersignal getaktet und liefert ein verzögertes
Übergangssignal mit einer Verzögerung von einem
Tachometerimpuls zur Rücksetzung des Datenzählers 108 sowie zur
Taktung des Adreßzählers 106. Der Datenzähler 108 wird durch
ein invertiertes X-Tachometersignal von der Leitung 48
getaktet.
Der Fenstergenerator 116 bildet eine Anordnung zur Festlegung,
wann die Balkencode-Leseeinrichtung 34 sich einem
Balkencodesymbol annähert und dieses verläßt und gibt die
zugehörigen Schaltungen zum Laden von Daten frei. Fig. 6A zeigt
in diesem Zusammenhang Daten von zwei aufeinanderfolgenden
Balkencodesymbolen 24 mit einem nicht reflektierenden Bereich
124 zwischen diesen, was beispielsweise der Fall ist, wenn die
Kassetten 22 sich mit nicht reflektierenden Abständen in den
Fächern 20 befinden. Die Etiketten selbst sind mit weiß
reflektierenden "Ruhezonen" versehen und weisen Start- und
Stopränder 126, 128 entsprechend den Abständen im
Balkencodesymbol auf, wobei diese Ränder jedoch weit länger
sind und an beiden Enden des Balkencodesymbols aufgedruckt
sind. Der Startrand 126 identifiziert den Start eines Symbols,
während der Stoprand 128 das Ende des vorhergehenden Symbols
repräsentiert. Der Fenstergenerator 116 gemäß Fig. 4 wird durch
die sich ändernde Periode des X-Tachometersignals getaktet und
kann somit detektieren, daß der Startrand 126 weit länger als
ein breiter Abstand ist und daß damit die Leseeinrichtung 34
sich einem Balkencodesymbol nähert. Der Fenstergenerator 116
klammert seinerseits das Symbol durch Erzeugung von Start- und
Stopfensterimpulsen unmittelbar vor und nach dem Beginn und dem
Ende der Balkencodeinformation, speziell an einem Punkt über
der Hälfte der Breiten des Start- und Stoprandes ein. Die
Randbreiten ändern sich ebenfalls invers mit der
Abtastgeschwindigkeit. Der Fenstergenerator 116 wird im
folgenden anhand der Fig. 5 und 6 noch weiter beschrieben.
Das Fenstersignal wird in eine Verzögerungsschaltung 130, die
erste Übergangssperrschaltung 120 und in die
Byte-Folgesteuerschaltung 104 als invertiertes Fenstersignal
eingespeist. Die Verzögerungsschaltung 130 wird ebenfalls durch
das X-Tachometersignal getaktet und erzeugt ein erstes
Tachometer-Nachfenster-Signal, das in eine Richtungsschaltung
132 und den Rücksetzeingang eines Übergangs-Flip-Flops 134
eingespeist wird. Ein Eingang D des Flip-Flops 134 ist mit
einem Ausgang der ersten Übergangssperrschaltung 120 zur
Aufnahme eines Signals gekoppelt, das den Übergangszähler 122
freigibt. Ein Ausgang Q dieses Flip-Flops liefert den
Rücksetzimpuls für den Übergangszähler 122.
Ein Richtungssignal, das aus einem hohen oder tiefen, einer
Abtastung in Vorwärts- oder Rückwärtsrichtung repräsentierenden
logischen Zustand besteht, wird über die Leitung 45 von der
X-Servoschaltung 42 in die Richtungsschaltung 132 eingespeist.
Das Richtungssignal wird weiterhin in einen
Aufwärts/Abwärts-Eingang des Adreßzählers 106 sowie in die
Bitstelle D 7 eines Übergangspuffers 140 eingespeist und liefert
für diese Komponenten (und damit für das RAM 102) die Richtung,
in welcher die Barcode-Abtasteinrichtung 34 das Symbol liest.
Die Richtungsschaltung 132 liefert ein Vorwärtssignal für den
Rücksetzeingang des Adreßzählers 106 zu dessen Rücksetzung und
ein Rückwärtssignal für den Ladeeingang des Zählers 106 zu
dessen Laden mit der Zahl 38, wenn das Symbol rückwärts gelesen
wird.
Die erste Übergangssperrschaltung 120 liefert ein
Übergangs-Minus-Eins-Signal für die Byte-Folgesteuerschaltung
104, wobei der erste Übergangsimpuls nach dem Fenstersignal
gelöscht wird, da keine Daten gespeichert und keine Daten zur
Pufferung auf den ersten Übergang vorhanden sind. Die Schaltung
120 liefert weiterhin ein Freigabesignal für den
Freigabeeingang eines Eingangs/Ausgangs-Adreßpuffers 142,
welcher einen Adreßbus eines Mikroprozessors 144 mit dem vom
Adreßpuffer 112 zum RAM 102 führenden Adreßbus koppelt. Die
erste Übergangssperrschaltung 120 wird im wesentlichen durch
ein Paar von seriellen D-Flip-Flops gebildet, deren
Ausgangssignal in den Eingang D des Flip-Flops 134 eingespeist
und zur Erzeugung des Übergangs-Minus-Eins-Signals mit dem
Übergangssignal einer UND-Verknüpfung unterzogen wird.
Die Byte-Folgesteuerschaltung 104 nimmt weiterhin über die
Leitung 48 ein invertiertes X-Tachometersignal auf. Wie bereits
ausgeführt, koordiniert die Byte-Folgesteuerschaltung 104 die
verschiedenen, dem RAM 102 und dem Übergangszähler 122/Puffer
140 zugeordneten Lade- und Schreibfunktionen, wobei der
Übergangszählwert im Übergangszähler 122 über den
Übergangspuffer 140 und einen internen Bus 141 in das RAM 102
geladen wird. Der Übergangszählwert stellt die oben erwähnten
Statuszellendaten dar, welche gleich der Anzahl von
gespeicherten Übergängen sind. Im hier zur Diskussion stehenden
Balkencodeformat soll der Übergangszählwert bei Abtastung in
Rückwärtsrichtung, d. h., von rechts nach links gleich 38 und
bei Abtastung in Vorwärtsrichtung und bei auf hohem Pegel
befindlichen Bit D 7 im Übergangspuffer 140 gleich 38 plus 128
sein. Die Byte-Folgesteuerschaltung 104 liefert somit
entsprechende Steuersignale für den Ausgangsfreigabeeingang des
Datenpuffers 110, den Takt- und Ausgangsfreigabeeingang des
Adressenpuffers 112, den Schreibfreigabeeingang des RAM 102,
den Takt- und Ausgangsfreigabeeingang des Übergangs-Flip-Flops
134 und des Übergangspuffers 140, den Takteingang des Puffers
140 sowie einen Eingang der Richtungsschaltung 130. Das in das
Flip-Flop 134 eingespeiste Signal schaltet dieses ab und lädt
den Übergangszählwert des Zählers 120. Weiterhin liefert die
Byte-Folgesteuerschaltung 104 ein Rücksetzsignal für sich
selbst und den Rücksetzeingang der ersten
Übergangssperrschaltung 120, wobei dieses Rücksetzsignal auch
das oben erwähnte Unterbrechungsbefehlssignal auf einer Leitung
146 für den Mikroprozessor 144 liefert. Das Rücksetzsignal wird
mit einem Ausgangssignal Q 4 einer UND-Verknüpfung unterzogen,
wobei dieses Ausgangssignal Q 4 als Steuerbit vom Mikroprozessor
144 über einen Eingangs/Ausgangs-Datenpuffer 148 geliefert
wird. Dieser Puffer koppelt den Datenbus zwischen dem
Datenpuffer 110 und dem RAM 102 mit dem Datenbus des
Mikroprozessors 144 zur Übertragung der RAM 102 gespeicherten
Balkencodedaten nach jedem Balkencodesymbol-Abtastprozeß.
Der Eingangs/Ausgangs-Datenpuffer 148 nimmt ein invertiertes
Schreibfreigabesignal an einem Takteingang über eine Leitung
152 auf. Dieses Freigabesignal wird vom Mikroprozessor 144 in
eine Bitleitung Q 4 zur Koordinierung des Leseprozesses des RAM
102 geliefert. Der Ausgangsfreigabeeingang des
Eingangs/Ausgangs-Datenpuffers 148 nimmt einen
Datenanforderungsbefehl vom Mikroprozessor 144 über eine
Leitung 154 auf, der auch in den Ausgangsfreigabeeingang des
RAmM 102 zur Umladung der Balkencodedaten in den
Mikroprozessorspeicher eingespeist wird.
Fig. 5 zeigt eine Ausführungsform des Fenstergenerators 116
nach Fig. 4, bei der das X-Tachometersignal auf die Leitung 48
gegeben wird und die nicht invertierten und invertierten
Datensignale durch das Flip-Flop 114 geliefert werden. Das
Tachometersignal taktet einen ersten Zähler 160, während die
invertierten Daten in ein ODER-Gatter 162 eingespeist werden.
Der zweite Eingang dieses ODER-Gatter 162 ist an einen Ausgang
Q 8 des Zählers 160 angekoppelt, wobei das einer
ODER-Verknüpfung unterzogene Ausgangssignal auf den
Rücksetzeingang des Zählers gekoppelt wird. Somit wird der
Zähler 160 entweder durch die Datenübergänge oder durch das
Signal an seinem Ausgang Q 8 rückgesetzt. Ein Ausgang Q 7 des
ersten Zählers 160 taktet ein durch zwei Teilen des Flip-Flops
164, dessen Ausgang auf seinen Eingang D rückgekoppelt ist.
Ein Ausgang Q des Flip-Flops 164 liefert die vorgenannten
Fenstersignalimpulse, welche das Balkencodesymbol einklammern.
Zur Realisierung der Phase des Fenstersignals werden die
Datenübergänge in einen zweiten Zähler 166 eingespeist, der
durch das Signal am Ausgang Q 7 des ersten Zählers 160 über ein
NOR-Gatter 161 und ein Filter 163 rückgesetzt wird. Ein Ausgang
Q 5 des zweiten Zählers 166 ist über ein Filter 165 an den
Rücksetzeingang des durch zwei teilenden Flip-Flops 164
angekoppelt.
Gemäß Fig. 6 wird der erste Zähler 160 wiederholt gelöscht,
solange Daten am ODER-Gatter 162 erscheinen. Ist dies nicht
mehr der Fall, wenn die Balkencode-Abtasteinrichtung den
Startrand 126 des Etiketts (Fig. 6A) abtastet, so wird der
Zähler 160 nicht mehr rückgesetzt und speichert einen großen
Zählwert, beispielsweise größer als 64 (ein Wert, der weit
größer als der größtmögliche, einem weiten Abstand zugeordnete
Wert 50 ist). Damit wird angezeigt, daß die Abtasteinrichtung
34 den Startrand 126, nicht jedoch einen weiten Abstand
abtastet und sich einem Balkencodesymbol nähert. Das Signal am
Ausgang Q 7 des ersten Zählers 160 nimmt einen hohen Pegel an
und taktet das durch zwei teilende Flip-Flop 164 (Fig. 6B). Der
Zähler 160 wird am Ende des Startrandes wieder rückgesetzt,
wenn Daten auftreten, was auch am Ende des Stoprandes der Fall
ist, wenn ein nicht reflektierender Bereich erscheint.
Da nicht bekannt ist, ob eine Annäherung an einen Start- oder
einen Stoprand stattfindet, d. h., ob die Auslesung in Vorwärts-
oder Rückwärtsrichtung erfolgt, zählt der zweite Zähler 166
Datenübergänge. Bei der Auslesung eines Etiketts speichert der
Zähler 166 Zählwerte; dies ist jedoch nicht der Fall, wenn die
Abtasteinrichtung zwischen Etiketten tastet. Wenn der zweite
Zähler 166 mehr als 16 Zählwerte (in Annäherung an die 38
Übergänge in diesem Format) speichert, weiß die Schaltung, daß
der abgetastete Bereich ein Balkencodesymbol, nicht aber einer
der Ränder 126, 128 (Fig. 6D) abtastet. Der Ausgang Q 5 des
zweiten Zählers 166 liefert ein Rücksetzsignal zum Löschen des
Flip-Flops 164, wodurch es möglich wird, das entsprechende
Startfenstersignal als hohen logischen Pegel zu erzeugen
(Fig. 6E). Am Ende des Symbols nach der Abtastung der Hälfte
des Stoprandes wird der Zähler 160 rückgesetzt und das dem Ende
des Fensters entsprechende Stopfenstersignal tief getaktet.
Fig. 7 zeigt eine Ausführungsform der Byte-Folgesteuerschaltung
104, welche eine Daten-Byte-Folgesteuerung 168 und eine
Status-Byte-Schreibfolgesteuerung 170 enthält. Das invertierte
Tachometersignal wird in UND-Gatter 172, 174 in den
Folgesteuerungen 168, 170 eingespeist. Das
Übergang-Minus-Eins-Signal von der ersten
Übergangssperrschaltung 120 taktet ein D-Flip-Flop 176, dessen
Ausgang Q an den zweiten Eingang des UND-Gatters 172
angekoppelt ist. Dieses Gatter taktet ein Schieberegister 178,
das seinerseits eine Folge von Daten-Byte-Signalen durch
Schiebung eines hohen Pegels über die entsprechenden Ausgänge Q
liefert. Der Ausgang Q 0 ist an ein ODER-Gatter 180 und den
Ausgangsfreigabeeingang des Datenpuffers 110 (Fig. 4)
angekoppelt. Der Ausgang Q 1 ist an ein ODER-Gatter 182 und der
Ausgang Q 2 an die Rücksetzeingänge und das Flip-Flop 176
angekoppelt.
Das invertierte Fenstersignal vom Fenstergenerator 116 taktet
ein Flip-Flop 184, dessen Ausgang Q an den zweiten Eingang des
UND-Gatters 174 angekoppelt ist. Dieses Gatter taktet ein
Schieberegister 186, das entsprechend dem Schieberegister 178
eine Folge von Status-Byte-Signalen an entsprechenden Ausgängen
Q liefert. Der Ausgang Q 0 ist an die Richtungsschaltung 132 und
an den Takteingang des Übergangspuffers 140 (Fig. 4)
angekoppelt. Der Ausgang Q 1 ist an den zweiten Eingang des
ODER-Gatters 180 sowie die Takt- und Ausgangsfreigabeeingänge
des Flip-Flop 134 und des Puffers 140 (Fig. 4) angekoppelt.
Der Ausgang Q 2 ist an den zweiten Eingang des ODER-Gatters 132
und der Ausgang Q 3 an die Rücksetzeingänge und die erste
Übergangssperrschaltung 120 (Fig. 4) angekoppelt. Das
Rücksetzsignal wird weiterhin auf das UND-Gatter gekoppelt,
welches das Unterbrechungssignal für den Mikroprozessor 144
(Fig. 4) liefert. Das ODER-Gatter 182 schaltet einen
monostabilen Multivibrator 183 zur Ladung entweder des Status-
oder des Daten-Bytes in das RAM 102. Das ODER-Gatter 180
liefert das Übergang-Minus-Eins-Signal für die Takt- und
Ausgangsfreigabeeingänge des Adreßpuffers 112 zur Pufferung der
Adreßzählwerte für das Status- oder das Daten-Byte.
Die Daten-Byte-Folgesteuerung 168 spricht auf das
Übergang-Minus-Eins-Signal sowie das Tachometersignal an und
liefert den Daten zugeordnete Steuersignale, während die
Status-Byte-Schreibfolgesteuerung 170 auf das Fenstersignal
sowie das Tachometersignal anspricht und den Statusdaten
zugeordnete Steuersignale erzeugt. Die Fig. 8A bis 8G zeigen
Signale, welche in der Daten-Byte-Folgesteuerung 168 als
Funktion des Übergang-Minus-Eins-Signals erzeugt werden, das
die Daten des Adreßpuffers 112 puffert. Beim nächsten
Tachometerimpuls löscht das Schieberegister 178 den
Datenzähler 108 und inkrementiert den Adreßzähler 106 (Fig.
8C), wobei das Signal am Ausgang Q 0 des Zählers 178 den
Datenpuffer 110 freigibt (Fig. 8D). Einen Tachometerimpuls
später schaltet das Signal am Ausgang Q 1 den monostabilen
Multivibrator 183 zur Freigabe des Ladens des RAM 102 (Fig. 8E,
8G). Einen weiteren Tachometerimpuls später setzt das Signal am
Ausgang Q 2 die Daten-Byte-Folgesteuerung 168 zur Bereitmachung
für die nächsten Daten zurück (Fig. 8F).
Entsprechend zeigen die Fig. 9A bis 9F Signale der
Status-Byte-Schreibfolgesteuerung 170 mit dem Fenstersignal und
dem Tachometersignal gemäß den Fig. 9A und 9B. Beim ersten
Tachometerimpuls nach dem Annehmen eines tiefen Pegels durch
das Fenstersignal setzt das Signal am Ausgang Q 0 des
Schieberegisters 186 den Adreßzähler 106 zurück und puffert die
Übergangsdaten des Übergangszählers 122 (Fig. 9C). Einen
Tachometerimpuls später puffert das Signal am Ausgang Q 1 die
Adreßdaten und gibt diese frei, gibt die Übergangszähldaten
frei und schaltet den Übergangszähler 122 ab (Fig. 9D). Einen
weiteren Tachometerimpuls später schaltet das Signal am Ausgang
Q 2 den monostabilen Schreib-Freigabe-Multivibrator 182 zur
Freigabe der Schreibfunktion des RAM 102 (Fig. 9E). Einen
weiteren Tachometerimpuls später setzt das Signal am Ausgang Q 3
die Status-Byte-Schreibfolgesteuerung 170 und die erste
Übergangssperrschaltung 120 zurück (Fig. 9F).
Fig. 10 zeigt das sich selbst erläuternde Flußdiagramm für das
durch den Mikroprozessor 144 abgearbeitete
Decodierungsprogramm. Nach Speicherung der Daten- und
Status-Byte-Zählwerte für ein Symbol im RAM 102 sowie als
Funktion des Unterbrechungs- und des Anforderungsbefehls vom
Mikroprozessor beginnt das Programm, wobei zunächst der
Status-Byte-Zählwert in den Mikroprozessorspeicher geladen
wird. Der Status-Byte wird geprüft, um festzustellen, ob das
über den Übergangspuffer 140 gewonnene Bit D 7 eine Vorwärts-
oder Rückwärtsabtastrichtung anzeigt. Der Status-Byte-Zählwert
wird sodann geprüft, um sicherzustellen, daß die richtige Zahl
von Übergängen für die Abtastrichtung, d. h., der Wert 38 für
Rückwärtsrichtung und der Wert 166 für Vorwärtsrichtung
gespeichert ist. Die Daten-Bytes werden sodann hinsichtlich
jedes Bytes geprüft, um festzustellen, ob es außerhalb des
Bereiches von möglichen Werten von beispielsweise 5 bis 50 oder
im Bereich von 5 bis 26 (Anzeige eines schmalen Elementes) oder
im Bereich von 26 bis 50 (Anzeige eines breiten Elementes)
liegt. Die Start- und Stopzeichen werden geprüft, wobei im
korrekten Fall eine Paritätsprüfung hinsichtlich aller sechs
Ziffern der Datenzeichen durchgeführt wird. Stimmen die
Paritäten, so werden die Ziffern decodiert und der 2 von 5 Code
zur Gewinnung der Sybolzahl in Binärcode-Dezimalzahlen
überführt. Diese werden zur weiteren Verwendung in einen
externen Systemspeicher geladen.
Vorstehend wurde erläutert, daß die die Bewegung der optischen
Abtasteinrichtung anzeigenden Impulse, welche zur Eliminierung
der Zeitdimension aus der Balkencode-Auslesung ausgenutzt
werden, durch einen speziellen rotierenden Tachometer erzeugt
werden, der an ein eine translatorische Bewegung ausführendes
Abtastgerät angekoppelt ist. Erfindungsgemäß ist jedoch auch
die Verwendung von Impulserzeugungssystemen möglich, in denen
eine Folge von Impulsen erzeugt wird, welche die
Abtastgeschwindigkeit eines Balkencode-Lesemechanismus
repräsentieren, wobei es sich um optische, elektrische oder
magnetische Einrichtungen handeln kann, die beim Lesen des
Symbols eine Translations- oder eine Rotationsbewegung
ausführen. Beispielsweise bei einem Codeleser in Form eines
Handstabes kann dieser Stab eine Meßradscheibe enthalten, die
mit dem Balkencode-Etikett in Kontakt steht und Impulse mit
einer Folgefrequenz erzeugt, welche proportional zu der durch
eine Bedienungsperson realisierten Abtastgeschwindigkeit ist.
Weiterhin sind im Rahmen der Erfindung auch Systeme verwendbar,
bei denen Balkencodesymbole mit sich ändernden
Geschwindigkeiten an einem stationären
Balkencode-Lesemechanismus vorbeigeführt werden.
Weiterhin kann bei einer NRZ-Codierungstechnik ein erster
Datenzähler (beispielsweise der Zähler 108) zur Zählung der
Tachometerimpulse zwischen Zwischenzeichenübergängen und ein
zweiter Datenzähler zur Festlegung der Anzahl von
Tachometerimpulsen für die einzelnen Datenzellen der
Datenzeichen aufgrund einer bekannten speziellen Anordnung von
Balken/Abständen des 2 von 5 Code verwendet werden.
Entsprechend kann ein Zähler zur Zählung der Tachometerimpulse
verwendet werden, die zwischen dem Start der Datenzeichen und
dem Ende der Datenzeichen auftreten; dabei handelt es sich um
die Zählung von Impulsen über die Symbollänge in der oben
beschriebenen Weise. Erfindungsgemäß ist also die Verwendung
von Systemen möglich, in denen Grenzimpulse im Verlauf der
Auslesung von Balkencodesymbolen mit sich ändernden
Abtastgeschwindigkeiten erzeugt werden.
Das erfindungsgemäße Verfahren und das erfindungsgemäße System
sind in Anwendungsfällen, für welche die hohe
Betriebsgeschwindigkeit einer Hardware-Lösung nicht
erforderlich ist, auch auf Software-Basis realisierbar.
Beispielsweise wird die Folge von Impulsen, deren Periode die
Meßlängeneinheit definiert, über einen Tachometerdatenbus mit
dem Balkencode-Datensignal in den Mikroprozessor eingespeist.
Die Balken/Abstände oder Zeichengrenzen angebenden Übergänge
können mittels Hardware oder durch den Mikroprozessor erzeugt
werden, wobei die resultierenden Datenzellen dann über den oben
beschriebenen Mikroprozessorspeicher gehandhabt werden.
Claims (38)
1. Verfahren zum Lesen von in Balkencodesymbolen codierter
Information bei sich ändernden Abtastgeschwindigkeiten,
bei dem die Information in ausgewählten Teilen des
Balkencodes enthalten ist, die durch entsprechende
Übergänge definiert sind, dadurch gekennzeichnet, daß
eine Folge von Impulsen erzeugt wird, deren Periode ein
Einheitsmeßabstand ist, welcher eine inverse Funktion der
Abtastgeschwindigkeit ist,
und zur Identifizierung der Information die Anzahl von
Impulsen festgelegt wird, welche in den ausgewählten
Übergängen auftreten.
2. Verfahren nach Anspruch 1,
dadurch gekennzeichnet, daß
eine vorgewählte Impulszählung erzeugt wird, welche die
Identität der Information repräsentiert
und die festgelegte Anzahl von Impulsen mit der
vorgewählten Impulszählung zur Feststellung verglichen
wird, das die Anzahl von Impulsen die Information
repräsentiert.
3. Verfahren nach Anspruch 1 und/oder 2, bei dem die
ausgewählten Teile des Balkencodes eine Vielzahl von
breiten und schmalen Balken in einem Balkencodesymbol
enthalten,
dadurch gekennzeichnet, daß zur
Impulsfestlegung
die Übergänge zwischen aufeinanderfolgenden Balken im
Balkencodesymbol detektiert werden
und die Anzahl von Impulsen gezählt wird, welche zwischen
aufeinanderfolgenden Übergängen auftreten, um
festzustellen, ob die Anzahl von Impulsen breite oder
schmale Balken repräsentiert.
4. Verfahren nach einem der Ansprüche 1 bis 3,
dadurch gekennzeichnet, daß
eine erste und zweite Impulszählung erzeugt wird, welche
breite bzw. schmale Balken repräsentieren,
und daß die Anzahl von zwischen aufeinanderfolgenden
Übergängen auftretenden Impulsen mit der ersten und zweiten
Impulszählung verglichen wird, um festzulegen, ob die
Anzahl von Impulsen breite oder schmale Balken
repräsentiert.
5. Verfahren nach einem der Ansprüche 1 bis 4,
dadurch gekennzeichnet, daß ein
Zeitfenstersignal erzeugt wird, das festlegt, wann das
Balkencodesymbol abgetastet wird.
6. Verfahren nach einem der Ansprüche 1 bis 5,
dadurch gekennzeichnet, daß zur Zählung ein
Zähler zur Zählung der zwischen aufeinanderfolgenden
Übergängen auftretenden Impulse freigegeben wird.
7. Verfahren nach einem der Ansprüche 1 bis 6, bei dem das
Balkencodesymbol eine ausgewählte Anzahl von Balken
enthält,
dadurch gekennzeichnet, daß
aufeinanderfolgende Übergänge in einem Balkencodesymbol zur
Bestätigung gespeichert werden, daß die richtige Anzahl von
Übergängen für das Symbol erhalten worden ist.
8. Verfahren nach einem der Ansprüche 1 bis 7, bei dem Grenzen
ein Zeichen der Balkencodeinformation definieren,
dadurch gekennzeichnet, daß die Anzahl von
Impulsen festgelegt wird, welche im Zeichen bei sich
ändernder Abtastgeschwindigkeit auftreten.
9. Verfahren zum Lesen eines Balkencodesymbols mit sich
ändernder Abtastgeschwindigkeit, bei dem die Information in
breiten und schmalen Balken und Abständen des
Balkencodesymbols enthalten ist, insbesondere nach
Anspruch 1,
dadurch gekennzeichnet,
daß eine Folge von Impulsen mit der Abtastgeschwindigkeit angebender Folgefrequenz erzeugt wird,
die Übergänge zwischen Balken und Abständen detektiert werden und
die Anzahl von zwischen Übergängen auftretenden Impulsen zur Feststellung festgelegt wird, ob die Anzahl von Impulsen breiten oder schmalen Balken und Abständen entspricht.
daß eine Folge von Impulsen mit der Abtastgeschwindigkeit angebender Folgefrequenz erzeugt wird,
die Übergänge zwischen Balken und Abständen detektiert werden und
die Anzahl von zwischen Übergängen auftretenden Impulsen zur Feststellung festgelegt wird, ob die Anzahl von Impulsen breiten oder schmalen Balken und Abständen entspricht.
10. Verfahren nach Anspruch 9,
dadurch gekennzeichnet, daß zur Festlegung
der Anzahl von Impulsen folgende Schritte durchgeführt
werden:
die Anzahl von zwischen Übergängen auftretenden Impulsen zur Erzeugung entsprechender Impulszählwerte gezählt wird,
eine erste und zweite vorgewählte Impulszählung zur Kennzeichnung breiter oder schmaler Balken und Abstände erzeugt wird
und die Impulszählwerte mit der ersten und zweiten vorgegebenen Impulszählung verglichen wird, um festzulegen, ob die Impulszählwerte breite oder schmale Balken oder Abstände repräsentieren.
die Anzahl von zwischen Übergängen auftretenden Impulsen zur Erzeugung entsprechender Impulszählwerte gezählt wird,
eine erste und zweite vorgewählte Impulszählung zur Kennzeichnung breiter oder schmaler Balken und Abstände erzeugt wird
und die Impulszählwerte mit der ersten und zweiten vorgegebenen Impulszählung verglichen wird, um festzulegen, ob die Impulszählwerte breite oder schmale Balken oder Abstände repräsentieren.
1. Verfahren nach Anspruch 9 und/oder 10,
dadurch gekennzeichnet,
daß die Impulszählwerte aufeinanderfolgende Übergänge als entsprechende Datenzählungen für das Balkencodesymbol gespeichert werden,
ein Binärsignal gespeichert wird, das anzeigt, ob die Datenzählungen Balken oder Abstände repräsentieren und
die aufeinanderfolgenden Datenzählungen verglichen werden, um festzulegen, ob sie breite oder schmale Balken oder breite oder schmale Abstände repräsentieren.
daß die Impulszählwerte aufeinanderfolgende Übergänge als entsprechende Datenzählungen für das Balkencodesymbol gespeichert werden,
ein Binärsignal gespeichert wird, das anzeigt, ob die Datenzählungen Balken oder Abstände repräsentieren und
die aufeinanderfolgenden Datenzählungen verglichen werden, um festzulegen, ob sie breite oder schmale Balken oder breite oder schmale Abstände repräsentieren.
12. Verfahren nach einem der Ansprüche 9 bis 11,
dadurch gekennzeichnet, daß
die Richtung festgelegt wird, in der das Balkencodesymbol
mit sich ändernder Geschwindigkeit abgetastet wird
und die Folge der festgestellten breiten und schmalen
Balken und Abstände zur Erzeugung der
Balkencodesymbol-Information decodiert wird.
13. Verfahren nach einem der Ansprüche 9 bis 12,
dadurch gekennzeichnet, daß
vor und nach dem Balkencodesymbol ein Start- und Stoprand
detektiert wird
und bei Detektierung des Startrandes ein Fenstersignal
erzeugt und dieses Fenstersignal bei Detektierung des
Stoprandes beendet wird.
14. Verfahren nach einem der Ansprüche 9 bis 13,
dadurch gekennzeichnet, daß eine
Statuszählung aufeinanderfolgender Übergänge im
Balkencodesymbol zur Bestätigung gespeichert wird, daß die
richtige Anzahl von Übergängen für das entsprechende Symbol
erhalten worden ist.
15. System zum Lesen von in einem Balkencodesymbol codierter
Information durch Abtasten des Symbols mit einer
Abtasteinrichtung bei sich ändernder Abtastgeschwindigkeit,
wobei das Symbol Datenzellen enthält, die durch breite und
schmale Balken gebildet sind, deren zeitliche
Abtastabstände sich invers mit der Abtastgeschwindigkeit
ändern,
gekennzeichnet durch
eine Anordnung zur Erzeugung einer Impulsfolge, deren Periode eine Meßzeitabstands-Einheit repräsentiert, welche eine Funktion der Relativbewegung zwischen Abtasteinrichtung und Balkencodesymbol ist,
eine Anordnung zur Darstellung der Breite einer Datenzelle durch die Anzahl von in ihr auftretenden Impulsen, und
eine Anordnung zur Feststellung, ob die Anzahl der während einer Datenzelle auftretenden Impulse einen breiten oder einen schmalen Balken repräsentiert.
eine Anordnung zur Erzeugung einer Impulsfolge, deren Periode eine Meßzeitabstands-Einheit repräsentiert, welche eine Funktion der Relativbewegung zwischen Abtasteinrichtung und Balkencodesymbol ist,
eine Anordnung zur Darstellung der Breite einer Datenzelle durch die Anzahl von in ihr auftretenden Impulsen, und
eine Anordnung zur Feststellung, ob die Anzahl der während einer Datenzelle auftretenden Impulse einen breiten oder einen schmalen Balken repräsentiert.
16. System nach Anspruch 15,
dadurch gekennzeichnet, daß die
Darstellungsanordnung folgende Komponenten aufweist:
Mittel zur Erzeugung von Übergangsimpulsen an den Grenzen aufeinanderfolgenden Datenzellen, und
einen Zähler zur Zählung der Anzahl von Impulsen der Impulsfolge, welche zwischen aufeinanderfolgenden Übergangsimpulsen auftreten, um einen ersten oder einen zweiten Wert von breiten oder schmalen Balken entsprechenden Impulszählungen zu definieren.
Mittel zur Erzeugung von Übergangsimpulsen an den Grenzen aufeinanderfolgenden Datenzellen, und
einen Zähler zur Zählung der Anzahl von Impulsen der Impulsfolge, welche zwischen aufeinanderfolgenden Übergangsimpulsen auftreten, um einen ersten oder einen zweiten Wert von breiten oder schmalen Balken entsprechenden Impulszählungen zu definieren.
17. System nach Anspruch 15 und/oder 16,
dadurch gekennzeichnet, daß die
Feststellungsanordnung folgende Komponenten aufweist:
einen Speicher zur Speicherung aufeinanderfolgender erster und zweiter Werte von die Breite entsprechender Datenzellen repräsentierender Impulszählungen, und
Mittel zum Vergleich, ob erste und zweite Werte der Impulszählungen breite oder schmale Balken repräsentieren.
einen Speicher zur Speicherung aufeinanderfolgender erster und zweiter Werte von die Breite entsprechender Datenzellen repräsentierender Impulszählungen, und
Mittel zum Vergleich, ob erste und zweite Werte der Impulszählungen breite oder schmale Balken repräsentieren.
18. System zum Lesen von in Balken eines Balkencodesymbols
codierter Information, wobei das Balkencodesymbol durch
eine Abtasteinrichtung mit sich ändernder Geschwindigkeit
abgetastet wird, insbesondere nach Anspruch 15,
gekennzeichnet durch
eine Anordnung zur Erzeugung einer Impulsfolge, deren Periode eine Maßabstandseinheit repräsentiert, die eine Funktion der Abtastgeschwindigkeit ist,
eine Anordnung zur Detektierung von Balkenübergängen,
eine Anordnung zur Zählung der zwischen aufeinanderfolgenden Übergängen auftretenden Impulse,
eine Anordnung zur Speicherung aufeinanderfolgender zwischen aufeinanderfolgenden Übergängen erhaltenen Zählwerten und
eine Anordnung zur Bestimmung, ob die aufeinanderfolgenden Zählwerte breite oder schmale Balken anzeigen.
eine Anordnung zur Erzeugung einer Impulsfolge, deren Periode eine Maßabstandseinheit repräsentiert, die eine Funktion der Abtastgeschwindigkeit ist,
eine Anordnung zur Detektierung von Balkenübergängen,
eine Anordnung zur Zählung der zwischen aufeinanderfolgenden Übergängen auftretenden Impulse,
eine Anordnung zur Speicherung aufeinanderfolgender zwischen aufeinanderfolgenden Übergängen erhaltenen Zählwerten und
eine Anordnung zur Bestimmung, ob die aufeinanderfolgenden Zählwerte breite oder schmale Balken anzeigen.
19. System nach Anspruch 18,
gekennzeichnet durch
einen auf der Abtasteinrichtung vorgesehenen optischen Abtaster (34) zur Erzeugung eines Balkencode-Datensignals,
einen an den optischen Abtaster (34) angekoppelten Tachometer (58) zur Erzeugung von Tachometerimpulsen als inverse Funktion der Abtastgeschwindigkeit und
eine an den optischen Abtaster (34) angekoppelte Übergangsdetektoranordnung (100) zur Detektierung der Übergänge im Balkencode-Datensignal.
einen auf der Abtasteinrichtung vorgesehenen optischen Abtaster (34) zur Erzeugung eines Balkencode-Datensignals,
einen an den optischen Abtaster (34) angekoppelten Tachometer (58) zur Erzeugung von Tachometerimpulsen als inverse Funktion der Abtastgeschwindigkeit und
eine an den optischen Abtaster (34) angekoppelte Übergangsdetektoranordnung (100) zur Detektierung der Übergänge im Balkencode-Datensignal.
20. System nach Anspruch 18 und/oder 19,
dadurch gekennzeichnet, daß
die Zähleranordnung einen an den Tachometer (58)
angekoppelten und von der Übergangsdetektoranordnung (100)
angekoppelten Zähler (108) zur Erzeugung der
aufeinanderfolgenden Zählwerte zwischen Übergängen enthält
und die Speicheranordnung einen an den Datenzähler (108)
angekoppelten Speicher (102) mit wahlfreiem Zugriff
enthält.
21. System nach einem der Ansprüche 18 bis 20,
gekennzeichnet durch
eine an den optischen Abtaster (34) angekoppelte und vom
Tachometer (58) angesteuerte Fenstergeneratoranordnung
(116) zur Erzeugung eines Fenstersignals bei Feststellung,
daß der optische Abtaster (34) sich einem Balkencodesymbol
nähert.
22. System nach einem der Ansprüche 18 bis 21,
dadurch gekennzeichnet, daß die
Fenstergeneratoranordnung (116) folgende Komponenten
aufweist:
einen ersten Zähler (160), der bei Fehlen des Balkencode-Datensignals kontinuierlich rückgesetzt wird und eine vorgegebene Anzahl von Tachometerimpulsen speichert, die ein Maß für ein dem Balkencodesymbol vorausgehenden Randbereich sind, und
einen zweiten Zähler (166) zur Speicherung einer die Abtastung des Balkencodesymbols anzeigenden vorgegebenen Anzahl von Übergängen, wobei die Fenstergeneratoranordnung (166) Fensterimpulse erzeugt, welche das Balkencode-Datensignal umfassen.
einen ersten Zähler (160), der bei Fehlen des Balkencode-Datensignals kontinuierlich rückgesetzt wird und eine vorgegebene Anzahl von Tachometerimpulsen speichert, die ein Maß für ein dem Balkencodesymbol vorausgehenden Randbereich sind, und
einen zweiten Zähler (166) zur Speicherung einer die Abtastung des Balkencodesymbols anzeigenden vorgegebenen Anzahl von Übergängen, wobei die Fenstergeneratoranordnung (166) Fensterimpulse erzeugt, welche das Balkencode-Datensignal umfassen.
23. System nach Anspruch 22,
dadurch gekennzeichnet, daß
der erste Zähler (160) durch die Tachometerimpulse getaktet
und durch die Übergänge rückgesetzt wird,
und der zweite Zähler (166) durch die Übergänge im
Datensignal getaktet wird.
24. System nach einem der Ansprüche 18 bis 23,
gekennzeichnet durch
eine an die Übergangsdetektoranordnung (100) und die
Fenstersignal-Generatoranordnung (116) angekoppelte sowie
auf die Tachometerimpulse ansprechende Folgesteueranordnung
(104) zum Laden der Anzahl von Übergängen als Status-Byte
und der aufeinanderfolgenden Zählwerte als Daten-Bytes in
den Speicher (102).
25. System nach einem der Ansprüche 18 bis 24,
gekennzeichnet durch
eine an die Übergangsdetektoranordnung (100) angekoppelte
und von der Folgesteueranordnung (104) angesteuerte
Übergangszähleranordnung (122) zum Zählen der Anzahl von
Übergängen in einem Balkencodesymbol sowie zum Laden der
Übergangszählung in den Speicher (102) als Status-Byte.
26. System nach einem der Ansprüche 18 bis 25,
gekennzeichnet durch eine Anordnung zur
Erzeugung einer Bit-Position im Status-Byte, die ein Maß
für die Abtastrichtung ist.
27. System nach einem der Ansprüche 18 bis 26,
dadurch gekennzeichnet, daß die
Folgesteueranordnung (104) folgende Komponenten aufweist:
eine erste an die Übergangsdetektoranordnung (100) angekoppelte und von den Tachometerimpulsen angesteuerte Schieberegisterschaltung (168) zur Erzeugung einer Folge von Steuersignalen in aufeinanderfolgenden Tachometerimpuls-Zeitpunkten zwecks selektiven Ladens der Zählwerten in die Speicheranordnung bei Rücksetzung der Zähleranordnung, und
eine zweite an die Fenstergeneratoranordnung (116) angekoppelte und von den Tachometerimpulsen angesteuerte Schieberegisterschaltung (170) zur Erzeugung einer Folge von Steuersignalen in aufeinanderfolgenden Tachometerimpuls-Zeitpunkten zwecks selektiven Ladens der Anzahl von Übergängen in die Speicheranordnung, wobei die erste und die zweite Schieberegisterschaltung (168, 170) eine Adreßzählung für die Status- und die Daten-Bytes puffern.
eine erste an die Übergangsdetektoranordnung (100) angekoppelte und von den Tachometerimpulsen angesteuerte Schieberegisterschaltung (168) zur Erzeugung einer Folge von Steuersignalen in aufeinanderfolgenden Tachometerimpuls-Zeitpunkten zwecks selektiven Ladens der Zählwerten in die Speicheranordnung bei Rücksetzung der Zähleranordnung, und
eine zweite an die Fenstergeneratoranordnung (116) angekoppelte und von den Tachometerimpulsen angesteuerte Schieberegisterschaltung (170) zur Erzeugung einer Folge von Steuersignalen in aufeinanderfolgenden Tachometerimpuls-Zeitpunkten zwecks selektiven Ladens der Anzahl von Übergängen in die Speicheranordnung, wobei die erste und die zweite Schieberegisterschaltung (168, 170) eine Adreßzählung für die Status- und die Daten-Bytes puffern.
28. Lesesystem für ein Balkencode-Lese-/Prozessorsystem mit
einer Mikrocomputeranordnung, wobei die Information in der
speziellen Folge von breiten und schmalen Balken sowie
Abständen eines Balkencodesymbols gespeichert ist und wobei
das Symbol zur Erzeugung eines Datensignals durch eine
Abtasteinrichtung mit sich ändernder Geschwindigkeit
abgetastet wird, insbesondere nach Anspruch 15 und/oder 18,
gekennzeichnet durch
eine Anordnung zur Erzeugung einer Impulsfolge, deren Periode eine Meßzeitabstands-Einheit als Funktion der Relativbewegung zwischen Abtasteinrichtung und Balkencodesymbol repräsentiert,
eine an die Abtasteinrichtung angekoppelte Anordnung zur Detektierung von Balken/Abstands- und Abstands/Balken-Übergängen im Datensignal,
eine Zähleranordnung zur Zählung der Anzahl von zwischen aufeinanderfolgenden Übergängen auftretenden Impulsen;
eine Speicheranordnung zur Speicherung der aufeinanderfolgenden Anzahlen von Impulsen, die während aufeinanderfolgender Dauern als Daten-Bytes gezählt werden, und
eine den Mikroprozessor enthaltende Anordnung zur Feststellung, ob die gespeicherten Daten-Bytes breite oder schmale Balken oder Abstände repräsentieren.
eine Anordnung zur Erzeugung einer Impulsfolge, deren Periode eine Meßzeitabstands-Einheit als Funktion der Relativbewegung zwischen Abtasteinrichtung und Balkencodesymbol repräsentiert,
eine an die Abtasteinrichtung angekoppelte Anordnung zur Detektierung von Balken/Abstands- und Abstands/Balken-Übergängen im Datensignal,
eine Zähleranordnung zur Zählung der Anzahl von zwischen aufeinanderfolgenden Übergängen auftretenden Impulsen;
eine Speicheranordnung zur Speicherung der aufeinanderfolgenden Anzahlen von Impulsen, die während aufeinanderfolgender Dauern als Daten-Bytes gezählt werden, und
eine den Mikroprozessor enthaltende Anordnung zur Feststellung, ob die gespeicherten Daten-Bytes breite oder schmale Balken oder Abstände repräsentieren.
29. System nach Anspruch 28,
dadurch gekennzeichnet, daß
die Impulserzeugungsanordnung einen an die
Abtasteinrichtung angekoppelten Tachometer (58) zur
Erfassung der Abtastbewegungsgeschwindigkeit aufweist
und daß die Detektoranordnung einen das Datensignal
aufnehmenden Übergangsdetektor (100) zur Erzeugung von
Übergangsimpulsen an den entsprechenden Grenzen der Balken
und Abstände aufweist.
30. System nach Anspruch 28 und/oder 29,
dadurch gekennzeichnet, daß
die Zähleranordnung einen durch den Tachometer (58)
getakteten und durch den Übergangsdetektor (100) geladenen
und gelöschten Zähler (108) aufweist, der eine Bit-Position
besitzt, welche identifiziert, ob die Anzahl von gezählten
Impulsen ein Balken oder ein Abstand ist.
31. System nach einem der Ansprüche 28 bis 30,
gekennzeichnet durch
eine an den Übergangsdetektor (100) angekoppelte und von
der Impulsgeneratoranordnung angesteuerte
Fenstergeneratoranordnung (116) zur Erzeugung einer die
Länge des Balkencodesymbols umgebenden Fensterperiode.
32. System nach einem der Ansprüche 28 bis 31,
gekennzeichnet durch
eine an den Übergangsdetektor (100) und die
Fenstergeneratoranordnung (116) angekoppelte
Folgesteueranordnung (104) zum selektiven Laden der Anzahl
der Übergänge und der Daten-Bytes in die Speicheranordnung
unter Steuerung durch die Impulserzeugungsanordnung.
33. System nach einem der Ansprüche 28 bis 32,
gekennzeichnet durch
eine an den Übergangsdetektor (100) angekoppelte
Übergangszähleranordnung (122) zur Einspeisung der Anzahl
von Übergängen als Status-Byte in die Speicheranordnung
unter Steuerung durch die Folgesteueranordnung (104)
und eine Anordnung zur Erzeugung einer Bit-Position im
Status-Byte, welche ein Maß für die Abtastrichtung ist.
34. System zur Identifizierung von Kassetten in einem Mehrfach-X,
Y-Kassettenraster mit Balkencodesymbolen auf den
Kassetten zu deren Identifizierung sowie mit einem in X-
und Y-Richtung bewegbaren optischen Abtaster (34) zur
Erzeugung von Balken-/Abstands-Datensignalen, die den durch
den optischen Abtaster (34) X-Richtung mit sich ändernder
Geschwindigkeit abgetasteten Kassetten entsprechen,
insbesondere nach Anspruch 15, 18 und/oder 28,
gekennzeichnet durch
einen Tachometer (58) zur Erzeugung von X-Richtungs-Tachometerimpulsen, die ein Maß für die Bewegungsgeschwindigkeit des optischen Abtasters (34) in X-Richtung an der Kassette vorbei sind,
eine an den optischen Abtaster (34) angekoppelte Anordnung zur Detektierung von Übergängen in den Balken-/Abstands-Datensignalen;
eine an den Tachometer (58) angekoppelte Zähleranordnung zur Erzeugung von Daten-Bytes, welche die Anzahl von X-Richtungs-Tachometerimpulsen repräsentieren, die zwischen aufeinanderfolgenden Übergängen auftreten, und welche weiterhin repräsentieren, ob das entsprechende Daten-Byte einem Balken oder einem Abstand entspricht,
eine an die Zähleranordnung angekoppelte Speicheranordnung zur Speicherung aufeinanderfolgender Daten-Bytes,
eine an die Speicheranordnung angekoppelte Anordnung zur Festlegung, ob das Daten-Byte ein Balken oder ein Abstand ist, sowie zur Festlegung der durch die Daten-Bytes repräsentierenden entsprechenden Breiten der Balken und Abstände und
eine Anordnung zur Decodierung der Sequenz von Balken- und Abstandsbreiten zwecks Identifizierung der entsprechenden Kassette.
einen Tachometer (58) zur Erzeugung von X-Richtungs-Tachometerimpulsen, die ein Maß für die Bewegungsgeschwindigkeit des optischen Abtasters (34) in X-Richtung an der Kassette vorbei sind,
eine an den optischen Abtaster (34) angekoppelte Anordnung zur Detektierung von Übergängen in den Balken-/Abstands-Datensignalen;
eine an den Tachometer (58) angekoppelte Zähleranordnung zur Erzeugung von Daten-Bytes, welche die Anzahl von X-Richtungs-Tachometerimpulsen repräsentieren, die zwischen aufeinanderfolgenden Übergängen auftreten, und welche weiterhin repräsentieren, ob das entsprechende Daten-Byte einem Balken oder einem Abstand entspricht,
eine an die Zähleranordnung angekoppelte Speicheranordnung zur Speicherung aufeinanderfolgender Daten-Bytes,
eine an die Speicheranordnung angekoppelte Anordnung zur Festlegung, ob das Daten-Byte ein Balken oder ein Abstand ist, sowie zur Festlegung der durch die Daten-Bytes repräsentierenden entsprechenden Breiten der Balken und Abstände und
eine Anordnung zur Decodierung der Sequenz von Balken- und Abstandsbreiten zwecks Identifizierung der entsprechenden Kassette.
35. System nach Anspruch 34,
gekennzeichnet durch
eine die Balken-/Abstands-Datensignale vom optischen
Abtaster (34) aufnehmende und vom Tachometer (58)
angesteuerte Fenstergeneratoranordnung (116) zur Erzeugung
eines Fenstersignals, das die Annäherung an das und das
Ende des Balkencodesymbols anzeigt.
36. System nach Anspruch 34 und/oder 35,
gekennzeichnet durch
eine an die Übergangsdetektoranordnung angekoppelte
Übergangszähleranordnung (122) zur Speicherung der Anzahl
von detektierten Übergängen und der Abtastrichtung als
Status-Byte
und einen ersten Speicherplatz in der Speicheranordnung für
das Status-Byte.
37. System nach einem der Ansprüche 34 bis 36,
dadurch gekennzeichnet, daß
ein breiter Balken bzw. ein breiter Abstand durch eine
erste Anzahl von Tachometerimpulsen und ein schmaler Balken
oder ein schmaler Abstand durch eine zweite kleinere Anzahl
von Tachometerimpulsen repräsentiert ist
und daß die Festlegungsanordnung zunächst festlegt, ob die
Anzahl von Übergängen im Status-Byte richtig ist und sodann
die aufeinanderfolgenden Daten-Bytes vergleicht, um
festzulegen, ob ein Wert gleich der ersten oder zweiten
Vielzahl von Tachometerimpulsen ist.
38. System nach einem der Ansprüche 34 bis 37,
gekennzeichnet durch
eine an die Fenstergeneratoranordnung (116) und die
Übergangsdetektoranordnung (100) angekoppelte und von den
Tachometerimpulsen angesteuerte Folgesteueranordnung (104)
zum Laden des Status-Bytes und der Daten-Bytes in die
Speicheranordnung, zum Löschen der Zähleranordnung sowie
zum Puffern einer Adreßzählung für die Status- und
Daten-Bytes.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US06/851,062 US4751375A (en) | 1986-04-11 | 1986-04-11 | Method and apparatus for reading bar code under rapidly changing scanning speed conditions |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3711855A1 true DE3711855A1 (de) | 1987-10-15 |
DE3711855C2 DE3711855C2 (de) | 1996-10-31 |
Family
ID=25309867
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE3711855A Expired - Lifetime DE3711855C2 (de) | 1986-04-11 | 1987-04-08 | Verfahren und Anordnung zum Lesen der Information eines Balkenkodesymbols |
Country Status (5)
Country | Link |
---|---|
US (1) | US4751375A (de) |
JP (1) | JPS62245489A (de) |
KR (1) | KR940009710B1 (de) |
DE (1) | DE3711855C2 (de) |
GB (1) | GB2189063B (de) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5028769A (en) * | 1986-08-20 | 1991-07-02 | Emhart Industries, Inc. | Device for reading a mold code on a glass bottle |
US5015832A (en) * | 1989-02-27 | 1991-05-14 | Kensington Laboratories, Inc. | Method of and apparatus for decoding bar code symbols |
US5565670A (en) * | 1995-03-21 | 1996-10-15 | Intermec Corporation | Cordless RF link for bar code input device modulating impulses corresponding to data state transitions |
DE10028241A1 (de) * | 2000-06-07 | 2001-12-13 | Bundesdruckerei Gmbh | Dokumentenprüfgerät |
US7457007B2 (en) * | 2003-04-07 | 2008-11-25 | Silverbrook Research Pty Ltd | Laser scanning device for printed product identification codes |
US6854656B2 (en) * | 2003-05-08 | 2005-02-15 | Fujitsu Limited | Self-scanning system with enhanced features |
KR100800332B1 (ko) * | 2005-04-13 | 2008-02-04 | 이정규 | 색깔과 모양이 형성된 라벨을 이용한 유통방법 |
JP4586086B2 (ja) * | 2008-06-25 | 2010-11-24 | 東芝テック株式会社 | ケーブル収納ユニット、スキャナシステム、及び、チェックアウトシステム |
US9104935B1 (en) | 2010-12-30 | 2015-08-11 | Cognex Corporation | Mark reader configured to prioritize images |
US9367725B2 (en) | 2011-11-03 | 2016-06-14 | Cognex Corporation | Method and apparatus for performing different decoding algorithms in different locations |
US8740081B2 (en) | 2011-11-03 | 2014-06-03 | Cognex Corporation | Method and apparatus for ordering code candidates in image for decoding attempts |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE1815700A1 (de) * | 1968-12-13 | 1970-06-25 | Licentia Gmbh | Verfahren zur Erkennung von codierten Informationen |
DE2638808A1 (de) * | 1975-08-29 | 1977-03-10 | Documation Inc | Kartenleser mit synchronisation |
DE2843462A1 (de) * | 1978-10-05 | 1980-04-17 | Interflex Datensyst | Optoelektrische einrichtung zum lesen von auf einem informationstraeger befindlichen informationen |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3991299A (en) * | 1972-02-03 | 1976-11-09 | Norand Corporation | Bar code scanner |
JPS5085320A (de) * | 1973-11-27 | 1975-07-09 | ||
GB2000346B (en) * | 1977-06-20 | 1982-08-11 | Bell & Howell Co | Bar code reader |
US4251798A (en) * | 1978-05-31 | 1981-02-17 | Symbol Technologies | Portable laser scanning arrangement for and method of evaluating and validating bar code symbols |
JPS5619551A (en) * | 1979-07-27 | 1981-02-24 | Motoda Electronics Co Ltd | Automatic reproducing unit of video |
JPS5633766A (en) * | 1979-08-28 | 1981-04-04 | Hitachi Ltd | Bar code reading device |
JPS59201174A (ja) * | 1983-04-28 | 1984-11-14 | Nissan Motor Co Ltd | バ−コ−ド読取装置における信号処理方法 |
JPH0690843B2 (ja) * | 1984-02-29 | 1994-11-14 | ソニー株式会社 | カセット自動供給装置 |
US4554445A (en) * | 1984-05-07 | 1985-11-19 | Honeywell Information Systems Inc. | Digital pulse stretcher |
-
1986
- 1986-04-11 US US06/851,062 patent/US4751375A/en not_active Expired - Lifetime
-
1987
- 1987-02-18 GB GB8703703A patent/GB2189063B/en not_active Expired - Lifetime
- 1987-04-07 KR KR1019870003298A patent/KR940009710B1/ko not_active IP Right Cessation
- 1987-04-08 DE DE3711855A patent/DE3711855C2/de not_active Expired - Lifetime
- 1987-04-09 JP JP62087881A patent/JPS62245489A/ja active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE1815700A1 (de) * | 1968-12-13 | 1970-06-25 | Licentia Gmbh | Verfahren zur Erkennung von codierten Informationen |
DE2638808A1 (de) * | 1975-08-29 | 1977-03-10 | Documation Inc | Kartenleser mit synchronisation |
DE2843462A1 (de) * | 1978-10-05 | 1980-04-17 | Interflex Datensyst | Optoelektrische einrichtung zum lesen von auf einem informationstraeger befindlichen informationen |
Also Published As
Publication number | Publication date |
---|---|
US4751375A (en) | 1988-06-14 |
JPS62245489A (ja) | 1987-10-26 |
DE3711855C2 (de) | 1996-10-31 |
GB2189063A (en) | 1987-10-14 |
KR940009710B1 (ko) | 1994-10-17 |
GB8703703D0 (en) | 1987-03-25 |
GB2189063B (en) | 1990-04-04 |
KR870010459A (ko) | 1987-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2315509C2 (de) | Verfahren und Vorrichtung zur Verarbeitung kodierterDaten | |
DE3742098C2 (de) | ||
DE3688909T2 (de) | Messanordnung mit versetzung. | |
DE2538651C2 (de) | Verfahren zum Testen einer digitalen elektronischen Schaltung und Vorrichtung zur Durchführung des Verfahrens | |
DE2524495C3 (de) | Schaltungsanordnung zur Formatpriifung von Codesignalen eines Streifencodes | |
DE2228526B2 (de) | Verfahren und Anordnung zum Lesen und Decodieren von Strichmarken-Gruppen, die Daten in codierter Form darstellen | |
DE2656123B2 (de) | Eingabeeinrichtung zum Zuführen einer Vielzahl von Zeichen, die ein Datenfeld bilden | |
DE2450859B2 (de) | Vorrichtung zum automatischen lesen und auswerten von aufgezeichneten kurven | |
DE3711855C2 (de) | Verfahren und Anordnung zum Lesen der Information eines Balkenkodesymbols | |
DE2144309A1 (de) | Gerät zum Abfühlen von streifenförmigen Aufzeichnungsträgern | |
DE1524152C3 (de) | Steuereinrichtung für die Übertragung von Informationseinheiten von den endlos umlaufenden Speicherspuren eines Magnetplattenspeichers zu dem Hauptspeicher eines Datenverarbeitungssystems | |
DE2900181C2 (de) | ||
DE2461380C3 (de) | Lesevorrichtung für codierte Informationen | |
DE2636183C3 (de) | Datenaufzeichnungseinrichtung mit einem drehbaren magnetischen Aufzeichnungsmedium | |
DE2243080A1 (de) | Vorrichtung zur wiedergabe programmiert ausgewaehlter, auf magnetkarten aufgezeichneter daten | |
DE2829479A1 (de) | Antriebssteuersystem | |
DE2534456C2 (de) | Lesevorrichtung | |
DE2259236A1 (de) | Einrichtung zum ueberarbeiten von auf magnetband aufgezeichneten digitalen informationen | |
DE2924781A1 (de) | Verfahren und anordnung zum schreiben der sektoreinteilung einer speicherplatte | |
DE2062384A1 (de) | Einrichtung zum Auswahlen von ver schiedenen Zeichenformen bei einem Drucker mit mehreren Druckzeichensatzen | |
DE2744320A1 (de) | Einrichtung zur verarbeitung von auf einem magnetischen aufzeichnungsmedium aufgezeichneten informationsbits | |
DE1499399C3 (de) | Gerät zur automatischen Ermittlung der Registrierdauer eines Ereignisses aus Balkendiagrammen | |
DE2264170C3 (de) | Anordnung zum mehrfach seriellen Lesen der Zeichen eines binären optischen Coderasters | |
DE2104351A1 (de) | Gerät zur automatischen Auswertung von Diagrammen | |
DE1298320B (de) | Einrichtung zum Lesen von Daten |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
D2 | Grant after examination | ||
8364 | No opposition during term of opposition |