(57)【特許請求の範囲】
【請求項１】
光を出射する発光素子と、
バーコードが付された被検出物体からの反射光を受光する受光素子と
を備え、
前記発光素子による走査範囲内にて前記受光素子の受光信号に基づいて、バーコード情報を取得するバーコード読取装置において、
走査範囲内に存在するバーコードの線幅値を取得する信号処理手段と、
前記バーコード情報を正常に読み取ることができたか否かを判断する読取判断手段と、
該読取判断手段で前記バーコード情報を正常に読み取ることができたと判断した場合、前記線幅値に基づいて、走査範囲内における前記バーコード情報を読み取ることができた範囲の開始点及び終了点の位置に関する情報を取得する読取範囲取得手段と、
取得した開始点及び終了点の位置に関する情報に基づいて、該開始点及び終了点の走査範囲内での相対位置を算出する位置算出手段と
を備えることを特徴とするバーコード読取装置。
【請求項２】
前記発光素子による走査開始からのクロック数を計数する計数手段を備え、
前記信号処理手段は、バーコードの線幅に相当するクロック数を前記線幅値として取得するようにしてあることを特徴とする請求項１記載のバーコード読取装置。
【請求項３】
前記読取範囲取得手段は、
前記開始点の位置に関する情報を、走査開始から前記開始点までの前記線幅値のクロック数を累計した累計値として取得し、前記終了点の位置に関する情報を、走査開始から前記終了点までの前記線幅値のクロック数を累計した累計値として取得するようにしてあり、
前記開始点の位置に関する情報に、前記開始点直後のバーコードの線幅に相当するクロック数を加算した値を新たな開始点の位置に関する情報とし、前記終了点の位置に関する情報から、前記終了点直前のバーコードの線幅に相当するクロック数を減算した値を新たな終了点の位置に関する情報とするようにしてあることを特徴とする請求項２記載のバーコード読取装置。
【請求項４】
光を出射する発光素子と、
バーコードが付された被検出物体からの反射光を受光する受光素子と
を備え、
前記発光素子による走査範囲内にて前記受光素子の受光信号に基づいて、バーコード情報を取得するバーコード読取装置で実行することが可能なバーコード読取方法において、
走査範囲内に存在するバーコードの線幅値を取得し、
前記バーコード情報を正常に読み取ることができたか否かを判断し、
正常に読み取ることができたと判断した場合、前記線幅値に基づいて、走査範囲内における前記バーコード情報を読み取ることができた範囲の開始点及び終了点の位置に関する情報を取得し、
取得した開始点及び終了点の位置に関する情報に基づいて、該開始点及び終了点の走査範囲内での相対位置を算出することを特徴とするバーコード読取方法。
【請求項５】
前記発光素子による走査開始からのクロック数を計数し、
バーコードの線幅に相当するクロック数を前記線幅値として取得することを特徴とする請求項４記載のバーコード読取方法。
【請求項６】
前記開始点の位置に関する情報を、走査開始から前記開始点までの前記線幅値のクロック数を累計した累計値として取得し、前記終了点の位置に関する情報を、走査開始から前記終了点までの前記線幅値のクロック数を累計した累計値として取得し、
前記開始点の位置に関する情報に、前記開始点直後のバーコードの線幅に相当するクロック数を加算した値を新たな開始点の位置に関する情報とし、
前記終了点の位置に関する情報から、前記終了点直前のバーコードの線幅に相当するクロック数を減算した値を新たな終了点の位置に関する情報とすることを特徴とする請求項５記載のバーコード読取方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、被検出物体におけるバーコード貼付位置を正確に検出することができるバーコード読取装置及びバーコード読取方法に関する。
【背景技術】
【０００２】
従来のバーコード読取装置は、黒い棒状のバーコードシンボルが複数並べられて表示されたバーコードから、バーコード情報を読み取るための装置である。バーコード情報は、バーコードシンボル及びバーコードシンボル間のスペースの線幅によって表示されている。バーコード情報を読み取るため、バーコード読取装置は、バーコード上のバーコードシンボル及びバーコードシンボル間のスペースの線幅を測定するように構成されている。
【０００３】
例えば特許文献１に、バーコード上に光を出射する光源と、光源から出射された光をバーコード上に走査させる走査部と、バーコードからの反射光を受光する受光素子と、受光素子の出力信号を整形処理する受光信号整形手段と、整形処理された信号がバーコードシンボルであるか否かを判断して読取結果とする比較回路とを備えるバーコード読取装置が開示されている。特許文献１では、光源から出射した光をバーコード上に走査させ、バーコードからの反射光を受光した受光素子が受光信号として出力し、出力された受光信号に基づいてバーコードシンボル及びスペースの線幅を測定することができる。
【０００４】
具体的には、バーコード上のバーコードシンボルとバーコードシンボル間のスペースとの光の反射率の違いによって、バーコードシンボル及びスペースの線幅を測定する。バーコードシンボル上では、黒色であることから光の吸収率が高くなり、光の反射率は低く、スペース上では、白色であることから光の吸収率が低くなり、光の反射率は高くなる。受光信号の波形としては、バーコードシンボルからスペースへ走査する場合に立ち上がり、スペースからバーコードシンボルへ走査する場合に立ち下がる。したがって、受光信号を微分処理することによって、バーコードシンボルとスペースとの境界にて極大値及び極小値となり、バーコードシンボル及びスペースの線幅を測定することができる。したがって、線幅によって表示されたバーコード情報を取得することができる。
【０００５】
ここで、線幅を精度良く測定できなければ、バーコード情報を読み取れない、又は間違ったバーコード情報として読み取ってしまうことになる。特許文献１では、バーコードシンボルの線幅の広狭によって受光信号の振幅が小さくなる場合でも、受光信号整形手段で受光信号を整形処理することによって、線幅を正確に測定することができ、バーコードを確実に読み取ることを可能にしている。
【特許文献１】特開平６−２３１２９０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、特許文献１に開示されているバーコード読取装置等、従来のバーコード読取装置では、バーコードシンボル及びスペースの線幅を測定し、線幅によって表示されたバーコード情報を取得するだけであり、精度良く測定した線幅は有効利用されていない。
【０００７】
バーコードは、ある程度の大きさで表示され、通常、被検出物体に直接貼付されていることから、被検出物体において貼付可能な位置は限定される場合が多い。例えば、被検出物体の形状によって平面状にバーコードを貼付できる場所が制限される場合、被検出物体上の他の表示を避けて貼付する必要があってバーコードの貼付可能な位置が制限される場合等である。バーコードが平面状に貼付されない場合、バーコードを正確に読み取ることができなくなるという問題がある。また、他の表示を覆ってバーコードを貼付した場合、バーコードを正確に読み取ることができたとしても、他の表示が見えなくなることによる弊害が生じるという問題がある。これらの問題を回避するため、バーコードは、被検出物体の所定の位置に貼付するように設定されていることが多い。
【０００８】
例えば、製品の製造ラインにて、製造を完了した製品（被検出物体）にバーコードを貼付した後、バーコードが製品の所定の位置に貼付されているか否かを確認し、バーコードが正しく貼付された製品を出荷することもある。バーコードが被検出物体の所定の位置に貼付されているか否かは、例えば品質管理担当者による目視、あるいは画像センサ等の外部センサの検出値によって確認されている。
【０００９】
しかし、目視による確認だけでは正確さを欠き、センサを用いる場合にはバーコードを読み取るための装置又は構成とは別に位置を検出するための装置又は構成を必要とするため、全体としてコスト高要因となるという問題がある。
【００１０】
本発明は斯かる事情に鑑みてなされたものであり、バーコード情報を取得するための線幅値を利用し、別途装置又は構成を設けることなく、被検出物体におけるバーコード貼付位置を正確に検出することができるバーコード読取装置及びバーコード読取方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するために第１発明に係るバーコード読取装置は、光を出射する発光素子と、バーコードが付された被検出物体からの反射光を受光する受光素子とを備え、前記発光素子による走査範囲内にて前記受光素子の受光信号に基づいて、バーコード情報を取得するバーコード読取装置において、走査範囲内に存在するバーコードの線幅値を取得する信号処理手段と、前記バーコード情報を正常に読み取ることができたか否かを判断する読取判断手段と、該読取判断手段で前記バーコード情報を正常に読み取ることができたと判断した場合、前記線幅値に基づいて、走査範囲内における前記バーコード情報を読み取ることができた範囲の開始点及び終了点の位置に関する情報を取得する読取範囲取得手段と、取得した開始点及び終了点の位置に関する情報に基づいて、該開始点及び終了点の走査範囲内での相対位置を算出する位置算出手段とを備えることを特徴とする。
【００１２】
また、第２発明に係るバーコード読取装置は、第１発明において、前記発光素子による走査開始からのクロック数を計数する計数手段を備え、前記信号処理手段は、バーコードの線幅に相当するクロック数を前記線幅値として取得するようにしてあることを特徴とする。
【００１３】
また、第３発明に係るバーコード読取装置は、第２発明において、前記読取範囲取得手段は、前記開始点の位置に関する情報を、走査開始から前記開始点までの前記線幅値のクロック数を累計した累計値として取得し、前記終了点の位置に関する情報を、走査開始から前記終了点までの前記線幅値のクロック数を累計した累計値として取得するようにしてあり、前記開始点の位置に関する情報に、前記開始点直後のバーコードの線幅に相当するクロック数を加算した値を新たな開始点の位置に関する情報とし、前記終了点の位置に関する情報から、前記終了点直前のバーコードの線幅に相当するクロック数を減算した値を新たな終了点の位置に関する情報とするようにしてあることを特徴とする。
【００１４】
次に、上記目的を達成するために第４発明に係るバーコード読取方法は、光を出射する発光素子と、バーコードが付された被検出物体からの反射光を受光する受光素子とを備え、前記発光素子による走査範囲内にて前記受光素子の受光信号に基づいて、バーコード情報を取得するバーコード読取装置で実行することが可能なバーコード読取方法において、走査範囲内に存在するバーコードの線幅値を取得し、前記バーコード情報を正常に読み取ることができたか否かを判断し、正常に読み取ることができたと判断した場合、前記線幅値に基づいて、走査範囲内における前記バーコード情報を読み取ることができた範囲の開始点及び終了点の位置に関する情報を取得し、取得した開始点及び終了点の位置に関する情報に基づいて、該開始点及び終了点の走査範囲内での相対位置を算出することを特徴とする。
【００１５】
また、第５発明に係るバーコード読取方法は、第４発明において、前記発光素子による走査開始からのクロック数を計数し、バーコードの線幅に相当するクロック数を前記線幅値として取得することを特徴とする。
【００１６】
また、第６発明に係るバーコード読取方法は、第５発明において、前記開始点の位置に関する情報を、走査開始から前記開始点までの前記線幅値のクロック数を累計した累計値として取得し、前記終了点の位置に関する情報を、走査開始から前記終了点までの前記線幅値のクロック数を累計した累計値として取得し、前記開始点の位置に関する情報に、前記開始点直後のバーコードの線幅に相当するクロック数を加算した値を新たな開始点の位置に関する情報とし、前記終了点の位置に関する情報から、前記終了点直前のバーコードの線幅に相当するクロック数を減算した値を新たな終了点の位置に関する情報とすることを特徴とする。
【００１７】
第１発明及び第４発明では、走査範囲内に存在するバーコードの線幅値を取得し、取得した線幅値に基づいて、走査範囲内におけるバーコード情報を読み取ることができた範囲の開始点及び終了点の位置に関する情報を取得する。取得した開始点及び終了点の位置に関する情報に基づいて、該開始点及び終了点の走査範囲内での相対位置を算出する。これにより、バーコード情報を読み取ることができた範囲の正確な線幅値に基づいて、バーコードの開始点及び終了点の位置に関する情報を正確に取得することができる。固定されたバーコード読取装置が一定の範囲を走査する場合、バーコード読取装置の位置に基づいて走査範囲を特定することができるので、正確に取得した開始点及び終了点の位置に関する情報に基づいて、開始点及び終了点の走査範囲内での相対位置を算出することによって、バーコードとバーコード読取装置との相対位置を算出することができ、算出された相対位置に基づいて、固定されたバーコード読取装置の位置に対するバーコードの位置を特定することが可能となる。また、バーコードが貼付された被検出物体が、固定されたバーコード読取装置に対して所定位置で走査される場合には、特定したバーコードの位置から、被検出物体におけるバーコード貼付位置を検出することが可能となる。したがって、バーコード情報を取得するための線幅値を利用し、別途装置又は構成を設けることなく、被検出物体におけるバーコード貼付位置を正確に検出することができる。
【００１８】
第２発明及び第５発明では、発光素子による走査開始からのクロック数を計数し、バーコードの線幅に相当するクロック数を線幅値として取得するので、時間カウンタによるクロック数を用いてより正確な線幅値を取得することができる。したがって、より正確な線幅値に基づいて開始点及び終了点の位置に関する情報をより正確に取得することができ、相対位置をより精度良く算出することが可能となる。
【００１９】
第３発明及び第６発明では、クロック数を累計して取得した開始点の位置に関する情報に、開始点直後のバーコードの線幅に相当するクロック数を加算した値を新たな開始点の位置に関する情報とし、クロック数を累計して取得した終了点の位置に関する情報から、終了点直前のバーコードの線幅に相当するクロック数を減算した値を新たな終了点の位置に関する情報とするので、線幅の太り又は細りが発生しやすい開始点及び終了点におけるバーコードシンボルを、バーコード情報の位置検出対象から排除することができる。したがって、バーコード情報の位置検出対象範囲を、より正確に読み取ることができる範囲に狭め、より正確に開始点及び終了点の位置に関する情報を取得することができ、相対位置をより精度良く算出することが可能となる。
【発明の効果】
【００２０】
上記構成によれば、バーコードの線幅値に基づいて、バーコードの開始点及び終了点の位置に関する情報を正確に取得することができる。固定されたバーコード読取装置が一定の範囲を走査する場合、バーコード読取装置の位置に基づいて走査範囲を特定することができるので、正確に取得した開始点及び終了点の位置に関する情報に基づいて、開始点及び終了点の走査範囲内での相対位置を算出することによって、バーコードとバーコード読取装置との相対位置を算出することができ、算出された相対位置に基づいて、固定されたバーコード読取装置の位置に対するバーコードの位置を特定することが可能となる。また、バーコードが貼付された被検出物体が、固定されたバーコード読取装置に対して所定位置で走査される場合には、特定したバーコードの位置から、被検出物体におけるバーコード貼付位置を検出することが可能となる。したがって、バーコード情報を取得するための線幅値を利用し、別途装置又は構成を設けることなく、被検出物体におけるバーコード貼付位置を正確に検出することができる。
【発明を実施するための最良の形態】
【００２１】
以下、本発明の実施の形態に係るバーコード読取装置について、図面に基づいて具体的に説明する。
【００２２】
（実施の形態１）
図１は、本発明の実施の形態１に係るバーコード読取装置１０の構成を示すブロック図である。バーコード読取装置１０は、レーザ光を出射する発光素子であるレーザ光源１と、レーザ光をバーコード９上に走査するよう反射させるポリゴンミラー２と、バーコード９からの反射光を受光して電気信号（受光信号）に変換する受光回路３と、受光信号のうちの直流成分を除去するコンデンサ４と、受光信号を増幅する増幅回路５と、受光信号をデジタルの反射強度信号に変換するＡＤコンバータ６と、レーザ光源１の出射タイミング、ポリゴンミラー２の回転速度、増幅回路５でのゲインの設定等を制御する制御装置７とを備える。
【００２３】
本実施の形態１では、レーザ光源１にレーザダイオードを用いる。レーザ光源１は、ポリゴンミラー２の回転に同期させて点灯が制御され、レーザ光をバーコード９上に走査する。図１に示す正８角柱状のポリゴンミラー２では、１回転する間にレーザ光源１が８回点灯するようにオンオフ制御によって、バーコード９上に一定間隔でレーザ光が走査される。レーザ光源１の点灯及びポリゴンミラー２の回転は、制御装置７によって制御される。受光回路３は、フォトダイオード等の光電変換素子からなる受光素子を備え、バーコード９からの反射光を受光し、受光信号に変換する。
【００２４】
図２は、本発明の実施の形態１に係るバーコード読取装置１０の制御装置７の概略構成を示すブロック図である。制御装置７は、ＣＰＵ８と、ＣＰＵ８が外部装置との間で各種データを送受信する通信手段１１と、ＣＰＵ８とＡＤコンバータ６等の各ハードウエア構成との間で各種信号を送受信する入出力インタフェース１２と、ＣＰＵ８による制御処理における各種情報を記憶する記憶手段１３とを備える。ＣＰＵ８は、信号処理手段２０、デコード手段３０、読取判断手段３１、読取範囲取得手段４０、位置算出手段５０及び計数手段６０を備える。信号処理手段２０は、入出力インタフェース１２を介してＡＤコンバータ６から入力された受光信号を微分処理する微分処理手段２１と、微分処理された受光信号からノイズ成分を除去するフィルタ処理手段２２と、フィルタ処理された受光信号を２値化処理し、走査範囲内のバーコードの線幅値を取得する２値化処理手段２３とを有する。
【００２５】
デコード手段３０は、信号処理手段２０からの２値化された線幅値を復号し、読取判断手段３１が、バーコード情報として正常に読み取ることができたか否かを判断する。本実施の形態１において、例えば、バーコードの両端のバーコードシンボル（スタートキャラクタ及びストップキャラクタ）の外側に設けられた所定幅以上の空白部分（マージン）を利用して、バーコードを正常に読み取ることができたか否かを判断する。具体的には、マージンの後にスタートキャラクタを読み取ることによってバーコードのスタート位置を認識し、ストップキャラクタの後にマージンを読み取ることによってストップ位置を認識する。そして、スタート位置からストップ位置までの間のバーコードシンボルとスペースとの線幅の比率が妥当であればバーコードを正常に読み取ることができたと判断する。
【００２６】
読取範囲取得手段４０では、読取判断手段３１でバーコード情報を正常に読み取ることができたと判断した場合、走査範囲内のバーコードの線幅値に基づいて、バーコード情報を読み取ることができた範囲の開始点及び終了点の位置に関する情報を取得する。位置算出手段５０は、開始点及び終了点の走査範囲内での相対位置を算出する。
【００２７】
図３は、受光信号の微分処理前後の波形の概略形状を示すグラフである。図３（ａ）が微分処理前、図３（ｂ）が微分処理後の波形を示している。図３（ａ）及び（ｂ）において、縦軸は出力電圧値で示される振幅強度で、横軸はカウンタ値（データ数）である。図３における受光信号の波形は、バーコード９上の一部分の反射光に対応し、微分処理前後の波形は概略形状であり、正確に微分処理された波形を示すものではない。図３（ａ）に示すように微分処理前の波形は、バーコードシンボルからバーコードシンボル間のスペースへの境界にて立ち上がり、バーコードシンボル間のスペースの中央近傍にて極大値となる。そして、バーコードシンボル間のスペースからバーコードシンボルへの境界にて立ち下がり、バーコードシンボルの中央近傍にて極小値となる波形になっている。
【００２８】
図３（ｂ）に示すように微分処理後の波形は、バーコードシンボルからバーコードシンボル間のスペースへの境界にて極大値となり、バーコードシンボル間のスペースからバーコードシンボルへの境界にて極小値となる波形となっている。微分処理手段２１で、受信した受光信号を微分処理することによって、バーコードシンボルとバーコードシンボル間のスペースとの境界にて極大値及び極小値となるので、バーコードシンボル及びスペースの線幅値を取得することができる。走査開始から終了までに取得した線幅値は、記憶手段１３に記憶される。
【００２９】
図４は、読取範囲取得手段４０で取得する開始点及び終了点の位置に関する情報を説明するための模式図である。図５は、線幅値をクロック数で表す場合のクロック数の累計値と開始点及び終了点との対応関係を示す一覧図である。図４に示すように、被検出物体に貼付されたバーコード９に対し、バーコード９の前方からレーザ光による走査を開始し、バーコード９上を走査し、バーコード９の後方で走査を終了する。図５に示すように、レーザ走査範囲において取得した各線幅には、走査開始から終了まで順にインデックスが付与される。任意のインデックス‘ｉ’が付けられた線幅の線幅値は、Ｗ[ｉ]で示す。例えば、最初のバーコードシンボルには‘ｎ（ｎは自然数）’、最初のバーコードシンボルと２番目のバーコードシンボルとのスペースには‘ｎ＋１’、２番目のバーコードシンボルには‘ｎ＋２’、最後のバーコードシンボルには‘ｎ＋ｘ（ｘは自然数）’のインデックスが付与される。両端のバーコードシンボルの外側では、汚れ等によって反射光の強弱が発生する。これらバーコード９の外側にて受光した受光信号についても同様の処理を実行し、走査開始から最初のバーコードシンボルより前にも‘０’〜‘ｎ−１’のインデックスが付与された線幅が存在し、最後のバーコードシンボルより後に、‘ｍ−１（ｍは自然数）’及び‘ｍ’等のインデックスが付与された線幅が存在する。なお、‘ｍ’は、最後に取得した線幅に付けられたインデックスである。
【００３０】
図５に示すように、各線幅値（Ｗ[ｉ]）は、各線幅の検出時から終了時までの走査中にＣＰＵ８がカウントするクロック数を計数した計数値で示される。線幅値（Ｗ[ｎ]）は、最初のバーコードシンボルの線幅値であり、最初のバーコードシンボルの検出時から終了時までのクロック数を計数した計数値で示される。本実施の形態１におけるクロック数は、周波数５ＭＨｚでのサンプリング数で示している。線幅値（Ｗ[ｎ＋１]は、最初のバーコードシンボルと２番目のバーコードシンボルとのスペースの線幅値であり、スペースの検出時から終了時までのクロック数を計数した計数値で示される。すなわち、各バーコードシンボル及びスペースにおける検出時にはクロック数‘０’から計数する。
【００３１】
図４及び図５に示すように、位置（Ｐ[ｉ]）は、走査開始から任意のインデックス‘ｉ’で示される線幅までの線幅値（Ｗ[ｉ]）を順に積算した累計値であり、走査開始からのインデックス‘ｉ’で示される線幅が終了する位置を示している。上述のように、読取判断手段３１がマージンを利用してバーコードを正常に読み取ることができたか否かを判断するので、正常に読み取ることができた範囲は、最初のバーコードシンボルの検出時から最後のバーコードシンボルの終了時までとなる。したがって、図４及び図５に示すように、正常に読み取ることができた範囲の開始点の位置は、最初のバーコードシンボルの線幅が開始する位置（Ｐ[ｎ−１]）であり、正常に読み取ることができた範囲の終了点の位置は、最後のバーコードシンボルの線幅が終了する位置（Ｐ[ｎ＋ｘ]）である。
【００３２】
次に、位置算出手段５０で算出する相対位置について説明する。開始点の位置（Ｐ[ｎ−１]）の走査範囲（Ｐ[ｍ]）内での相対位置（Ｐstart）は、例えば式（１）で算出することができる。
【００３３】
Ｐstart＝（α×Ｐ[ｎ−１]）／Ｐ[ｍ]  ・・・（１）
【００３４】
式（１）において、αは任意の定数であり、少数点以下で算出される値の位を上げるため、例えば１００又は１００００とする。図５の例では、Ｐ[ｎ−１]が’１００００’、Ｐ[ｍ]が’３８０００’であるから、αを‘１００００’とすると、Ｐstart は２６３１．５７・・・と算出される。
【００３５】
終了点（Ｐ [ｎ＋ｘ]）の走査範囲（Ｐ[ｍ]）内での相対位置（Ｐend ）は、例えば式（２）で算出することができる。
【００３６】
Ｐend ＝（α×Ｐ[ｎ＋ｘ]）／Ｐ[ｍ]  ・・・（２）
【００３７】
式（２）において、αは式（１）と同様、任意の定数である。図５の例では、Ｐ[ｎ＋ｘ]が‘１３１５０’、Ｐ[ｍ]が‘３８０００’であるから、αを‘１００００’とすると、Ｐend は３４６０．５２６３・・・と算出される。
【００３８】
本実施の形態１において、相対位置を算出するバーコード読取装置１０は固定され、固定されたバーコード読取装置１０に対して被検出物体が所定位置にある状態で、被検出物体に貼付されたバーコード９上にレーザ光が走査される。固定されたバーコード読取装置１０の位置に基づいて走査範囲を特定することができるので、算出された開始点及び終了点の走査範囲内での相対位置Ｐstart 及びＰend は、バーコード９とバーコード読取装置１０との相対位置を示す。したがって、相対位置Ｐstart 及びＰend から、固定されたバーコード読取装置１０の位置に対するバーコード９の位置を特定することが可能となる。そして、走査時に、バーコード読取装置１０に対して被検出物体が所定位置にあるので、特定したバーコード９の位置から、被検出物体におけるバーコード貼付位置を検出することが可能となる。
【００３９】
なお、走査時に被検出物体がバーコード読取装置１０に対して所定位置にある状態は、被検出物体が静止している場合に限定されず、例えば被検出物体が生産ライン上にあって、所定の速度で移動しているような場合を含む。被検出物体が移動している場合であっても、被検出物体の移動速度を考慮すれば、相対位置Ｐstart 及びＰend からバーコード９の位置を特定することができ、同様に被検出物体におけるバーコード貼付位置を検出することができる。
【００４０】
図６は、本発明の実施の形態１に係るバーコード読取装置１０の制御装置７のＣＰＵ８の処理手順を示すフローチャートである。バーコード読取装置１０は、バーコード９上を走査して受光信号を受信し、制御装置７へ出力する。制御装置７のＣＰＵ８は、受光信号の入力を受け付け（ステップＳ６０１）、受け付けた受光信号をパルス化してデコードする（ステップＳ６０２）。
【００４１】
ＣＰＵ８は、デコードされた受光信号をバーコード情報として正常に読み取ることができたか否かを判断する（ステップＳ６０３）。ＣＰＵ８が、正常に読み取ることができなかったと判断した場合（ステップＳ６０３：ＮＯ）、ＣＰＵ８は、処理をステップＳ６０１へ戻し、上述した処理を繰り返す。
【００４２】
ＣＰＵ８が、正常に読み取ることができたと判断した場合（ステップＳ６０３：ＹＥＳ）、ＣＰＵ８は、読み取ったバーコード情報に基づいて、バーコードシンボル及びバーコードシンボル間のスペースの線幅値を取得する（ステップ６０４）。具体的には、図５に示すように、所定のマージン部分検出後の最初のバーコードシンボル（インデックス‘ｎ’）の検出時から終了時のクロック数を計数した計数値を、最初のバーコードシンボルの線幅値（Ｗ[ｎ]）として取得する。また、所定のマージン部分検出前の最後のバーコードシンボル（インデックス‘ｎ＋ｘ’）の検出時から終了時のクロック数を計数した計数値を、最後のバーコードシンボルの線幅値（Ｗ[ｎ＋ｘ]）として取得する。
【００４３】
ＣＰＵ８は、取得した線幅値に基づいて、バーコード９の開始点及び終了点を特定する（ステップＳ６０５）。具体的には、図４及び図５に示すように、バーコード読取装置１０が走査を開始してから最初のバーコードシンボル検出時までの線幅値（Ｗ[０]〜Ｗ[ｎ−１]）を積算した累計値を、開始点の位置（Ｐ[ｎ−１]）として特定する。さらに、線幅値（Ｗ[ｎ＋ｘ]）まで積算した累計値を、終了点の位置（Ｐ[ｎ＋ｘ]）として特定する。
【００４４】
ＣＰＵ８は、特定された開始点及び終了点の位置に関する情報に基づいて、開始点及び終了点の走査範囲内での相対位置を算出する（ステップＳ６０６）。具体的には、式（１）及び式（２）によって、開始点の位置（Ｐ[ｎ−１]）及び終了点の位置（Ｐ[ｎ＋ｘ]）の走査範囲（Ｐ[ｍ]）内での相対位置（Ｐstart 及びＰend ）を算出する。
【００４５】
以上のように本実施の形態１では、バーコードの線幅値に基づいて、バーコードの開始点及び終了点の位置に関する情報を正確に取得することができる。固定されたバーコード読取装置１０が一定の範囲を走査する場合、バーコード読取装置１０の位置に基づいて走査範囲を特定することができるので、取得した開始点及び終了点の位置に関する情報に基づいて、開始点及び終了点の走査範囲内での相対位置を算出することによって、バーコード９とバーコード読取装置１０との相対位置を算出することができ、算出された相対位置に基づいて、固定されたバーコード読取装置１０の位置に対するバーコード９の位置を特定することが可能となる。また、バーコード９が貼付された被検出物体が、固定されたバーコード読取装置１０に対して所定位置で走査される場合には、特定したバーコード９の位置から、被検出物体におけるバーコード貼付位置を検出することが可能となる。したがって、バーコード情報を取得するための線幅値を利用し、別途装置又は構成を設けることなく、被検出物体におけるバーコード貼付位置を正確に検出することができる。
【００４６】
（実施の形態２）
本発明の実施の形態２に係るバーコード読取装置１０の構成は、図１に示す実施の形態１と同様である。図７は、本発明の実施の形態２における制御装置７の概略構成を示すブロック図である。本実施の形態２において実施の形態１と同じ構成については、同一の符号を付することで詳細な説明は省略する。本実施の形態２における制御装置７のＣＰＵ８は、読取範囲取得手段４０の中に読取範囲調整手段４１を備える点で実施の形態１と相違する。読取範囲調整手段４１は、バーコード情報を読み取ることができた範囲を調整する。
【００４７】
バーコード読取装置１０は、バーコード９の貼付状態にもよるが、一般にはバーコード９に対して正面から光を出射することができず一定の角度を有する場合等には、両端のバーコードシンボルほど実際よりも太く、あるいは細く読み取られることが多く、正確なバーコード情報を読み取ることができない。バーコードに対するスキャンを行う場合、仮に、背景からの受光量が飽和状態にあり、そこから最初のバーコードシンボルを検出すると、最初に検出されるバーコードシンボルの線幅が細くなる場合がある。斯かる状況下でもバーコード９が存在する位置を正確に特定するべく、両端に存在するバーコードシンボルの線幅分を事前に排除してバーコード９の開始点及び終了点を特定することにより、より精度良くバーコード９の存在する位置を特定することができる。
【００４８】
図８は、読取範囲調整手段４１における読取範囲の調整方法の概念を示す模式図である。図８に示すように、バーコード９の開始点の位置であるＰ[ｎ−１]からＰ[ｎ]までの間は最初のバーコードシンボルを示している。そこで、バーコード９の開始点をＰ[ｎ−１]からＰ[ｎ]へシフトし、新たなバーコード９の開始点の位置をＰ[ｎ]とする。
【００４９】
同様に、バーコード９の終了点であるＰ[ｎ＋ｘ]からＰ[ｎ＋ｘ−１]までの間は最後のバーコードシンボルを示している。そこで、バーコード９の終了点をＰ[ｎ＋ｘ]からＰ[ｎ＋ｘ−１]へシフトし、新たなバーコード９の終了点をＰ[ｎ＋ｘ−１]とする。このようにすることで、バーコード９の両端部分に存在するバーコードシンボルを読み取り対象から除外することにより、バーコード読取のバラツキを低減することができ、より精度良くバーコード９の存在する位置を特定することが可能となる。
【００５０】
本実施の形態２では、バーコード９の両端部分に存在するバーコードシンボルを読み取り対象から除外するため、開始点の位置に関する情報に、開始点直後のバーコードの線幅に相当するクロック数を加算した値を新たな開始点の位置に関する情報とし、終了点の位置に関する情報に、終了点直前のバーコードの線幅に相当するクロック数を減算した値を新たな終了点の位置に関する情報とする。具体的には、図５の例では、開始点の位置（Ｐ[ｎ−１]＝１００００）に、開始点の直後のバーコードの線幅に相当するクロック数（Ｗ[ｎ]＝２００）を加算した値（Ｐ[ｎ]＝１０２００）を新たな開始点の位置とする。また、終了点の位置（Ｐ[ｎ＋ｘ]＝１３１５０）から、終了点の直前のバーコードの線幅に相当するクロック数（Ｗ[ｎ＋ｘ]＝１５０）を減算した値（Ｐ[ｎ＋ｘ−１]＝１３０００）を新たな終了点の位置とする。
【００５１】
新たな開始点（Ｐ[ｎ]）及び新たな終了点（Ｐ[ｎ＋ｘ−１]）の走査範囲（Ｐ[ｍ]）内での相対位置（Ｐn-start 及びＰn-end ）は、相対位置（Ｐstart 及びＰend ）と同様にして式（１）及び式（２）に準じて算出することができる。図５の例では、Ｐ[ｎ]が‘１０２００’、Ｐ[ｍ]が‘３８０００’であるから、αを‘１００００’とすると、Ｐn-start は‘２６８４．２１０５・・・’と算出される。また、Ｐ[ｎ＋ｘ−１]が‘１３０００’、Ｐ[ｍ]が‘３８０００’であるから、αを‘１００００’とすると、Ｐn-end は‘３４２１．０５２６・・・’と算出される。
【００５２】
なお、上述のように両端のバーコードシンボルほど実際よりも太く、あるいは細く読み取られることが多いことから、バーコード読取のバラツキが最も少ない中心のみを利用するため、開始点及び終了点を中心点とすることも可能である。この場合、バーコードを読み取ることができた範囲は中心点となる。中心点は（Ｐ[ｎ−１]＋Ｐ[ｎ＋ｘ]）／２として取得される。中心点の走査範囲内での相対位置（Ｐcenter）は、例えば式（３）で算出することができる。
【００５３】
Ｐcenter＝（α×（（Ｐ[ｎ−１]＋Ｐ[ｎ＋ｘ]）／２））／Ｐ[ｍ]・・・（３）
【００５４】
式（３）において、αは式（１）及び（２）と同様、任意の定数である。図５の例では、Ｐ[ｎ−１]が‘１００００’、Ｐ[ｎ＋ｘ]が‘１３１５０’であるから、Ｐ[ｎ−１]＋Ｐ[ｎ＋ｘ]）／２が‘１１５７５’となる。そして、Ｐ[ｍ]が‘３８０００’であるから、αを‘１００００’とすると、Ｐcenterは‘３０４６．０５２６・・・’と算出される。
【００５５】
相対位置Ｐcenterを用いる場合にも、相対位置（Ｐstart 及びＰend ）並びに相対位置（Ｐn-start 及びＰn-end ）と同様、バーコード９の存在する位置を正確に特定することが期待できるとともに、被検出物体におけるバーコード貼付位置を検出することが期待できる。
【００５６】
図９は、本発明の実施の形態２に係るバーコード読取装置１０の制御装置７のＣＰＵ８の処理手順を示すフローチャートである。バーコード読取装置１０は、バーコード９上を走査し、受信した受光信号を制御装置７へ出力する。制御装置７のＣＰＵ８は、受光信号の入力を受け付け（ステップＳ９０１）、受け付けた受光信号をパルス化してデコードする（ステップＳ９０２）。
【００５７】
ＣＰＵ８は、デコードされた受光信号をバーコード情報として正常に読み取ることができたか否かを判断する（ステップＳ９０３）。ＣＰＵ８が、正常に読み取ることができなかったと判断した場合（ステップＳ９０３：ＮＯ）、ＣＰＵ８は、処理をステップＳ９０１へ戻し、上述した処理を繰り返す。
【００５８】
ＣＰＵ８が、正常に読み取ることができたと判断した場合（ステップＳ９０３：ＹＥＳ）、ＣＰＵ８は、読み取ったバーコード情報に基づいて、バーコードシンボル及びバーコードシンボル間のスペースの線幅値を取得する（ステップ９０４）。具体的には、図５に示すように、所定のマージン部分検出後の最初のバーコードシンボル（インデックス‘ｎ’）の検出時から終了時のクロック数を計数した計数値を、最初のバーコードシンボルの線幅値（Ｗ[ｎ]）として取得する。また、所定のマージン部分検出前の最後のバーコードシンボル（インデックス‘ｎ＋ｘ’）の検出時から終了時のクロック数を計数した計数値を、最後のバーコードシンボルの線幅値（Ｗ[ｎ＋ｘ]）として取得する。
【００５９】
ＣＰＵ８は、取得した線幅値に基づいて、バーコード９の開始点の位置を特定する（ステップＳ９０５）。具体的には、図４及び図５に示すように、バーコード読取装置１０が走査を開始してから最初のバーコードシンボル検出時までの線幅値（Ｗ[０]〜Ｗ[ｎ−１]）を積算した累計値を、開始点の位置（Ｐ[ｎ−１]）として特定する。
【００６０】
ＣＰＵ８は、特定された開始点の位置に最初のバーコードシンボルの線幅値を加算して新たな開始点の位置として特定する（ステップＳ９０６）。具体的には、図５及び図６に示すように、開始点の位置（Ｐ[ｎ−１]）に、開始点の直後のバーコードの線幅に相当するクロック数（Ｗ[ｎ]）を加算した値を新たな開始点の位置（Ｐ[ｎ]）とする。これにより、光の出射角度により実際よりも太く、あるいは細く読み取られる場合でも、正確にバーコード情報を読み取るために、最初のバーコードシンボルを位置検出対象から外すことができる。
【００６１】
ＣＰＵ８は、取得した線幅値に基づいて、バーコード９の終了点の位置を特定する（ステップＳ９０７）。具体的には、図４及び図５に示すように、バーコード読取装置１０が走査を開始してから最後のバーコードシンボル終了時までの線幅値（Ｗ[０]〜Ｗ[ｎ＋ｘ]）を積算した累計値を、終了点の位置（Ｐ[ｎ＋ｘ]）として取得する。
【００６２】
ＣＰＵ８は、特定された終了点の位置から最後のバーコードシンボルの線幅値を減算して新たな終了点の位置として特定する（ステップＳ９０８）。具体的には、図４及び図５に示すように、終了点の位置（Ｐ[ｎ＋ｘ]）から、終了点の直前のバーコードの線幅に相当するクロック数（Ｗ[ｎ＋ｘ]）を減算した値を新たな終了点の位置（Ｐ[ｎ＋ｘ−１]）とする。これにより、光の出射角度により実際よりも太く、あるいは細く読み取られる場合でも、正確にバーコード情報を読み取るために、最後のバーコードシンボルを位置検出対象から外すことができる。
【００６３】
ＣＰＵ８は、特定された新たな開始点及び終了点の位置に関する情報に基づいて、新たな開始点及び終了点の走査範囲内での相対位置を算出する（ステップＳ９０９）。具体的には、式（１）及び式（２）に準じて、新たな開始点の位置（Ｐ[ｎ]）及び新たな終了点の位置（Ｐ[ｎ＋ｘ−１]）の走査範囲（Ｐ[ｍ]）内での相対位置（Ｐn-start及びＰn-end）を算出する。
【００６４】
以上のように本実施の形態２では、線幅の太り又は細りが発生しやすい両端のバーコードシンボルを、バーコード情報の位置検出対象から排除することができる。したがって、バーコード情報の位置検出対象範囲を、より正確に読み取ることができる範囲に狭め、より正確に開始点及び終了点の位置に関する情報を取得することができ、相対位置をより精度良く算出することが可能となる。
【００６５】
なお、上述した実施の形態２では、バーコード９の両端部分に存在するバーコードシンボルを読み取り対象から除外するため、開始点及び終了点からバーコードシンボルの線幅に相当するクロック数を夫々加算及び減算して新たな開始点及び終了点としたが、走査開始から新たな開始点又は新たな終了点までのクロック数を直接計数するようにしても良い。
【００６６】
上述した実施の形態１及び２では、発光素子による走査範囲内にて受光素子の受光信号に基づいて、線幅値を取得するバーコード読取装置を例に挙げて説明しているが、受光素子に何を用いるかは特に限定されるものではなく、受光素子としてフォトダイオードを用いても良いし、受光素子として光電変換素子（ＣＣＤ）を用い、画素単位で取得した受光信号に基づいて線幅を取得しても良い。この場合であっても、上述した効果と同様の効果を奏することが期待できる。
また、上述した実施の形態１及び２では、上述のようにバーコード９とバーコード読取装置との相対位置に基づいて、固定されたバーコード読取装置１０の位置に対するバーコード９の位置を特定することが可能となるので、予め設定した範囲外でバーコード９の位置を検出した場合には、信号を出力して警告するようにしても良い。予め設定された範囲外で誤って被検出物体に貼付されているようなバーコード９については、警告によって、バーコード情報を解析しないようにすることが可能となる。
【００６７】
なお、上述した実施の形態１及び２は、本発明の趣旨を逸脱しない範囲で変更することができることは言うまでもない。
【図面の簡単な説明】
【００６８】
【図１】本発明の実施の形態１に係るバーコード読取装置の構成を示すブロック図である。
【図２】本発明の実施の形態１に係るバーコード読取装置の制御装置の概略構成を示すブロック図である。
【図３】受光信号の微分処理前後の波形の概略形状を示すグラフである。
【図４】読取範囲取得手段で取得する開始点及び終了点の位置に関する情報を説明するための模式図である。
【図５】線幅値をクロック数で表す場合のクロック数の累計値と開始点及び終了点との対応関係を示す一覧図である。
【図６】本発明の実施の形態１に係るバーコード読取装置の制御装置のＣＰＵの処理手順を示すフローチャートである。
【図７】本発明の実施の形態２における制御装置の概略構成を示すブロック図である。
【図８】読取範囲調整手段における読取範囲の調整方法の概念を示す模式図である。
【図９】本発明の実施の形態２に係るバーコード読取装置の制御装置のＣＰＵの処理手順を示すフローチャートである。
【符号の説明】
【００６９】
１  レーザ光源
２  ポリゴンミラー
３  受光回路
４  コンデンサ
５  増幅回路
６  ＡＤコンバータ
７  制御装置
８  ＣＰＵ
９  バーコード
１０  バーコード読取装置
１１  通信手段
１２  入出力インタフェース
１３  記憶手段
２０  信号処理手段
２１  微分処理手段
２２  フィルタ処理手段
２３  ２値化処理手段
３０  デコード手段
３１  読取判断手段
４０  読取範囲取得手段
４１  読取範囲調整手段
５０  位置算出手段
６０  計数手段
【図１】
0005430078.tif 000002
【図２】
0005430078.tif 000003
【図３】
0005430078.tif 000004
【図４】
0005430078.tif 000005
【図５】
0005430078.tif 000006
【図６】
0005430078.tif 000007
【図７】
0005430078.tif 000008
【図８】
0005430078.tif 000009
【図９】
0005430078.tif 000010