(57)【要約】【課題】センサによりバーコード及びマーカを検出する際に、センサによるマーカの誤検出を防止マーカの誤検出を防止する。【解決手段】ＣＰＵ２１は、センサ部２８の出力から出力値を取得する。ＣＰＵ２１は、取得されたセンサ部２８の出力値が予め定められた範囲内にあるか否かを判定する。ＣＰＵ２１は、取得されたセンサ部２８の出力値が極大となったときの極大値と極小となったときの極小値とを取得し、極大値と極小値との差分を算出する。ＣＰＵ２１は、センサ部２８の出力値が予め定められた範囲内にあると判定したときに、算出された差分が予め定められた固定バー認識幅（可変バー認識幅）以上であるか否かを判定する。ＣＰＵ２１は、差分が固定バー認識幅（可変バー認識幅）以上であると判定したときに、センサ部２８の出力値が予め定められた範囲を超えたと判定する。【選択図】図３
2014119976.tif 000002
【特許請求の範囲】
【請求項１】
用紙に形成されたバーコードを光学的に読み取り、読み取った結果を出力するセンサと、
前記センサの出力から出力値を取得する出力値取得手段と、
前記出力値取得手段によって取得されたセンサの出力値が予め定められた範囲内にあるか否かを判定する出力値判定手段と、
前記出力値取得手段によって取得されたセンサの出力値が極大となったときの極大値と極小となったときの極小値とを取得し、前記極大値と前記極小値との差分を算出する差分算出手段と、
前記出力値判定手段によってセンサの出力値が前記予め定められた範囲内にあると判定したときに、前記差分算出手段によって算出された差分が予め定められた判定値以上であるか否かを判定する差分判定手段と、
前記差分判定手段によって前記差分が前記判定値以上であると判定したときに、前記センサの出力値が前記予め定められた範囲を超えたと判定するみなし判定手段と、
を備えたことを特徴とするバーコード読取装置。
【請求項２】
前記判定値を変更する判定値変更手段を備えたことを特徴とする請求項１に記載のバーコード読取装置。
【請求項３】
前記差分判定手段は、前記差分が前記判定値以上であると判定しないときに該判定値を所定量減じ、前記差分が所定量減じた後の判定値以上であるか否かを判定し、
前記判定値変更手段は、前記差分判定手段によって前記差分が所定量減じた後の判定値以上であると判定したときに、前記判定値を該所定量減じた後の判定値に変更することを特徴とする請求項２に記載のバーコード読取装置。
【請求項４】
用紙に形成されたバーコードをセンサで光学的に読み取り、読み取った結果を出力する読取工程と、
前記センサの出力から出力値を取得する出力値取得工程と、
前記出力値取得工程において取得されたセンサの出力値が予め定められた範囲内にあるか否かを判定する出力値判定工程と、
前記出力値取得工程において取得されたセンサの出力値が極大となったときの極大値と極小となったときの極小値とを取得し、前記極大値と前記極小値との差分を算出する差分算出工程と、
前記出力値判定工程においてセンサの出力値が前記予め定められた範囲内にあると判定したときに、前記差分算出工程において算出された差分が予め定められた判定値以上であるか否かを判定する差分判定工程と、
前記差分判定工程において前記差分が前記判定値以上であると判定したときに、前記センサの出力値が前記予め定められた範囲を超えたと判定するみなし判定工程と、
を含むことを特徴とするバーコード読取方法。
【請求項５】
前記判定値を変更する判定値変更工程をさらに含むことを特徴とする請求項４に記載のバーコード読取方法。
【請求項６】
前記差分判定工程は、前記差分が前記判定値以上であると判定しないときに該判定値を所定量減じ、前記差分が所定量減じた後の判定値以上であるか否かを判定し、
前記判定値変更工程は、前記差分判定工程において前記差分が所定量減じた後の判定値以上であると判定したときに、前記判定値を該所定量減じた後の判定値に変更することを特徴とする請求項５に記載のバーコード読取方法。
【請求項７】
コンピュータに、
用紙に形成されたバーコードをセンサで光学的に読み取り、読み取った結果を出力する読取機能と、
前記センサの出力から出力値を取得する出力値取得機能と、
前記出力値取得機能によって取得されたセンサの出力値が予め定められた範囲内にあるか否かを判定する出力値判定機能と、
前記出力値取得機能によって取得されたセンサの出力値が極大となったときの極大値と極小となったときの極小値とを取得し、前記極大値と前記極小値との差分を算出する差分算出機能と、
前記出力値判定機能によってセンサの出力値が前記予め定められた範囲内にあると判定したときに、前記差分算出工程において算出された差分が予め定められた判定値以上であるか否かを判定する差分判定機能と、
前記差分判定機能によって前記差分が前記判定値以上であると判定したときに、前記センサの出力値が前記予め定められた範囲を超えたと判定するみなし判定機能と、
を実現させるバーコード読取プログラム。
【請求項８】
前記コンピュータに、前記判定値を変更する判定値変更機能をさらに実現させることを特徴とする請求項７に記載のバーコード読取プログラム。
【請求項９】
前記差分判定機能は、前記差分が前記判定値以上であると判定しないときに該判定値を所定量減じ、前記差分が所定量減じた後の判定値以上であるか否かを判定し、
前記判定値変更機能は、前記差分判定機能によって前記差分が所定量減じた後の判定値以上であると判定したときに、前記判定値を該所定量減じた後の判定値に変更することを特徴とする請求項８に記載のバーコード読取プログラム。
【請求項１０】
請求項１〜３の何れか一項に記載のバーコード読取装置を備えた印字装置であって、
バーコードが形成された用紙に発券情報を印字する印字手段と、
前記バーコードに含まれるマーカを検出するマーカ検出手段と、
前記マーカ検出手段によるマーカの検出に基づいて、前記印字手段に前記用紙への前記発券情報の印字を実行させる印字制御手段と、
を備えたことを特徴とする印字装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バーコード読取装置、バーコード読取方法、バーコード読取プログラム及び印字装置に関する。
【背景技術】
【０００２】
従来、不正・改竄防止のために記録用紙の裏面に一枚ごとに異なるバーコードが印刷されており、表面に旅券等の情報を印刷しながらバーコードを読み取り、その情報を管理している。このバーコードには、印刷位置（バーコード読取開始位置）を検出するためのマーカが付随して設けられており、このマーカを検出後に記録用紙の表面への印刷及びバーコードの読み取りを実施する。
【０００３】
このようなバーコードの読み取りを行う従来のバーコード読取装置は、マーカとバーコードについては、同じセンサで検出を行っている。そのため、マーカとバーコードの区別ができるように、例えば、図４に示すように、バーコードＢには一定間隔で白色バー（セパレータバーＢ３，Ｂ５，Ｂ７，Ｂ９）が含まれるように構成される一方、マーカＭはバーコードＢ上に表れないような幅（太さ）の黒色バーによって構成されている。このように構成されたバーコードを読み取るバーコード読取装置は、記録用紙を搬送しながらセンサの出力値を読み取る。そして、このバーコード読取装置は、例えば、図１１に示すように、センサ上をマーカが通過してセンサの出力値Ａがマーカを検出するための閾値Ｔを下回った後、センサの出力値Ａがこの閾値Ｔを下回っている間の記録用紙の搬送量（ｗ１）を判定する。バーコード読取装置は、この搬送量（ｗ１）が所定範囲内（例えば、Ｗａ≦ｗ１≦Ｗｂ）にある場合にマーカが通過したと判定するように構成されている。一方で、バーコード読取装置は、例えば、図１２に示すように、マーカの検出を行っているときにセンサ上をバーコードＢＣが通過した場合には、センサ上をバーコードＢＣ中の白色バーＷＢ１が通過したときにセンサの出力値Ａが閾値Ｔを上回るため、センサの出力値Ａが閾値Ｔを下回っている間の記録用紙の搬送量（ｗ２，ｗ３）が所定範囲（Ｗａ）よりも小さく、マーカとして判定が行われないようになっている（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−２６０３９６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記特許文献１に記載の技術では、センサの検出性能のバラツキにより、センサによってはセパレータバーがセンサ上を通過したにもかかわらず出力値が閾値を超えない場合がある。具体的には、例えば、図１３に示すように、センサ上をバーコードＢＣが通過して、センサの出力値Ａが閾値Ｔを下回った後、センサ上をバーコードＢＣ中の白色バーＷＢ１が通過すると、センサの出力値Ａは上昇する。しかしながら、センサの検出性能によっては、センサの出力値Ａが閾値Ｔを上回らないことがある。その結果、センサの出力値Ａが閾値Ｔを下回っている間の記録用紙の搬送量（ｗ４）が所定範囲内（例えば、Ｗａ≦ｗ４≦Ｗｂ）と判定された場合には、これを誤ってマーカとして判定してしまうおそれがある。
【０００６】
本発明の課題は、センサによりバーコード及びマーカを検出する際に、センサによるマーカの誤検出を防止することである。
【課題を解決するための手段】
【０００７】
以上の課題を解決するため、請求項１に記載のバーコード読取装置は、
用紙に形成されたバーコードを光学的に読み取り、読み取った結果を出力するセンサと、
前記センサの出力から出力値を取得する出力値取得手段と、
前記出力値取得手段によって取得されたセンサの出力値が予め定められた範囲内にあるか否かを判定する出力値判定手段と、
前記出力値取得手段によって取得されたセンサの出力値が極大となったときの極大値と極小となったときの極小値とを取得し、前記極大値と前記極小値との差分を算出する差分算出手段と、
前記出力値判定手段によってセンサの出力値が前記予め定められた範囲内にあると判定したときに、前記差分算出手段によって算出された差分が予め定められた判定値以上であるか否かを判定する差分判定手段と、
前記差分判定手段によって前記差分が前記判定値以上であると判定したときに、前記センサの出力値が前記予め定められた範囲を超えたと判定するみなし判定手段と、
を備えたことを特徴とする。
【０００８】
また、請求項１０に記載の印字装置は、
請求項１〜３の何れか一項に記載のバーコード読取装置を備えた印字装置であって、
バーコードが形成された用紙に発券情報を印字する印字手段と、
前記バーコードに含まれるマーカを検出するマーカ検出手段と、
前記マーカ検出手段によるマーカの検出に基づいて、前記印字手段に前記用紙への前記発券情報の印字を実行させる印字制御手段と、
を備えたことを特徴とする。
【発明の効果】
【０００９】
本発明によれば、センサによりバーコード及びマーカを検出する際に、センサによるマーカの誤検出を防止することができる。
【図面の簡単な説明】
【００１０】
【図１】印字装置の外観について説明する斜視図である。
【図２】印字装置の概略構成を示す図である。
【図３】印字装置の機能的構成を示すブロック図である
【図４】印字装置によって読み取られるバーコードの一例を示す図である。
【図５】マーカ検出処理について説明するフローチャートである。
【図６】マーカ検出処理について説明するフローチャートである。
【図７】セパレータ認識処理について説明するフローチャートである。
【図８】セパレータ認識処理について説明するフローチャートである。
【図９】バー幅チェック処理について説明するフローチャートである。
【図１０】センサ出力値の一例を示す図である。
【図１１】センサ上をマーカが通過したときのセンサ出力値の一例を示す図である。
【図１２】マーカの検出を行っているときにセンサ上をバーコードが通過したときのセンサ出力値の一例を示す図である。
【図１３】マーカの検出を行っているときにセンサ上をバーコードが通過したときのセンサ出力値の一例を示す図である。
【発明を実施するための形態】
【００１１】
以下、図面を参照して本発明に係る実施の形態を詳細に説明する。ただし、発明の範囲は、図示例に限定されない。なお、以下の説明において、同一の機能及び構成を有するものについては、同一の符号を付し、その説明を省略する。
【００１２】
本実施の形態に係るバーコード読取装置としての印字装置２０は、図１に示すように、例えば、箱形状に形成された本体部２０ａを有し、この本体部２０ａの先端部に印字部２６が設けられている。
【００１３】
印字手段としての印字部２６は、図２に示すように、ロール軸Ｒに巻回された記録用紙Ｐを収容している。記録用紙Ｐの表面には、発券業務に係る発券情報が記録される。また、記録用紙Ｐの裏面には、発券の記録管理等に用いるための情報がバーコードの態様で連続的に記録されており、各バーコードはそれぞれ異なる情報を有して形成されている。なお、本実施の形態では、記録用紙Ｐの裏面にバーコードが記録されているものとしたが、これに限定されず、例えば、記録用紙Ｐの表面に記録されていてもよい。ロール軸Ｒは、例えば、ステッピングモータ等のモータに接続されており、モータによって図中矢印方向に回転させることにより、記録用紙Ｐを印字解像度である１ドットライン単位で搬送することができるようになっている。印字部２６は、プリンタ２６ａ備えており、１ドットラインごとに搬送される記録用紙Ｐの表面に対し、所定の発券情報を記録（印字）することで発券を行う。この発券情報の記録開始位置は、後述するセンサ部２８により検出される記録用紙Ｐの裏面に存在するマーカに基づいて決定され、このマーカ開始位置から次のマーカ開始位置までに対応する記録用紙Ｐの表面の領域に、発券情報が記録されるようになっている。なお、本実施の形態では、プリンタ２６ａは、感熱により記録を行うサーマルヘッドとしているが、これに限定されず、例えば、レーザプリンタやインクジェットプリンタ等であってもよい。
【００１４】
印字部２６の所定位置には、センサ部２８が設けられている。センサ部２８は、例えば、フォトカプラ、フォトインタラプタ等の光センサを備えており、記録用紙Ｐの搬入を検出し、この検出信号をＡ／Ｄ変換したセンサ出力値を後述するＣＰＵ２１に出力する。また、センサ部２８は、このセンサ部２８上を通過する記録用紙Ｐの裏面に記録されたマーカ及びバーコードの白黒パターンによる反射光を検出し、この検出結果をＣＰＵ２１に出力する。すなわち、ＣＰＵ２１は、センサの出力から出力値を取得する出力値取得手段として機能する。
【００１５】
本体部２０ａの上面における印字部２６の近傍には、横方向に延びた用紙取出部２０ｂが開設されており、プリンタ２６ａによって発券情報が記録された記録用紙Ｐの排出を行う。
【００１６】
本体部２０ａの上面中央には、ＬＣＤ（Liquid Crystal Display）やＣＲＴ（Cathode Ray Tube）等からなる表示部２３が設けられており、後述するＣＰＵ２１から入力された表示データに基づいて表示画面上に画像を表示する。
【００１７】
また、表示部２３の下部には、操作部２２が設けられている。操作部２２は、文字入力キー、数字入力キーその他各種機能に対応付けられたキーを備えたキーボード等を含み、ユーザによるキー操作で押下されたキーに対応する押下信号をＣＰＵ２１に出力する。
【００１８】
次に、印字装置２０の機能的構成について、図３を参照しながら説明する。
印字装置２０は、図３に示すように、ＣＰＵ２１、操作部２２、表示部２３、ＲＯＭ２４、ＲＡＭ２５、印字部２６、通信部２７、センサ部２８等を備えて構成されている。
【００１９】
ＣＰＵ２１は、ＲＡＭ２５の所定領域を作業領域として、ＲＯＭ２４に予め記憶されている各種制御プログラムを実行し、印字装置２０を構成する各部の動作を制御する。また、ＣＰＵ２１は、操作部２２を介して入力される制御信号に従いながらＲＯＭ２４に記録されたアプリケーションプログラムを読み出し・実行して印字装置２０の各種機能を実現するようになっている。
【００２０】
また、ＣＰＵ２１は、センサ部２８から出力されるセンサ出力値に基づいて、記録用紙Ｐの裏面に記録されたマーカを検出すると、印字部２６を制御して記録用紙Ｐの表面に発券情報の印字を行う。すなわち、本実施の形態では、ＣＰＵ２１は、バーコードに含まれるマーカを検出するマーカ検出手段を構成する。また、ＣＰＵ２１は、マーカの検出に基づいて、用紙に発券情報を印字させる印字制御手段を構成する。
【００２１】
また、ＣＰＵ２１は、センサ部２８から出力されるセンサ出力値をＲＡＭ２５に記憶させ、この記憶されたセンサ出力値に基づいてバーコードデータに含まれるデータバー部のデコードを実施する。そして、このデコードした値を、当該バーコードデータの読み取り時に印字した発券情報と対応付けてＲＡＭ２５に記憶する。
【００２２】
ＲＯＭ２４は、印字装置２０に係るシステムプログラムやアプリケーションプログラム、本実施の形態を実現するためのプログラムやデータ等を記憶する。なお、記録用紙Ｐに記録されたバーコードが予め定められた規約に基づいて構成されている場合、この規約に関する設定データがＲＯＭ２４に記憶されるものとする。
【００２３】
ＲＡＭ２５は、ＣＰＵ２１によって実行される各種プログラム及びこれらプログラムに関わるデータを一時的に記憶するワークエリアを形成する。また、ＲＡＭ２５は、ＣＰＵ２１から出力されるセンサ部２８のセンサ出力値を記憶する。また、ＲＡＭ２５は、ＣＰＵ２１から出力されるデータバー部のデコード値と、発券情報とを対応付けて記憶する。
【００２４】
また、ＲＡＭ２５は、ＣＰＵ２１から出力される印字データを一時的に記憶し、ＣＰＵ２１の制御に応じてこの印字データを印字部２６に出力する。
【００２５】
ＣＰＵ２１は、ＲＡＭ２５に記憶された印字データを、１ドットラインごとに印字部２６に出力させ、ロール軸Ｒに接続されたモータの動作と同期させてプリンタ２６ａを発熱させることで１ドットラインの印字を行う。
【００２６】
通信部２７は、通信アンテナ、信号処理部、変調部、復調部等を備え、アクセスポイントを介してサーバ装置と通信する無線通信部である。通信部２７は、送信情報の信号を信号処理部で処理し、変調部で変調して通信アンテナから電波としてアクセスポイントに送信情報を無線送信する。また、通信部２７は、通信アンテナによりアクセスポイントから送信された電波を受信して復調部で復調し、その信号を信号処理部で信号処理して受信情報を取得する。
【００２７】
また、通信部２７は、携帯電話通信方式により、基地局を介してサーバ装置と無線通信する無線通信部としてもよい。また、通信部２７は、印字装置２０を載置するクレードルを介してサーバ装置と有線通信する有線通信部としてもよい。
【００２８】
次に、印字装置２０で読み取られるバーコードデータについて、図４を参照しながら説明する。
図４に示すように、マーカ部Ｍの後方にバーコードＢが記録されており、マーカ部ＭとバーコードＢとの間には、当該マーカ部ＭとバーコードＢとを区分けするためのマージンＭ１が設けられている。なお、マージンＭ１の幅は任意に設定できるが、バーコードＢに含まれるバーの幅よりも大きいのが好ましい。また、マーカ部Ｍの幅も任意に設定できるが、バーコードＢに含まれるバーの幅よりも大きいことが好ましい。この記録用紙Ｐは、図中矢印で示した記録用紙搬送方向に搬送されるようになっている。すなわち、マーカ部からストップバーにかけて一方向に搬送される。
【００２９】
バーコードＢは、スタートバーＢ１、データバーＢ２、セパレータバーＢ３、データバーＢ４、セパレータバーＢ５、データバーＢ６、セパレータバーＢ７、データバーＢ８、パリティバーＢ９、ストップバーＢ１０を有して構成されている。なお、各バーは均一の固定幅で構成されているものとするが、その幅は任意に設定可能である。また、各バーにおいて、黒色は「０」を、白色は「１」を示している。なおここで、白色とは白色が記録用紙Ｐに着色された状態、あるいは、記録用紙Ｐに記録が行われない無着色の状態を含めた意味で用いる。
【００３０】
スタートバーＢ１は「０１」で示されており、ストップバーＢ１０は「１０」で示されている。また、このスタートバーＢ１とストップバーＢ１０との間に、データバーＢ２「０１００」、セパレータバーＢ３「１」、データバーＢ４「００００」、セパレータバーＢ５「１」、データバーＢ６「０１１０」、セパレータバーＢ７「１」、データバーＢ８「００１」、パリティバーＢ９「１」が配置されている。
【００３１】
本例では、数値データ「６４」及び「４９」がそれぞれ入力された場合を例示しており、データバーＢ２及びＢ４からなるデータバー部（以下、Ｄ１という）「０１００００００」により「６４」が、データバーＢ６及びＢ８からなるデータバー部（以下、Ｄ２という）「０１１０００１」により「４９」がそれぞれ示されている。また、各データバー部Ｄ１、Ｄ２は、マーカ部Ｍの幅より小さくなるよう、所定のデータ群毎にセパレータバーＢ３及びＢ７が挿入されている。セパレータバーＢ５は、データバー部Ｄ１とＤ２とを区別するために挿入されたセパレータバーであって、入力される数値データの区切毎に挿入されるものとする。
【００３２】
パリティバーＢ９は、バーコードＢに含まれる「０」（黒色バー）の総数が偶数か奇数かを示すものであって、偶数の場合には「１」（白色バー）、奇数の場合には「０」（黒色バー）で表されている。図４においては、スタートバーＢ１からデータバーＢ８までのバーについてのパリティコードが導出された場合を示しているため、偶数となり「１」を示す白色バーとなっている。なお、本実施の形態では、スタートバーＢ１を含めることとしたが、これに限らず、スタートバーＢ１を除いたデータバーＢ２〜データバーＢ８の間のパリティコードに基づいてパリティバーＢ９を表すこととしてもよい。
【００３３】
本例では、１５ｂｉｔのデータを２３個のバーにより表したが、センサ部２８の分解能が１．５ｍｍであるような場合、バーコード長は３４．５ｍｍとなる。これと比較し、従来のＩＴＦ規格に準拠したバーコードで同様のデータを表した場合には、７５．０ｍｍとなるため、本実施の形態におけるバーコードは５０％以下の長さで同データ量を表すことが可能である。
【００３４】
以上のように、本実施の形態では、データバー部の幅が、マーカ部の幅より小さくなるようセパレータバーが置かれるため、データバー部とマーカ部とを明確に区別することが可能となり、誤検出を防止することができる。
【００３５】
次に、図５及び図６を参照しながら、マーカ検出処理について説明する。なお、マーカ検出処理は、ＣＰＵ２１と、ＲＯＭ２４に記憶された所定のプログラムとの協働によるソフトウェア処理により実行される処理である。マーカ検出処理は、例えば、ユーザが操作部２２を操作して発券を行う旨の信号が入力されたときに実行される。
【００３６】
まず、ＣＰＵ２１は、図５に示すように、印字部２６を制御して記録用紙Ｐのフィードを開始する（ステップＳ１０１）。すなわち、ＣＰＵ２１は、印字部２６のモータを駆動してロール軸Ｒに巻回された記録用紙Ｐの搬送を行う。
【００３７】
ＣＰＵ２１は、マーカ検出状態を「マーカ待ち」に設定し、黒検出幅を０にリセットする（ステップＳ１０２）。
【００３８】
続いて、ＣＰＵ２１は、所定のマーカ検出長だけ記録用紙Ｐが搬送されたか否かを判定する（ステップＳ１０３）。すなわち、ＣＰＵ２１は、マーカを検出する際の最大の紙送り量を超えて記録用紙Ｐの搬送が行われたか否かを判定する。記録用紙Ｐの紙送り量は、例えば、モータの回転量によって検出することができる。
【００３９】
ＣＰＵ２１は、マーカ検出長だけ記録用紙Ｐが搬送されたと判定したときは（ステップＳ１０３：Ｙ）、印字部２６を制御して記録用紙Ｐのフィードを停止した後（ステップＳ１０４）、所定のエラー処理を実行し（ステップＳ１０５）、この処理を終了する。エラー処理は、例えば、表示部２３に所定のエラーメッセージを表示したり、警告音を出力する等の処理である。なお、エラー処理を実行しないようにしてもよい。
【００４０】
一方、ＣＰＵ２１は、ステップＳ１０３において、マーカ検出長だけ記録用紙Ｐが搬送されたと判定しないときは（ステップＳ１０３：Ｎ）、マーカ検出状態が「マーカ待ち」であるか否かを判定する（ステップＳ１０６）。ＣＰＵ２１は、マーカ検出状態が「マーカ待ち」であると判定したときは（ステップＳ１０６：Ｙ）、黒色バーを検出したか否かを判定する（ステップＳ１０７）。黒色バーの検出は、センサ部２８から出力されたセンサ出力値が閾値を下回っていることを検出することにより行う。
【００４１】
ＣＰＵ２１は、黒色バーを検出したと判定したときは（ステップＳ１０７：Ｙ）、マーカ検出状態を「マーカ検出中」に設定した後（ステップＳ１０８）、ステップＳ１０３の処理を実行する。一方、ＣＰＵ２１は、黒色バーを検出したと判定しないときは（ステップＳ１０７：Ｎ）、ステップＳ１０８の処理を実行することなく、ステップＳ１０３の処理を実行する。
【００４２】
また、ＣＰＵ２１は、ステップＳ１０６において、マーカ検出状態が「マーカ待ち」であると判定しないときは（ステップＳ１０６：Ｎ）、マーカ検出状態が「マーカ検出中」であるか否かを判定する（ステップＳ１０９）。ＣＰＵ２１は、マーカ検出状態が「マーカ検出中」であると判定したときは（ステップＳ１０９：Ｙ）、黒色バーを検出したか否かを判定する（ステップＳ１１０）。ＣＰＵ２１は、黒色バーを検出したと判定したときは（ステップＳ１１０：Ｙ）、黒検出幅をインクリメントした後（ステップＳ１１１）、セパレータ認識処理を実行する（ステップＳ１１２）。ここで、セパレータとは、マーカとバーコードとを区別するためのものであって、バーコードにおいて所定間隔毎に配置されている白色バーである。セパレータ認識処理の詳細な説明については後述する。このように、ＣＰＵ２１は、取得されたセンサの出力値が予め定められた範囲内にあるか否かを判定する出力値判定手段として機能する。
【００４３】
ＣＰＵ２１は、後述するセパレータ認識フラグがセットされているか否かを判定する（ステップＳ１１３）。ＣＰＵ２１は、セパレータ認識フラグがセットされていると判定したときは（ステップＳ１１３：Ｙ）、センサ部２８がバーコード上を通過しているとしてマーカ検出状態を「白待ち中」に設定した後（ステップＳ１１４）、ステップＳ１０３の処理を実行する。一方、ＣＰＵ２１は、セパレータ認識フラグがセットされていると判定しないときは（ステップＳ１１３：Ｎ）、ステップＳ１１４の処理を実行することなく、ステップＳ１０３の処理を実行する。
【００４４】
また、ＣＰＵ２１は、ステップＳ１１０において、黒色バーを検出したと判定しないときは（ステップＳ１１０：Ｎ）、黒検出幅がマーカ検出範囲内であるか否かを判定する（ステップＳ１１５）。すなわち、ＣＰＵ２１は、黒検出幅を判定することにより、センサ部２８からのセンサ出力値が閾値を下回った後、このセンサ出力値が閾値を下回っている間の記録用紙Ｐの搬送量が所定範囲内であるかについて判定することができる。
【００４５】
ＣＰＵ２１は、黒検出幅がマーカ検出範囲内であると判定しないときは（ステップＳ１１５：Ｎ）、マーカを検出していないとして、マーカ検出状態を「マーカ待ち」に設定し、黒検出幅を０にリセットした後（ステップＳ１１６）、ステップＳ１０３の処理を実行する。一方、ＣＰＵ２１は、黒検出幅がマーカ検出範囲内であると判定したときは（ステップＳ１１５：Ｙ）、マーカを検出したとして、印字部２６を制御して記録用紙Ｐのフィードを停止した後（ステップＳ１１７）、印字指示を待って（ステップＳ１１８）、上述したようにして印字処理を行った後（ステップＳ１１９）、この処理を終了する。なお、本実施の形態では、記録用紙Ｐに対する印字を行いながら、センサ部２８によるバーコードの読み取りを行う。
【００４６】
また、ＣＰＵ２１は、ステップＳ１０９において、マーカ検出状態が「マーカ検出中」であると判定しないときは（ステップＳ１０９：Ｎ）、図６に示すように、マーカ検出状態が「白待ち中」であるか否かを判定する（ステップＳ１２０）。ＣＰＵ２１は、マーカ検出状態が「白待ち中」であると判定したときは（ステップＳ１２０：Ｙ）、黒色バーを検出したか否かを判定する（ステップＳ１２１）。ＣＰＵ２１は、黒色バーを検出したと判定しないときは（ステップＳ１２１：Ｎ）、マーカ検出状態を「マーカ待ち」に設定し、黒検出幅を０にリセットした後（ステップＳ１２２）、ステップＳ１０３の処理を実行する。一方、ＣＰＵ２１は、黒色バーを検出したと判定したときは（ステップＳ１２１：Ｙ）、ステップＳ１２２の処理を実行することなく、ステップＳ１０３の処理を実行する。また、ＣＰＵ２１は、ステップＳ１２０において、マーカ検出状態が「白待ち中」であると判定しないときは（ステップＳ１２０：Ｎ）、ステップＳ１０３の処理を実行する。
【００４７】
次に、マーカ検出処理のステップＳ１１２において実行されるセパレータ認識処理について、図７及び図８を参照しながら説明する。
【００４８】
まず、ＣＰＵ２１は、図７に示すように、センサ出力値の増減方向が「未決定」であるか否かを判定する（ステップＳ２０１）。ＣＰＵ２１は、センサ出力値の増減方向が「未決定」であると判定したときは（ステップＳ２０１：Ｙ）、センサ出力値の現在値が前回値よりも大きいか否かを判定する（ステップＳ２０２）。ＣＰＵ２１は、センサ出力値の現在値が前回値よりも大きいと判定したときは（ステップＳ２０２：Ｙ）、センサ出力値の増減方向を「増加」に設定するとともに、現在値を仮極大値にセットする（ステップＳ２０３）。なお、本実施の形態において、センサ出力値の現在値が前回値よりも大きいとの判定が所定回数行われたことを条件としてセンサ出力値の増減方向を「増加」に設定するようにしてもよい。
【００４９】
続いて、ＣＰＵ２１は、仮極小値がセットされているか否かを判定する（ステップＳ２０４）。ＣＰＵ２１は、仮極小値がセットされていると判定したときは（ステップＳ２０４：Ｙ）、仮極小値を極小値にセットした後（ステップＳ２０５）、バー幅チェック処理を実行する（ステップＳ２０６）。バー幅チェック処理の詳細については後述する。
【００５０】
一方、ＣＰＵ２１は、ステップＳ２０４において、仮極小値がセットされていると判定しないときは（ステップＳ２０４：Ｎ）、ステップＳ２０５の処理を実行することなく、ステップＳ２０６の処理を実行する。
【００５１】
続いて、ＣＰＵ２１は、後述するバー認識フラグがセットされているか否かを判定する（ステップＳ２０７）。ＣＰＵ２１は、バー認識フラグがセットされていると判定したときは（ステップＳ２０７：Ｙ）、セパレータ認識フラグをセットした後（ステップＳ２０８）、センサ出力値の現在値を前回値にセットし（ステップＳ２０９）、この処理を終了する。
【００５２】
一方、ＣＰＵ２１は、ステップＳ２０７において、バー認識フラグがセットされていると判定しないときは（ステップＳ２０７：Ｎ）、ステップＳ２０８の処理を実行することなく、ステップＳ２０９の処理を実行する。
【００５３】
また、ＣＰＵ２１は、ステップＳ２０２において、センサ出力値の現在値が前回値よりも大きいと判定しないときは（ステップＳ２０２：Ｎ）、センサ出力値の現在値が前回値よりも小さいか否かを判定する（ステップＳ２１０）。ＣＰＵ２１は、センサ出力値の現在値が前回値よりも小さいと判定したときは（ステップＳ２１０：Ｙ）、センサ出力値の増減方向を「減少」に設定するとともに、現在値を仮極小値にセットする（ステップＳ２１１）。なお、本実施の形態において、センサ出力値の現在値が前回値よりも小さいとの判定が所定回数行われたことを条件としてセンサ出力値の増減方向を「減少」に設定するようにしてもよい。
【００５４】
続いて、ＣＰＵ２１は、仮極大値がセットされているか否かを判定する（ステップＳ２１２）。ＣＰＵ２１は、仮極大値がセットされていると判定したときは（ステップＳ２１２：Ｙ）、仮極大値を極大値にセットした後（ステップＳ２１３）、ステップＳ２０６の処理を実行する。一方、ＣＰＵ２１は、仮極大値がセットされていると判定しないときは（ステップＳ２１２：Ｎ）、ステップＳ２１３の処理を実行することなく、ステップＳ２０６の処理を実行する。
【００５５】
また、ＣＰＵ２１は、ステップＳ２１０において、センサ出力値の現在値が前回値よりも小さいと判定しないときは（ステップＳ２１０：Ｎ）、ステップＳ２０９の処理を実行する。
【００５６】
また、ＣＰＵ２１は、ステップＳ２０１において、センサ出力値の増減方向が「未決定」であると判定しないときは（ステップＳ２０１：Ｎ）、図８に示すように、センサ出力値の増減方向が「増加」であるか否かを判定する（ステップＳ２１４）。ＣＰＵ２１は、センサ出力値の増減方向が「増加」であると判定したときは（ステップＳ２１４：Ｙ）、センサ出力値の現在値が前回値よりも小さいか否かを判定する（ステップＳ２１５）。ＣＰＵ２１は、センサ出力値の現在値が前回値よりも小さいと判定したときは（ステップＳ２１５：Ｙ）、センサ出力値の増減方向を「未決定」に設定した後、ステップＳ２０９の処理を実行する。
【００５７】
一方、ＣＰＵ２１は、センサ出力値の現在値が前回値よりも小さいと判定しないときは（ステップＳ２１５：Ｎ）、センサ出力値の現在値が仮極大値よりも大きいか否かを判定する（ステップＳ２１７）。ＣＰＵ２１は、センサ出力値の現在値が仮極大値よりも大きいと判定したときは（ステップＳ２１７：Ｙ）、この現在値を仮極大値にセットした後（ステップＳ２１８）、ステップＳ２０９の処理を実行する。一方、ＣＰＵ２１は、センサ出力値の現在値が仮極大値よりも大きいと判定しないときは（ステップＳ２１７：Ｎ）、ステップＳ２１８の処理を実行することなく、ステップＳ２０９の処理を実行する。
【００５８】
また、ＣＰＵ２１は、ステップＳ２１４において、センサ出力値の増減方向が「増加」であると判定しないとき、すなわち、センサ出力値の増減方向が「減少」であるときは（ステップＳ２１４：Ｎ）、センサ出力値の現在値が前回値よりも大きいか否かを判定する（ステップＳ２１９）。ＣＰＵ２１は、センサ出力値の現在値が前回値よりも大きいと判定したときは（ステップＳ２１９：Ｙ）、センサ出力値の増減方向を「未決定」に設定した後、ステップＳ２０９の処理を実行する。
【００５９】
一方、ＣＰＵ２１は、センサ出力値の現在値が前回値よりも大きいと判定しないときは（ステップＳ２１９：Ｎ）、センサ出力値の現在値が仮極小値よりも小さいか否かを判定する（ステップＳ２２１）。ＣＰＵ２１は、センサ出力値の現在値が仮極小値よりも小さいと判定したときは（ステップＳ２２１：Ｙ）、この現在値を仮極小値にセットした後（ステップＳ２２２）、ステップＳ２０９の処理を実行する。一方、ＣＰＵ２１は、センサ出力値の現在値が仮極小値よりも小さいと判定しないときは（ステップＳ２２１：Ｎ）、ステップＳ２２２の処理を実行することなく、ステップＳ２０９の処理を実行する。
【００６０】
次に、セパレータ認識処理のステップＳ２０６において上述したバー幅チェック処理について、図９を参照しながら説明する。
【００６１】
まず、ＣＰＵ２１は、固定幅チェックモードであるか否かを判定する（ステップＳ３０１）。本実施の形態では、固定幅チェックモードと可変幅チェックモードとをユーザによって予め選択することができるようになっている。ここで、固定幅チェックモードは、後述するように、極大値と極小値との差分がバー認識幅以上であるか否かを判定する際に、このバー認識幅を固定のものとするためのモードである。一方、可変幅チェックモードは、バー認識幅を後述する条件に応じて可変とするためのモードである。
【００６２】
ＣＰＵ２１は、固定幅チェックモードであると判定したときは（ステップＳ３０１：Ｙ）、上述のようにしてセットされた極大値と極小値との差分を求め、この差分が固定バー認識幅以上であるか否かを判定する（ステップＳ３０２）。ＣＰＵ２１は、極大値と極小値との差分が固定バー認識幅以上であると判定したときは（ステップＳ３０２：Ｙ）、バー認識フラグをセットした後（ステップＳ３０３）、この処理を終了する。一方、極大値と極小値との差分が固定バー認識幅以上であると判定しないとき、すなわち、極大値と極小値との差分が固定バー認識幅よりも小さい場合には（ステップＳ３０２：Ｎ）、ステップＳ３０３の処理を実行することなく、この処理を終了する。このように、ＣＰＵ２１は、出力値取得手段によって取得されたセンサの出力値が極大となったときの極大値と極小となったときの極小値とを取得し、極大値と極小値との差分を算出する差分算出手段として機能する。また、ＣＰＵ２１は、出力値判定手段によってセンサの出力値が予め定められた範囲内になると判定したときに、差分算出手段によって算出された差分が予め定められた判定値以上であるか否かを判定する差分判定手段として機能する。また、ＣＰＵ２１は、差分判定手段によって差分が判定値以上であると判定したときに、センサの出力値が予め定められた範囲を超えたと判定するみなし判定手段として機能する。
【００６３】
また、ＣＰＵ２１は、ステップＳ３０１において、固定幅チェックモードであると判定しないとき、すなわち、可変幅チェックモードである場合は（ステップＳ３０１：Ｎ）、極大値と極小値との差分が可変バー認識幅以上であるか否かを判定する（ステップＳ３０４）。ＣＰＵ２１は、極大値と極小値との差分が可変バー認識幅以上であると判定したときは（ステップＳ３０４：Ｙ）、ステップＳ３０３の処理を実行する。なお、可変バー認識幅は、最初は固定バー認識幅と同じ値に設定されているものとするが、異なっていてもよい。
【００６４】
一方、ＣＰＵ２１は、極大値と極小値との差分が可変バー認識幅以上であると判定しないとき、すなわち、極大値と極小値との差分が可変バー認識幅よりも小さい場合には（ステップＳ３０４：Ｎ）、可変バー認識幅の９０％にあたる値が固定バー認識幅の５０％にあたる値以上であるか否かを判定する（ステップＳ３０５）。ＣＰＵ２１は、可変バー認識幅の９０％にあたる値が固定バー認識幅の５０％にあたる値以上であると判定したときは（ステップＳ３０５：Ｙ）、極大値と極小値との差分が可変バー認識幅の９０％にあたる値以上であるか否かを判定する（ステップＳ３０６）。ＣＰＵ２１は、極大値と極小値との差分が可変バー認識幅の９０％にあたる値以上であると判定したときは（ステップＳ３０６：Ｙ）、可変バー認識幅の値をその９０％の値に更新した後（ステップＳ３０７）、ステップＳ３０３の処理を実行する。このように、ＣＰＵ２１は、判定値を変更する判定値変更手段として機能する。
【００６５】
一方、ＣＰＵ２１は、極大値と極小値との差分が可変バー認識幅の９０％にあたる値以上であると判定しないときは（ステップＳ３０６：Ｎ）、ステップＳ３０７の処理を実行することなく、この処理を終了する。
【００６６】
また、ＣＰＵ２１は、ステップＳ３０５において、可変バー認識幅の９０％にあたる値が固定バー認識幅の５０％にあたる値以上であると判定しないときは（ステップＳ３０５：Ｎ）、この処理を終了する。
【００６７】
このように、本実施の形態では、固定バー認識幅の１００％から５０％までの間で可変バー認識幅の値を可変することができるので、センサ部２８の検出性能のバラツキを効果的に吸収することができるようになる。なお、可変バー認識幅の可変幅については、上述したものに限定されず、例えば、センサの特性に応じて任意に設定することができる。また、可変バー認識幅の値をその９０％の値に更新するようにしたが、更新後の値は、例えば、センサの特性に応じて任意に設定することができる。
【００６８】
このように、本実施の形態では、上述したようにして、センサ出力値が閾値を超えない場合であっても、バー（特に、白色バー）を認識することが可能となる。したがって、マーカ検出を行っているときにセンサ部２８上をセパレータバーが通過した場合でもこれを確実に認識することが可能となり、バーコードをマーカとして誤検出することを防止することができるようになる。
【００６９】
次に、図１０を参照しながら、本実施の形態に係る印字装置２０の動作について説明する。図１０は、ＲＡＭ２５に記憶された全センサ出力値の一例を示す図である。図１０において、Ａはセンサ出力値を示し、Ｔは閾値を示している。すなわち、センサ出力値Ａが閾値Ｔを下回ったときに、ＣＰＵ２１は黒色バーを通過したと認識することができる。一方で、センサ出力値Ａが閾値Ｔ以上となると、ＣＰＵ２１は白色バーを通過したと認識することができる。そして、センサ出力値Ａの上に凸となる変極点が極大値であることを意味し、下に凸となる変極点が極小値であることを意味している。
【００７０】
まず、センサ部２８上をマーカが通過すると、センサ出力値Ａが減少し、マーカの幅の分だけセンサ出力値Ａが閾値Ｔを下回る。すなわち、ＣＰＵ２１は、閾値Ｔを下回っている間の記録用紙Ｐの搬送量（ｗ１１）がマーカ検出範囲内と判定されることを条件に、マーカの通過を認識することができる。その後、センサ部２８上を白色領域であるマージン上が通過すると、センサ出力値Ａが上昇して閾値Ｔよりも上回る。そして、センサ部２８上をバーコードが通過し、バーの色に応じてセンサ出力値Ａが増減する。すなわち、センサ部２８上を黒色バーが通過することに伴ってセンサ出力値Ａが減少し、白色バーが通過することに伴ってセンサ出力値Ａが増加することとなる。
【００７１】
このとき、センサ出力値Ａが増加傾向である場合には、上述したように、その現在値が仮極大値として随時更新される。その後、センサ出力値Ａが変極点に達し、減少傾向となったときに、最後に更新された仮極大値が極大値として設定される。また、センサ出力値Ａが減少傾向である場合には、その現在値が仮極小値として随時更新される。その後、センサ出力値Ａが変極点に達し、増加傾向となったときに、最後に更新された仮極小値が極小値として設定される。
【００７２】
ここで、例えば、図１０に示すように、センサの検出性能により、センサ部２８上を黒色バーが通過した後、セパレータバー等の白色バーが通過したときに、センサ出力値Ａの極大値Ｖｂが閾値Ｔを超えない場合がある。従来では、センサ出力値Ａが閾値Ｔを超えない場合には、センサ部２８上を黒色バーが通過したと認識してしまうので、その結果、閾値Ｔを下回っている間の記録用紙Ｐの搬送量（ｗ１２）がマーカ検出範囲内と判定された場合には、マーカを通過したと誤検出してしまうことになる。
【００７３】
本実施の形態では、センサ出力値Ａが変極点（例えば、極大値Ｖｂ）に達する毎に、直前の極大値Ｖｂと極小値Ｖａとの差分ｇを求め、この差分ｇが上述した固定バー認識幅（可変バー認識幅）よりも大きい場合には、センサ出力値Ａが閾値Ｔを超えていない場合でも、白色バーを通過したと認識させることができる。
【００７４】
以上説明したように、本実施の形態によれば、センサ部２８は、用紙に形成されたバーコードを光学的に読み取り、読み取った結果を出力する。ＣＰＵ２１は、センサ部２８の出力から出力値を取得する。ＣＰＵ２１は、取得されたセンサ部２８の出力値が予め定められた範囲内にあるか否かを判定する。ＣＰＵ２１は、取得されたセンサ部２８の出力値が極大となったときの極大値と極小となったときの極小値とを取得し、極大値と極小値との差分を算出する。ＣＰＵ２１は、センサ部２８の出力値が予め定められた範囲内にあると判定したときに、算出された差分が予め定められた固定バー認識幅（可変バー認識幅）以上であるか否かを判定する。ＣＰＵ２１は、差分が固定バー認識幅（可変バー認識幅）以上であると判定したときに、センサ部２８の出力値が予め定められた範囲を超えたと判定する。その結果、センサの検出性能にバラツキがあっても、センサ上を白色バーが通過したことを確実に検出することができるようになり、例えば、バーコードをマーカと誤検出してしまうことを防止することができるようになる。
【００７５】
また、本実施の形態では、ＣＰＵ２１は、可変バー認識幅を変更する。その結果、センサの検出特性に応じた値に変更することができる。
【００７６】
また、本実施の形態では、ＣＰＵ２１は、差分が可変バー認識幅以上であると判定しないときに可変バー認識幅の合値を所定量減じ、差分が所定量減じた後の可変バー認識幅以上であるか否かを判定する。ＣＰＵ２１は、差分が所定量減じた後の可変バー認識幅以上であると判定したときに、可変バー認識幅を所定量減じた後の値に変更する。その結果、製品製造時のセンサのキャリブレーションが不要となるため、製造コストが低減できる。また、センサの経年劣化に対応することができるので、製品寿命に優れる。
【００７７】
また、本実施の形態では、印字部２６は、バーコードが形成された記録用紙Ｐに発券情報を印字する。ＣＰＵ２１は、バーコードに含まれるマーカを検出する。ＣＰＵ２１は、マーカの検出に基づいて、印字部２６に記録用紙Ｐへの発券情報の印字を実行させる。その結果、バーコードの読み取りと発券情報の印字とを同時に行うことができる。
【００７８】
なお、上記実施形態における記述内容は、本発明に係るバーコード読取装置の好適な一例であり、これに限定されるものではない。
【００７９】
また、本実施の形態では、ユーザにより固定幅チェックモードと可変幅チェックモードとを選択可能に構成したが、何れか一方のモードのみ有するものであってもよい。
【００８０】
また、本実施の形態では、印字機能を備えた印字装置２０に適用したものであるが、印字機能を備えないものについても適用することができる。
【００８１】
また、本実施の形態では、センサ出力値に応じて可変バー認識幅を可変するように構成されているが、可変バー認識幅をユーザにより任意に変更できるようにしてもよい。
【００８２】
また、本実施形態における固定バー認識幅及び可変バー認識幅はセンサの特性に応じて適宜設定することができる。
【００８３】
また、本実施の形態において、極小値及び極大値が複数保存されたことを条件としてバー幅チェック処理が実行されるように構成してもよい。
【００８４】
また、上記の各処理を実行するためのプログラムを格納したコンピュータ読み取り可能な媒体として、ＲＯＭやハードディスク等の他、フラッシュメモリ等の不揮発性メモリ、ＣＤ−ＲＯＭ等の可搬型記録媒体を適用することも可能である。また、プログラムのデータを所定の通信回線を介して提供する媒体としては、キャリアウェーブ（搬送波）も適用される。
【００８５】
その他、印字装置を構成する各装置の細部構成及び細部動作に関しても、発明の趣旨を逸脱することのない範囲で適宜変更可能である。
【００８６】
本発明の実施の形態及び変形例を説明したが、本発明の範囲は、上述の実施の形態及び変形例に限定するものではなく、特許請求の範囲に記載された発明の範囲とその均等の範囲を含む。
以下に、この出願の願書に最初に添付した特許請求の範囲に記載した発明を付記する。付記に記載した請求項の項番は、この出願の願書に最初に添付した特許請求の範囲の通りである。
〔付記〕
＜請求項１＞
用紙に形成されたバーコードを光学的に読み取り、読み取った結果を出力するセンサと、
前記センサの出力から出力値を取得する出力値取得手段と、
前記出力値取得手段によって取得されたセンサの出力値が予め定められた範囲内にあるか否かを判定する出力値判定手段と、
前記出力値取得手段によって取得されたセンサの出力値が極大となったときの極大値と極小となったときの極小値とを取得し、前記極大値と前記極小値との差分を算出する差分算出手段と、
前記出力値判定手段によってセンサの出力値が前記予め定められた範囲内にあると判定したときに、前記差分算出手段によって算出された差分が予め定められた判定値以上であるか否かを判定する差分判定手段と、
前記差分判定手段によって前記差分が前記判定値以上であると判定したときに、前記センサの出力値が前記予め定められた範囲を超えたと判定するみなし判定手段と、
を備えたことを特徴とするバーコード読取装置。
＜請求項２＞
前記判定値を変更する判定値変更手段を備えたことを特徴とする請求項１に記載のバーコード読取装置。
＜請求項３＞
前記差分判定手段は、前記差分が前記判定値以上であると判定しないときに該判定値を所定量減じ、前記差分が所定量減じた後の判定値以上であるか否かを判定し、
前記判定値変更手段は、前記差分判定手段によって前記差分が所定量減じた後の判定値以上であると判定したときに、前記判定値を該所定量減じた後の判定値に変更することを特徴とする請求項２に記載のバーコード読取装置。
＜請求項４＞
用紙に形成されたバーコードをセンサで光学的に読み取り、読み取った結果を出力する読取工程と、
前記センサの出力から出力値を取得する出力値取得工程と、
前記出力値取得工程において取得されたセンサの出力値が予め定められた範囲内にあるか否かを判定する出力値判定工程と、
前記出力値取得工程において取得されたセンサの出力値が極大となったときの極大値と極小となったときの極小値とを取得し、前記極大値と前記極小値との差分を算出する差分算出工程と、
前記出力値判定工程においてセンサの出力値が前記予め定められた範囲内にあると判定したときに、前記差分算出工程において算出された差分が予め定められた判定値以上であるか否かを判定する差分判定工程と、
前記差分判定工程において前記差分が前記判定値以上であると判定したときに、前記センサの出力値が前記予め定められた範囲を超えたと判定するみなし判定工程と、
を含むことを特徴とするバーコード読取方法。
＜請求項５＞
前記判定値を変更する判定値変更工程をさらに含むことを特徴とする請求項４に記載のバーコード読取方法。
＜請求項６＞
前記差分判定工程は、前記差分が前記判定値以上であると判定しないときに該判定値を所定量減じ、前記差分が所定量減じた後の判定値以上であるか否かを判定し、
前記判定値変更工程は、前記差分判定工程において前記差分が所定量減じた後の判定値以上であると判定したときに、前記判定値を該所定量減じた後の判定値に変更することを特徴とする請求項５に記載のバーコード読取方法。
＜請求項７＞
コンピュータに、
用紙に形成されたバーコードをセンサで光学的に読み取り、読み取った結果を出力する読取機能と、
前記センサの出力から出力値を取得する出力値取得機能と、
前記出力値取得機能によって取得されたセンサの出力値が予め定められた範囲内にあるか否かを判定する出力値判定機能と、
前記出力値取得機能によって取得されたセンサの出力値が極大となったときの極大値と極小となったときの極小値とを取得し、前記極大値と前記極小値との差分を算出する差分算出機能と、
前記出力値判定機能によってセンサの出力値が前記予め定められた範囲内にあると判定したときに、前記差分算出工程において算出された差分が予め定められた判定値以上であるか否かを判定する差分判定機能と、
前記差分判定機能によって前記差分が前記判定値以上であると判定したときに、前記センサの出力値が前記予め定められた範囲を超えたと判定するみなし判定機能と、
を実現させるバーコード読取プログラム。
＜請求項８＞
前記コンピュータに、前記判定値を変更する判定値変更機能をさらに実現させることを特徴とする請求項７に記載のバーコード読取プログラム。
＜請求項９＞
前記差分判定機能は、前記差分が前記判定値以上であると判定しないときに該判定値を所定量減じ、前記差分が所定量減じた後の判定値以上であるか否かを判定し、
前記判定値変更機能は、前記差分判定機能によって前記差分が所定量減じた後の判定値以上であると判定したときに、前記判定値を該所定量減じた後の判定値に変更することを特徴とする請求項８に記載のバーコード読取プログラム。
＜請求項１０＞
請求項１〜３の何れか一項に記載のバーコード読取装置を備えた印字装置であって、
バーコードが形成された用紙に発券情報を印字する印字手段と、
前記バーコードに含まれるマーカを検出するマーカ検出手段と、
前記マーカ検出手段によるマーカの検出に基づいて、前記印字手段に前記用紙への前記発券情報の印字を実行させる印字制御手段と、
を備えたことを特徴とする印字装置。
【符号の説明】
【００８７】
２０  印字装置
２１  ＣＰＵ
２６  印字部
２８  センサ部
【図１】
2014119976.tif 000003
【図２】
2014119976.tif 000004
【図３】
2014119976.tif 000005
【図４】
2014119976.tif 000006
【図５】
2014119976.tif 000007
【図６】
2014119976.tif 000008
【図７】
2014119976.tif 000009
【図８】
2014119976.tif 000010
【図９】
2014119976.tif 000011
【図１０】
2014119976.tif 000012
【図１１】
2014119976.tif 000013
【図１２】
2014119976.tif 000014
【図１３】
2014119976.tif 000015