-
Die
Erfindung bezieht sich auf eine Vorrichtung zum Lesen eines Datencodes
bzw. einen optischen Datencodeleser, der für die Aufnahme eines Bildes
eines optischen Datencodes, wie etwa eines Strichcodes oder eines
zweidimensionalen Codes (nachfolgend einfach als „Code" bezeichnet), eingerichtet
ist, um so einen Bildbearbeitungsvorgang auf dem Code innerhalb
des erzeugten Bildes auszuführen
und damit die in diesem Code codierten Daten auszulesen. Im Einzelnen
bezieht sich die Erfindung auf einen optischen Datencodeleser, der
mit der Funktion einer Einstellung auf optimale Bedingungen zur
Aufnahme von Bildern und der Beleuchtung für die Ausleseverarbeitung unter
Verwendung des erzeugten Bildes versehen ist.
-
Die
meisten optischen Datencodeleser sind aus einem Bildaufnahmeteil,
der ein Bildaufnahmeelement, wie etwa eine CCD oder einen MOS, enthält, und
einem Beleuchtungsteil, der eine LED enthält, aufgebaut und so eingerichtet,
dass sie ein Bild ansprechend auf ein Auslösesignal erzeugen und einen optischen
Datencode aus einem solchen Bild decodieren. Zur Aufrechterhaltung
eines hohen Niveaus an Auslesegenauigkeit bei einer Vorrichtung
dieser Art müssen
ihre Bildaufnahmebedingungen, wie etwa die Verschlussgeschwindigkeit,
und die Beleuchtungsbedingungen, wie etwa die Beleuchtungsintensität, auf optimale
Bedingungen eingestellt werden. Insbesondere wenn ein optischer
Datencode auszulesen ist, der direkt auf der Oberfläche eines Werkstücks mit
Laserlicht oder einer Markierungspresse markiert ist, schwankt die
Helligkeit des Bildes deutlich, weil das Reflexionsvermögens und
die Ausbreitungsrichtung des reflektierten Lichts sich abhängig vom
Oberflächenzustand
des Werkstücks
und der Markierungsmethode ändern.
-
Die
Bildaufnahme- und Beleuchtungsbedingungen müssen also individuell nach
der Art des Werkstücks
und der für
den Code verwendeten Markierungsmethode eingestellt werden.
-
Einstellungen
der oben beschriebenen Art sind meistens manuell durch einen Anwender
ausgeführt
worden, da aber die Justiereinstellung nach einer solchen Methode
zeitraubend ist und da unterschiedliche Bediener dazu neigen, Einstellungen
unterschiedlich vorzunehmen, werden zunehmend automatische Verfahren
zur Vornahme von Einstellungen in Betracht gezogen. Verfahren zur
automatischen Einstellung der Verschlussgeschwindigkeit, wie etwa
AEC (auto-exposure control) und AGC (auto-gain control), können für diesen
Zweck verwendet werden.
-
In
JP Nr. 2004-194172 A ist
ein Verfahren zur Optimierung der Verschlussgeschwindigkeit durch Wiederholen
einer Anzahl von Zyklen von Vorgängen der
Aufnahme eines Bildes eines optischen Datencodes, des Herausziehens
eines bestimmten Merkmals eines Pixelniveaus aus dem erzeugten Bild
und der Einstellung der Verschlussgeschwindigkeit beruhend auf dem
herausgezogenen Merkmal beschrieben. Nach diesem Verfahren wird
ein maximales Helligkeitsniveau aus einem Bild herausgezogen und das
Verschlussniveau so lange eingestellt, bis dieses Maximalniveau
einen spezifizierten nummerischen Bereich erreicht. Wenn ein Abschnitt
mit einem sehr hohen Reflexionsvermögen im Hintergrund eines optischen
Datencodes vorhanden ist (entsprechend beispielsweise einer Kante
eines Werkstücks
oder einer Stufe auf einem Werkstück), kann es jedoch sein, dass
die Einstellung auf der Grundlage der Helligkeit eines solchen Abschnitts
vorgenommen wird und die Helligkeit des Codeteils daher nicht optimiert
wird.
-
Aus
US 5 784 102 ist ein Datencodeleser
bekannt, der die Helligkeitsamplitude im gesamten Abtastbereich
zur Entscheidung über
einen Einstellvorgang heranzieht, wobei mögliche Fehler durch Kanteneffekte
nicht vermieden werden können.
-
Die
Erfindung wurde im Hinblick auf diese Probleme gemacht, und es liegt
ihr die Aufgabe zugrunde, die Auslesegenauigkeit durch Durchführen einer
Einstellung beruhend auf der Helligkeit des auszulesenden optischen
Datencodes zu verbessern.
-
In
Obigem kann „optischer
Datencode" als ein
Symbol bedeutend verstanden werden, das ein visuell erkennbares
Muster, das bestimmte Daten codiert aufweist, einschließt. Zu repräsentativen
Beispielen für
einen optischen Datencode gehören Strichcodes
und zweidimensionale Codes. Visuell erkennbare Daten, die durch
einen optischen Datencode wiedergegeben werden, wie Anordnungen
von weißen
und schwarzen Bereichen, werden nachfolgend als optische Daten bezeichnet
werden.
-
Die
Erfindung bezieht sich auf einen optischen Datencodeleser, welcher
aufweist: eine Beleuchtungsvorrichtung zur Beleuchtung eines auszulesenden
optischen Datencodes; eine Bildaufnahmevorrichtung zur Aufnahme
eines Bilds des optischen Datencodes; eine Auslesevorrichtung zur
Decodierung des optischen Datencodes durch Verarbeitung von durch
die Bildaufnahmevorrichtung erzeugten Bilddaten; und eine Einstellvorrichtung
zur Durchführung
eines Einstellvorgangs durch Einstellen wenigstens einer Bedingung,
ausgewählt
aus der Gruppe bestehend aus Beleuchtungsbedingungen der Beleuchtungsvorrichtung
und Bildaufnahmebedingungen für
die Bildaufnahmevorrichtung, derart, dass die Bilddaten für ein Ausgelesen
werden geeignet werden. Die Einstellvorrichtung dient dazu, Bereiche
auf durch die Bildaufnahmevorrichtung ausgegebenen Bilddaten einzurichten,
eine Änderungsamplitude
der Helligkeit in jedem der Bereiche herauszuziehen und den Einstellvorgang
unter Verwendung der Bilddaten von wenigstens einem der Bereiche
auszuführen,
in welchem die herausgezogene Änderungsamplitude größer als
ein spezifizierter Schwellenwert ist.
-
In
Obigem können
die Beleuchtungsvorrichtung, die Bildaufnahmevorrichtung, die Auslesevorrichtung
und die Einstellvorrichtung alle an einem einzelnen kastenartigen
Aufbau angebracht sein, dies ist jedoch keine Notwendigkeit. Die
Beleuchtungsvorrichtung und die Bildaufnahmevorrichtung können beispielsweise
unabhängig
voneinander als Sensorkopf ausgebildet sein. Die Einstellvorrichtung
kann auch in einem solchen Sensorkopf enthalten sein. Der optische
Datencodeleser gemäß der Erfindung kann
vorzugsweise auch Ausgabemittel zur Anzeige oder externen Ausgabe
verschiedener durch die Auslesevorrichtung decodierter Daten enthalten.
-
Die
Beleuchtungsvorrichtung kann nicht nur eine Lichtquelle, wie etwa
eine LED, sondern auch eine Schaltung zur Steuerung von deren Ein-
und Ausschalten enthalten. Eine Art, die in der Lage ist, die Beleuchtungslichtmenge
zu verändern,
ist bevorzugt. Sie kann so eingerichtet sein, dass Richtung und
Farbe der Beleuchtung verändert
werden können.
-
Die
Bildaufnahmevorrichtung enthält
ein Bildaufnahmeelement, wie etwa eine CCD oder einen MOS, sowie
eine Linse, eingerichtet zur Aufnahme eines Bildes eines optischen
Datencodes zur Erzeugung eines Bildes zur Verwendung im Einstellvorgang
und Auslesevorgang. Eine Treiberschaltung zur Ansteuerung dieses
Bildaufnahmeelements sowie eine A/D-Wandlerschaltung zur Umwandlung
des vom Bildaufnahmeelement ausgegebenen analogen Bildsignals in
ein digitales Signal können
ebenfalls in der Bildaufnahmevorrichtung enthalten sein.
-
Die
Auslesevorrichtung dient zur Durchführung von Vorgängen der
Hereinnahme von durch die Bildaufnahmevorrichtung erzeugten Bilddaten
und zur Decodierung der Daten, die in den in diesem Bild enthaltenen
optischen Datencode codiert sind. Sie kann durch einen Rechner gebildet
sein, der ein Programm zur Durchführung all dieser oben erwähnten Vorgänge enthält, wenigstens
ein Teil dieser Vorgänge
kann aber auch durch eine eigens dafür vorgesehene Rechenschaltung
ausge führt
werden. Ein Speicher, der zu diesem Rechner gehört, kann zur Speicherung des
zu bearbeitenden Bildes dienen.
-
Die
Einstellvorrichtung kann als der als Auslesevorrichtung identifizierte
Teil des Rechners ausgebildet sein, es ist aber bevorzugt, sie als
eigene Rechenschaltung vorzusehen, weil die Zeit, die für die Einstellung
benötigt
wird, verkürzt
werden kann, indem sequentiell die gleichen Bilddaten, die von der Bildaufnahmevorrichtung
ausgegeben werden, hereingenommen und verarbeitet werden, während sie auch
in den Speicher eingegeben werden. Wenn gleichzeitig mit der Speicherung
der Bilddaten im Speicher bestimmt werden kann, ob sie eine Einstellung
benötigen
oder nicht, kann ferner der Auslesevorgang auf den Bilddaten, für die bestimmt
worden ist, dass sie keine Einstellung benötigen, unmittelbar begonnen
werden. Die Bildaufnahmevorrichtung kann auf der Verschlussgeschwindigkeit,
der Ausgabeverstärkung
oder der Blendenöffnung
eingestellt werden. Die Beleuchtungsvorrichtung kann mittels Intensität, Richtung
und/oder Farbe der Beleuchtung eingestellt werden.
-
Der
mit den Einstellmitteln einzustellende Bereich kann jede Größe haben,
er sollte vorzugsweise jedoch so groß sein, dass er ausreichend
das Muster von Helligkeit-Dunkelheit-Variation eines optischen Datencodes
enthält,
wenn ein Bereich so eingestellt worden ist, dass er die den Code
darstellenden Pixel enthält.
Im Falle eines zweidimensionalen Codes wird die Größe so eingestellt,
dass sie mehrere Zellen überdeckt.
Im Falle eines Strichcodes kann die Größe so eingestellt werden, dass
sie mehrere seiner Striche überdeckt.
Der vorgenannte Bereich kann ein eindimensionaler Bereich sein,
der sich in horizontaler oder vertikaler Richtung erstreckt, oder ein
zweidimensionaler Bereich, der eine spezifizierte Größe in jeder
der beiden Richtungen hat. Nicht alle diese Bereiche brauchen die
gleiche Größe zu haben.
Die Größe der Bereiche
kann variabel gemacht werden, derart, dass diejenigen, bei denen
es wahrscheinlich ist, dass sie einen Code enthalten, größer als
die anderen sind.
-
„Änderungsamplitude
der Helligkeit in einem Bereich" kann
als Absolutwert der Differenz zwischen dem maximalen und minimalen
Helligkeitswert innerhalb des Bereichs gewonnen werden. Wenn mehrere Helligkeitsspitzen
innerhalb eines Bereichs vorhanden sind, kann die Differenz zwischen
der mittleren Helligkeit der Spitzen und der mittleren Helligkeit
der Täler
gewonnen werden. Als weiteres Beispiel kann die Gesamtsumme der
Höhen der
Spitzen gewonnen werden. Als wiederum weiteres Beispiel können Differenzen
von aneinander angrenzenden Paaren von Pixeln gewonnen werden und
die Änderungsamplitude
der Helligkeit kann als kumulative Summe dieser Differenzen gewonnen
werden.
-
Im
Falle der Verarbeitung eines optischen Datencodes mit angeordneten
weißen
und schwarzen Bereichen, wie etwa eines zweidimensionalen Codes
oder eines Strichcodes, können Änderungen in
der Helligkeit und Dunkelheit als in Bereichen erscheinend betrachtet
werden, die an Positionen eingerichtet sind, die den Code darstellende
Pixel enthalten. Anders ausgedrückt,
kann man annehmen, dass die Änderungsamplitude
der Helligkeit größer sein
wird in einem Bereich, der den Code darstellende Pixel enthält, als
in einem Bereich, der nur einen Hintergrundabschnitt des Codes enthält. Die
vorliegende Erfindung beruht auf dieser Beobachtung, und die Bildaufnahme-
und Beleuchtungsbedingungen werden eingestellt, indem Bilddaten
eines Bereichs, wo die Änderungsamplitude
der Helligkeit größer als ein
spezifizierte Schwellenwert ist, verwendet werden. Es wird also
eine Einstellung ermöglicht,
die die Helligkeit eines optischen Datencodes widerspiegelt.
-
Der
einzelne Bereich, in dem die Änderungsamplitude
der Helligkeit am größten ist,
kann für
den Einstellvorgang verwendet, wenn aber mehrere Bereiche vorhanden
sind, in denen die Änderungsamplitude der
Helligkeit größer als
der Schwellenwert wird, kann der Einstellvorgang auch durchgeführt werden,
indem die Bilddaten dieser mehreren Bereiche verwendet werden. In
einer solchen Situation können
der maximale und der minimale Helligkeitswert aus jedem der Bereiche
herausgezogen und der Einstellvorgang beruhend auf den Mitteln dieser
Werte ausgeführt
werden.
-
Ein
optischer Datencodeleser gemäß der Erfindung
kann so ausgebildet sein, dass die Bildaufnahmevorrichtung dazu
dient, seriell die Bilddaten einzelner Pixel auf die Einstellvorrichtung
auszugeben, und die Einstellvorrichtung dazu dient, die von der
Bildaufnahmevorrichtung ausgegebenen Bilddaten zu empfangen und
nach Empfang von Bilddaten einer spezifizierten Anzahl von Pixeln
eine Änderungsamplitude
der Helligkeit für
einen Bereich herauszuziehen, der aus der spezifizierten Anzahl
von Pixeln aufgebaut ist.
-
Gemäß dieser
Ausführungsform
der Erfindung ist ein Bildaufnahmeelement des Seriellausgabetyps,
wie eine CCD, in der Bildaufnahmevorrichtung enthalten, und der
Vorgang des Herausziehens der Änderungsamplitude
der Helligkeit für
jeden Bereich kann unter Verwendung der von dieser Bildaufnahmevorrichtung
ausgegebenen Bilddaten nahezu gleichzeitig mit demjenigen der Speicherung
des Bildes durchgeführt
werden.
-
Ein
optischer Datencodeleser gemäß einer weiteren
Ausführungsform
der Erfindung kann so aufgebaut sein, dass die Bildaufnahmevorrichtung dazu
dient, Bilddaten eines spezifizierten Pixels auszugeben, und die
Einstellvorrichtung dazu dient, sequentiell Pixel zu spezifizieren,
die der Anzahl von Bereichen entsprechen, um dadurch zu bewirken, dass
die Bilddaten eines jeden der Bereiche auf die Bildaufnahmevorrichtung
ausgegeben werden und eine Änderungsamplitude
der Helligkeit für
jeden der Bereiche herausgezogen wird.
-
Gemäß dieser
Ausführungsform
der Erfindung kann ein Bildaufnahmeelement eines Typs mit wahlfreiem
Zugriff, wie etwa ein MOS, in der Bildaufnahmevorrichtung enthalten
sein. Auch in diesem Fall kann der Vorgang des Herausziehens der Änderungsamplitude
der Helligkeit für
jeden Bereich unter sequentiellem Auslesen der Bilddaten aus jedem
Bereich nahezu gleichzeitig mit demjenigen des Speicherns des Bilds
durchgeführt
werden. Da ferner Bilddaten eines Pixels durch Spezifizieren eines
Bereichs ausgelesen werden können,
lässt sich
die zu verarbeitende Datenmenge reduzieren, wenn die Bereiche eingerichtet
werden, indem Intervalle dazwischen vorgesehen werden, mit der Folge,
dass sich der Einstellvorgang schneller durchführen lässt. Da die Positionen und
Größen der
Bereiche variiert werden können,
können
ferner die Bereiche entsprechend der Größe des auszulesenden Codes
eingestellt werden.
-
Gemäß einer
bevorzugten Ausführungsform der
Erfindung dient die Einstellvorrichtung dazu, Helligkeitsdifferenzen
zwischen aneinander angrenzenden Pixeln herauszuziehen und die Helligkeitsdifferenzen
für jeden
der Bereiche zu integrieren, um danach einen der Bereiche herauszuziehen,
in dem der integrierte Wert am größten ist, und den Einstellvorgang
beruhend auf dem maximalen Helligkeitswert des herausgezogenen Bereichs
auszuführen.
Gemäß dieser
Ausführungsform
wird die Helligkeitsdifferenz zwischen aneinander angrenzenden Pixeln über einen
Grenzteil, wo sich die Helligkeit ändert, groß. In einem Bereich, der eingerichtet
ist, wo die Helligkeit des optischen Datencodes sich ändert, kann
erwartet werden, dass der integrierte Wert der Helligkeitsänderungen
groß wird.
In einem Bereich, der eingerichtet ist, wo die Helligkeitsänderung
klein ist, wie etwa in einem Hintergrundabschnitt, andererseits
kann erwartet werden, dass der integrierte Wert der Helligkeitsänderungen
kleiner wird, obwohl er heller als seine Umgebung ist. Wenn also
angenommen werden kann, dass ein optischer Datencode im Gesichtsfeld
der Bildaufnahmevorrichtung enthalten ist, sind Pixel, die den Code
wiedergeben, in dem Bereich enthalten, wo der integrierte Wert der
Helligkeitsdifferenzen am größten ist.
Wenn der Einstellvorgang beruhend auf der maximalen Helligkeit in dem
Bereich, wo dieser integrierte Wert am größten ist, durchgeführt wird,
kann daher der Einstellvorgang in einer Weise ausgeführt werden,
die am besten für
das Auslesen des optischen Datencodes geeignet ist.
-
Die
Einstellvorrichtung kann eingerichtet sein zu beurteilen, ob die
Helligkeit der von der Bildaufnahmevorrichtung ausgegebenen Bilddaten
sich innerhalb eines spezifizierten nummerischen Bereichs befindet,
und die Verschlussgeschwindigkeit der Bildaufnahmevorrichtung beruhend
auf einer spezifizierten Bedingung einzustellen, wenn die Helligkeit
der Bilddaten als außerhalb
des spezifizierten nummerischen Bereichs liegend beurteilt wird.
Dieser nummerische Bereich kann gemäß dem Helligkeitsniveau eingestellt
werden, bei welchem der Datencode ausgelesen werden kann. Anders
ausgedrückt,
kann der Bereich so eingerichtet werden, dass Niveaus ausgeschlossen
werden, bei welchen das Vorhandensein eines Codes kaum festgestellt werden
kann, wie etwa Bilder mit einem Helligkeitsniveau im Sättigungszustand
oder Bilder mit einem Helligkeitsniveau, das zu gering ist, als
dass helle und dunkle Abschnitte desselben unterschieden werden
könnten.
Es kann also eine Einstellung in großem Maßstab durchgeführt werden,
beispielsweise durch signifikantes Ändern der Verschlussgeschwindigkeit
im Falle eines Bildes, auf welchem der Code kaum ausgelesen werden
kann, so dass die Niveaueinstellung rasch durchgeführt werden
kann.
-
Die
Einstellvorrichtung kann so aufgebaut sein, dass sie nach Ansteuerung
der Bildaufnahmevorrichtung ansprechend auf ein eingebenes Auslösesignal
für einen
Auslösevorgang
den Einstellvorgang ausführt,
bis die Änderungsamplitude
der Helligkeit in wenigstens einem einer Anzahl von Bereichen größer als
ein spezifizierter Schwellenwert wird, und die Bildaufnahmevorrichtung
unter den einregulierten Bedingungen erneut ansteuert. In diesem
Fall kann die Auslesevorrichtung dazu dienen, den Auslesevorgang,
abhängig
vom Ende des Einstellvorgangs mit der Einstellvorrichtung, unter
Verwendung der aktuell neuesten Bilddaten durchzuführen.
-
Bei
Obigem kann das Auslösesignal
durch den Benutzer oder aus einer externen Vorrichtung oder einem
Sensor zur Inspektion eines Werkstücks eingegeben werden. Der „spezifizierte
Schwellenwert" kann
gemäß der herausgezogenen Änderungsamplitude
der Helligkeit im Falle eines optischen Datencodes mit geeigneter
Helligkeit eingerichtet werden. Gemäß dieser Ausführungsform
kann der Einstellvorgang, nachdem die Bildaufnahme- und Einstellvorgänge für mehrere
Zyklen wiederholt worden sind, nachdem das Auslösesignal eingegeben wurde,
und zu dem Zeitpunkt, zu dem die Helligkeit des Codes im Bild passend
geworden ist, abgeschlossen werden. Die „aktuell neuesten Bilddaten" aus Obigem können also
als die Bilddaten meinend interpretiert werden, die durch den Bildaufnahmevorgang
in dem Zustand nach Ausführung
des abschließenden Einstellvorgangs
gewonnen sind.
-
Es
kann ein Bedienteil zur Eingabe des Auslösesignals vorgesehen sein.
In diesem Fall dient die Einstellvorrichtung zur Beurteilung der
Geeignetheit einer Fokussierungsbedingung der Bildaufnahmevorrichtung
unter Verwendung von maximalen und minimalen Helligkeitswerten in
dem für
den Einstellvorgang verwendeten Bereich, und die Einstellvorrichtung
dient dazu, die Bildaufnahmevorrichtung erneut anzusteuern, wenn
beurteilt wird, dass die Fokussierungsbedingung geeignet ist. In
Obigem bedeutet „für den Einstellvorgang
verwendeter Bereich" den
Bereich, in welchem die Änderungsamplitude der
Helligkeit größer als
der spezifizierte Schwellenwert wird.
-
Im
Falle eines optischen Datencodelesers als Handgerät kann der
Bedienteil einen Knopf (oder Knöpfe)
zur Eingabe eines Auslesebefehls, d. h., es werden eine spezifizierte
Anzahl von Zyklen der Bildaufnahme- und Einstellvorgänge durchgeführt, wenn der
Bediener den Knopf (oder einen der Knöpfe) bedient, während er
einen Auslesekopf, der die Beleuchtungsvorrichtung und die Bildaufnahmevorrichtung
enthält,
gegen ein zu bearbeitendes Zielwerkstück hält, wobei der Auslesevorgang
unter Verwendung des Bildes nach Durchführung des Einstellvorgangs
ausgeführt
wird.
-
Gemäß dieser
Ausführungsform
ist nicht nur eine geeignete Änderungsamplitude
der Helligkeit, sondern auch eine geeignete Fokussierungsbedingung
eine notwendige Bedingung für
den Beginn des Auslesevorgangs. Wenn der Codeleser nicht in einer geeigneten
Position angeordnet ist, kann das Decodieren fehlschlagen, weil
die Fokussierungsbedingung ungeeignet ist und daher die Unterscheidung zwischen
dunkel und hell nicht angemessen möglich ist, obwohl gar kein
Problem betreffend das Helligkeitsniveau vorliegt. In einer solchen
Situation mit einer ungeeigneten Fokussierungsbedingung wird der Bildaufnahmevorgang
erneut ausgeführt,
statt den Einstellvorgang durchzuführen. Wenn der Anwender die
Einstellposition des Codelesers justiert und die Fokussierungsbedingung
geeignet wird, wird es möglich,
den Auslesevorgang unter Abschluss des Einstellvorgangs durchzuführen. Geeignetheit
der Fokussierungsbedingung kann unter Verwendung der Steigung zwischen
den Maximal- und Minimalwerten der Helligkeit in dem vorgenannten
Bereich bestimmt werden. Wenn mehrere solche Maximal- und Minimalwerte
vorliegen, werden Steigungen zwischen aneinander angrenzenden Paaren
von Maximal- und Minimalwerten gewonnen und ihr Mittelwert berechnet.
-
Zusammenfassend
bietet die Erfindung mit Erfolg einen optischen Datencodeleser dar,
der in der Lage ist, seine Bildaufnahmebeleuchtungsbedingungen beruhend
auf der Helligkeit des optischen Datencodes geeignet innerhalb eines
Bildes einzustellen, womit ein Bild durch Einstellen von Bedingungen,
die für
ein Auslesen des darin enthaltenen Codes geeignet sind, gewonnen
werden kann.
-
1 ist
eine Schrägansicht
von hinten eines Zweidimensionalcodelesers einer Ausführungsform
der Erfindung.
-
2 ist
eine Schrägansicht
von vorne des Zweidimensionalcodeleser der 1.
-
3 ist
eine Skizze, die den Aufbau des optischen Systems des Zweidimensionalcodelesers
der 1 und 2 zeigt.
-
4 ist
ein Funktionsblockdiagramm des Zweidimensionalcodelesers der 1 bis 3.
-
5 ist
eine Zeichnung zur Wiedergabe eines Beispiels eines für ein Zielbild
zur Verarbeitung eingestellten Bereichs.
-
6A und 6B zeigen
die Helligkeitsverteilung in Bereichen A und B der 5.
-
7 ist
eine Zeichnung zur Wiedergabe eines Verfahrens zur Einstellung der
Verschlussgeschwindigkeit.
-
8 ist
eine Zeichnung zur Wiedergabe eines Beispiels eines Verfahrens zum
Herausziehen eines Parameters zur Beurteilung der Geeignetheit einer
Fokussierungsbedingung.
-
9 ist
ein Blockdiagramm des Optimierungsverarbeitungsteils 111 zur
Wiedergabe seines Grundaufbaus.
-
10 ist
ein Flussdiagramm eines Bildaufnahmevorgangs.
-
11 ist
ein Flussdiagramm der Vorgänge für einen
Zweidimensionalcodeleser.
-
12 ist
eine Zeichnung zur Wiedergabe eines weiteren Beispiels eines für ein Zielbild
zur Verarbeitung eingestellten Bereichs.
-
Die 1 und 2 zeigen
Außenansichten eines
Codelesers 1 gemäß einer
Ausführungsform der
Erfindung, wobei 1 seine Rückseite und 2 seine
Vorderseite wiedergibt. 10 bezeichnet ein Gehäuse, das
als Grundkörper
des Codelesers 1 dient und ein Lesefenster 11 im
oberen Teil seiner Vorderseite und einen Monitor 12 mit
einem Flüssigkristallfeld 12a in
einem oberen Abschnitt seiner Rückseite
aufweist. Die untere Hälfte
des Gehäuses 10 dient
als Griffteil 13 mit einer zurückgesetzten Vorderseite. Bedienungsknöpfe 14 sind
an beiden Seitenflächen
des Gehäuses 10 zur
Angabe des Beginns eines Auslesevorgangs vorgesehen.
-
Ein
nachstehend zu beschreibendes optisches System und eine (nicht gezeigte)
Basisleiterplatte, die mit verschiedenen Arten von Schaltkreisen bestückt ist,
sind im Inneren des Gehäuses 10 enthalten.
Diese Basisleiterplatte ist mit einer Hostvorrichtung 2 (gezeigt
in 4) über
ein Kabel 15 verbunden, das Eingabe-Ausgabe-Leitungen und
eine Spannungsversorgungsleitung enthält und am unteren Ende des
Gehäuses 10 herausgeführt ist.
-
3 zeigt
den Aufbau des im Codeleser 1 hinter dem Lesefenster 11 eingebauten
optischen Systems, welches ein Bildaufnahmeelement 101, eine
Abbildungslinse 102, einen Spiegel 103, einen Illuminator 104 mit
einer Lichtemissionsoberfläche und
eine LED-Lampe 105 enthält.
In 3 gibt „W" ein Werkstück an, auf
dem sich ein zweidimensionaler Code befindet.
-
Der
Illuminator 104 ist so angeordnet, dass seine Lichtemissionsoberfläche parallel
zum Lesefenster 11 ist. (Nicht gezeigte) Chip-LEDs für verschiedene
Farben sind im Inneren dieses Illuminators 104 angeordnet.
Farbe und Helligkeit des abgegebenen Lichts kann durch Steuerung
der Anzahl und Positionen der LEDs, die eingeschaltet werden, verändert werden.
-
Die
LED-Lampe 105 dient dazu, das Werkstück W schräg zu beleuchten und ist in
einem vorgegebenen Abstand zum Illuminator 104 mit um einen vorgegebenen
Winkel geneigten optischen Achse eingerichtet. In 3 ist
nur eine LED-Lampe 105, es können aber auch mehrere solche
Lampen vorgesehen sein, wobei ihre optischen Achsen in unterschiedlicher
Weise orientiert sein können.
-
Das
vom Illuminator 104 und der LED-Lampe 105 abgegebene
Licht wird nach Reflexion an der Oberseite des Werkstücks W mittels
des Spiegels 103 und der Linse 102 zum Bildaufnahmeelement 101 geleitet.
Das Bildaufnahmeelement 101 arbeitet unter diesem Lichtempfangszustand
dahingehend, ein Bild des Werkstücks
W mit zweidimensionalem Code zu erzeugen. Das erzeugte Bild wird
auf die Verarbeitungsschaltung auf der Basiskarte zur Durchführung einer
Einstellungs- und Ausleseverarbeitung, die nachstehend zu beschreiben
ist, übertragen.
-
Die
Funktionen des Codeleser 101 werden als nächstes unter
Bezug auf 4 erläutert.
-
Der
Codeleser 1 ist aus einem Bildaufnahmesteuerteil 108,
einem Beleuchtungssteuerteil 109, einem A/D-Wandler 110,
einem Optimierungsverarbeitungsteil 111, einem Anzeigeverarbeitungsteil 112,
einem Bildspeicher 113, einem Bildverarbeitungsteil 114,
einem Decodierteil 115, einem Eingabe-Ausgabe-Verarbeitungsteil 116 und
einem Ausgabeteil 117 aufgebaut. Von diesen stellt der
Bildverarbeitungsteil 114, der Decodierteil 115 und
der Eingabe-Ausgabe-Verarbeitungsteil 116 jeweils eine
Funktion dar, die in einer CPU eines Mikrocomputers eingerichtet
ist, während
die anderen jeweils als spezieller Schaltkreis für die betreffende Funktion
realisiert sind. In der Figur gibt „Auslösesignal" ein Signal an, das erzeugt wird, wenn
die oben genannten Bedienungsknöpfe 114 betätigt werden.
Die im Illuminator 104 enthaltenen Chip-LEDs und die LED-Lampe 105 zur
Diagonalbestrahlung sind durch eine Anzahl von Lichtquellen 107 dargestellt.
-
Das
Bildaufnahmeelement 101 ist gemäß dem vorliegenden Beispiel
eine CCD und so eingerichtet, dass Bilddaten aus Pixeln ansprechend
auf Ansteuersignale des Bildaufnahmesteuerteils 108 seriell
aus gegeben werden. Die Bilddaten werden nach ihrer Umwandlung in
Digitaldaten mittels des A/D-Wandlers 110 im Bildspeicher 113 gespeichert und
werden auch auf den Optimierungsverarbeitungsteil 111 übertragen.
Jede der Lichtquellen 107 wird ansprechend auf Ansteuersignale
des Beleuchtungssteuerteils 109 ein- und ausgeschaltet.
-
Nach
Herausziehen eines zweidimensionalen Codemusters aus dem im Bildspeicher 113 gespeicherten
Bild trennt der Bildverarbeitungsteil 114 weiße und schwarze
Zellen durch einen Binarisierungsvorgang voneinander und codiert
die durch die einzelnen Zellen dargestellten optischen Daten. Der Decodierteil 115 dient
zur Decodierung der optischen Daten des zweidimensionalen Codes,
beispielsweise durch Trennen dieser codierten Datenfelder in bestimmte
Einheiten (wie 8 Bits). Die decodierten Daten (nachfolgend als „Auslesedaten" bezeichnet) werden vom
Eingabe-Ausgabe-Verarbeitungsteil 116 auf den Ausgabeteil 117 zur
nachfolgenden Ausgabe auf die Rostvorrichtung 2 übertragen.
-
Der
Anzeigeverarbeitungsteil 112 dient zur Anzeige des auszulesenden
Bildes des zweidimensionalen Codes oder der vorgenannten Auslesedaten auf
dem Monitor 12. Der Zeitpunkt dieses Anzeigevorgangs und
die anzuzeigenden Dateninhalte werden durch die vorgenannte CPU
gesteuert.
-
Das
durch Betätigen
der Bedienungsknöpfe 14 ausgegebene
Auslösesignal
wird auf den Bildaufnahmesteuerteil 108, den Beleuchtungssteuerteil 109,
den Optimierungsverarbeitungsteil 111 und den Eingabe-Ausgabe-Verarbeitungsteil 116 übertragen. Ansprechend
auf dieses Auslösesignal
arbeiten der Bildaufnahmesteuerteil 108, der Beleuchtungssteuerteil 109 und
der Optimierungsverarbeitungsteil 111 dahingehend, einen
nachstehend zu beschreibenden Bildgewinnungsvorgang durchzuführen, um
damit ein Bild zu gewinnen, das für einen Auslesevorgang geeignet
ist. Der Eingabe-Ausgabe-Verarbeitungsteil 116 ande rerseits
wartet, wenn das Auslösesignal empfangen
wird, bis Auslesedaten vom Decodierteil 115 empfangen werden.
Wenn die Auslesedaten empfangen werden, arbeitet der Eingabe-Ausgabe-Verarbeitungsteil 116 so,
dass die empfangenen Auslesedaten über den Ausgabeteil 117 auf
die Rostvorrichtung 2 ausgegeben werden.
-
Im
Folgenden wird die Folge von Verarbeitungen, die vom Bildverarbeitungsteil 114 und
Decodierteil 115 ausgeführt
werden, als Ausleseverarbeitung bezeichnet werden. Nachdem das Auslösesignal
empfangen ist und der Bildaufnahmevorgang ausgeführt ist, benutzt der Optimierungsverarbeitungsteil 111 das
erzeugte Bild zur Einstellung der Verschlussgeschwindigkeit und
der Beleuchtungsintensität.
Der Auslesevorgang wird begonnen, wenn die Bildaufnahme- und Einstellvorgänge in einer
vorgegebenen Anzahl von Zyklen wiederholt und ein zum Auslesen geeignetes
Bild erzeugt ist.
-
Als
nächstes
wird der vom Optimierungsverarbeitungsteil 111 ausgeführte Justier-
bzw. Einstellvorgang erläutert.
-
Die
Helligkeitsdaten zu den Pixeln, die vom Bildaufnahmeelement 101 ausgegeben
und vom A/D-Wandler 110 umgewandelt werden (nachfolgend als
Pixeldaten bezeichnet), werden sequentiell dem Optimierungsverarbeitungsteil 111 eingegeben. Während der
Optimierungsverarbeitungsteil 111 diese Pixeldaten aufnimmt,
teilt er sie in eine Anzahl von Bereichen und zieht einen von diesen,
wo die Eigenschaft des zweidimensionalen Codes am besten wiedergegeben
wird, heraus. Die Bildaufnahme- und Beleuchtungsbedingungen werden
unter Verwendung der Bilddaten dieses herausgezogenen Bereichs eingestellt.
-
5 zeigt
ein Beispiel dafür,
wie ein Bereich für
ein Bild 200 eines zweidimensionalen Codes eingestellt
werden kann. In diesem Beispiel enthält das zu verarbeitende Bild 200 (Zielbild)
640 Pixel in der horizontalen Richtung (längs der X-Achse) und 480 Pixel
in der vertikalen Richtung (längs
der Y-Achse), und die Pixeldaten werden sequentiell längs der X-Richtung
ausgegeben. Der Optimierungsverarbeitungsteil 111 ist so
eingerichtet, dass er Berechnungen ausführt, indem er diese Pixeldaten
hereinnimmt und sie in Einheiten von 64 Pixeln separiert. Genauer erläutert, werden
ein Differenzierungsberechnung zur Gewinnung der Helligkeitsdifferenz
zwischen zueinander benachtbarten Pixeln und eine Integrationsberechnung
zur Gewinnung des Gesamtwerts dieser Helligkeitsdifferenzen für jeden
Bereich ausgeführt.
-
Die
Vorgänge,
wie sie oben beschrieben sind, werden in insgesamt 4800 Bereichen
(10 in Richtung der X-Achse und 480 in Richtung der Y-Achse),
die jeweils 64 eindimensional in Richtung der X-Achse ausgerichtete
Pixel enthalten, ausgeführt,
und dabei die Breite der Änderungen
der Helligkeit innerhalb des Bereichs herausgezogen.
-
5 zeigt
zwei solche Bereiche A und B, wobei Bereich A im Hintergrundteil
liegt und Bereich B einen zweidimensionalen Code 201 enthält. Die Helligkeitsverteilungen über Abschnitte
der Bereiche A und B sind in 6A bzw. 6B gezeigt.
Zur einfacheren Beschreibung stellt jede Zelle in den 6A und 6B (sowie
in der nachstehend zu beschreibenden 8) 5 Pixel
dar.
-
Wenn
der keinen zweidimensionalen Code aufweisende Hintergrundteil als
gleichförmige
Helligkeit aufweisend betrachtet wird, ist kaum eine Helligkeitsänderung
in dem im Hintergrund eingerichteten Helligkeitsbereich A vorhanden,
wie dies in 6A gezeigt ist. Die Helligkeitsunterschiede
zwischen zueinander benachbarten Pixeln sind extrem klein und ihr
Gesamtwert (ihr Integrationswert) kann als nahe bei null liegend
betrachtet werden.
-
In
einem Bereich über
einem zweidimensionalen Code andererseits tritt eine starke Helligkeitsänderung
an Grenzen zwischen einem weißen
Pixel und einem schwarzen Pixel auf. In einem über einem zweidimensionalen
Code eingerichteten Bereich B wird daher die Helligkeits differenz
zwischen Pixeln an einem solchen Grenzabschnitt groß, und solche Differenzwerte
spiegeln sich im Integrationswert wider.
-
Beruhend
auf diesem Prinzip wird gemäß diesem
Beispiel der Bereich, in welchem der Gesamtwert (integrierter Wert)
der Helligkeitsdifferenzen am größten ist,
aus dem 4800 Bereichen ausgewählt
und als der Bereich herausgezogen, der am besten die Eigenschaft
des zweidimensionalen Codes widerspiegelt, wobei die Bilddaten dieses
Bereichs zur Einstellung der Verschlussgeschwindigkeit des Bildaufnahmeelements 101 verwendet
werden.
-
Die
Verschlussgeschwindigkeit wird unter Verwendung des maximalen Helligkeitswerts
(nachfolgend als Spitzenwert bezeichnet) eingestellt. Aus praktischen
Gründen
wird hier der Helligkeitswert in „Gradationen" ausgedrückt. Für vollständige Dunkelheit
ist die Gradation 0, wobei die Gradationszahl mit zunehmender Helligkeit
zunimmt. Wenn die Bilddaten beispielsweise 8-Bit-Daten sind, wird
die Verschlussgeschwindigkeit so eingestellt, dass der Mittelwert
aller Spitzen in dem Bereich (nachfolgend als mittlerer Spitzenwert
bezeichnet), wie in 7 gezeigt, nahezu 255. Gradation
wird.
-
Im
Falle einer Spitze mit dem Spitzenwert von nahezu gleich 255 Gradationen
vor Einstellung besteht jedoch eine Wahrscheinlichkeit für das Auftreten
eines Halo-Effekts, weil zuviel Licht in das Bildaufnahmeelement 101 eintritt.
Da ein Signal von ungefähr
30 Gradationen vom Bildaufnahmeelement 101 auch dann ausgegeben
wird, wenn überhaupt kein
einfallendes Licht vorhanden ist, lassen sich Helligkeit und Dunkelheit
kaum unterscheiden, wenn die Helligkeit des Bildes ungefähr 30 Gradationen
ist. Dieser Zustand wird als Dunkelheitszustand bezeichnet. Aus
diesem Grund wird gemäß diesem
Beispiel die Verschlussgeschwindigkeit auf ein Viertel (1/4-mal)
des aktuellen Werts eingestellt, um die Belichtungszeit zu reduzieren,
wenn der kleinste Helligkeitswert des Bildes vor Einstellung 250 Gradationen oder
mehr ist, und für
eine längere Belichtung
auf viermal länger,
wenn der größte Helligkeitswert
des Bildes vor Einstellung 35 Gradationen oder weniger ist.
-
Auch
nachdem die Verschlussgeschwindigkeit eingestellt ist und die Bildhelligkeit
geeignet geworden ist, wird die Genauigkeit des ausgelesenen Codes
schlechter, wenn die Scharfeinstellung nicht exakt auf dem zweidimensionalen
Code liegt. In diesem Beispiel wird daher die Amplitude von Helligkeitsschwankungen
für jeden
Bereich selbst aus einem Bild, nachdem die Verschlussgeschwindigkeit eingestellt
worden, herausgezogen und die Geeignetheit der Fokussierungsbedingung
unter Verwendung des minimalen Helligkeitswerts in dem Bereich mit maximaler Änderungsamplitude
(nachfolgend als Boden bezeichnet) und der vorgenannten Spitze bestimmt.
Genauer erläutert,
wird die Steigung der Helligkeitsänderung, wie in 8 gezeigt,
vom Boden (angegebenen durch einen schwarzen Kreis) zur Spitze (angegeben
durch einen weißen
Kreis) gewonnen und die Fokussierungsbedingung als geeignet betrachtet,
wenn diese Steigung größer als
ein vorgegebener Schwellenwert ist.
-
Da
der Codeleser 1 dieses Beispiels den Aufbau eines Handgerätes hat,
ist vorgesehen, dass die Fokussierungseinstellungsbearbeitung vom
Anwender ausgeführt
wird. Wenn die Fokussierungsbedingung geeignet ist, wird unter Verwendung
des Bildes zu diesem Zeitpunkt der Auslesevorgang gestartet. Wenn
die Fokussierungsbedingung nicht geeignet ist, wird der Auslesevorgang
nicht ausgeführt, sondern
ein Bildaufnahmevorgang erneut ausgeführt. Wenn der Anwender die
Position des Codelesers 1 einjustiert und der Brennpunkt
geeignet eingestellt ist, wird das nach der Einstellung gewonnene Bild
für die
Ausleseverarbeitung verwendet.
-
9 ist
ein Blockdiagramm zur Wiedergabe der Hauptfunktionen des Optimierungsverarbeitungsteils 111,
der eine (erste) Differenzbildungsschaltung 121, eine Integrierschaltung 122,
eine (erste) Ver gleichsschaltung 123, eine Spitzenfeststellungsschaltung 124,
eine Bodenfeststellungsschaltung 125, eine weitere (zweite)
Differenzbildungsschaltung 126, zwei Dividierschaltungen 127 und 128 und
eine weitere (zweite) Vergleichsschaltung 129 enthält. 130 in
der Figur gibt einen (ersten) Zähler zum
Zählen
von Pixeln an, die einen einzelnen Bereich bilden, wobei sein Zählwert C1
sich im Bereich von 0 bis 64 ändert. 131 gibt
einen weiteren (zweiten) Zähler
zum Zählen
der Anzahl verarbeiteter Bereiche an, wobei sein Zählwert C2
sich im Bereich von 0 bis 4800 ändert.
-
Das
Datenfeld der einzelnen Pixeldaten, die das Bild bilden (nachfolgend
als Pixeldatenfeld bezeichnet) wird auf den ersten Zähler 130 und
die erste Differenzbildungsschaltung 121 übertragen.
Es wird auch mittels einer Verzögerungsschaltung 132 netzaufwärts der
ersten Differenzbildungsschaltung 121 verzögert, wobei
die erste Differenzbildungsschaltung 121 die Differenz
zwischen dem Datenwert des vorhergehenden von der Verzögerungsschaltung 132 gehaltenen
Pixels und dem aktuell eingegebenen Pixeldatenwert berechnet.
-
Eine
Vergleichsschaltung zur Beurteilung des Vorzeichens (positiv oder
negativ) des Ergebnisses der vorgenannten Berechnung und eine Schaltung
zur Umwandlung eines negativen Berechnungsergebnisses in einen positiven
Wert (beide nicht gezeigt) sind in der Integierschaltung 122 enthalten, welche
dazu dient, die Absolutwerte der durch die Differenzbildungsschaltung 121 festgestellten
Differenzen zu berechnen. Diese Integrationsberechnung wird in Einheiten
von 64 Pixeln beruhend auf dem Zählwert
C1 des ersten Zählers 130 durchgeführt. Wenn
die kumulative Addition auf dem 64. Pixel abgeschlossen ist, wird
der in diesem Zeitpunkt gewonnene Integrationswert netzabwärts ausgegeben
und der Inhalt der Schaltung gelöscht,
um sie für
die nächste
Integrationsberechnung bereit zu machen. Auf diese Weise wird der Änderungsamplitudenwert für jeden
der 4800 Bereiche herausgezogen.
-
Diese Änderungsamplitudenwerte
der Bereiche, die durch die Integrationsschaltung 122 gewonnen
sind, werden sequentiell von der Vergleichsschaltung 123 erhalten
und mit dem Änderungsamplitudenwert
eines vorher verarbeiteten Bereichs verglichen. Der größere der
Vergleichswerte wird gemäß diesem
Beispiels ausgewählt,
und dieser ausgewählte
Wert und der entsprechende Wert des Zähler C2 werden zusammen durch
ein (nicht gezeigtes) Register gespeichert. Diese Vergleichsvorgänge werden
begonnen, wenn die Zählung
des Zählers
C2 gleich 2 ist. Im ersten dieser Vorgänge erfolgt der Vergleich mit
dem unmittelbar vorher gewonnenen Integrationswert, der in der vorgelagerten
Verzögerungsschaltung 133 gespeichert
ist (der Änderungsamplitude
im ersten Bereich). Danach erfolgen Vergleiche mit dem Änderungsamplitudenwert,
der im vorgenannten Register aufbewahrt wird.
-
Am
Ende schließlich
zieht die Vergleichsschaltung 123 die größte der Änderungsamplituden der
Helligkeit der Bereiche heraus (nachfolgend als maximale Änderungsamplitude
bezeichnet) und gibt die Zählzahl
C2, die dieser maximalen Änderungsamplitude
entspricht und den Ort des Bereichs angibt, wo die maximale Änderungsamplitude
gewonnen wird, aus. Dieser durch die Zählzahl C2 angegebene entsprechende
Bereich wird nachfolgend als Objektbereich bezeichnet.
-
Als
nächstes
stellt die Spitzenfeststellungsschaltung 124 eine Helligkeitsspitze
beispielsweise durch Differenzieren der Ausgabewerte der Differenzbildungsschaltung 121 fest.
Ein weiterer (dritter) Zähler 134 ist
der Spitzennachweisschaltung 120 nachgelagert und dient
dazu, die Zahl C3 der festgestellten Spitzen zu zählen.
-
Die
Dividierschaltung 127 dient dazu, den vorgenannten mittleren
Spitzenwert durch Dividieren der Gesamtsumme der Spitzenwerte durch
C3 zu berechnen. Ein weiterer (vierter) Zähler 135, der zur Zählung der
Zahl C4 von Ausgaben der Differenzbildungsschaltung 121 dient,
wird wie der oben beschriebene erste Zähler 130 alle 64 Pixel
gelöscht. Diese Berechnung
des mittleren Spitzenwerts wird jedesmal ausgeführt, wenn durch den vierten
Zähler 135 bis
zur Zahl C4 gezählt
worden ist. Der mittlere Spitzenwert für jeden Bereich wird also von
der Dividierschaltung 127 ausgegeben. Diese mittleren Spitzenwerte
werden auf eine (nicht gezeigte) Auswahlschaltung übertragen,
die für
eine Auswahl des mittleren Spitzenwertes des vorgenannten Objektbereichs
eingerichtet ist. Dieser mittlere Spitzenwert wird zur Einstellung
der Verschlussgeschwindigkeit verwendet.
-
Die
Bodenfeststellungschaltung 125 dient zur Feststellung des
Helligkeitsbodens durch Durchführen
eines Vorgangs der ähnlich
demjenigen der Spitzenfeststellungschaltung 124, ausgenommen
auf den Ausgabewerten der Differenzbildungsschaltung 121,
ist.
-
Die
Zählzahl
C4 des vierten Zählers 135 wird jedesmal,
wenn ein Nachweis durch die Bodenfeststellungsschaltung 125 oder
die Spitzenfestellungsschaltung 124 erfolgt, in einem Register
oder dergleichen als die Nachweisposition wiedergebender Datenposten
aufbewahrt. Die zweite Differenzbildungsschaltung 126 dient
zur Eingabe des mit der Spitzenfeststellungsschaltung 124 festgestellten
Werts der Spitze, des mit der Bodenfeststellungsschaltung 125 festgestellten
Bodens und ihrer Nachweispositionen und zur Kombination einer Spitze
und eines Bodens in der Reihenfolge, in der sie festgestellt werden,
womit die Differenz zwischen diesen Werten gewonnen wird. Als nächstes dividiert
die zweite Dividierschaltung 128 den Ausgabewert der Differenzbildungsschaltung 125 durch
den Abstand zwischen der Spitze und dem Boden, um so die Steigung
einer Helligkeitsänderung
zwischen diesen zu gewinnen. Der Spitze-Boden-Abstand kann aus den
durch den Zähler
C4 wiedergegebenen Nachweispositionen gewonnen werden. Die Dividierschaltung 128 enthält eine
Schaltung zur Mittelung der Steigungen der Helligkeitsänderungen,
die für
alle Spitze-Boden-Kombinationen für alle Bereiche gewonnen worden
sind.
-
Die
Differenzbildungsschaltung 126 und die Dividierschaltung 128 führen ihre
Rechnungen auch für
jeden Bereich jedesmal aus, wenn der Zähler 135 fertig gezählt hat
und gelöscht
wird. Von den Ausgaben der Dividierschaltung 128 wird diejenige,
die dem Objektbereich entspricht, von der Vergleichsschaltung 123 hereingenommen
und mit einem spezifizierten Schwellenwert verglichen. Diese Vergleichsausgabe
dient zur Angabe der Geeignetheit der vorgenannten Fokusbedingung.
-
Wenngleich
in 9 nicht gezeigt, ist der Optimierungsverarbeitungsteil 111 ferner
mit einer Schaltung, die zur Hereinnahme von Pixeldatenanordnungen
und zur Feststellung maximaler und minimaler Helligkeitswerte aus
dem gesamten Bild eingerichtet ist, und einer Schaltung zur Beurteilung
des Auftretens eines Halo-Effekts oder einer Dunkelbedingung versehen.
Wenn das Bildaufnahmeelement 101 aktiviert wird und Pixeldatenanordnungen
ausgegeben werden, werden alle diese Schaltungen des Optimierungsverarbeitungsteils 111 ebenfalls
aktiviert, um parallele Vorgänge
zur Berechnung des mittleren Spitzenwerts an der Stelle der maximalen Änderungsamplitude,
Beurteilung, ob die Fokussierungsbedingung geeignet ist, und Bestimmung,
ob der Halo-Effekt oder eine Dunkelbedingung aufgetreten ist, durchzuführen. Ergebnisse
dieser Vorgänge werden
auf eine (nicht gezeigte) Steuerschaltung übertragen, die dafür eingerichtet
ist, Zahlen, die diese Ergebnisse angeben, mit spezifizierten Schwellenwerten
in einer speziellen Folge zu vergleichen und einen Wert beruhend
auf den Ergebnissen solcher Vergleiche auszuwählen. Auf der Grundlage dieses
ausgewählten
Werts und des durch diesen Wert angegebenen Datentyps wird ein Einstellvorgang
ausgeführt.
-
10 ist
ein Flussdiagramm zur Wiedergabe von Einzelheiten von Vorgängen, die
vom Optimierungsverarbeitungsteil 111 ansprechend auf die Eingabe
des Auslösesignals
ausgeführt
werden.
-
Wenn
das Auslösesignal
eingegeben wird, werden Anfangswerte für die Verschlussgeschwindigkeit
und für
die Beleuchtungsintensität
vom Optimierungsverarbeitungsteil 111 an den Bildaufnahmesteuerteil 108 und
den Beleuchtungssteuerteil 109 geliefert (Schritt ST101)
und ein Bild eines zweidimensionalen Codes gewonnen (Schritt ST102). Nachdem
eine Amplitude von Helligkeitsänderungen aus
jedem Bereich, wie oben erläutert,
durch diesen Bildaufnahmevorgang herausgezogen worden ist, werden
eine maximale Änderungsamplitude
und ein Objektbereich identifiziert, und ein mittlerer Spitzenwert
an diesem Objektbereich, die Beurteilungsergebnisse zur Geeignetheit
des Fokussierungszustands und des Auftretens eines Halo-Effekts
und einer Dunkelbedingung erzeugt.
-
In
Obigem wird, wenn die maximale Änderungsamplitude
an dem Objektbereich (wie von der Vergleichsschaltung 123 ausgegeben)
oberhalb eines spezifizierten Schwellenwerts liegt (JA in Schritt ST103),
die Verschlussgeschwindigkeit unter Verwendung des mittleren Spitzenwerts
dieses Objektbereichs eingestellt (Schritt ST104) und der zweite Bildaufnahmevorgang
danach beruhend auf der eingestellten Verschlussgeschwindigkeit
ausgeführt (Schritt
ST105).
-
Jede
Schaltung des Optimierungsverarbeitungsteils 111 arbeitet
für diesen
zweiten Bildaufnahmevorgang in der gleichen Weise wie für den ersten Bildaufnahmevorgang,
und wenn die maximale Änderungsamplitude
oberhalb des Schwellenwerst liegt (JA in Schritt ST106), wird das
Bild zu diesem Zeitpunkt auf dem Monitor 12 angezeigt (Schritt
ST107). Die Steuerung dieser Anzeige wird durch eine CPU ansprechend
auf ein Signal vom Optimierungsverarbeitungsteil 111 ausgeführt. Wenn
die in Schritt ST105 gewonnene Fokussierungsbedingung danach als
geeignet beurteilt wird (JA in Schritt ST108), wird ein „Endsignal" auf die CPU ausgegeben
(Schritt ST109), um den Vorgang abzuschließen.
-
Wenn
die maximale Änderungsamplitude
auf dem mit dem ersten Bildaufnahmevorgang gewonnenen Bild unterhalb
des spezifizierten Schwellenwerts liegt, werden Einstellungen beruhend
auf maximaler und minimaler Helligkeit des Bildes als ganzen ausgeführt. Wenn
der minimale Wert 150 Gradationen oder darüber ist
und das Vorliegen eines Halo-Effekts angenommen wird (JA in Schritt
ST110), wird die Verschlussgeschwindigkeit auf 1/4 des aktuellen
Werts eingestellt (Schritt ST112). Wenn der Maximalwert unter 35
Gradationen liegt und eine Dunkelbedingung als vorliegend angenommen
wird (JA in ST111), wird die Verschlussgeschwindigkeit auf das Vierfache
des aktuellen Werts eingestellt (Schritt ST113). Wenn sowohl der
Maximalwert als auch der Minimalwert im Bereich von 35 bis 250 Gradationen
liegt (NEIN in den Schritten ST110 und ST111), wird die Verschlussgeschwindigkeit
nicht geändert,
während die
Beleuchtungsintensität
einreguliert wird (Schritt ST114). Diese Einjustierung kann beispielsweise durch
Einschalten einer bestimmten Anzahl von Lichtquellen, die gerade
abgeschaltet sind, oder Ausschalten einer spezifizierten Anzahl
von Lichtquellen, die gerade eingeschaltet sind, bewirkt werden,
derart, dass der Maximalwert auf ein spezifiziertes Standardniveau
zu liegen kommt.
-
Wenn
die maximale Änderungsamplitude nicht
ausreichend groß ist
(NEIN in Schritt ST106), wird der Schritt ST102 der Aufnahme eines
Bildes, nachdem diese Einstellungen durchgeführt sind, d. h., unter einregulierten
Bedingungen, wiederholt. Wenn die maximale Änderungsamplitude mit diesem neu
aufgenommenen Bild sich als oberhalb des spezifizierten Schwellenwerts
befindend erweist (JA in Schritt ST103), werden die Vorgänge von
Schritt ST104 und folgende durchgeführt.
-
Wenn
die Fokussierungsbedingung des in Schritt ST105 gewonnenen Bildes
als nicht geeignet beurteilt wird (NEIN in Schritt ST105), wird
das „Endsignal" auf die CPU nicht
ausgegeben und ein weiteres Bild in Schritt ST102 aufgenommen. Die
oben beschriebenen Einstell- bzw. Justierschritte werden danach
auf diesem neu aufgenommenen Bild wiederholt.
-
Gemäß diesem
Beispiel enthalten die Bedingungen zur Beurteilung der Fokussierungsbedingung als
geeignet nicht nur, dass die Fokussierungsbedingung der Ausgabe
der Vergleichsschaltung 129 geeignet sein sollte, sondern
auch, dass der mittlere Spitzenwert des Objektbereichs oberhalb
eines spezifizierten Wertes liegen sollte.
-
Dieser
Bildaufnahmevorgang, wie er oben beschrieben wurde, ist auch in
einer Situation angemessen, wo der Anwender irrtümlich eine Änderung der Lage des Codelesers 1 bewirkt
hat. Wenn es passiert, dass der Codeleser 1 zum Zeitpunkt
des Schritts ST105, nachdem die Verschlussgeschwindigkeit eingestellt
worden ist, versetzt wird, so dass kein zweidimensionaler Code in
dem zu fotografierenden Bereich mehr vorhanden ist, erreicht die
maximale Änderungsamplitude
auf dem Bild, die zu diesem Zeitpunkt gewonnen wird, den Schwellenwert nicht,
und die Beurteilung in Schritt ST106 wird ein NEIN, was es erforderlich
macht, dass ein weiteres Bild aufgenommen wird (Schritt ST102) und
die Justierschritte wiederholt werden.
-
Der
Anwender wird also, wenn die Fokussierungsbedingung nicht geeignet
ist oder der Zielcode aus dem Gesichtsfeld verschwindet, die Position
des Codelesers 1 so einjustieren, dass ein geeignetes Bild
gewonnen werden kann. Da das Bild, das in Schritt ST107 wiedergegeben
wird, gespeichert wird, bis der Schritt ST107 das nächste Mal
ausgeführt wird,
kann der Anwender die Justiervorgänge unter Prüfung der
Geeignetheit der Fokussierungsbedingung durchführen.
-
11 zeigt
eine Folge von Vorgängen,
die von dem Codeleser 1 ausgeführt werden. Wenn zu seiner
Aktivierung Spannung zugeführt
wird, wird der Anzeigebildschirm eingeschaltet (Schritt ST1). Wenn danach
ein Auslösesignal
eingegeben wird (JA in Schritt ST2), wird der in 10 gezeigte
Bildaufnahmevorgang ausgeführt
(Schritt ST3). Nach dem damit ein Bild mit geeigneter Helligkeit
und Fokussierungsbedingung gewonnen ist, beginnen der Bildverarbeitungsteil 114 und
der Decodierteil 115 einen Auslesevorgang (Schritt ST4).
-
Wenn
optische Daten mit diesem Auslesevorgang erfolgreich ausgelesen
sind (JA in Schritt ST5), werden die gewonnenen Auslesedaten durch den
Monitor 12 angezeigt und auf die Hostvorrichtung 2 ausgegeben
(Schritt ST12). Wenn der Auslesevorgang fehlschlägt (NEIN in Schritt ST5), wird
ansprechend auf das nächste
Auslesesignal (JA in Schritt ST6) die Beleuchtungsbedingung geändert (Schritt
ST7) und der Bildaufnahmevorgang des Schritts ST3 erneut ausgeführt.
-
Der
Vorgang in Schritt ST7 wird beispielsweise ausgeführt, indem
die Zerstreuungsbeleuchtung durch den Illuminator 104 in
die Sichtungsbeleuchtung durch die LED-Lampe 105 geändert wird
oder durch die Farbe des Illuminators 104.
-
Wenn
kein Auslösesignal
innerhalb einer spezifizierten Zeitdauer (t Sekunden) nach der Aktivierung
(JA in Schritt ST8) eingegeben wird, erlischt der Bildschirm des
Monitors 12 (Schritt ST9). Wenn kein Auslösesignal
innerhalb der spezifizierten Zeit (t Sekunden) nach dem Auslösefehlschlag
(JA in Schritt ST8) eingegeben wird, erfolgt eine Fehleranzeige
durch den Monitor 12 und es wird auf die Eingabe eines
Auslösesignals
gewartet (ST2). Wenngleich in 11 nicht
gezeigt, wird, wenn das Auslösesignal
nach Erlöschen
des Monitorbildschirms (Schritt ST9) eingegeben wird, der Bildschirm
erneut eingeschaltet.
-
Mit
einem so aufgebauten Codeleser 1 werden, wenn der Anwender
einen der Bedienungsknöpfe 14 bei
in Richtung des Werkstückes
W weisendem Lesefenster 11 betätigt, der Bildaufnahmevorgang und
der Einstellvorgang für
die Verschlussgeschwindigkeit für
eine spezifizierte Anzahl von Zyklen wiederholt ausgeführt und
ein für
den Auslesevorgang geeignetes Bild gewonnen. Ein großer Teil
der Zeit für
den Einstellvorgang wird auf das Hereinnehmen vorgenannter Bilddatenfelder verwendet.
Nachdem die so gewonnenen Bilddatenfelder im Bildspeicher gespeichert
sind, sind dann nur noch Schritte zur Einstellung der Verschlussgeschwindigkeit
und der Beleuchtungsbedingungen da, die extrem schnell abgeschlossen
werden können.
Die Verarbeitungszeit wird also, verglichen mit der Methode der
Vornahme von Einstellungen unter Verwendung von im Bildspeicher 113 gespeicherten
Daten, deutlich verkürzt.
-
Durch
die Verarbeitung gemäß 10 kann ein
für das
Auslesen geeignetes Bild durch zwei Bildaufnahmevorgänge gewonnen
werden, wenn die Beleuchtungsbedingung und die Fokussierungsbedingung
adequat sind, und die Verarbeitungszeit kann noch stärker reduziert
werden.
-
Als
in Schritt ST1 der 10 einzustellende Anfangswerte
können
vorab eingestellte Standardwerte verwendet werden. Werte, die unmittelbar
vorher eingestellt werden, können
verwendet werden. In diesem Fall kann, wenn die maximale Änderungsamplitude
des mit dem ersten Bildaufnahmevorgang (des Schritts ST102) gewonnenen
Bilds oberhalb des Schwellenwerts und der mittlere Spitzenwert oberhalb
des spezifizierten Niveaus liegt, der Auslesevorgang ohne Einregulierung
der Verschlussgeschwindigkeit ausgeführt werden.
-
Durch
ein solches Einstellverfahren kann der Vorgang deutlich beschleunigt
werden, wenn für
eine vielmalige Wiederholung von Auslesevorgängen auf Werkstücken ähnlicher
Arten der Codeleser 1 nicht mit der Hand gehalten werden
muss, sondern an einer festen Position eingerichtet werden kann.
Dies liegt daran, dass wenn die Bildaufnahmeund Beleuchtungsbedingungen
für das
erste Werkstück
geeignet bestimmt werden können,
der Vorgang auf den nachfolgenden Werkstücken unter ungefähr den gleichen
Bedingungen wiederholt werden kann. Die Erfindung wurde oben unter
Bezug auf nur ein Beispiel beschrieben, dies soll den Rahmen der
Erfindung jedoch nicht einschrän ken.
Viele Abwandlungen und Variationen sind im Rahmen der Erfindung möglich. Es
wurde oben ein Beispiel erläutert,
bei dem die Helligkeit des Bildes hauptsächlich durch Verändern der
Verschlussgeschwindigkeit eingestellt wird, dies kann aber auch
durch Änderung
der Ausgangsverstärkung
des Bildaufnahmeelements 101 geschehen. Die Helligkeit
kann ferner durch Steuerung einer (nicht gezeigten) Öffnungsvorrichtung
eingestellt werden.
-
Anstelle
einer CCD kann auch ein Bildaufnahmeelement, das zu einem wahlfreiem
Zugriff fähig
ist, wie ein MOS, verwendet werden. In diesem Fall können, wie
in 12 gezeigt, Bereiche 20 in spezifizierten
Intervallen auf einem zu verarbeitenden Bild 200 eingestellt
werden, wobei die Änderungsamplitude
der Helligkeit eines jeden Bereichs durch sequentielles Auslesen
der diesen Bereichen 20 entsprechenden Pixeldaten gewonnen
werden. Die zu verarbeitende Datenmenge lässt sich also vermindern und
die für
den Einstellvorgang erforderliche Zeit kann deutlich verkürzt werden.
Diese Verarbeitungsmethode kann nicht nur für einen Bereich, in welchem
die Pixel eindimensional angeordnet sind, sondern auch für Verarbeitungsbereiche
mit zweidimensional angeordneten Pixeln verwendet werden.
-
Es
versteht sich, dass es wünschenswert
ist, einen Auslesevorgang nach der Einstellverarbeitung durchzuführen, indem
ein Bild beruhend auf der abschließenden Einstellung aufgenommen
wird, und damit ein Gesamtbild des zweidimensionalen Codes zu gewinnen.