-
ALLGEMEINER STAND DER
TECHNIK
-
1. Erfindungsgebiet
-
Die
vorliegende Erfindung betrifft ein CCD-basiertes Strichcode-Lesesystem
gemäß dem Oberbegriff
von Anspruch 1.
-
2. Beschreibung des verwandten
Stands der Technik
-
Strichcodes
werden in einer großen
Vielzahl von Anwendungen zum Abrufen von Informationen wie etwa
dem Preis von Objekten verwendet. In dieser Hinsicht werden Strichcodes
gerne weit verbreitet in Lebensmittelgeschäften und Kaufhäusern sowohl zur
Lagerkontrolle als auch für
POS-(point of sale)-Transaktionen eingesetzt.
-
Ein
Strichcode enthält
normalerweise mehrere Strichcodezeichen. Ein Strichcodezeichen ist eine
Gruppe von Linien (Strichen) und Zwischenräumen, die eine einzelne Zahl
oder einen einzelnen Buchstaben darstellen. Ein Strichcodesymbol
ist eine Sammlung mehrerer Strichcodezeichen, die eine Identifikation
eines bestimmten Objekts darstellen. Die Linien des Strichcodes
können
beispielsweise in einem Bereich von etwa 1/8'' bis
1'' Höhe und von etwa
1 bis etwa 50 Milli-Inch Dicke variieren. Die Zwischenräume zwischen
den Linien des Strichcodesymbols können unterschiedliche Breiten
aufweisen, wobei die Variation bei dem Zwischenraum eine Anzeige
der Art von Strichcodezeichen ist, die das Strichcodesymbol bilden.
-
Strichcodes
werden in der Regel von einem Strichcodescanner gelesen, indem die
Striche und Zwischenräume
auf sequenzielle Weise beleuchtet werden, wobei die Striche Licht
absorbieren und die Hintergrund zwischenräume Licht reflektieren. Dies führt zu einem
Muster von Reflexionen und Nichtreflexionen, das von einer sich
in dem Strichcodescanner befindlichen Lichtdetektierungsschaltung
erfasst wird. Die Lichtdetektierungsschaltung liefert ein Eingangssignal
an einen digitalen Prozessor, der diese Eingabe in ein digitales
Wort umsetzt.
-
Ein
Strichcode-Etikett kann von einem Scanner gelesen werden, der reflektiertes
und/oder gebrochenes Licht von den Strichen und Zwischenräumen detektiert,
die die Strichcodezeichen umfassen. Ein herkömmliches Verfahren zum Beleuchten
des Strichcode-Etiketts ist durch die Verwendung eines lesenden
Laserstrahls, wobei ein Lichtstrahl über das Strichcode-Etikett
streicht und ein optischer Detektor (wie etwa ein Fotodiodendetektor)
das reflektierte Licht detektiert. Der Detektor erzeugt ein elektrisches Signal
mit einer Amplitude, die von der Intensität des gesammelten Lichts bestimmt
wird.
-
Ein
weiteres herkömmliches
Verfahren zum Sammeln von Rücklicht
von dem Strichcode-Etikett ist durch den Einsatz eines Arrays (üblicherweise
als ladungsgekoppeltes Bauelement oder CCD bekannt) aus optischen
Detektoren, die mit einem analogen Schieberegister verbunden sind.
Bei einem derartigen Verfahren wird wie bei einem lesenden Laser
ein elektrisches Signal mit einer Amplitude erzeugt, die von der
Intensität
des gesammelten Lichts bestimmt wird. Entweder bei dem lesenden
Laserverfahren oder dem CCD-Verfahren weist die Amplitude des elektrischen
Signals einen Pegel für
dunkle Striche und einen anderen Pegel für helle Räume auf. Wenn das Strichcode-Etikett
gelesen wird, kommt es zu positiv gehenden und negativ gehenden Übergängen in dem
elektrischen Signal, die Übergänge zwischen Strichen
und Räumen
bezeichnen. Es sind Techniken bekannt zum Detektieren von Rändern von
Strichen und Räumen
durch Detektieren der Übergänge des
elektrischen Signals. Eine solche Technik wird in dem an PSC Inc.
abgetretenen, Edward Bremer erteilten US-Patent Nr. 5,382,783 beschrieben,
das in seiner Gänze
durch Bezugnahme hier aufgenommen ist. Eine weitere derartige Technik
wird in dem an Spectra-Physics Scanning Systems (jetzt PSC Scanning
Inc.) abgetretenen und an Randy Elliott et al. erteilten US-Patent
Nr. 5,298,728 beschrieben, das in seiner Gänze hier durch Bezugnahme aufgenommen ist.
Bekannt sind auch Techniken zum Bestimmen der Breite von Strichen
und Räumen
auf der Basis des relativen Orts der detektierten Ränder und
Decodieren der durch den Strichcode repräsentierten Informationen.
-
Um
einen Strichcode zu lesen können
die strichcodierten Gegenstände
manuell vor den Scanner oder automatisch auf einem sich bewegenden Förderband
bewegt werden. Alternativ kann der Scanner von einem Bediener gehalten
und auf den Strichcode ausgerichtet werden. Einige Strichcode-Etiketten
sind möglicherweise "abgeschnitten" (das heißt, sie
weisen relativ zur Länge
des Etiketts kurze Striche auf). Herkömmliche Leseeinrichtungen erfordern
sorgfältigen
Betrieb, damit man eine hohe Wahrscheinlichkeit für eine erfolgreiche
Ablesung erreicht, und sind schwierig mit abgeschnittenen Etiketten
zu verwendenen aufgrund der Schwierigkeit, eine ordnungsgemäße Orientierung
des Strichcode-Etiketts bezüglich
des Scanners zu erreichen. Zufällig orientierte
Gegenstände
auf einem Förderband
müssen
relativ zur Länge
des Codes sehr lange Striche aufweisen, damit sie mit hoher Wahrscheinlichkeit gelesen
werden.
-
Handgehaltene
einzeilige Scanner, entweder auf Laser- oder CCD-Basis, erfordern, dass ein
Bediener den Scanner relativ zum Strichcode ausrichtet und orientiert,
so dass die Leselinie im Wesentlichen senkrecht zu den Strichcoderändern verläuft. Eine derartige
Operation erfordert eine gewisse Sorgfalt auf Seiten des Bedieners
und reduziert die Produktivität.
Zudem sind diese Einrichtungen gegenüber Etikettendefekten empfindlich,
da die Detektion von Strich- und Raumrändern in der Regel entlang
einer einzelnen schmalen Leselinie erfolgt. Um die Produktivität des Bedieners
zu maximieren, Beanspruchungen aufgrund sich wiederholender Bewegungen
des Körpers
des Bedieners zu minimieren und die Empfindlichkeit gegenüber Etikettendefekten
zu minimieren, ist es deshalb wünschenswert,
Strichcodes zu lesen, die unter einer beliebigen Orientierung relativ zu
der Leseeinrichtung positioniert sein können.
-
Herkömmliche
POS-Lesesysteme erfordern in der Regel, dass ein Bediener jeden
Gegenstand handhabt (oder einen tragbaren Scanner handhabt), um
den Gegenstand auf den Scanner zum Lesen zu orientieren. Ein Förderbandsystem
kann verwendet werden, um das erforderliche Ausmaß an Aufwand zu
reduzieren. Gegenwärtige
Förderbandsysteme haben
jedoch Schwierigkeiten, Gegenstände
zu lesen, die Strichcode-Etiketten auf der Unterseite von Objekten
auf dem Förderband
aufweisen. Folglich muss der Bediener den Gegenstand so positionieren, dass
das Strichcode-Etikett der Oberseite des Förderbands nicht zugewandt ist,
oder muss jeden Gegenstand von einem Zuführungsförderband wegnehmen, ihn ablesen
und ihn auf ein Mitnahmeförderband
platzieren. Herkömmliche
Systeme gestatten im Allgemeinen nicht das Lesen aller Oberflächen der Pakete,
was erfordert, dass der Bediener die Pakete so positioniert, dass
sich der Strichcode auf den Oberflächen befindet, die gelesen
werden sollen.
-
Um
das Problem des Lesens vom Strichcode auf der Unterseite zu überwinden,
offenbart
US 5,252,814 ein
Strichcode-Lesesystem gemäß dem Oberbegriff
von Anspruch 1 mit einem ersten und einem zweiten Förderband,
einem Lichtsender, der in eine Lücke
unter einer Oberseite des ersten und zweiten Förderbands positioniert ist,
einen Lichtempfänger,
der zum Empfangen von Licht von der Unterseite von Objekten konfiguriert
ist, und einer Platte, die ganz innerhalb der Lücke zwischen den Förderbändern angeordnet
ist.
-
Verschiedene
Verfahren sind eingesetzt worden, um zu versuchen, ein Strichcode-Etikett
in beliebiger Orientierung zu dem Scanner in einem Minimum von Durchläufen zu
lesen. Somit existieren mehrzeilige Laserscanner oder solche für komplexe Muster,
die Strichcodes über
einen Bereich von Orientierungen hinweg lesen können. Diese Einrichtungen verwenden
allgemein Muster formende Spiegel oder holografische Strahlablenkelemente
und sind somit größer als
andere Scanner und erfordern mehr Komponenten, da die Lesemusterkomplexität zunimmt.
Diese Scanner erfordern in der Regel einen Komplexmechanismus zum
Führen
des Laserstrahls in einem vorbestimmten Muster und erfordern deshalb
zusätzliche
und teure mechanische Teile, was die Anfälligkeit gegenüber Verschleiß erhöht.
-
Bei
einer anderen Art herkömmlichen
Scanners wird ein zweidimensionales Array von CCD-Elementen verwendet,
um jeweils ein ganzes Bild des Strichcodes zu erhalten. Der Nachteil
dieser Einrichtung besteht jedoch darin, dass große Speichermengen
benötigt
werden, um das zu verarbeitende Bild zu speichern, und große Berechnungsmengen
benötigt
werden, um die Randortdaten aus dem gespeicherten Bild zu extrahieren.
Zudem sind komplizierte Algorithmen erforderlich, um die Orientierung
und Charakteristiken des Strichcode-Etiketts zu bestimmen.
-
Aus
dem an Spectra-Physics Corporation (nun PSC Scanning, Inc.) abgetretenen
und an Gerald Cherry et al. erteilten US-Patent Nr. 5,446.271 ist eine
Technik bekannt zum Erzeugen mehrerer virtueller Leselinien auf
der Basis gespeicherter Bilddaten von einer zweidimensionalen oder
eindimensionalen CCD-Kamera. Bei diesem System weist ein optischer Sensor
ein planares Bild gebungsgebiet auf, das einem Bildgebungsgebiet
einer zweidimensionalen CCD-Kamera entsprechen kann oder einer eindimensionalen
CCD-Kamera, bei der die zweite Dimension durch Rastereingabe aufgrund
einer Relativbewegung des optischen Sensors bezüglich eines Strichcode-Etiketts
erzeugt wird.
-
Ein
beispielhafter Strichcode, der von dem System wie aus US-Paten Nr.
5,446,271 bekannt gelesen werden kann, ist in 1 gezeigt,
wo das Strichcode-Etikett 11 aus einem oder mehreren kleinen
Stücken 21 bestehen
kann, die die Mindestgröße aufweisen,
die für
das Decodieren erforderlich ist (das heißt kleinste decodierbare Stücke). Ein
kleinstes decodierbares Stück 21 eines
Strichcode-Etiketts 11 weist eine Höhe HL und eine Breite WL auf.
Beim Lesen ist das Strichcode-Etikett 11 möglicherweise nicht
unter einem perfekt flachen Winkel zum optischen Sensor ausgerichtet,
sondern kann unter einem Winkel AL bezüglich des optischen Sensors
geneigt sein, wie in 2 gezeigt. Das Ergebnis kann darin
bestehen, dass die Projektion des Bildes des Strichcode-Etiketts 11 (oder
eines kleinsten decodierbaren Stücks 21 davon)
verzerrt wird, wenn es das Bildgebungsgebiet 13 trifft.
Die Projektion 20 des Etiketts oder des Bilds des Stücks weist
eine Höhe
H (die "scheinbare
Höhe") und eine Breite
W (die "scheinbare
Breite") auf. Wenn
die relativen Abmessungen HL und WL des kleinsten decodierbaren Stücks bekannt
sind und auch der Neigungswinkel AL bekannt ist, kann die Größe der Projektion 20 auf das
Bildgebungsgebiet 13 bestimmt werden. US-Patent Nr. 5,446,271
beschreibt im Detail den Weg zum Bestimmen der Größe der Projektion 20.
Beispielsweise sind UPC-Codes (universal product codes) "over-square"-Codes, bei denen
die Höhe
der Striche in jedem Stück
des Codes größer ist
als die Breite des Stücks
und des Codes.
-
Das
Strichcode-Etikett 11 weist auch eine Mindestelementbreite
WE der das Etikett 11 ausmachenden Strich- und Raumelemente
auf. Die kleinste scheinbare Strichcodeelementbreite WMIN, die die bevorzugten
Charakteristiken des Bildgebungsgebiets 13 beeinflusst,
kann aus der Mindeststrichcodeelementbreite WE abgeleitet werden,
wie im US-Patent Nr. 5,446,271 beschrieben. Das Cherry-Patent stellt
fest, dass "zehn
oder mehr Pixel pro Element bei einem UPC-Code-Lesegerät wünschenswert
wären". Wenn bei dem im
US-Patent Nr. 5,446,271 beschriebenen System ein CCD-basiertes Lesegerät ein bestimmtes
Gebiet liest, das es abdeckt, werden nur Werte von bestimmten Elemneten
in dem CCD-Array
in einem Speicher zur späteren
Verarbeitung gespeichert, um zu bestimmen, ob Reflexionen von einem
Strichcode empfangen worden sind. Beispielsweise zeigt 3A,
wie horizontale Leselinien erzeugt werden, wobei nur die "*"-Pixel in einem Speicher gespeichert
werden, und 3B zeigt, wie diagonale Leselinien
erzeugt werden, wobei nur die "*"-Pixel im Speicher
gespeichert werden. Durch dieses System können mehrere verschiedene Leselinien
erzeugt und im Speicher gespeichert werden (siehe 4),
wobei (hoffentlich) eine dieser Leselinie ordnungsgemäß orientiert
ist, so dass ein Strichcode gelesen wird, der möglicherweise in einer beliebigen bestimmten
Orientierung bezüglich
der Laserleseeinrichtung und dem CCD-basierten Lesegerät positioniert
ist. Cherry offenbart auch eine Bilderfassungseinheit, die so positioniert
ist, dass sie Rücklicht
von einem Objekt auf einem Förderband
empfängt,
während
sich das Objekt über
eine Lücke
zwischen einem ersten Band und einem zweiten Band hinweg bewegt.
Die Bilderfassungseinheit ist in der Lücke unter den Bändern positioniert.
-
Während sich
das oben beschriebene Cherry-Patent sehr gut eignet zum Detektieren
von Strichcodes unter einem beliebigen jeweiligen Winkel, gibt es
immer noch Probleme bezüglich
Speichergröße und Größe des CCD-basierten Arrays,
die verbessert werden könnten,
sowie der Orientierung des CCD-basierten Lesegeräts selbst bezüglich eines gelesenen
Strichcodes.
-
KURZDARSTELLUNG
DER ERFINDUNG
-
Eine
Aufgabe der vorliegenden Erfindung besteht in der Bereitstellung
eines Strichcode-Lesegeräts,
das in der Lage ist, Strichcodes in einer beliebigen jeweiligen
Orientierung bezüglich
der Strichcodes selbst in einer Position unter den Strichcodes zu
lesen, wie etwa, wenn das Lesegerät in einer von einer Patte
bedeckten Lücke
zwischen zwei separaten Förderbändern auf
einem Förderbandsystem
positioniert ist, wobei die Platte gestattet, dass Licht im Wesentlichen
dort hindurch tritt.
-
Noch
eine weitere Aufgabe der Erfindung besteht in der Bereitstellung
eines Systems, das eine CCD-basierte Kamera zusammen mit einer Optik verwendet,
um die Anzahl der Kameras zu verringern, die erforderlich sind,
um ein bestimmtes Gebiet mit einem bestimmten gewünschten
Niveau an Strich-Raum-Auflösung
zu lesen.
-
Diese
und weitere Aufgaben der Erfindung können durch ein Strichcode-Lesesystem
bewerkstelligt werden, welches Folgendes enthält: ein erstes Förderband,
um Gegenstände
von einem ersten Ort zu einem zweiten Ort zu befördern, und ein zweites Förderband
zur Aufnahme von Objekten von dem ersten Förderband und zur Bewegung der
Objekte zu einem dritten Ort. Das System enthält weiterhin einen Lichtsender,
der in eine Lücke
unterhalb einer Oberseite des ersten und zweiten Förderbandes
platziert ist, der zum Beleuchten der Strichcode-Etiketten auf der
Unterseite der Objekte konfiguriert ist, wenn die Objekte von dem
ersten Förderband
zu dem zweiten Förderband
bewegt werden. Das System enthält
außerdem
einen Lichtempfänger,
der in der Lücke
platziert ist und der zum Empfangen von reflektiertem Licht von
der Unterseite der Objekte aufgrund der durch den Lichtsender beleuchteten
Objekte konfiguriert ist. Das System enthält noch weiter eine fensterartige
Einheit, die vollständig
innerhalb der Lücke
angeordnet ist, wobei die Oberseite der fensterartigen Einheit eine
Oberseite aufweist, die entlang einer selben Ebene wie die Oberseiten
des ersten und zweiten Förderbandes
gelegen ist. Die Oberseite der fensterartigen Einheit stellt eine
mit den Oberseiten des ersten und zweiten Förderbandes kontinuierliche Oberseite
bereit, wenn die Objekte von dem ersten Ort zu dem dritten Ort bewegt
werden, wobei die fensterartige Einheit eine Vergrößerung für das Ausgangslicht
des Lichtsenders bereitstellt und die Vergrößerung eine Kompensation in
der Art bereitstellt, dass der Lichtempfänger Licht empfangen kann von mehreren
Bereichen der Oberseite der fensterartigen Einheit als ohne die
Vergrößerung.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
Die
oben erwähnten
Aufgaben und Vorteile der Erfindung werden aufgrund der folgenden
ausführlichen
Beschreibung in Verbindung mit den beiliegenden Zeichnungen umfassender
deutlich, wobei durchweg gleiche Bezugszahlen entsprechende Teile
bezeichnen. Es zeigen:
-
1 ein
typisches Strichcode-Etikett;
-
2 ein
Diagramm eines bezüglich
eines Bildgebungsgebiets positionierten optischen Sensors;
-
3A wie
eine virtuelle horizontale Rasterlinie aus gespeicherten Bilddaten
in einer herkömmlichen
Strichcode-Leseeinrichtung erzeugt werden kann;
-
3B wie
eine virtuelle diagonale Rasterlinie aus gespeicherten Bilddaten
in einer herkömmlichen
Strichcode-Leseeinrichtung erzeugt werden kann;
-
4 mehrere
virtuelle Leselinien, die aus gespeicherten Bilddaten erzeugt werden
können,
in einer herkömmlichen
Strichcode-Leseeinrichtung;
-
5 in
Blockdiagrammform eine Strichcode-Leseeinrichtung gemäß einer
ersten Ausführungsform
der Erfindung;
-
6 eine
Seitenansicht der Strichcode-Leseeinrichtung gemäß der ersten Ausführungsform, mit
einem Förderbandsystem
verwendet;
-
7 eine
Ansicht der Strichcode-Leseeinrichtung gemäß der ersten Ausführungsform
in einer Breitenrichtung, von der Oberseite eines mit der Strichcode-Leseeinrichtung
verwendeten Förderbandsystems
herunterschauend;
-
8 einen
alternativen Aufbau der Strichcode-Leseeinrichtung gemäß der ersten Ausführungsform,
wobei eine Optik verwendet wird;
-
9 in
Blockdiagrammform die Details eines in der ersten Ausführungsform
verwendeten Konvertierungsmoduls;
-
10 die
Zeitsteuersequenz, wie Daten in einen Speicher in dem in der ersten
Ausführungsform verwendeten
Konvertierungsmodul geschrieben werden;
-
11 eine
alternative Konfiguration des in der ersten Ausführungsform verwendeten Konvertierungsmoduls;
-
12 in
Blockdiagrammform eine in der ersten Ausführungsform verwendete Rasterkonvertierungsimplementierung,
die in der Lage ist, gleichzeitig Ausgangssignale von vier Zeilenscankameras zu
verarbeiten;
-
13 in
Blockdiagrammform eine Strichcode-Leseeinrichtung bei Betrachtung
von oberhalb eines Förderbands;
-
14 die
Laserlichtquelle und die CCD-basierte Kamera, in einer der beiden
Positionen positioniert, bei Betrachtung direkt vor oder hinter
einem Förderband;
-
15 in
Blockdiagrammform eine Strichcode-Leseeinrichtung;
-
16 eine
Konfiguration eines Speicherabschnitts der üblichen Logikeinheit und
-
17 ein
Flussdiagramm der für
die Strichcode-Leseeinrichtung
durchgeführten
Schritte.
-
Ausführliche Beschreibung der bevorzugten
Ausführungsformen
-
Bevorzugte
Ausführungsformen
der Erfindung werden unten unter Bezugnahme auf 5 bis 17 ausführlich beschrieben. 5 zeigt
im Blockdiagrammform eine erste Ausführungsform der Erfindung, in
der zum Empfangen von Rücklicht
von einem nicht gezeigten Strichcode-Etikett mehrere CCD-basierte Kameras 510A–510C verwendet
werden, wobei das Rücklicht
zurückzuführen ist
auf Licht, das von entsprechenden Laserlichtquellen 520A–520C auf
das Strichcode-Etikett gerichtet wird. Jeder Kamera 510A–510C ist
wie in 5 gezeigt ein Objektiv assoziiert. Jede Kamera 510A–510C ist mit
einem assoziierten Konvertierungsmodul 530A–530C verbunden,
das die von seiner assoziierten Kamera ausgegebenen Bilddaten empfängt und nur
einen bestimmten Teil der gespeicherten Daten an eine Decodierereinheit 540 aussendet.
Die Decodierereinheit 540 führt eine Decodierung der empfangenen
Daten durch, um zu bestimmen, ob ein Strichcode-Etikett gelesen
worden ist oder nicht. Ein derartiges System kann mit einem Förderbandsystem
verwendet werden (wobei Kisten mit Strichcode-Etiketten an dem System vorbeilaufen)
oder ohne ein Förderbandsystem,
je nach den Bedürfnissen
eines Benutzers des Systems. Zur leichteren Erläuterung wird die erste Ausführungsform
der Erfindung nachfolgend unter Bezugnahme auf ein Förderbandsystem beschrieben.
-
In 6 sind
ein erstes Förderband 610 und ein
zweites Förderband 620 gezeigt
mit einer Lücke 630 zwischen
einem Ende des ersten Förderbands 610 und
einem benachbarten Ende des zweiten Förderbands 620. Bei
der ersten Ausführungsform
ist eine Komponente 635 in die Lücke 630 montiert,
so dass zwischen einem Ende des ersten Förderbands 610 und
dem benachbarten Ende des zweiten Förderbands 620 eine
im Wesentlichen kontinuierliche Oberfläche bereitgestellt wird. Die
Komponente 635 hat einen Aufbau derart, dass sie den Durchtritt
von Licht gestattet, wie etwa eine klare Kunststoff- oder Glasplatte.
Alternativ kann die Lücke 630 mit
einer ausreichend kleinen Größe konfiguriert
sein (z. B. 1/2 Inch (1.27 cm) Breite), ohne dass irgendeine Komponente
innerhalb der Lücke 630 angeordnet
ist. Aufgrund der geringen Breite der Lücke 630 würden entlang
der Oberseite der Förderbänder 610 und 620 passierende
Gegenstände
nicht in die Lücke 630 fallen.
Somit können
sogar sehr kleine Gegenstände vom
ersten Förderband 610 über die
Lücke 630 und auf
das zweite Förderband 620 passieren.
-
Bei
herkömmlichen
Strichcode-Lesesystemen unter Verwendung von Förderbändern können Scanner entlang fünf separater
Richtungen angeordnet sein – i)
vor den Förderbändern, ii)
hinter den Förderbändern, iii)
auf einer Seite der Förderbänder, iv) auf
der anderen Seite der Förderbänder und
v) über den
Förderbändern. Diese
als fünfseitige
Lesesysteme bekannten Systeme detektieren und decodieren Strichcode-Etiketten
gut, die möglicherweise
angeordnet sein können:
i) an der Vorderseite einer Kiste auf dem Förderband, ii) an der Rückseite
einer Kiste auf dem Förderband,
iii) auf einer Seite der Kiste auf dem Förderband, iv) auf der anderen
Seite der Kiste auf dem Förderband
oder v) auf der Oberseite der Kiste auf dem Förderband. Wenn jedoch ein Strichcode-Etikett
auf der Unterseite der Kiste auf dem Förderband angeordnet ist, muss
sie von einem Bediener vor dem Lesen des Etiketts von Hand neu positioniert
werden, so dass einer der fünf
Scanner in der Lage sein kann, das Strichcode-Etikett zu detektieren.
-
In
der ersten Ausführungsform
jedoch ist diese manuelle Bewegung durch einen Bediener nicht erforderlich,
da ein innerhalb der Lücke 630 (oder
unter der Glasplatte oder dem Kunststoff in der Lücke 630)
angeordneter Scanner die Strichcode-Etiketten entlang einer sechsten
Seite detektieren kann. Somit entspricht die erste Ausführungsform
einem sechsseitigen Lesesystem.
-
Unter
der Annahme, dass die Förderbänder 610 und 620 eine
Breite von etwa 30 Inch (76,2 cm) aufweisen, und unter der Annahme,
dass die Strichcode-Etiketten Striche und Räume mit einer Mindestbreite
von 15 Milli-Inch
(0,38 mm) aufweisen, ist es wichtig, die Anzahl der CCD-basierten
Kameras zu bestimmen, die innerhalb der Lücke 630 angeordnet sein
müssen,
damit ein Etikett auf dem Boden einer Kiste gelesen werden kann,
die irgendwo auf der Lücke 630 (d.
h. irgendwo auf einer Längsrichtung
auf der Lücke 630)
zwischen den Förderbändern 610 und 620 positioniert
ist.
-
Angenommen,
eine CCD-basierte Kamera weist 2048 = 211 Pixel
auf, und angenommen, dass gewünscht
wird, mindestens drei Pixel pro Mindestbreite/-raum zu haben, dann
kann diese eine Kamera Rücklicht über 2048·15 Milli-Inch/3
= 10,24 Inch (26 cm) detektieren. Somit werden drei separate CCD-basierte
Kameras benötigt,
die zueinander wie in 7 gezeigt koaxial beabstandet
sind, um die ganze Breite der Förderbänder 610 und 620 von
30 Inch abzudecken. Bei dieser Konfiguration wird eine Laserlichtquelle 520A–520C für jede der
CCD-basierten Kameras 510A–510C bereitgestellt.
Jede der Laserlichtquellen 520A–520C ist fest in
der Lücke 630 unter
dem ersten und zweiten Förderband 610, 620 positioniert.
Jede der Laserlichtquellen 520A–520C ist positioniert
zum Ausgeben von Laserlicht durch die Lücke 630 und auf ein
bestimmtes Gebiet mit einer Breite von etwa 10'' auf
der Lücke 630 des
30 Inch breiten Förderbandsystems.
Das Licht von den Laserlichtquellen 520A–520C wird
von einem Objekt zurückreflektiert
und wird von einer entsprechenden der CCD-basierten Kameras 510A–510C empfangen.
-
Bei
dem obigen Beispiel wird angenommen, dass jedes Pixel einer CCD-basierten
Kamera Licht aus einem 5 Milli-Inch (0,127 mm) breiten Gebiet empfangen
kann. Je nach der Art von CCD-basierter Kamera und dem Abstand,
in dem die Kamera bezüglich
des Bildgebungsgebiets positiniert ist, ist dies jedoch möglicherweise
nicht immer der Fall. In diesen Situationen ist eine Optik 860 zwischen
dem Bildgebungsgebiet (d. h. der Oberseite der Glasplatte oder des
Kunststoffs, die oder der in der Lücke 630 angeordnet
ist) und den Kameras vorgesehen, wie in 8 zu sehen.
Diese Optik 860 weist einen Vergrößerungsgrad auf, der ausreicht,
um die gewünschte regionale
Abdeckung für
die Pixel der Kameras bereitzustellen. Bei einer alternativen Konfiguration kann
die Optik 860 sowohl als eine vergrößernde und/oder fokussierende
Einrichtung dienen sowie als eine Abdeckplatte für das Lückengebiet 630 (d.
h. Element 635 kann die Optik umfassen). Bevorzugt weist
die Oberseite der Glasplatte oder des Kunststoffs, die oder der
in der Lücke 630 angeordnet
ist, eine harte Beschichtung wie etwa eine Rubinbeschichtung oder
eine andere Art von kratzfester Beschichtung auf, um dem Verkratzen
durch Objekte zu widerstehen, wenn sie sich über die Glasplatte oder den
Kunststoff von dem ersten Förderband 610 zum zweiten
Förderband 620 bewegen.
-
Wenn
beispielsweise eine Kamera 1024 Pixel aufweist, wobei jedes Pixel
Licht aus einem 2,5 Milli-Inch (0,0635 mm) breiten Gebiet empfangen kann,
wenn die Kamera 1 Inch (2,54 cm) von dem Bildgebungsgebiet weg positioniert
ist, dann muss die Optik 860 eine "mal 2" (x2) Vergrößerung bereitstellen, damit
man eine Breite von 5 Milli-Inch (0,127 mm) für jedes Pixel erhält. Diese
Breite von 5 Milli-Inch entspricht der Anforderung von drei Pixeln
pro kleinstem Strich/Raum, die als Anforderung für das System aufgestellt wurde.
In diesem Fall ist eine Kamera mit der Optik 860 in der
Lage, ein Gebiet auf dem Förderband
von 7024 Pixel·2,5
Milli-Inch/Pixel (ohne Optikvergrößerung)·2 (Optikvergrößerung)
= 5,1 Inch (13 cm) bereitzustellen. Somit werden sechs CCD-Kameras
erforderlich sein, um die ganze Breite des Förderbandes von 30 Inch abzudecken.
Analog zu der mit den CCD-Kameras verwendeten Optik kann gegebenenfalls
mit der Laserlichtquelle eine zusätzliche Optik verwendet werden.
-
Bei
der ersten Ausführungsform
wird eine Anforderung von drei Pixeln pro kleinster Breite Strich/Raum
verwendet, doch erkennt der Durchschnittsfachmann, dass eine beliebige
Anzahl von Pixeln pro kleinster Breite Strich/Raum verwendet werden
kann und man gleichzeitig innerhalb des Schutzbereichs der Erfindung
bleibt, solange zumindest ein Pixel pro kleinster Breite Strich/Raum
erfüllt
ist. Je mehr Pixel man pro kleinster Breite Strich/Raum hat, umso
besser sind natürlich
die Informationen, die zu dem Decodierer gesendet werden, damit
man eine bessere Wahrscheinlichkeit erhält, ein Strichcode-Etikett
korrekt zu decodieren. Mehr als ein Pixel pro kleinster Breite Strich/Raum
zu haben, ist auch nützlich
für das
ordnungsgemäße Decodieren
von Strichcode-Etiketten, auf denen sich Druckfehler befinden.
-
Bei
der Ausführungsform
von 5 ist die Decodierereinheit 540 nur in
der Lage, X-Scanmuster von einer oder mehreren Sammlereinheiten
zu empfangen, und so müssen
die Konvertierungsmodule 530A–530C die zweidimensionalen
Daten von jeder der Kameras 510A–510C rekonfigurieren,
damit die X-Scanmuster an die Decodierereinheit 540 geliefert
werden. Ein Weg, um diese Scankonvertierung zu erzielen, würde darin
liegen, ein System einzusetzen, das dem in US-Patent Nr. 5,446,271
offenbarten ähnlich
ist. Bei der vorliegenden Erfindung jedoch werden alle Pixeldaten
in einen Speicher innerhalb jedes der Konvertierungsmodule 530A–530C gelesen,
doch werden nur Daten von den vorbestimmten Gebieten des Speichers
zu dem Decodierermodul 540 ausgegeben. Da das X-Scanmuster zwei
entgegengesetzt orientierten diagonalen 45-Grad-Linien entspricht,
würde eine
diagonale Linie des X-Scanmusters dem ersten Element in der ersten
Spalte eines n-mal-n-Speichers
entsprechen (d. h. ein Speicher, der n2 Datenbits
speichern kann), dem zweiten Element in der zweiten Spalte des Speichers,
..., dem n-ten Element in der n-ten Spalte des Speichers. Analog
würde die
andere diagonale Linie des X-Scanmusters dem n-ten Element der ersten Spalte
entsprechen, dem (n – 1)-ten
Element der zweiten Spalte, ..., dem ersten Element der n-ten Spalte.
Ein entsprechender Abschnitt des X-Musters wird von jedem Konvertierungsmodul
an die Decodierereinheit 540 geliefert.
-
Ein
Blockdiagramm eines Konvertierungsmoduls, wie etwa 510A,
ist in 9 gezeigt. Eine Kameraschnittstelleneinheit 905 ist
an die assoziierte Kamera (entweder 510A, 510B oder 510C)
gekoppelt. Ein Controller für
direkten Speicherzugriff (DMA) 910 stellt die Steuerung
bereit für
das Senden der Pixelbilddaten von der Kameraschnittstelleneinheit 905 an
einen Speicher 920. Der Speicher 920 ist als ein
n × n-Speicher
mit n2 Speicherstellen konfiguriert (z.
B. 10 × 10
= 100 Speicherstellen). In der ersten Ausführungsform ist der Speicher 920 ein
Direktzugriffsspeicher und ist als ein 2048-Wort-mal-2048-Wort-Speicher
konfiguriert, der einen symmetrischen Block entsprechend 10,24'' quadrat bereitstellt. Die Daten, die den
beiden diagonalen Linien entsprechen, die das X-Scanmuster bilden,
werden von einem digitalen Signalprozessor (DSP) 930 gelesen,
der mit dem Speicher 920 verbunden ist. Der DSP 930 liest
die entsprechenden X-Scanmusterdaten aus vorbestimmten Speicherstellen
in den Speicher 920 unter Verwendung eines von einem EEPROM 940 abgerufenen
Programms. Der DSP 930 sorgt für die Koordination zwischen
den Kameradaten und den Downloads zu der Decodierereinheit 540.
Das im EEPROM 940 gespeicherte Programm sorgt für das Mittel,
durch das der DSP 930 die richtigen Speicherstellen aus dem
Speicher 920 abruft, um an die Decodierereinheit 540 X-Scanmusterdaten
auszugeben (siehe 5).
-
Die
Grundfunktion des Systems gemäß der ersten
Ausführungsform
besteht in der Konvertierung der sequenziellen Rasterablesungen
von der Kamera in ein X-Musterformat ähnlich der
Decodierereinheit 540. Das Array in dem Speicher 920 modelliert ein
Bild dessen, was für
eine endliche Zeitperiode an der Kamera vorbeigelaufen ist. Es ist
auch zyklisch, wodurch bewirkt wird, dass der abgebildete Strichcode
die diagonalen Ableseelemente in dem Array durchquert. Im Grunde
beinhaltet der Prozess das Schreiben in den Speicher 920 in
einer Sequenz, was die Kamera abbildet, und dann das Lesen der Diagonalen
des Arrays in vordefinierten Perioden. Der ganze Prozess beinhaltet
somit die richtige Zeitsteuerung beim Lesen und Schreiben in den/aus
dem Speicher 920.
-
Das
Schreiben in den Speicher 920 (Kameradaten) beginnt mit
einem Anfangspunkt (0) und wird fortgesetzt bis zum Ende des Arrays,
224 – 1 Wörter. Bei
diesem Punkt wird das Schreiben wieder bei dem Anfangspunkt von
Neuem gestartet. Jede Zeile umfasst 2048 Wörter zusammen mit einem Zeilenzeiger,
der nach Beendigung jeder Zeile aktualisiert wird. Der Zeilenzeiger
wird effektiv das Ende des Speicherarrays. Der Zeilenzeiger fungiert
auch als ein Element zum Erzeugen des X-Musters, da er die Speicheradressierung
effektiv um die untere und obere Grenze faltet.
-
Das
Lesen der diagonalen Elemente simuliert das X-Muster für einen omnidirektionalen Scanner,
links oben nach rechts unten, gefolgt von rechts oben nach links
unten. Erreicht wird dies durch Subtraktion und Addition einer Speicheradresse
sowohl zu dem Spalten- als
auch dem Zeilenelement. Beispielsweise wird das erste diagonale
Element erzeugt durch Addieren von 2048 + 1 zu der letzten Speicheradresse
beginnend bei dem Zeilenzeiger. Dies wird für jedes diagonale Element 2048
mal wiederholt. Die andere Diagonale wird durch 2048 – 1 erzeugt.
-
Es
werden eine Schreibrate von 125 Mikrosekunden pro Zeile (2048 Wörter) und
1 Millisekunde für
jedes X-Muster (4096 Wörter)
angenommen, dann beträgt
das Verhältnis
für die
Eingabedatenrate zur Ausgabedatenrate 4:1. Deshalb gibt es für jeweils vier
Schreibvorgänge
in das Array einen Lesevorgang zu der Decodierereinheit 540.
-
Bei
der eigentlichen Leistung wird das Schreiben der Zeilendaten in
erster Linie von der Förderbandgeschwindigkeit
gesteuert, wobei die Geschwindigkeit des Förderbands von einem Drehzahlmesser
bestimmt wird. Die Ableitung der Geschwindigkeit liefert die erforderliche
Rahmentaktung für eine
Auflösung
von 5 Milli-Inch.
-
Bei
dem DSP 930 kann es sich um ein Modell TMS320C3x oder einen
beliebigen anderen Typ von digitalem Signalprozessor handeln. Modell TMS320C3x
ist ein 32-Bit-Prozessor
mit der Fähigkeit
zum Adressieren von 16 M Wörtern.
Sollte das Rohkameravideomaterial für acht Bit digitalisiert werden,
kann der TMS320C3x vier Kameras gleichzeitig handhaben.
-
Bei
der ersten Ausführungsform
werden Laser als die Lichtsender 520A–520C bereitgestellt,
da eine Weißlichtquelle
(oder Weißlichtquellen)
in der Regel nicht ausreichen würde(n),
um ein Strichcode-Etikett zu be leuchten, das bezüglich einer Lichtsender- und
Lichtempfängereinheit
oben positioniert wäre.
Eine Laserquelle kann zweckmäßigerweise
innerhalb des schmalen Lückengebiets
zwischen Förderbändern verwendet
werden und weist ein besseres Signal-Rausch-Verhältnis als eine Weißlichtquelle
(wie etwa eine Lampe) auf.
-
Wie
oben erläutert
konvertiert jede Konvertierungsmoduleinheit 530A–530C das
von ihrer assoziierten CCD-Kamera 510A–510C abgelesene
sequenzielle Raster in ein diagonales Format, das der Decodierereinheit 540 vertraut
ist. Bei der ersten Ausführungsform
ist die Decodierereinheit 540 ein vom LazerData (jetzt
Teil von PSC Inc.) hergestellter 990-E-Kasten. Das Speicherarray 920 speichert
einen Schnappschuss dessen, was an den CCD-Kameras 510A–510C für eine endliche
Zeitperiode vorbeigelaufen ist. Das Speicherarray 920 wird
zyklisch aktualisiert. Der abgebildete Strichcode durchquert im
Wesentlichen die diagonalen Leseelemente in dem Speicherarray 920.
-
Bei
der in 10 gezeigten ersten Ausführungsform
werden Pixelelemente von der CCD-Kamera 510A–510C zu
einem ersten Abtastzeitpunkt t1 von dem
DMA 910 in ein (als eine erste Spalte gezeigtes) erstes
Gebiet des Speichers 920 geschrieben. In der nachfolgend
angeführten
Erörterung
wird angenommen, dass jedes CCD-Element einem Pixel entspricht,
wobei jedem Pixel ein Bit zugeordnet ist. Natürlich erkennt der Durchschnittsfachmann,
dass das System gemäß der Erfindung
mit einem System betrieben werden kann, das mehr als ein Pixel pro CCD-Element
und/oder mehr als ein für
jedes Pixel zugewiesenes Bit verwendet.
-
Für eine eindimensionale
CCD-Kamera wird zu einem bestimmten Abtastzeitpunkt eine ganze Spalte
des Speichers 920 beschrieben. Zu einem zweiten Abtastzeitpunkt
t2 = t1 + Δt wird eine
(unmittelbar rechts von der zuvor eingeschriebenen Spalte von 10 angeordnete)
nächste
Spalte von dem DMA 910 beschrieben. Diese Prozedur wird
fortgesetzt, bis die n-te (letzte) Spalte des Speichers 920 von
dem DMA 910 beim n-ten Abtastzeitpunkt tn =
t1 + n·Δt beschrieben
worden ist. Wenn die n-te Spalte beschrieben worden ist, dann wird
der DSP 930 benachrichtigt und er führt sein Lesen bestimmter Speicherorte
innerhalb des Speichers 920 durch, um zu erreichen, dass
das X-Scanmuster zu der Decodierereinheit 540 geschickt
wird.
-
Der
Speicher 920 kann dann zu diesem Zeitpunkt durch ein Signal
von dem DSP 930 zurückgesetzt
werden, das anzeigt, dass er die im Speicher 920 gespeicherten
Informationen nicht länger
benötigt.
Nach dem Zurücksetzen
ist der Speicher 920 bereit, die Daten von dem (n + 1)-ten
Zeitpunkt tn+1 = t1 +
(n + 1)·Δt zu empfangen,
die von dem DMA 910 in die erste Spalte des Speichers 920 geschrieben
werden sollen. Als Alternative braucht der Speicher 920 nicht
zurückgesetzt
zu werden, und so werden die dem (n + 1)-ten Zeitpunkt tn+1 entsprechenden Pixeldaten über die
Daten von dem ersten Zeitpunkt t1 geschrieben,
wobei die Pixeldaten entsprechend dem (n + 2)-ten Zeitpunkt tn+2 über
die Daten von dem zweiten Zeitpunkt t2 geschrieben
werden usw. wenn der 2n-te Zeitpunkt t2n eintritt
(wo die Daten von dem 2n-ten Zeitpunkt t2n über die
Daten von dem n-ten Zeitpunkt tn geschrieben
werden), kann der DSP 930 dann die Daten von den bestimmten
Orten in dem Speicher 920 auf eine Weise wieder abrufen,
die der ähnlich
sind, was er nach dem n-ten Zeitpunkt tn tat.
-
Ein
weiteres wichtiges Merkmal der vorliegenden Erfindung besteht darin,
dass sie ein Speichersystem aufweist, das schnell genug ist, um
eine bestimmte Systemanforderung wie etwa eine Förderbandgeschwindigkeit bereitzustellen.
Als Beispiel sei angenommen, dass das System das Lesen von 15 Milli-Inch-(0,38
mm)-Strichcodes erfordert, die sich auf einem Förderband mit 150 Fuß (45,7
m) bewegen. Um einen Sicherheitsspielraum zu haben, wird eine CCD-Kamera
so ausgelegt, dass sie eine Auflösung
von 5 Milli-Inch (0,127 mm) bei 200 fpm (61 Meter pro Minute) aufweist.
Man beachte, dass eine 5 Milli-Inch-Auflösungsfähigkeit an der CCD-Kamera wegen
der Nyquist-Kriterien (d. h. deren Notwendigkeit, mit einer Rate
von mindestens dem Doppelten der höchsten Frequenzkomponente der
Eingangswellenform abzutasten) nur ein Minimum von 10-Milli-Inch-(0,25 mm)-Strichen
zeigen wird. Die in dem System zu verwendenden CCD-Kameras sind
für eine
maximale Taktrate von 20 MHz ausgelegt und weisen ein lineares Array
von 2048 Pixel auf.
-
Für eine Förderbandgeschwindigkeit
von 200 ft/min. = 40 Inch (102 m/s) Sekunde und für eine Scanauflösung von
5 Milli-Inch erhalten wir:
40 Inch/s/5 Milli-Inch = 8000 Scans/Sekunde,
was einer Scanrate von 125 Mikrosekunden/Scan entspricht.
-
2048/125
Mikrosekunden = 16,4 MHz für
die an den CCD-Kameras
erforderliche Taktrate.
-
Die
obigen Werte gelten sowohl für
die vertikale als auch die horizontale Achse. Dies definiert auch
die Speicherarraygröße 2048 × 2048 Bytes oder
insgesamt 4,2 Mbytes. Indem man den Kehrwert der Taktrate (60 ns)
nimmt, erhalten wir die Speichergeschwindigkeitsanforderung.
-
Das
Ausgangssignal des Moduls muss den Anforderungen der Decodierereinheit
entsprechen, die, so sei angenommen, eine Scanrate von 1 ms pro Kanal
aufweist. Da die Diagonalen des Speicherarrays ausgelesen werden,
gibt es insgesamt folgende Bytes:
2 × (2048 Bytes × 1,414)
= 5792 Bytes, die jede Millisekunde zu lesen sind (1,414 gleich
der Quadratwurzel aus zwei). Dies entspricht einer Taktrate von 5,8
MHz oder einer kleinsten zeitlichen Auflösung von 170 ns.
-
Wenngleich
der Speicher 920 in den 9 und 10 als
ein einzelner Speicher dargestellt ist, kann er alternativ mehreren
Speichern 1010, 1020, 1030 entsprechen,
wie in 11 gezeigt, wobei Speicher 1010 Pixelbilddaten
von der ersten Kamera 510A, Speicher 1020 Pixelbilddaten
von der zweiten Kamera 510B und Speicher 1030 Pixelbilddaten
von der dritten Kamera 510C empfängt (wobei drei Kameras benötigt werden,
um eine ganze Breite eines Förderbands
abzudecken, als Beispiel). Jeder Speicher entspricht einem bestimmten
Gebiet eines Gesamtspeichers 920, der der Kombination der
Speicher 1010, 1020 und 1030 entspricht,
wie in 10 gezeigt. In den Speicher 1010 würden die
oberen Abschnitte der "X-Scans" gelesen werden,
in den Speicher 1020 würden
die mittleren Abschnitte der "X-Scans" gelesen werden,
und in den Speicher 1030 würden die unteren Abschnitte
der "X-Scans" gelesen werden.
Jeder Speicher 1010, 1020 und 1030 weist
seinen eigenen assoziierten DMA und DSP auf eine in 11 gezeigte
Weise auf, um die Parallelverarbeitung der Bilddaten von den CCD-Kameras 510A–510C zu
gestatten, die an die Decodierereinheit 540 auf schnellere
Weise ausgegeben werden, als wenn sich die drei Kameras 510A–510C nur einen
Speicher teilen würden.
-
Bei
der ersten Ausführungsform
wird die Anzahl der Kameras, die erforderlich sind, um ein bestimmtes
Bildgebiet abzudecken, bevorzugt auf der Basis eines 5%-Überlappungsgebiets
zwischen Kameras bestimmt, doch kann jeder bestimmte Wert verwendet
werden, und dennoch innerhalb des Schutzbereichs der Erfindung wie
hier beschrieben bleiben.
-
12 ist
ein Blockdiagramm einer Rasterkonvertierungsimplementierung, die
in der ersten Ausführungsform
verwendet werden kann. In 12 empfängt der
DSP 930 ein Interruptsignal von der Logikschaltung 810,
wobei das Interruptsignal auf einem von der Logikschaltung 810 empfangenen
Rahmentaktsignal basiert. Der DSP 930 empfängt außerdem einen
schnellen Takt, der einem 60-MHz-Takt in 12 entspricht.
Der DSP 930 gibt Adressen an einen ersten und einen zweiten
dynamischen RAM (DRAM) 820A, 820B auf dem Adressbus 830 aus
auf der Basis eines X-Musters, das über den Datenbus 840 aus
DRAMs 820A, 820B ausgelesen werden soll. Das Ausgangssignal
der CCD-Kamera wird anfänglich
in einem FIFO 850 für
geradzahlige Rahmen und einem FIFO 860 für ungeradzahlige
Rahmen gespeichert auf der Basis dessen, welcher Rahmen gegenwärtig von
der Kamera ausgegeben wird. Die Kameradaten werden über einen
Bus 865 an DRAMs 820A, 820B ausgegeben.
Der DRAM 820A empfängt die
geradzahligen Rahmen von dem FIFO 850 für geradzahlige Rahmen, und
ein zweiter DRAM 820B empfängt die ungeradzahligen Rahmen
von dem FIFO 860 für
ungeradzahlige Rahmen. In die DRAMs 820A und 820B wird
mit einer Rate geschrieben, die vom Rahmentakt bestimmt wird. Die
Ausgangssignale des ersten und zweiten DRAMs 820A, 820B werden
zu den FIFOs 870A–870D geschickt,
und jeder FIFO ist in der Lage, eine separate Zeilenlesekamera zu
unterstützen.
Bei einer beispielhaften Konfiguration ist jeder FIFO mit einer
Rate von 2,048 MHz getaktet, und jeder FIFO liefert ein Interruptsignal
an den DSP 930. Die FIFOs 870A–870D liefern ein X-Muster
von Strichcodedaten an die Decodierereinheit 540 (in 12 nicht
gezeigt).
-
Unter
Bezugnahme auf die 13 und 14 wird
nun ein Beispiel erläutert.
In 13 sind an Stelle der Laserlichtquellen und CCD-basierten Kameras,
die in eine Lücke
unter den Förderbändern 610, 620 positioniert
sind, Laserlichtquelle 520A' und eine
CCD-basierte Kamera 510A' über einem
Förderband 650 positioniert.
In dem Beispiel ist die Laserlichtquelle 520A' so positioniert,
dass sie Licht in Richtung einer Oberseite des Förderbands 650 ausgibt.
Bevor irgendein sich auf dem Förderband 650 bewegendes
Objekt durch ein Gebiet hindurch läuft, das von der Laserlichtquelle 520A' abgedeckt wird, läuft es zuerst
durch eine Höhenmesseinheit 680 hindurch,
die eine Höhe
des Objekts bestimmt. Die Höhenmesseinrichtung
kann als ein Lichtvorhangarray oder eine andere Art von Höhenmesseinrichtung konstruiert
sein. Ein Lichtvorhangarray, das in dem System gemäß der zweiten
Ausführungsform
verwendet werden kann, ist aus der am 26. Juli 1995 Mark Woodworth
erteilten und an PSC Inc. abgetretenen US-A-5,699,161 bekannt.
-
Die
Höhenmesseinheit 680 gibt
auf Leitung 513 ein Signal an eine Verarbeitungseinheit 685 aus, wobei
das Signal 513 die Höhe
eines an der Höhenmesseinheit 680 vorbeilaufenden
Objekts angibt. Auf der Basis des von der Höhenmesseinheit 680 empfangenen
Signals 513 gibt die Verarbeitungseinheit 685 ein
erstes Signal 515 zum Positionieren der Optik 688 und
ein zweites Signal 517 zum Positionieren der Laserlichtquelle 520A' aus. Wie dem
Durchschnittsfachmann bekannt ist, ist die Laserlichtquelle 520A' mit einer nicht
gezeigten Zylinderlinse versehen, um einen von dem Laser ausgegebenen "Lichtpunkt" in eine "Linie" aus Laserlicht umzuändern. Auf der
Basis des zweiten Signals 517 wird die Laserlichtquelle 520A' in eine derartige
Position gedreht, dass sie die Oberseite des Objekts auf dem Förderband
optimal beleuchtet. Auf der Basis des ersten Signals 515 bewegt
sich die für
die CCD-basierte Kamera 510A' vorgesehene
Optik 688 entweder nach oben oder nach unten, um das Rücklicht
richtig aus einer bestimmten Entfernung zu fokussieren, wobei diese
bestimmte Entfernung der Oberseite des unter der CCD-basierten Kamera 510A' hindurch laufenden
Objekts entspricht.
-
Wie
in 13 gezeigt sind sowohl die CCD-basierte Kamera 510A' als auch die
Laserlichtquelle 520A' an
einem Gehäuse 681 positioniert,
das sich in Form einer U-Gestalt auf dem Förderband 650 befindet.
Die Optik 688 ist gleitend an einer Struktur 511 angebracht, wobei
sich die Optik 688 je nach dem von der Verarbeitungseinheit 685 ausgegebenen
Signal 515 entweder an der Struktur 511 nach oben
oder unten bewegt. Die Laserlichtquelle 520A' wird auf der Basis des von der
Verarbeitungseinheit 685 ausgegebenen Signals 517 drehbar
positioniert. Andere Arten von Konfigurationen, um der Optik bezüglich einer
stationären
CCD-basierten Kamera eine Bewegung zu verleihen, können eingesetzt
werden und dennoch innerhalb des Schutzbereichs der Erfindung wie
hier beschrieben bleiben. Beispielsweise kann die Optik 688 in
einem Objektivabschnitt der CCD-basierten Kamera 510A' enthalten sein,
die entweder im Uhrzeigersinn oder entgegen dem Uhrzeigersinn gedreht
wird, um auf eine bestimmte Entfernung von der CCD-basierten Kamera 510A' fokussiert
zu werden.
-
14 zeigt
eine erste Linie 692, die einem Objekt mit einer ersten
Höhe entspricht,
und eine zweite Linie 693, die einem Objekt mit einer zweiten Höhe entspricht,
die kleiner ist als die erste Höhe. Wenn
ein Objekt mit der ersten Höhe
an der Höhenmesseinheit 680 vorbeiläuft, wird
ein Signal 513 von der Höhenmesseinheit 680 an
die Verarbeitungseinheit 685 ausgegeben, das die erste
Höhe anzeigt. Auf
der Basis der aktuellen Geschwindigkeit des Förderbands und der Entfernung,
in der sich die Höhenmesseinheit 680 von
dem Bereich befindet, wo die Laserlichtquelle 520A' und die CCD-basierte
Kamera 510A' angeordnet
sind (beide der Verarbeitungseinheit 685 bekannt), kann
die Verarbeitungseinheit 685 ohne Weiteres einen Zeitpunkt
bestimmen, wann das Objekt mit der ersten Höhe sich unter der Laserlichtquelle 520A' und der CCD-basierten
Kamera 510A' vorbeibewegen
wird. Vor diesem Zeitpunkt gibt die Verarbeitungseinheit 685 das
erste und zweite Signal 515, 517 aus, damit die
Laserlichtquelle 520A' und die
Optik 688, zwischen der CCD-basierten Kamera 510A' und dem Förderband 650 vorgesehen,
korrekt positioniert werden. Die Position der Laserlichtquelle 520A' und die Position
der Optik 688 für
ein Objekt mit einer der Linie 692 entsprechenden Höhe werden von
den Standardlinien in 14 gezeigt. Bei dieser Positionierung
ist das System gemäß dem Beispiel bereit,
ein Strichcode-Etikett oder andere Informationen auf der Oberseite
des Objekts unter ihm zu lesen, wobei diese Oberseite der ersten
Linie 692 entspricht. Eine Drehbewegung der Laserlichtquelle 520A' ist von dem
doppelseitigen Pfeil 503 in 13 gezeigt,
und eine Linearbewegung der Optik 688 ist durch den doppelseitigen
Pfeil 506 in 13 gezeigt.
-
Nachdem
das erste Objekt sich unter dem System gemäß dem Beispiel vorbeibewegt,
kann das System dann für
ein anderes Objekt neu positioniert werden, wie etwa ein zweites
Objekt, das eine zweite Höhe
aufweist, wie durch die zweite Linie 693 gegeben. Die Höhe der zweiten
Linie 693 wird von der Höhenmesseinheit 680 bestimmt,
und diese Information wird an die Verarbeitungseinheit 685 geschickt.
In diesem Fall wird die Laserlichtquelle 520A' nach unten
(in eine in 13 in Umrissen gezeigte Position) gedreht,
so dass sie ein Gebiet um die zweite Linie 693 herum beleuchtet,
und die Optik 688 wird nach oben (in eine in 14 in
Umrissen gezeigte Position) bewegt, um den Brennpunkt des Lichtsammelsystems
so einzustellen, dass es sich bei oder um die zweite Linie 693 herum
befindet.
-
Bei
dem Beispiel behält
das System somit die gleiche Auflösung für Objekte bei, die unterschiedliche
Höhen aufweisen
und sich somit in unterschiedlichen Abständen vom System weg befinden. Wenngleich
die Beschreibung für
ein direkt über
einem Förderband
angeordnetes System erfolgte, kann das System gemäß dem Beispiel
auch für
andere Positionen um das Förderband
herum verwendet werden, wie etwa auf einer Seite eines Förderbands. In
diesem Fall kann der Abstand, in dem sich das Objekt bezüglich der
Seite des Förderbands
befindet, bestimmt werden, bevor das Objekt an dem Lesesystem vorbeiläuft, wie
etwa auf eine aus US-A-5,699,161
bekannte Weise. Das System gemäß dem Beispiel
stellt eine Autofokussierung für Objekte
bereit, während
sie sich vorbeibewegen, auf der Basis einer Drehbewegung von Laserlichtquellen und
Linearbewegung einer für
CCD-basierte Kameras bereitgestellten Optik. Eine andere Art von
Autofokussierungssystem ist in dem an Benny Tafoya erteilten und
an PSC Inc. abgetretenen US-Patent 5,317,166 beschrieben, das durch
Bezugnahme hier in seiner Gänze
aufgenommen ist. In dem System vom US-Patent 5,317,166 gibt es jedoch
keine Verwendung von CCD-basierten Kameras wie in der vorliegenden
Erfindung. Obwohl das Beispiel in den Figuren bezüglich der
Verwendung einer Laserlichtquelle und einer CCD-basierten Kamera beschrieben und gezeigt
ist, kann das System auch mit mehreren Laserlichtquellen und CCD-basierten Kameras
konfiguriert sein, wobei jedes Paar einen bestimmten Bereich auf
dem Förderband
in Breitenrichtung abdeckt. Mit dieser Konfiguration können Etiketten
auf der Oberseite sowie an den Seiten eines unter den Laserlichtquellen
und den CCD-basierten Kameras hindurch laufenden Objekts gelesen
und decodiert werden.
-
Ein
weiteres Beispiel wird nun unter Bezugnahme auf die 15–17 beschrieben.
In 15 werden Untermengen der Pixeldaten von einer
CCD-Kamera 1110 über
eine gewöhnliche
Logikeinheit 1170 an Achsencontroller 1120-1 bis 1120-n geliefert.
Die Pixeldaten, die vorübergehend
in der gewöhnlichen
Logikeinheit 1170 gespeichert werden, sind das Ergebnis
von Rücklicht
von einem bestimmten, von der CCD-Kamera 1110 abgedeckten
Gebiet. Wie in 15 gezeigt befindet sich ein
Objekt 1101 innerhalb des bestimmten, von der CCD-Kamera 1110 abgedeckten
Bereichs.
-
Die
CCD-Kamera 1110 kann ein Matrixarray von Daten zu periodischen
Zeitpunkten ausgeben und entspricht damit einer zweidimensionalen CCD-Kamera.
Das Array kann ein n × n-Array
oder ein m × n-Array
von Pixelelementen sein, wobei m und n ganze Zahlen sind. Die gewöhnliche
Logikeinheit 1170 liefert die Logik für das vorübergehende Speichern von Daten
von dem CCD-Kamerakopf 1110 und
kann als mehrere Puffer 1400-1 bis 1400-n konfiguriert
sein, die von einem Taktsignal 1420 getaktet werden, um
Daten von dem CCD-Kamerakopf 1110 zu empfangen, wie in 16.
-
In
dem vorausgegangenen Beispiel enthält die gewöhnliche Logikeinheit 1170 ein 1028-Bit-x-1028-Bit-Speicherarray, das
Pixeldaten von der CCD-Kamera 1110 zu periodischen Zeitpunkten
speichert. Das Speicherarray kann als mehrere Puffer konfiguriert
sein, wie in 16 gezeigt, oder es kann als
ein Direktzugriffsspeicher konfiguriert sein, der zu periodischen
Zeitpunkten aktualisiert wird, oder über eine beliebige andere temporäre Speicherungseinrichtung,
wie dem Durchschnittsfachmann bekannt ist.
-
Eine
Master-CPU 1130 initialisiert jeden der Achsencontroller 1120-1 bis 1120-n,
so dass jeder Achsencontroller "relevante
Daten" der von den CCD-Kameras bei jedem
Scan gelesenen Pixeldaten extrahiert und die relevanten Daten an
einem richtigen Ort in einem entsprechenden Achsenspeicher 1150-1 bis 1150-n speichert.
Wie in 15 gezeigt weist jede Achse 1255-1 bis 1255-n einen
assoziierten Achsencontroller, einen assoziierten Achsenspeicher,
eine assoziierte Bitlogikeinheit und einen assoziierten Slave-Prozessor
auf. Jede Achse 1255-1 bis 1255-n kann als eine
separate Achsenkarte konfiguriert sein, wie durch die gestrichelten
Linien in 15 gezeigt.
-
Die
Master-CPU 1130 lädt
jeden Achsencontroller mit einem Wiederladewert, der verursacht, dass
eine Auslösung
von einem nicht gezeigten Zähler
innerhalb jedes Achsencontrollers mit der richtigen Rate für jeden
Scan auf dieser Achse erzeugt wird. Jeder Zähler wird anfänglich mit
einem Zählwert geladen,
der die richtige Verzögerung
für die
erste Detektion sicherstellt. Beispielsweise löst ein 45-Grad-Achsencontroller
bei dem ersten Datenbit auf der ersten linearen Leselinie aus, das
zweite Datenbit auf der zweiten linearen Leselinie, das dritte lineare
Datenbit auf der dritten linearen Leselinie usw. Da sich Teile vieler
45-Grad-Scans auf der Leselinie finden, stellt der Zähler sicher,
dass sie in regelmäßigen Intervallen
nach dem ersten Scan gefunden werden.
-
Als
nächstes
wird der Wiederholzählwert
für jeden
Achsencontroller von der Master-CPU 1130 initialisiert.
Bei bestimmten Leselinien wie etwa horizontalen Leselinien müssen sequenzielle
Punkte auf der selben Linie geschrieben werden. Dazu weisen einige
der Achsencontroller 1120-1–1120-n einen Zähler auf,
der verursacht, dass nach einem Auslösen sequenzielle Schreibvorgänge eintreten.
Diese Funktion wird vor einem Scan initialisiert.
-
Als
nächstes
wird der assoziierte Scanzähler jeder
Achse initialisiert. Der erste Auslösepunkt, den eine gegebene
Achse auf einer beliebigen gegebenen Linie findet, ist möglicherweise
nicht der nullte Scan für
diese Achse. Beispielsweise wird der erste Datenpunkt bei dem ersten
Scan von dem 45-Grad-Achsencontroller verwendet, ist aber möglicherweise
nicht notwendigerweise der erste 45-Grad-Scan. Er kann jedoch zum
mittleren Scan werden, wenn die Erzeugung abgeschlossen ist. Aus diesem
Grund muss die Zahl des ersten Scans vor der Initiierung der Leseoperation
geladen werden.
-
Wenn
ein Scan initiiert wird, wird ein 1028-mal-1028-Array von Pixeldaten von dem Lesekopf
der CCD-Kamera 1110 empfangen. Wenn die Daten von dem Lesekopf
der CCD-Kamera 1110 zurückgeschickt
werden, wird auch ein Positionstakt zurückgeschickt. Dieser Positionstakt
wird dazu verwendet, den Zähler
jeder der Achsen controller vor zu bewegen. Der Positionstakt wird
dazu verwendet zu bestimmen, welchem Scan die gegenwärtig in
der gewöhnlichen
Logikeinheit 1170 gespeicherten Daten entsprechen.
-
Wenn
ein Zähler
für einen
beliebigen der Achsencontroller 1120-1–1120-n ausgelöst wird, kommt
es zu den folgenden Schritten, wie in 17 gezeigt.
In einem ersten Schritt S1 adressiert der Zähler für jeden Achsencontroller sequenziell
die temporär
gespeicherten Daten in der gewöhnlichen Logikeinheit 1170 über die
Auswahlleitung 1140, wie in 16 gezeigt.
Ein Zähler
für das
Lesen von Daten in den entsprechenden Achsenspeicher wird bei einer
Leseoperation, die auf den Scan folgt, auf Null initialisiert. Bei
einem zweiten Schritt S2 wird ein mit dem Achsencontroller assoziierter
Achsenspeicher 1150-1–1150-n von
dem Achsencontroller adressiert, um zu bestimmen, welcher Scan gerade
geschrieben wird, und um zu bestimmen, wohin das Bit in dem Scan
gehört.
-
Bei
einem dritten Schritt S3 werden nun von dem Lesekopf der CCD-Kamera 1110 zurückgeschickte
Daten von vorbestimmten Speicherorten (oder Puffern) sequenziell
in den Achsenspeicher geschrieben.
-
Bei
einem vierten Schritt S4 wird der Inhalt der gewöhnlichen Logikeinheit 1170 um
Eins inkrementiert und neu geschrieben. Falls kein Achsencontroller
erforderlich ist, um mehrere sequenzielle Orte von einer selben
Leselinie zu schreiben, wird der mit dem Achsencontroller assoziierte
Scanzähler
inkrementiert. Er adressiert nun die nächste Stelle in dem Scanspeicher
und ist bereit für
die nächste
Auslösung.
Fall ein Mehrfachschreibvorgang erforderlich ist, wird der Schreibvorgang
bei jeder Taktperiode wiederholt, bis die erforderliche Anzahl von
Schreibvorgängen
stattfindet. Der Scanzähler
wird dann aktualisiert.
-
Bei
einem fünften
Schritt S5 initiiert die Master-CPU 1130 einen Lesezyklus.
Bei der zweiten Ausführungsform
wird kein Speicherauffrischzyklus benötigt, da die Daten nur einmal
gelesen werden, und dies findet innerhalb der maximalen Wiederauffrischperiode
für den
Speicher statt.
-
Während des
Lesezyklus, der während
des fünften
Schritts S5 stattfindet, liest eine Bitlogikeinheit 1180-1 bis 1180-n für jede Achse
schnell alle sequenziellen Speicherorte innerhalb ihres assoziierten Achsenspeichers.
Während
jeder Ort gelesen wird, wird ein Zählwert erzeugt von der Zeit
seit dem letzten Datenübergang.
Jedes Mal, wenn ein Datenübergang
detektiert wird, wird der Zählwert
seit dem letzten Übergang
an einen assoziierten Slave-Prozessor 1160-1 bis 1160-n weitergegeben.
-
Jeder
Slave-Prozessor 1160-1 bis 1160-n verwendet die
von seiner entsprechenden Bitlogikeinheit 1180-1 bis 1180-n abgerufenen
Informationen, um zu bestimmen, ob möglicherweise ein potentiell
gültiger
Strichcode gelesen worden ist. Diese Bestimmung basiert auf bekannten
Charakteristiken von Strichcode-Etiketten, wie etwa Ruhezonengröße, Mindestbreite
und Maximalbreiten-Strichcodegrößen usw.
Wenn die aus der entsprechenden Bitlogikeinheit abgerufenen Informationen
derart sind, dass die Daten nicht einem wahren Strichcode entsprechen
können,
dann werden die Daten nicht zum Decodieren an die Master-CPU 1130 geschickt. Wenn
es sich jedoch bei den Daten möglicherweise um
einen wahren Strichcode handeln kann, dann werden die Daten zum
Decodieren an die Master-CPU 1130 geschickt.
-
Jeder
Slave-Prozessor 1160-1–1160-n wird periodisch
von der Master-CPU 1130 abgefragt, und wenn ein potentieller
Strichcode gefunden worden ist, wird er zum Decodieren an die Master-CPU 1130 weitergegeben.
Jeder Slave-Prozessor ist mit seiner entsprechenden Bitlogikeinheit 1180-1–1180-n verbunden,
die wiederum selbst mit ihrem entsprechenden Achsenspeicher 1150-1–1150-n verbunden
ist. Bei diesem Beispiel entspricht jede Bitlogikeinheit 1180-1–1180-n einem
FIFO-Puffer (first-in, first-out – Durchlaufpuffer), wobei Strichbreiten
und Strichräume
als 8-Bit breite Elemente in dem 9-Bit-x-256-Bit-FIFO gespeichert
werden. Das heißt, aufeinander
folgende Einsen entsprechen einer bestimmten Strichbreite, und aufeinander
folgende Nullen entsprechen einer bestimmten Raumbreite. Das neunte
Bit für
jeden Speicherort in der Bitlogikeinheit entspricht einem Ruhezonenbit.
Das Ruhezonenbit gibt an, ob eine Ruhezone gelesen worden ist oder nicht.
Der Durchschnittsfachmann kann sich andere Konfigurationen der Bitlogikeinheit
vorstellen und dennoch innerhalb des Schutzbereichs der Erfindung wie
hier beschrieben bleiben.
-
Während Intervallen,
in denen keine Strichcodes detektiert werden, versetzt die Master-CPU 1130 alle
Achsencontroller in einen "horizontalen"-Modus und kann Übungsscans
mit künstlichen Daten
initiieren, falls erwünscht.
Die Slave-Prozessoren 1160-1 bis 1160-n verifizieren,
dass alle Daten korrekt sind, und meldet dies an die Master-CPU 1130.
Sowohl die Slave-Prozessoren 1160-1 bis 1160-n als
auch die Master-CPU 1130 können eine interne Diagnose
durchführen,
wenn die Lesedaten nicht aktiv gelesen werden.
-
Wie
in 15 gezeigt weisen sowohl die Slave-Prozessoren 1160-1 bis 1160-n als
auch die Master-CPU 1130 einen entsprechenden parallelen Eingangs-/Ausgangsport
(PIO) zum Übertragen
und Empfangen von Daten zwischen der Master-CPU und dem Slave-Prozessor
auf. Die Master-CPU 1130 sendet Steuersignale über einen
anderen PIO-Port an die gewöhnliche
Logikeinheit 1170 und kommuniziert mit einer nicht gezeigten
Host-CPU und einem nicht gezeigten Hilfsport über einen seriellen Eingangs-/Ausgangsport
(SIO).
-
Nunmehr
unter Bezugnahme auf 16 wird jeder Puffer der gewöhnlichen
Logikeinheit 1170 auf der Basis eines Auswahlsignals und
eines Taktsignals abgetastet. Beispielsweise wird für eine 45-Grad-Leselinie
der ganz links liegende Puffer 1400-1 auf der obersten
Zeile zu einem Zeitpunkt t0 abgetastet und an den Achsencontroller
für die 45-Grad-Achse
ausgegeben, der dem ganz links liegenden Puffer nächste Puffer 1400-(m+2) auf der zweiten
Zeile wird zu einem Zeitpunkt tm+2 abgetastet und
an den Achsencontroller für
die 45-Grad-Achse ausgegeben,
usw. Das Abtasten jedes der Puffer wird mit einer Rate durchgeführt, die
schnell genug ist, so dass alle Puffer vor einem nächsten Scan
(und deshalb Wiederladen) der Daten in die gewöhnliche Logikeinheit 1170 abgetastet
werden. Bei einer horizontalen Leselinie werden alle Puffer in der
obersten Zeile nacheinander abgetastet, wobei die abgetasteten Daten
zum Achsenspeicher der horizontalen Achse weitergeschickt werden.
Natürlich
können auch
andere horizontale Leselinien zur gleichen Zeit erzeugt werden,
indem Daten von jedem der Puffer in jeder zweiten Zeile der gewöhnlichen
Logikeinheit 1170 genommen werden. Für die 45-Grad-Leselinie bewirkt
der Zählwert
von "1" somit, dass das
Ausgangssignal des Puffers 1400-1 an den Achsencontroller
für die
45-Grad-Leselinie
geschickt wird, der Zählwert
von "m+2" bewirkt, dass das
Ausgangssignal des Puffers 1400-(m+2) zum Achsencontroller
für die
45-Grad-Leselinie geschickt wird, usw. Jeder Puffer kann auf der
Basis eines gegenwärtigen
Zustands der Mehrbit-Auswahlleitung 1410 separat adressiert werden,
und jeder Puffer wird getaktet, um neue Daten von der CCD-basierten
Kamera 1110 auf der Basis der Taktsignalleitung 1420 zu
empfangen.
-
Der "Zählwert" für
jede Achse ist verschieden auf der Basis der für diese Achse zu erzeugenden Leselinie.
Der Zählwert
schreitet von links nach rechts fort, wobei er mit der obersten
Zeile der Puffer in der gewöhnlichen
Logikeinheit 1170 beginnt, und läuft hinunter bis zum ganz rechts
liegenden Puffer in der letzten Zeile der gewöhnlichen Logikeinheit 1170. Die
Zählung
wird beendet (zum Beispiel hat die Auswahlleitung 1410 einen Übergang
von 0 bis n in Einheiten von 1), bevor Daten von einem nächsten Scan in
die Puffer geschrieben werden. Daten werden in die Puffer zu einem
Zeitpunkt geschrieben, der einem nächsten Taktimpuls auf der Taktleitung 1420 entspricht.
Die Taktrate ist somit langsamer als die Auswahlrate und ist in
der dritten Ausführungsform
mindestens 1/n so langsam.
-
Dieses
Beispiel ist mit n Achsen beschrieben, wobei n ein ganzzahliger
Wert ist, der der Anzahl gleichzeitiger verschiedener Leselinien
entspricht, die aus den von der CCD-basierten Kamera 1110 ausgegebenen
Daten erzeugt werden. Der Wert n kann auf einen Wert wie etwa 16
im Voraus eingestellt werden, oder er kann auf der Basis eines bestimmten
Strichcodes, der detektiert und decodiert werden soll, auf einen
Wert eingestellt werden. Beispielsweise kann die Anzahl verschiedener
Leselinien auf der Basis der Mindesthöhe eines Strichs eines Strichcode-Etiketts
eingestellt werden, wobei mehr Leselinien für ein Strichcode-Etikett mit kleinerer
Mindesthöhe
verwendet werden. Bei diesem Beispiel kann ein Strichcode-Etikett
unabhängig
von der Orientierung des Strichcode-Etiketts bezüglich der CCD-basierten Kamera 1110 decodiert
werden, da mehrere verschiedene virtuelle Leselinien aus dem von
der CCD-basierten Kamera 1110 ausgegebenen zweidimensionalen
Array von Pixeldaten erzeugt werden.
-
Wenngleich
eine Ausführungsform
hier beschrieben worden ist, kann sich eine Modifikation der beschriebenen
Ausführungsform
dem Durchschnittsfachmann gemäß den Lehren
der Erfindung ergeben, ohne jedoch von dem Schutzbereich der Erfindung abzuweichen,
wie in den beigefügten
Ansprüchen dargelegt.
Das Beispiel kann mit einer "Rematch"-Technik zum Bestimmen
von Strichcodes auf der Basis von Teilscans eines Strichcode-Etiketts verwendet
werden, wie in dem an Benny R. Tafoya erteilten, an PSC Inc. abgetretenen
US-Patent Nr. 5,481,097 beschrieben.
-
Bei
der Rematch-Technik werden zwei separate Leselinien verwendet, um
ein Strichcode-Etikett zu decodieren, wobei Daten von einer Leselinie
verwendet werden, um einen ersten Abschnitt des Etiketts zu decodieren,
und wobei Daten von der anderen Leselinie dazu verwendet werden,
um einen verbleibenden zweiten Abschnitt des Etiketts zu decodieren.