DE102021106336A1 - Optische Lesevorrichtung - Google Patents

Optische Lesevorrichtung Download PDF

Info

Publication number
DE102021106336A1
DE102021106336A1 DE102021106336.1A DE102021106336A DE102021106336A1 DE 102021106336 A1 DE102021106336 A1 DE 102021106336A1 DE 102021106336 A DE102021106336 A DE 102021106336A DE 102021106336 A1 DE102021106336 A1 DE 102021106336A1
Authority
DE
Germany
Prior art keywords
decoding process
image
core
code
reading
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102021106336.1A
Other languages
English (en)
Inventor
Hidezumi Nagata
Kazuteru Yamamura
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Keyence Corp
Original Assignee
Keyence Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Keyence Corp filed Critical Keyence Corp
Publication of DE102021106336A1 publication Critical patent/DE102021106336A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/10544Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum
    • G06K7/10554Moving beam scanning
    • G06K7/10564Light sources
    • G06K7/10574Multiple sources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/1408Methods for optical code recognition the method being specifically adapted for the type of code
    • G06K7/14131D bar codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/10544Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum
    • G06K7/10712Fixed beam scanning
    • G06K7/10722Photodetector array or CCD scanning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/1408Methods for optical code recognition the method being specifically adapted for the type of code
    • G06K7/14172D bar codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/1439Methods for optical code recognition including a method step for retrieval of the optical code
    • G06K7/1447Methods for optical code recognition including a method step for retrieval of the optical code extracting optical codes from image or text carrying said optical code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/146Methods for optical code recognition the method including quality enhancement steps

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Electromagnetism (AREA)
  • Artificial Intelligence (AREA)
  • Toxicology (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Studio Devices (AREA)
  • Image Input (AREA)

Abstract

Eine ausreichende Decodierungsverarbeitungszeit für jedes Bild, das durch Durchführen einer Hochgeschwindigkeitsabbildung erfasst wird, wird sichergestellt, um ein stabiles Leseergebnis zu erzielen, wodurch eine sofortige Ausgabe des erhaltenen Leseergebnisses ermöglicht wird. Eine Verarbeitungseinheit weist einen ersten Kern und mehrere zweite Kerne auf. Der erste Kern befiehlt den zweiten Kernen, von denen angenommen wird, dass sie in der Lage sind, den Decodierungsprozess sofort oder den Decodierungsprozess neben einem aktuell ausgeführten Decodierungsprozess auszuführen, den Decodierungsprozess auszuführen. Die zweiten Kerne sind so ausgelegt, dass sie den Decodierungsprozess für Lesebilder, die von dem ersten Kern zu unterschiedlichen Zeitvorgaben befohlen werden, gleichzeitig ausführen können.

Description

  • Hintergrund der Erfindung
  • Gebiet der Erfindung
  • Der vorliegende Aspekt bezieht sich auf eine optische Lesevorrichtung, die Informationen liest, die in einem Lesebild enthalten sind, das durch Aufnehmen eines Bildes eines Werkstücks erzeugt wird.
  • Beschreibung des Standes der Technik
  • Im Allgemeinen ist ein Codeleser so ausgelegt, dass er ein Bild eines Codes wie etwa eines Strichcodes und eines zweidimensionalen Codes, der an einem Werkstück angebracht ist, mit einer Kamera aufnehmen kann, den in dem erhaltenen Bild enthaltenen Code durch Bildverarbeitung ausschneiden und binarisieren kann und Informationen durch einen Decodierungsprozess lesen kann (siehe beispielsweise die japanische Patentoffenlegungsschrift Nr. 2018-136860 und die japanische Patentoffenlegungsschrift Nr. 2012-64178 ).
  • Eine optische Lesevorrichtung in der japanischen Patentoffenlegungsschrift Nr. 2018-136860 ist dazu ausgelegt, eine Obergrenze einer Belichtungszeit zum Lesen eines Codes basierend auf einer Bewegungsgeschwindigkeit eines Werkstücks und einer den Code bildenden Zellengröße einzustellen und mehrere Bilder, die den Code enthalten, zu erfassen und zu analysieren, um die Belichtungszeit automatisch innerhalb der Obergrenze einzustellen.
  • Eine optische Lesevorrichtung der japanischen Patentoffenlegungsschrift Nr. 2012-64178 umfasst einen ersten Kern, der veranlasst, dass eine Abbildungseinheit eine Bildverarbeitung ausführt, und erfasste Bilddaten in einen gemeinsam genutzten Speicher überträgt, und einen zweiten Kern, der die Bilddaten aus dem gemeinsam genutzten Speicher liest und einen Decodierungsprozess basierend auf einer Decodierungsprozessanforderung aus dem ersten Kern ausführt.
  • Indes wird in der optischen Lesevorrichtung der japanischen Patentoffenlegungsschrift Nr. 2012-64178 die Verarbeitungsgeschwindigkeit erhöht, indem der erste Kern, der die Bildverarbeitung ausführt, und der zweite Kern, der den Decodierungsprozess ausführt, bereitgestellt werden.
  • Wenn allerdings ein Fall angenommen wird, in dem beispielsweise eine optische Lesevorrichtung in einem Verteilungszentrum verwendet wird, ist es erforderlich, Werkstücke, die mit hoher Geschwindigkeit laufen, sofort zu sortieren, und daher ist es erforderlich, die Häufigkeit des Auftretens von Lesefehlern zu verringern und gleichzeitig eine noch höhere Geschwindigkeit von der Abbildung bis zur Ausgabe eines Leseergebnisses zu erzielen. Die technischen Schwierigkeiten beim Erfüllen dieser beiden widersprüchlichen Anforderungen sind extrem hoch.
  • Das heißt, in dem Verteilungszentrum werden beförderte Objekte (Werkstücke) mit verschiedenen Größen und Formen mit hoher Geschwindigkeit befördert und es ist schwierig, ein Bild rechtzeitig aufzunehmen. Wenn das beförderte Objekt einen Abbildungsbereich durchläuft, gibt es daher einen Fall, in dem mehrere Abbildungsvorgänge (Serienabbildung) anstelle einer einzelnen Abbildung vorausgesetzt werden. Die beförderten Objekte bewegen sich jedoch während der Abbildung weiter und somit läuft das beförderte Objekt, bis ein Decodierungsergebnis ausgegeben wird, wenn die für einen Decodierungsprozess erforderliche Zeit lang ist, so dass die mehreren Abbildungsvorgänge bedeutungslos werden. Dementsprechend ist es notwendig, den Decodierungsprozess mit hoher Geschwindigkeit auszuführen.
  • Darüber hinaus verschlechtert sich die Qualität des Codes, der an dem beförderten Objekt in dem Verteilungszentrum angebracht ist, manchmal, weil er während der Beförderung Reibung, Spannungen oder Zerren unterworfen ist, außerdem besteht das Problem, dass das Lesen aufgrund des niedrigen Kontrasts tendenziell instabil ist. Daher ist es schwierig, ein stabiles Lesen durchzuführen, wenn nicht eine ausreichende Decodierungsverarbeitungszeit sichergestellt ist.
  • Ferner werden die beförderten Objekte in dem Verteilungszentrum nacheinander mit hoher Geschwindigkeit befördert und daher besteht das Problem, dass es schwierig ist zu bestimmen, ob ein Leseergebnis ein Leseergebnis eines Codes, der an einem abgebildeten beförderten Objekt angebracht ist, oder ein Leseergebnis eines Codes ist, der an einem beförderten Objekt angebracht ist, das anschließend befördert wurde, wenn nach dem Decodierungsprozess eine lange Zeit von der Abbildung bis zur Ausgabe der Leseergebnisse verstreicht. Daher ist es wünschenswert, dass das Leseergebnis unmittelbar nach der Abbildung ausgegeben wird.
  • Mit anderen Worten, es ist erforderlich, drei widerstreitende Bedingungen zu erfüllen, nämlich die Erfassung mehrerer Bilder durch Hochgeschwindigkeitsabbildung, die Sicherstellung einer ausreichenden Decodierungsverarbeitungszeit für jedes erfasste Bild und die unmittelbare Ausgabe von Leseergebnissen. Dies ist ein Problem, das nicht nur auf das Verteilungszentrum beschränkt ist, sondern auch in Einrichtungen und Fabriken auftritt, in denen verschiedene Werkstücke befördert werden.
  • Der vorliegende Aspekt wurde im Hinblick auf diesen Punkt ersonnen und eine Aufgabe davon ist es, eine ausreichende Decodierungsverarbeitungszeit für jedes Bild sicherzustellen, das durch Durchführen einer Hochgeschwindigkeitsabbildung erfasst wird, ein stabiles Decodierungsergebnis zu erhalten und eine sofortige Ausgabe des erhaltenen Decodierungsergebnisses zu ermöglichen.
  • Zusammenfassung der Erfindung
  • Um die obige Aufgabe zu lösen, ist die vorliegende Offenbarung für eine stationäre optische Lesevorrichtung vorgesehen, die einen Code liest, der an einem Werkstück angebracht ist, das auf einer Linie befördert wird. Die optische Lesevorrichtung umfasst: eine Beleuchtungseinheit, die dazu ausgelegt ist, Licht in Richtung eines Bereichs zu emittieren, durch den ein Werkstück läuft; eine Abbildungseinheit, die dazu ausgelegt ist, das von der Beleuchtungseinheit emittierte und von dem Bereich, durch den das Werkstück läuft, reflektierte Licht zu empfangen und ein Lesebild zu erzeugen, das durch Aufnehmen eines Bildes des Bereichs erhalten wird, durch den das Werkstück läuft; eine Verarbeitungseinheit, die einen ersten Kern, der einen Decodierungsprozess des von der Abbildungseinheit erzeugten Lesebilds befiehlt, und mehrere zweite Kerne, die das von dem ersten Kern befohlene Lesebild erfassen und einen Decodierungsprozess für das erfasste Lesebild ausführen, aufweist; und eine Ausgabeeinheit, die Decodierungsergebnisse ausgibt, die durch die mehreren zweiten Kerne erzeugt werden. Der erste Kern befiehlt dem zweiten Kern, von dem angenommen wird, dass er in der Lage ist, den Decodierungsprozess sofort auszuführen oder den Decodierungsprozess neben einem aktuell ausgeführten Decodierungsprozess auszuführen, den Decodierungsprozess auszuführen. Die mehreren zweiten Kerne können gleichzeitig die Decodierungsprozesse an den Lesebildern, die von dem ersten Kern zu unterschiedlichen Zeitvorgaben befohlen werden, ausführen.
  • Wenn dementsprechend das auf der Linie beförderte Werkstück mit Licht aus der Beleuchtungseinheit bestrahlt wird, wird das an dem Werkstück reflektierte Licht von der Abbildungseinheit empfangen und das Lesebild, das das Werkstück und den an dem Werkstück angebrachten Code enthält, wird erzeugt. Es ist möglich, mehrmals Bilder von einem Werkstück, das befördert wird, aufzunehmen, um mehrere Lesebilder zu erzeugen.
  • Wenn mehrere Lesebilder, wie beispielsweise ein erstes Lesebild, ein zweites Lesebild, ein drittes Lesebild usw., erzeugt werden, kann der erste Kern einem zweiten Kern befehlen, einen Decodierungsprozess des ersten Lesebildes auszuführen. Ferner befiehlt der erste Kern einem anderen zweiten Kern, der den Decodierungsprozess sofort ausführen kann, einen Decodierungsprozess des zweiten Lesebildes auszuführen. Dann führen diese zweiten Kerne gleichzeitig die Decodierungsprozesse an dem befohlenen ersten und zweiten Lesebild aus. Es ist zu beachten, dass der erste Kern den Decodierungsprozess ausführen kann.
  • Zusätzlich befiehlt der erste Kern einem zweiten Kern, von dem angenommen wird, dass er in der Lage ist, einen Decodierungsprozess neben einem aktuell ausgeführten Decodierungsprozess auszuführen, einen Decodierungsprozess des dritten Lesebildes auszuführen, wenn die mehreren zweiten Kerne die Decodierungsprozesse ausführen, und somit wird der Decodierungsprozess des dritten Lesebildes sofort ausgeführt, sobald die aktuell ausgeführten Decodierungsprozesse abgeschlossen sind. Infolgedessen ist es möglich, die Decodierungsprozesse der mehreren Lesebilder gleichzeitig auszuführen.
  • Zudem kann der zweite Kern, von dem angenommen wird, dass er den Decodierungsprozess sofort ausführen kann, ein zweiter Kern sein, der aktuell keinen Decodierungsprozess ausführt. In diesem Fall kann der erste Kern dem zweiten Kern, der aktuell den Decodierungsprozess nicht ausführt, unter den mehreren zweiten Kernen befehlen, den Decodierungsprozess des Lesebildes auszuführen. Zudem kann der zweite Kern, von dem angenommen wird, dass er als Nächstes den Decodierungsprozess ausführen kann, ein Kern sein, der gemäß einer bestimmten Regel abgeleitet wird. Wenn beispielsweise die Reihenfolge für mehrere zweite Kerne im Voraus bestimmt wurde, kann der Decodierungsprozess in der Reihenfolge des ersten zweiten Kerns, des zweiten Kerns, des dritten zweiten Kerns usw. befohlen werden, und der zweite Kern, der als Nächstes den Decodierungsprozess ausführen kann, kann basierend auf der Reihenfolge der zweiten Kerne angenommen werden. Mit anderen Worten ist es ausreichend, dem zweiten Kern, von dem angenommen wird, dass er den Decodierungsprozess sofort ausführen kann, oder von dem angenommen wird, dass er den Decodierungsprozess als Nächstes ausführen kann, basierend auf einem bestimmten Vermutungsstandard zu befehlen und diese Vermutung kann infolgedessen gekippt werden.
  • Daher können die mehreren zweiten Kerne die Decodierungsprozesse für die zu unterschiedlichen Zeitvorgaben befohlenen Lesebilder gleichzeitig ausführen und somit wird der Decodierungsprozess der mehreren Lesebilder beschleunigt und zugleich wird eine ausreichende Decodierungsverarbeitungszeit für ein Lesebild sichergestellt und stabiles Lesen ermöglicht. Infolgedessen kann das Leseergebnis mit hoher Geschwindigkeit erhalten werden und das Leseergebnis kann unmittelbar nach der Erzeugung des Lesebildes ausgegeben werden. Es ist zu beachten, dass die Abbildungseinheit die Lesebilder in regelmäßigen Zeitintervallen erzeugen kann.
  • Gemäß einer weiteren Ausführungsform der Erfindung ist die Abbildungseinheit so ausgelegt, dass sie nacheinander Lesebilder erzeugen kann. Die optische Lesevorrichtung umfasst eine Abstimmungsausführungseinheit, die während des Einstellens ein Lesebild, das einen Code enthält, aus der Abbildungseinheit erfasst, veranlasst, dass die Verarbeitungseinheit einen Decodierungsprozess an dem erfassten Lesebild ausführt, um eine für den Decodierungsprozess erforderliche Zeit zu messen, und automatisch eine obere Grenzzeit des Decodierungsprozesses basierend auf der gemessenen Zeit einstellt.
  • Gemäß dieser Konfiguration kann eine sogenannte unendliche Serienabbildung ausgeführt werden, indem die aufeinanderfolgende Erzeugung der Lesebilder fortgesetzt wird. Infolgedessen kann der Code des Werkstücks, das sich mit hoher Geschwindigkeit bewegt, in dem Lesebild erfasst werden, ohne dass er verpasst wird.
  • Da die Abstimmungsausführungseinheit die für den Decodierungsprozess erforderliche Zeit misst und basierend auf der gemessenen Zeit automatisch die obere Grenzzeit des Decodierungsprozesses einstellt, kann die obere Grenzzeit des Decodierungsprozesses, die für das tatsächliche Lesebild und den Code geeignet ist, eingestellt werden. Die obere Grenzzeit des Decodierungsprozesses ist eine Zeitüberschreitungszeit des Decodierungsprozesses. Wenn die voreingestellte obere Grenzzeit während des Betriebs der optischen Lesevorrichtung erreicht wird, also beispielsweise wenn der Decodierungsprozess eine lange Zeit dauert, wie beispielsweise bei einem Code von schlechter Qualität, beendet der zweite Kern inmitten des Decodierungsprozesses den Decodierungsprozess.
  • Gemäß einer nochmals weiteren Ausführungsform der Erfindung wird die obere Grenzzeit des Decodierungsprozesses so eingestellt, dass sie kürzer ist als eine Referenzzeit, die durch Multiplizieren einer Zeit, die durch Addieren einer Zeit zum Erzeugen eines Lesebildes durch die Abbildungseinheit und einer Zeit, die der zweite Kern benötigt, um ein Lesebild zu lesen, das von dem ersten Kern in einem Speicher gespeichert wird, erhalten wird, mit der Anzahl der zweiten Kerne erhalten wird.
  • Das heißt, nachdem ein Lesebild von der Abbildungseinheit erzeugt wurde, speichert der erste Kern das erzeugte Lesebild in dem Speicher und der Decodierungsprozess durch den zweiten Kern wird ausgeführt, wenn der zweite Kern das gespeicherte Lesebild liest. Da eine solche Verarbeitung von allen zweiten Kernen ausgeführt wird, ist es möglich, den Decodierungsprozess an allen erzeugten Lesebildern auszuführen, indem die obere Grenzzeit eines Decodierungsprozesses in einem zweiten Kern kürzer als die Zeit eingestellt wird, die durch Multiplizieren der Zeit, die durch Addieren der Zeit zum Erzeugen des Lesebildes und der Zeit, die der zweite Kern benötigt, um das von dem ersten Kern in dem Speicher gespeicherte Lesebild zu lesen, erhalten wird, mit der Anzahl der zweiten Kerne erhalten wird.
  • Gemäß einer nochmals weiteren Ausführungsform der Erfindung erhält die Abstimmungsausführungseinheit eine Referenzzeit, die durch Multiplizieren einer Zeit, die durch Addieren einer Zeit zum Erzeugen eines Lesebildes durch die Abbildungseinheit und einer Zeit, die der zweite Kern benötigt, um ein von dem ersten Kern in einem Speicher gespeichertes Lesebild zu lesen, erhalten wird, mit der Anzahl der zweiten Kerne erhalten wird, vergleicht die erhaltene Referenzzeit mit der gemessenen Zeit und stellt die gemessene Zeit als obere Grenzzeit des Decodierungsprozesses ein, wenn die gemessene Zeit kleiner oder gleich der Referenzzeit ist.
  • Gemäß dieser Konfiguration veranlasst die Abstimmungsausführungseinheit, dass der zweite Kern den Decodierungsprozess des Lesebildes ausführt, und stellt automatisch die obere Grenzzeit des Decodierungsprozesses zu der Zeit der Einstellung ein, die vor dem Betrieb der optischen Lesevorrichtung vorgenommen wird. Die obere Grenzzeit des Decodierungsprozesses variiert in Abhängigkeit von einem Code-Typ, einer Transportgeschwindigkeit des Werkstücks oder dergleichen, aber der Decodierungsprozess kann für alle Lesebilder ausgeführt werden, die durch die unendliche Serienabbildung erzeugt werden, indem die obere Grenzzeit wie oben beschrieben eingestellt wird.
  • Gemäß einer nochmals weiteren Ausführungsform der Erfindung vergleicht die Abstimmungsausführungseinheit die Referenzzeit mit der gemessenen Zeit und stellt die gemessene Zeit als die obere Grenzzeit des Decodierungsprozesses ein, wenn die gemessene Zeit die Referenzzeit überschreitet.
  • Beispielsweise benötigt der Decodierungsprozess im Fall eines verschleierten Codes einige Zeit, die manchmal länger als die obige Referenzzeit ist. In diesem Beispiel kann in einem solchen Fall die obere Grenzzeit des Decodierungsprozesses unabhängig von der Referenzzeit erhöht werden und somit wird der Decodierungsprozess kaum in der Mitte unterbrochen.
  • Gemäß einer nochmals weiteren Ausführungsform der Erfindung wird ein Abbildungsmodus mit festem Intervall zum Erhöhen eines Erzeugungsintervalls des Lesebildes durch die Abbildungseinheit im Vergleich zu einem Erzeugungsintervall in einem Fall, in dem die gemessene Zeit kleiner oder gleich der Referenzzeit ist, ausgeführt, wenn die gemessene Zeit als obere Grenzzeit des Decodierungsprozesses eingestellt wird.
  • Das heißt, wenn die obere Grenzzeit des Decodierungsprozesses die obige Referenzzeit überschreitet, gibt es ein Lesebild, das auch dann nicht decodierbar ist, wenn die unendliche Serienabbildung durchgeführt wird. In diesem Fall ist es möglich, das nicht decodierbare Lesebild durch Ausführen des Abbildungsmodus mit festem Intervall zu beseitigen.
  • Gemäß einer weiteren Ausführungsform der Erfindung befiehlt der erste Kern den voneinander verschiedenen zweiten Kernen, einen Decodierungsprozess eines ersten Codes und eines zweiten Codes auszuführen, wenn das Lesebild den ersten Code und den zweiten Code enthält.
  • Zum Beispiel gibt es einen Fall, in dem ein Lesebild den ersten Code und den zweiten Code enthält. In diesem Fall können der erste Code und der zweite Code parallel dem Decodierungsprozess unterzogen werden und die Verarbeitungszeit für ein Lesebild kann verkürzt werden, indem einem zweiten Kern befohlen wird, den Decodierungsprozess des ersten Codes auszuführen, und dem anderen zweiten Kern befohlen wird, den Decodierungsprozess des zweiten Codes auszuführen.
  • Gemäß einer nochmals weiteren Ausführungsform der Erfindung befiehlt der erste Kern dann, wenn die Typen des ersten Codes und des zweiten Codes, die in dem Lesebild enthalten sind, verschieden sind, den voneinander verschiedenen zweiten Kerne, die Decodierungsprozesse des ersten Codes und des zweiten Codes auszuführen.
  • Zum Beispiel gibt es einen Fall, in dem ein Lesebild einen eindimensionalen Code als ersten Code und einen zweidimensionalen Code als zweiten Code enthält. In diesem Fall können die verschiedenen Codetypen parallel decodiert werden und die Verarbeitungszeit für ein Lesebild kann verkürzt werden, indem einem zweiten Kern befohlen wird, den Decodierungsprozess des eindimensionalen Codes auszuführen, und dem anderen zweiten Kern befohlen wird, den Decodierungsprozess des zweidimensionalen Codes auszuführen. Es ist zu beachten, dass sowohl der erste Code als auch der zweite Code eindimensionale Codes sein können und verschiedene Typen der eindimensionalen Codes sein können. Zudem können sowohl der erste Code als auch der zweite Code zweidimensionale Codes sein und können verschiedene Typen der zweidimensionalen Codes sein.
  • Gemäß einer nochmals weiteren Ausführungsform der Erfindung kann jeder der zweiten Kerne umfassen: eine erste Decodierungsverarbeitungseinheit, die dazu ausgelegt ist, einen Decodierungsprozess eines eindimensionalen Codes auszuführen; und eine zweite Decodierungsverarbeitungseinheit, die dazu ausgelegt ist, einen Decodierungsprozess eines zweidimensionalen Codes auszuführen, und dann, wenn das Lesebild einen eindimensionalen Code und einen zweidimensionalen Code enthält, kann der zweite Kern den Decodierungsprozess des eindimensionalen Codes durch die erste Decodierungsverarbeitungseinheit ausführen und den Decodierungsprozess des zweidimensionalen Codes durch die zweite Decodierungsverarbeitungseinheit ausführen.
  • Gemäß einer nochmals weiteren Ausführungsform der Erfindung kann die Abbildungseinheit Bilder des Werkstücks unter verschiedenen Abbildungsbedingungen aufnehmen, um ein erstes Lesebild und ein zweites Lesebild zu erzeugen, und der erste Kern kann den voneinander verschiedenen zweiten Kernen befehlen, einen Decodierungsprozess für das erste Lesebild und das zweite Lesebild auszuführen. Infolgedessen kann der Decodierungsprozess parallel an dem ersten Lesebild und dem zweiten Lesebild, die unter den verschiedenen Abbildungsbedingungen erzeugt werden, ausgeführt werden und somit kann das Decodierungsergebnis mit höherer Geschwindigkeit ausgegeben werden.
  • Gemäß einer nochmals weiteren Ausführungsform der Erfindung sind eine Speichereinheit, die mehrere Banken speichert, Abbildungsparameter enthalten, die die Abbildungsbedingungen der Abbildungseinheit definieren, und eine Empfangseinheit, die eine Auswahl einer ersten Bank und einer zweiten Bank empfängt, die von einem Anwender unter den mehreren in der Speichereinheit gespeicherten Banken ausgeführt wird, bereitgestellt, und die Abbildungseinheit erzeugt das erste Lesebild gemäß einem Abbildungsparameter der ersten Bank, die von der Empfangseinheit empfangen wird, und erzeugt das zweite Lesebild gemäß einem Abbildungsparameter der zweiten Bank, die von der Empfangseinheit empfangen wird.
  • Da die mehreren Banken im Voraus gespeichert werden, kann sich ein Abbildungsparameter einer Bank in der von der Abbildungseinheit durchgeführten Abbildung widerspiegeln, wenn ein Anwender die Bank auswählt, die gemäß einem Codetyp, einem Werkstück oder dergleichen als geeignet erachtet wird. Wenn beispielsweise ein eindimensionaler Code und ein zweidimensionaler Code an einem Werkstück angebracht sind und es gewünscht ist, unterschiedliche Abbildungsparameter zwischen dem eindimensionalen Code und dem zweidimensionalen Code anzuwenden, ist es möglich, ein erstes Lesebild, auf das der Abbildungsparameter der ersten Bank angewendet wurde, und ein zweites Lesebild, auf das der Abbildungsparameter der zweiten Bank angewendet wurde, zu erzeugen, indem die erste Bank, die für den eindimensionalen Code geeignet ist, und die zweite Bank, die für den zweidimensionalen Code geeignet ist, ausgewählt werden. Infolgedessen werden die Genauigkeit und Geschwindigkeit des Decodierungsprozesses jedes Lesebildes verbessert.
  • Gemäß einer nochmals weiteren Ausführungsform der Erfindung befiehlt der erste Kern den zweiten Kernen, einen Decodierungsprozess für das erste Lesebild und das zweite Lesebild unter voneinander verschiedenen Decodierungsbedingungen auszuführen.
  • Der Decodierungsprozess kann parallel an dem ersten Lesebild und dem zweiten Lesebild unter verschiedenen Decodierungsbedingungen ausgeführt werden.
  • Gemäß einer nochmals weiteren Ausführungsform der Erfindung stoppt der erste Kern dann, wenn den voneinander verschiedenen zweiten Kernen befohlen wird, mehrere Lesebilder zu decodieren, die durch Aufnehmen eines Bildes eines einzelnen Werkstücks erzeugt werden, und ein Abschluss des Decodierungsprozesses in einem der zweiten Kerne unter den zweiten Kernen, denen befohlen wird, den Decodierungsprozess auszuführen, detektiert wird, den Decodierungsprozess des anderen zweiten Kerns. Eine solche Stoppverarbeitung ist nicht wesentlich und jeder der zweiten Kerne kann den Decodierungsprozess fortsetzen, wenn bei der Verarbeitung des zweiten Kerns ein Spielraum vorhanden ist.
  • Das heißt, wenn die mehreren zweiten Kerne jeweils den Decodierungsprozess jeweiliger Lesebilder ausführen, ist die Zeitvorgabe, zu der der Decodierungsprozess abgeschlossen wird, üblicherweise verschieden. Da ein Decodierungsergebnis erhalten wird, wenn der Decodierungsprozess durch einen der zweiten Kerne abgeschlossen wird, macht es keinen Sinn, den Decodierungsprozess durch den anderen zweiten Kern danach fortzusetzen. In einem solchen Fall kann der Decodierungsprozess des anderen zweiten Kerns gestoppt werden.
  • Wie oben beschrieben, kann gemäß der vorliegenden Offenbarung der erste Kern den zweiten Kernen, von denen angenommen wird, dass sie in der Lage sind, einen Decodierungsprozess sofort auszuführen oder einen Decodierungsprozess neben einem aktuell ausgeführten Decodierungsprozess auszuführen, befehlen, den Decodierungsprozess auszuführen, und die mehreren zweiten Kerne können gleichzeitig die Decodierungsprozesse an den Lesebildern, die von dem ersten Kern zu unterschiedlichen Zeitvorgaben befohlen werden, ausführen. Infolgedessen ist es möglich, das erhaltene Leseergebnis sofort auszugeben und zugleich die ausreichende Decodierungsverarbeitungszeit für jedes Bild, das durch Durchführen der Hochgeschwindigkeitsabbildung erfasst wird, sicherzustellen und das stabile Leseergebnis zu erhalten.
  • Figurenliste
    • 1 ist eine Ansicht, die die Betriebszeit einer optischen Lesevorrichtung gemäß einer Ausführungsform des vorliegenden Aspekts darstellt;
    • 2 ist eine Ansicht, die ein Beispiel eines Werkstücks darstellt, an dem ein eindimensionaler Code und ein zweidimensionaler Code angebracht sind;
    • 3 ist ein Blockdiagramm der optischen Lesevorrichtung;
    • 4 ist ein Blockdiagramm, das eine detaillierte Struktur einer Verarbeitungseinheit darstellt, die in der optischen Lesevorrichtung bereitgestellt ist;
    • 5 ist eine Vorderansicht der optischen Lesevorrichtung;
    • 6 ist eine Ansicht der optischen Lesevorrichtung bei Betrachtung von einer Betätigungsknopfseite aus;
    • 7 ist eine Ansicht der optischen Lesevorrichtung bei Betrachtung von einer Anschlussseite aus;
    • 8 ist eine Ansicht, die ein Anzeigebeispiel eines Parametersatzes darstellt;
    • 9 ist ein Ablaufdiagramm, das ein Beispiel eines Codesuchdaten-Erzeugungsprozesses darstellt, wenn es nur einen Codetyp gibt;
    • 10A ist eine Ansicht, die ein Beispiel eines Lesebildes darstellt;
    • 10B ist eine Ansicht, die ein Beispiel eines Intensitätskartenbildes für eindimensionalen Code darstellt;
    • 10C ist eine Ansicht, die ein Beispiel eines Intensitätskartenbildes für zweidimensionalen Code darstellt;
    • 11 ist ein Ablaufdiagramm, das ein Beispiel eines Codesuchdaten-Erzeugungsprozesses darstellt, wenn es zwei Codetypen gibt;
    • 12 ist ein Zeitdiagramm, das ein Beispiel eines Falls darstellt, in dem ein Decodierungsprozess an mehreren Lesebildern ausgeführt wird;
    • 13 ist ein konzeptionelles Diagramm in einem Fall, in dem mehrere Lesebilder parallel von mehreren Strängen in mehreren Kernen verarbeitet werden;
    • 14 ist ein konzeptionelles Diagramm in einem Fall, in dem mehrere gelesene Bilder von einem Strang in mehreren Kernen parallel verarbeitet werden;
    • 15 ist ein Ablaufdiagramm in einem Fall, in dem einem Kern, der den Decodierungsprozess abgeschlossen hat, befohlen wird, den nächsten Decodierungsprozess durchzuführen;
    • 16 ist eine Ansicht, die einen Warteschlangenzustand jedes Kerns, der einen Decodierungsprozess ausführt, und einen Befehlszeitvorgabe eines Decodierungsprozesses für jeden Kern darstellt;
    • 17 ist ein Ablaufdiagramm, das eine Abstimmungsprozedur darstellt;
    • 18 ist ein Zeitdiagramm eines Abbildungsmodus mit festem Intervall;
    • 19 ist ein Zeitdiagramm in einem Fall, in dem die Abbildung nicht in festen Intervallen durchgeführt wird;
    • 20 ist ein Ablaufdiagramm, das eine Prozessprozedur darstellt, wenn auf einen freien Kern gewartet wird;
    • 21 ist ein Ablaufdiagramm, das eine Prozessprozedur in einem Fall darstellt, in dem ein Puffer bereitgestellt ist, der Bilddaten speichern kann;
    • 22 ist ein Zeitdiagramm, das ein Betriebsbeispiel darstellt, nachdem ein Decodierungsprozess abgeschlossen ist;
    • 23 ist ein Ablaufdiagramm, das ein Betriebsbeispiel darstellt, nachdem ein Decodierungsprozess abgeschlossen ist;
    • 24 ist ein Zeitdiagramm in einem Fall, in dem mehrere Lesebilder, die durch Ändern der Helligkeit einer Beleuchtungseinheit erzeugt werden, Decodierungsprozessen durch verschiedene Kerne unterzogen werden;
    • 25 ist ein Zeitdiagramm in einem Fall, in dem verschiedene Typen von Codes, die in mehreren Lesebildern enthalten sind, die durch Ändern der Helligkeit einer Beleuchtungseinheit erzeugt werden, Decodierungsprozessen durch verschiedene Kerne unterzogen werden;
    • 26 ist ein Ablaufdiagramm, das die Verarbeitung während der Betriebszeit der optischen Lesevorrichtung darstellt; und
    • 27 ist eine Ansicht, die ein Beispiel eines Anwenderoberflächenbildes darstellt.
  • Genaue Beschreibung von bevorzugten Ausführungsformen Nachfolgend wird eine Ausführungsform des vorliegenden Aspekts unter Bezugnahme auf die Zeichnungen ausführlich beschrieben. Es ist zu beachten, dass die folgende Beschreibung der bevorzugten Ausführungsform im Wesentlichen nur ein Beispiel ist und den vorliegenden Aspekt, seine Anwendung oder seine Verwendung nicht einschränken soll.
  • 1 ist eine Ansicht, die schematisch die Betriebszeit einer optischen Lesevorrichtung 1 gemäß der Ausführungsform des vorliegenden Aspekts darstellt. In diesem Beispiel werden mehrere Werkstücke W in einer Pfeilrichtung Y in 1 In dem Zustand, in dem sie auf einer oberen Oberfläche eines Förderbandförderers B angeordnet sind, befördert, die optische Lesevorrichtung 1 gemäß der Ausführungsform ist an einer Stelle installiert, die von den Werkstücken W nach oben getrennt ist. Das Werkstück W läuft manchmal nicht nur in dem mittleren Abschnitt der oberen Oberfläche des Förderbandförderers B in einer Breitenrichtung, sondern auch auf der einen Seite und der anderen Seite in dem Zustand, in dem es in der Breitenrichtung versetzt ist, und das Werkstück W durchläuft nicht immer eine feste Position.
  • Die optische Lesevorrichtung 1 kann beispielsweise in einem Verteilungszentrum oder dergleichen verwendet werden. Förderobjekte (Werkstücke W) mit verschiedenen Größen und Formen werden mit hoher Geschwindigkeit auf dem in dem Verteilzentrum installierten Förderbandförderer B befördert. Zudem wird ein Intervall zwischen den Werkstücken W in einer Förderrichtung ebenfalls schmal eingestellt. Ferner sind an dem Werkstück W in einigen Fällen mehrere Codes CD1 und CD2 angebracht, in anderen Fällen jedoch nur ein Code.
  • In diesem Beispiel unterscheiden sich die Typen des ersten Codes CD1 und des zweiten Codes CD2. Der erste Code CD1 ist ein eindimensionaler Code und der zweite Code CD2 ist ein zweidimensionaler Code. Ein typisches Beispiel für den ersten Code CD1 ist ein Strichcode und Beispiele hierfür können einen JAN-Code, einen ITF-Code, GS1-128 und dergleichen umfassen. Typische Beispiele für den zweiten Code CD2 sind ein QR-Code (eingetragene Marke), ein Mikro-QR-Code, eine Datenmatrix (Datencode), ein Veri-Code, ein Actec-Code, PDF 417, ein Maxi-Code und dergleichen. Der zweite Code CD2 weist einen Stapeltyp und einen Matrixtyp auf und der vorliegende Aspekt kann auf jeden zweidimensionalen Code angewendet werden. Der erste Code CD1 und der zweite Code CD2 können durch Drucken oder Gravieren direkt auf dem Werkstück W angebracht sein, können durch Kleben auf das Werkstück W nach dem Drucken auf ein Etikett oder dergleichen angebracht sein und ein beliebiger Mechanismus oder ein beliebiges Verfahren kann verwendet werden. Zusätzlich können mehrere eindimensionale Codes oder mehrere zweidimensionale Codes an dem Werkstück W angebracht sein. Obwohl in der folgenden Beschreibung angenommen wird, dass der erste Code CD1 und der zweite Code CD2 an dem Werkstück W angebracht sind, wird der vorliegende Aspekt nicht beschränkt auf eine solche Form der Anbringung des Codes angewendet und kann auch auf eine Form angewendet werden, in dem nur ein Code oder drei oder mehr Codes angebracht sind.
  • Wie es in 1 gezeigt ist, ist die optische Lesevorrichtung 1 eine Vorrichtung, die den ersten Code CD1 und den zweiten Code CD2 (dargestellt in 2), die an dem Werkstück W angebracht sind, optisch liest, und ist insbesondere ein Codeleser, der dazu ausgelegt ist, die Bilder des ersten Codes CD1 und des zweiten Codes CD2, die an dem Werkstück W angebracht sind, aufzunehmen, um ein Lesebild zu erzeugen und in der Lage zu sein, einen Decodierungsprozess des ersten Codes CD1 und des zweiten Codes CD2, die in dem erzeugten Lesebild enthalten sind, auszuführen und ein Decodierungsergebnis auszugeben.
  • Die optische Lesevorrichtung 1 kann als stationäre optische Lesevorrichtung ausgebildet sein, die in dem Zustand verwendet wird, in dem sie an einer Halterung oder dergleichen (nicht dargestellt) befestigt ist, um sich während ihres Betriebs nicht zu bewegen, kann jedoch auch betrieben werden, während sie von einem Roboter (nicht abgebildet) oder einem Anwender gehalten und bewegt wird. Zudem können der erste Code CD1 und der zweite Code CD2 des Werkstücks W in dem stationären Zustand von der optischen Lesevorrichtung 1 gelesen werden. Die Betriebszeit ist die Zeit, während der ein Betrieb zum Lesen der ersten Codes CD1 und des zweiten Codes CD2 der Werkstücke W, die nacheinander von dem Förderbandförderer B gefördert werden, durchgeführt wird. Die optische Lesevorrichtung 1 der vorliegenden Ausführungsform ist für eine Situation geeignet, in der es erwünscht ist, den ersten Code CD1 und den zweiten Code CD2 zu lesen, die an einem Werkstück W angebracht sind, dessen Position variiert, ist aber nicht darauf beschränkt und kann auch im Fall des Lesens des ersten Codes CD1 und des zweiten Codes CD2, die an einem Werkstück W angebracht sind, dessen Position sich nicht ändert, verwendet werden.
  • Wie es in 1 gezeigt ist, ist die optische Lesevorrichtung 1 mit einem Computer 100 und einem speicherprogrammierbaren Controller (PLC) 101 als externe Steuervorrichtungen auf drahtgebundene Weise durch Signalleitungen 101a bzw. 101a verbunden. Der Aspekt ist jedoch nicht darauf beschränkt und die optische Lesevorrichtung 1, der Computer 100 und der PLC 101 können eingebaute Kommunikationsmodule aufweisen, um die optische Lesevorrichtung 1 drahtlos mit dem Computer 100 und dem PLC 101 zu verbinden. Der PLC 101 ist eine Steuervorrichtung, die zur Abfolgesteuerung des Förderbandförderers B und der optischen Lesevorrichtung 1 ausgelegt ist, und kann einen Allzweck-PLC verwenden.
  • Der Computer 100 kann einen universalen oder dedizierten elektronischen Computer, ein tragbares Endgerät oder dergleichen verwenden. In diesem Beispiel wird ein sogenannter PC verwendet und umfasst eine Steuereinheit 40, eine Speichervorrichtung 41, eine Anzeigeeinheit 42, eine Eingabeeinheit 43 und eine Kommunikationseinheit 44. Wenn die optische Lesevorrichtung 1 verkleinert wird, ist es schwierig, die gesamte Einstellung der optischen Lesevorrichtung 1 nur unter Verwendung der Anzeigeeinheit 7, der Tasten 8 und 9 und dergleichen der optischen Lesevorrichtung 1 vorzunehmen. Somit kann der Computer 100 getrennt von der optischen Lesevorrichtung 1 bereitgestellt sein, so dass der Computer 100 verschiedene Einstellungen der optischen Lesevorrichtung 1 vornimmt und Einstellungsinformationen an die optische Lesevorrichtung 1 überträgt.
  • Da der Computer 100 die Kommunikationseinheit 44 aufweist, können der Computer 100 und die optische Lesevorrichtung 1 außerdem verbunden sein, um eine bidirektionale Kommunikation zu ermöglichen, so dass ein Teil der oben beschriebenen Verarbeitung der optischen Lesevorrichtung 1 von dem Computer 100 ausgeführt wird. In diesem Fall dient ein Teil des Computers 100 als einige Komponenten der optischen Lesevorrichtung 1.
  • Die Steuereinheit 40 ist eine Einheit, die jede in dem Computer 100 bereitgestellte Einheit basierend auf einem in der Speichervorrichtung 41 gespeicherten Programm steuert. Die Speichervorrichtung 41 besteht aus verschiedenen Speichern, einer Festplatte, einem Festkörperlaufwerk (SSD) und dergleichen. Die Anzeigeeinheit 42 besteht beispielsweise aus einer Flüssigkristallanzeige und dergleichen. Die Eingabeeinheit 43 besteht aus einer Tastatur, einer Maus, einem Berührungssensor und dergleichen. Die Kommunikationseinheit 44 ist ein Abschnitt, der mit der optischen Lesevorrichtung 1 kommuniziert. Die Kommunikationseinheit 44 kann eine E/A-Einheit, die mit der optischen Lesevorrichtung 1 verbunden ist, eine serielle Kommunikationseinheit wie RS232C und eine Netzkommunikationseinheit wie etwa ein WLAN und ein drahtgebundenes LAN aufweisen.
  • Die Steuereinheit 40 erzeugt ein Anwenderschnittstellenbild zum Einstellen eines Abbildungszustands der Abbildungseinheit 5 und eines Bildverarbeitungszustands der Verarbeitungseinheit 23 in der optischen Lesevorrichtung 1 und ein Anwenderschnittstellenbild oder dergleichen zum Anzeigen von einem Decodierungsergebnis, Bilddaten oder dergleichen, die von der optischen Lesevorrichtung 1 ausgegeben werden, und veranlasst, dass die Anzeigeeinheit 42 das Anwenderschnittstellenbild anzeigt. Die Anzeigeeinheit 42 kann einen Teil der optischen Lesevorrichtung 1 bilden. Die Speichervorrichtung 41 ist ein Abschnitt, der das Decodierungsergebnis, das ein Ergebnis eines Decodierungsprozesses ist, der von der Verarbeitungseinheit 23 ausgeführt wird, das Bild, das von der Abbildungseinheit 5 aufgenommen wird, verschiedene Typen von Einstellungsinformationen und dergleichen speichert.
  • Zudem empfängt die optische Lesevorrichtung 1 während ihrer Betriebszeit ein Lesestart-Auslösersignal, das Lesestartzeitvorgaben des ersten Codes CD1 und des zweiten Codes CD2 definiert, aus dem PLC 101 über die Signalleitung 101a. Ferner führt die optische Lesevorrichtung 1 eine Abbildung und einen Decodierungsprozess des Werkstücks W basierend auf dem Lesestart-Auslösersignal durch. Danach wird das durch den Decodierungsprozess erhaltene Decodierungsergebnis über die Signalleitung 101a an den PLC 101 übertragen. Auf diese Weise werden während der Betriebszeit der optischen Lesevorrichtung 1 die Eingabe des Lesestart-Auslösersignals und die Ausgabe des Decodierungsergebnisses wiederholt über die Signalleitung 101a zwischen der optischen Lesevorrichtung 1 und der externen Steuervorrichtung wie etwa dem PLC 101 vorgenommen. Es ist zu beachten, dass die Eingabe des Lesestart-Auslösersignals und die Ausgabe des Decodierungsergebnisses über die Signalleitung 101a zwischen der optischen Lesevorrichtung 1 und dem PLC 101 wie oben beschrieben erfolgen kann oder über eine andere Signalleitung (nicht dargestellt) erfolgen kann. Beispielsweise sind ein Sensor, der dazu ausgelegt ist, die Ankunft des Werkstücks W an einer vorbestimmten Position zu detektieren, und die optische Lesevorrichtung 1 direkt miteinander verbunden, um das Lesestart-Auslösersignal aus dem Sensor in die optische Lesevorrichtung 1 einzugeben. Das Decodierungsergebnis, das Bild und verschiedene Typen von Einstellungsinformationen können an eine andere Vorrichtung als den PLC 101 ausgegeben werden, beispielsweise den Computer 100.
  • [Gesamtkonfiguration der optischen Lesevorrichtung 1]
  • Wie es in 5 bis 7 gezeigt ist, umfasst die optische Lesevorrichtung 1 ein Gehäuse 2 und eine vordere Abdeckung 3. Wie es in 5 gezeigt ist, sind eine Beleuchtungseinheit 4, eine Abbildungseinheit 5 und eine Zielvorrichtung 6 auf einer vorderen Oberfläche des Gehäuses 2 bereitgestellt. Konfigurationen der Beleuchtungseinheit 4 und der Abbildungseinheit 5 sind später beschrieben. Die Zielvorrichtung 6 ist beispielsweise unter Verwendung eines Leuchtkörpers wie etwa einer Leuchtdiode ausgebildet. Die Zielvorrichtung 6 ist dazu ausgelegt, Licht auf die vordere Oberfläche der optischen Lesevorrichtung 1 zu emittieren, um einen Abbildungsbereich der Abbildungseinheit 5 und eine Richtlinie für eine optische Achse der Beleuchtungseinheit 4 anzugeben. Ein Anwender kann sich auch auf das von der Zielvorrichtung 6 emittierte Licht beziehen, um die optische Lesevorrichtung 1 zu installieren.
  • Zudem ist eine Endfläche des Gehäuses 2 mit der Anzeigeeinheit 7, einer Auswahltaste 8, einer Eingabetaste 9 und einem Indikator 10 versehen, wie es in 6 dargestellt ist. Eine Konfiguration der Anzeigeeinheit 7 ist später beschrieben. Die Auswahltaste 8 und die Eingabetaste 9 sind Tasten, die zum Einstellen oder dergleichen der optischen Lesevorrichtung 1 verwendet werden, und sind mit einem Steuerabschnitt 20 verbunden. Der Steuerabschnitt 20 kann Betätigungszustände der Auswahltaste 8 und der Eingabetaste 9 detektieren. Die Auswahltaste 8 ist eine Taste, die betätigt wird, wenn eine aus mehreren Optionen ausgewählt wird, die auf der Anzeigeeinheit 7 angezeigt werden. Die Eingabetaste 9 ist eine Taste, die betätigt wird, wenn ein mit der Auswahltaste 8 ausgewähltes Ergebnis bestätigt wird. Der Indikator 10 ist mit dem Steuerabschnitt 20 verbunden und kann unter Verwendung eines Leuchtkörpers wie etwa einer Leuchtdiode ausgebildet sein. Der Betriebszustand der optischen Lesevorrichtung 1 kann durch einen Beleuchtungszustand des Indikators 10 nach außen gemeldet werden.
  • Zudem sind ein Leistungsverbinder 11, ein Netzverbinder 12, ein serieller Verbinder 13 und ein USB-Verbinder 14 an der anderen Endfläche des Gehäuses 2 bereitgestellt, wie in 7 dargestellt ist. Zudem ist eine Wärmesenke 15, die als hinteres Gehäuse dient, auf einer Rückseite des Gehäuses 2 bereitgestellt. Eine Leistungsverdrahtung, die dazu ausgelegt ist, die optische Lesevorrichtung 1 mit Leistung zu versorgen, ist mit dem Leistungsverbinder 11 verbunden. Der serielle Verbinder 13 entspricht den Signalleitungen 100a und 101a, die mit dem Computer 100 und dem PLC 101 verbunden sind, und der Netzverbinder 12 ist ein Ethernet-Verbinder. Es ist zu beachten, dass der Ethernet-Standard ein Beispiel ist und auch Signalleitungen anderer Standards als dem Ethernet-Standard verwendet werden können.
  • Ferner sind der Steuerabschnitt 20, eine Speichervorrichtung 50, eine Ausgabeeinheit 60 und dergleichen, die in 3 dargestellt sind, in dem Gehäuse 2 bereitgestellt. Diese werden später beschrieben.
  • Obwohl die Vorderfläche und die Rückfläche der optischen Lesevorrichtung 1 wie oben in der Beschreibung der vorliegenden Ausführungsform beschrieben definiert sind, wird dies nur angegeben, um die Erleichterung der Beschreibung zu erreichen, und schränkt die Orientierung während der Betriebszeit der optischen Lesevorrichtung 1 nicht ein. Das heißt, wie es in 1 dargestellt ist, kann die optische Lesevorrichtung 1 so installiert und verwendet werden, dass die Vorderfläche im Wesentlichen nach unten gerichtet ist, die optische Lesevorrichtung 1 kann so installiert und verwendet werden, dass die Vorderfläche nach oben gerichtet ist, die optische Lesevorrichtung 1 kann so installiert und verwendet werden, dass die Vorderfläche nach unten gerichtet und geneigt ist, oder die optische Lesevorrichtung 1 kann so installiert und verwendet werden, das sich die Vorderfläche entlang einer vertikalen Ebene erstreckt.
  • [Konfiguration der Beleuchtungseinheit 4]
  • Wie es durch die gestrichelte Linie in 5 angegeben ist, ist die Beleuchtungseinheit 4 ein Element, das dazu ausgelegt ist, Licht in Richtung eines Bereichs zu emittieren, durch den das von dem Förderbandförderer B beförderte Werkstück W läuft. Das von der Beleuchtungseinheit 4 emittierte Licht beleuchtet mindestens einen vorbestimmten Bereich in der Förderrichtung des Förderbandförderers B. Dieser vorbestimmte Bereich ist ein Bereich, der breiter ist als eine Abmessung des größten angenommenen Werkstücks W, dass während der Betriebszeit befördert wird, in der gleichen Richtung. Die Beleuchtungseinheit 4 beleuchtet den ersten Code CD1 und den zweiten Code CD2, die an dem Werkstück W angebracht sind, das von dem Förderbandförderer B befördert wird.
  • Die Beleuchtungseinheit 4 umfasst beispielsweise einen Leuchtkörper 4a, der aus einer Leuchtdiode oder dergleichen besteht, und der Leuchtkörper 4a kann ein einzelner sein oder es können mehrere Leuchtkörper 4a bereitgestellt sein. In diesem Beispiel sind mehrere Leuchtkörper 4a bereitgestellt und die Abbildungseinheit 5 ist zwischen den Leuchtkörpern 4a nach außen gewandt. Zudem wird das Licht der Zielvorrichtung 6 aus einem Abschnitt zwischen den Leuchtkörpern 4a emittiert. Die Beleuchtungseinheit 4 ist mit einer Abbildungssteuereinheit 22 des Steuerabschnitts 20 elektrisch verbunden und kann von dem Steuerabschnitt 20 gesteuert werden, um zu beliebigen Zeitvorgaben ein- und ausgeschaltet zu werden.
  • In diesem Beispiel sind die Beleuchtungseinheit 4 und die Abbildungseinheit 5 zur Integration auf dem Einzelgehäuse 2 montiert, aber die Beleuchtungseinheit 4 und die Abbildungseinheit 5 können als separate Körper ausgebildet sein. In diesem Fall können die Beleuchtungseinheit 4 und die Abbildungseinheit 5 drahtgebunden oder drahtlos verbunden sein. Zudem kann der Steuerabschnitt 20, der später beschrieben ist, in der Beleuchtungseinheit 4 oder der Abbildungseinheit 5 eingebaut sein. Die an dem Gehäuse 2 montierte Beleuchtungseinheit 4 wird als interne Beleuchtung bezeichnet und die Beleuchtungseinheit 4, die als separater Körper von dem Gehäuse 2 ausgebildet ist, wird als externe Beleuchtung bezeichnet. Es ist auch möglich, das Werkstück W sowohl mit der internen Beleuchtung als auch mit der externen Beleuchtung zu beleuchten.
  • [Konfiguration der Abbildungseinheit 5]
  • 3 ist ein Blockdiagramm, das die Konfiguration der optischen Lesevorrichtung 1 darstellt. Die Abbildungseinheit 5 ist ein Element, das dazu ausgelegt ist, Licht zu empfangen, das von der Beleuchtungseinheit 4 emittiert und von einem Bereich, durch den das Werkstück W läuft, reflektiert wird, und ein Lesebild, das durch Aufnehmen des Bildes des Bereichs, durch den das Werkstück W läuft, erhalten wird, zu erzeugen. Als Abbildungseinheit 5 kann eine Flächenkamera verwendet werden, in der Pixel vertikal und horizontal (X-Richtung und Y-Richtung) angeordnet sind. Infolgedessen ist es möglich, das Lesen eines zweidimensionalen Codes zu unterstützen und die Bilder eines Werkstücks W, das befördert wird, mehrmals aufzunehmen.
  • Wie es in 3 gezeigt ist, umfasst die Abbildungseinheit 5: ein Abbildungselement 5a, das das Bild mindestens eines Abschnitts des Werkstücks W aufnehmen kann, an dem der erste Code CD1 und der zweite Code CD2 angebracht sind; ein optisches System 5b mit Linsen und dergleichen; und einen Autofokusmechanismus (AF-Mechanismus) 5c. Licht, das von mindestens dem Abschnitt des Werkstücks W reflektiert wird, an dem der erste Code CD1 und der zweite Code CD2 angebracht sind, fällt auf das optische System 5b. Das Abbildungselement 5a ist ein Bildsensor, der ein Lichtempfangselement wie etwa eine ladungsgekoppelte Vorrichtung (CCD) oder einen komplementären Metall-Oxid-Halbleiter (CMOS) aufweist, das ein Bild mit dem ersten Code CD1 und dem zweiten Code CD2, das durch das optische System 5b erhalten wird, in ein elektrisches Signal umsetzt.
  • Der AF-Mechanismus 5c ist ein Mechanismus, der eine Fokussierung durch Ändern einer Position und eines Brechungsindex einer Fokussierlinse unter den Linsen, die das optische System 5b bilden, durchführt. Der AF-Mechanismus 5c ist mit dem Steuerabschnitt 20 verbunden und wird von einer AF-Steuereinheit 21 des Steuerabschnitts 20 gesteuert.
  • Das Abbildungselement 5a ist mit der Abbildungssteuereinheit 22 des Steuerabschnitts 20 verbunden. Das Abbildungselement 5a wird von der Abbildungssteuereinheit 22 gesteuert und ist so ausgelegt, dass es in der Lage ist, ein Bild eines Bereichs, durch den das Werkstück W läuft, zu vorbestimmten festen Zeitintervallen aufzunehmen und ein Bildes eines Bereichs, durch den das Werkstück W läuft, zu beliebigen Zeitvorgaben mit geänderten Zeitintervallen aufzunehmen. Die Abbildungseinheit 5 ist so ausgelegt, dass sie in der Lage ist, eine sogenannte unendliche Serienabbildung auszuführen, bei der die aufeinanderfolgende Erzeugung von Lesebildern fortgesetzt wird. Im Ergebnis ist es möglich, die Codes CD1 und CD2 des Werkstücks W, die sich mit hoher Geschwindigkeit bewegen, in dem Lesebild aufzunehmen, ohne die Codes CD1 und CD2 zu verpassen, und es ist möglich, mehrere Lesebilder durch mehrmaliges Aufnehmen der Bilder eines Werkstücks W, das befördert wird, zu erzeugen. Es ist zu beachten, dass die Abbildungssteuereinheit 22 in der Abbildungseinheit 5 eingebaut sein kann.
  • Die Intensität des von einer Lichtempfangsfläche des Abbildungselements 5a empfangenen Lichts wird von dem Abbildungselement 5a in ein elektrisches Signal umgesetzt und das von dem Abbildungselement 5a umgesetzte elektrische Signal wird an die Verarbeitungseinheit 23 des Steuerabschnitts 20 als Bilddaten, die ein Lesebild bilden, übertragen. Insbesondere erzeugt das Abbildungselement 5a ein Lesebild und überträgt dann das Lesebild Zeile für Zeile an die Verarbeitungseinheit 23. Eine Zeile entspricht beispielsweise einer Spalte (oder einer Zeile) in vertikaler oder horizontaler Richtung des Abbildungselements 5a. Um das Lesebild Zeile für Zeile zu übertragen, müssen Helligkeitswerte mehrerer Pixel, die eine vertikale Spalte des Abbildungselements 5a bilden, oder Helligkeitswerte mehrerer Pixel, die eine horizontale Spalte des Abbildungselements 5a bilden, an die Verarbeitungseinheit 23 übertragen werden und dann Helligkeitswerte einer mehrerer Pixel, die eine Spalte neben der übertragenen Spalte bilden, nacheinander in einer Richtung, in der Spalten angeordnet sind, an die Verarbeitungseinheit 23 übertragen werden. Es ist zu beachten, dass das Abbildungselement 5a nach dem Erzeugen des Lesebildes das gesamte Lesebild auf einmal an die Verarbeitungseinheit 23 übertragen kann, ohne die Übertragung an die Verarbeitungseinheit 23 zeilenweise durchzuführen. Dies kann beispielsweise durch die Abbildungssteuereinheit 22 gesteuert werden.
  • [Konfiguration der Anzeigeeinheit 7]
  • Die Anzeigeeinheit 7 ist beispielsweise unter Verwendung einer organischen EL-Anzeige, einer Flüssigkristallanzeige oder dergleichen ausgebildet. Die Anzeigeeinheit 7 ist mit dem Steuerabschnitt 20 verbunden, wie es in 4 dargestellt ist. Auf der Anzeigeeinheit 7 können beispielsweise die Bilder der Codes CD1 und CD2, die von der Abbildungseinheit 5 aufgenommen werden, und eine Zeichenkette, eine Leseerfolgsrate, ein Übereinstimmungsniveau (Lesespanne) und dergleichen, was Decodierungsergebnisse der Codes CD1 und CD2 sind, angezeigt werden. Die Leseerfolgsrate ist eine durchschnittliche Leseerfolgsrate, wenn die Leseverarbeitung mehrere Male ausgeführt wird. Das Übereinstimmungsniveau ist eine Lesetoleranz, die die Lesbarkeit der Codes CD1 und CD2, die erfolgreich decodiert wurden, angibt. Dies kann aus der Anzahl der Fehlerkorrekturen erhalten werden, die während der Decodierung aufgetreten sind, und kann beispielsweise numerisch ausgedrückt werden. Das Übereinstimmungsniveau (die Lesetoleranz) nimmt mit abnehmender Fehlerkorrektur zu und das Übereinstimmungsniveau (die Lesetoleranz) nimmt mit zunehmender Fehlerkorrektur ab.
  • [Konfiguration der Speichervorrichtung 50]
  • Die Speichervorrichtung 50 besteht aus verschiedenen Speichern, einer Festplatte, einer SSD und dergleichen. Die Speichervorrichtung 35 ist mit einer Decodierungsergebnis-Speichereinheit 51, einer Bilddaten-Speichereinheit 52 und einer Parametersatz-Speichereinheit 53 versehen. Die Decodierungsergebnis-Speichereinheit 51 ist ein Abschnitt, der ein Decodierungsergebnis speichert, das ein Ergebnis ist, das durch Ausführen eines Decodierungsprozesses unter Verwendung der Verarbeitungseinheit 23 erhalten wird. Die Bilddaten-Speichereinheit 52 ist ein Abschnitt, der ein von der Abbildungseinheit 5 aufgenommenes Bild speichert. Die Parametersatz-Speichereinheit 53 ist ein Abschnitt, der von einer Einstellvorrichtung wie etwa dem Computer 100 eingestellte Einstellungsinformationen, Einstellungsinformationen, die durch die Auswahltaste 8 und die Eingabetaste 9 eingestellt werden, Einstellungsinformationen, die als Ergebnis der Ausführung der Abstimmung durch die Abstimmungsausführungseinheit 24 erhalten werden, und dergleichen speichert. Die Parametersatz-Speichereinheit 53 kann mehrere Parametersätze speichern, die mehrere Parameter enthalten, die Abbildungsbedingungen (Verstärkung, Lichtmenge der Beleuchtungseinheit 4, Belichtungszeit und dergleichen) der Abbildungseinheit 5 und Bildverarbeitungsbedingungen (Bildverarbeitungsfiltertyp und dergleichen) in der Verarbeitungseinheit 23 darstellen.
  • 8 ist eine Ansicht, die ein Anzeigebeispiel der mehreren Parametersätze darstellt. Die Steuereinheit 40 des Computers 100 kann ein Anwenderschnittstellenbild 300 erzeugen, wie es in 8 dargestellt ist, und veranlasst, dass die Anzeigeeinheit 42 des Computers 100 das Anwenderschnittstellenbild 300 anzeigt. Mehrere Reiter 301, 302 und 303 sind auf dem oberen Teil des Anwenderoberflächenbildes 300 bereitgestellt und einer der mehreren Reiter 301, 302 und 303 kann ausgewählt werden.
  • In diesem Beispiel ist ein Fall dargestellt, in dem der Reiter 302 einer Bank ausgewählt wurde. Ein Parametersatz wird als „Bank“ bezeichnet. In dem in 8 dargestellten Beispiel sind nur Bank 1 und Bank 2 angezeigt, aber die Anzahl der Banken kann beliebig eingestellt werden.
  • Als allgemeines Einstellungselement für jede Bank werden „Decodierungszeitüberscheitungswert“, der die Überschreitungszeit eines Decodierungsprozesses angibt, „Schwarz/Weiß-Umkehr“, die Schwarz und Weiß eines Lesebildes umkehrt, „Interne Beleuchtung“, die die interne Beleuchtung, die aus der an dem Gehäuse 2 montierten Beleuchtungseinheit 4 besteht, ein- und ausschaltet, „Äußere Beleuchtung“, die die Außenbeleuchtung, die aus der Beleuchtungseinheit 4 besteht, die als separater Körper von dem Gehäuse 2 ausgebildet ist, ein- und ausschaltet und „Detaillierte Codeeinstellungen“ zum Umschalten eines Codetyps bereitgestellt. Zusätzlich sind als Leseeinstellungselemente „Belichtungszeit“, die die Belichtungszeit durch der Abbildungseinheit 5 angibt, „Verstärkung“, die die Verstärkung der Abbildungseinheit 5 angibt, „Kontrastanpassungsschema“, das ein Verfahren zum Anpassen des Kontrasts eines Lesebildes angibt, ein „Erstes Bildfilter“ und ein „Zweites Bildfilter“, die Typen und Reihenfolge der anzuwendenden Bildfilter und dergleichen auswählen, in jeder Bank bereitgestellt.
  • In der optischen Lesevorrichtung 1 kann der Anwender eine Bank, die während der Betriebszeit der optischen Lesevorrichtung 1 verwendet werden soll, aus mehreren Banken, die in der Parametersatz-Speichereinheit 53 gespeichert sind, auswählen.
  • Das heißt, der Anwender kann die Eingabeeinheit 43 des Computers 100 bedienen, während er das in 8 dargestellte Anwenderschnittstellenbild 300 betrachtet, und eine beliebige Bank auf dem Anwenderschnittstellenbild 300 auswählen. Die Eingabeeinheit 43 ist eine Empfangseinheit, die die Auswahl des Anwenders auf einer ersten Bank (Bank 1) und einer zweiten Bank (Bank 2) unter den mehreren in der Speichervorrichtung gespeicherten Banken empfängt. Es ist zu beachten, dass Bank 1 ein Parametersatz zum Lesen eines eindimensionalen Codes und Bank 2 ein Parametersatz zum Lesen eines zweidimensionalen Codes ist. Es ist zu beachten, dass die Bank beispielsweise durch Betätigen einer Taste (nicht dargestellt) ausgewählt werden kann, die auf dem Anwenderoberflächenbild 300 angezeigt wird.
  • [Konfiguration der Ausgabeeinheit 60]
  • Die optische Lesevorrichtung 1 weist die Ausgabeeinheit 60 auf. Die Ausgabeeinheit 60 ist ein Abschnitt, der ein Decodierungsergebnis ausgibt, das durch einen Decodierungsprozess der Verarbeitungseinheit 23 erhalten wird, der später beschrieben wird. Insbesondere überträgt die Verarbeitungseinheit 23 dann, wenn der Decodierungsprozess abgeschlossen ist, das Decodierungsergebnis an die Ausgabeeinheit 60. Die Ausgabeeinheit 60 kann aus einer Kommunikationseinheit bestehen, die Daten in Bezug auf das von der Verarbeitungseinheit 23 empfangene Decodierungsergebnis beispielsweise an den Computer 100 und den PLC 101 überträgt. Die Ausgabeeinheit 60 kann eine E/A-Einheit, die mit dem Computer 100 und dem PLC 101 verbunden ist, eine serielle Kommunikationseinheit wie RS232C und eine Netzkommunikationseinheit wie etwa ein drahtloses LAN oder ein drahtgebundenes LAN aufweisen.
  • [Konfiguration des Steuerabschnitts 20]
  • Der in 3 dargestellte Steuerabschnitt 20 3 ist ein Abschnitt, der dazu ausgelegt ist, jeden Teil der optischen Lesevorrichtung 1 zu steuern, und kann unter Verwendung einer CPU, einer MPU, einer System-LSI, eines DSP, dedizierter Hardware oder dergleichen ausgebildet sein. Der Steuerabschnitt 20 ist wie später beschrieben mit verschiedenen Funktionen ausgestattet und diese können durch eine Logikschaltung implementiert werden oder können durch Ausführen von Software implementiert werden.
  • Der Steuerabschnitt 20 umfasst die AF-Steuereinheit 21, die Abbildungssteuereinheit 22, die Verarbeitungseinheit 23, die Abstimmungsausführungseinheit 24 und eine UI-Verwaltungseinheit 25. Die AF-Steuereinheit 21 ist ein Abschnitt, der die Fokussierung des optischen Systems 5b durch Kontrast-AF und Phasendifferenz-AF, die herkömmlich bekannt sind, durchführt. Die AF-Steuereinheit 21 kann in der Abbildungseinheit 5 enthalten sein.
  • [Konfiguration der Abbildungssteuereinheit 22]
  • Die Abbildungssteuereinheit 22 ist ein Abschnitt, der nicht nur die Abbildungseinheit 5, sondern auch die Beleuchtungseinheit 4 steuert. Das heißt, die Abbildungssteuereinheit 22 ist als eine Einheit ausgebildet, die die Verstärkung des Abbildungselements 5a anpasst, die Lichtmenge der Beleuchtungseinheit 4 steuert und die Belichtungszeit (Verschlusszeit) des Abbildungselements 5a steuert. Die Verstärkung, die Lichtmenge der Beleuchtungseinheit 4, die Belichtungszeit und dergleichen sind in den Abbildungsbedingungen der Abbildungseinheit 5 enthalten.
  • [Konfiguration der Verarbeitungseinheit 23]
  • Wie es in 4 gezeigt ist, umfasst die Verarbeitungseinheit 23 eine Vorverarbeitungsschaltung 30, einen Speicher 31 und einen Prozessor 40. Die Bilddaten für jede aus dem Abbildungselement 5a übertragene Zeile werden in die Vorverarbeitungsschaltung 30 eingegeben. Die Vorverarbeitungsschaltung 30 ist ein Vorprozessor, der in der vorderen Stufe des Prozessors 40 angeordnet ist, und kann beispielsweise unter Verwendung einer programmierbaren Logikvorrichtung (PLD) ausgebildet sein, und Beispiele hierfür können eine FPGA und eine ASIC umfassen.
  • Die Vorverarbeitungsschaltung 30 führt immer dann eine Vorverarbeitung von Bilddaten durch, wenn eine vorbestimmte Anzahl von Zeilen an Bilddaten von dem Abbildungselement 5 erfasst wird. Die vorbestimmte Anzahl von Zeilen an Bilddaten sind Daten, die einen Teilbereich eines Lesebildes bilden. Dementsprechend wird die Vorverarbeitung für jeden der verschiedenen Bereiche eines Lesebildes ausgeführt.
  • Die vorbestimmte Anzahl von Zeilen ist eine beliebige Anzahl von Zeilen eins oder mehr und ist die Anzahl von Zeilen, die erforderlich ist, um die Wahrscheinlichkeit eines Codes zu detektieren. Beispiele für die Vorverarbeitung können einen Gradationsumwandlungsprozess, verschiedene Bildfilterprozesse und dergleichen umfassen. Die Vorverarbeitung kann nur einen oder mehrere dieser Prozesse umfassen. Der Gradationsumwandlungsprozess kann ein Prozess zum Verringern der Gradation von Bilddaten sein, die von dem Abbildungselement 5a aufgenommen werden, und ist insbesondere ein Prozess zum Herstellen der Gradation auf 8 Bit, wenn die Gradation der von dem Abbildungselement 5a aufgenommenen Bilddaten 12 Bits beträgt. Die Vorverarbeitung kann einen reduzierten Bilderzeugungsprozess umfassen.
  • Die Vorverarbeitungsschaltung 30 führt nach dem Ausführen der Vorverarbeitung einen Codesuchdaten-Erzeugungsprozess aus. Der Codesuchdaten-Erzeugungsprozess umfasst einen Prozess zum Berechnen eines Kennbetrags, der die Wahrscheinlichkeit eines Codes für jeden Bereich in vorverarbeiteten Bilddaten basierend auf einem Helligkeitswert jedes Pixels in den vorverarbeiteten Bilddaten angibt. Spezifische Beispiele für den Kennbetrag können eine Kombination von Kantenbilddaten umfassen, sind jedoch nicht darauf beschränkt. Nach dem Berechnen des Kennbetrags erzeugt die Vorverarbeitungsschaltung 30 ein Kennbetragsbild, dem ein Helligkeitswert zugeordnet wurde, der dem berechneten Kennbetrag entspricht.
  • Der Codesuchdaten-Erzeugungsprozess, der von der Vorverarbeitungsschaltung 30 ausgeführt wird, wird unter Bezugnahme auf 9 beschrieben. 9 veranschaulicht den Codesuchdaten-Erzeugungsprozess, wenn nur ein Codetyp an dem Werkstück W angebracht ist, und dieser Code kann ein eindimensionaler Code oder ein zweidimensionaler Code sein. In Schritt SA1 wird nach dem Start ein Bild gelesen, nachdem es der Vorverarbeitung in der Vorverarbeitungsschaltung 30 unterzogen wurde, d. h. das vorverarbeitete Bild wird gelesen. Danach fährt der Prozess mit Schritt SA2 fort und die Vorverarbeitungsschaltung 30 führt eine Kantendetektionsverarbeitung an dem vorverarbeiteten Bild aus, um Kantendaten zu erzeugen. Die Kantendetektionsverarbeitung kann beispielsweise unter Verwendung eines Sobel-Filters oder dergleichen ausgeführt werden. Beispielsweise kann in dem Fall des eindimensionalen Codes ein zusammengesetztes Bild durch Addieren oder dergleichen für das X-Richtung-Sobel und das Y-Richtung-Sobel, wenn ein Drehwinkel eines Strichcodes 0° und 90° beträgt, bzw. für das Richtung-Sobel und das Y-Richtung-Sobel-Bild, wenn keine Voraussetzung für den Drehwinkel des Strichcodes besteht, erzeugt werden.
  • In Schritt SA2 kann als Bild nach Vornahme der Kantendetektionsverarbeitung, beispielsweise ein Kantenstärkenbild, ein Kantenwinkelbild und dergleichen, erzeugt werden, und ein Bild, das durch Ausführen einer üblichen Faltungsverarbeitung und einer arithmetischen Verarbeitung erhalten wird, kann ferner erzeugt werden. Zudem kann nicht nur eine Differentialverarbeitung erster Ordnung, sondern auch eine Differentialverarbeitung zweiter Ordnung als Kantendetektionsverarbeitung verwendet werden.
  • In Schritt SA3 werden die in Schritt SA2 erzeugten Kantenbilddaten erfasst. Danach fährt der Prozess mit Schritt SA4 fort und ein Kantenbilddatenintegrationsprozess zum Integrieren von Kantenbilddaten eines bestimmten Pixels und seiner Umgebung wird ausgeführt. Beispielsweise besteht eine hohe Wahrscheinlichkeit, dass ein Code in einem Bereich existiert, in dem sich Pixel mit großen Helligkeitswerten in den Kantenbilddaten sammeln, und daher kann der Bereich als Codekandidatenbereich angenommen werden. Es ist möglich, den Bereich auszudrücken, in dem sich die Pixel mit großen Helligkeitswerten sammeln, indem die Kantenbilddaten des bestimmten Pixels und seiner Umgebung, die die Kantenbilddaten bilden, integriert werden. In diesem Beispiel ist es möglich, einen Produkt-Summen-Berechnungsprozess oder einen Pixelintegrationsprozess auszuführen, der dazu ausgelegt ist, Daten zum Messen des Ansammlungsgrades von Kantenbilddaten innerhalb eines bestimmten Bereichs zu erzeugen. Beispielsweise kann ein Glättungsprozess verwendet werden, der bewirkt, dass Pixelwerte innerhalb einer bestimmten Fenstergröße addiert werden. Zudem kann ein Reduktionsprozess verwendet werden. Wenn der Reduktionsprozess verwendet wird, nimmt die Datenmenge ab, so dass der Vorteil besteht, dass die Abtastmenge gering sein kann.
  • Durch die Schritte SA2 bis SA4 kann die Vorverarbeitungsschaltung 30 den Kennbetrag berechnen, der die Wahrscheinlichkeit des Codes für jeden Bereich in den vorverarbeiteten Bilddaten angibt, und das Kennbetragsbild erzeugen, dem der Helligkeitswert zugeordnet ist, der dem berechneten Kennbetrag entspricht. In dem Kennbetragsbild kann ein Bereich mit einem großen Kennbetrag heller oder dunkler als ein Bereich mit einem kleinen Kennbetrag angezeigt werden, so dass ein sogenanntes Intensitätskartenbild basierend auf den Kantendaten erhalten und erzeugt werden kann. Das heißt, die Kantendetektionsverarbeitung wird an den Bilddaten ausgeführt, um die Kantendaten zu erzeugen, und dann wird der Kantendatenintegrationsprozess zum Integrieren der Kantendaten des bestimmten Pixels und seiner Umgebung ausgeführt. Dann fährt der Prozess mit Schritt SA5 fort und das Intensitätskartenbild, das das Kennbetragsbild ist, kann erzeugt werden.
  • 10A ist eine Ansicht, die ein Beispiel eines Lesebildes 200 darstellt, das durch Aufnehmen eines Bildes des in 2 dargestellten Werkstücks W mit der Abbildungseinheit 5 erzeugt wird. Das Lesebild 200 enthält den ersten Code CD1, der ein eindimensionaler Code ist, und den zweiten Code CD2, der ein zweidimensionaler Code ist.
  • 10B ist eine Ansicht, die ein Beispiel eines Intensitätskartenbild für eindimensionalen Code 201 darstellt, dem Helligkeitswerte gemäß dem Kennbetrag (ersten Kennbetrag) zugeordnet sind, der die Wahrscheinlichkeit des eindimensionalen Codes angibt. In dem Intensitätskartenbild für eindimensionalen Code 201 ist ein Helligkeitswert eines Kandidatenbereichs für den eindimensionalen Code hoch und die Helligkeitswerte der anderen Bereiche (Bereiche, in denen der eindimensionale Code nicht existiert) sind niedrig. In 10B zeigt der weiße Abschnitt den Kandidatenbereich für den eindimensionalen Code und der schwarze Abschnitt den anderen Bereich an. Obwohl der zweidimensionale Code in 10B in einem Bereich existiert, der von der weißen gestrichelten Linie umgeben ist, ist der Helligkeitswert des Bereichs mit dem anderen Code als dem eindimensionalen Code niedrig, da das Intensitätskartenbild 201 im obigen Beispiel basierend auf dem Kennbetrags des eindimensionalen Codes erzeugt wird. Das Intensitätskartenbild für eindimensionalen Code 201 wird von dem Prozessor 40 als Suchdaten für eindimensionalen Code verwendet.
  • Obwohl das Intensitätskartenbild 201 in dem obigen Beispiel basierend auf dem Kennbetrag des eindimensionalen Codes erzeugt wird, kann die Vorverarbeitungsschaltung 30 auch einen Kennbetrag des zweidimensionalen Codes berechnen und ein Intensitätskartenbild für zweidimensionalen Code 202 (dargestellt in 10C) basierend auf dem Kennbetrag der Wahrscheinlichkeit des zweidimensionalen Codes erzeugen, ohne darauf beschränkt zu sein.
  • 10C ist eine Ansicht, die das Intensitätskartenbild für zweidimensionalen Code 202 darstellt, dem Helligkeitswerte gemäß dem Kennbetrag (zweiten Kennbetrag) zugeordnet sind, der die Wahrscheinlichkeit des zweidimensionalen Codes angibt. In dem Intensitätskartenbild für zweidimensionalen Code 202 ist ein Helligkeitswert eines Kandidatenbereichs für den zweidimensionalen Code hoch und die Helligkeitswerte der anderen Bereiche (Bereiche, in denen der zweidimensionale Code nicht existiert) sind niedrig. In 10C zeigt der weiße Abschnitt den Kandidatenbereich für den zweidimensionalen Code und der schwarze Abschnitt den anderen Bereich an. Obwohl der eindimensionale Code in 10C in einem Bereich vorhanden ist, der von der weißen gestrichelten Linie umgeben ist, ist der Helligkeitswert des Bereichs mit dem anderen Code als dem zweidimensionalen Code niedrig, da das Intensitätskartenbild 202 in diesem Beispiel basierend auf dem Kennbetrag des zweidimensionalen Codes erzeugt wird. Das Intensitätskartenbild für zweidimensionalen Code 202 wird von dem Prozessor 40 als Suchdaten für zweidimensionalen Code verwendet.
  • Es ist zu beachten, dass die weißen gestrichelten Linien in 10B und 10C nur zur Beschreibung dargestellt sind und in den tatsächlichen Intensitätskartenbildern 201 und 202 nicht angezeigt werden. Wenn es mehrere Codekandidatenbereiche gibt, sind die mehreren Bereiche in einem Intensitätskartenbild dargestellt. Zudem können die Intensitätskartenbilder 201 und 202 dem Anwender möglicherweise, aber nicht zwingend, präsentiert werden.
  • 11 ist ein Ablaufdiagramm, das eine Prozedur zum Erzeugen des Intensitätskartenbildes für eindimensionalen Code 201 und des Intensitätskartenbildes für zweidimensionalen Code 202 darstellt, wenn sowohl der eindimensionale Code als auch der zweidimensionale Code an einem Werkstück WK angebracht sind. Die Schritte SB1 bis SB3 sind die gleichen wie die Schritte SA1 bis SA3 in dem in 9 dargestellten Ablaufdiagramm. In Schritt SB4 wird ein Kantenbilddatenintegrationsprozess für den eindimensionalen Code ausgeführt. Bei dem Kantenbilddatenintegrationsprozess für den eindimensionalen Code werden Kanten mit ausgerichteten Kantenrichtungen unter Verwendung der Formmerkmale des eindimensionalen Codes integriert. Beispielsweise werden Kantenwinkelbilder erzeugt, und solche mit nahen Kantenwinkeln werden addiert und solche mit fernen Kantenwinkeln werden subtrahiert. Zusätzlich kann ein Prozess des Addierens von Bilddaten mit nahen Kantenrichtungen und des Subtrahierens von Bilddaten mit unterschiedlichen Kantenrichtungen innerhalb eines bestimmten Bereichs der Kantenbilddaten ausgeführt werden. Danach fährt der Prozess mit Schritt SB6 fort und das Intensitätskartenbild für eindimensionalen Code 201 (siehe 10B) wird wie in Schritt SA5 des Ablaufdiagramms von 9 beschrieben erzeugt.
  • Zusätzlich wird in Schritt SB5 ein Kantenbilddatenintegrationsprozess für den zweidimensionalen Code ausgeführt. Bei dem Kantenbilddatenintegrationsprozess für den zweidimensionalen Code werden Kanten mit irregulären Kantenrichtungen unter Verwendung der Formmerkmale des zweidimensionalen Codes integriert. Beispielsweise werden Kantenwinkelbilder erzeugt und solche mit nahen Kantenwinkeln gemittelt. Zudem kann ein Prozess des Addierens von Bilddaten mit verschiedenen Kantenrichtungen innerhalb eines bestimmten Bereichs der Kantenbilddaten ausgeführt werden. Danach fährt der Prozess mit Schritt SB7 fort und das Intensitätskartenbild für zweidimensionalen Code 202 (siehe 10C) wird wie in Schritt SA5 des Ablaufdiagramms von 9 beschrieben erzeugt. In dem Ablaufdiagramm von 11 können die Schritte SB4 und SB6 und die Schritte SB5 und SB7 parallel ausgeführt werden oder einer von ihnen kann zuerst ausgeführt werden.
  • Wie es in 4 gezeigt ist, ist der Prozessor 40 ein Mehrkernprozessor mit mehreren physischen arithmetischen Verarbeitungsvorrichtungen (Kernen), erfasst den von der Vorverarbeitungsschaltung 30 berechneten Kennbetrag und bestimmt den Codekandidatenbereich in dem Lesebild basierend auf dem erfassten Kennbetrag und führt einen Decodierungsprozess des bestimmten Bereichs aus, um ein Decodierungsergebnis zu erzeugen. Die Ausgabeeinheit 60 gibt das erzeugte Decodierungsergebnis aus.
  • Als Erfassungsform des von der Vorverarbeitungsschaltung 30 berechneten Kennbetrags kann der Kennbetrag selbst verwendet werden oder es kann die Form der Erfassung der Kennbetragsbilder (Intensitätskartenbilder 201 und 202, die in 10B und 10C dargestellt sind), die durch die Vorverarbeitungsschaltung 30 erzeugt werden, verwendet werden. Wenn das Kennbetragsbild erfasst wird, kann der Prozessor 40 den Codekandidatenbereich basierend auf dem erfassten Kennbetragsbild bestimmen.
  • Das heißt, der Prozessor 40 bestimmt den Kandidatenbereich für den ersten Code CD1 basierend auf dem Intensitätskartenbild für eindimensionalen Code 201 und bestimmt zudem den Kandidatenbereich für den zweiten Code CD2 basierend auf dem Intensitätskartenbild für zweidimensionalen Code 202. Zu diesem Zeitpunkt legt der Prozessor 40 Bereiche, in denen die Helligkeitswerte des Intensitätskartenbildes für eindimensionalen Code 201 und des Intensitätskartenbildes für zweidimensionalen Code 202 größer oder gleich einem vorbestimmten Wert sind, als Kandidatenbereich für den ersten Code sind CD1 und Kandidatenbereich für den zweiten Code CD2 fest und somit ist es möglich, einen Bereich mit einem großen Kennbetrag korrekt zu identifizieren. In diesem Fall wird der Decodierungsprozess jedes bestimmten Bereichs ausgeführt, um ein Decodierungsergebnis zu erzeugen.
  • Wie es in 4 gezeigt ist, sind der Prozessor 40 und der Speicher 31 in diesem Beispiel verbunden, um das Senden und Empfangen von Daten zu ermöglichen. Der Speicher 31 ist unter Verwendung eines Hochgeschwindigkeitsspeichers wie eines DDR-RAM ausgebildet. Die von dem Abbildungselement 5a zu der Vorverarbeitungsschaltung 30 übertragenen Bilddaten werden über den Prozessor 40 in dem Speicher 31 gespeichert. Zu diesem Zeitpunkt bestimmt der Prozessor 40 eine beliebige Adresse des Speichers 31, an der die Bilddaten gespeichert werden sollen, und speichert die Bilddaten an der bestimmten Adresse mit hoher Geschwindigkeit. Da die Bilddaten jedes Mal gespeichert werden, wenn das Abbildungselement 5a ein Bild aufnimmt, werden mehrere Bilddatenstücke in dem Speicher 31 gespeichert. Der Prozessor 40 liest die Bilddaten in geeigneter Weise aus dem Speicher 31, führt einen Decodierungsprozess aus und speichert ein Ergebnis davon in dem Speicher 31.
  • [Einzelheiten des Decodierungsprozesses]
  • Der Prozessor 40 hat neun Kerne aus Kernen CR0 bis CR8. Der Kern CR0 ist ein Kern, der den anderen Kernen CR1 bis CR8 befiehlt, einen Decodierungsprozess eines von der Abbildungseinheit 5 erzeugten Lesebildes auszuführen, und entspricht dem ersten Kern. Die Kerne CR1 bis CR8 sind Kerne, die von dem Kern CR0 befohlene Lesebilder erfassen und einen Decodierungsprozess für die erfassten Lesebilder ausführen, und entsprechen den zweiten Kernen. Der erste Kern, der den Decodierungsprozess befiehlt, ist der einzelne Kern CR0, aber die zweiten Kerne, die den Decodierungsprozess ausführen, sind die acht Kerne CR1 bis CR8. Es reicht aus, dass die Anzahl der zweiten Kerne, die den Decodierungsprozess ausführen, zwei oder mehr beträgt, und die Anzahl ist nicht besonders begrenzt. Bei der Ausführung des Decodierungsprozesses können die befohlenen Lesebilder von dem Speicher 31 zu den Kernen CR1 bis CR8 übertragen werden und dann kann der Decodierungsprozess für die übertragenen Lesebilder ausgeführt werden, oder der Decodierungsprozess kann ausgeführt werden, nachdem die Kerne CR1 bis CR8 die befohlenen Lesebilder aus dem Speicher 31 gelesen haben. Es ist zu beachten, dass der Kern CR0 den Decodierungsprozess ausführen kann.
  • Der Kern CR0 befiehlt den Kernen CR1 bis CR8, von denen angenommen wird, dass sie in der Lage sind, den Decodierungsprozess sofort auszuführen oder den Decodierungsprozess neben einem aktuell ausgeführten Decodierungsprozess auszuführen, den Decodierungsprozess auszuführen. Der Decodierungsprozess wird normalerweise den Kernen CR1 bis CR8 zu unterschiedlichen Zeitvorgaben befohlen und mehrere Decodierungsprozesse können parallel ausgeführt werden, da jeder der Kerne CR1 bis CR8 den Decodierungsprozess ausführt. Das heißt, die Kerne CR1 bis CR8 sind so ausgelegt, dass sie den Decodierungsprozess an Lesebildern, die von dem Kern CR0 zu unterschiedlichen Zeitpunkten befohlen werden, gleichzeitig ausführen können.
  • Einzelheiten des Decodierungsprozesses dieses Beispiels werden nachstehend beschrieben. 12 ist ein Zeitdiagramm, das ein Beispiel eines Falls darstellt, in dem der Decodierungsprozess an mehreren Lesebildern ausgeführt wird.
  • Die Abbildungseinheit 5 nimmt Bilder des Werkstücks W auf und erzeugt nacheinander Lesebilder. In 12 geben C1 bis C10 jeweils den ersten bis zehnten Lesebilderzeugungsprozess an. Wie es in dieser Zeichnung dargestellt ist, führt die Abbildungseinheit 5 eine Serienabbildung durch, so dass der erste Lesebilderzeugungsprozess C1 bis zehnte Lesebilderzeugungsprozess C10 nacheinander ausgeführt werden. Wenn ein Abbildungsintervall beispielsweise 30 fps beträgt, beträgt die Zeit für einen Lesebilderzeugungsprozess ungefähr 33 ms.
  • Indes geben D1 bis D10 in 12 jeweils den ersten bis zehnten Decodierungsprozess an. Die für jeden Decodierungsprozess erforderliche Zeit beträgt beispielsweise selbst bei einer Hochgeschwindigkeitsverarbeitung etwa 50 ms bis 100 ms, was erheblich länger ist als die Zeit für den Lesebilderzeugungsprozess (etwa 33 ms) durch die Abbildungseinheit 5.
  • Wenn der erste Lesebilderzeugungsprozess C1 abgeschlossen ist, befiehlt der Kern CR0, der den Decodierungsprozess befiehlt, dem Kern CR1, einen Decodierungsprozess eines Lesebildes auszuführen, das durch den ersten Lesebilderzeugungsprozess C1 erzeugt wird. Zudem befiehlt der Kern CR0 dem Kern CR2, einen Decodierungsprozess eines Lesebildes auszuführen, das durch den zweiten Lesebilderzeugungsprozess C2 erzeugt wird, wenn der zweite Lesebilderzeugungsprozess C2 abgeschlossen ist, und befiehlt dem Kern CR3, einen Decodierungsprozess eines Lesebildes auszuführen, das durch den dritten Lesebilderzeugungsprozess C3 erzeugt wird, wenn der dritte Lesebilderzeugungsprozess C3 abgeschlossen ist. Mit anderen Worten wird dann, wenn dem Kern CR1 befohlen wurde, den Decodierungsprozess auszuführen, und den Kernen CR2 und 3 nicht befohlen wurde, den Decodierungsprozess auszuführen, angenommen, dass die Kerne CR2 und 3 Kerne sind, die in der Lage sind, einen Decodierungsprozess sofort auszuführen, und in diesem Fall befiehlt der Kern CR0 den Kernen CR2 und 3, den Decodierungsprozess auszuführen. Gleiches gilt für die Kerne CR4 bis CR8.
  • Wenn der neunte Lesebilderzeugungsprozess C9 abgeschlossen ist, befiehlt der Kern CR0 zudem dem Kern CR1, einen Decodierungsprozess eines Lesebildes auszuführen, das durch den neunten Lesebilderzeugungsprozess C9 erzeugt wird. Da der Decodierungsprozess den Kernen CR2 bis CR8 befohlen wurde, ist seit dem vorherigen Befehl eine gewisse Zeit vergangen, und es wird angenommen, dass der Kern CR1 ein Kern ist, der einen Decodierungsprozess sofort ausführen kann. In diesem Fall kann der Decodierungsprozess des Lesebildes, das durch den neunten Lesebilderzeugungsprozess C9 erzeugt wurde, ausgeführt werden, indem dem Kern CR1 befohlen wird, den Decodierungsprozess auszuführen. In ähnlicher Weise wird dem Kern CR2 befohlen, einen Decodierungsprozess eines Lesebildes auszuführen, das durch den zehnten Lesebilderzeugungsprozess C10 erzeugt wird. Da den Kernen CR1 bis CR8 auf diese Weise befohlen wird, die Decodierungsprozesse in dieser Reihenfolge auszuführen, führen mindestens zwei der Kerne CR1 bis CR8 die Decodierungsprozesse gleichzeitig aus.
  • Hier wird die Zeit, bis der Kern CR0 das Lesebild nach Abschluss des Lesebild4rzeugungsprozesses in dem Speicher 31 speichert und jeder der Kerne CR1 bis CR8, dem befohlen wurde, das Lesen auszuführen, beginnt, das Lesebild zu lesen, als Übertragungszeit bezeichnet.
  • Zudem können die Kerne CR1 bis CR8 den Decodierungsprozess unmittelbar nach Ablauf der Übertragungszeit seit der Erzeugung des Lesebildes ausführen und daher besteht keine Beziehung zu den vorherigen und nachfolgenden Prozessen und es besteht keine Notwendigkeit, die Zeitvorgabe anzupassen. Ferner kann die Abbildungseinheit 5 die unendliche Serienabbildung fortsetzen und somit ist es möglich, den Code auch während der Hochgeschwindigkeitsübertragung zu erfassen und ein aufeinanderfolgendes Bild wie ein bewegtes Bild zu lassen.
  • T1 in 12 stellt die Zeit zwischen dem Abschluss des vorherigen Decodierungsprozesses und dem Befehl für den nächsten Decodierungsprozess dar. Es kann sichergestellt werden, dass die Zeit T1 viel länger ist als die für den Decodierungsprozess erforderliche Zeit T2. Mit anderen Worten kann eine lange obere Grenzzeit des Decodierungsprozesses sichergestellt werden und ein verschleierter Code kann decodiert werden. Die obere Grenzzeit des Decodierungsprozesses ist eine Zeitüberschreitungszeit des Decodierungsprozesses. Wenn der Decodierungsprozess während des Betriebs der optischen Lesevorrichtung 1 eine lange Zeit dauert, wird die Zeitüberschreitungszeit so eingestellt, dass der Decodierungsprozess abgebrochen wird, wenn die voreingestellte obere Grenzzeit erreicht wird.
  • 13 ist ein konzeptionelles Diagramm in einem Fall, in dem mehrere Lesebilder (erstes bis drittes Lesebild) parallel von mehreren Strängen (Strängen 1 und 2) in mehreren Kernen CR1 bis CR3 verarbeitet werden. Wie es in diesem Beispiel dargestellt ist, wird dann, wenn das erste Lesebild einen eindimensionalen Code und einen zweidimensionalen Code enthält, ein Decodierungsprozess des eindimensionalen Codes als Strang 1 ausgeführt und ein Decodierungsprozess des zweidimensionalen Codes als Strang 2 in dem Kern CR1, der den Decodierungsprozess für das erste Lesebild Bild ausführt, ausgeführt. In ähnlicher Weise wird in dem Kern CR2 ein Decodierungsprozess eines eindimensionalen Codes, der in dem zweiten Lesebild enthalten ist, als Strang 1 ausgeführt, und ein Decodierungsprozess eines zweidimensionalen Codes, der in dem zweiten Lesebild enthalten ist, als Strang 2 ausgeführt. Zudem wird in dem Kern CR3 ein Decodierungsprozess eines eindimensionalen Codes, der in dem dritten Lesebild enthalten ist, als Strang 1 ausgeführt, und ein Decodierungsprozess eines zweidimensionalen Codes, der in dem dritten Lesebild enthalten ist, als Strang 2 ausgeführt Selbst wenn mehrere eindimensionale Codes angebracht sind oder wenn mehrere zweidimensionale Codes angebracht sind, ist es möglich, verschiedenen Kernen zu befehlen, die Decodierungsprozesse auszuführen.
  • Die Anzahl der Stränge in jedem der Kerne CR1 bis CR3 ist nicht auf zwei beschränkt und kann eins oder drei oder mehr sein. Wenn das Werkstück W nur einen eindimensionalen Code oder nur einen zweidimensionalen Code aufweist, weist jeder der Kerne CR1 bis CR3 einen Strang auf.
  • Wie es in 14 gezeigt ist, kann der Kern CR0 auch einen Befehl geben, dass der Decodierungsprozess des eindimensionalen Codes, der in dem ersten Lesebild enthalten ist, von Strang 1 des Kerns CR1 ausgeführt wird, und der Decodierungsprozess des zweidimensionalen Codes, der in dem ersten Lesebild enthalten ist, von Strang 1 des Kerns CR2 ausgeführt wird. In Bezug auf das zweite Lesebild gibt der Kern CR0 einen Befehl, dass der Decodierungsprozess des eindimensionalen Codes von dem Kern CR3 ausgeführt wird und der Decodierungsprozess des zweidimensionalen Codes von dem Kern CR4 auf die gleiche Weise ausgeführt wird.
  • 15 ist ein Ablaufdiagramm in einem Fall, in dem einem Kern, der den Decodierungsprozess abgeschlossen hat, befohlen wird, den nächsten Decodierungsprozess auszuführen, und der Kern CR0 die Reihenfolge der Zuordnung der Decodierungsprozesse zu den jeweiligen Kernen CR1 bis CR8 durch First-In-First-Out (FIFO) bestimmt. Dieses Ablaufdiagramm beginnt zu der Zeitvorgabe, zu der die optische Lesevorrichtung 1 das Lesestart-Auslösersignal empfängt, und endet zu der Zeitvorgabe, zu der eine Betriebsstoppoperation ausgeführt wird.
  • Nach dem Start nimmt die Abbildungseinheit 5 in Schritt SC1 Bilder des Werkstücks W auf und erzeugt nacheinander mehrere Lesebilder. In Schritt SC2 bestimmt der Kern CR0, ob die Kerne CR1 bis CR8 frei sind. Der Begriff „frei“ wird verwendet, wenn der Decodierungsprozess nicht ausgeführt wird und der Decodierungsprozess sofort ausgeführt werden kann. Wenn in Schritt SC2 JA bestimmt wird und einer der Kerne CR1 bis CR8 frei ist, fährt der Prozess mit Schritt SC4 fort. In Schritt SC4 befiehlt der Kern CR0 dem freien Kern, einen Decodierungsprozess auszuführen, und somit wird der Decodierungsprozess sofort von dem freien Kern ausgeführt und dann kehrt der Prozess zu Schritt SC1 zurück. Wenn andererseits in Schritt SC2 NEIN bestimmt wird und es keinen freien Kern unter den Kernen CR1 bis CR8 gibt, fährt der Prozess mit Schritt SC3 fort und wartet auf die Erzeugung eines freien Kerns für eine vorbestimmte Zeit und fährt dann mit Schritt SC2 fort, und fährt mit Schritt SC4 fort, wenn ein freier Kern vorhanden ist.
  • Ein spezifisches Beispiel für den Fall des Bestimmens der Zuweisung von Decodierungsprozessen durch FIFO ist unter Bezugnahme auf 16 beschrieben. 16 beschreibt einen Fall, in dem die Kerne CR1 bis CR3 bereitgestellt sind. Eine im Feld eines Warteschlangenzustands dargestellte Zahl ist eine Zahl eines freien Kerns und der Kern CR1, der Kern CR2 und der Kern CR3 entsprechen „1“, „2“ bzw. „3“ .
  • Zu Beginn werden die Zahlen 1 bis 3 in den Warteschlangenstatus geladen, da alle Kerne CR1 bis CR3 frei sind. Wenn danach dem Kern CR1 befohlen wird, den Decodierungsprozess des Lesebildes des ersten Lesebilderzeugungsprozesses C1 auszuführen, verschwindet die Zahl 1 und die Zahlen 2 und 3 sind in den Warteschlangenzustand geladen. Daher kann der Kern CR0 dem Kern CR2 befehlen, den Decodierungsprozess des Lesebildes des zweiten Lesebilderzeugungsprozesses C2 auszuführen. In ähnlicher Weise kann der Kern CR0 dem Kern CR3 befehlen, den Decodierungsprozess des Lesebildes des dritten Lesebilderzeugungsprozesses C3 auszuführen.
  • Wenn der vierte Lesebilderzeugungsprozess C4 abgeschlossen ist, ist nur die Zahl 1 in den Warteschlangenzustand geladen, und somit befiehlt der Kern CR0 dem Kern CR1, den Decodierungsprozess des Lesebildes des fünften Lesebilderzeugungsprozesses C5 auszuführen. Auf diese Weise bestimmt der Kern CR0 die Verfügbarkeit der Kerne CR1 bis CR3 und befiehlt dem freien Kern, den Decodierungsprozess auszuführen. Somit ist es einfacher, ein Lesen mit hoher Geschwindigkeit und festem Intervall zu verwirklichen als in dem Fall, in dem der Decodierungsprozess einfach den Kernen CR1 bis CR3 in Reihenfolge zugewiesen wird.
  • [Konfiguration der Abstimmungsausführungseinheit 24]
  • Die in 3 dargestellte Abstimmungsausführungseinheit 24 ist eine Einheit, die Abbildungsbedingungen wie Verstärkung, Lichtmenge der Beleuchtungseinheit 4, Belichtungszeit und Bildverarbeitungsbedingungen in der Verarbeitungseinheit 23 ändert. Die Bildverarbeitungsbedingungen in der Verarbeitungseinheit 23 umfassen einen Koeffizienten eines Bildverarbeitungsfilters (die Stärke des Filters) und einen Wechsel von Bildverarbeitungsfiltern, eine Kombination verschiedener Arten von Bildverarbeitungsfiltern und dergleichen, wenn mehrere Bildverarbeitungsfilter vorhanden sind. Geeignete Abbildungsbedingungen und Bildverarbeitungsbedingungen unterscheiden sich in Abhängigkeit von dem Einfluss von externem Licht auf das Werkstück W während des Transports, einer Farbe und einem Material einer Oberfläche, an der die Codes CD1 und CD2 angebracht sind, und dergleichen. Dementsprechend sucht die Abstimmungsausführungseinheit 24 nach geeigneteren Abbildungsbedingungen und Bildverarbeitungsbedingungen und stellt die Verarbeitung durch die AF-Steuereinheit 21, die Abbildungssteuereinheit 22 und die Verarbeitungseinheit 23 ein. Als Bildverarbeitungsfilter können verschiedene herkömmlich bekannte Filter verwendet werden.
  • Vor dem Betrieb der optischen Lesevorrichtung 1 wird die Einstellung der optischen Lesevorrichtung 1 als Betriebsvorbereitungsstufe vorgenommen. Zum Zeitpunkt des Einstellens der optischen Lesevorrichtung 1 werden verschiedene Einstellungen vorgenommen, indem verschiedene Befehle zum Einstellen aus dem Computer 100, der mit der optischen Lesevorrichtung 1 verbunden ist, über die Signalleitung 101a gesendet werden. Während dieser Einstellung wird eine Abstimmung von der Abstimmungsausführungseinheit 24 durchgeführt. Ein spezifisches Beispiel der Abstimmung wird unter Bezugnahme auf 17 beschrieben. Nach dem Start der Abstimmung werden die an dem Werkstück W angebrachten Codes CD1 und CD2 in Schritt SD1 von der Abbildungseinheit 5 abgebildet, um ein Lesebild zu erzeugen.
  • Ferner fährt der Prozess mit Schritt SD2 fort und jeder der Codes CD1 und CD2, die in dem erzeugten Lesebild enthalten sind, wird von der Verarbeitungseinheit 23 gesucht und decodiert, und die Verarbeitungseinheit 23 analysiert die Lesetoleranz, was die Lesbarkeit der Codes CD1 und CD2, die erfolgreich decodiert wurden, angibt. Danach fährt der Prozess mit Schritt SD3 fort und die Abstimmungsausführungseinheit 24 ändert die Abbildungsbedingungen und stellt die Eignung eines Bildverarbeitungsfilters und die Stärke des anzuwendenden Bildverarbeitungsfilters ein, um die durch die Verarbeitungseinheit 23 analysierte Lesetoleranz zu erhöhen.
  • In Schritt SD4 wird die für den Decodierungsprozess erforderliche Zeit gemessen. In Schritt SD5 wird bestimmt, ob die Decodierungsverarbeitungszeit innerhalb einer schnellsten Abbildungsintervalldecodierungszeit liegt oder nicht. Die schnellste Abbildungsintervalldecodierungszeit ist die Zeit (Referenzzeit), die durch Multiplizieren der Zeit, die durch Addieren der Erzeugungszeit und der Übertragungszeit des von der Abbildungseinheit 5 erhaltenen Lesebilds erhalten wird, mit der Anzahl der Kerne CR1 bis CR8 erhalten wird. Wenn beispielsweise die Erzeugungszeit des Lesebildes durch die Abbildungseinheit 5 A ist, die Zeit (Übertragungszeit), die erforderlich ist, bis der Kern CR0 das erzeugte Lesebild in dem Speicher 31 speichert und die Kerne CR1 bis CR8 mit dem Lesen beginnen, B ist und die Anzahl der Kerne CR1 bis CR8 C ist, ist die durch die folgende Formel erhaltene Zeit die schnellste Abbildungsintervalldecodierungszeit.
  • Schnellste Abbildungsintervalldecodierungszeit = (A+B) × C. Wenn in Schritt SD5 JA bestimmt wird und die in Schritt SD4 gemessene Decodierungsverarbeitungszeit innerhalb der schnellsten Abbildungsintervalldecodierungszeit liegt, fährt der Prozess mit Schritt SD6 fort und die in Schritt SD4 gemessene Decodierungsverarbeitungszeit wird als obere Grenzzeit des Decodierungsprozesses eingestellt. Das heißt, die Abstimmungsausführungseinheit 24 erzeugt zum Zeitpunkt des Einstellens der optischen Lesevorrichtung 1 das Lesebild, das den Code enthält, unter Verwendung der Abbildungseinheit 5 und führt den Decodierungsprozess an dem erzeugten Lesebild unter Verwendung der Verarbeitungseinheit 23 aus, um die Zeit zu messen, die für den Decodierungsprozess erforderlich ist, und stellt automatisch die obere Grenzzeit des Decodierungsprozesses basierend auf der gemessenen Zeit ein. Es ist zu beachten, dass die obere Grenzzeit des Decodierungsprozesses automatisch kürzer als die schnellste Abbildungsintervalldecodierungszeit eingestellt werden kann.
  • Wenn andererseits in Schritt SD5 NEIN bestimmt wird und die in Schritt SD4 gemessene Decodierungsverarbeitungszeit die schnellste Abbildungsintervalldecodierungszeit überschreitet, wird die gemessene Zeit als obere Grenzzeit des Decodierungsprozesses eingestellt und der Prozess fährt mit Schritt SD7 fort, um dann einen Abbildungsmodus mit festem Intervall einzustellen. Der Abbildungsmodus mit festem Intervall wird später beschrieben.
  • Nach dem Durchlaufen der Schritte SD6 und SD7 fährt der Prozess mit Schritt SD8 fort und die eingestellten Bedingungen werden gespeichert. Die eingestellten Bedingungen können in Form einer Bank gespeichert werden, wie es in 8 dargestellt ist.
  • 18 ist ein Zeitdiagramm des Abbildungsmodus mit festem Intervall. Obwohl der Kern CR0 in dieser Zeichnung weggelassen ist, wird der Decodierungsprozess von dem Kern CR0 befohlen. Zudem ist das Beispiel der Bereitstellung der Kerne CR1 bis CR3 dargestellt, aber die Anzahl der Kerne spielt keine Rolle.
  • Der Abbildungsmodus mit festem Intervall ist ein Modus, der ausgewählt wird, wenn die Ausführung der Serienabbildung aufgrund der oben beschriebenen Abstimmung nicht geeignet ist. In dem Abbildungsmodus mit festem Intervall nimmt die Abbildungseinheit 5 Bilder mit Unterbrechungen auf, wie es durch C1 bis C5 in 18 dargestellt ist. So wird beispielsweise der zweite Lesebilderzeugungsprozess C2 nicht sofort gestartet, auch wenn der erste Lesebilderzeugungsprozess C1 abgeschlossen ist, und der zweite Lesebilderzeugungsprozess C2 wird mit einem vorbestimmten Zeitintervall gestartet. Wenn der erste Lesebilderzeugungsprozess C1 abgeschlossen ist, befiehlt der Kern CR0 dem Kern CR1, den Decodierungsprozess des Lesebildes auszuführen, das durch den ersten Lesebilderzeugungsprozess C1 erzeugt wird. Der Decodierungsprozess wird auch aufeinanderfolgend für das zweite und die nachfolgenden Lesebilder ausgeführt.
  • Da dieser Abbildungsmodus mit festem Intervall der Modus ist, der angewendet wird, wenn die Zeit des Decodierungsprozesses für ein Lesebild verlängert werden muss, wird ein Abbildungsintervall breiter, aber dieses Intervall ist auf ein vorbestimmtes Zeitintervall festgelegt und somit wird das Abbildungsintervall nicht verändert, so dass verhindert werden kann, dass das Werkstück W während der Abbildung durchläuft.
  • Andererseits ist 19 ein Zeitdiagramm, wenn die Abbildung nicht in festen Intervallen durchgeführt wird. Dieses Beispiel ist auch das Beispiel für die Bereitstellung der Kerne CR1 bis CR3. Die Lesebilder, die durch den ersten bis dritten Lesebilderzeugungsprozess C1 bis C3 erzeugt werden, werden den Decodierungsprozessen durch die Kerne CR1 bis CR3 unterzogen. Selbst dann, wenn der vierte Lesebilderzeugungsprozess C4 abgeschlossen ist, gibt es möglicherweise keinen Kern, der in der Lage ist, den Decodierungsprozess an dem von diesem Prozess erzeugten Lesebild auszuführen, da die Decodierungsverarbeitungszeit in den Kernen CR1 bis CR3 lang ist. Dementsprechend wird das durch den vierten Lesebilderzeugungsprozess C4 erzeugte Lesebild dem Decodierungsprozess durch den Kern CR1 unterzogen, nachdem auf den Abschluss des Decodierungsprozesses des Kerns CR1 gewartet wurde. In diesem Fall gibt es ein Zeitintervall nach dem Abschluss des vierten Lesebilderzeugungsprozesses C4, bis der fünfte Lesebilderzeugungsprozess C5 gestartet wird.
  • Das heißt, wie es in dem Ablaufdiagramm von 20 dargestellt ist, startet die optische Lesevorrichtung 1 zu der Zeitvorgabe, zu der das Lesestart-Auslösersignal empfangen wird, erzeugt das Lesebild in Schritt SE1 nach dem Start, bestimmt in Schritt SE2, ob ein freier Kern vorhanden ist, und fährt dann mit Schritt SE3 fort, wenn es einen freien Kern gibt, und befiehlt dem freien Kern, den Decodierungsprozess auszuführen, oder mit Schritt SE4 fort, wenn kein freier Kern vorhanden ist, wartet auf die Erzeugung eines freien Kerns und dann befiehlt dem freien Kern dann, den Decodierungsprozess auszuführen.
  • Wenn kein freier Kern vorhanden ist, können die Bilddaten vorübergehend in dem Puffer gespeichert werden. Das heißt, wie es in dem Ablaufdiagramm von 21 dargestellt ist, startet die optische Lesevorrichtung 1 zu der Zeitvorgabe, zu der das Lesestart-Auslösersignal empfangen wird, erzeugt das Lesebild in Schritt SF1 nach dem Start, bestimmt in Schritt SF2, ob ein freier Kern vorhanden ist, und fährt dann mit Schritt SF3 fort, wenn es einen freien Kern gibt, und befiehlt dem freien Kern, den Decodierungsprozess auszuführen. Wenn andererseits kein freier Kern vorhanden ist, fährt der Prozess mit Schritt SF4 fort, um zu bestimmen, ob freier Speicherplatz in dem Puffer vorhanden ist, und fährt dann mit Schritt SF5 fort, um Bilddaten vorübergehend in dem Puffer zu speichern, falls freier Speicherplatz in dem Puffer vorhanden ist. Wenn in dem Puffer kein freier Speicherplatz vorhanden ist, fährt der Prozess mit Schritt SF6 fort, um auf die Erzeugung von freiem Speicherplatz in dem Puffer oder eines freien Kerns zu warten. Falls dann freier Speicherplatz in dem Puffer vorhanden ist, werden die Bilddaten dort gespeichert. Wenn ein freier Kern vorhanden ist, wird dem Kern befohlen, den Decodierungsprozess auszuführen.
  • Da die Kapazität des Puffers begrenzt ist, ist es denkbar, dass zwischen den Bilderzeugungsprozessen einige Zeit liegen kann. Wenn die Zeit zwischen den Bilderzeugungsprozessen lang wird, gibt es einen Fall, in dem das Werkstück W während dieser Zeit durchläuft, und daher ist der Abbildungsmodus mit festem Intervall vorzuziehen. In einigen Fällen ist jedoch der Betriebsmodus, wie er in dem Zeitdiagramm von 19 dargestellt ist, auch möglich.
  • Wenn ein Decodierungsprozess eines beliebigen Kerns unter den Kernen, die die Decodierungsprozesse ausführen, abgeschlossen ist, können zudem alle Decodierungsprozesse der anderen Kerne beendet werden. 22 zeigt einen Fall, in dem ein Decodierungsprozess D4 des durch den vierten Lesebilderzeugungsprozess C4 erzeugten Lesebildes in dem Kern CR1 abgeschlossen wird. Wenn dieser Decodierungsprozess abgeschlossen ist, wird ein Decodierungsprozess D5 des Lesebildes, das durch den fünften Lesebilderzeugungsprozess C5 erzeugt wird, der von dem Kern CR2 ausgeführt wird, gestoppt und ein Decodierungsprozess D6 des Lesebildes, der durch den sechsten Lesebilderzeugungsprozess C6 erzeugt wird, wird nicht ausgeführt. Ein durch den Decodierungsprozess D4 erhaltenes Decodierungsergebnis wird gleichzeitig mit dem Stoppen des Decodierungsprozesses D5 oder nach dem Stoppen des Decodierungsprozesses D5 ausgegeben.
  • Das heißt, wenn jeder der mehreren Kerne CR1 bis CR3 den Decodierungsprozess jeweiliger Lesebilder ausführt, ist die Zeitvorgabe, zu der der Decodierungsprozess abgeschlossen ist, normalerweise unterschiedlich. Wenn beispielsweise das Decodierungsergebnis erhalten, wenn der Decodierungsprozess in dem Kern CR1 abgeschlossen ist, macht es keinen Sinn, den Decodierungsprozess durch die anderen Kerne CR2 und CR3 danach fortzusetzen. In einem solchen Fall können die Decodierungsprozesse der Kerne CR2 und CR3 gestoppt werden.
  • Insbesondere ist eine Startzeitvorgabe des Ablaufdiagramms von 23 die Zeitvorgabe, zu der die optische Lesevorrichtung 1 das Lesestart-Auslösersignal empfängt, das Lesebild wird in Schritt SG1 nach dem Start erzeugt, in Schritt SG2 wird bestimmt, ob ein freier Kern vorhanden ist, und dann fährt der Prozess mit Schritt SG3 fort, wenn ein freier Kern vorhanden ist, und dem freien Kern wird befohlen, den Decodierungsprozess auszuführen. Wenn kein freier Kern vorhanden ist, fährt der Prozess mit Schritt SG4 fort und wartet für eine vorbestimmte Zeit auf die Erzeugung eines freien Kerns und kehrt dann zum Start zurück. In Schritt SG5 wird bestimmt, ob der Decodierungsprozess in einem der Kerne abgeschlossen wurde oder nicht. Der Prozess kehrt zum Start zurück, wenn der Decodierungsprozess in keinem der Kerne abgeschlossen wurde, oder fährt mit Schritt SG6 fort, um den Decodierungsprozess in allen Kernen zu beenden, wenn der Decodierungsprozess in einem der Kerne abgeschlossen wurde. Infolgedessen kann ein Bereitschaftszustand eingestellt werden, um den Empfang des nächsten Lesestart-Auslösersignals vorzubereiten.
  • 4 ist ein Zeitdiagramm in einem Fall, in dem mehrere Lesebilder, die durch Ändern der Helligkeit der Beleuchtungseinheit 4 erzeugt werden, Decodierungsprozessen unterzogen werden. Die Helligkeit der Beleuchtungseinheit 4 wird in dem ersten, dritten und fünften Lesebilderzeugungsprozess C1, C3 und C5 auf „10“ eingestellt, und die Helligkeit der Beleuchtungseinheit 4 wird in dem zweiten, viertem und sechstem Lesebilderzeugungsprozess C2, C4 und C6 auf „20“ eingestellt. In Bezug auf die Helligkeit ist „20“ heller als „10“. Das heißt, die Abbildungseinheit 5 nimmt Bilder des Werkstücks W unter verschiedenen Abbildungsbedingungen auf, um ein erstes Lesebild (Lesebild, das durch den ersten, dritten und fünften Lesebilderzeugungsprozess C1, C3 und C5 erzeugt wird) und ein zweites Lesebild (Lesebild, das durch den zweiten, vierten und sechsten Lesebilderzeugungsprozess C2, C4 und C6 erzeugt wird) zu erzeugen.
  • Der Kern CR0 unterzieht das durch den ersten Lesebilderzeugungsprozess C1 erzeugte Lesebild und das durch den zweiten Lesebildgenerierungsprozess C2 erzeugte Lesebild, die unter verschiedenen Abbildungsbedingungen erzeugt sind, Decodierungsprozessen durch die verschiedenen Kerne CR1 bzw. CR2. Zudem unterzieht der Kern CR0 das Lesebild, das durch den dritten Lesebilderzeugungsprozess C3 erzeugt wird, und das Lesebild, das durch den vierten Lesebilderzeugungsprozess C4 erzeugt wird, die unter verschiedenen Abbildungsbedingungen erzeugt sind, Decodierungsprozessen durch die verschiedenen Kerne CR3 bzw. CR1.
  • 25 ist ein Zeitdiagramm in einem Fall, in dem verschiedene Typen von Codes (eindimensionaler Code und zweidimensionaler Code), die in mehreren Lesebildern enthalten sind, die durch Ändern der Helligkeit der Beleuchtungseinheit 4 erzeugt sind, Decodierungsprozessen durch verschiedene Kerne unterzogen werden. In diesem Beispiel wird ein Fall angenommen, in dem beispielsweise ein eindimensionaler Code (CODE128) und ein zweidimensionaler Code (QR) an dem Werkstück W angebracht sind und der zweidimensionale Code weiter entfernt als der eindimensionale Code ist. In diesem Fall wird die Helligkeit der Beleuchtungseinheit 4 auf „10“ eingestellt und der erste, dritte und fünfte Lesebilderzeugungsprozess C1, C3 und C5 werden mit der Helligkeit ausgeführt, die zum Aufnehmen eines Bildes eines relativ nahen eindimensionalen Codes geeignet ist. Andererseits wird als Helligkeit, die zum Aufnehmen eines Bildes eines relativ entfernten zweidimensionalen Codes geeignet ist, die Helligkeit der Beleuchtungseinheit 4 auf „20“ eingestellt, und der zweite, vierte und sechste Lesebilderzeugungsprozess C2, C4 und C6 werden ausgeführt. Zu diesem Zeitpunkt können der erste, dritte und fünfte Lesebilderzeugungsprozess C1, C3 und C5 gemäß den in 8 dargestellten Abbildungsparametern der Bank 1 ausgeführt werden und der zweite, vierte und sechste Lesebilderzeugungsprozess C2, C4 und C6 gemäß den Abbildungsparametern von Bank 2 ausgeführt werden.
  • Der Kern CR0 unterzieht das Lesebild, das durch den ersten Lesebilderzeugungsprozess C1 erzeugt wird, und das Lesebild, das durch den zweiten Lesebilderzeugungsprozess C2 erzeugt wird, die mit unterschiedlichen Abbildungsbedingungen erzeugt sind, Decodierungsprozessen durch die Kerne CR1 bzw. CR2. Der Kern CR1 führt den Decodierungsprozess des eindimensionalen Codes aus und der Kern CR2 führt den Decodierungsprozess des zweidimensionalen Codes aus. Zudem unterzieht der Kern CR0 das Lesebild, das durch den dritten Lesebilderzeugungsprozess C3 erzeugt wird, und das Lesebild, das durch den vierten Lesebilderzeugungsprozess C4 erzeugt wird, die mit unterschiedlichen Abbildungsbedingungen erzeugt sind, Decodierungsprozessen durch die Kerne CR3 bzw. CR1. Der Kern CR3 führt den Decodierungsprozess des eindimensionalen Codes aus und der Kern CR1 führt den Decodierungsprozess des zweidimensionalen Codes aus.
  • Zudem kann die Abbildungseinheit 5 auch Bilder des Werkstücks W unter verschiedenen Decodierungsbedingungen aufnehmen, um ein erstes Lesebild und ein zweites Lesebild zu erzeugen, ähnlich wie in dem Fall, in dem die Abbildungsbedingungen unterschiedlich sind. Auch in diesem Fall kann der Kern CR0 verschiedenen Kernen befehlen, Decodierungsprozesse des ersten Lesebildes und des zweiten Lesebildes auszuführen, die unter den verschiedenen Decodierungsbedingungen erzeugt sind.
  • [Betrieb der optischen Lesevorrichtung 1]
  • 26 zeigt die Verarbeitung während der Betriebszeit der optischen Lesevorrichtung 1. Während der Betriebszeit der optischen Lesevorrichtung 1 wird Schritt SH1 gestartet, wenn das Lesestart-Auslösersignal empfangen wird. In Schritt SH1 nimmt die Abbildungseinheit 5 ein Bild des Werkstücks W auf. In Schritt SH2 wird ein Lesebild aus Bilddaten erzeugt, die durch Abbilden in Schritt SH1 erhalten werden, und an die Vorverarbeitungsschaltung 30 ausgegeben. Zu diesem Zeitpunkt werden die Bilddaten für jede Zeile in die Vorverarbeitungsschaltung 30 eingegeben. Es ist zu beachten, dass anstelle der Bilddaten für jede Zeile Bilddaten für mehrere Zeilen oder die gesamten Bilddaten, die ein Lesebild bilden, in die Vorverarbeitungsschaltung 30 eingegeben werden können.
  • In Schritt SH3 führt die Vorverarbeitungsschaltung 30 eine Vorverarbeitung wie etwa einen Gradationsumwandlungsprozess und verschiedene Bildfilterprozesse an den Bilddaten aus und in Schritt SH4 wird ein vorverarbeitetes Bild erzeugt. Danach fährt der Prozess mit Schritt SH5 fort, und ein Kennbetrag, der die Wahrscheinlichkeit eines Codes angibt, wird für jeden Bereich in vorverarbeiteten Bilddaten basierend auf einem Helligkeitswert jedes Pixels in den vorverarbeiteten Bilddaten berechnet und der Helligkeitswert wird gemäß dem berechneten Kennbetrag zugewiesen, um ein Intensitätskartenbild (Codesuchdaten) zu erzeugen, das in den 10B und 10C dargestellt ist. In diesem Prozess werden eine Kantendatenerzeugung, ein Kantendatenintegrationsprozess und dergleichen ausgeführt. Nach dem Erzeugen der Codesuchdaten fährt der Prozess mit Schritt SH6 fort, um die Codesuchdaten an den Prozessor 40 auszugeben.
  • Der Prozessor 40 führt in Schritt SH7 einen Codesuchprozess unter Verwendung der Codesuchdaten aus. Das heißt, wenn die Codesuchdaten das in den 10B und 10C dargestellte Intensitätskartenbild sind, entspricht ein Bereich mit einem hohen Helligkeitswert dem Codekandidatenbereich, und somit sucht der Prozessor 40 nach dem Bereich mit dem hohen Helligkeitswert in dem Intensitätskartenbild.
  • In Schritt SH8 wird der Codekandidatenbereich bestimmt. Danach fährt der Prozess mit Schritt SH9 fort und der Kern CR0 des Prozessors 40 befiehlt den Kernen CR1 bis CR8 an, Decodierungsprozesse auszuführen. Nach den Decodierungsprozessen wird in Schritt SH10 ein Decodierungsergebnis erfasst und an eine externe Vorrichtung ausgegeben.
  • [Anwenderoberflächenbild]
  • 27 ist eine Ansicht, die ein Beispiel des Anwenderoberflächenbildes 300 darstellt, und zeigt einen Fall, in dem der Lesen-Reiter 301 unter den mehreren Reitern 301, 302 und 303 ausgewählt ist. Das Anwenderoberflächenbild 300 ist mit einem Lesebild-Anzeigebereich 304, der ein von der Abbildungseinheit 5 aufgenommenes Lesebild anzeigt, und einem Abstimmungsergebnis-Anzeigebereich 305, der ein Abstimmungsergebnis anzeigt, versehen. In dem Abstimmungsergebnis-Anzeigebereich 305 wird beispielsweise ein Diagramm angezeigt, das die Beziehung zwischen der Lesbarkeit und der Helligkeit darstellt.
  • [Funktion und Wirkung der Ausführungsform]
  • Wie es oben beschrieben ist, wird gemäß der vorliegenden Ausführungsform der Kennbetrag, der die Wahrscheinlichkeit des Codes angibt, berechnet, während die Bilddaten für jede Zeile aus der Abbildungseinheit 5 erfasst werden, der Codekandidatenbereich wird basierend auf diesem Kennbetrag bestimmt und der Decodierungsprozess des bestimmten Bereichs wird ausgeführt. Somit ist es nicht notwendig zu warten, bis das Abtasten des gesamten Bildes beendet ist, um nach dem Code zu suchen, und es ist möglich, das Aufnehmen der Bilddaten aus der Abbildungseinheit 5, die Berechnung des Kennbetrags und die Bestimmung des Codekandidatenbereichs parallel durchzuführen. Im Ergebnis kann der Ausgabezeitpunkt des Decodierungsergebnisses selbst dann beschleunigt werden, wenn die Größe des Lesebildes groß ist.
  • Zudem können die Decodierungsprozesse gleichzeitig auf mehreren Kernen unter den Kernen CR1 bis CR8 ausgeführt werden. Mit anderen Worten können die mehreren Kerne gleichzeitig die Decodierungsprozesse an den zu unterschiedlichen Zeitvorgaben befohlenen Lesebildern ausführen und somit wird der Decodierungsprozess der mehreren Lesebilder beschleunigt und zugleich eine ausreichende Decodierungsverarbeitungszeit für ein Lesebild sichergestellt und stabiles Lesen ermöglicht. Infolgedessen kann das Leseergebnis mit hoher Geschwindigkeit erhalten werden und das Leseergebnis kann unmittelbar nach der Erzeugung des Lesebildes ausgegeben werden.
  • Die oben beschriebenen Ausführungsformen sind in jeder Hinsicht lediglich Beispiele und sollten nicht als einschränkend ausgelegt werden. Ferner fallen alle Abwandlungen und Änderungen, die zum Äquivalenzbereich der Ansprüche gehören, in den Geltungsbereich des vorliegenden Aspekts.
  • [Industrielle Anwendbarkeit]
  • Wie oben beschrieben, kann die optische Lesevorrichtung gemäß dem vorliegenden Aspekt beispielsweise im Fall des Lesens eines Codes wie des Strichcodes und des zweidimensionalen Codes, der an dem Werkstück angebracht ist, verwendet werden.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • JP 2018136860 [0002, 0003]
    • JP 201264178 [0002, 0004, 0005]

Claims (13)

  1. Stationäre optische Lesevorrichtung, die einen Code liest, der an einem Werkstück angebracht ist, das auf einer Linie befördert wird, wobei die optische Lesevorrichtung umfasst: eine Beleuchtungseinheit, die dazu ausgelegt ist, Licht in Richtung eines Bereichs zu emittieren, durch den das Werkstück läuft; eine Abbildungseinheit, die dazu ausgelegt ist, das von der Beleuchtungseinheit emittierte und von dem Bereich, durch den das Werkstück läuft, reflektierte Licht zu empfangen und ein Lesebild, das durch Aufnehmen eines Bildes des Bereichs erhalten wird, durch den das Werkstück läuft, zu erzeugen; eine Verarbeitungseinheit, die einen ersten Kern, der einen Decodierungsprozess des von der Abbildungseinheit erzeugten Lesebilds befiehlt, und mehrere zweite Kerne, die das von dem ersten Kern befohlene Lesebild erfassen und einen Decodierungsprozess für das erfasste Lesebild ausführen, aufweist; und eine Ausgabeeinheit, die Decodierungsergebnisse ausgibt, die durch die mehreren zweiten Kerne erzeugt werden, wobei der erste Kern dem zweiten Kern, von dem angenommen wird, dass er in der Lage ist, den Decodierungsprozess sofort auszuführen oder einen Decodierungsprozess neben dem aktuell ausgeführten Decodierungsprozess auszuführen, befiehlt, den Decodierungsprozess auszuführen, und die mehreren zweiten Kerne so ausgelegt sind, dass sie einen Decodierungsprozess an den Lesebildern, die von dem ersten Kern zu unterschiedlichen Zeitvorgaben befohlen werden, gleichzeitig durchführen können.
  2. Optische Lesevorrichtung nach Anspruch 1, die ferner umfasst: eine Abstimmungsausführungseinheit, die beim Einstellen der optischen Lesevorrichtung ein Lesebild, das einen Code enthält, aus der Abbildungseinheit erfasst, die Verarbeitungseinheit dazu veranlasst, einen Decodierungsprozess an dem erfassten Lesebild auszuführen, um eine für den Decodierungsprozess erforderliche Zeit zu messen, und eine obere Grenzzeit des Decodierungsprozesses basierend auf der gemessenen Zeit automatisch einstellt, wobei die Abbildungseinheit so ausgelegt ist, dass sie kontinuierlich Lesebilder erzeugen kann.
  3. Optische Lesevorrichtung nach Anspruch 2, wobei die obere Grenzzeit des Decodierungsprozesses so eingestellt wird, dass sie kürzer ist als eine Referenzzeit, die durch Multiplizieren einer Zeit, die durch Addieren einer Zeit zum Erzeugen eines Lesebildes durch die Abbildungseinheit und einer Zeit, die der zweite Kern benötigt, um ein Lesebild zu lesen, das durch den ersten Kern in einem Speicher gespeichert wird, erhalten wird, mit einer Anzahl der zweiten Kerne erhalten wird.
  4. Optische Lesevorrichtung nach Anspruch 2, wobei die Abstimmungsausführungseinheit eine Referenzzeit erhält, die durch Multiplizieren einer Zeit, die durch Addieren einer Zeit zum Erzeugen eines Lesebildes durch die Abbildungseinheit und einer Zeit, die der zweite Kern benötigt, um ein Lesebild zu lesen, das in einem Speicher durch den ersten Kern gespeichert wird, erhalten wird, mit einer Anzahl der zweiten Kerne erhalten wird, die erhaltene Referenzzeit mit der gemessenen Zeit vergleicht und die gemessene Zeit als die obere Grenzzeit des Decodierungsprozesses einstellt, wenn die gemessene Zeit kleiner oder gleich der Referenzzeit ist.
  5. Optische Lesevorrichtung nach Anspruch 4, wobei die Abstimmungsausführungseinheit die Referenzzeit mit der gemessenen Zeit vergleicht und die gemessene Zeit als obere Grenzzeit des Decodierungsprozesses einstellt, wenn die gemessene Zeit die Referenzzeit überschreitet.
  6. Optische Lesevorrichtung nach Anspruch 5, wobei ein Abbildungsmodus mit festem Intervall zum Erhöhen eines Erzeugungsintervalls des Lesebildes durch die Abbildungseinheit im Vergleich zu einem Erzeugungsintervall in einem Fall, in dem die gemessene Zeit kleiner oder gleich der Referenzzeit ist, ausgeführt wird, wenn die gemessene Zeit als die obere Grenzzeit des Decodierungsprozesses eingestellt wird.
  7. Optische Lesevorrichtung nach einem der Ansprüche 1 bis 6, wobei der erste Kern den voneinander verschiedenen zweiten Kernen befiehlt, einen Decodierungsprozess eines ersten Codes und eines zweiten Codes auszuführen, wenn das Lesebild den ersten Code und den zweiten Code enthält.
  8. Optische Lesevorrichtung nach Anspruch 7, wobei dann, wenn die Typen des ersten Codes und des zweiten Codes, die in dem Lesebild enthalten sind, unterschiedlich sind, der erste Kern den voneinander verschiedenen zweiten Kernen befiehlt, einen Decodierungsprozess des ersten Codes und des zweiten Codes durchzuführen.
  9. Optische Lesevorrichtung nach einem der Ansprüche 1 bis 6, wobei jeder der zweiten Kerne umfasst: eine erste Decodierungsverarbeitungseinheit, die dazu ausgelegt ist, einen Decodierungsprozess eines eindimensionalen Codes auszuführen; und eine zweite Decodierungsverarbeitungseinheit, die dazu ausgelegt ist, einen Decodierungsprozess eines zweidimensionalen Codes auszuführen, und dann, wenn das Lesebild einen eindimensionalen Code und einen zweidimensionalen Code enthält, der zweite Kern den Decodierungsprozess des eindimensionalen Codes durch die erste Decodierungsverarbeitungseinheit ausführt und den Decodierungsprozess des zweidimensionalen Codes durch die zweite Decodierungsverarbeitungseinheit ausführt.
  10. Optische Lesevorrichtung nach einem der Ansprüche 1 bis 9, wobei die Abbildungseinheit Bilder des Werkstücks unter verschiedenen Abbildungsbedingungen aufnimmt, um ein erstes Lesebild und ein zweites Lesebild zu erzeugen, und der erste Kern den voneinander verschiedenen zweiten Kernen befiehlt, einen Decodierungsprozess für das erste Lesebild und das zweite Lesebild auszuführen.
  11. Optische Lesevorrichtung nach Anspruch 10, die ferner umfasst: eine Speichereinheit, die mehrere Bänke speichert, die Abbildungsparameter enthalten, die die Abbildungsbedingungen der Abbildungseinheit definieren; und eine Empfangseinheit, die eine Auswahl einer ersten Bank und einer zweiten Bank, die von einem Anwender unter den mehreren in der Speichereinheit gespeicherten Banken vorgenommen wird, empfängt; wobei die Abbildungseinheit das erste Lesebild gemäß einem Abbildungsparameter der ersten Bank, die durch die Empfangseinheit empfangen wird, erzeugt und das zweite Lesebild gemäß einem Abbildungsparameter der zweiten Bank, die durch die Empfangseinheit empfangen wird, erzeugt.
  12. Optische Lesevorrichtung nach einem der Ansprüche 1 bis 11, wobei der erste Kern dem zweiten Kern befiehlt, einen Decodierungsprozess für das erste Lesebild und das zweite Lesebild unter verschiedenen Decodierungsbedingungen auszuführen.
  13. Optische Lesevorrichtung nach einem der Ansprüche 1 bis 12, wobei dann, wenn den voneinander verschiedenen zweiten Kerne befohlen wird, mehrere Lesebilder zu decodieren, die durch Aufnehmen eines Bildes eines einzelnen Werkstücks erzeugt werden, und ein Abschluss des Decodierungsprozesses in einem der zweiten Kerne unter den zweiten Kernen, denen befohlen wurde, den Decodierungsprozess auszuführen, detektiert wird, der erste Kern den Decodierungsprozess des anderen zweiten Kerns stoppt.
DE102021106336.1A 2020-03-19 2021-03-16 Optische Lesevorrichtung Pending DE102021106336A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2020049422A JP7430553B2 (ja) 2020-03-19 2020-03-19 光学読取装置
JP2020-049422 2020-03-19

Publications (1)

Publication Number Publication Date
DE102021106336A1 true DE102021106336A1 (de) 2021-09-23

Family

ID=77552760

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021106336.1A Pending DE102021106336A1 (de) 2020-03-19 2021-03-16 Optische Lesevorrichtung

Country Status (3)

Country Link
US (1) US11295100B2 (de)
JP (1) JP7430553B2 (de)
DE (1) DE102021106336A1 (de)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012064178A (ja) 2010-09-17 2012-03-29 Keyence Corp 光学情報読取装置
JP2018136860A (ja) 2017-02-23 2018-08-30 株式会社キーエンス 光学的情報読取装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002024751A (ja) 2000-07-05 2002-01-25 Pfu Ltd バーコード装置および記録媒体
JP2006031358A (ja) 2004-07-15 2006-02-02 Ziosoft Inc ボリュームレンダリング等の画像処理システム
JP4680546B2 (ja) 2004-07-21 2011-05-11 株式会社日立製作所 実行条件設定支援方法および装置
JP5606808B2 (ja) 2010-06-18 2014-10-15 株式会社キーエンス コード読取装置
US10154177B2 (en) * 2012-10-04 2018-12-11 Cognex Corporation Symbology reader with multi-core processor
JP2016033788A (ja) 2014-07-31 2016-03-10 株式会社キーエンス 光学的情報読取装置、光学的情報読取方法およびプログラム
JP2019071018A (ja) 2017-10-11 2019-05-09 株式会社キーエンス 光学的情報読取装置及び光学的情報読取方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012064178A (ja) 2010-09-17 2012-03-29 Keyence Corp 光学情報読取装置
JP2018136860A (ja) 2017-02-23 2018-08-30 株式会社キーエンス 光学的情報読取装置

Also Published As

Publication number Publication date
US11295100B2 (en) 2022-04-05
US20210294994A1 (en) 2021-09-23
JP7430553B2 (ja) 2024-02-13
JP2021149588A (ja) 2021-09-27

Similar Documents

Publication Publication Date Title
DE60123088T2 (de) Verahren zur automatischen belichtungssteuerung
DE69629930T2 (de) Verfahren zum Festlegen eines auf einem Objekt angebrachten optischen Codes
DE3212432C2 (de)
DE202012013713U1 (de) Vorrichtung zur Dual-Target-Autobelichtung
DE112013000571B4 (de) Verfahren zum Decodieren eines Strichcodes innerhalb eines Bilderzeugungssichtfelds eines Bilderzeugungssystems und Vorrichtung
DE602004011145T2 (de) Vorrichtung und Verfahren zum Lesen von optischen Informationen
JP2021501330A (ja) Cpu+gpu+fpgaアーキテクチャに基づく自動光学検査システム
DE102010034546A1 (de) Bildverarbeitungsvorrichtung und Bildverarbeitungsverfahren
DE102005058740B4 (de) Vorrichtung zum Lesen eines optischen Datencodes
DE3809025A1 (de) Bereichserkennungseinrichtung
DE102020204246A1 (de) Bildinspektionssystem und Bildinspektionsverfahren
DE2829808A1 (de) Verfahren und vorrichtung zum lesen von zeichen
DE3508400A1 (de) Vorrichtung und verfahren zur mustererkennung
DE2916161A1 (de) Maschine und verfahren zum erkennen gedruckter zeichen
DE102020117985A1 (de) Ein alternatives verfahren zur interaktion mit einer benutzerschnittstelle unter verwendung von standard-barcodescannern gepaart mit einem augmented reality heads -up-display
DE102021106336A1 (de) Optische Lesevorrichtung
US11308301B2 (en) Optical reading device
WO2005029052A1 (de) Verfahren und vorrichtung zur inspektion eines wafers
DE112021001440T5 (de) Dreidimensionales Messgerät, das aus einem von mehreren Kameras aufgenommenen Bild Positionsinformationen für eine Objektoberfläche erzeugt
DE102022124537A1 (de) Verfahren zur erstellung eines optimierten/adaptiven bereichs von interesse (roi) basierend auf einer erkennung einer strichcodeposition im sichtfeld (fov)
DE19930745A1 (de) Verfahren und System zur Biegewinkelbestimmung
DE2817536C2 (de)
DE112022001773T5 (de) Systeme und Verfahren zur Bestimmung eines adaptiven Bereichs von Interesse (ROI) für die Berechnung von Bildmetriken
DE102019110076A1 (de) Optimierte strichcode-dekodierung in mehrfachbildgeberstrichcodelesegeräten und bildgebungsmaschinen
DE102022100505A1 (de) Optische-Informationen-Lesevorrichtung