説明

バーコード読取装置及びバーコード読取方法

【課題】バーコード情報を取得するための線幅値を利用し、別途装置又は構成を設けることなく、被検出物体におけるバーコード貼付位置を正確に検出することができるバーコード読取装置及びバーコード読取方法を提供する。
【解決手段】光を出射する発光素子と、バーコードが付された被検出物体からの反射光を受光する受光素子とを備え、発光素子による走査範囲内にて受光素子の受光信号に基づいて、バーコード情報を取得する。走査範囲内に存在するバーコードの線幅値を取得し、バーコード情報を正常に読み取ることができたか否かを判断する。正常に読み取ることができたと判断した場合、線幅値に基づいてバーコード情報を読み取ることができた範囲の開始点及び終了点の位置に関する情報を取得し、開始点及び終了点の走査範囲内での相対位置を算出する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、被検出物体におけるバーコード貼付位置を正確に検出することができるバーコード読取装置及びバーコード読取方法に関する。
【背景技術】
【0002】
従来のバーコード読取装置は、黒い棒状のバーコードシンボルが複数並べられて表示されたバーコードから、バーコード情報を読み取るための装置である。バーコード情報は、バーコードシンボル及びバーコードシンボル間のスペースの線幅によって表示されている。バーコード情報を読み取るため、バーコード読取装置は、バーコード上のバーコードシンボル及びバーコードシンボル間のスペースの線幅を測定するように構成されている。
【0003】
例えば特許文献1に、バーコード上に光を出射する光源と、光源から出射された光をバーコード上に走査させる走査部と、バーコードからの反射光を受光する受光素子と、受光素子の出力信号を整形処理する受光信号整形手段と、整形処理された信号がバーコードシンボルであるか否かを判断して読取結果とする比較回路とを備えるバーコード読取装置が開示されている。特許文献1では、光源から出射した光をバーコード上に走査させ、バーコードからの反射光を受光した受光素子が受光信号として出力し、出力された受光信号に基づいてバーコードシンボル及びスペースの線幅を測定することができる。
【0004】
具体的には、バーコード上のバーコードシンボルとバーコードシンボル間のスペースとの光の反射率の違いによって、バーコードシンボル及びスペースの線幅を測定する。バーコードシンボル上では、黒色であることから光の吸収率が高くなり、光の反射率は低く、スペース上では、白色であることから光の吸収率が低くなり、光の反射率は高くなる。受光信号の波形としては、バーコードシンボルからスペースへ走査する場合に立ち上がり、スペースからバーコードシンボルへ走査する場合に立ち下がる。したがって、受光信号を微分処理することによって、バーコードシンボルとスペースとの境界にて極大値及び極小値となり、バーコードシンボル及びスペースの線幅を測定することができる。したがって、線幅によって表示されたバーコード情報を取得することができる。
【0005】
ここで、線幅を精度良く測定できなければ、バーコード情報を読み取れない、又は間違ったバーコード情報として読み取ってしまうことになる。特許文献1では、バーコードシンボルの線幅の広狭によって受光信号の振幅が小さくなる場合でも、受光信号整形手段で受光信号を整形処理することによって、線幅を正確に測定することができ、バーコードを確実に読み取ることを可能にしている。
【特許文献1】特開平6−231290号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかし、特許文献1に開示されているバーコード読取装置等、従来のバーコード読取装置では、バーコードシンボル及びスペースの線幅を測定し、線幅によって表示されたバーコード情報を取得するだけであり、精度良く測定した線幅は有効利用されていない。
【0007】
バーコードは、ある程度の大きさで表示され、通常、被検出物体に直接貼付されていることから、被検出物体において貼付可能な位置は限定される場合が多い。例えば、被検出物体の形状によって平面状にバーコードを貼付できる場所が制限される場合、被検出物体上の他の表示を避けて貼付する必要があってバーコードの貼付可能な位置が制限される場合等である。バーコードが平面状に貼付されない場合、バーコードを正確に読み取ることができなくなるという問題がある。また、他の表示を覆ってバーコードを貼付した場合、バーコードを正確に読み取ることができたとしても、他の表示が見えなくなることによる弊害が生じるという問題がある。これらの問題を回避するため、バーコードは、被検出物体の所定の位置に貼付するように設定されていることが多い。
【0008】
例えば、製品の製造ラインにて、製造を完了した製品(被検出物体)にバーコードを貼付した後、バーコードが製品の所定の位置に貼付されているか否かを確認し、バーコードが正しく貼付された製品を出荷することもある。バーコードが被検出物体の所定の位置に貼付されているか否かは、例えば品質管理担当者による目視、あるいは画像センサ等の外部センサの検出値によって確認されている。
【0009】
しかし、目視による確認だけでは正確さを欠き、センサを用いる場合にはバーコードを読み取るための装置又は構成とは別に位置を検出するための装置又は構成を必要とするため、全体としてコスト高要因となるという問題がある。
【0010】
本発明は斯かる事情に鑑みてなされたものであり、バーコード情報を取得するための線幅値を利用し、別途装置又は構成を設けることなく、被検出物体におけるバーコード貼付位置を正確に検出することができるバーコード読取装置及びバーコード読取方法を提供することを目的とする。
【課題を解決するための手段】
【0011】
上記目的を達成するために第1発明に係るバーコード読取装置は、光を出射する発光素子と、バーコードが付された被検出物体からの反射光を受光する受光素子とを備え、前記発光素子による走査範囲内にて前記受光素子の受光信号に基づいて、バーコード情報を取得するバーコード読取装置において、走査範囲内に存在するバーコードの線幅値を取得する信号処理手段と、前記バーコード情報を正常に読み取ることができたか否かを判断する読取判断手段と、該読取判断手段で前記バーコード情報を正常に読み取ることができたと判断した場合、前記線幅値に基づいて前記バーコード情報を読み取ることができた範囲の開始点及び終了点の位置に関する情報を取得する読取範囲取得手段と、取得した開始点及び終了点の位置に関する情報に基づいて、該開始点及び終了点の走査範囲内での相対位置を算出する位置算出手段とを備えることを特徴とする。
【0012】
また、第2発明に係るバーコード読取装置は、第1発明において、前記発光素子による走査開始からのクロック数を計数する計数手段を備え、前記信号処理手段は、バーコードの線幅に相当するクロック数を前記線幅値として取得するようにしてあることを特徴とする。
【0013】
また、第3発明に係るバーコード読取装置は、第2発明において、前記読取範囲取得手段は、前記開始点の位置に関する情報を、走査開始から前記開始点までの前記線幅値のクロック数を累計した累計値として取得し、前記終了点の位置に関する情報を、走査開始から前記終了点までの前記線幅値のクロック数を累計した累計値として取得するようにしてあり、前記開始点の位置に関する情報に、前記開始点直後のバーコードの線幅に相当するクロック数を加算した値を新たな開始点の位置に関する情報とし、前記終了点の位置に関する情報から、前記終了点直前のバーコードの線幅に相当するクロック数を減算した値を新たな終了点の位置に関する情報とするようにしてあることを特徴とする。
【0014】
次に、上記目的を達成するために第4発明に係るバーコード読取方法は、光を出射する発光素子と、バーコードが付された被検出物体からの反射光を受光する受光素子とを備え、前記発光素子による走査範囲内にて前記受光素子の受光信号に基づいて、バーコード情報を取得するバーコード読取装置で実行することが可能なバーコード読取方法において、走査範囲内に存在するバーコードの線幅値を取得し、前記バーコード情報を正常に読み取ることができたか否かを判断し、正常に読み取ることができたと判断した場合、前記線幅値に基づいて前記バーコード情報を読み取ることができた範囲の開始点及び終了点の位置に関する情報を取得し、取得した開始点及び終了点の位置に関する情報に基づいて、該開始点及び終了点の走査範囲内での相対位置を算出することを特徴とする。
【0015】
また、第5発明に係るバーコード読取方法は、第4発明において、前記発光素子による走査開始からのクロック数を計数し、バーコードの線幅に相当するクロック数を前記線幅値として取得することを特徴とする。
【0016】
また、第6発明に係るバーコード読取方法は、第5発明において、前記開始点の位置に関する情報を、走査開始から前記開始点までの前記線幅値のクロック数を累計した累計値として取得し、前記終了点の位置に関する情報を、走査開始から前記終了点までの前記線幅値のクロック数を累計した累計値として取得し、前記開始点の位置に関する情報に、前記開始点直後のバーコードの線幅に相当するクロック数を加算した値を新たな開始点の位置に関する情報とし、前記終了点の位置に関する情報から、前記終了点直前のバーコードの線幅に相当するクロック数を減算した値を新たな終了点の位置に関する情報とすることを特徴とする。
【0017】
第1発明及び第4発明では、走査範囲内に存在するバーコードの線幅値を取得し、取得した線幅値に基づいてバーコード情報を読み取ることができた範囲の開始点及び終了点の位置に関する情報を取得する。取得した開始点及び終了点の位置に関する情報に基づいて、該開始点及び終了点の走査範囲内での相対位置を算出する。これにより、バーコード情報を読み取ることができた範囲の正確な線幅値に基づいて、バーコードの開始点及び終了点の位置に関する情報を正確に取得することができる。固定されたバーコード読取装置が一定の範囲を走査する場合、バーコード読取装置の位置に基づいて走査範囲を特定することができるので、正確に取得した開始点及び終了点の位置に関する情報に基づいて、開始点及び終了点の走査範囲内での相対位置を算出することによって、バーコードとバーコード読取装置との相対位置を算出することができ、算出された相対位置に基づいて、固定されたバーコード読取装置の位置に対するバーコードの位置を特定することが可能となる。また、バーコードが貼付された被検出物体が、固定されたバーコード読取装置に対して所定位置で走査される場合には、特定したバーコードの位置から、被検出物体におけるバーコード貼付位置を検出することが可能となる。したがって、バーコード情報を取得するための線幅値を利用し、別途装置又は構成を設けることなく、被検出物体におけるバーコード貼付位置を正確に検出することができる。
【0018】
第2発明及び第5発明では、発光素子による走査開始からのクロック数を計数し、バーコードの線幅に相当するクロック数を線幅値として取得するので、時間カウンタによるクロック数を用いてより正確な線幅値を取得することができる。したがって、より正確な線幅値に基づいて開始点及び終了点の位置に関する情報をより正確に取得することができ、相対位置をより精度良く算出することが可能となる。
【0019】
第3発明及び第6発明では、クロック数を累計して取得した開始点の位置に関する情報に、開始点直後のバーコードの線幅に相当するクロック数を加算した値を新たな開始点の位置に関する情報とし、クロック数を累計して取得した終了点の位置に関する情報から、終了点直前のバーコードの線幅に相当するクロック数を減算した値を新たな終了点の位置に関する情報とするので、線幅の太り又は細りが発生しやすい開始点及び終了点におけるバーコードシンボルを、バーコード情報の位置検出対象から排除することができる。したがって、バーコード情報の位置検出対象範囲を、より正確に読み取ることができる範囲に狭め、より正確に開始点及び終了点の位置に関する情報を取得することができ、相対位置をより精度良く算出することが可能となる。
【発明の効果】
【0020】
上記構成によれば、バーコードの線幅値に基づいて、バーコードの開始点及び終了点の位置に関する情報を正確に取得することができる。固定されたバーコード読取装置が一定の範囲を走査する場合、バーコード読取装置の位置に基づいて走査範囲を特定することができるので、正確に取得した開始点及び終了点の位置に関する情報に基づいて、開始点及び終了点の走査範囲内での相対位置を算出することによって、バーコードとバーコード読取装置との相対位置を算出することができ、算出された相対位置に基づいて、固定されたバーコード読取装置の位置に対するバーコードの位置を特定することが可能となる。また、バーコードが貼付された被検出物体が、固定されたバーコード読取装置に対して所定位置で走査される場合には、特定したバーコードの位置から、被検出物体におけるバーコード貼付位置を検出することが可能となる。したがって、バーコード情報を取得するための線幅値を利用し、別途装置又は構成を設けることなく、被検出物体におけるバーコード貼付位置を正確に検出することができる。
【発明を実施するための最良の形態】
【0021】
以下、本発明の実施の形態に係るバーコード読取装置について、図面に基づいて具体的に説明する。
【0022】
(実施の形態1)
図1は、本発明の実施の形態1に係るバーコード読取装置10の構成を示すブロック図である。バーコード読取装置10は、レーザ光を出射する発光素子であるレーザ光源1と、レーザ光をバーコード9上に走査するよう反射させるポリゴンミラー2と、バーコード9からの反射光を受光して電気信号(受光信号)に変換する受光回路3と、受光信号のうちの直流成分を除去するコンデンサ4と、受光信号を増幅する増幅回路5と、受光信号をデジタルの反射強度信号に変換するADコンバータ6と、レーザ光源1の出射タイミング、ポリゴンミラー2の回転速度、増幅回路5でのゲインの設定等を制御する制御装置7とを備える。
【0023】
本実施の形態1では、レーザ光源1にレーザダイオードを用いる。レーザ光源1は、ポリゴンミラー2の回転に同期させて点灯が制御され、レーザ光をバーコード9上に走査する。図1に示す正8角柱状のポリゴンミラー2では、1回転する間にレーザ光源1が8回点灯するようにオンオフ制御によって、バーコード9上に一定間隔でレーザ光が走査される。レーザ光源1の点灯及びポリゴンミラー2の回転は、制御装置7によって制御される。受光回路3は、フォトダイオード等の光電変換素子からなる受光素子を備え、バーコード9からの反射光を受光し、受光信号に変換する。
【0024】
図2は、本発明の実施の形態1に係るバーコード読取装置10の制御装置7の概略構成を示すブロック図である。制御装置7は、CPU8と、CPU8が外部装置との間で各種データを送受信する通信手段11と、CPU8とADコンバータ6等の各ハードウエア構成との間で各種信号を送受信する入出力インタフェース12と、CPU8による制御処理における各種情報を記憶する記憶手段13とを備える。CPU8は、信号処理手段20、デコード手段30、読取判断手段31、読取範囲取得手段40、位置算出手段50及び計数手段60を備える。信号処理手段20は、入出力インタフェース12を介してADコンバータ6から入力された受光信号を微分処理する微分処理手段21と、微分処理された受光信号からノイズ成分を除去するフィルタ処理手段22と、フィルタ処理された受光信号を2値化処理し、走査範囲内のバーコードの線幅値を取得する2値化処理手段23とを有する。
【0025】
デコード手段30は、信号処理手段20からの2値化された線幅値を復号し、読取判断手段31が、バーコード情報として正常に読み取ることができたか否かを判断する。本実施の形態1において、例えば、バーコードの両端のバーコードシンボル(スタートキャラクタ及びストップキャラクタ)の外側に設けられた所定幅以上の空白部分(マージン)を利用して、バーコードを正常に読み取ることができたか否かを判断する。具体的には、マージンの後にスタートキャラクタを読み取ることによってバーコードのスタート位置を認識し、ストップキャラクタの後にマージンを読み取ることによってストップ位置を認識する。そして、スタート位置からストップ位置までの間のバーコードシンボルとスペースとの線幅の比率が妥当であればバーコードを正常に読み取ることができたと判断する。
【0026】
読取範囲取得手段40では、読取判断手段31でバーコード情報を正常に読み取ることができたと判断した場合、走査範囲内のバーコードの線幅値に基づいて、バーコード情報を読み取ることができた範囲の開始点及び終了点の位置に関する情報を取得する。位置算出手段50は、開始点及び終了点の走査範囲内での相対位置を算出する。
【0027】
図3は、受光信号の微分処理前後の波形の概略形状を示すグラフである。図3(a)が微分処理前、図3(b)が微分処理後の波形を示している。図3(a)及び(b)において、縦軸は出力電圧値で示される振幅強度で、横軸はカウンタ値(データ数)である。図3における受光信号の波形は、バーコード9上の一部分の反射光に対応し、微分処理前後の波形は概略形状であり、正確に微分処理された波形を示すものではない。図3(a)に示すように微分処理前の波形は、バーコードシンボルからバーコードシンボル間のスペースへの境界にて立ち上がり、バーコードシンボル間のスペースの中央近傍にて極大値となる。そして、バーコードシンボル間のスペースからバーコードシンボルへの境界にて立ち下がり、バーコードシンボルの中央近傍にて極小値となる波形になっている。
【0028】
図3(b)に示すように微分処理後の波形は、バーコードシンボルからバーコードシンボル間のスペースへの境界にて極大値となり、バーコードシンボル間のスペースからバーコードシンボルへの境界にて極小値となる波形となっている。微分処理手段21で、受信した受光信号を微分処理することによって、バーコードシンボルとバーコードシンボル間のスペースとの境界にて極大値及び極小値となるので、バーコードシンボル及びスペースの線幅値を取得することができる。走査開始から終了までに取得した線幅値は、記憶手段13に記憶される。
【0029】
図4は、読取範囲取得手段40で取得する開始点及び終了点の位置に関する情報を説明するための模式図である。図5は、線幅値をクロック数で表す場合のクロック数の累計値と開始点及び終了点との対応関係を示す一覧図である。図4に示すように、被検出物体に貼付されたバーコード9に対し、バーコード9の前方からレーザ光による走査を開始し、バーコード9上を走査し、バーコード9の後方で走査を終了する。図5に示すように、レーザ走査範囲において取得した各線幅には、走査開始から終了まで順にインデックスが付与される。任意のインデックス‘i’が付けられた線幅の線幅値は、W[i]で示す。例えば、最初のバーコードシンボルには‘n(nは自然数)’、最初のバーコードシンボルと2番目のバーコードシンボルとのスペースには‘n+1’、2番目のバーコードシンボルには‘n+2’、最後のバーコードシンボルには‘n+x(xは自然数)’のインデックスが付与される。両端のバーコードシンボルの外側では、汚れ等によって反射光の強弱が発生する。これらバーコード9の外側にて受光した受光信号についても同様の処理を実行し、走査開始から最初のバーコードシンボルより前にも‘0’〜‘n−1’のインデックスが付与された線幅が存在し、最後のバーコードシンボルより後に、‘m−1(mは自然数)’及び‘m’等のインデックスが付与された線幅が存在する。なお、‘m’は、最後に取得した線幅に付けられたインデックスである。
【0030】
図5に示すように、各線幅値(W[i])は、各線幅の検出時から終了時までの走査中にCPU8がカウントするクロック数を計数した計数値で示される。線幅値(W[n])は、最初のバーコードシンボルの線幅値であり、最初のバーコードシンボルの検出時から終了時までのクロック数を計数した計数値で示される。本実施の形態1におけるクロック数は、周波数5MHzでのサンプリング数で示している。線幅値(W[n+1]は、最初のバーコードシンボルと2番目のバーコードシンボルとのスペースの線幅値であり、スペースの検出時から終了時までのクロック数を計数した計数値で示される。すなわち、各バーコードシンボル及びスペースにおける検出時にはクロック数‘0’から計数する。
【0031】
図4及び図5に示すように、位置(P[i])は、走査開始から任意のインデックス‘i’で示される線幅までの線幅値(W[i])を順に積算した累計値であり、走査開始からのインデックス‘i’で示される線幅が終了する位置を示している。上述のように、読取判断手段31がマージンを利用してバーコードを正常に読み取ることができたか否かを判断するので、正常に読み取ることができた範囲は、最初のバーコードシンボルの検出時から最後のバーコードシンボルの終了時までとなる。したがって、図4及び図5に示すように、正常に読み取ることができた範囲の開始点の位置は、最初のバーコードシンボルの線幅が開始する位置(P[n−1])であり、正常に読み取ることができた範囲の終了点の位置は、最後のバーコードシンボルの線幅が終了する位置(P[n+x])である。
【0032】
次に、位置算出手段50で算出する相対位置について説明する。開始点の位置(P[n−1])の走査範囲(P[m])内での相対位置(Pstart)は、例えば式(1)で算出することができる。
【0033】
Pstart=(α×P[n−1])/P[m] ・・・(1)
【0034】
式(1)において、αは任意の定数であり、少数点以下で算出される値の位を上げるため、例えば100又は10000とする。図5の例では、P[n−1]が’10000’、P[m]が’38000’であるから、αを‘10000’とすると、Pstart は2631.57・・・と算出される。
【0035】
終了点(P [n+x])の走査範囲(P[m])内での相対位置(Pend )は、例えば式(2)で算出することができる。
【0036】
Pend =(α×P[n+x])/P[m] ・・・(2)
【0037】
式(2)において、αは式(1)と同様、任意の定数である。図5の例では、P[n+x]が‘13150’、P[m]が‘38000’であるから、αを‘10000’とすると、Pend は3460.5263・・・と算出される。
【0038】
本実施の形態1において、相対位置を算出するバーコード読取装置10は固定され、固定されたバーコード読取装置10に対して被検出物体が所定位置にある状態で、被検出物体に貼付されたバーコード9上にレーザ光が走査される。固定されたバーコード読取装置10の位置に基づいて走査範囲を特定することができるので、算出された開始点及び終了点の走査範囲内での相対位置Pstart 及びPend は、バーコード9とバーコード読取装置10との相対位置を示す。したがって、相対位置Pstart 及びPend から、固定されたバーコード読取装置10の位置に対するバーコード9の位置を特定することが可能となる。そして、走査時に、バーコード読取装置10に対して被検出物体が所定位置にあるので、特定したバーコード9の位置から、被検出物体におけるバーコード貼付位置を検出することが可能となる。
【0039】
なお、走査時に被検出物体がバーコード読取装置10に対して所定位置にある状態は、被検出物体が静止している場合に限定されず、例えば被検出物体が生産ライン上にあって、所定の速度で移動しているような場合を含む。被検出物体が移動している場合であっても、被検出物体の移動速度を考慮すれば、相対位置Pstart 及びPend からバーコード9の位置を特定することができ、同様に被検出物体におけるバーコード貼付位置を検出することができる。
【0040】
図6は、本発明の実施の形態1に係るバーコード読取装置10の制御装置7のCPU8の処理手順を示すフローチャートである。バーコード読取装置10は、バーコード9上を走査して受光信号を受信し、制御装置7へ出力する。制御装置7のCPU8は、受光信号の入力を受け付け(ステップS601)、受け付けた受光信号をパルス化してデコードする(ステップS602)。
【0041】
CPU8は、デコードされた受光信号をバーコード情報として正常に読み取ることができたか否かを判断する(ステップS603)。CPU8が、正常に読み取ることができなかったと判断した場合(ステップS603:NO)、CPU8は、処理をステップS601へ戻し、上述した処理を繰り返す。
【0042】
CPU8が、正常に読み取ることができたと判断した場合(ステップS603:YES)、CPU8は、読み取ったバーコード情報に基づいて、バーコードシンボル及びバーコードシンボル間のスペースの線幅値を取得する(ステップ604)。具体的には、図5に示すように、所定のマージン部分検出後の最初のバーコードシンボル(インデックス‘n’)の検出時から終了時のクロック数を計数した計数値を、最初のバーコードシンボルの線幅値(W[n])として取得する。また、所定のマージン部分検出前の最後のバーコードシンボル(インデックス‘n+x’)の検出時から終了時のクロック数を計数した計数値を、最後のバーコードシンボルの線幅値(W[n+x])として取得する。
【0043】
CPU8は、取得した線幅値に基づいて、バーコード9の開始点及び終了点を特定する(ステップS605)。具体的には、図4及び図5に示すように、バーコード読取装置10が走査を開始してから最初のバーコードシンボル検出時までの線幅値(W[0]〜W[n−1])を積算した累計値を、開始点の位置(P[n−1])として特定する。さらに、線幅値(W[n+x])まで積算した累計値を、終了点の位置(P[n+x])として特定する。
【0044】
CPU8は、特定された開始点及び終了点の位置に関する情報に基づいて、開始点及び終了点の走査範囲内での相対位置を算出する(ステップS606)。具体的には、式(1)及び式(2)によって、開始点の位置(P[n−1])及び終了点の位置(P[n+x])の走査範囲(P[m])内での相対位置(Pstart 及びPend )を算出する。
【0045】
以上のように本実施の形態1では、バーコードの線幅値に基づいて、バーコードの開始点及び終了点の位置に関する情報を正確に取得することができる。固定されたバーコード読取装置10が一定の範囲を走査する場合、バーコード読取装置10の位置に基づいて走査範囲を特定することができるので、取得した開始点及び終了点の位置に関する情報に基づいて、開始点及び終了点の走査範囲内での相対位置を算出することによって、バーコード9とバーコード読取装置10との相対位置を算出することができ、算出された相対位置に基づいて、固定されたバーコード読取装置10の位置に対するバーコード9の位置を特定することが可能となる。また、バーコード9が貼付された被検出物体が、固定されたバーコード読取装置10に対して所定位置で走査される場合には、特定したバーコード9の位置から、被検出物体におけるバーコード貼付位置を検出することが可能となる。したがって、バーコード情報を取得するための線幅値を利用し、別途装置又は構成を設けることなく、被検出物体におけるバーコード貼付位置を正確に検出することができる。
【0046】
(実施の形態2)
本発明の実施の形態2に係るバーコード読取装置10の構成は、図1に示す実施の形態1と同様である。図7は、本発明の実施の形態2における制御装置7の概略構成を示すブロック図である。本実施の形態2において実施の形態1と同じ構成については、同一の符号を付することで詳細な説明は省略する。本実施の形態2における制御装置7のCPU8は、読取範囲取得手段40の中に読取範囲調整手段41を備える点で実施の形態1と相違する。読取範囲調整手段41は、バーコード情報を読み取ることができた範囲を調整する。
【0047】
バーコード読取装置10は、バーコード9の貼付状態にもよるが、一般にはバーコード9に対して正面から光を出射することができず一定の角度を有する場合等には、両端のバーコードシンボルほど実際よりも太く、あるいは細く読み取られることが多く、正確なバーコード情報を読み取ることができない。バーコードに対するスキャンを行う場合、仮に、背景からの受光量が飽和状態にあり、そこから最初のバーコードシンボルを検出すると、最初に検出されるバーコードシンボルの線幅が細くなる場合がある。斯かる状況下でもバーコード9が存在する位置を正確に特定するべく、両端に存在するバーコードシンボルの線幅分を事前に排除してバーコード9の開始点及び終了点を特定することにより、より精度良くバーコード9の存在する位置を特定することができる。
【0048】
図8は、読取範囲調整手段41における読取範囲の調整方法の概念を示す模式図である。図8に示すように、バーコード9の開始点の位置であるP[n−1]からP[n]までの間は最初のバーコードシンボルを示している。そこで、バーコード9の開始点をP[n−1]からP[n]へシフトし、新たなバーコード9の開始点の位置をP[n]とする。
【0049】
同様に、バーコード9の終了点であるP[n+x]からP[n+x−1]までの間は最後のバーコードシンボルを示している。そこで、バーコード9の終了点をP[n+x]からP[n+x−1]へシフトし、新たなバーコード9の終了点をP[n+x−1]とする。このようにすることで、バーコード9の両端部分に存在するバーコードシンボルを読み取り対象から除外することにより、バーコード読取のバラツキを低減することができ、より精度良くバーコード9の存在する位置を特定することが可能となる。
【0050】
本実施の形態2では、バーコード9の両端部分に存在するバーコードシンボルを読み取り対象から除外するため、開始点の位置に関する情報に、開始点直後のバーコードの線幅に相当するクロック数を加算した値を新たな開始点の位置に関する情報とし、終了点の位置に関する情報に、終了点直前のバーコードの線幅に相当するクロック数を減算した値を新たな終了点の位置に関する情報とする。具体的には、図5の例では、開始点の位置(P[n−1]=10000)に、開始点の直後のバーコードの線幅に相当するクロック数(W[n]=200)を加算した値(P[n]=10200)を新たな開始点の位置とする。また、終了点の位置(P[n+x]=13150)から、終了点の直前のバーコードの線幅に相当するクロック数(W[n+x]=150)を減算した値(P[n+x−1]=13000)を新たな終了点の位置とする。
【0051】
新たな開始点(P[n])及び新たな終了点(P[n+x−1])の走査範囲(P[m])内での相対位置(Pn-start 及びPn-end )は、相対位置(Pstart 及びPend )と同様にして式(1)及び式(2)に準じて算出することができる。図5の例では、P[n]が‘10200’、P[m]が‘38000’であるから、αを‘10000’とすると、Pn-start は‘2684.2105・・・’と算出される。また、P[n+x−1]が‘13000’、P[m]が‘38000’であるから、αを‘10000’とすると、Pn-end は‘3421.0526・・・’と算出される。
【0052】
なお、上述のように両端のバーコードシンボルほど実際よりも太く、あるいは細く読み取られることが多いことから、バーコード読取のバラツキが最も少ない中心のみを利用するため、開始点及び終了点を中心点とすることも可能である。この場合、バーコードを読み取ることができた範囲は中心点となる。中心点は(P[n−1]+P[n+x])/2として取得される。中心点の走査範囲内での相対位置(Pcenter)は、例えば式(3)で算出することができる。
【0053】
Pcenter=(α×((P[n−1]+P[n+x])/2))/P[m]・・・(3)
【0054】
式(3)において、αは式(1)及び(2)と同様、任意の定数である。図5の例では、P[n−1]が‘10000’、P[n+x]が‘13150’であるから、P[n−1]+P[n+x])/2が‘11575’となる。そして、P[m]が‘38000’であるから、αを‘10000’とすると、Pcenterは‘3046.0526・・・’と算出される。
【0055】
相対位置Pcenterを用いる場合にも、相対位置(Pstart 及びPend )並びに相対位置(Pn-start 及びPn-end )と同様、バーコード9の存在する位置を正確に特定することが期待できるとともに、被検出物体におけるバーコード貼付位置を検出することが期待できる。
【0056】
図9は、本発明の実施の形態2に係るバーコード読取装置10の制御装置7のCPU8の処理手順を示すフローチャートである。バーコード読取装置10は、バーコード9上を走査し、受信した受光信号を制御装置7へ出力する。制御装置7のCPU8は、受光信号の入力を受け付け(ステップS901)、受け付けた受光信号をパルス化してデコードする(ステップS902)。
【0057】
CPU8は、デコードされた受光信号をバーコード情報として正常に読み取ることができたか否かを判断する(ステップS903)。CPU8が、正常に読み取ることができなかったと判断した場合(ステップS903:NO)、CPU8は、処理をステップS901へ戻し、上述した処理を繰り返す。
【0058】
CPU8が、正常に読み取ることができたと判断した場合(ステップS903:YES)、CPU8は、読み取ったバーコード情報に基づいて、バーコードシンボル及びバーコードシンボル間のスペースの線幅値を取得する(ステップ904)。具体的には、図5に示すように、所定のマージン部分検出後の最初のバーコードシンボル(インデックス‘n’)の検出時から終了時のクロック数を計数した計数値を、最初のバーコードシンボルの線幅値(W[n])として取得する。また、所定のマージン部分検出前の最後のバーコードシンボル(インデックス‘n+x’)の検出時から終了時のクロック数を計数した計数値を、最後のバーコードシンボルの線幅値(W[n+x])として取得する。
【0059】
CPU8は、取得した線幅値に基づいて、バーコード9の開始点の位置を特定する(ステップS905)。具体的には、図4及び図5に示すように、バーコード読取装置10が走査を開始してから最初のバーコードシンボル検出時までの線幅値(W[0]〜W[n−1])を積算した累計値を、開始点の位置(P[n−1])として特定する。
【0060】
CPU8は、特定された開始点の位置に最初のバーコードシンボルの線幅値を加算して新たな開始点の位置として特定する(ステップS906)。具体的には、図5及び図6に示すように、開始点の位置(P[n−1])に、開始点の直後のバーコードの線幅に相当するクロック数(W[n])を加算した値を新たな開始点の位置(P[n])とする。これにより、光の出射角度により実際よりも太く、あるいは細く読み取られる場合でも、正確にバーコード情報を読み取るために、最初のバーコードシンボルを位置検出対象から外すことができる。
【0061】
CPU8は、取得した線幅値に基づいて、バーコード9の終了点の位置を特定する(ステップS907)。具体的には、図4及び図5に示すように、バーコード読取装置10が走査を開始してから最後のバーコードシンボル終了時までの線幅値(W[0]〜W[n+x])を積算した累計値を、終了点の位置(P[n+x])として取得する。
【0062】
CPU8は、特定された終了点の位置から最後のバーコードシンボルの線幅値を減算して新たな終了点の位置として特定する(ステップS908)。具体的には、図4及び図5に示すように、終了点の位置(P[n+x])から、終了点の直前のバーコードの線幅に相当するクロック数(W[n+x])を減算した値を新たな終了点の位置(P[n+x−1])とする。これにより、光の出射角度により実際よりも太く、あるいは細く読み取られる場合でも、正確にバーコード情報を読み取るために、最後のバーコードシンボルを位置検出対象から外すことができる。
【0063】
CPU8は、特定された新たな開始点及び終了点の位置に関する情報に基づいて、新たな開始点及び終了点の走査範囲内での相対位置を算出する(ステップS909)。具体的には、式(1)及び式(2)に準じて、新たな開始点の位置(P[n])及び新たな終了点の位置(P[n+x−1])の走査範囲(P[m])内での相対位置(Pn-start及びPn-end)を算出する。
【0064】
以上のように本実施の形態2では、線幅の太り又は細りが発生しやすい両端のバーコードシンボルを、バーコード情報の位置検出対象から排除することができる。したがって、バーコード情報の位置検出対象範囲を、より正確に読み取ることができる範囲に狭め、より正確に開始点及び終了点の位置に関する情報を取得することができ、相対位置をより精度良く算出することが可能となる。
【0065】
なお、上述した実施の形態2では、バーコード9の両端部分に存在するバーコードシンボルを読み取り対象から除外するため、開始点及び終了点からバーコードシンボルの線幅に相当するクロック数を夫々加算及び減算して新たな開始点及び終了点としたが、走査開始から新たな開始点又は新たな終了点までのクロック数を直接計数するようにしても良い。
【0066】
上述した実施の形態1及び2では、発光素子による走査範囲内にて受光素子の受光信号に基づいて、線幅値を取得するバーコード読取装置を例に挙げて説明しているが、受光素子に何を用いるかは特に限定されるものではなく、受光素子としてフォトダイオードを用いても良いし、受光素子として光電変換素子(CCD)を用い、画素単位で取得した受光信号に基づいて線幅を取得しても良い。この場合であっても、上述した効果と同様の効果を奏することが期待できる。
また、上述した実施の形態1及び2では、上述のようにバーコード9とバーコード読取装置との相対位置に基づいて、固定されたバーコード読取装置10の位置に対するバーコード9の位置を特定することが可能となるので、予め設定した範囲外でバーコード9の位置を検出した場合には、信号を出力して警告するようにしても良い。予め設定された範囲外で誤って被検出物体に貼付されているようなバーコード9については、警告によって、バーコード情報を解析しないようにすることが可能となる。
【0067】
なお、上述した実施の形態1及び2は、本発明の趣旨を逸脱しない範囲で変更することができることは言うまでもない。
【図面の簡単な説明】
【0068】
【図1】本発明の実施の形態1に係るバーコード読取装置の構成を示すブロック図である。
【図2】本発明の実施の形態1に係るバーコード読取装置の制御装置の概略構成を示すブロック図である。
【図3】受光信号の微分処理前後の波形の概略形状を示すグラフである。
【図4】読取範囲取得手段で取得する開始点及び終了点の位置に関する情報を説明するための模式図である。
【図5】線幅値をクロック数で表す場合のクロック数の累計値と開始点及び終了点との対応関係を示す一覧図である。
【図6】本発明の実施の形態1に係るバーコード読取装置の制御装置のCPUの処理手順を示すフローチャートである。
【図7】本発明の実施の形態2における制御装置の概略構成を示すブロック図である。
【図8】読取範囲調整手段における読取範囲の調整方法の概念を示す模式図である。
【図9】本発明の実施の形態2に係るバーコード読取装置の制御装置のCPUの処理手順を示すフローチャートである。
【符号の説明】
【0069】
1 レーザ光源
2 ポリゴンミラー
3 受光回路
4 コンデンサ
5 増幅回路
6 ADコンバータ
7 制御装置
8 CPU
9 バーコード
10 バーコード読取装置
11 通信手段
12 入出力インタフェース
13 記憶手段
20 信号処理手段
21 微分処理手段
22 フィルタ処理手段
23 2値化処理手段
30 デコード手段
31 読取判断手段
40 読取範囲取得手段
41 読取範囲調整手段
50 位置算出手段
60 計数手段

