(57)【特許請求の範囲】
【請求項１】
キャラクタを複数のバー幅により表したバーコードを読み取ることにより得られるモジュール数に基づいて前記キャラクタを復調するバーコード読取装置において、
前記キャラクタにおけるモジュール数と基本モジュール幅との比率を求める比率算出手段と、
前記比率における誤差量が許容値を超えている場合、誤差成分を含む前記モジュール数を補正する補正手段と、
前記キャラクタにおけるモジュール数、前記補正手段により補正されたモジュール数に基づいて、キャラクタを復調する復調手段と、
前記復調手段の復調結果において、補正されたモジュール数に対応する疑問キャラクタにマーキングを施したものを表示する表示手段と、
前記表示手段の表示に基づいて正しいキャラクタを入力するための入力手段と、
を備えることを特徴とするバーコード読取装置。
【請求項２】
前記復調手段の復調結果における前記疑問キャラクタが、前記入力手段より入力された前記正しいキャラクタに置換された正しい復調結果と、前記疑問キャラクタを含む復調結果との対応関係を表すテーブルを記憶する記憶手段と、
前記テーブルにおける前記疑問キャラクタを含む復調結果が得られた回数をカウントするカウント手段と、
前記復調手段により前記疑問キャラクタを含む復調結果が得られかつ前記テーブルに当該復調結果が存在する場合に、前記カウント手段におけるカウント結果がしきい値以上であるとき、前記テーブルにおける前記正しい復調結果を前記表示手段に表示させる制御手段と、
を備えることを特徴とする請求の範囲第１項記載のバーコード読取装置。
【請求項３】
前記表示手段は、他のキャラクタとは別の表示方法で前記疑問キャラクタを表示することを特徴とする請求の範囲第２項記載のバーコード読取装置。
【請求項４】
前記表示手段は、前記疑問キャラクタを前記入力手段より入力された前記正しいキャラクタに置換するとともに、同一の表示方法ですべてのキャラクタを表示することを特徴とする請求の範囲第３項記載のバーコード読取装置。
【請求項５】
複数のキャラクタから構成されるバーコードを読み取り、前記バーコードを復調するバーコード読取装置において、
前記バーコードに含まれるキャラクタのうち、誤読の可能性がある疑問キャラクタの有無を判別する判別手段と、
前記バーコードの復調結果を表示する表示手段と、
前記判別手段により前記疑問キャラクタがあると判別された場合、前記表示手段に表示された前記復調結果に含まれる疑問キャラクタを、他のキャラクタと判別可能に表示させる制御手段と、
を備えることを特徴とするバーコード読取装置。
【請求項６】
前記疑問キャラクタに対応する正しいキャラクタを入力する入力手段を備え、前記制御手段は、前記疑問キャラクタを前記正しいキャラクタに置換し、当該正しいキャラクタを含む復調結果を修正済復調結果として出力することを特徴とする請求の範囲第５項記載のバーコード読取装置。
【請求項７】
前記疑問キャラクタを含む前記復調結果と前記修正済復調結果とを対応付けて記憶する記憶手段と、前記バーコードの復調結果と前記記憶手段に記憶されている前記疑問キャラクタを含む復調結果とを比較する比較手段とを備え、前記制御手段は、前記比較手段の比較結果が一致である場合、前記バーコードの復調結果に代えて、前記記憶手段に記憶されている修正済復調結果を出力することを特徴とする請求の範囲第６項記載のバーコード読取装置。
【請求項８】
キャラクタを複数のバー幅により表したバーコードを読み取ることにより得られるモジュール数に基づいて前記キャラクタを復調するバーコード読取方法において、
キャラクタにおけるモジュール数と基本モジュール幅との比率を求める比率算出工程と、
前記比率における誤差量が許容値を超えている場合、誤差成分を含む前記モジュール数を補正する補正工程と、
前記キャラクタにおけるモジュール数、前記補正工程により補正されたモジュール数に基づいて、キャラクタを復調する復調工程と、
前記復調工程の復調結果において、補正されたモジュール数に対応する疑問キャラクタにマーキングを施したものを表示手段に表示させる表示工程と、
前記表示手段の表示に基づいて正しいキャラクタを入力するための入力工程と、
を含むことを特徴とするバーコード読取方法。
【発明の詳細な説明】
技術分野
本発明は、キャラクタをバー幅により表したバーコードにレーザ光を走査することにより、バーコードを光学的に読み取るバーコード読取装置およびバーコード読取方法に関する。
背景技術
近時、小売業においては、商品の売上内容の把握の迅速化、省力化等を目的として、特に、コンビニエンスストア、百貨店、スーパマーケット等では、ＰＯＳ（Ｐｏｉｎｔ  Ｏｆ  Ｓａｌｅｓ）システムが急速に普及している。このＰＯＳシステムにおいては、キャラクタを表すバーコードを光学的に読み取り、この読み取り結果に基づいて、キャラクタを復調するバーコード読取装置が組み込まれている。
また、商品に付されたバーコードは、その印刷精度により、バー幅にばらつきが生じることがあるため、バーコード読取装置においては、上記ばらつきの影響を受けることなく、高精度でキャラクタの復調を行うことが要請されている。
第８図は、従来のバーコード読取装置の構成を示すブロック図である。この図において、バーコード１０は、図示しない商品に付されており、複数の黒バーと白バーとが交互に組み合わされてなり、後述するＥ（ＥＶＥＮ）０〜Ｅ９、Ｏ（ＯＤＤ）０〜Ｏ９という都合２０種類のキャラクタを表現するものである。このバーコード１０としては、たとえば、世界各国で用いられているＥＡＮ（Ｅｕｒｏｐｅａｎ  Ａｒｔｉｃｌｅ  Ｎｕｍｂｅｒ）、アメリカで用いられているＵＰＣ（Ｕｎｉｖｅｒｓａｌ  Ｐｒｏｄｕｃｔ  Ｃｏｄｅ）がある。
第９図は、上記バーコード１０を示す平面図である。この図に示したバーコード１０は、一例として、交互に配設された黒バーＢＢ１、白バーＷＢ１、黒バーＢＢ２および白バーＷＢ２を有している。また、バーコード１０は、同図左側から右側へ向かって、レフトマージンＬＭと、黒バーＬＧＢ１および白バーＬＧＢ２を含むレフトガードバーＬＧＢと、６キャラクタ（たとえば、「００００００」）からなる左データキャラクタ１０Ｌと、センターバーＣＢと、５キャラクタ（たとえば、「２８９６３」）からなる右データキャラクタ１０Ｒと、１キャラクタ（たとえば、「２」）からなるチェックデジットコードＣＤと、白バーＲＧＢ１および黒バーＲＧＢ２を含むライトガードバーＲＧＢと、ライトマージンＲＭとから構成されている。
同図においては、国コードＣ１が「２０」、商品メーカコードＣ２が「０００００」、商品アイテムコードＣ３が「２８９６３」、チェックデジットコードＣＤが「２」とされている。このチェックデジットコードＣＤは、バーコードデータの信頼性（精度）を高めるための算術チェック（たとえば、モジュラス１０チェック）に用いられるコードである。
また、バーコード１０における一つのキャラクタは、第１０図（ａ）〜（ｄ）に示したように同図右側から左側へ向かって、１番目の黒バー、２番目の白バー、３番目の黒バーおよび４番目の白バーという４本のバー（エレメント）から構成されているとともに、そのキャラクタ長Ｃ（１番目の黒バーから４番目の白バーまでのエッジ間距離）は、７モジュール（単位の長さを「モジュール」と称する）とされている。
また、バーコード１０は、１番目の黒バーの黒バー幅Ｂ１、２番目の白バーの白バー幅Ｂ２、３番目の黒バーの黒バー幅Ｂ３および４番目の白バーの白バー幅Ｂ４の組み合わせにより、“０”から“９”までの１０種類の数字（キャラクタ）を表現している。また、バーコード１０では、第１１図に示したように同じ数字でも黒バーのモジュール数を奇数および偶数とする２種類の組み合わせを導入することにより、２０種類のキャラクタの表現が可能となる。
ここで、黒バーのモジュール数が奇数となるものをＯＤＤ（以下、Ｏと略称）と称し、一方、黒バーのモジュール数が偶数となるものをＥＶＥＮ（以下、Ｅと略称）と称する。第１１図に示した例では、キャラクタＯ０〜キャラクタＯ９という黒バーのモジュール数が奇数となる１０種類のキャラクタと、キャラクタＥ０〜キャラクタＥ９という黒バーのモジュール数が偶数となる１０種類のキャラクタという都合２０種類のキャラクタが図示されている。
たとえば、同図に示したキャラクタＯ０およびキャラクタＥ０を例にして説明すれば、キャラクタＯ０は同図右側から左側へ向かって１番目の黒バー（モジュール数１）と、２番目の白バー（モジュール数１）と、３番目の黒バー（モジュール数２）と、４番目の白バー（モジュール数３）とから構成されている。また、キャラクタＯ０は、１番目の黒バーのモジュール数（＝１）と３番目の黒バーのモジュール数（＝２）との和が３モジュール、すなわち奇数とされている。
一方、キャラクタＥ０は、同図右側から左側へ向かって１番目の黒バー（モジュール数３）と、２番目の白バー（モジュール数２）と、３番目の黒バー（モジュール数１）と、４番目の白バー（モジュール数１）とから構成されている。また、キャラクタＥ０は１番目の黒バーのモジュール数（＝３）と３番目の黒バーのモジュール数（＝１）との和が４モジュール、すなわち偶数とされている。
第１０図（ａ）に示したキャラクタＥ４は、同図右側から左側へ向かって、黒バー幅Ｂ１が１モジュールの黒バーと、該黒バーに隣接し白バー幅Ｂ２が１モジュールの白バーと、該白バーに隣接し黒バー幅Ｂ３が３モジュールの黒バーと、該黒バーに隣接し白バー幅Ｂ４が２モジュールの白バーから構成されている。
ここで、黒バー幅Ｂ１と白バー幅Ｂ２との和、すなわち１番目の黒バーと２番目の白バーとのエッジ間距離はデルタディスタンスＴ１と称されており、同図に示した例では、このデルタディスタンスＴ１は、２モジュールである。さらに、白バー幅Ｂ２と黒バー幅Ｂ３との和、すなわち２番目の白バーと３番目の黒バーとのエッジ間距離はデルタディスタンスＴ２と称されており、同図に示した例では、このデルタディスタンスＴ２は、４モジュールである。
また、上記デルタディスタンスＴ１、デルタディスタンスＴ２、黒バー幅Ｂ１および黒バー幅Ｂ３は、当該キャラクタが第１１図に示したキャラクタＯ０〜キャラクタＯ９およびキャラクタＥ０〜キャラクタＥ９のうちいずれのキャラクタに該当するかの判定に用いられる重要なパラメータである。
すなわち、第１１図においては、キャラクタＯ０〜キャラクタＯ９およびキャラクタＥ０〜キャラクタＥ９の各デルタディスタンスＴ１およびデルタディスタンスＴ２が異なるため、デルタディスタンスＴ１およびデルタディスタンスＴ２から当該キャラクタが判定される。この判定には、第１３図に示したデルタディスタンスＴ１とデルタディスタンスＴ２の組み合わせパターンと、当該キャラクタとの関係を示した第１の復調テーブル１００が用いられる。
ただし、第１３図に示したように、キャラクタＥ２とキャラクタＥ８、キャラクタＯ２とキャラクタＯ８、キャラクタＯ１とキャラクタＯ７およびキャラクタＥ１とキャラクタＥ７においては、それぞれの組み合わせのデルタディスタンスＴ１およびデルタディスタンスＴ２が同値であることから、デルタディスタンスＴ１およびデルタディスタンスＴ２に基づいて当該キャラクタを判定することができない。
具体的には、キャラクタＥ２とキャラクタＥ８を例にとれば、いずれもデルタディスタンスＴ１が３モジュール、デルタディスタンスＴ２が３モジュールという具合に同値とされており、デルタディスタンスＴ１およびデルタディスタンスＴ２だけからでは、当該キャラクタがキャラクタＥ２であるのかキャラクタＥ８であるのかを判定することができない。
そこで、上記キャラクタＥ２とキャラクタＥ８、キャラクタＯ２とキャラクタＯ８、キャラクタＯ１とキャラクタＯ７およびキャラクタＥ１とキャラクタＥ７においては、１番目の黒バーの黒バー幅と３番目の黒バーの黒バー幅とが異なることを利用することにより、両黒バー幅の相違から当該キャラクタを判定することができる。
具体的には、第１１図に示したキャラクタＥ２とキャラクタＥ８を例にとれば、キャラクタＥ２においては、１番目の黒バーの黒バー幅が２モジュール、３番目の黒バーの黒バー幅が２モジュールである。一方、キャラクタＥ８においては、１番目の黒バーの黒バー幅が１モジュール、３番目の黒バーの黒バー幅が１モジュールであり、キャラクタＥ２の場合と相違する。従って、キャラクタＥ２とキャラクタＥ８とは、１番目の黒バーの黒バー幅と３番目の黒バーの黒バー幅とから判別可能となる。
また、第１の復調テーブル１００（第１３図参照）を用いても判定することができない、上述したキャラクタＯ１およびキャラクタＥ１、キャラクタＯ２およびキャラクタＥ２、キャラクタＯ７およびキャラクタＥ７、キャラクタＯ８およびキャラクタＥ８の判定には、第１４図に示した１番目の黒バーの黒バー幅Ｂ１と３番目の黒バーの黒バー幅Ｂ３との組み合わせパターンと、当該キャラクタとの関係を示した第２の復調テーブル２００が用いられる。
第８図に戻り、スキャナ１における光電変換部２は、バーコード１０を光学的に読み取り、読み取り結果を読取信号Ｓｂとして出力するものであり、レーザ光Ｌをバーコード１０に対して照射するレーザ発振器（図示略）と、バーコード１０により反射されたレーザ光Ｌを受光した後、第２図（ｂ）に示した読取信号Ｓｂを生成する受光部（図示略）とから概略構成されている。
ここで、読取信号Ｓｂのレベルは、第２図（ａ）に示した黒バーＢＢ１、白バーＷＢ１、黒バーＢＢ２、白バーＷＢ２等に対応している。すなわち、黒バーＬＧＢ１、黒バーＢＢ１、黒バーＢＢ２等の光反射率が低いためこれらに対応する読取信号Ｓｂのレベルが低くなっており、一方、白バーＷＢ１、白バーＷＢ２、白バーＬＧＢ２等の光反射率が高いためこれらに対応する読取信号Ｓｂのレベルが高くなっている。
Ａ／Ｄ（Ａｎａｌｏｇ／Ｄｉｇｉｔａｌ）変換部３は、光電変換部２からの読取信号Ｓｂとしきい値とを比較することにより、読取信号Ｓｂを二値化（ディジタル化）する処理を行う。クロック信号発生部４は、所定周期のクロック信号Ｓｃを発生する。バー幅カウンタ５は、クロック信号発生部４より供給されるクロック信号Ｓｃの周期に同期してカウントアップ動作を行い、Ａ／Ｄ変換部３によりディジタル化された読取信号Ｓｂのうち、第２図（ｃ）に示したように黒バー幅Ｂ１、白バー幅Ｂ２、白バー幅Ｂ３、黒バー幅Ｂ４、白バー幅Ｂ５、黒バー幅Ｂ６等をカウント値として測定する。
第２図（ｃ）に示した例では、黒バー幅Ｂ１が２５カウント、白バー幅Ｂ２が２５カウント、白バー幅Ｂ３が２００カウント、黒バー幅Ｂ４が１００カウント、白バー幅Ｂ５が５０カウント、黒バー幅Ｂ６が５０カウントとされている。第８図に戻り、記憶部７は、上記バー幅カウンタ５のカウント値のデータを第２図（ｄ）に示したように黒バー幅Ｂ１、白バー幅Ｂ２、・・・に対応させて記憶している。
また、記憶部７は、第１の復調テーブル１００（第１３図参照）、第２の復調テーブル２００（第１４図参照）、スキャナ制御部６において実行されるプログラムを記憶する。
スキャナ制御部６は、バー幅カウンタ５からの各カウント値のデータ、上述した第１の復調テーブル１００（第１３図参照）および第２の復調テーブル２００（第１４図参照）に基づいて、バーコード１０におけるキャラクタを復調して、復調結果を復調データＤｍとして出力する。このスキャナ制御部６の動作の詳細については、後述する。
通信部８は、スキャナ制御部６からの復調データＤｍをＰＯＳ装置９へ送信する。ＰＯＳ装置９は、復調データＤｍに基づいて、バーコード１０が付された商品（図示略）の価格、商品名等を表示したり、売上管理情報を生成する。
つぎに、上述した従来のバーコード読取装置の動作を第１２図に示したフローチャートを参照して説明する。
ここで、バーコード１０の印刷精度が悪化した場合には、正規の黒バー幅に比して黒バー幅が狭くなる黒細りしたものと、これとは逆に正規の黒バー幅に比して黒バー幅が広くなる黒太りしたものとが存在する。
具体的には、第１５図（ｂ）には、正規の黒バー幅Ｂ１および黒バー幅Ｂ３（第１５図（ａ）参照）に比して狭い黒バー幅Ｂ１’および黒バー幅Ｂ３’とされた黒細りの様子が図示されており、第１５図（ｃ）には、正規の黒バー幅Ｂ１および黒バー幅Ｂ３（第１５図（ａ）参照）に比して広い黒バー幅Ｂ１’’および黒バー幅Ｂ３’’とされた黒太りの様子が図示されている。
このように、バーコード１０が黒細りまたは黒太りした場合には、デルタディスタンスＴ１、デルタディスタンスＴ２、黒バー幅Ｂ１および黒バー幅Ｂ３が正規のバーコード１０に比して変化するため、キャラクタの復調時に誤った復調結果を得てしまう可能性がある。以下に説明する従来のバーコード読取装置は、上述したバーコード１０の黒細りおよび黒太りによる弊害の影響を受けるものである。
第８図において、バーコード読み取りを行うべく、光電変換部２のレーザ発振器（図示略）からレーザ光Ｌがバーコード１０に照射されると、該レーザ光Ｌは、バーコード１０における黒バーと白バーの分布に対応した反射率で反射された後、光電変換部２の受光部（図示略）により受光される。これにより、光電変換部２の受光部においては、反射光が第２図（ｂ）に示したような波形の読取信号Ｓｂに変換された後、該読取信号Ｓｂは、Ａ／Ｄ変換部３へ出力される。Ａ／Ｄ変換部３では、入力された読取信号Ｓｂとしきい値とが比較されることにより、読取信号Ｓｂが二値化され、この二値化された読取信号Ｓｂは、バー幅カウンタ５によりカウントされる。このカウント結果はスキャナ制御部６へ渡される。
また、スキャナ制御部６は、第１２図に示したステップＳＡ１へ進み、上記カウント結果に基づいて、スタートコードまたはストップコードを検出したか否かを判断し、この判断結果が「Ｎｏ」である場合、同判断を繰り返す。ここでいうスタートコードとは、第９図に示したレフトガードバーＬＧＢ（またはライトガードバーＲＧＢ）に対応するコードをいい、ストップコードとは、ライトガードバーＲＧＢ（またはレフトガードバーＬＧＢ）に対応するコードをいう。
ここで、レフトガードバーＬＧＢに対応するスタートコードが検出されると、スキャナ制御部６は、判断結果を「Ｙｅｓ」として、ステップＳＡ２へ進む。ステップＳＡ２では、スキャナ制御部６は、第２図（ａ）および（ｃ）に示した黒バーＬＧＢ１の黒バー幅Ｂ１（＝２５カウント）を基本モジュール幅として、記憶部７に記憶させた後、ステップＳＡ３へ進む。
ステップＳＡ３では、スキャナ制御部６は、１キャラクタ分の黒バー、白バーがスキャニングされたか否かを判断し、この判断結果が「Ｎｏ」である場合、同判断を繰り返す。ここでいう１キャラクタ分の黒バー、白バーとは、たとえば、第１０図（ａ）に示したキャラクタＥ４を表す黒バー、白バーをいう。そして、ステップＳＡ３の判断結果が「Ｙｅｓ」になると、スキャナ制御部６は、ステップＳＡ４へ進む。
ステップＳＡ４では、スキャナ制御部６は、ステップＳＡ３でスキャニングされた１キャラクタ分の白バー、黒バーを合計したモジュール数（黒細り、黒太りがない場合、７モジュール）が、基本モジュール数の整数倍であるか否かを判断し、この判断結果が「Ｙｅｓ」である場合、ステップＳＡ５へ進む。ここで、第１５図（ｂ）または第１５図（ｃ）に示したように、キャラクタが黒細りまたは黒太りしている場合には、１キャラクタ分のモジュール数が基本モジュール幅の整数倍とならないため、スキャナ制御部６は、ステップＳＡ４の判断結果を「Ｎｏ」として、ステップＳＡ１２へ進む。
ステップＳＡ１２では、スキャナ制御部６は、１キャラクタ分のモジュール数と基本モジュール数との比における小数点部分の値（誤差）が許容値（たとえば、±０．３）以下であるか否かを判断する。この判断結果が「Ｎｏ」である場合、スキャナ制御部６は、ステップＳＡ１３へ進む。ステップＳＡ１３では、スキャナ制御部６は、復調データＤｍを無効としてステップＳＡ１へ戻り、つぎのキャラクタに関する上述した動作を繰り返す。
一方、ステップＳＡ１２の判断結果が「Ｙｅｓ」である場合、スキャナ制御部６は、ステップＳＡ５へ進み、第１の復調テーブル１００（第１３図参照）、第２の復調テーブル２００（第１４図参照）を用いて、キャラクタ復調を行った後、ステップＳＡ６へ進む。ステップＳＡ６では、スキャナ制御部６は、ストップコードまたはスタートコードを検出したか否かを判断し、この判断結果が「Ｎｏ」である場合、ステップＳＡ３へ戻り、つぎのキャラクタに関する上述した動作を繰り返す。
そして、ステップＳＡ６の判断結果が「Ｙｅｓ」になった場合、すなわち、バーコード１０におけるすべてのキャラクタの復調が終了した場合、スキャナ制御部６は、ステップＳＡ７へ進む。ステップＳＡ７では、スキャナ制御部６は、周知のモジュラス１０によりチェックデジットを算出した後、ステップＳＡ８へ進む。
具体的には、スキャナ制御部６は、ステップＳＡ７で算出されたチェックデジットと、実際にキャラクタ復調されたチェックデジットコードＣＤ（第９図参照）とが一致するか否かにより、チェック結果が正常であったか否かを判断する。一致である場合には、チェック結果が正常となり、不一致である場合には、チェック結果が異常となる。ここで、ステップＳＡ８の判断結果が「Ｎｏ」である場合、スキャナ制御部６は、ステップＳＡ１３へ進み、復調データＤｍを破棄した後、ステップＳＡ１へ戻る。一方、ステップＳＡ８の判断結果が「Ｙｅｓ」である場合、スキャナ制御部６は、ステップＳＡ９へ進む。ステップＳＡ９では、スキャナ制御部６は、読取正常を報知するための読取正常音を鳴らした後、ステップＳＡ１０へ進む。
ステップＳＡ１０では、スキャナ制御部６は、復調データＤｍを編集した後、ステップＳＡ１１へ進む。ステップＳＡ１１では、スキャナ制御部６は、通信部８を経由して、編集された復調データＤｍをＰＯＳ装置９へ送信した後、ステップＳＡ１へ戻る。これにより、ＰＯＳ装置９においては、復調データＤｍに基づいて、バーコード１０に対応するキャラクタが認識される。
ところで、前述したように従来のバーコード読取装置においては、ステップＳＡ１２（第１２図参照）で説明したように、誤差が許容値を超えると、一律に復調データＤｍを無効、すなわち、バーコード１０における読み取り結果をエラーとしている。この誤差が発生する主な要因は、バーコード１０の印刷精度が許容値を満たしていないことである。この場合、オペレータは、バーコード１０に記載されているコード（２００００００２８９６３２：第９図参照）を目視で確認した後、このすべてのコードを手入力しなければならない。
しかしながら、すべてのコードを手入力することは、非常に面倒であり、時間がかかる。従って、このようなバーコード読取装置は、オペレータにとって非常に使い勝手が悪いため、敬遠される傾向にある。最悪の場合には、バーコード読取装置の読み取り精度が基準値を満たしていたとしても、バーコード読取装置のメーカに対して、バーコード読取装置の機種変更や、製造メーカの変更等をユーザに迫られるという事態が発生する。
従って、本発明は、バーコードの印刷精度が許容値を満たしていない場合であっても、オペレータにできるだけ負担をかけることなく、バーコードを読み取ることができるバーコード読取装置およびバーコード読取方法を提供することを目的としている。
発明の開示
上記目的を達成するために、本発明にかかるバーコード読取装置は、キャラクタを複数のバー幅により表したバーコードを読み取ることにより得られるモジュール数に基づいて前記キャラクタを復調するバーコード読取装置において、前記キャラクタにおけるモジュール数と基本モジュール幅との比率を求める比率算出手段（後述する一実施の形態のスキャナ制御部２５に相当）と、前記比率における誤差量が許容値を超えている場合、誤差成分を含む前記モジュール数を補正する補正手段（後述する一実施の形態のスキャナ制御部２５に相当）と、前記キャラクタにおけるモジュール数、前記補正手段により補正されたモジュール数に基づいて、キャラクタを復調する復調手段（後述する一実施の形態のスキャナ制御部２５に相当）と、前記復調手段の復調結果において、補正されたモジュール数に対応する疑問キャラクタにマーキングを施したものを表示する表示手段（後述する一実施の形態のオペレータ用ディスプレイ３４に相当）と、前記表示手段の表示に基づいて正しいキャラクタを入力するための入力手段（後述する一実施の形態のキーボード３６に相当）とを備えることを特徴とする。
この発明によれば、印刷精度が低いバーコードにおいては、基準値に比して黒バー幅が太くなったり、または細くなったりする。このようなバーコードが読み取られると、キャラクタにおけるモジュール数と基本モジュール幅との比率が整数とならない。従って、比率における誤差量が許容値を超えていると、補正手段により誤差成分を含むモジュール数が補正される。この場合、表示手段には、復調手段の復調結果において、補正されたモジュール数に対応する疑問キャラクタにマーキングを施したものが表示される。この表示に基づいて、入力手段から正しいキャラクタが入力される。
このように、本発明によれば、誤差成分を含むモジュール数に補正をかけ、本来、読み取りエラーとされるキャラクタを、マーキングが施された疑問キャラクタとして表示手段に表示させ、この疑問キャラクタに対応する正しいキャラクタを入力するようにしたので、バーコードにおけるすべてのキャラクタを入力する必要がないためオペレータの負担を軽減することができる。
また、本発明にかかるバーコード読取装置は、上記のバーコード読取装置において、前記復調手段の復調結果における前記疑問キャラクタが、前記入力手段より入力された前記正しいキャラクタに置換された正しい復調結果と、前記疑問キャラクタを含む復調結果との対応関係を表すテーブルを記憶する記憶手段（後述する一実施の形態の記憶部２６に相当）と、前記テーブルにおける前記疑問キャラクタを含む復調結果が得られた回数をカウントするカウント手段（後述する一実施の形態のスキャナ制御部２５に相当）と、前記復調手段により前記疑問キャラクタを含む復調結果が得られかつ前記テーブルに当該復調結果が存在する場合に、前記カウント手段におけるカウント結果がしきい値以上であるとき、前記テーブルにおける前記正しい復調結果を前記表示手段に表示させる制御手段（後述する一実施の形態のスキャナ制御部２５およびＰＯＳ制御部３１に相当）とを備えることを特徴とする。
この発明によれば、復調手段により疑問キャラクタを含む復調結果が得られかつ前記テーブルに当該復調結果が存在する場合、カウント手段におけるカウント結果がしきい値以上であるとき、入力手段による正しいキャラクタの入力を伴うことなく、テーブルにおける正しい復調結果が表示手段に表示される。
このように、本発明によれば、テーブルおよびカウント手段を設けて、カウント手段のカウント結果がしきい値以上である場合に、当該疑問キャラクタを正しいキャラクタとみなして、テーブルにおける正しい復調結果を表示手段に表示させるようにしたので、オペレータによる面倒な入力操作が不要であるため、オペレータに負担をかけることなく、バーコードを読み取ることができる。
また、本発明にかかるバーコード読取装置は、上記のバーコード読取装置において、前記表示手段は、他のキャラクタとは別の表示方法で前記疑問キャラクタを表示することを特徴とする。
この発明によれば、表示手段において疑問キャラクタと他のキャラクタとが表示方法の相違により一目瞭然で判別可能であるため、入力手段からの正しいキャラクタの入力を楽に行うことができる。
また、本発明にかかるバーコード読取装置は、上記のバーコード読取装置において、前記表示手段は、前記疑問キャラクタを前記入力手段より入力された前記正しいキャラクタに置換するとともに、同一の表示方法ですべてのキャラクタを表示することを特徴とする。
この発明によれば、入力手段より正しいキャラクタが入力されると、疑問キャラクタが正しいキャラクタに置換されるとともに、すべてのキャラクタが同一の表示方法で表示されるようにしたので、疑問キャラクタが置換されたことをオペレータが瞬時に認識することができる。
また、本発明にかかるバーコード読取装置は、複数のキャラクタから構成されるバーコードを読み取り、前記バーコードを復調するバーコード読取装置において、前記バーコードに含まれるキャラクタのうち、誤読の可能性がある疑問キャラクタの有無を判別する判別手段（後述する一実施の形態のスキャナ制御部２５に相当）と、前記バーコードの復調結果を表示する表示手段（後述する一実施の形態のオペレータ用ディスプレイ３４に相当）と、前記判別手段により前記疑問キャラクタがあると判別された場合、前記表示手段に表示された前記復調結果に含まれる疑問キャラクタを、他のキャラクタと判別可能に表示させる制御手段（後述する一実施の形態のスキャナ制御部２５に相当）とを備えることを特徴とする。
この発明によれば、印刷精度が低いバーコードにおいては、基準値に比して黒バー幅が太くなったり、または細くなったりする。このようなバーコードが読み取られると、判別手段により、誤読の可能性がある疑問キャラクタの有無が判定される。そして、疑問キャラクタがあると判別されると、制御手段は、表示手段に表示された復調結果に含まれる疑問キャラクタを、他のキャラクタと判別可能に表示させる。
このように、本発明によれば、表示手段に表示された疑問キャラクタと他のキャラクタとを表示方法の相違により一目瞭然で判別することができる。
また、本発明にかかるバーコード読取装置は、上記のバーコード読取装置において、前記疑問キャラクタに対応する正しいキャラクタを入力する入力手段（後述する一実施の形態のキーボード３６に相当）を備え、前記制御手段は、前記疑問キャラクタを前記正しいキャラクタに置換し、当該正しいキャラクタを含む復調結果を修正済復調結果として出力することを特徴とする。
この発明によれば、入力手段からの入力により、疑問キャラクタを正しいキャラクタに置換することでキャラクタ修正を行うようにしたので、バーコードにおけるすべてのキャラクタを入力する必要がないためオペレータの負担を軽減することができる。
また、本発明にかかるバーコード読取装置は、上記のバーコード読取装置において、前記疑問キャラクタを含む前記復調結果と前記修正済復調結果とを対応付けて記憶する記憶手段（後述する一実施の形態の記憶部２６に相当）と、前記バーコードの復調結果と前記記憶手段に記憶されている前記疑問キャラクタを含む復調結果とを比較する比較手段（後述する一実施の形態のスキャナ制御部２５に相当）とを備え、前記制御手段は、前記比較手段の比較結果が一致である場合、前記バーコードの復調結果に代えて、前記記憶手段に記憶されている修正済復調結果を出力することを特徴とする。
この発明によれば、疑問キャラクタを含む復調結果が得られかつ記憶手段に当該復調結果と同一の復調結果が存在する場合、制御手段により、バーコードの復調結果に代えて、修正済復調結果が出力されるようにしたので、オペレータによる面倒な入力操作が不要であるため、オペレータに負担をかけることなく、バーコードを読み取ることができる。
また、本発明にかかるバーコード読取方法は、キャラクタを複数のバー幅により表したバーコードを読み取ることにより得られるモジュール数に基づいて前記キャラクタを復調するバーコード読取方法において、前記キャラクタにおけるモジュール数と基本モジュール幅との比率を求める比率算出工程（後述する一実施の形態のステップＳＢ２に相当）と、前記比率における誤差量が許容値を超えている場合、誤差成分を含む前記モジュール数を補正する補正工程（後述する一実施の形態のステップＳＢ１５に相当）と、前記キャラクタにおけるモジュール数、前記補正工程により補正されたモジュール数に基づいて、キャラクタを復調する復調工程（後述する一実施の形態のステップＳＢ１６に相当）と、前記復調工程の復調結果において、補正されたモジュール数に対応する疑問キャラクタにマーキングを施したものを表示手段に表示させる表示工程（後述する一実施の形態のステップＳＣ３に相当）と、前記表示手段の表示に基づいて正しいキャラクタを入力するための入力工程（後述する一実施の形態のステップＳＣ４に相当）とを含むことを特徴とする。
この発明によれば、印刷精度が低いバーコードにおいては、基準値に比して黒バー幅が太くなったり、または細くなったりする。このようなバーコードが読み取られると、キャラクタにおけるモジュール数と基本モジュール幅との比率が整数とならない。従って、比率における誤差量が許容値を超えていると、補正工程においては、誤差成分を含むモジュール数が補正される。この場合、表示手段には、復調工程の復調結果において、補正されたモジュール数に対応する疑問キャラクタにマーキングが施されたものが表示される。この表示に基づいて、入力工程では、正しいキャラクタが入力される。
このように、本発明によれば、誤差成分を含むモジュール数に補正をかけ、本来、読み取りエラーとされるキャラクタを、マーキングが施された疑問キャラクタとして表示手段に表示させ、この疑問キャラクタに対応する正しいキャラクタを入力するようにしたので、バーコードにおけるすべてのキャラクタを入力する必要がないためオペレータの負担を軽減することができる。
発明を実施するための最良の形態
本発明をより詳細に説述するために、添付の図面に従ってこれを説明する。
第１図は、一実施の形態の構成を示すブロック図である。この図において、第８図の各部に対応する部分には、同一の符号を付ける。スキャナ２０における光電変換部２１は、前述した光電変換部２（第８図参照）と同様にして、バーコード１０を光学的に読み取り、読み取り結果を読取信号Ｓｂとして出力するものであり、レーザ光Ｌをバーコード１０に対して照射するレーザ発振器（図示略）と、バーコード１０により反射されたレーザ光Ｌを受光した後、第２図（ｂ）に示した読取信号Ｓｂを生成する受光部（図示略）とから概略構成されている。
Ａ／Ｄ変換部２２は、前述したＡ／Ｄ変換部３（第８図参照）と同様にして、光電変換部２１からの読取信号Ｓｂとしきい値とを比較することにより、読取信号Ｓｂを二値化（ディジタル化）する処理を行う。クロック信号発生部２３は、前述したクロック信号発生部４（第８図参照）と同様にして、所定周期のクロック信号Ｓｃを発生する。バー幅カウンタ２４は、前述したバー幅カウンタ５（第８図参照）と同様にして、クロック信号発生部２３より供給されるクロック信号Ｓｃの周期に同期してカウントアップ動作を行い、Ａ／Ｄ変換部２２によりディジタル化された読取信号Ｓｂのうち、第２図（ｃ）に示したように黒バー幅Ｂ１、白バー幅Ｂ２、白バー幅Ｂ３、黒バー幅Ｂ４、白バー幅Ｂ５、黒バー幅Ｂ６等をカウント値として測定する。
記憶部２６は、第１の復調テーブル１００（第１３図参照）、第２の復調テーブル２００（第１４図参照）、およびスキャナ制御部２５において実行されるプログラムを記憶する。また記憶部２６は、第３図に示した疑問キャラクタテーブルＴを記憶する。この疑問キャラクタテーブルＴの詳細については後述する。
スキャナ制御部２５は、前述したスキャナ制御部６（第８図参照）と同様にして、バー幅カウンタ２４からのカウント値のデータ、上述した第１の復調テーブル１００（第１３図参照）および第２の復調テーブル２００（第１４図参照）に基づいて、バーコード１０におけるキャラクタを復調して、復調結果を復調データＤｍとして出力する。このスキャナ制御部２５の動作の詳細については、後述する。通信部２７は、ＰＯＳ装置３０における通信部３２との間で所定の通信プロトコルに従って通信を行う。
ＰＯＳ装置３０は、復調データＤｍに基づいて、バーコード１０が付された商品（図示略）の価格、商品名等を表示したり、売上管理情報を生成する。このＰＯＳ装置３０において、ＰＯＳ制御部３１は、装置各部を制御する。このＰＯＳ制御部３１の動作の詳細については、後述する。記憶部３３は、各種データを記憶する。
オペレータ用ディスプレイ３４は、オペレータに対する各種表示を行うものであり、ＣＲＴ（Ｃａｔｈｏｄｅ  −Ｒａｙ  Ｔｕｂｅ）、ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）等である。顧客用ディスプレイ３５は、顧客に対して商品名、小計金額、合計金額等を表示するものであり、ＣＲＴ、ＬＣＤ等である。キーボード３６は、キー「０」〜キー「９」までのテンキー、ファンクションキーとして機能を有するキーＦからなる。
スピーカ３７は、ＰＯＳ制御部３１の制御により、警告音等を発する。プリンタ３８は、レシート等を印刷する。キャッシュドロア３９は、現金を保管・管理する。ホスト通信部４０は、売り上げや、商品の在庫情報等に関するＰＯＳデータをネットワーク５０を介してホスト６０へ送信する。
つぎに、一実施の形態の動作を第４図〜第６図に示したフローチャートを参照して説明する。第４図および第５図は、第１図に示したスキャナ２０側の動作を説明するフローチャートであり、第６図は、第１図に示したＰＯＳ装置３０側の動作を説明するフローチャートである。
第１図において、バーコード読み取りを行うべく、光電変換部２１のレーザ発振器（図示略）からレーザ光Ｌがバーコード１０に照射されると、該レーザ光Ｌは、バーコード１０における黒バーと白バーの分布に対応した反射率で反射された後、光電変換部２１の受光部（図示略）により受光される。これにより、光電変換部２１の受光部においては、反射光が第２図（ｂ）に示したような波形の読取信号Ｓｂに変換された後、該読取信号Ｓｂは、Ａ／Ｄ変換部２２へ出力される。Ａ／Ｄ変換部２２では、入力された読取信号Ｓｂとしきい値とが比較されることにより、読取信号Ｓｂが二値化され、この二値化された読取信号Ｓｂは、バー幅カウンタ２４によりカウントされる。このカウント結果は、スキャナ制御部２５へ渡される。
また、スキャナ制御部２５は、第４図に示したステップＳＢ１へ進み、ステップＳＡ１（第１２図参照）と同様にして、上記カウント結果に基づいて、スタートコードまたはストップコードを検出したか否かを判断し、この判断結果が「Ｎｏ」である場合、同判断を繰り返す。ここで、レフトガードバーＬＧＢに対応するスタートコードが検出されると、スキャナ制御部２５は、判断結果を「Ｙｅｓ」として、ステップＳＢ２へ進む。ステップＳＢ２では、スキャナ制御部２５は、ステップＳＡ２（第１２図参照）と同様にして、第２図（ａ）および（ｃ）に示した黒バーＬＧＢ１の黒バー幅Ｂ１（＝２５カウント）を基本モジュール幅として、記憶部２６に記憶させた後、ステップＳＢ３へ進む。
ステップＳＢ３では、スキャナ制御部２５は、ステップＳＡ３（第１２図参照）と同様にして、１キャラクタ分の黒バー、白バーがスキャニングされたか否かを判断し、この判断結果が「Ｎｏ」である場合、同判断を繰り返す。そして、ステップＳＢ３の判断結果が「Ｙｅｓ」になると、スキャナ制御部２５は、ステップＳＢ４へ進む。
ステップＳＢ４では、スキャナ制御部２５は、ステップＳＡ４（第１２図参照）と同様にして、ステップＳＢ３でスキャニングされた１キャラクタ分の白バー、黒バーを合計したモジュール数（黒細り、黒太りがない場合、７モジュール）が、基本モジュール数の整数倍であるか否かを判断し、この判断結果が「Ｙｅｓ」である場合、ステップＳＢ５へ進む。
ステップＳＢ５では、スキャナ制御部２５は、ステップＳＡ５（第１２図参照）と同様にして、第１の復調テーブル１００（第１３図参照）、第２の復調テーブル２００（第１４図参照）を用いて、キャラクタ復調を行った後、ステップＳＢ６へ進む。ステップＳＢ６では、スキャナ制御部２５は、復調されたキャラクタデータを記憶部２６に記憶させた後、ステップＳＢ７へ進む。
ステップＳＢ７では、スキャナ制御部２５は、ストップコードまたはスタートコードを検出したか否かを判断し、この判断結果が「Ｎｏ」である場合、ステップＳＢ３へ戻り、つぎのキャラクタに関する上述した動作を繰り返す。
ここで、第１５図（ｂ）または第１５図（ｃ）に示したように、キャラクタが黒細りまたは黒太りしている場合には、１キャラクタ分のモジュール数が基本モジュール幅の整数倍とならないため、スキャナ制御部２５は、ステップＳＢ４の判断結果を「Ｎｏ」として、ステップＳＢ１４へ進む。ステップＳＢ１４では、スキャナ制御部２５は、ステップＳＡ１２（第１２図参照）と同様にして、１キャラクタ分のモジュール数と基本モジュール数との比における小数点部分の値（誤差）が許容値（たとえば、±０．３）以下であるか否かを判断し、この判断結果が「Ｙｅｓ」である場合、ステップＳＢ５へ進む。
この場合、ステップＳＢ１４の判断結果が「Ｎｏ」であるものとすると、スキャナ制御部２５は、ステップＳＢ１５へ進む。ステップＳＢ１５では、スキャナ制御部２５は、ステップＳＢ４で得られた１キャラクタ分のモジュール数を基本モジュール数で除算した結果を四捨五入した後、ステップＳＢ１６へ進む。ステップＳＢ１６では、スキャナ制御部２５は、ステップＳＡ５（第１２図参照）と同様にして、ステップＳＢ１５で四捨五入された結果、第１の復調テーブル１００（第１３図参照）および第２の復調テーブル２００（第１４図参照）を用いてキャラクタ復調を行った後、ステップＳＢ１７へ進む。
ステップＳＢ１７では、スキャナ制御部２５は、ステップＳＢ１６で復調されたキャラクタを疑問キャラクタとし、該疑問キャラクタに対応する疑問キャラクタデータを記憶部２６に記憶させた後、ステップＳＢ１８へ進む。ここでいう疑問キャラクタとは、誤差が許容値を超えていること、および四捨五入をしたことに起因して、復調された結果が誤りである可能性があるキャラクタをいう。
ステップＳＢ１８では、スキャナ制御部２５は、ストップコードまたはスタートコードを検出したか否かを判断し、この場合、判断結果を「Ｎｏ」として、ステップＳＢ３へ戻り、つぎのキャラクタに関する上述した動作を繰り返す。
そして、バーコード１０（第９図参照）に関するすべてのキャラクタの復調が終了し、ステップＳＢ１８の判断結果が「Ｙｅｓ」になると、スキャナ制御部２５は、第５図に示したステップＳＢ２０へ進む。この場合、第９図に示した正規の復調データ「２００００００２８９６３２」に対して、疑問キャラクタを含む復調データ「２００００００＊８８９６３＊８」がキャラクタ復調の結果として得られたものとする。ここで、疑問キャラクタには、「＊」印が付されている。従って、疑問キャラクタを含む復調データ「２００００００＊８８９６３＊８」においては、「＊８」および「＊８」が疑問キャラクタである。
ステップＳＢ２０では、スキャナ制御部２５は、上記疑問キャラクタを含む復調データ「２００００００＊８８９６３＊８」をキーとして、第３図に示した疑問キャラクタテーブルＴを検索した後、ステップＳＢ２１へ進む。この疑問キャラクタテーブルＴは、正しい復調データ（同図では、「２００００００２８９６３２」）に対応する疑問キャラクタを含む復調データと、復調された回数との関係を示すテーブルである。同図において、疑問キャラクタには、「＊」印が付されている。
ステップＳＢ２１では、スキャナ制御部２５は、疑問キャラクタテーブルＴにおいて、疑問キャラクタを含む復調データ「２００００００＊８８９６３＊８」と一致する復調データが存在するか否かを判断し、この場合、判断結果を「Ｙｅｓ」として、ステップＳＢ２２へ進む。ステップＳＢ２２では、スキャナ制御部２５は、疑問キャラクタテーブルＴにおける、疑問キャラクタを含む復調データ「２００００００＊８８９６３＊８」に対応する回数（＝１２）を１インクリメント（＝１３）した後、ステップＳＢ２３へ進む。
ステップＳＢ２３では、スキャナ制御部２５は、１インクリメント後の回数がしきい値Ｎ（たとえば、１５）以上であるか否かを判断する。このしきい値Ｎは、疑問キャラクタを含む復調データを正しいデータとしてみなすか否かの判断に用いられる。この場合、疑問キャラクタを含む復調データ「２００００００＊８８９６３＊８」に対応する回数（＝１３）がしきい値Ｎ（＝１５）未満であるため、スキャナ制御部２５は、ステップＳＢ２３の判断結果を「Ｎｏ」として、ステップＳＢ２９へ進む。
ステップＳＢ２９では、スキャナ制御部２５は、警告音を鳴らした後、ステップＳＢ３０へ進む。ステップＳＢ３０では、スキャナ制御部２５は、疑問キャラクタを含む復調データに「＊」印を付与したもの（「２００００００＊８８９６３＊８」：第３図参照）、すなわち、復調データＤｍを編集した後、ステップＳＢ３１へ進む。ステップＳＢ３１では、スキャナ制御部２５は、第１図に示したＰＯＳ装置３０へ復調データＤｍを送信した後、ステップＳＢ３２へ進む。ステップＳＢ３２では、ＰＯＳ装置３０からの応答があるか否かを判断し、この場合、判断結果を「Ｎｏ」として同判断を繰り返す。
一方、第６図に示したステップＳＣ１では、第１図に示したＰＯＳ装置３０のＰＯＳ制御部３１は、スキャナ２０からの復調データＤｍを受信したか否かを判断し、この場合、判断結果を「Ｎｏ」として、同判断を繰り返す。そして、ステップＳＢ３１（第５図参照）で送信された疑問キャラクタを含む復調データＤｍ（「２００００００＊８８９６３＊８」）が通信部３２に受信されると、ＰＯＳ制御部３１は、ステップＳＣ１の判断結果を「Ｙｅｓ」として、ステップＳＣ２へ進む。
ステップＳＣ２では、ＰＯＳ制御部３１は、ステップＳＣ１で受信された復調データＤｍ（「２００００００＊８８９６３＊８」）に疑問キャラクタがあるか否かを判断する。この場合、ＰＯＳ制御部３１は、疑問キャラクタ「＊８」および「＊８」があるため、ステップＳＣ２の判断結果を「Ｙｅｓ」として、ステップＳＣ３へ進む。なお、ステップＳＣ２の判断結果が「Ｎｏ」である場合、ＰＯＳ制御部３１は、ステップＳＣ７へ進む。
この場合、ステップＳＣ３では、ＰＯＳ制御部３１は、第７図（ａ）に示したように、疑問キャラクタを含む復調データ「２００００００＊８８９６３＊８」をオペレータ用ディスプレイ３４（第１図参照）に表示させる。このとき、ＰＯＳ制御部３１は、第７図（ａ）に示したように、疑問キャラクタ「＊８」および「＊８」を点滅表示させる。
ステップＳＣ４では、オペレータは、オペレータ用ディスプレイ３４の表示画面（第７図（ａ）参照）から疑問キャラクタを確認した後、疑問キャラクタに対応する、第９図に示した実際のバーコード１０に記載されているキャラクタを確認する。この場合、疑問キャラクタ「＊８」および「＊８」は、第９図に示したキャラクタ「２］および「２」に対応している。つぎに、オペレータは、上記キャラクタ「２」および「２」をキーボード３６のテンキーより入力した後、入力完了を意味するキーＦを押下する。
これにより、ステップＳＣ５では、ＰＯＳ制御部３１は、キー入力を受けて、オペレータ用ディスプレイ３４における表示方法を、第７図（ａ）に示した表示から第７図（ｂ）に示した表示に変更した後、ステップＳＣ６へ進む。この場合、第７図（ｂ）に示したように、疑問キャラクタ「＊８」および「＊８」が正規のキャラクタ「２」および「２」に変更されるとともに、点滅表示から連続表示に変更される。
ステップＳＣ６では、ＰＯＳ制御部３１は、ステップＳＣ４で入力された「２」、「２」および「Ｆ」に対応するキーデータＤｋを、通信部３２を経由してスキャナ２０へ送信した後、ステップＳＣ７へ進む。ステップＳＣ７では、ＰＯＳ制御部３１は、第７図（ｂ）に示した正しい復調データＤｍを記憶部３３に登録した後、ステップＳＣ１へ戻り、上述した動作を繰り返す。
そして、ＰＯＳ装置３０からの応答があると、スキャナ制御部２５は、第５図に示したステップＳＢ３２の判断結果を「Ｙｅｓ」として、ステップＳＢ３３へ進む。ステップＳＢ３３では、スキャナ制御部２５は、ステップＳＣ６（第６図参照）で送信されたキーデータＤｋを受信した後、ステップＳＢ３４へ進む。ステップＳＢ３４では、スキャナ制御部２５は、キーデータＤｋに含まれるキーＦのデータを受信したか否かを判断し、この場合、判断結果を「Ｙｅｓ」として、ステップＳＢ３５へ進む。なお、ステップＳＢ３４の判断結果が「Ｎｏ」である場合、スキャナ制御部２５は、ステップＳＢ３３へ戻り、上述した動作を繰り返す。
この場合、ステップＳＢ３５では、キーデータＤｋに含まれる「２」および「２」に基づいて、第３図に示した疑問キャラクタテーブルＴに、正しい復調データＤｍ（「２００００００２８９６３２」）を追加した後、ステップＳＢ３６へ進む。なお、スキャナ制御部２５は、すでに正しい復調データＤｍが疑問キャラクタテーブルＴに存在する場合には、ステップＳＢ３５をスキップする。ステップＳＢ３６では、スキャナ制御部２５は、警告音の鳴動を停止した後、第４図に示したステップＳＢ１へ戻り、前述した動作を繰り返す。
なお、第５図に示したステップＳＢ２１の判断結果が「Ｎｏ」である場合、スキャナ制御部２５は、ステップＳＢ２７へ進む。ステップＳＢ２７では、スキャナ制御部２５は、疑問キャラクタを含む復調データを疑問キャラクタテーブルＴ（第３図参照）に追加した後、ステップＳＢ２８へ進む。ステップＳＢ２８では、スキャナ制御部２５は、疑問キャラクタテーブルＴにおいて、追加された疑問キャラクタを含む復調データに対応する回数を１とした後、ステップＳＢ２９へ進む。以後、ステップＳＢ３０以降においては、前述した動作と同様の動作が行われる。
なお、ステップＳＢ２３の判断結果が「Ｙｅｓ」である場合、スキャナ制御部２５はステップＳＢ２４へ進む。ステップＳＢ２４では、スキャナ制御部２５は読み取りが正常に行われたことを意味する読取正常音を鳴らした後、ステップＳＢ２５へ進む。ステップＳＢ２５では、スキャナ制御部２５は疑問キャラクタテーブルＴから正しい復調データＤｍ（＝「２００００００２８９６３２」）を取得した後、ステップＳＢ２６へ進む。ステップＳＢ２６では、スキャナ制御部２５は、通信部２７を経由してＰＯＳ装置３０へ上記正しい復調データＤｍを送信した後、第４図に示したステップＳＢ１へ戻り、前述した動作を繰り返す。
なお、第４図に示したステップＳＢ７の判断結果が「Ｙｅｓ」である場合、スキャナ制御部２５は、ステップＳＢ８へ進む。ステップＳＢ８では、スキャナ制御部２５は、キャラクタの復調結果において疑問キャラクタがあるか否かを判断し、判断結果が「Ｙｅｓ」である場合、第５図に示したステップＳＢ２０へ進み、前述した動作と同様の動作を行う。
一方、第４図に示したステップＳＢ８の判断結果が「Ｎｏ」である場合、すなわち正常にキャラクタ復調が行われた場合、スキャナ制御部２５は、ステップＳＢ９へ進む。ステップＳＢ９では、スキャナ制御部２５は、ステップＳＡ７（第１２図参照）と同様にして、周知のモジュラス１０によりチェックデジットを算出した後、ステップＳＢ１０へ進む。
ステップＳＢ１０では、スキャナ制御部２５は、ステップＳＢ９で算出されたチェックデジットと、実際にキャラクタ復調されたチェックデジットコードＣＤ（第９図参照）とが一致するか否かにより、チェック結果が正常であったか否かを判断し、この判断結果が「Ｎｏ」である場合、ステップＳＢ１９へ進み、復調データＤｍを破棄した後、ステップＳＢ１へ戻る。
一方、ステップＳＢ１０の判断結果が「Ｙｅｓ」である場合、スキャナ制御部２５は、ステップＳＢ１１へ進む。ステップＳＢ１１では、スキャナ制御部２５は、読取正常を報知するための読取正常音を鳴らした後、ステップＳＢ１２へ進む。ステップＳＢ１２では、スキャナ制御部２５は、復調データＤｍを編集した後、ステップＳＢ１３へ進む。ステップＳＢ１３では、スキャナ制御部２５は、通信部２７を経由して、編集された復調データＤｍをＰＯＳ装置３０へ送信した後、ステップＳＢ１へ戻る。これにより、ＰＯＳ制御部３１は、第６図に示したステップＳＣ１の判断結果を「Ｙｅｓ」として、ステップＳＣ２以降の処理を実行する。
なお、一実施の形態においては、疑問キャラクタテーブルＴに基づいて、印刷精度が低いバーコードを統計的に割り出し、この結果をＰＯＳ装置３０からネットワーク５０を介してホスト６０へ送信するようにしてもよい。この場合には、ホスト６０で印刷精度が低いバーコードを集計し、この集計結果に基づいて当該バーコードを印刷しているメーカに対して、印刷精度の向上を促すことが可能である。
以上説明したように、一実施の形態によれば、誤差成分を含むモジュール数を四捨五入し、本来、読み取りエラーとされるキャラクタを、第７図（ａ）に示したように「＊」印が付与された疑問キャラクタとしてオペレータ用ディスプレイ３４に表示させ、この疑問キャラクタに対応する正しいキャラクタを入力するようにしたので、バーコード１０におけるすべてのキャラクタを入力する必要がないためオペレータの負担を軽減することができる。
また、一実施の形態によれば、疑問キャラクタテーブルＴ（第３図参照）を設けて、ステップＳＢ２３（第５図参照）におけるカウント結果（回数）がしきい値Ｎ以上である場合に、当該疑問キャラクタを正しいキャラクタとみなして、疑問キャラクタテーブルＴにおける正しい復調データＤｍをオペレータ用ディスプレイ３４に表示させるようにしたので、オペレータによる面倒な入力操作が不要であるため、オペレータに負担をかけることなく、バーコードを読み取ることができる。
さらに、本発明にかかる一実施の形態によれば、オペレータ用ディスプレイ３４において疑問キャラクタと他のキャラクタとが表示方法の相違により一目瞭然で判別可能であるため、キーボード３６からの正しいキャラクタの入力を楽に行うことができる。
加えて、一実施の形態によれば、キーボード３６より正しいキャラクタが入力されると、疑問キャラクタが正しいキャラクタに置換されるとともに、すべてのキャラクタが同一の表示方法で表示されるようにしたので、疑問キャラクタが置換されたことをオペレータが瞬時に認識することができる。
以上説明したように、本発明にかかるバーコード読取装置およびバーコード読取方法によれば、誤差成分を含むモジュール数に補正をかけ、本来、読み取りエラーとされるキャラクタを、マーキングが施された疑問キャラクタとして表示手段に表示させ、この疑問キャラクタに対応する正しいキャラクタを入力するようにしたので、バーコードにおけるすべてのキャラクタを入力する必要がないためオペレータの負担を軽減することができるという効果を奏する。
また、本発明にかかるバーコード読取装置によれば、テーブルおよびカウント手段を設けて、カウント手段のカウント結果がしきい値以上である場合に、当該疑問キャラクタを正しいキャラクタとみなして、テーブルにおける正しい復調結果を表示手段に表示させるようにしたので、オペレータによる面倒な入力操作が不要であるため、オペレータに負担をかけることなく、バーコードを読み取ることができるという効果を奏する。
また、本発明にかかるバーコード読取装置によれば、表示手段において疑問キャラクタと他のキャラクタとが表示方法の相違により一目瞭然で判別可能であるため、入力手段からの正しいキャラクタの入力を楽に行うことができるという効果を奏する。
また、本発明にかかるバーコード読取装置によれば、入力手段より正しいキャラクタが入力されると、疑問キャラクタが正しいキャラクタに置換されるとともに、すべてのキャラクタが同一の表示方法で表示されるようにしたので、疑問キャラクタが置換されたことをオペレータが瞬時に認識することができるという効果を奏する。
また、本発明にかかるバーコード読取装置によれば、表示手段に表示された疑問キャラクタと他のキャラクタとを表示方法の相違により一目瞭然で判別することができるという効果を奏する。
また、本発明にかかるバーコード読取装置によれば、入力手段からの入力により、疑問キャラクタを正しいキャラクタに置換することでキャラクタ修正を行うようにしたので、バーコードにおけるすべてのキャラクタを入力する必要がないためオペレータの負担を軽減することができるという効果を奏する。
また、本発明にかかるバーコード読取装置によれば、疑問キャラクタを含む復調結果が得られかつ記憶手段に当該復調結果と同一の復調結果が存在する場合、制御手段により、バーコードの復調結果に代えて、修正済復調結果が出力されるようにしたので、オペレータによる面倒な入力操作が不要であるため、オペレータに負担をかけることなく、バーコードを読み取ることができるという効果を奏する。
産業上の利用可能性
以上のように、本発明にかかるバーコード読取装置およびバーコード読取方法は、印刷精度が低いバーコードを読み取る際に有用である。
【図面の簡単な説明】
第１図は、本発明にかかる一実施の形態の構成を示すブロック図であり、第２図は、第１図に示したスキャナ２０および第８図に示したスキャナ１の動作を説明する図であり、第３図は、同一実施の形態における疑問キャラクタテーブルＴの一例を示す図であり、第４図は、第１図に示したスキャナ２０の動作を説明するフローチャートであり、第５図は、第１図に示したスキャナ２０の動作を説明するフローチャートであり、第６図は、第１図に示したＰＯＳ装置３０の動作を説明するフローチャートであり、第７図は、第１図に示したオペレータ用ディスプレイ３５の表示例を示す図であり、第８図は、従来のバーコード読取装置の構成を示すブロック図であり、第９図は、バーコード１０の構成を示すブロック図であり、第１０図は、キャラクタＥ４、Ｅ６、Ｅ２およびＥ８を示す図であり、第１１図は、キャラクタＯ０〜Ｏ９およびＥ０〜Ｅ９を示す図であり、第１２図は、従来のバーコード読取装置の動作を説明するフローチャートであり、第１３図は、第１の復調テーブル１００を示す図であり、第１４図は、第２の復調テーブル２００を示す図であり、第１５図は、キャラクタが全体的に黒細りおよび黒太りした場合の様子を説明する図である。
【図１】
0004416980.tif 000002
【図２】
0004416980.tif 000003
【図３】
0004416980.tif 000004
【図４】
0004416980.tif 000005
【図５】
0004416980.tif 000006
【図６】
0004416980.tif 000007
【図７】
0004416980.tif 000008
【図８】
0004416980.tif 000009
【図９】
0004416980.tif 000010
【図１０】
0004416980.tif 000011
【図１１】
0004416980.tif 000012
【図１２】
0004416980.tif 000013
【図１３】
0004416980.tif 000014
【図１４】
0004416980.tif 000015
【図１５】
0004416980.tif 000016