DE3711855A1 - Verfahren und system zum lesen von in balkencodesymbolen codierter information - Google Patents

Verfahren und system zum lesen von in balkencodesymbolen codierter information

Info

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
Application number
DE19873711855
Other languages
English (en)
Other versions
DE3711855C2 (de
Inventor
Raymond F Ravizza
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ampex Corp
Original Assignee
Ampex Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ampex Corp filed Critical Ampex Corp
Publication of DE3711855A1 publication Critical patent/DE3711855A1/de
Application granted granted Critical
Publication of DE3711855C2 publication Critical patent/DE3711855C2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods 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/1404Methods for optical code recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/10544Methods 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/10821Methods 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/10861Methods 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/01Details
    • G06K7/016Synchronisation of sensing process

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.
Tabelle 1
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
DE3711855A 1986-04-11 1987-04-08 Verfahren und Anordnung zum Lesen der Information eines Balkenkodesymbols Expired - Lifetime DE3711855C2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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