(57)【要約】【課題】バーコードが表すデータがデコードできない場合（例えば、バーコードが正しく印刷されていない場合）でも、作業者によるデータ入力作業を省略することができる技術を提供する。【解決手段】バーコード読取装置２は、データを入力可能な操作部１８と、バーコードからの反射光を受光する受光部１４と、操作部１８から入力された特定のバーコードに対応する照合データを記憶するメモリ１６と、制御部１０とを有する。制御部１０は、メモリ１６に照合データが記憶されており、かつ、受光部１４で受光した反射光からバーコードに対応するデータをデコードできない場合に、所定の条件下で、受光部１４で受光した反射光から照合データと同一のデータがデコードされたとして処理する。【選択図】図１
2014164520.tif 000002
【特許請求の範囲】
【請求項１】
バーコードを読取可能なバーコード読取装置であって、
データを入力可能な操作部と、
バーコードからの反射光を受光する受光部と、
操作部から入力された特定のバーコードに対応する照合データを記憶するメモリと、
メモリに照合データが記憶されており、かつ、受光部で受光した反射光からバーコードに対応するデータをデコードできないという第１の条件が少なくとも成立した場合に、受光部で受光した反射光から照合データと同一のデータがデコードされたとして処理する制御部と、を有する、バーコード読取装置。
【請求項２】
制御部は、第１の条件が成立する場合において、さらに、受光部で受光した反射光からバーコードに対応するデータの特定部分をデコードでき、かつ、メモリに記憶されている照合データのうちの特定部分に対応する部分が、受光部で受光した反射光からデコードされた特定部分と一致する場合に、受光部で受光した反射光から照合データと同一のデータがデコードされたとして処理する、請求項１に記載のバーコード読取装置。
【請求項３】
制御部は、メモリに照合データが記憶されており、かつ、受光部で受光した反射光からデコードされたデータと照合データとが一致しないという第２の条件が成立する場合には、報知処理を行う、請求項１又は２に記載のバーコード読取装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書で開示する技術は、バーコードを読取可能なバーコード読取装置に関する。
【背景技術】
【０００２】
バーコードは、バーコードに対応するデータを表す複数のモジュール（いわゆる白バー及び黒バー）を有している。印刷機の不調等の要因により、一部のモジュールの幅値が本来の幅値よりも大きくなったり小さくなったりする場合がある。そのような場合において、バーコードの誤読を抑制することを目的とする技術が知られている。
【０００３】
例えば、特許文献１にはバーコード読取装置が開示されている。このバーコード読取装置は、まず、バーコードからの反射光を受光し、その反射光に基づいて、各モジュールの幅値を算出する。次いで、算出された各幅値を用いて、バーコードが表すデータをデコードする。データのデコードが失敗した場合、所定の方法で、複数のモジュールの中から、異常な幅値のモジュールを特定する。次いで、その異常な幅値のモジュールと、正常な幅値を有する複数の他のモジュールとの幅値の差を算出し、異常な幅値のモジュールに近似する正常な幅値を特定する。次いで、異常な幅値のモジュールの幅値を、特定されたモジュールの幅値に補正し、補正後の各幅値を用いて、バーコードが表すデータを再デコードする。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−１００１９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述したように、バーコードの誤読を抑制する技術が開発されてはいるが、例えば、印刷されたバーコードが正常値から大きく異なる場合には、バーコードが表すデータをデコードできないことが生じ得る。かかる場合、従来のバーコード読取装置では、バーコードが表すデータを作業者が手動で入力しなければならないが、バーコード読取装置の用途によっては、その入力作業を省略したい場合がある。例えば、同一のバーコードが付された多量の同一物品について、物品の総数が発注数と一致するか否かを確認する数量カウント処理を行う場合がある。その場合、バーコード読取装置を操作する作業者は、多量の物品のそれぞれに付されたバーコードを順次読み取って、物品の数をカウントする。数量カウント処理を行う場合に、多量の物品の中に、正しく印刷されていないバーコードが付された物品が混入していると、処理中にバーコードの読み取り不具合が発生する場合がある。その場合、作業者は、データを手動で入力しなければならず、数量カウント処理の進行が遅延する。本明細書では、バーコードが表すデータがデコードできない場合（例えば、バーコードが正しく印刷されていない場合）でも、作業者によるデータ入力作業を省略することができる技術を提供する。
【課題を解決するための手段】
【０００６】
本明細書で開示するバーコード読取装置は、データを入力可能な操作部と、バーコードからの反射光を受光する受光部と、操作部から入力された特定のバーコードに対応する照合データを記憶するメモリと、制御部とを有する。制御部は、メモリに照合データが記憶されており、かつ、受光部で受光した反射光からバーコードに対応するデータをデコードできないという第１の条件が少なくとも成立した場合に、受光部で受光した反射光から照合データと同一のデータがデコードされたとして処理する。
【０００７】
上記のバーコード読取装置によると、作業者が予め照合データを入力しておくことにより、例えば、バーコードが正しく印刷されておらず、バーコードに対応するデータをデコードできない場合は、照合データと同一のデータがデコードされたとして処理することができる。これによって、作業者によるデータ入力作業を省略することができる。例えば、数量カウント処理を行う場合において、バーコードが正しく印刷されていないときは、データ入力作業を行わないように設定しておくことで、数量カウント処理の進行の遅延を抑制することができる。
【図面の簡単な説明】
【０００８】
【図１】第１実施例のバーコード読取装置２の構成を示すブロック図。
【図２】第１実施例の制御部１０が実行する処理を示すフローチャート。
【図３】対象バーコードに含まれる複数のモジュールの幅値を、小さいものから順に並べ替えたグラフ。
【図４】第２実施例の制御部１０が実行する処理を示すフローチャート。
【発明を実施するための形態】
【０００９】
以下に説明する実施例の主要な特徴を列記しておく。なお、以下に示す技術要素は、それぞれ独立した技術要素であって、単独であるいは各種の組み合わせによって技術的有用性を発揮するものであり、出願時請求項記載の組み合わせに限定されるものではない。
【００１０】
（特徴１）制御部は、第１の条件が成立する場合において、さらに、受光部で受光した反射光からバーコードに対応するデータの特定部分をデコードでき、かつ、メモリに記憶されている照合データのうちの特定部分に対応する部分が、受光部で受光した反射光からデコードされた特定部分と一致する場合に、受光部で受光した反射光から照合データと同一のデータがデコードされたとして処理してもよい。
【００１１】
バーコードに対応するデータの特定部分と照合データのうちの特定部分に対応する部分とが一致する場合は、両者が一致しない場合に比べて、バーコードに対応するデータと照合データとが同一である可能性が高い。従って、この構成によると、バーコードに対応するデータと照合データとが同一である可能性が比較的高い場合に、受光部で受光した反射光から照合データと同一のデータがデコードされたとして処理される。数量カウント処理が誤って行われることを抑制することができる。
【００１２】
（特徴２）制御部は、メモリに照合データが記憶されており、かつ、受光部で受光した反射光からデコードされたデータと照合データとが一致しないという第２の条件が成立する場合には、報知処理を行ってもよい。
【００１３】
例えば、数量カウント処理を行う対象である複数の物品の中に、照合データと全く異なるデータに対応するバーコードが付された物品が混入していると、バーコードから正しくデータがデコードできても、バーコードからデコードされたデータと照合データとが一致しない場合がある。この構成によると、メモリに照合データが記憶されており、かつ、受光部で受光した反射光からデコードされたデータと照合データとが一致しない第２の条件が成立する場合に、報知処理を行うことができる。従って、数量カウント処理を行う対象である複数の物品の中に、照合データと全く異なるデータに対応するバーコードが付された物品が混入している場合に、報知処理を行うことによって、数量カウント処理が誤って行われることを抑制することができる。
【実施例】
【００１４】
（第１実施例）
図１に示すバーコード読取装置２は、バーコードを読取可能な装置である。ここで、バーコードは、複数のキャラクタ列（文字列）からなるデータを表している。バーコードは、複数のキャラクタを表す複数のモジュールを有している。複数のモジュールは、明色系のモジュール（いわゆる白バー）と暗色系のモジュール（いわゆる黒バー）を含む。複数のモジュールのそれぞれは、一列に並んで配置されている。
【００１５】
バーコード読取装置２は、制御部１０と、発光部１２と、受光部１４と、メモリ１６と、操作部１８と、表示部２０とを有する。制御部１０は、メモリ１６内のプログラムに従って様々な処理を実行する。制御部１０が実行する処理の内容は後で詳しく説明する。発光部１２は、バーコードに光を照射する。受光部１４は、バーコードからの反射光を受光する。メモリ１６は、様々なプログラムを記憶している。また、メモリ１６は、様々な情報（例えば、後述の照合データなど）を記憶する領域を有している。操作部１８は、複数個のキーを有する。作業者は、操作部１８を操作して、バーコード読取装置２に様々な情報（例えば、後述の照合データなど）を入力することができる。表示部２０は、様々な情報を表示する。
【００１６】
本実施例のバーコード読取装置２は、通常モードと、数量カウントモードの２種類の動作モードで動作させることができる。作業者は、操作部１８を操作して、バーコード読取装置２を通常モードと数量カウントモードのどちらで動作させるのかを選択することができる。
【００１７】
通常モードは、公知の動作モードである。即ち、通常モードでは、制御部１０は、受光部１４が受光した反射光に基づいて、バーコードに対応するデータをデコードするデコード処理を行う。通常モードでは、制御部１０は、印刷機の不調等の要因により、バーコードに対応するデータのデコードに失敗した場合に、所定の条件下で読み取られたデータを補正し、補正後のデータを用いて再度デコード処理を行うこともできる。上記の通常モードにおけるバーコード読取装置２の各動作は公知であるため、本明細書では詳しい説明を省略する。
【００１８】
数量カウントモードは、例えば、同一のバーコードが付された多量の同一物品について、物品の総数が発注数と一致するか否かを確認するような処理（数量カウント処理）を行うための動作モードである。後で詳しく説明するように、数量カウントモードでは、作業者は、多量に読み取りを行う予定のバーコード（以下、「特定のバーコード」と呼ぶ）に対応するデータ（以下、「照合データ」と呼ぶ）を、予めバーコード読取装置２に入力しておく必要がある。数量カウントモードでは、制御部１０は、バーコードが正しく印刷されておらず、バーコードに対応するデータをデコードできない場合に、所定の条件の下、照合データと同一のデータがデコードされたとして処理することができる。即ち、数量カウントモードでは、バーコードが正しく印刷されていない場合でも、データ入力作業を行わずに済む。数量カウント処理の遅延を抑制することができる。
【００１９】
続いて、図２、図３を参照して、数量カウントモードが選択されているときに制御部１０が実行する処理について説明する。作業者は、操作部１８を操作して、バーコード読取装置２を数量カウントモードで動作させることを選択することができる。数量カウントモードが選択されると、まず、制御部１０は、所定の照合データ入力画面を表示部２０に表示させ、作業者に照合データの入力を求める。作業者は、操作部１８を操作して、特定のバーコードに対応するデータ（照合データ）を入力する。制御部１０は、入力された照合データを、メモリ１６に記憶させる。その後、作業者の操作に従って、発光部１２は、読取対象のバーコード（以下、「対象バーコード」と呼ぶ。）に光を照射する。それとともに、受光部１４は、対象バーコードからの反射光を受光する。受光部１４が対象バーコードからの反射光を受光すると、制御部１０は、図２の各処理を開始する。
【００２０】
Ｓ１０では、制御部１０は、対象バーコードからの反射光から、対象バーコードに対応するデータをデコードするデコード処理を行う。具体的に言うと、Ｓ１０では、制御部１０は、まず、対象バーコードからの反射光から、各モジュール（黒バー及び白バー）の幅値を取得する。次いで、制御部１０は、取得された各モジュールの幅値に基づいて、各モジュールの組み合わせが示すキャラクタ列（文字列）を特定する。次いで、Ｓ１２では、制御部１０は、デコード処理が成功したか否か判断する。Ｓ１０のデコード処理の結果、対象バーコードに対応するデータがすべてデコードできた場合、制御部１０は、Ｓ１２でＹＥＳと判断する。
【００２１】
Ｓ１２でＹＥＳの場合、制御部１０は、Ｓ１４からＳ３２までの各処理をスキップし、Ｓ３４に進む。Ｓ３４では、制御部１０は、デコードされたデータが、メモリ１６内の照合データと一致するか否かを判断する。デコード結果が、照合データと一致する場合、制御部１０は、Ｓ３４でＹＥＳと判断し、処理を終了する。この際、制御部１０は、メモリ１６内に記憶されているカウント数の値を１インクリメントする。即ち、制御部１０は、デコード結果が、照合データと一致する場合に、カウントを行う。一方、デコード結果が照合データと一致しない場合、制御部１０は、Ｓ３４でＮＯと判断し、処理をエラー終了する。この場合、制御部１０は、所定のエラー報知処理（例えば、表示部２０にエラーメッセージを表示させる等）を実行する。
【００２２】
Ｓ１０のデコード処理の結果、対象バーコードに対応するデータの少なくとも一部がデコードできなかった場合、制御部１０は、Ｓ１２でＮＯと判断し、Ｓ１４に進む。
【００２３】
Ｓ１４では、制御部１０は、取得された各モジュールの幅値に基づいて、各モジュールの幅値を小さいものから昇順に並べ替える。図３は、各モジュールの幅値を小さいものから昇順に並べ替えた結果を示したグラフである。図３の横軸は、モジュールの数を示す。縦軸は、モジュールの幅値を示す。各幅値は、並べ替えられた後も、バーコードの各モジュールと対応付けられている。
【００２４】
次いで、Ｓ１６では、制御部１０は、異常な幅値を有する１本以上のモジュール（以下、「異常モジュール」と呼ぶ）を特定する。具体的には、Ｓ１６では、まず、制御部１０は、幅値が近似する複数のモジュールを１つの集団とみなし、各モジュールを複数の集団に区分する。図３の例では、各モジュールが、集団３０、３２、３４、４０、４２に区分される。次いで、制御部１０は、複数の集団のそれぞれについて、当該集団に含まれるモジュールの数が所定数以上であるか否かを判断する。当該集団に含まれるモジュールの数が所定数以上であれば、制御部１０は、その集団を正常幅値集団と判定する。正常幅値集団に含まれる各モジュール（以下、「正常モジュール」と呼ぶ）は、正常な範囲の幅値を有する。一方、当該集団に含まれるモジュールの数が所定数より少なければ、制御部１０は、その集団を異常幅値集団と判定する。異常幅値集団に含まれる各モジュールは、正常な範囲外の幅値を有している。制御部１０は、各異常幅値集団に含まれる１本以上のモジュールを、異常モジュールとして特定する。図３の例では、制御部１０は、集団３０、３２、３４を正常幅値集団と判定し、集団４０、４２を異常幅値集団と判定する。制御部１０は、異常幅値集団４０、４２に含まれる各モジュールを異常モジュールとして特定する。
【００２５】
次いで、Ｓ１８では、制御部１０は、Ｓ１６で特定された１本以上の異常モジュールのうちの１本を選択する。
【００２６】
次いで、Ｓ２０では、制御部１０は、Ｓ１８で選択された異常モジュール（以下では「選択済み異常モジュール」と呼ぶ）の幅値を補正可能か否か判断する。具体的には、Ｓ２０では、制御部１０は、選択済み異常モジュールより幅値の小さい正常モジュールを含む正常幅値集団を特定し、その正常幅値集団内の各正常モジュールの平均幅値Ｗ１を算出する。また、制御部１０は、選択済み異常モジュールより幅値の大きい正常モジュールを含む正常幅値集団を特定し、その正常幅値集団内の各正常モジュールの平均幅値Ｗ２を算出する。選択済み異常モジュールの幅値は、Ｗ１より大きく、Ｗ２より小さい。次いで、制御部１０は、Ｗ１を０％、Ｗ２を１００％とした場合に、当該選択済み異常モジュールの幅値が、どれくらいの割合でＷ２に近似するのかを示す値Ｐ１［％］を算出する。
【００２７】
Ｐ１の値が０％より大きく、３０％未満の場合、選択済み異常モジュールの本来の幅値は、Ｗ１の値に近似する可能性が高い。この場合、制御部１０は、Ｓ２０でＹＥＳ（即ち、選択済み異常モジュールの幅値を補正可能）と判断し、Ｓ２２に進む。Ｓ２２では、制御部１０は、選択済み異常モジュールの幅値をＷ１の値に補正する。Ｓ２２を終えると、Ｓ２４に進む。
【００２８】
一方、Ｐ１の値が７０％より大きく、１００％未満の場合、選択済み異常モジュールの本来の幅値は、Ｗ２の値に近似する可能性が高い。この場合にも、制御部１０は、Ｓ２０でＹＥＳと判断し、Ｓ２２に進む。Ｓ２２では、制御部１０は、選択済み異常モジュールの幅値をＷ２の値に補正する。Ｓ２２を終えると、Ｓ２４に進む。
【００２９】
また、Ｐ１の値が３０％以上７０％以下の場合、選択済み異常モジュールの本来の幅値は、Ｗ１とＷ２のいずれにも近似する可能性がある。この場合、制御部１０は、Ｓ２０でＮＯと判断し、Ｓ２２の処理をスキップしてＳ２４に進む。
【００３０】
なお、図３の集団４２に含まれる各異常モジュールのように、選択済み異常モジュールより幅値の大きい正常モジュールを含む正常幅値集団が存在しない場合もある。このように、選択済み異常モジュールより幅値の大きい正常モジュールを含む正常幅値集団と、選択済み異常モジュールより幅値の小さい正常モジュールを含む正常幅値集団とのうち、一方しか存在しない場合がある。このような場合には、Ｓ２０で、制御部１０は、選択済み異常モジュールに最も近似する正常モジュールを含む正常幅値集団を特定し、その正常幅値集団内の各正常モジュールの平均幅値Ｗ３を算出し、選択済み異常モジュールの幅値と、算出された平均幅値Ｗ３との差が所定範囲内であるか否かを判断する。選択済み異常モジュールの幅値と、算出された平均幅値Ｗ３との差が所定範囲以内である場合、制御部１０は、Ｓ２０でＹＥＳと判断し、Ｓ２２に進む。Ｓ２２では、制御部１０は、選択済み異常モジュールの幅値をＷ３の値に補正する。Ｓ２２を終えると、Ｓ２４に進む。一方、選択済み異常モジュールの幅値と、算出された平均幅値Ｗ３との差が所定範囲より大きい場合、制御部１０は、Ｓ２０でＮＯと判断し、Ｓ２２の処理をスキップしてＳ２４に進む。
【００３１】
Ｓ２４では、制御部１０は、Ｓ１６で特定された１本以上の異常モジュールのうちのすべての異常モジュールが選択されたか否かを判断する。Ｓ１６で特定された１本以上の異常モジュールの中に、未選択の異常モジュールが含まれている場合、制御部１０は、Ｓ２４でＮＯと判断し、Ｓ１８に戻る。Ｓ１８では、制御部１０は、１本の未選択の異常モジュールを新たに選択する。制御部１０は、新たに選択された異常モジュールについて、Ｓ２０、Ｓ２２の処理を実行する。一方、Ｓ１６で特定された１本以上の異常モジュールのうちのすべての異常モジュールが選択済みの場合、制御部１０は、Ｓ２４でＹＥＳと判断し、Ｓ２６に進む。
【００３２】
Ｓ２６では、制御部１０は、Ｓ１６で特定された１本以上の異常モジュールの中に、未補正のモジュール（Ｓ２０でＮＯと判断された結果、Ｓ２２の補正が行われなかったもの）が含まれるか否かを判断する。Ｓ１６で特定された１本以上の異常モジュールの中に、未補正のモジュールが含まれていない場合（即ち、Ｓ１６で特定された１本以上の異常モジュールのすべてについてＳ２２の補正が行われた場合）、制御部１０は、Ｓ２６でＮＯと判断し、Ｓ２８、Ｓ３０の処理をスキップして、Ｓ３２に進む。Ｓ３２では、制御部１０は、各正常モジュールの幅値、及び、各補正済みの異常モジュールの幅値に基づいて、バーコードに対応するデータをデコードするデコード処理を再度行う。次いで、Ｓ３４では、制御部１０は、デコード結果と、メモリ１６内の照合データとが一致するか否かを判断する。デコード結果が、メモリ１６内の照合データと一致する場合、制御部１０は、Ｓ３４でＹＥＳと判断し、処理を終了する。この際、制御部１０は、メモリ１６内に記憶されているカウント数の値を１インクリメントする（カウントを行う）。一方、デコード結果が、メモリ１６内の照合データと一致しない場合、制御部１０は、Ｓ３４でＮＯと判断し、処理をエラー終了する。この場合、制御部１０は、所定のエラー報知処理を実行する。
【００３３】
一方、Ｓ１６で特定された１本以上の異常モジュールの中に、未補正のモジュールが含まれている場合、制御部１０は、Ｓ２６でＹＥＳと判断し、Ｓ２８に進む。
【００３４】
Ｓ２８では、まず、制御部１０は、各未補正の異常モジュールの幅値を除いた各モジュールの幅値に基づいて、バーコードに対応するデータをデコードする。即ち、制御部１０は、各正常モジュールの幅値及び各補正済みの異常モジュールの幅値に基づいてデコード処理を行う。さらに、制御部１０は、そのデコード結果と照合データとを比較し、その相違部分が、照合データが示すキャラクタ列のうちの１キャラクタ分（１文字分）であるか否かを判断する。相違部分が１キャラクタ分だけ存在する場合、制御部１０は、Ｓ２８でＹＥＳと判断し、Ｓ３０に進む。一方、相違部分が２キャラクタ分以上存在する場合、制御部１０は、Ｓ２８でＮＯと判断し、処理をエラー終了する。この場合、制御部１０は、所定のエラー報知処理を実行する。
【００３５】
Ｓ３０では、制御部１０は、デコード結果と照合データの相違部分（１キャラクタ分）を、照合データの対応部分に置き換える。
【００３６】
次いで、Ｓ３２では、制御部１０は、Ｓ３０の置き換えを行った上で、バーコードに対応するデータをデコードするデコード処理を再度実行する。次いで、Ｓ３４では、制御部１０は、デコード結果と、メモリ１６内の照合データとが一致するか否かを判断する。上記のＳ３０の置き換えが行われている場合、デコード結果とメモリ１６内の照合データとは必ず一致する。従って、ここでは、制御部１０はＳ３４でＹＥＳと判断し、処理を終了する。この際、制御部１０は、メモリ１６内に記憶されているカウント数の値を１インクリメントする（カウントを行う）。
【００３７】
数量カウント処理では、作業者は、上記図２の処理を、多量の物品のそれぞれに付されたバーコードについて行う。数量カウント処理中は、メモリ１６内に記憶されているカウント数が実際にカウントした物品の数量を示す。制御部１０は、メモリ１６内のカウント数を表示部２０に表示させることができる。作業者は、表示部２０に表示されたカウント数を見ることで、実際にカウントした物品数を知ることができる。従って、例えば、作業者は、多量の物品のすべてのバーコードについて上記図２の処理を行った後で、カウント数（実際にカウントした物品数）と発注した物品数とを比較し、発注した物品数と実際の物品数とが一致するか否かを確認することができる。
【００３８】
以上、本実施例のバーコード読取装置２について説明した。本実施例では、数量カウントモードで動作する場合、バーコード読取装置２は、対象バーコードに対応するデータをデコードできない場合に（図２のＳ１２でＮＯ）、所定の条件の下で、対象バーコードのデコード結果を作業者が予め入力した照合データに置き換え、照合データと同一のデータがデコードされたとして処理することができる（図２のＳ３０参照）。即ち、本実施例では、作業者が予め特定のバーコードに対応する照合データを入力しておくことにより、例えば、対象バーコードが正しく印刷されておらず、対象バーコードに対応するデータをデコードできない場合は、照合データと同一のデータがデコードされたとして処理することができる。これによって、作業者によるデータ入力作業を省略することができる。従って、バーコード読取装置２を数量カウントモードで動作させて、数量カウント処理を行えば、バーコードが正しく印刷されていない場合であっても、数量カウント処理の進行の遅延を抑制することができる。
【００３９】
本実施例では、図２のＳ２８において、バーコード読取装置２は、各未補正の異常モジュールの幅値を除いた各モジュールの幅値に基づいて、バーコードに対応するデータをデコードする。即ち、バーコード読取装置２は、各正常モジュールの幅値及び各補正済みの異常モジュールの幅値に基づいてデコード処理を行う。さらに、バーコード読取装置２は、そのデコード結果と照合データとを比較し、デコード結果と照合データの相違部分が、照合データが示すキャラクタ列のうちの１キャラクタ分であるか否かを判断する。相違部分が１キャラクタ分だけ存在する場合、制御部１０は、その相違部分（１キャラクタ分）を、照合データの対応部分に置き換える。一般に、バーコードに対応するデータと照合データとが部分的に一致する場合は、両者が一致しない場合に比べて、バーコードに対応するデータと照合データとが同一である可能性が高い。従って、本実施例では、バーコードに対応するデータと照合データとが同一である可能性が比較的高い場合に、受光部で受光した反射光から照合データと同一のデータがデコードされたとして処理される。数量カウント処理が誤って行われることを抑制することができる。
【００４０】
本実施例では、図２のＳ３４でＮＯの場合のように、バーコード読取装置２は、デコード結果と照合データとが一致しない場合、処理をエラー終了するとともに、所定のエラー報知処理を実行する。例えば、数量カウント処理を行う対象である複数の物品の中に、照合データと全く異なるデータに対応するバーコードが付された物品が混入していると、バーコードから正しくデータがデコードできても、バーコードからデコードされたデータと照合データとが一致しない場合がある。本実施例のバーコード読取装置２は、メモリ１６に照合データが記憶されており、かつ、受光部１４で受光した反射光からデコードされたデータと照合データとが一致しない場合に、エラー報知処理を行うことができる。従って、数量カウント処理を行う対象である複数の物品の中に、照合データと全く異なるデータに対応するバーコードが付された物品が混入している場合に、エラー報知処理を行うことによって、作業者は、エラーが生じたことを知ることができる。その結果、数量カウント処理が誤って行われることを抑制することができる。
【００４１】
また、本実施例のバーコード読取装置２では、図２のＳ２２に示すように、所定の条件下で（Ｓ２０でＹＥＳの場合）、異常モジュールの幅値を本来の幅値であった可能性が高い値に補正する。そのため、本実施例のバーコード読取装置２では、バーコードの誤読が行われることを抑制することもできる。
【００４２】
本実施例の構成と請求項の記載との対応関係を記載しておく。図２のＳ１２でＮＯの場合が、「第１の条件が少なくとも成立した場合」の一例である。図２のＳ２８でＹＥＳの場合において、バーコードのデコード結果が示すキャラクタ列と照合データが示すキャラクタ列とを比較したときの一致部分が「特定部分」の一例である。図２のＳ３４でＮＯの場合が、「第２の条件が成立する場合」の一例である。
【００４３】
（第２実施例）
第２実施例について、第１実施例と異なる点を中心に説明する。本実施例のバーコード読取装置２も、その基本構成は第１実施例のバーコード読取装置２（図１参照）と共通する。本実施例では、数量カウントモードで動作する場合における制御部１０の処理の内容が、第１実施例とは異なる。
【００４４】
図４を参照して、本実施例のバーコード読取装置２が数量カウントモードで動作する場合における、制御部１０が実行する処理について説明する。本実施例でも、作業者によって数量カウントモードが選択されると、制御部１０は、表示部２０に、所定の照合データ入力画面を表示し、作業者に照合データの入力を求める。作業者は、操作部１８を操作して、特定のバーコードに対応する照合データを入力する。制御部１０は、入力された照合データを、メモリ１６に記憶させる。その後、作業者の操作に従って、発光部１２は、対象バーコードに光を照射する。受光部１４は、対象バーコードからの反射光を受光する。受光部１４が対象バーコードからの反射光を受光すると、制御部１０は、図４の各処理を開始する。
【００４５】
Ｓ５０では、制御部１０は、対象バーコードからの反射光から、対象バーコードに対応するデータをデコードするデコード処理を行う。次いで、Ｓ５２では、制御部１０は、デコード処理が成功したか否か判断する。Ｓ５０、Ｓ５２の各処理は、図２のＳ１０、Ｓ１２の各処理と同様である。
【００４６】
Ｓ５２でＹＥＳの場合、制御部１０は、Ｓ５４からＳ５８までの各処理をスキップし、Ｓ６０に進む。Ｓ６０では、制御部１０は、デコードされたデータが、メモリ１６内の照合データと一致するか否かを判断する。デコードされたデータが、メモリ１６内の照合データと一致する場合、制御部１０は、Ｓ６０でＹＥＳと判断し、処理を終了する。この際、制御部１０は、メモリ１６内に記憶されているカウント数の値を１インクリメントする（カウントを行う）。一方、デコードされたデータが、メモリ１６内の照合データと一致しない場合、制御部１０は、Ｓ６０でＮＯと判断し、処理をエラー終了する。この場合、制御部１０は、所定のエラー報知処理を実行する。
【００４７】
Ｓ５２でＮＯの場合、Ｓ５４に進む。Ｓ５４では、制御部１０は、Ｓ５０のデコード処理の結果と照合データとを比較し、デコード処理の結果と照合データの相違部分が、照合データが示すキャラクタ列のうちの４キャラクタ分（４文字分）以下であるか否かを判断する。相違部分が４キャラクタ分以下である場合、制御部１０は、Ｓ５４でＹＥＳと判断し、Ｓ５６に進む。一方、相違部分が５キャラクタ分（５文字分）以上である場合、制御部１０は、Ｓ５４でＮＯと判断し、処理をエラー終了する。この場合、制御部１０は、所定のエラー報知処理を実行する。
【００４８】
Ｓ５６では、制御部１０は、デコード処理の結果と照合データの相違部分（４キャラクタ分以下）を、照合データ内の対応部分に置き換える。
【００４９】
次いで、Ｓ５８では、制御部１０は、Ｓ５６の置き換えを行った上で、デコード処理を再度実行する。次いで、Ｓ６０では、制御部１０は、デコード結果と、メモリ１６内の照合データとが一致するか否かを判断する。上記のＳ５６の置き換えが行われている場合、デコード結果とメモリ１６内の照合データとが必ず一致する。従って、ここでは、制御部１０はＳ６０でＹＥＳと判断し、処理を終了する。この際、制御部１０は、メモリ１６内に記憶されているカウント数の値を１インクリメントする（カウントを行う）。
【００５０】
以上、本実施例のバーコード読取装置２について説明した。本実施例のバーコード読取装置２も、第１実施例のバーコード読取装置２とほぼ同様の作用効果を発揮する。
【００５１】
さらに、本実施例のバーコード読取装置２では、デコード処理が失敗した場合（図４のＳ５２でＮＯ）に、デコード結果と照合データとの相違部分が４キャラクタ分以下であれば（Ｓ５４）、その相違部分を、照合データの対応部分に置き換える（Ｓ５６）。本実施例では、異常モジュールの幅値の補正等の処理を行わないため、数量カウント処理をより迅速に行うことができる。
【００５２】
また、本実施例でも、デコード処理の結果と照合データの相違部分が４キャラクタ分以下の場合に限り、その相違部分を、照合データ内の対応部分に置き換えている。即ち、本実施例でも、バーコードに対応するデータと照合データとが同一である可能性が比較的高い場合に、受光部で受光した反射光から照合データと同一のデータがデコードされたとして処理している。数量カウント処理が誤って行われることを抑制することができる。
【００５３】
以上、本発明の実施例について詳細に説明したが、これらは例示に過ぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。例えば、以下の変形例を含んでもよい。
【００５４】
（変形例１）  上記の各実施例では、制御部１０は、デコード結果と照合データとの相違部分のみを、照合データの対応部分に置き換えている（図２のＳ３０、図４のＳ５６参照）。これに限られず、制御部１０は、デコード結果全体と、照合データ全体とを置き換えてもよい。
【００５５】
（変形例２）  第１実施例では、制御部１０は、デコード結果と照合データとの相違部分が１キャラクタ分である場合に、その相違部分を、照合データの対応部分に置き換えている（図２のＳ２８でＹＥＳ、Ｓ３０）。また、第２実施例では、制御部１０は、デコード結果と照合データとの相違部分が４キャラクタ分以下である場合に、その相違部分を、照合データの対応部分に置き換えている（図４のＳ５４でＹＥＳ、Ｓ５６）。制御部１０が、デコード処理の結果と照合データの相違部分と、照合データの対応部分との置き換えを行うか否かを判断するための条件は、上記の各キャラクタ数に限られず、任意とすることができる。従って、例えば、制御部１０は、デコード結果と、照合データとが全キャラクタ分相違する場合であっても、照合データとの置き換えを行うようにしてもよい。
【００５６】
（変形例３）  また、制御部１０は、デコード結果と照合データとの一致部分があるか否かを判断することなく、デコード処理が失敗する場合に、無条件で、デコード結果と照合データとを置き換えるようにしてもよい。この場合、数量カウント処理をより迅速に行うことができる。
【００５７】
本明細書または図面に説明した技術要素は、単独であるいは各種の組み合わせによって技術的有用性を発揮するものであり、出願時請求項記載の組み合わせに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【符号の説明】
【００５８】
２：バーコード読取装置
１０：制御部
１２：発光部
１４：受光部
１６：メモリ
１８：操作部
２０：表示部
３０、３２、３４：正常幅値集団
４０、４２：異常幅値集団
【図１】
2014164520.tif 000003
【図２】
2014164520.tif 000004
【図３】
2014164520.tif 000005
【図４】
2014164520.tif 000006