【特許請求の範囲】
【請求項1】
光を出射する発光素子と、
バーコードが付された被検出物体からの反射光を受光する受光素子と
を備え、
前記発光素子による走査範囲内にて前記受光素子の受光信号に基づいて、バーコード情報を取得するバーコード読取装置において、
走査範囲内に存在するバーコードの線幅値を取得する信号処理手段と、
前記バーコード情報を正常に読み取ることができたか否かを判断する読取判断手段と、
該読取判断手段で前記バーコード情報を正常に読み取ることができたと判断した場合、前記線幅値に基づいて前記バーコード情報を読み取ることができた範囲の開始点及び終了点の位置に関する情報を取得する読取範囲取得手段と、
取得した開始点及び終了点の位置に関する情報に基づいて、該開始点及び終了点の走査範囲内での相対位置を算出する位置算出手段と
を備えることを特徴とするバーコード読取装置。
【請求項2】
前記発光素子による走査開始からのクロック数を計数する計数手段を備え、
前記信号処理手段は、バーコードの線幅に相当するクロック数を前記線幅値として取得するようにしてあることを特徴とする請求項1記載のバーコード読取装置。
【請求項3】
前記読取範囲取得手段は、
前記開始点の位置に関する情報を、走査開始から前記開始点までの前記線幅値のクロック数を累計した累計値として取得し、前記終了点の位置に関する情報を、走査開始から前記終了点までの前記線幅値のクロック数を累計した累計値として取得するようにしてあり、
前記開始点の位置に関する情報に、前記開始点直後のバーコードの線幅に相当するクロック数を加算した値を新たな開始点の位置に関する情報とし、前記終了点の位置に関する情報から、前記終了点直前のバーコードの線幅に相当するクロック数を減算した値を新たな終了点の位置に関する情報とするようにしてあることを特徴とする請求項2記載のバーコード読取装置。
【請求項4】
光を出射する発光素子と、
バーコードが付された被検出物体からの反射光を受光する受光素子と
を備え、
前記発光素子による走査範囲内にて前記受光素子の受光信号に基づいて、バーコード情報を取得するバーコード読取装置で実行することが可能なバーコード読取方法において、
走査範囲内に存在するバーコードの線幅値を取得し、
前記バーコード情報を正常に読み取ることができたか否かを判断し、
正常に読み取ることができたと判断した場合、前記線幅値に基づいて前記バーコード情報を読み取ることができた範囲の開始点及び終了点の位置に関する情報を取得し、
取得した開始点及び終了点の位置に関する情報に基づいて、該開始点及び終了点の走査範囲内での相対位置を算出することを特徴とするバーコード読取方法。
【請求項5】
前記発光素子による走査開始からのクロック数を計数し、
バーコードの線幅に相当するクロック数を前記線幅値として取得することを特徴とする請求項4記載のバーコード読取方法。
【請求項6】
前記開始点の位置に関する情報を、走査開始から前記開始点までの前記線幅値のクロック数を累計した累計値として取得し、前記終了点の位置に関する情報を、走査開始から前記終了点までの前記線幅値のクロック数を累計した累計値として取得し、
前記開始点の位置に関する情報に、前記開始点直後のバーコードの線幅に相当するクロック数を加算した値を新たな開始点の位置に関する情報とし、
前記終了点の位置に関する情報から、前記終了点直前のバーコードの線幅に相当するクロック数を減算した値を新たな終了点の位置に関する情報とすることを特徴とする請求項5記載のバーコード読取方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2009−271578(P2009−271578A)
【公開日】平成21年11月19日(2009.11.19)
【国際特許分類】
【出願番号】特願2008−118711(P2008−118711)
【出願日】平成20年4月30日(2008.4.30)
【出願人】(000129253)株式会社キーエンス (681)
【Fターム(参考)】