説明

バーコードリーダおよびそのスタートマージン検出方法

【課題】 スタートマージンに汚れなどのあるバーコードシンボルを読みとることのできるバーコードリーダおよびそのスタートマージン検出方法を提供する。
【解決手段】 バーコードシンボル200の光学的に読み取られた内容を電気信号に変換して出力する受光部101と、受光部101の電気信号の出力内容に基づいてスタートマージンの検出およびバーコードの解読を行ってバーコードが示す信号を出力し、スタートマージンを検出できなかった場合もしくはバーコードの解読ができなかった場合には解読不可信号を出力するデコード部111と、スタートマージンの検出とバーコードの解読が行われる領域を部分的にキャンセルするキャンセル信号を解読不可信号が入力される毎にキャンセルする領域が長くなるように出力するキャンセル信号発生部112とを備えるバーコードリーダおよびそのスタートマージン検出方法である。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、バーコードリーダに係り、特にバーコードリーダのスタートマージン検出方法に関する。
【背景技術】
【0002】
従来のバーコードリーダは、図5に示すような構成となっている。
【0003】
図5を参照すると、バーコードリーダ500は、読み取ろうとするバーコードからの反射光を受光して受光した光の強さに対応した電気信号を出力する受光部501と、受光部501から出力された電気信号を増幅する増幅部502と、増幅部502で増幅された電気信号を変換してバーコードに対応する二値信号に変換する二値化部503と、二値化された信号を解読して解読結果を出力するデコード部511とで構成される。
【0004】
通常ノイズなどを無視できるときは、受光部501から出力された電気信号は図6(a)に示すようなアナログ小信号であり、データ部分に対応したバーコードBD部分の左右にマージンMGNがあり、このマージンMGNは一般的にバーコードBDの最も幅の狭いバーの約10倍程度の幅を有している。
【0005】
この左右のマージンMGNのうち、バーコード部分の左方にあるマージンMGNを一般的にバーコードのスタートマージンと呼び、バーコード部分の右方にあるマージンMGNを一般的にバーコードのエンドマージンと呼んでいる。
【0006】
この受光部501から出力されたアナログの電気信号は、増幅部502で電力増幅されて、図6(b)に示すようなアナログの電気信号となる。この増幅部502で増幅されたアナログの電気信号を二値化部503で二値化すると図6(c)に示すような二値化信号が得られ、デコード部511で、二値化信号からスタートマージンSMGN、バーコードBDを解読し、バーコードを読み取ることができる。
【0007】
このような読み取りを行う際に、読み取らせるバーコードラベルのバーの大きさおよび読み取り位置に応じて調整するマージン検出信号の発生タイミング設定を逐一計算で求めなくても設定できるようにしたバーコード読取装置がある(特許文献1参照)。
【特許文献1】特開平5−35902号公報
【発明の開示】
【発明が解決しようとする課題】
【0008】
しかしながら、バーコードから得られるバーコードシンボル信号は、バーコードリーダ500の各構成部において図6(a)〜図6(c)に示すようなノイズのない信号であることばかりではなく、バーコードシンボル信号のスタートマージンSMGN部分に図7(a)〜(c)に示すような不要信号SPRSが含まれる場合がある。
【0009】
これはバーコードシンボルラベルが印刷されている紙のキズ、汚れ、表面処理の不備などの要因でスタートマージンSMGN部分にキズ、汚れSTNが生じており、図8に示すようなバーコードになっているもので、バーコードリーダ500でこのキズ、汚れSTNが検出されて不要信号SPRSとなる。
【0010】
このようにスタートマージンSMGN部分にキズ、汚れSTNがある場合に、受光部501から出力された電気信号は、図7(a)に示すようなスタートマージンSMGN部分に不要信号SPRSが含まれたアナログ小信号である。
【0011】
この受光部501から出力された電気信号は、増幅部502で電力増幅されて、図7(b)に示すように不要信号SPRSも増幅されたアナログの電気信号となる。この増幅部502で増幅された不要信号SPRSを含む電気信号を二値化部503で二値化すると図7(c)に示すような二値化信号が得られ、デコード部511でこの二値化信号のスタートマージンSMGNを検出しようとしても、スタートマージンSMGN部分にある不要信号SPRSのためスタートマージンSMGNが検出できず、かつ不要信号SPRSをバーコードと認識してしまい本来のバーパターンとは一致しなくなり、バーコードの1組目のコードを解読できずデコードエラーと判断され、バーコードを読み取ることができない。
【0012】
このように、スタートマージンSMGN部分にキズ、汚れSTNなどがあることによりスタートマージン不足およびバーと誤認識し、デコードエラーと判断され読み取りすることができないという問題があった。
【0013】
そこで本発明の目的は、バーコードのスタートマージンに汚れがある場合でも読み取ることのできるバーコードリーダを提供することである。
【課題を解決するための手段】
【0014】
上記目的を達成するために、本発明のバーコードリーダの第1の発明は、スタートマージンおよび該スタートマージン部分に続き何組かのバーで形成されたバーコードからなるバーコードシンボルを光学的に読み取って、前記バーコードが示すデータを出力するバーコードリーダであって、
前記バーコードシンボルの光学的に読み取られた内容を電気信号に変換して出力する受光部と、
周期的に入力される前記受光部の前記電気信号の出力内容に基づいて前記スタートマージンの検出および前記バーコードの解読を行って、前記スタートマージンを検出できなかった場合もしくは前記バーコードの解読ができなかった場合にはその旨を示す解読不可信号を出力するデコード部と、
前記電気信号のうちの、前記デコード部において前記スタートマージンの検出と前記バーコードの解読が行われる領域を部分的にキャンセルするキャンセル信号を、前記解読不可信号が入力される毎にキャンセルする領域が長くなるように出力するキャンセル信号発生部と、
を備えるバーコードリーダである。
【0015】
第2の発明は、第1の発明に記載のバーコードリーダにおいて、
前記受光部が、前記受光部の光学的な読み取りを開始させるスタートパルスと、前記光学的な読み取りを終了させるストップパルスとからなる駆動信号に基づいて読み取りを実施するものである。
【0016】
第3の発明は、第1の発明に記載のバーコードリーダにおいて、
前記キャンセル信号は、前記スタートパルスをトリガとして、前記キャンセルする領域が形成されるものである。
【0017】
第4の発明は、第1または3の発明に記載のバーコードリーダにおいて、
前記キャンセル信号発生部は、前記キャンセル部分が所定パルス幅を有するパルス信号で形成される前記キャンセル信号を出力するものである。
【0018】
第5の発明は、スタートマージンおよび該スタートマージン部分に続き何組かのバーで形成されたバーコードからなるバーコードシンボルを光学的に読み取って、前記バーコードが示すデータを出力するバーコードリーダのスタートマージン検出方法であって、
前記バーコードシンボルの光学的に読み取られた内容を電気信号に変換して出力するステップと、
前記電気信号の出力内容に基づいて前記スタートマージンの検出および前記バーコードの解読を行って、前記スタートマージンを検出できなかった場合もしくは前記バーコードの解読ができなかった場合にはその旨を示す解読不可信号を出力するステップと、
前記電気信号のうちの、前記スタートマージンの検出と前記バーコードの解読が行われる領域を部分的にキャンセルするキャンセル信号を、前記解読不可信号が入力される毎にキャンセルする領域が長くなるように出力するステップと、
を備えるバーコードリーダのスタートマージン検出方法である。
【0019】
市場ではスタートマージン部分に汚れがあるようなバーコードシンボルラベルでも読み取りできるようなバーコードリーダが要求されている。
【0020】
このような、スタートマージンに汚れのあるバーコードシンボルの読み取りに際しては、この汚れのため生じる不要信号がスタートマージンの検出の障害となってバーコードリーダがスタートマージンを検出できないことが生じ、このためバーコードを解読できない。
【0021】
本発明は、バーコードシンボルのスタートマージン部分の汚れによる不要信号をキャンセルして除去する機能をバーコードリーダに組み込むことにより、バーコードシンボルを解読できなかった場合に、受光部で読み取った電気信号に、不要信号をキャンセルするキャンセル信号を重畳して、強制的に不要信号をキャンセルし電気信号のバーコード部分を解読し、かつスタートマージンを検出する機能を有している。
【0022】
このキャンセル信号のキャンセル部分は、スタートマージンの幅がバーコードシンボルの種類およびバーの幅によって異なることと、スタートマージンに付着する汚れがスタートマージンのどの位置になるのかはあらかじめ予想できないため、解読できなかった場合にこのキャンセル部分を徐々に拡げてゆくとよい。
【0023】
このキャンセル信号によってバーコードシンボルのスタートマージンに当たる部分にある不要信号が除去され、スタートマージン部分の幅が確保できたときに、スタートマージンに汚れがない場合と同様の読み取りができることになり、デコード部でこのスタートマージンを検出した後、バーコードの解読が可能となる。
【発明の効果】
【0024】
本発明によれば、バーコードのスタートマージンに汚れがある場合でも読み取ることのできるバーコードリーダを得られる。
【発明を実施するための最良の形態】
【0025】
本発明を実施するための形態について図面を参照して詳細に説明する。
【0026】
図1は、本実施形態のバーコードリーダの構成例を示すブロック図である。
【0027】
図1を参照すると、バーコードリーダ100は、読み取ろうとするバーコードシンボル200に光を照射する投光部110と、照射された光をバーコードシンボル200が反射してこの反射した光を走査して受光した後、受光した光の強さに対応した電気信号を出力する受光部101と、受光部101から出力された電気信号を増幅する増幅部102と、増幅部102で増幅された電気信号を整形してバーコードシンボル200に対応する2進数デジタル信号に変換し、2進数デジタル信号に受光駆動用パルス信号を重畳して、重畳二値化信号として出力する二値化部103と、2進数デジタル信号より形成された重畳二値化信号のスタートマージンに当たる部分を後述するキャンセル信号によりバーコードシンボル200に付与されたスタートマージンをキャンセルするスタートマージンキャンセル部106と、バーコードリーダ100の各構成部位を制御する制御部104とを備えて構成されており、バーコードシンボル200を光学的に読み取って、バーコードが示す信号を出力し、バーコードシンボル200に表示されたバーコードを解読する機能を有する。
【0028】
バーコードシンボル200は、例えば、白色の空白部分で形成されたスタートマージン部分と、スタートマージン部分に続き何組かのバーで形成されたバーコード部分と、バーコード部分が終了した部分から白色の空白部分で形成されたエンドマージン部分とからなる。
【0029】
この例では、何組かのバーで形成されたバーコード部分は、それぞれある幅を有した白色部分および黒色部分からなりこの白色部分と黒色分の組み合わせで、二値化された2進数に対応するコードとなっている。
【0030】
一般的には、設けられるスタートマージン部分およびエンドマージン部分は、それぞれバーコードシンボル200のバーコード部分の最も細いバー幅の10倍程度の幅の白色の空白部分により形成される。
【0031】
当然、バーコードシンボル200は、黒色、白色の部分で形成されるものに限定されるものではなく、濃淡が識別でき、上述したバーコードシンボルと同様のものであれば、その使用される色などは限定されない。
【0032】
受光部101から出力されるアナログの電気信号は、バーコードシンボル200の光学的に読み取られた内容を電気信号に変換して得られたものであり、バーコードシンボル200のスタートマージンの部分に対応したスタートマージン信号と、バーコードシンボル200のバーコードの部分に対応したバーコード信号と、バーコードシンボル200のエンドマージンの部分に対応したエンドマージン信号とからなっている。
【0033】
増幅部102から出力される電気信号もしくは、二値化部103から出力される重畳二値化信号においても、おのおの受光部101から出力されるアナログの電気信号と同様に、バーコードシンボル200のスタートマージンの部分に対応したスタートマージン信号の部分とバーコードシンボル200のバーコードの部分に対応したバーコード信号と、バーコードシンボル200のエンドマージンの部分に対応したエンドマージン信号の部分とからなっている。以下、増幅部102における増幅処理、二値化部103における二値化などの処理を行った信号においても、スタートマージンの部分に対応した信号をスタートマージン信号、バーコードの部分に対応した信号をバーコード信号と称する。
【0034】
増幅部102は、周期的に入力される受光部101からの電気信号の出力内容、すなわちスタートマージン信号およびバーコード信号ならびにエンドマージン信号とからなっているアナログの電気小信号を電力増幅して、出力する。
【0035】
制御部104は、投光部110を駆動させる投光駆動信号としての投光駆動用パルス信号を発生する投光駆動信号発生部114と、受光部101を駆動して走査させる受光駆動信号としての受光駆動用パルス信号を発生する受光駆動信号発生部113と、バーコードシンボル200に付与されたスタートマージンをキャンセルするために2進数デジタル信号のスタートマージン信号(これは、受光部101から出力されたアナログの電気信号のスタートマージン信号の部分に相当する)をキャンセルする部分を所定のパルス幅で形成したキャンセル信号を発生するキャンセル信号発生部112と、重畳二値化信号のスタートマージンに当たる部分を検出した後、キャンセル信号でキャンセルされた重畳二値化信号を解読するデコード部111とを備えて構成される。
【0036】
デコード部111は、周期的に入力される受光部101の電気信号の出力内容に基づいて二値化部103で得られた重畳二値化信号によって、バーコードシンボル200のスタートマージンの検出およびバーコードの解読を行い、スタートマージンを検出できなかった場合もしくはバーコードの解読ができなかった場合にはその旨を示す解読不可信号を出力する機能を有する。
【0037】
キャンセル信号発生部112は、デコード部111から解読不可信号が入力される毎に、電気信号(ここでは、電気信号が処理された後の重畳二値化信号に相当する)のうちのデコード部111においてスタートマージンの検出が行われる領域に対応したスタートマージン信号と、デコード部111においてバーコードの解読が行われる領域に対応したバーコード信号とからなる信号に対して、部分的にキャンセルするキャンセル信号をキャンセルする領域が長くなるように出力する機能を有する。
【0038】
本実施形態のキャンセル信号発生部112は、バーコードシンボル200のスタートマージンSMGNの領域に当たるスタートマージン信号を部分的にキャンセルするために所定のパルス幅を有したキャンセル信号を発生し、このキャンセル信号のパルス幅を走査ごと(すなわち、解読不可信号が入力される毎)に徐々に拡げることでスタートマージンSMGNのキャンセルする領域が長くなるようにしている。
【0039】
受光部101は増幅部102に接続されており、増幅部102は二値化部103に接続されており、二値化部103はスタートマージンキャンセル部106に接続されており、スタートマージンキャンセル部106はデコード部111に接続されている。
【0040】
デコード部111はキャンセル信号発生部112に接続されており、キャンセル信号発生部112は受光駆動信号発生部113に接続されており、受光駆動信号発生部113は受光部101に接続されており、投光駆動信号発生部114は投光部110に接続されており、受光駆動信号発生部113は二値化部103に接続されており、キャンセル信号発生部112はスタートマージンキャンセル部106に接続されている。
【0041】
次にバーコードリーダ100の動作について図1〜図3を用いて詳細に説明する。
【0042】
バーコードリーダ100は、バーコードシンボル200を読み取るために、バーコードリーダ100の投光部110および受光部101がバーコードシンボル200に臨んで配置される。
【0043】
バーコードリーダ100からは、投光駆動信号発生部114においてスタートパルスおよびストップパルスで構成される投光駆動信号である投光駆動用パルス信号が出力される。
【0044】
このスタートパルスからストップパルスまでの時間は、バーコードリーダ100がバーコードシンボル200を光学的に読み取るために1回走査するスキャンの時間に当たり、この時間に相当する読み取るバーコードシンボル200のコード全体の幅を規定している。
【0045】
この投光駆動信号発生部114から出力された投光駆動用パルス信号は、投光部110に入力される。
【0046】
この投光部110に入力された投光駆動用パルス信号により、スタートパルスが入力されたときから投光部110はバーコードシンボル200に対して光の照射を始め、ストップパルスが入力されたときに投光部110はバーコードシンボル200に対して光の照射を終了する。但し、ストップパルスに同期し光の照射が終了しなくとも構わない。この投光部110による光の照射の間に、バーコードシンボル200に対して1回の走査が行われる。
【0047】
投光部110からの光に照射されたバーコードシンボル200は、この照射された光を反射して、このバーコードシンボル200で反射された光はバーコードリーダ100の受光部101に向かう。
【0048】
受光部101には、受光駆動信号発生部113から出力された受光駆動用パルス信号が周期的に入力される。図2(a)は、受光駆動信号発生部113から出力されたこの受光駆動用パルス信号を示す。図示したように受光駆動用パルス信号は、既に説明した投光駆動用パルス信号と同様にスタートパルス703およびストップパルス708で構成される。
【0049】
このスタートパルス703からストップパルス708までの時間は、バーコードリーダ100がバーコードシンボル200を1回走査するスキャンの時間T1に当たり、この時間に相当する読み取るバーコードシンボル200のコード全体の幅を規定している。
【0050】
すなわち、バーコードリーダ100で得られたバーコードシンボル信号は、必ずこの受光駆動用パルス信号内に入ることで、周期的なバーコードの読み取りを可能としている。
【0051】
この受光部101に入力された受光駆動用パルス信号により、受光部101はバーコードシンボル200を光学的に読み取るための走査を行う。この受光部101の走査は、受光駆動用パルス信号のスタートパルス703をトリガとしてこのスタートパルス703の時刻から始まり、受光駆動用パルス信号のストップパルス708の時刻で1走査(スキャン)が終了する。
【0052】
この受光部101の走査により、受光部101にバーコードシンボル200からの反射光が周期的に入力される。
【0053】
受光部101は、入力された反射光によりバーコードシンボルの光学的に読み取られた内容を反射光の強度に応じたアナログの電気信号に変換して、出力する。
【0054】
このスタートマージン信号およびバーコード信号からなるアナログの電気信号は、増幅部102に入力され、増幅部102において電力増幅され、増幅部102から出力される。増幅部102から出力されたアナログの電気信号は、二値化部103に入力される。
【0055】
二値化部103では、増幅部102から入力されたアナログの電気信号を、論理「0」(論理「低」)、「1」(論理「高」)の二値化された信号にアナログ/デジタル変換するように整形して、バーコードシンボル200に対応する電気信号である2進数デジタル信号に変換する。この二値化された2進数デジタル信号を、図2(b)に示す。
【0056】
図2(b)に示した二値化された2進数デジタル信号では、例えばバーコードの黒色部分が論理「0」(論理「低」)に対応しており、バーコードの白色部分が論理「1」(論理「高」)に対応している。
【0057】
二値化部103においては、さらにこの二値化された2進数デジタル信号に受光駆動信号発生部113から二値化部103に入力される受光駆動用パルス信号(図2(a)参照)を重畳させる。この2進数デジタル信号と受光駆動用パルス信号とを重畳される具体的な回路としては、例えば論理積回路(AND回路)を用いるとよい。
【0058】
このようにして受光駆動用パルス信号が重畳させた二値化信号が、二値化部103より出力される。図2(c)は、受光駆動用パルス信号(スタートパルス703およびストップパルス708)が重畳された二値化信号を示し、以後この信号を重畳二値化信号と称する。
【0059】
この重畳二値化信号においては、図2(d)に示すようにスタートパルス703の後方のエッジから二値化信号のバーコードの1組目の最初のパルスの前方のエッジまでの間SMGNがほぼバーコードシンボル200のスタートマージンに相当し、この部分が電気信号のスタートマージン信号に相当する。
【0060】
このスタートパルス703の後方のエッジから二値化信号の最初のパルスの前方のエッジまでの間SMGNを、説明の簡単のため以後バーコードシンボル200のスタートマージンSMGNと称する。
【0061】
図示したようなスタートマージンSMGN部分に充分なマージン幅がある二値化信号であれば、スタートマージンSMGNの検出が可能であるため、問題なくバーコードの解読ができるが、スタートマージンSMGNに不要な信号がある場合はデコードエラーとなる。
【0062】
このスタートマージンSMGNに不要な信号が重畳している場合の重畳二値化信号を図2(e)に示す。
【0063】
図示した重畳二値化信号は、バーコードシンボルラベルが印刷されている紙のキズまたは汚れがある場合もしくはラベルの表面処理の不備などがある場合で、これらによりスタートマージン部分が規定の光を反射できず、このため、バーコードシンボル200から反射した光を受光した受光部101が検出した光に不要な信号が含まれ、この不要な信号が電気信号にも変換されて、スタートマージンSMGNに不要信号SPRSが含まれた状態を示している。
【0064】
従来技術では、このようにバーコードシンボルのスタートマージン部分に汚れなどがある場合には、バーと誤認識したり、スタートマージン幅の不足となり、バーコードリーダ500(図5参照)は、デコードエラーと判断し、バーコードシンボルの解読ができなかった。
【0065】
これに対して、本実施形態のバーコードリーダ100では、引き続き次の処理を実施する。
【0066】
受光駆動信号発生部113は、出力した受光駆動用パルス信号をキャンセル信号発生部112にも供給する。この受光駆動用パルス信号が入力されたキャンセル信号発生部112では、受光駆動用パルス信号に基づいてスタートパルス703の後方のエッジをトリガとして、必要な場合に所定パルス幅のパルスを有したキャンセル領域が形成されたキャンセル信号を発生する。このキャンセル信号を、図2(f)に示す。
【0067】
このキャンセル信号に所定のパルス幅のパルスが必要な場合は、受光部101で最初に走査して得られたバーコードシンボル200の重畳二値化信号をデコード部111でスタートマージン検出できなかった場合もしくは解読しようとして解読できなかった場合であり、2回目以降の走査を行う場合を指す。
【0068】
このように一回目の投光部110および受光部101の走査でデコード部111がバーコードシンボル200を解読できなかった場合には、デコード部111は解読のためのスタートマージン検出ができなかった旨もしくはバーコードが解読できなかった旨を示す解読不可信号を出力して、キャンセル信号発生部112に通知する。
【0069】
デコード部111がバーコードシンボル200を解読できなかった原因として既に背景技術で説明したように、バーコードシンボル200のスタートマージンに汚れなどがあり、このためスタートマージンを検出できずに、バーコードシンボル200のバーコードの解読ができないことがある。
【0070】
このような場合にデコード部111は、スタートマージンが検出できなかったこともしくはバーコードシンボル200の解読ができなかったことをキャンセル信号発生部112に通知する。
【0071】
このデコード部111からの解読不可信号により通知を受けたキャンセル信号発生部112は、バーコードリーダ100の投光部110および受光部101が2回目の走査を行う際に、受光駆動信号発生部113からの受光駆動用パルス信号を受けて、図2(f)に示したキャンセル信号を出力し、スタートマージンキャンセル部106に供給する。
【0072】
二値化部103から出力された重畳二値化信号は、スタートマージンキャンセル部106に入力され、スタートマージンキャンセル部106は、重畳二値化信号のスタートマージンSMGN部分にある不要信号をキャンセル信号発生部112から供給されたキャンセル信号で強制的にハイレベル(H)にすることによりキャンセルする。スタートマージンSMGN部分がキャンセルされた重畳二値化信号を図2(g)に示す。
【0073】
このようにしてキャンセル信号によりスタートマージンSMGN部分にある不要信号SPRSが除去された重畳二値化信号は、バーコードシンボル200のスタートマージンに当たる部分に汚れのないバーコードシンボル200から読み取った信号と同様であり、この重畳二値化信号はスタートマージンキャンセル部106から出力され、制御部104のデコーダ部111に入力される。
【0074】
デコーダ部111に入力された重畳二値化信号は、キャンセル信号によりスタートマージンSMGNの不要信号SPRSが除去されているため、バーコードシンボル200のスタートマージンSMGNが確保されており、デコード部111は、この不要信号SPRSのない重畳二値化信号からスタートマージンSMGNを検出して、従来の不要信号の無いときと同様にバーコードの解読を行う。
【0075】
デコード部111は、バーコードの解読を行ってバーコードが示す信号を出力し、例えばバーコードリーダ100の図示しない表示部などに表示したり、解読したバーコードに対応した情報を表示、印字したりする。
【0076】
ここで、スタートマージンSMGNをキャンセルして図2(g)に示す重畳二値化信号をなす際のキャンセル信号の発生状態について図3を参照してさらに詳細に説明する。
【0077】
図3(a)は、受光駆動信号発生部113から出力される受光駆動用パルス信号を示し、図3(b)は、スタートマージンSMGNに不要な信号が重畳している場合の重畳二値化信号を示す。
【0078】
図3(a)の受光駆動用パルス信号は、図2(a)で示した受光駆動用パルス信号であり、図3(b)の重畳二値化信号は、図2(e)で示したスタートマージンSMGNに不要信号SPRSが重畳している場合の重畳二値化信号である。
【0079】
図3(c)は、投光部110および受光部101が1回目の走査を行って、この走査の結果バーコードシンボル200からの反射光によって、図3(b)に示す重畳二値化信号が得られ、このときにキャンセル信号発生部112からスタートマージンキャンセル部106に供給されたキャンセル信号を示している。
【0080】
このキャンセル信号は、投光部110および受光部101の1回目の走査時にキャンセル信号発生部112から発生した信号であり、図2(f)に示したキャンセル信号と異なり所定のパルス幅のパルスを有さないキャンセル信号である。
【0081】
このキャンセル信号は、所定のパルス幅を有していないため、スタートマージンキャンセル部106において重畳二値化信号のスタートマージンSMGNにある不要信号SPRSを除去することはできない。
【0082】
この場合には、二値化部103から出力された重畳二値化信号がスタートマージンキャンセル部106に入力され、キャンセル信号発生部112からはキャンセル信号がスタートマージンキャンセル部106に入力されるが、キャンセル信号は所定パルス幅を有さないため、重畳二値化信号はスタートマージンキャンセル部106をスルー同然で通過してデコード部111に入力される。
【0083】
すなわち、重畳二値化信号のスタートマージンSMGN部分の不要信号SPRSは、スタートマージンキャンセル部106を出力する際もそのままであり、この重畳二値化信号がデコード部111に入力されてもこのスタートマージンSMGN部分の不要信号SPRSのため、デコード部111はスタートマージンSMGNの検出が行えずに、バーコードシンボル200のバーコードの解読はできない。
【0084】
このスタートマージンを検出できずにバーコードの解読ができなかったことは、デコード部111からキャンセル信号発生部112に解読不可信号によって通知される。
【0085】
このデコード部111からの通知を受けたキャンセル信号発生部112は、投光部110および受光部101の2回目の走査がなされた際には、所定のパルス幅を有するキャンセル信号を発生する。
【0086】
このキャンセル信号を図3(d)に示す。
【0087】
図3(d)は、投光部110および受光部101が2回目の走査を行って、この走査の結果バーコードシンボル200からの反射光によって、図3(b)に示す重畳二値化信号が得られ、このときにキャンセル信号発生部112から供給されたキャンセル信号を示しており、このキャンセル信号はキャンセルする部分が所定のパルス幅T2だけある信号である。
【0088】
このキャンセル信号は、所定のパルス幅T2を有しているが、スタートマージンキャンセル部106において重畳二値化信号のスタートマージンSMGNにある不要信号を除去することはできない。
【0089】
これは、図3(b)に示した重畳二値化信号のスタートマージンSMGNの一部はキャンセルされているが、パルス幅T2のため、不要信号SPRSのある部分はキャンセルされておらず、不要信号SPRSの除去ができないものである。
【0090】
この場合には、二値化部103から出力された重畳二値化信号がスタートマージンキャンセル部106に入力され、キャンセル信号発生部112からはキャンセル信号がスタートマージンキャンセル部106に入力されるが、キャンセル信号のパルス幅T2が不要信号SPRSを除去できるパルス幅でないため、不要信号SPRSの除去されていない重畳二値化信号がスタートマージンキャンセル部106から出力され、デコード部111に入力される。
【0091】
すなわち、重畳二値化信号のスタートマージンSMGN部分の不要信号SPRSは、スタートマージンキャンセル部106を出力する際もそのままであり、この重畳二値化信号がデコード部111に入力されてもこのスタートマージンSMGN部分の不要信号SPRSのため、デコード部111はスタートマージンSMGNの検出が行えずに、バーコードの解読はできない。
【0092】
バーコードが解読できなかったときには、このバーコードが解読できなかったこともしくはスタートマージンSMGNが検出できなかったことが、デコード部111からキャンセル信号発生部112に解読不可信号によって通知される。
【0093】
このデコード部111からの通知を受けたキャンセル信号発生部112は、投光部110および受光部101の3回目の走査がなされた際には、2回目の走査時の所定のパルス幅T2よりもパルス幅を拡げたキャンセル信号を3回目の走査時に発生する。
【0094】
このパルス幅を拡げたキャンセル信号を、図3(e)に示す。
【0095】
図3(e)は、投光部110および受光部101が3回目の走査を行って、この走査の結果バーコードシンボル200からの反射光によって、図3(b)に示す重畳二値化信号が得られ、このときにキャンセル信号発生部112から供給されたキャンセル信号を示しており、このキャンセル信号はキャンセルする部分が図3(d)に示したパルス幅T2よりも広い所定のパルス幅T3だけある信号である。
【0096】
このキャンセル信号は、所定のパルス幅T3を有しているが、スタートマージンキャンセル部106において重畳二値化信号のスタートマージンSMGNにある不要信号SPRSを除去することはできない。
【0097】
これは、図3(b)に示した重畳二値化信号のスタートマージンSMGNの一部はキャンセルされているが、パルス幅T3のため、不要信号SPRSのある部分はキャンセルされておらず、不要信号SPRSの除去ができないものである。
【0098】
この場合には、二値化部103から出力された重畳二値化信号がスタートマージンキャンセル部106に入力され、キャンセル信号発生部112からはキャンセル信号がスタートマージンキャンセル部106に入力されるが、キャンセル信号のパルス幅T3が不要信号SPRSを除去できるパルス幅でないため、不要信号SPRSの除去されていない重畳二値化信号がスタートマージンキャンセル部106から出力され、デコード部111に入力される。
【0099】
すなわち、重畳二値化信号のスタートマージンSMGN部分の不要信号SPRSは、スタートマージンキャンセル部106を出力する際もそのままであり、この重畳二値化信号がデコード部111に入力されてもこのスタートマージンSMGN部分の不要信号SPRSのため、デコード部111はスタートマージンSMGNの検出が行えずに、バーコードの解読はできない。
【0100】
バーコードが解読できなかったときには、このバーコードが解読できなかったこともしくはスタートマージンSMGNが検出できなかったことが、デコード部111からキャンセル信号発生部112に解読不可信号によって通知される。
【0101】
このデコード部111からの通知を受けたキャンセル信号発生部112は、投光部110および受光部101の4回目の走査がなされた際には、3回目の走査時の所定のパルス幅T3よりもパルス幅を拡げたキャンセル信号を発生する。
【0102】
このパルス幅を拡げたキャンセル信号を、図3(f)に示す。
【0103】
図3(f)は、投光部110および受光部101が4回目の走査を行って、この走査の結果バーコードシンボル200からの反射光によって、図3(b)に示す重畳二値化信号が得られ、このときにキャンセル信号発生部112から供給されたキャンセル信号を示しており、このキャンセル信号はキャンセルする部分が図3(e)に示したパルス幅T3よりも広い所定のパルス幅T4だけある信号である。
【0104】
このキャンセル信号は、所定のパルス幅T4を有しており、スタートマージンキャンセル部106において重畳二値化信号のスタートマージンSMGNにある不要信号SPRSを除去することができる。
【0105】
これは、図3(b)に示した重畳二値化信号のスタートマージンSMGNがキャンセル信号のキャンセル部分によりキャンセルされており、すなわちパルス幅T4のため、不要信号SPRSのある部分がキャンセルされて、不要信号SPRSの除去ができるものである。
【0106】
この場合には、二値化部103から出力された重畳二値化信号がスタートマージンキャンセル部106に入力され、キャンセル信号発生部112からはキャンセル信号がスタートマージンキャンセル部106に入力されるが、スタートマージンキャンセル部106においてキャンセル信号のパルス幅T4が不要信号SPRSを除去できるパルス幅であるため、不要信号SPRSの除去された重畳二値化信号がスタートマージンキャンセル部106から出力され、デコード部111に入力される。
【0107】
すなわち、重畳二値化信号のスタートマージンSMGN部分の不要信号SPRSはキャンセル部分(領域)にあるため、スタートマージンキャンセル部106を出力される際には除去されており、この重畳二値化信号がデコード部111に入力されると、デコード部111はこのスタートマージンSMGN部分のスタートマージン信号の検出を行ない、スタートマージンSMGNの検出がされたことにより、デコード部111は何組かのバーで形成されたバーコードに相当するバーコード信号を左から順次処理して、バーコード信号の解読が行われる。
【0108】
以上説明したように、キャンセル信号の所定のパルス幅は、走査ごとに徐々にパルス幅を拡げて行くが、このパルス幅の拡大はバーコードの最も幅の狭いバーの幅程度の単位で拡げて行くとよく、このキャンセル信号の所定のパルス幅の拡大は、スタートマージンSMGNに含まれた不要信号SPRSがキャンセルされ、このキャンセル信号によってスタートマージンSMGNの不要信号SPRSがスタートマージンキャンセル部106で除去されるまで所定のパルス幅の拡大が走査ごとに繰り返し行われる。
【0109】
このキャンセル信号によって不要信号SPRSが除去され、スタートマージンSMGN部分の幅が確保できたときに、デコード部111で重畳二値化信号のこのスタートマージンSMGNを検出した後、バーコード信号の解読によりバーコードの解読が可能となる。
【0110】
キャンセル信号による不要信号SPRSの除去は、この処理によって電気信号を読み取るタイミングをずらすことで、不要信号SPRS部分を回避してバーコードの読み取り解読を行うことが可能となっている。
【0111】
このキャンセル信号のパルス幅の増分量はスタートマージンキャンセル部106もしくはこれを制御するソフトウェアにより任意に設定が可能であり、この増量分の設定によりあらゆるバー幅を有するバーコードシンボル200に対応することが可能となる。
【0112】
また、キャンセル信号のパルス幅の増分量はスタートマージンキャンセル部106もしくはこれを制御するソフトウェアにより任意に設定が可能であり、この増量分の設定によりあらゆるスタートマージン幅を有するバーコードシンボル200に対応することが可能となる。
【0113】
このようにして、スタートマージンSMGNに不要信号SPRSのある重畳二値化信号の場合にも、従来のバーコードリーダでスタートマージンを検出することに代えて、バーコードのスタートマージンSMGNの不要信号を含む部分を強制的にキャンセルして擬似的にスタートマージンSMGNを形成することで、スタートマージンSMGNを検出したことと同様の効果が得られ、従来は読み取り不可能であったバーコードシンボルラベルのスタートマージン部にキズ、汚れがあっても、解読が可能となり、バーコードの読み取り率が向上するという優れた効果を得られる。
【0114】
また、本実施形態のバーコードリーダ100は、このようなスタートマージンSMGN部分に不要信号の重畳したバーコードシンボル200のみならず、次のような場合にも読み取りが可能である。
【0115】
バーコードリーダ100が、バーコードシンボル200を読み取る際に、スタートマージンSMGNに不要信号SPRSがない場合で、デコード部111でスタートマージンSMGNが検出できるにもかかわらず解読したときにデコードエラーとなることがある。
【0116】
このデコードエラーの原因は、図4(a)に示した重畳二値化信号のようにバーコードシンボル200のバーコードの1本目のコードに印刷の滲み、コード幅の広がりなどがあり、この滲み、コード幅の広がりなどのためバーコードの1本目401が読み取れないことによっている。
【0117】
このような場合にも、既に説明したように1回目の投光部110および受光部101の走査でバーコードをデコード部111で解読できなかったときには、デコード部111は解読できなかったことをキャンセル信号発生部112に解読不可信号により通知する。
【0118】
このデコード部111からの通知を受けたキャンセル信号発生部112は、バーコードリーダ100の投光部110および受光部101が2回目以降の走査を行う際に、受光駆動信号発生部113からの受光駆動用パルス信号を受けて、図3(d)〜図3(f)に示したように所定のパルス幅を徐々に拡げたキャンセル信号を出力し、スタートマージンキャンセル部106に供給する。
【0119】
このバーコードの1本目のコードに印刷の滲み、コード幅の広がりなどがある場合には、このキャンセル信号の所定のパルス幅を徐々に拡げた結果、図4(b)に示すようにバーコードのちょうど1組目の最初のパルスのエッジがこのキャンセル信号の後方のエッジに掛かり、1組目の最初のパルスのエッジのにじみ部分がこのキャンセル信号により除去されたときに、デコード部111により最初のパルス402が検出できるようになる。
【0120】
このため、バーコードの解読が可能になり、スタートマージンSMGNが検出された後バーコードの解読が行われる。
【0121】
このように、バーコードシンボル200の最初の1本目を二値化できない場合にも、同様の動作でキャンセル信号の所定のパルス幅を徐々に拡げて行き、バーコードの1本目のコードの滲みが除去されたときに1本目のコードパルスを検出でき、バーコードの解読が可能となる。
【0122】
なお、本実施形態のバーコードリーダ100においては、図1に示したような構成でスタートマージンキャンセル部106を設けることにより重畳二値化信号に擬似的にスタートマージンSMGNを形成してバーコードの解読が可能なようにしたが、これに限定されるものではない。
【0123】
ハードウェアとしてのスタートマージンキャンセル部106を設ける代わりに、スタートマージンキャンセル部106の機能を有するソフトウェアを例えば制御部104の内部に組み込み、このソフトウェアにてスタートマージンキャンセル部106と同様の処理をすることによって強制的にスタートマージンSMGNを形成して、解読を行ってもよい。
【0124】
また、キャンセル信号によって重畳二値化信号のスタートマージンSMGN部分にキャンセルする実施形態を説明したが、本発明はこれに限定されず、二値化部103において二値化された信号にキャンセルする代わりに、例えば二値化する前のアナログ電気信号のスタートマージンに相当する部分をキャンセルする処理を行うことでも同様であり、この処理によって電気信号を読み取るタイミングをずらすことで、不要信号部分を回避してバーコードの読み取り解読を行うことが可能である。
【0125】
また、キャンセル信号は、スタートパルスをトリガとして、このスタートパルスの後方のエッジから所定のパルス幅でキャンセルする領域を形成する実施形態を説明したが、これに限定されるものではなく、例えば受光部101から出力された電気信号のスタートマージン信号から不要信号の一部を検出して、この不要信号を検出した部分を中心にキャンセルする領域を形成したキャンセル信号により、スタートマージン信号に重畳した不要信号をキャンセルするようにしてもよい。
【0126】
また、説明では解読できなかった場合には次の回の走査を行った際にキャンセル部分(所定のパルス幅)を拡げたキャンセル信号をスタートマージンキャンセル部106に入力しているが、この2回目以降の走査を行う代わりに、例えばスタートマージンキャンセル部106に重畳二値化信号を記憶しておいて、この記憶された重畳二値化信号にキャンセル領域を長くして拡げたキャンセル信号を重ねることで同様の処理を行ってもよい。
【0127】
また、本実施形態ではエンドマージンの検出については説明していないが、従来同様にエンドマージン検出を行ってよいことは当然であり、またエンドマージンの検出においても必要に応じて本実施形態のスタートマージンのキャンセル、検出と同様の処理をハードウェアもしくはソフトウェアによって行ってもよい。
【図面の簡単な説明】
【0128】
【図1】本実施形態のバーコードリーダの構成例を示すブロック図である。
【図2】図2(a)〜(g)は、バーコードリーダの各構成部位から出力される信号を示す図である。
【図3】図3(a)〜(f)は、受光駆動信号発生部からの受光駆動用パルス信号に基づいてキャンセル信号発生部から出力されるキャンセル信号のパルス幅の広がる状態を示す図である。
【図4】図4(a)は、バーコードの1組目のコードに印刷の滲み、コード幅の広がりなどがあり解読不能な重畳二値化信号を示す図である。図4(b)は、キャンセル信号により印刷の滲み、コード幅の広がりなどが除去され、解読可能になった重畳二値化信号を示す図である。
【図5】従来技術のバーコードリーダの構成例を示すブロック図である。
【図6】図6(a)〜(c)は、スタートマージン部分に不要信号が重畳していない電気信号を示す説明図である。
【図7】図7(a)〜(c)は、スタートマージン部分に不要信号が重畳した電気信号を示す説明図である。
【図8】スタートマージン部分にキズ、汚れのあるバーコードシンボルを示す概観図である。
【符号の説明】
【0129】
100 バーコードリーダ
101 受光部
102 増幅部
103 二値化部
104 制御部
106 スタートマージンキャンセル部
110 投光部
111 デコード部
112 キャンセル信号発生部
113 受光駆動信号発生部
114 投光駆動信号発生部
200 バーコードシンボル
401 バーコードの1本目
402 最初のパルス
500 バーコードリーダ
501 受光部
502 増幅部
503 二値化部
511 デコード部
703 スタートパルス
708 ストップパルス
BD バーコード
MGN マージン
SMGN スタートマージン
SPRS 不要信号
STN 汚れ

