(57)【特許請求の範囲】
【請求項１】
バーコードを光照射すると共に、その反射光を受光してバーコード情報を読み取るバーコード読取装置において、
光照射範囲を最大にして読み取り動作を行った際に、受光した反射光に所定の変化があるか否かを解析すると共に、その解析結果に基づいてバーコードが存在する領域を認識する第１の認識手段と、
この第１の認識手段によって認識された領域に合わせて光照射範囲を大まかに調整する第１の調整手段と、
この第１の調整手段によって調整された大まかな光照射範囲で読み取り動作を行った際に、その読み取り結果をデコードすると共に、そのデコード結果が正規のバーコードであるか否かに基づいてバーコードが存在する領域を認識する第２の認識手段と、
この第２の認識手段によって認識された領域に合わせて光照射範囲を微調整する第２の調整手段と、
を具備したことを特徴とするバーコード読取装置。
【請求項２】
コンピュータによって読み取られるプログラムコードを有する記録媒体であって、
光照射範囲を最大にして読み取り動作を行った際に、受光した反射光に所定の変化があるか否かを解析すると共に、その解析結果に基づいてバーコードが存在する領域を認識する機能と、
この認識された領域に合わせて光照射範囲を大まかに調整する機能と、
この調整された大まかな光照射範囲で読み取り動作を行った際に、その読み取り結果をデコードすると共に、そのデコード結果が正規のバーコードであるか否かに基づいてバーコードが存在する領域を認識する機能と、
この認識された領域に合わせて光照射範囲を微調整する機能を実現するためのプログラムコードを有する記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、バーコード上を光照射すると共に、その反射光を受光してバーコード情報を読み取るバーコード読取装置およびそのプログラム記録媒体に関する。
【０００２】
【従来の技術】
従来、例えば、レーザ走査型のバーコード読取装置においては、レーザ走査ミラー（バイブレーションミラーあるいはポリゴンミラー）を駆動させてレーザビームを反射させ、スキャン対象のバーコード上を光走査するようにしている。この場合、レーザ走査ミラーが１走査する走査範囲がレーザ照射範囲となる。ここで、レーザ照射範囲（走査幅）を制御する技術としては、各種の方式が知られている。すなわち、物理的あるいは光学的なシャッタ装置を用いてレーザスキャナの出射口幅を制御する方式、可撓性ミラーが運動している状態においてミラーを物理的に変形（湾曲）させる方式、レーザの屈折率を液晶デバイスで変化させる方式等が知られている。
【０００３】
【発明が解決しようとする課題】
このように従来においては照射範囲を制御することはできるものの、スキャン対象であるバーコードとスキャナとの距離やバーコードサイズに合わせて照射範囲をその都度適切に制御することは、極めて困難であり、スキャン対象であるバーコードの近くにゴミがあったり、他のバーコードが隣接しているような場合には、それらを同時に読み取ってしまう。このため、読み取りエラーが発生したり、スキャン対象ではない他のバーコードを読み取ってしまう等、作業効率の低下を招くおそれがあった。
この発明の課題は、光照射範囲をバーコードが存在する領域に合わせて制御することで、読み取り対象であるバーコードが実在している部分だけを確実に照射できるようにすることである。
【０００４】
【課題を解決するための手段】
この発明の手段は次の通りである。
光照射範囲を最大にして読み取り動作を行った際に、受光した反射光に所定の変化があるか否かを解析すると共に、その解析結果に基づいてバーコードが存在する領域を認識する第１の認識手段と、この第１の認識手段によって認識された領域に合わせて光照射範囲を大まかに調整する第１の調整手段と、この第１の調整手段によって調整された大まかな光照射範囲で読み取り動作を行った際に、その読み取り結果をデコードすると共に、そのデコード結果が正規のバーコードであるか否かに基づいてバーコードが存在する領域を認識する第２の認識手段と、この第２の認識手段によって認識された領域に合わせて光照射範囲を微調整する第２の調整手段とを具備するものである。
したがって、読み取り対象であるバーコードが存在する領域を照射することで、誤読み取りの防止、処理速度の向上、電力削減等を実現することができる。
【０００５】
【発明の実施の形態】
以下、図１〜図８を参照してこの発明の一実施形態を説明する。図１はレーザ走査型バーコード読取装置の全体構成を示したブロック図である。このバーコード読取装置はハンディタイプで、レーザ走査型バーコードスキャナユニット（レーザユニット）１と、このレーザユニット１の動作を制御すると共に、レーザユニット１から転送されて来たバーコードイメージを取り込んで解析格納する本体システム２とから構成されている。
図２はレーザユニット１の全体構成図で、本体システム２側で電源がＯＮされると、本体システム２からの電源ＯＮ／ＯＦＦ信号ＰＯＷＥＲ信号がレーザユニット１側の電源装置１−１に印加され、レーザユニット１を構成するレーザ照射制御装置１−２、走査ミラー制御装置１−３、走査タイミング検出装置１−４、受光分析装置１−５、レーザ受光装置１−６にそれぞれ駆動電圧が供給され、それらを動作させる。ここで、本体システム２側からレーザ照射ＯＮ／ＯＦＦ信号ＬＡＳＥＲ信号がレーザ照射制御装置１−２に与えられると、レーザ照射制御装置１−２はレーザ照射装置１−７を駆動させてレーザ照射を開始させるが、その際、レーザ走査ミラー１−８（バイブレーションミラーあるいはポリゴンミラー）は、走査ミラー制御装置１−３によって駆動され、レーザ照射装置１−７からのレーザビームを反射してスキャン対象のバーコードを走査する。このようにしてレーザ走査が開始されると、レーザ受光装置１−６はレーザ反射光を受光して光電変換し、受光分析装置１−５はバーコードの白黒イメージを走査速度に応じて２値のデジタルデータに変換し、バーコードイメージ信号ＩＭＡＧＥ信号として本体システム２に転送する。このとき、走査タイミング検出装置１−４は走査ミラー１−８の特定位置を検出して１走査毎にパルスまたは信号反転によるデジタル信号を走査タイミング信号ＴＩＭＩＮＧ信号として出力し、本体システム２に与える。
【０００６】
本体システム２はＣＰＵ２−１を中核とするもので、ＣＰＵ２−１は各種プログラムにしたがってこの本体システム２の全体動作を制御する中央演算処理装置である。記憶装置２−２はオペレーティングシステムや各種アプリケーションプログラム、データベース、文字フォントデータ等が予め格納されている記憶媒体２−３やその駆動系を有している。この記憶媒体２−３は固定的に設けたもの、もしくは着脱自在に装着可能なものであり、フロッピーディスク、ハードディスク、光ディスク、ＲＡＭカード等の磁気的・光学的記憶媒体、半導体メモリによって構成されている。また、記憶媒体２−３内のプログラムやデータは、必要に応じてＣＰＵ２−１の制御により、ＲＡＭ２−４にロードされる。更に、ＣＰＵ２−１は通信回線等を介して他の機器側から送信されて来たプログラム、データを受信して記憶媒体２−３に格納したり、他の機器側に設けられている記憶媒体に格納されているプログラム、データを通信回線等を介して使用することもできる。また、ＣＰＵ２−１にはその入出力周辺デバイスであるレーザユニット１、入力装置２−５、表示装置２−６がバスラインを介して接続されており、入出力プログラムにしたがってＣＰＵ２−１はそれらの動作を制御する。ここでレーザユニット１から１走査完了毎に反転する走査タイミング信号ＴＩＭＩＮＧが与えられると、ＣＰＵ２−１はその立ち上がり、立ち下がりの変化に基づいて１スキャン完了を判別し、またレーザユニット１から１走査毎に与えられるバーコードイメージ信号ＩＭＡＧＥに基づいてそれをデコードする。また、ＣＰＵ２−１はレーザ照射範囲を最大にしてバーコード読み取り動作を実行させた際に、その読み取り結果に基づいてバーコードが存在する領域を認識し、この認識された領域に合わせてレーザ照射範囲の調整を行う。ここで、レーザ照射範囲の制御は、レーザユニット１に対してレーザ照射ＯＮ／ＯＦＦ信号ＬＡＳＥＲを入力することによって行われる。すなわち、１走査期間内においてレーザ照射ＯＮ／ＯＦＦ信号ＬＡＳＥＲをハイレベルとすることによってレーザビームを点灯させ、それをローレベルとすることによって消灯させることによりレーザ照射範囲を制御するようにしている。
【０００７】
図３はＲＡＭ２−４の構成を示し、正常読込カウンタＲＣはバーコードが正常にデコードされた回数をカウントするもので、ＣＰＵ２−１は予め設定されている規定回数とこの正常読込カウンタＲＣとの値とを比較することにより規定回数分正常にデコードされたか否かを監視する。ここで、規定回数分正常にデコードされた場合にはそのデコード結果をバーコード読み取り情報としてバーコードメモリＢＭに格納する。走査カウンタＳＣはレーザユニット１からのレーザ走査タイミング信号ＴＩＭＩＮＧに基づいてそれが立ち上がってから立ち下がりまでの時間をカウントするもので、１走査期間内においてレーザ走査に追随してその値は更新されてゆく。開始位置レジスタＳＲはレーザビームを点灯させる開始位置を記憶するもので、バーコードが存在する始点位置に相当する走査カウンタＳＣの値がセットされる。終了位置レジスタＥＲはレーザビームを消灯させる終了位置を記憶するもので、バーコードが存在する終点位置に相当する走査カウンタＳＣの値がセットされる。バーコードメモリＢＭは正常認識されたバーコード読み取り情報を一時記憶するメモリであり、ワークメモリＷＭはバーコード処理の途中においてその中間結果が一時記憶されるメモりである。
【０００８】
次に、このバーコード読取装置の動作を図４、図５に示すフローチャートにしたがって説明する。ここで、これらのフローチャートに記述されているプログラムは、読み取り可能なプログラムコードの形態で記憶装置２−２に格納されており、ＣＰＵ２−１はこのプログラムにしたがった動作を逐次実行する。
図４は読み取り開始の指示に応答して実行されるフローチャートである。先ず、レーザユニット１にレーザ照射ＯＮ／ＯＦＦ信号ＬＡＳＥＲを与えてレーザ照射装置１−７をＯＮさせると共に（ステップＡ１）、レーザユニット１からのレーザ走査タイミング信号ＴＩＭＩＮＧにしたがって走査カウンタＳＣをクリアスタートさせる（ステップＡ２）。そして、走査カウンタＳＣの値を監視し、走査カウンタＳＣの値を更新しながらそれが予め決められている最大値に達するまで反射光の受光状態とそれに対応する走査カウンタＳＣの値とを取得し、ワークメモリＷＭにセットしておく（ステップＡ３〜Ａ５）。ここで、最大値とは、１走査期間におけるレーザ照射の最大値、つまり最大レーザ走査幅を規定する値であり、走査カウンタＳＣの値が最大値に達した場合には、レーザ照射ＯＮ／ＯＦＦ信号ＬＡＳＥＲに基づいてレーザ照射装置１−７をＯＦＦさせる（ステップＡ６）。
【０００９】
このようにしてレーザ照射範囲を最大にしてバーコードの読み取り動作を行い、受光した反射光の変化状態とそれに対応する走査カウンタＳＣの値とがワークメモリＷＭにセットされると、このワークメモリＷＭの内容を解析することによってバーコードブロックの認識を行う。すなわち、図６（Ａ）はこの場合におけるバーコードブロックの認識方法を説明するための図である。ここで、図中、横軸が時間、縦軸が反射光を受光した状態を示し、照射範囲を最大にしてレーザ照射した際に、受光した反射光の変化が規則的に強弱を繰り返しているか否かを解析し、規則的な変化があれば、その範囲をバーコードが存在するバーコードブロックとして認識する。このようにしてバーコードブロックの認識処理を行った結果、ステップＡ８で認識不能であることが判別された場合にはステップＡ１に戻るが、バーコードブロックを認識することができた場合には、認識されたバーコードブロックの開始位置、終了位置をワークメモリＷＭから取得して対応する開始位置レジスタＳＲ、終了位置レジスタＥＲにセットする（ステップＡ９）。すなわち、ワークメモリＷＭには受光した反射光の変化状態をそれに対応する走査カウンタＳＣの値がセットされているので、反射光の最初の変化点に対応する走査カウンタＳＣの値を開始位置として取得し、開始位置レジスタＳＲにセットし、また、反射光の最後の変化点に対応する走査カウンタＳＣの値を終了位置として取得し、終了位置レジスタＥＲにセットする。そして、認識されたバーコードブロックに基づいてレーザ照射範囲を制御して読み取り動作を行う（ステップＡ１０）。
【００１０】
図５はこの照射範囲制御処理を示したサブルーチンで、上述のようにしてバーコードブロックが認識された場合には（ステップＢ１）、開始位置レジスタＳＲ、終了位置レジスタＥＲの値を読み出してその開始位置から終了位置をレーザ照射範囲として決定し、照射範囲の絞り込みを行う（ステップＢ２）。この場合、レーザ照射範囲は上述の最大照射範囲から開始位置レジスタＳＲ、終了位置レジスタＥＲの値で規定される範囲に絞り込むようにしているが、その際、若干の余裕を持たせるために、開始位置レジスタＳＲの値を所定量減算し、終了開始レジスタＥＲの値に所定量加算することにより開始位置、終了位置によって規定される範囲よりも若干広い目のレーザ照射範囲に絞り込む。図７はこの場合の状態を示し、図中斜線を付した部分は、認識されたバーコードブロックに基づいて絞り込まれたレーザ照射範囲を示している。レーザ照射範囲は、バーコードブロックの開始位置、終了位置よりも若干広目の大きさとなるが、どの程度、広目にするかはスキャナの応答性や精度等によって異なる。
【００１１】
この状態において、レーザ走査タイミング信号ＴＩＭＩＮＧにしたがって走査カウンタＳＣをクリアスタートさせると共に（ステップＢ４）、この走査カウンタＳＣの値と開始位置レジスタＳＲの値とを比較し（ステップＢ５）、両者が一致するかを調べ（ステップＢ６）、一致するまで、走査カウンタＳＣの値を更新して行く（ステップＢ７）。ここで、走査カウンタＳＣの値が開始位置レジスタＳＲの値に一致すると、レーザユニット１に対して与えられるレーザ照射ＯＮ／ＯＦＦ信号ＬＡＳＥＲによってレーザ照射装置１−７をＯＮさせる（ステップＢ８）。これによってレーザビームが点灯するが、この状態において、更に走査カウンタＳＣを更新し（ステップＢ９）、今度は走査カウンタＳＣの値と終了位置レジスタＥＲの値とを比較し（ステップＢ１０）、両者が一致するかを調べ（ステップＢ１１）、一致するまで走査カウンタＳＣの値を更新してゆく（ステップＢ９）。ここで、走査カウンタＳＣの値が終了位置レジスタＥＲの値に一致すると、レーザ照射ＯＮ／ＯＦＦ信号ＬＡＳＥＲによってレーザ照射範囲１−７をＯＦＦさせ、レーザビームを消灯させる（ステップＢ１２）。
【００１２】
このようにして照射範囲を絞り込んでバーコードの読み取りを行うと、図４のステップＡ１１に進み、正常読込カウンタＲＣを初期化しておく。そして、今回の照射範囲によって読み込まれたバーコードイメージデータをデコードすると共に（ステップＡ１２）、正常にデコードされたかを調べる（ステップＡ１３）。この場合、バーコードと共にゴミを読み込んでしまったり、他のバーコードの一部も同時に読み込んでしまったような場合には、デコード不能となり、ステップＡ１に戻るが、正常にデコードすることができた場合には、最初のデコードかを調べる（ステップＡ１４）。いま、最初のデコードを行った場合であるから、再び照射範囲を制御して読み取り動作を行う（ステップＡ１５）。この場合においても図５のサブルーチンがコールされるが、いま、バーコードブロックを認識した場合ではなく、デコード処理した場合であるから、ステップＢ３に進み、開始位置レジスタＳＲ、終了位置レジスタＥＲの値をデコード結果に基づいて微調整して照射範囲の絞り込みを行う。すなわち、いま、開始位置レジスタＳＲ、終了位置レジスタＥＲの値はバーコードブロックの認識に基づいた正常デコードされた領域の始点／終点位置に合わせ込むために開始位置レジスタＳＲ、終了位置レジスタＥＲの値を微調整して照射範囲を更に絞り込む。図６（Ｂ）はこの状態を示し、レーザ照射範囲は正常にデコードされた領域よりも若干広目の大きさに微調整される。以下、ステップＢ４〜Ｂ１２の実行に移り、走査カウンタＳＣの値を更新しながらその値が開始位置レジステＳＲの値に達したときレーザビームの点灯、終了位置レジステＳＲの値に達したときにレーザビームを消灯させる。
そして、図４のステップＡ１６に進み、正常読込カウンタＲＣを更新し、その値と規定回数とを比較することにより規定回数分正常に読み取られたかを調べ（ステップＡ１７）、規定回数分の正常読み取りが行われるまでステップＡ１２に戻り、上述の動作が繰り返される。
【００１３】
以上のようにしてこのバーコード読取装置においては、レーザ照射範囲を最大にして読み取り動作を行った際に、その読み取り結果に基づいてバーコードが存在する領域を認識し、その領域に合わせてレーザ照射範囲を調整するようにしたから、読み取り対象であるバーコードが存在している部分だけを照射することができる。図８は最大照射範囲内に２つのバーコードが隣接している場合を示し、最大照射範囲でレーザ走査すると、２つのバーコードＡ、Ｂを１走査で読み取ってしまうが、この実施形態においては、最初のバーコードＡを読み取った際に、照射範囲がそのバーコードＡが存在する領域に設定されるため、バーコードＢの読み取りは行われない。これによってどのバーコードを読み込んだのかが明確となると共に、余計なゴミやバーコードを読み込まないため、誤読防止の効果があると共に、バーコードが存在する領域から外れた部分のデコードが不要となるため、処理速度の向上が可能となり、更には照射範囲が狭くなるために消費電力の削減となる。
また、バーコードが存在する領域を認識する方法としては、受光した反射光に所定の変化があるか否かを解析すると共に、その解析結果に基づいてバーコードが存在する領域を認識する方法と、読み取り結果をデコードした際に、そのデコード結果が正規のバーコードであるか否かに基づいてバーコードが存在する領域を認識する方法があり、それらを併用することによってレーザ照射範囲を段階的に調整することができる。すなわち、反射光の変化に基づいて認識されたバーコード領域に合わせてレーザ照射範囲の大まかな調整を行ったのち、デコード結果に基づいて認識されたバーコード領域に合わせてレーザ照射範囲を微調整することができる。また、レーザ照射範囲の調整はレーザ照射ＯＮ／ＯＦＦ信号ＬＡＳＥＲの制御によって行われるので、その制御を簡単かつ容易に行うことができる。
【００１４】
なお、上述した一実施形態は、反射光の変化に基づいてバーコード領域を認識する方法と、デコード結果に基づいてバーコード領域を認識する方法を併用するようにしたが、いずれか一方であってもよい。また、レーザビームを照射するようにしたが、発光ダイオードを光源としてもよい。また、走査方向は単方向に限らず、左右スキャンを行う双方向走査であってもよい
【００１５】
【発明の効果】
この発明によれば、光照射範囲をバーコードが存在する領域に合わせて制御することで、読み取り対象であるバーコードが実在している部分だけを確実に照射することができるので、誤読み取りの防止、処理速度の向上、電力削減等を実現することが可能となる。
【図面の簡単な説明】
【図１】バーコード読取装置の全体構成を示したブロック図。
【図２】レーザユニット１の構成を示したブロック図。
【図３】ＲＡＭ２−４の構成を示した図、
【図４】バーコード読み取り動作を示したフローチャート。
【図５】図４のステップＡ１０、Ａ１５（照射範囲の制御）を詳述したフローチャート。
【図６】（Ａ）は反射光の受光状態に応じてバーコード存在領域を認識する方法を説明するための図、（Ｂ）はデコード結果に基づいてバーコード存在領域を認識する方法を説明するための図。
【図７】反射光の受光状態に応じてバーコード存在領域が認識された際に、その領域に合わせてレーザ照射範囲がどのように調整されるかを示した図。
【図８】（Ａ）はレーザ照射範囲を最大にして走査した場合、（Ｂ）はレーザ照射範囲を絞り込んだ状態で走査した場合を示した図。
【符号の説明】
１  レーザユニット
１−２  レーザ照射制御装置
１−４  走査タイミング検出装置
１−７  レーザ照射装置
１−８  レーザ走査ミラー
２  本体システム
２−１  ＣＰＵ
２−２  記憶装置
２−３  記憶媒体
２−４  ＲＡＭ
ＲＣ  正常読込カウンタ
ＳＣ  走査カウンタ
ＢＭ  バーコードメモリ
ＳＲ  開始位置レジスタ
ＥＲ  終了位置レジスタ
ＷＭ  ワークメモリ
ＬＡＳＥＲ  レーザ照射ＯＮ／ＯＦＦ信号
ＴＩＭＩＮＧ  レーザ照射タイミング信号
【図１】
0003711775.tif 000002
【図２】
0003711775.tif 000003
【図３】
0003711775.tif 000004
【図４】
0003711775.tif 000005
【図５】
0003711775.tif 000006
【図６】
0003711775.tif 000007
【図７】
0003711775.tif 000008
【図８】
0003711775.tif 000009