(57)【特許請求の範囲】
【請求項１】
ユーザ操作に応じて、隣接配置された複数のデータコードのうちどの位置にあるデータコードをデコード対象とするのかを指示すると共に、データコードを読み取る読取手段に読取動作を開始させる指示手段と、
前記読取手段によって複数のデータコードが同時に読み取られたか否かを判別する判別手段と、
この判別手段により複数のデータコードが読み取られたことが判別された際に、前記読取手段で読み取られたデータコード情報から、前記指示手段により指示された位置にあるデータコード以外のデータコード情報を削除する削除手段と、
前記削除手段により削除されずに残ったデータコード情報をデコードするデコード手段と、
を具備したことを特徴とするデータコード読取装置。
【請求項２】
前記指示手段は隣接配置された２つのデータコードのうち左側に位置するデータコードをデコード対象とすることを指示する左トリガキーと、隣接配置された２つのデータコードのうち右側に位置するデータコードをデコード対象とすることを指示する右トリガキーを有する構成としたことを特徴とする請求項１記載のデータコード読取装置。
【請求項３】
コンピュータに対して、
ユーザ操作に応じて、隣接配置された複数のデータコードのうちどの位置にあるデータコードをデコード対象とするのかを指示すると共に、データコードを読み取る読取手段に読取動作を開始させる機能と、
前記読取手段によって複数のデータコードが同時に読み取られたか否かを判別する機能と、
複数のデータコードが読み取られたことが判別された際に、前記読取手段で読み取られたデータコード情報から、前記指示された位置にあるデータコード以外のデータコード情報を削除する機能と、
前記削除により削除されずに残ったデータコード情報をデコードする機能と、
を実現させるためのプログラムを記録した記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、バーコード等のようにデータをコード化したデータコードを読み取るデータコード読取装置およびそのプログラム記録媒体に関する。
【０００２】
【従来の技術】
従来、バーコード上を走査ミラーを介してレーザ照射すると共に、その反射光を受光してバーコード情報を読み取るハンディタイプのレーザスキャナにおいては４０cm程度から数ｍ先のバーコードを読み取ることができるが、レーザビームは予め固定的に決められている走査角度（走査幅）で照射されるため、バーコードとの距離が大きくなればなるほど照射範囲が広ろがるようになる。
したがって、例えば、棚札などを走査してバーコードを読み取る場合に、隣りの棚札までにもレーザ照射されることがあり、また、複数個の商品をまとめて収納する集合箱には、各商品のバーコード札が貼付されているが、このような場合には２以上のバーコードがレーザ照射されることがある。
【０００３】
【発明が解決しようとする課題】
このように複数のバーコードをレーザ照射した場合に、それらを同時に読み取ってデコードすることもできるが、通常は認識不能となるケースが多く、また、オペレータが意図しないバーコードまでも読み取られてデコードされることは商品在庫管理等を行う上で大きな支障となってしまう。
この発明の課題は、複数のデータコードが同時に読み取られた場合でも、オペレータが意図するデータコードのみを処理できるようにすることである。
【０００４】
【課題を解決するための手段】
請求項１記載の発明は、ユーザ操作に応じて、隣接配置された複数のデータコードのうちどの位置にあるデータコードをデコード対象とするのかを指示すると共に、データコードを読み取る読取手段に読取動作を開始させる指示手段と、前記読取手段によって複数のデータコードが同時に読み取られたか否かを判別する判別手段と、この判別手段により複数のデータコードが読み取られたことが判別された際に、前記読取手段で読み取られたデータコード情報から、前記指示手段により指示された位置にあるデータコード以外のデータコード情報を削除する削除手段と、前記削除手段により削除されずに残ったデータコード情報をデコードするデコード手段と、を具備したことを特徴とする。
【０００６】
【発明の実施の形態】
以下、図１〜図９を参照してこの発明の一実施形態を説明する。
図１はレーザスキャナ付きハンディターミナルの外観を概略的に示した図であり、また、図２はレーザスキャナの構成を概略的に示した図である。装置本体１の先頭部にはレーザスキャナの開口であるレーザ照射部２が設けられ、また装置本体１の上面には液晶表示画面２およびキーボード４が設けられている。レーザスキャナは、図２に示すように構成されている。すなわち、レーザ発信器ａから照射されたレーザビームは反射ミラーｂで反射されると共に走査ミラー（バイブレーションミラー）ｃの一定振れ角内で放射されてバーコード上をレーザ照射する。この場合、バーコード上をレーザ照射する走査方向は、バイブレーションミラーによって左から右方向あるいは右から左方向のように左右交互に反転する。また、レーザ照射部２と読み取り対象（バーコード）との距離が大きくなればなるほど、レーザ照射範囲が左右方向に広がるため複数のバーコードが左右方向に隣接している場合には、複数のバーコードにレーザ照射されることがある。このようにしてバーコード上に照射されたレーザビームの反射光は、受光部ｅに送られて光電変換されたのち、バーコード情報として入力処理される。一方、キーボード４にはテンキーや各種のファンクションキーの他に、この実施形態特有の右トリガーキーＲＴ、左トリガキーＬＴが設けられている。右トリガーキーＲＴ、左トリガキーＬＴはそれぞれレーザ照射の開始を指示するトリガキーであるが、左右方向に隣接する２つのバーコードが同時に読み取られる可能性が高い場合に、右トリガーキーＲＴは右側のバーコードを有効とし、左トリガキーＬＴは左側のバーコードを有効とすることを指示するキーとしても機能する。
【０００７】
図３はレーザスキャナ付きハンディターミナルの全体構成を示したブロック図である。
ＣＰＵ１１はＲＡＭ１２内にロードされている各種プログラムにしたがってこのレーザスキャナ付きハンディターミナルの全体動作を制御する中央演算処理装置である。記憶装置１３はオペレーティングシステムや各種アプリケーションプログラム、データファイル、文字フォントデータ等が予め格納されている記憶媒体１４やその駆動系を有している。この記憶媒体１４は固定的に設けたもの、もしくは着脱自在に装着可能なものであり、フロッピーディスク、ハードディスク、光ディスク、ＲＡＭカード等の磁気的・光学的記憶媒体、半導体メモリによって構成されている。また、記憶媒体１４内のプログラムやデータは、必要に応じてＣＰＵ１１の制御により、ＲＡＭ１２にロードされる。更に、ＣＰＵ１１は通信回線等を介して他の機器側から送信されて来たプログラム、データを受信して記憶媒体１４に格納したり、他の機器側に設けられている記憶媒体に格納されているプログラム、データを通信回線等を介して使用することもできる。
【０００８】
そして、ＣＰＵ１１にはその入出力周辺デバイスである入力装置１５、表示装置１６、レーザユニット１７、レーザコントローラ１８がバスラインを介して接続されており、入出力プログラムにしたがってＣＰＵ１１はそれらの動作を制御する。入力装置５はキーボード４を備え、操作キーに対応するキーコードはＣＰＵ１１に取り込まれる。表示装置１６は液晶表示画面３を備え、バーコード情報をデコードしたデコード結果や入力装置１５から入力されたデータを表示出力する。レーザユニット１７は図２で示したレーザ発信器ａ、ミラーｂ、バイブレーションミラーｃ、受光部ｅの他、バイブレーションミラーの走査タイミングを検出する検出部等を有し、レーザコントローラ１８からのレーザ照射ＯＮ／ＯＦＦ信号ＬＳＲに応答してレーザ照射が開始されると共に、レーザ照射の反射光に基づいて白黒イメージデータを生成してバーコードイメージ信号ＩＭＧとして出力し、レーザコントローラ１８に与える。このとき、バイブレーションミラーの走査方向が左から右方向か右から左方向かをバイブレーションミラーの特定位置を検出することによって１スキャン毎に反転するレーザ走査タイミング信号ＴＭＧを出力し、レーザコントローラ１８に与える。レーザコントローラ１８は右トリガーキーＲＴ、左トリガキーＬＴの操作に伴ってレーザ照射ＯＮ／ＯＦＦ信号ＬＳＲを出力したり、レーザユニット１７からのレーザ照射タイミング信号ＴＭＧにしたがって走査方向を判別すると共に１スキャン完了を判別し、また、バーコードイメージ信号ＩＭＧが変化する毎にバー幅を時間データとして計測し、この時間列のデータをバーコード情報としてＣＰＵ１１に与える。
【０００９】
次に、レーザスキャナ付きハンディターミナルの動作を図４に示すフローチャートにしたがって説明する。ここで、このフローチャートに記述されている各機能を実現するためのプログラムは、ＣＰＵ１１が読み取り可能なプログラムコードの形態で記憶媒体１４に記憶されており、その内容がＲＡＭ１２内にロードされている。
いま、電源ＯＮ後、右トリガキーＲＴまたは左トリガキーＬＴの操作に伴ってレーザコントローラ１８からはレーザ照射ＯＮ／ＯＦＦ信号ＬＳＲが出力され、これに応答してレーザユニット１７はスキャニング動作を開始する。ここで、在庫棚や陳列棚位置にある棚札をスキャニングする場合、棚札とレーザスキャナとの距離にもよるが、左右に隣接する２つのバーコードが１スキャンで同時に読み取られる可能性が高いような場合には、意図するバーコードのみを有効とするために、右トリガーキーＲＴまたは左トリガキーＬＴのいずれかを操作する。ここで、図５に示すように左側に位置するバーコードが目的とするバーコードである場合には、左トリガキーＬＴを押下し、また図６に示すように右側に位置するバーコードが目的とするバーコードであれば右トリガーキーＲＴを押下する。このように左トリガキーＬＴ、右トリガーキーＲＴのいずれか一方が押下されると、レーザユニット１７はレーザ照射ＯＮ／ＯＦＦ信号ＬＳＲに応答してスキャニング動作を開始し、レーザ走査タイミング信号ＴＭＧをレーザコントローラ１８に与える。すると、レーザコントローラ１８はこのバーコードイメージ信号ＩＭＧが変化する毎にバー幅の時間をカウントし、１スキャン分のカウント値をバーコード情報として生成し、１スキャン完了通知と共にＣＰＵ１１に与える。
【００１０】
図４はレーザコントローラ１８から１スキャン完了毎に転送されて来るバーコード情報をデコードする際の動作を示したフローチャートである。ここで、図７はバーコードを左から右方向へスキャンした場合にレーザコントローラ１８から転送されて来るバーコード情報のデータ構造を示したもので、その先頭は走査方向を示した識別子であり、左から右方向へのスキャン（右スキャン）の場合には識別子「０」となり、右から左方向へのスキャン（左スキャン）の場合には識別子「１」となる。以降、制御バーやデータバーを示すバー幅時間データｔ１、ｔ２、ｔ３、……ｔ１７となる。なお、最初のバー幅時間データｔ１は白細バーに相当する時間データであるものとする。また、図８は左右に隣接する２つのバーコードを１スキャンで同時に読み取った場合のバーコード情報のデータ構造を示し、この場合においてもその先頭は走査方向を示した識別子となり、以降、制御バーやデータバーを示すバー幅時間データｔ１、ｔ２、ｔ３、……ｔ１３２、ｔ１３３、ｔ１３４、ｔ１３５となる。
【００１１】
先ず、ＣＰＵ１１は図７、図８に示すようなデータ構造のバーコード情報を受け取ると、その先頭部分と末尾部分において、隣接する２つの黒バーを抽出し、それらの時間データを比較する（ステップＳ１）。この場合、上述したように最初のバーはライトマージンやレフトマージンに相当する白バーであるので、それに続くバーは黒バーで、その時間データｔ２、ｔ４は黒バー幅をカウントした値となり、また最終のバーから１つ前および３つ前のバーも黒バーで、その時間データｔｎ−１、ｔｎ−３は黒バー幅をカウントした値となる。このようにバーコード情報の先頭部分と末尾部分において、隣接する２つの黒バー幅のカウント値を比較した結果、その最小値を黒細バーとして決定する（ステップＳ２）。ここで、バーコードの種類にもよるが、黒細バー幅と白細バー幅とは同等か近似した値となるため、次のステップＳ３では黒細バー幅から白細バー幅の適正値を求める。そして、白細バー幅から白太バーの適正幅を求める（ステップＳ４）。この場合においても白細バー幅と白太バー幅とはバーコードの種類に応じて所定の関係にあるため、それを考慮して白太バー幅の適正値を求める。
なお、上述のようにバーコード情報を解析し、黒細バー幅、白細バー幅を求めたのち、この白細バー幅から白太バー幅を求めるようにしたのは、バーコードの種類や印刷ムラ等によって白太バー幅が一律ではないので、１スキャン毎に適正白太バー幅を算出するようにしている。
【００１２】
このようにして適正白太バー幅を求めたら、１スキャン分のバーコード情報の中の先頭、末尾を除く部分に適正白太バー幅を越える空白が存在するかの判別を行う（ステップＳ５）。この場合、２つのバーコードがレーザ照射され、意図しないバーコードの少なくとも一部までも読み取ってしまうと、１つ目のバーコードと２つ目のバーコードとの間には、白太バー幅を越える空白が存在するようになるため、ステップＳ５では１スキャンで２以上のバーコードを同時に読み取ったか否かの判別を行う。ここで、図７に示すようなバーコード情報であれば、１つ分のバーコードを読み取った場合であるから、その先頭、末尾を除く部分には白太バー幅を越える空白は存在しないため、ステップＳ１１に進み、このバーコード情報をデコードし、それが適正バーコードであればそのデコード結果を表示出力する（ステップＳ１２）。
【００１３】
一方、図８に示すように１スキャンの中で２つのバーコードを読み取ってしまったことがステップＳ５で検出されると、ステップＳ６に進み、右トリガキーＲＴ、左トリガキーＬＴのいずれが押下されているかを調べ、左トリガキーＬＴが押下されているときには、バーコード情報の先頭に組み込まれている走査方向を示す識別子を参照し、左スキャンか右スキャンかを判別する（ステップＳ７）。いま、左トリガキーＬＴが押下されていて右から左方向への左スキャンの場合には、適正白太バー幅を越える空白の前側のデータを削除する（ステップＳ８）。図９（Ａ）はこの場合におけるデータの削除部分を示したもので、図８で示したバーコード情報において、左トリガキー押下で左スキャンの場合には前半部分のデータが削除される。また、左トリガキーＬＴが押下されて左から右方向への右スキャンの場合には、ステップＳ１０に進み、適正白バー幅を越える空白の後側のデータを削除する。図９（Ｂ）はこの場合におけるデータの削除部分を示したもので、図８で示したバーコード情報において、左トリガキー押下で右スキャンの場合には後半部分のデータが削除される。他方、右トリガキーＲＴが押下されていることがステップＳ６で検出されると、ステップＳ９に進み、バーコード情報内の識別子を参照して走査方向を判別し、その結果、右から左方向への左スキャンの場合には適正白太バー幅を越える空白の後側のデータを削除し（ステップＳ１０）、左スキャンの場合にはステップＳ８に進み、適正白太バー幅を越える空白の前側のデータを削除する。図９（Ｃ）、（Ｄ）は図８のバーコード情報からデータが削除される部分を示している。このようにして右トリガキーＲＴ、左トリガキーＬＴの押下と左／右スキャンに応じてバーコード情報の一部が削除されるため、残りのバーコード情報のみが有効データとなってデコードされ（ステップＳ１１）、それが適正バーコードであれば、そのデコード結果が表示出力される（ステップＳ１２）。
【００１４】
以上のようにこのレーザスキャナ付きハンディターミナルにおいては、バーコードをレーザ照射によって読み取るレーザスキャナから読み取り対象までの距離やバーコードの接近状態等を考慮し、左右方向にある２つのバーコードが１スキャンで同時に読み取られる可能性が高いような場合には、右トリガキーＲＴ、左トリガキーＬＴのいずれかを押下してスキャニング動作の開始を指示する他に左側バーコード、右側バーコードのいずれを読み取り対象とするかを指示しておく。この状態においてスキャニング動作が行われ、それによって得られた１スキャン分のバーコード情報を解析し、その結果、１スキャンの中に２つのバーコードが含まれていることが判別された場合には右トリガキーＲＴ、左トリガキーＬＴのいずれが押下されているかに応じてその一方のバーコードのみを有効データとしてデコード処理することができる。つまり、右トリガキーＲＴの押下で左側バーコードが無視されて右側バーコードのみが有効となり、逆に左トリガキーＬＴの押下で右側バーコードが無視されて左側バーコードのみが有効となるため、意図する目的バーコードのみを選択的に処理することが可能となる。また、レーザスキャナはバーコード上をバイブレーション方式の走査ミラーによって走査方向が左右交互に反転するレーザ走査型のバーコードリーダであり、走査方向が左スキャンか右スキャンか右トリガキーＲＴ、左トリガキーＬＴのいずれが押下されたかに応じて有効データを決定することができるので、走査方向が左右交互に反転するものであっても目的とするバーコードのみを処理することが可能となる。更に１スキャン分のバーコード情報を解析し、その結果、１スキャン中に２つのバーコードが含まれているか否かを判別する際に、白太バー幅を越える空白が含まれているか否かに基づいて判別するようにしたから、その判別を確実に行うことができ、有効データの決定も確実なものとなる。この場合、バーコード情報の各バー幅を解析することによって白太バー幅を決定するようにしたから、バーコードの種類や印刷ムラ等に影響されず、白太バー幅を越える空白サイズを特定することが可能となる。
【００１５】
なお、上述した一実施形態においては、右トリガキーＲＴ、左トリガキーＬＴを設けて左右いずれかのバーコードのみを有効としたが、３種以上のトリガキーを設けてもよい。また、バーコードを読み取るバーコードスキャナに適用したが、カルラコード等の２次元コードを読み取るＣＣＤスキャナであってもよい。
【００１６】
【発明の効果】
この発明によれば、ユーザ操作に応じて、隣接配置された複数のデータコードのうちどの位置にあるデータコードをデコード対象とするのかを指示して読取動作を開始させるので、複数のデータコードが同時に読み取られた場合でも、ユーザがデコード対象として指示したデータコードのみをデコードすることができ、ユーザが意図するデータコードのデコード結果をユーザに即座に知らせることができる。
【図面の簡単な説明】
【図１】レーザスキャナ付きハンディターミナルの外観を概略的に示した図。
【図２】レーザスキャナの構成を概略的に示した図。
【図３】レーザスキャナ付きハンディターミナルの全体構成を示したブロック図。
【図４】１スキャン完了毎に読み取られたバーコード情報をデコードする際の動作を示したフローチャート。
【図５】２つのバーコードが左右に近接している場合に、左トリガキーＬＴの押下で左側のバーコードが有効となることを示した図。
【図６】２つのバーコードが左右に近接している場合に、右トリガキーＲＴの押下で右側のバーコードが有効となることを示した図。
【図７】１つのバーコードを左から右方向へスキャンすることによって得られたバーコード情報のデータ構造を示した図。
【図８】２つのバーコードを左から右方向へスキャンすることによって得られたバーコード情報のデータ構造を示した図。
【図９】（Ａ）は左スキャンで左トリガキーＬＴが押下されているときに削除されるデータ、（Ｂ）は左スキャンで右トリガキーＲＴが押下されているときに削除されるデータ、（Ｃ）は右スキャンで左トリガキーＬＴが押下されているときに削除されるデータ、（Ｄ）は右スキャンで右トリガキーＲＴが押下されているときに削除されるデータを示した図。
【符号の説明】
１１  ＣＰＵ
１２  ＲＡＭ
１３  記憶装置
１４  記憶媒体
１７  レーザユニット
１８  レーザコントローラ
ＲＴ  右トリガキー
ＬＴ  左トリガキー
【図１】
0003835003.tif 000002
【図２】
0003835003.tif 000003
【図３】
0003835003.tif 000004
【図４】
0003835003.tif 000005
【図５】
0003835003.tif 000006
【図６】
0003835003.tif 000007
【図７】
0003835003.tif 000008
【図８】
0003835003.tif 000009
【図９】
0003835003.tif 000010