【特許請求の範囲】
【請求項1】
スタートマージンおよび該スタートマージン部分に続き何組かのバーで形成されたバーコードからなるバーコードシンボルを光学的に読み取って、前記バーコードが示すデータを出力するバーコードリーダであって、
前記バーコードシンボルの光学的に読み取られた内容を電気信号に変換して出力する受光部と、
周期的に入力される前記受光部の前記電気信号の出力内容に基づいて前記スタートマージンの検出および前記バーコードの解読を行って、前記スタートマージンを検出できなかった場合もしくは前記バーコードの解読ができなかった場合にはその旨を示す解読不可信号を出力するデコード部と、
前記電気信号のうちの、前記デコード部において前記スタートマージンの検出と前記バーコードの解読が行われる領域を部分的にキャンセルするキャンセル信号を、前記解読不可信号が入力される毎にキャンセルする領域が長くなるように出力するキャンセル信号発生部と、
を備えることを特徴とするバーコードリーダ。
【請求項2】
請求項1に記載のバーコードリーダにおいて、
前記受光部が、前記受光部の光学的な読み取りを開始させるスタートパルスと、前記光学的な読み取りを終了させるストップパルスとからなる駆動信号に基づいて前記読み取りを実施するバーコードリーダ。
【請求項3】
請求項1に記載のバーコードリーダにおいて、
前記キャンセル信号は、前記スタートパルスをトリガとして、前記キャンセルする領域が形成されるバーコードリーダ。
【請求項4】
請求項1または3に記載のバーコードリーダにおいて、
前記キャンセル信号発生部は、前記キャンセル部分が所定パルス幅を有するパルス信号で形成される前記キャンセル信号を出力するバーコードリーダ。
【請求項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