以下、本発明による一実施例を、図面に従って説明する。
一般に流通業界で使用される記録紙としては単票用紙と連続紙が有り、単票用紙にはスリップ紙と呼ばれる不定形の伝票用紙や、バリデーション紙と呼ばれる比較的定形で何枚かの複写紙を有するものが有る。連続紙としては店舗の記録用として保存する為のジャーナル紙と、領収証としてのレシート紙がある。
図1は、これらの記録紙のスリップ紙、ジャーナル紙、レシート紙に印字可能な印字装置の全体図である。
1は印字ヘッド本体であり、複数本のワイヤーが縦に並んだいわゆるワイヤードットヘッドである。この印字ヘッド1が矢印1A、1B方向に往復移動しながら印字を行う。3はインクリボンである。
レシート紙17、ジャーナル紙18はロール紙の状態で、図の様に印字機構部の後ろから挿入し上部へ排出される。また、スリップ紙19は、印字機構部の前から挿入し(矢印19A)、上部へ排出される(矢印19B)。
レシート紙、ジャーナル紙ともに、紙の終りを検出するニアエンド検出器20が装備されている。ニアエンド検出器20は、ロール紙の外径により矢印20A方向に回動するニアエンド検出レバー20aとニアエンド検出レバー20aによりオン、オフするプッシュスイッチ20bで構成される。ロール紙が終わりに近づくとその外径が小さくなり、ロール紙の中心に達するとニアエンド検出レバー20aが矢印20B方向に回動し、プシュスイッチ20bがオフして紙の終わり間近を検出する。
レシート紙17は、印字後カッタユニット14によりカットされ、客に手渡される。
印字装置は、図示しない本体ケースに覆われており、図示しないカバーと下ケース15とに分かれる。21は、カバー検出器であり、対向型のフォトセンサからなる。カバーが閉じているとカバー検出器21の光が遮断され、カバークローズが検出できる。
図2は、本発明の印字装置において、連続紙と単票用紙を印字する場合の動作を示す機構図である。図2において(a)は連続用紙(図ではレシート紙)に印字する場合、(b)は単票用紙(スリップ紙)に印字する場合を示す。
印字ヘッド1は、ワイヤー支持部1aの中に図示しないワイヤーピンが有り、プラテン2との間にインクリボン3を介在してレシート紙17に印字を行う。
レシート紙17は、ガイドローラ5を介して紙案内板4a、4bの間に挿入され、紙送りローラ6a、6bにより紙送りされる。紙送りローラ6aはモータ等の駆動源(図示しない)と結合している。紙案内板4a,4bの途中にレシート紙検出器12が配置されている。レシート紙検出器12は、対向型のフォトセンサもしくは、レバースイッチなどで構成される。図では対向型のフォトセンサの例を示す。紙送りローラ6a,6bにより送られたレシート紙17は、インクリボン3とプラテン2の間を通り、紙押さえローラ7a,7b、カッタユニット14を介して印字装置上部へ排出される。カッタユニット14は、カッタ刃14aとカッタカバー14bから構成され、カッタ刃14aが図示しないモータなどの駆動源により矢印14A方向へ移動し、レシート紙17を切断する。
図では、レシート紙の場合を示したが、ジャーナル紙の場合もカッタユニットを除いては同じ構成である。
スリップ紙を印字する場合(図2(b))、スリップ紙19は、印字装置の手前のスリップ紙挿入開口部21から用紙を矢印19A方向に挿入する。ロール紙印字中は、スリップ送りローラ9aは、図2(a)の様にプランジャ10により矢印10A方向に引っ張られており、対向するスリップ送りローラ9bとは離れている。よって、スリップ紙19が挿入可能である。スリップ紙19を挿入すると、スリップ紙19はスリップ紙案内11a,11bを経てスリップ送りローラ8a,8bに突き当たる。この時スリップ紙検出器13によって紙が挿入されたかどうかを検出する。紙が挿入されたら、プランジャ10が解除されレバー10aは、矢印10B方向に回動し、スリップ送りローラ9bがスリップ送りローラ9aに押圧され、スリップ紙19が保持される。スリップ送りローラ8b,9bは図示しないモータなどの駆動源と結合しており、対向するスリップ送りローラ8a,9aとともに、矢印8A,8B,9A,9B方向にそれぞれ回転し、スリップ紙19を紙送りする。印字が終了すると、スリップ紙19は矢印19B方向に排出され、プランジャ10が駆動されてスリップ送りローラ9aはスリップ送りローラ9bと離れ、次のスリップ用紙が挿入可能となる。
レシート紙17は図のように装着したままスリップ紙19に印字可能であり、また、スリップ紙19に複写紙を添付すれば、スリップ紙19とレシート紙17を同時に、同じ内容を印字することも可能である。
スリップ紙検出器13は、レシート紙検出器12と同様に対向型のフォトセンサを用いている。
15は本体下ケースであり、16はヘッド機構を支持するケースである。
図3は、本発明の一実施例である印字装置の印字部構成図である。
図によりヘッドキャリッジ駆動モータの脱調を検出する方法を示す。
ヘッド1は、ワイヤーホルダ1aとともに、ヘッドキャリッジ1b上に固定されていて、このヘッドキャリッジ1bは、キャリッジ伝達ベルト32とキャリッジ駆動歯車31a、31bにより左右に移動する。キャリッジ駆動歯車31aは図示しないヘッドキャリッジ駆動モータと結合している。このモータは、一般的にはパルスモータが用いられており、実施例でもパルスモータを使用している。キャリッジ駆動歯車31aは、伝達歯車33を介して回転検出板34を回転させる。回転検出板34を挟むように対向型のフォトセンサからなるキャリッジ検出器35が配置されており、ヘッドキャリッジ1bの移動に従って、回転検出板34が回転し、これをキャリッジ検出器35が検出する。回転検出板34はプロペラ状に形成され、これが回転すると、キャリッジ検出器35の出力が周期的にオン、オフする。すなわち、図示しないヘッドキャリッジ駆動モータによって、ヘッドキャリッジ1bが左右に移動すると、キャリッジ検出器35によって、ヘッドキャリッジ1bの移動を検出する。
印字ヘッド1とプラテン2の間にあるレシート紙、ジャーナル紙もしくはスリップ紙が、よれてワイヤーホルダ1aとプラテン2との間につまってしまうと紙ジャムとなり、ヘッドキャリッジ1bは、キャリッジ駆動モータの回転に追従せず、キャリッジ駆動モータは脱調する。これを、キャリッジ検出器35により検出する。これをキャリッジエラーと称す。
印字ヘッド1は、印字位置の基準位置を特定する為、ホームポジションが必要である。ホームポジション検出器36は、対向型のフォトセンサであり、ヘッドキャリッジ1bを検出する。すなわち、ヘッドキャリッジ1bが左に移動し、ホームポジション検出器36の光を遮断する位置がホームポジションの基準位置となる。
ヘッドキャリッジ1bが、ホームポジションに移動しようとしたとき、紙ジャムなどによりホームポジションに到達しないことをホームポジション検出器36により検出することができる。これをホームポジションエラーと称す。
図4は、本発明を実現する制御回路の回路ブロック図である。
印字ヘッド40、モータ類41、プランジャ類42により上述の印字装置の機構部を成しており、これらの印字機構部を駆動する印字機構部駆動回路43を有している。また、印字機構部には、キャリッジ検出器44、ホームポジション検出器45、オートカッタ検出器46、各用紙検出器47、カバー検出器54などの検出器類が装備され中央制御装置(以下、CPUと称す)50と接続している。オートカッタ検出器46は、図2におけるカッタ刃14aのポジション検出を行う検出器であり、図示しないカッタ刃駆動モータを駆動し所定の位置で検出信号を発生する。カッタ刃において紙ジャムなどが発生するとカッタ刃が所定の位置に移動せず、検出信号が発生しないためエラーとなる。これをカッタエラーと称す。
用紙検出器47は、ニアエンド検出器20(図1)、レシート紙検出器12、スリップ紙検出器13(図2)などを含む。
印字装置全体を制御するCPU50には、LEDなどで構成する表示装置48、紙送りなどを手動で行う為のパネルスイッチ49、ホストコンピュータとの通信を行うインターフェース51、制御プログラムや印字文字パターンなどを格納するROM52、受信バッファや印字バッファなどを格納するRAM53が接続している。
印字データがインターフェース51から入力されるとRAM53内の受信バッファに格納され、CPU50はこのデータを解読し、データコードに対応した文字パターンをROM52から読みだし、印字機構駆動部制御回路43を介して印字ヘッド40、モータ類41、プランジャ類42を駆動し印字を実行する。
キャリッジエラー、ホームポジションエラー、カッタエラーなどが発生すると、CPU50は、表示装置48を駆動して使用者にエラーの発生を知らせることができる。
図5は、本発明の全体構成を示す機能ブロック図であり、各機能手段の関係を示している。
61はホストコンピュータであり、コマンドデータや印字データなどを印字装置に送信する。62は、インターフェイス51を介してホストコンピュータ61からのデータコードを受信するデータ受信手段であり、インターフェース51により起動される割込みである。64は受信した時点で受信データを解析し、実行するリアルタイムコマンド解析手段であり、データ受信手段62とともに割込みの中で処理される。リアルタイムコマンド解析手段64は、受信データがリアルタイム制御コマンドであるかどうかを判断し、リアルタイム制御コマンドであればそのコマンド指令に従って所定の処理を実行する。リアルタイムコマンド解析手段64を介した受信データは、全て一旦受信バッファ65に蓄えられる。受信バッファ65内の受信データは、コマンド解析手段66により1データづつ取り出され、このデータコードを解析し、印字データと印字装置に対して様々な指令を設定するコマンドデータとを判別する。コマンドデータであれば、それを制御手段68によって、そのコマンドコードに従って所定の設定もしくは、所定の動作を実行する。印字データであればそのデータコードに従って文字パターンを印字バッファ67内に格納する。制御手段68により印字実行を行う場合、この印字バッファ67から印字パターンを読み出して印字機構各機能部70を制御して印字を行う。
本実施例では、インターフェースは双方向のシリアルインターフェースであるRS−232Cを用いており、RS−232Cではオフラインの状態でもホストコンピュータとの通信は可能である。一般にRS−232Cの双方向シリアルインターフェースでは、一方の装置がオフラインとなっても他方の装置がそれを検出し通信データの送信を停止するまでの間、数バイトのデータが回線上に乗っている可能性がある為、オフラインとした側の装置はオフライン後もデータを受信しなければならない。よって、受信バッファがいっぱいになる前にオフラインとすることが必要である。従って、印字装置にエラーが発生しオフラインとなっても受信バッファに空きが有る間、通信データは受信され、受信バッファに蓄えられる。そして、受信バッファがいっぱいになった場合、その後の受信データは捨てられてしまうことになる。しかし、本実施例では、受信割込みで起動されるリアルタイムコマンド解析手段64により受信バッファに記憶する前にコマンドの解析を行う為、たとえ捨てられても、コマンドとしての処理は行われる。
リアルタイムコマンドには、印字装置の状態を要求するコマンドがあり、このコマンドが受信されると、リアルタイムコマンド解析手段64により印字装置の状態をデータ送信手段63を介してホストコンピュータ61に回答する。エラー発生状態であっても、データ受信手段62とデータ送信手段63とリアルタイムコマンド解析手段64は動作しているため、印字装置の状態を送信することが可能である。
コマンド解析手段66で単票用紙選択コマンドであると判断された場合、制御手段68に通知する。制御手段68は、単票用紙が選択されたことを表示手段72に通知し、単票用紙挿入待ちの表示を行うと同時に、単票用紙状態記憶手段79により、RAM53内部に単票用紙が選択されたことと、単票用紙挿入待ちに入ったことを単票用紙情報として記憶する。単票用紙が選択されると単票用紙検出器73により単票用紙の挿入を検出し、制御手段68に通知する。制御手段68は単票用紙挿入待ち情報を監視し、単票用紙挿入待ち情報の内容が消去されるか、単票用紙の挿入が検出されるまで印字装置の駆動を停止する。コマンド解析手段66も制御手段68を起動できずに停止するが、リアルタイムコマンド解析手段64は、単票用紙挿入待ちに関係なく動作することができる。
リアルタイムコマンドには、単票用紙の挿入待ちを解除するコマンドがあり、このコマンドが受信されると、リアルタイムコマンド解析手段64によってRAM53内に記憶された単票用紙挿入待ち情報および単票用紙選択情報を消去する。この単票用紙挿入待ち状態を監視していた制御手段68は、単票用紙挿入待ち情報が消去されたことを確認すると、単票用紙挿入待ちを解除し印字バッファ67を消去し、初期値の用紙を選択する。単票用紙の挿入待ちを解除する方法としてタイムアウトがあり、制御手段68はタイマ78を制御する。
印字や紙送り、用紙のカットなどにおいて紙ジャムなどのエラーが発生した場合、エラー検出手段71によりエラーを検出し、制御手段68に通知するとともに、状態記憶手段77に記憶される。制御手段68は、エラーが発生したことを表示手段72に通知し、エラーの表示を行うと同時に、エラー状態記憶手段69によりRAM53内部にエラーの発生をエラー情報として記憶する。制御手段68は、エラー情報を監視し、この内容が消去されるまで印字装置の駆動を停止する。コマンド解析手段66も制御手段68を起動できずに停止するが、インターフェース51の受信割込みで起動されるリアルタイムコマンド解析手段64は、エラーの発生に関係なく動作することができる。ただし、コマンド解析手段65が停止しているため、インターフェース51で受信される受信データは、受信バッファ65内のデータは貯まっていく一方なので、エラー発生と同時に制御手段68によりインターフェースを制御して印字装置がデータを受け取れない事をホストコンピュータに通知する(いわゆるオフライン)。
リアルタイムコマンドには、エラーのからの回復コマンドがあり、このコマンドが受信されると、リアルタイムコマンド解析手段64によってRAM内に記憶されたエラー情報を消去する。このエラー状態を監視していた制御手段68は、エラー情報が消去されたことを確認すると、印字装置を再度起動し印字を再開する。
エラーからの回復コマンドのもう1つに、受信済のデータを消去した後印字を再開するコマンドがあり、このコマンドが受信されるとリアルタイムコマンド解析手段により受信バッファ65、印字バッファ67が消去された後、RAM内に記憶されたエラー情報を消去する。
用紙検出器73による紙無し、カバー検出器74によるカバーオープンの検出、スイッチ検出器75による紙送りスイッチによる紙送り中の時も印字装置がオフラインとなって、その状態が状態記憶手段77に記憶され、リアルタイムコマンド解析手段64によってその情報をホストコンピュータ61に回答する。
図6は、リアルタイムコマンドの一実施例のコマンドコードを示す。
図6において、「GS」「R」「n」はそれぞれ1バイトの受信データで、それぞれ16進表記で1Dh、52h、nを示す。「GS」「R」がリアルタイムコマンドであることを示し、nの値により実行する内容を選択する。
本実施例では、nの値により表1の様に実行する内容を定めている。
nが0の場合、表2に従う印字装置ステータス情報1バイトをホストコンピュータに送信する。
印字装置ステータス情報によりドロワの状態、印字装置のオンライン/オフラインの状態がホストコンピュータ側で判断できる。また、印字装置がオフラインの場合には、nを1としてさらに詳細なオフライン情報を取得することができる。
nが1の場合、表3に従うオフライン情報1バイトをホストコンピュータに送信する。
これにより、オフラインの情報をホストコンピュータ側で識別できる。
ホストコンピュータは識別した結果によって、使用者に注意を促すことができる。また、エラーの場合には、nを2として引き続き詳細なエラー情報を取得することができる。
nが2の場合、表4に従うエラー情報1バイトをホストコンピュータに送信する。
表4の中でメカニカルエラーとは、主に紙ジャムによるエラーの場合であって、キャリッジエラー、ホームポジションエラーを含む。これらは、印字ヘッド回りの紙ジャムであり、オートカッタエラーと区別している。これにより、印字ヘッド回りでの紙ジャムか、オートカッタでの紙ジャムかをホストコンピュータ側で識別することができる。識別した結果により、ホストコンピュータの表示手段によって使用者にエラー発生の箇所を的確に指示し、紙ジャムの除去を促す事ができる。
紙ジャムなどのエラーの場合には、原因となる紙ジャムを取り除けば印字再開が可能である。しかし、外部電源の異常や印字ヘッドのヘッド温度検出器の破損など印字再開が困難なエラーもあるため、これらを識別する必要がある。紙ジャム以外で発生したエラーは回復不可能エラーとしてビット5に割り当てている。
nが3の場合、表5に従うレシートやジャーナルなどの連続用紙検出器情報1バイトをホストコンピュータに送信する。
nが4の場合、表6に従うスリップ用紙検出器情報1バイトをホストコンピュータに送信する。
表6において、スリップ用紙の選択により、連続用紙やバリデーション用紙が選択されているかスリップ用紙が選択されているかが判断できる。また、スリップ用紙選択中において、用紙の挿入待ちであるか、すでに用紙があり印字可能な状態であるかが判断できる。
nが5の場合、表7に従うバリデーション用紙検出器情報1バイトをホストコンピュータに送信する。
表7において、バリデーション用紙の選択により、連続用紙やスリップ用紙が選択されているかバリデーション用紙が選択されているかが判断できる。また、バリデーション用紙選択中において、用紙の挿入待ちであるか、すでに用紙があり印字可能な状態であるかが判断できる。
次に、図7、図8でリアルタイムコマンドのデータ受信手段とリアルタイムコマンド解析手段について説明する。
図7は、印字装置の初期化行程を示し、電源オンと同時に処理が開始される(ステップ120)。初期化においては、印字機構の初期化(ステップ121)、単票用紙状態フラグ、エラー情報、バッファクリアフラグ、GSフラグ、GSRフラグなどを含め、一般的にはRAM53内の全ての情報を初期化する(ステップ122)。バッファクリアフラグ、GSフラグ、GSRフラグは、受信割込み処理で使用するフラグで、リアルタイムコマンド解析手段で用いる。最後にステップ124でインターフェースの受信割込みを許可して初期化行程を終了する(ステップ124)。
図8は、インターフェースの受信割込み処理の行程を示し、データ受信手段とリアルタイムコマンド解析手段を示している。インターフェースを介して、ホストコンピュータからの受信データは、1バイトづつ受信されるため、各バイト受信毎に図8の処理が起動される。リアルタイムコマンドは、図6に示した様に「GS」「R」「n」の3バイトで構成されるため、「GS」を受信した時にセットされるGSフラグ、GSがセットされている場合に「R」を受信した時にセットされるGSRフラグ、GSRフラグがセットされている時に受信した「n」によって制御される。また、「n」の値によってバッファをクリアするかどうかを記憶するバッファクリアフラグがある。
ステップ125でデータが受信され受信割込みが起動される。ステップ126で受信データをインターフェースから読みだし、ステップ127でGSRフラグがセットされているかどうかを判断する。GSRフラグがセットされている場合、すなわち既に「GS」「R」まで受信済の場合、受信データ(ここではCとする)を「n」として処理を行う。ステップ136でGSRフラグをクリアし、受信データ(C)の値により、以下の動作を行う(ステップ137)。
C=0の時、送信手段63によりRAM53内に記憶したプリンタ情報をインターフェースを介してホストコンピュータに送信する(ステップ138)。
C=1の時、送信手段63によりRAM53内に記憶したオフライン情報をインターフェースを介してホストコンピュータに送信する(ステップ139)。
C=2の時、送信手段63によりRAM53内に記憶したエラー情報をインターフェースを介してホストコンピュータに送信する(ステップ140)。
C=3の時、送信手段63によりRAM53内に記憶した連続用紙情報をインターフェースを介してホストコンピュータに送信する(ステップ141)。
C=4の時、送信手段63によりRAM53内に記憶したスリップ状態情報をインターフェースを介してホストコンピュータに送信する(ステップ142)。
C=5の時、送信手段63によりRAM53内に記憶したバリデーション状態情報をインターフェースを介してホストコンピュータに送信する(ステップ143)。
C=6の場合、単票用紙待ち状態かどうかを判断し(ステップ144)、待ち状態であれば、単票用紙待ちフラグをクリアする(ステップ145)。図9で示すように、単票用紙待ちフラグをクリアすることにより、単票用紙待ち状態から回復することができる。
C=8の場合バッファクリアフラグをセットし(ステップ146)、RAM53内のエラー情報をクリアする(ステップ147)。バッファクリアフラグをクリアすると、図10で示すようにエラーからの回復時に受信バッファと印字バッファをクリアされる。C=7の場合、単にエラー情報をクリアする(ステップ147)。
受信データは、リアルタイムコマンドであっても、一旦受信バッファに記憶される(ステップ132)。
ステップ127においてGSRフラグがクリアされている場合、ステップ128でGSフラグがセットされているかを判断する。すなわち、既に「GS」まで受信済の場合GSフラグがセットされており、ステップ129でGSフラグをクリアし、受信データ(C)が「R」かどうかを判断する(ステップ129)。C=「R」の場合GSRフラグをセットし(ステップ131)、受信バッファに受信データを記憶する(ステップ132)。
ステップ128においてGSフラグがクリアされている場合、ステップ134において受信データ(C)が「GS」コードかどうか判断する。C=「GS」の場合、GSフラグをセットし、そうでなければそのまま受信バッファに記憶して(ステップ132)、受信割込み処理を終了する(ステップ133)。
次に、図9で単票用紙の設定を行う制御手段について説明する。図9で単票用紙が選択されてから設定されるまでと、単票用紙解除の行程を示す。コマンド解釈手段66で単票用紙選択コマンドであると判断されたときに処理が開始する(ステップ151)。単票用紙選択フラグをセットし、単票用紙挿入待ちフラグをセットする(ステップ152)。メカ動作が停止したのを確認してから(ステップ153)、単票用紙挿入待ちタイマ78を起動し、表示手段72により表示装置48を点滅させる(ステップ155)。ステップ156で単票用紙挿入待ちフラグがクリアされているか判断する。単票用紙挿入待ちフラグがクリアされている場合、すなわちリアルタイムコマンド「GS」「R」「6」により単票用紙の挿入待ちをキャンセルした場合、単票用紙挿入待ちタイマを停止し(ステップ157)、表示示手段72により表示装置48を消灯する(ステップ158)。単票用紙選択フラグと、単票用紙挿入待ちフラグをクリアし(ステップ159)、初期値の用紙をセットし(ステップ160)、単票用紙選択処理を終了する(ステップ161)。
ステップ156で単票用紙挿入待ちフラグがクリアされていない場合、単票用紙挿入待ち時間がすぎていないか判断し(ステップ162)、単票用紙待ち時間がすぎていた場合、ステップ158の処理へ飛ぶ。
ステップ162で単票用紙挿入待ち時間が過ぎていない場合、ステップ163で単票用紙が挿入されたか判断する。単票用紙が挿入されていないと判断された場合、再び単票用紙挿入待ちフラグがクリアされているかステップ156に判断にいき、単票用紙挿入待ちフラグがクリアされるか、単票用紙挿入待ち時間が切れるか、単票用紙が挿入されるまで以上の動作が繰り返される。
ステップ163で単票用紙が挿入さたと判断された場合、単票用紙挿入待ちタイマ78を停止し(ステップ164)、表示装置48を点灯し(ステップ165)、動作開始待ち時間待つ(ステップ166)。ステップ167で単票用紙が挿入されていないと判断された場合、ステップ154の処理へに戻り、以上の動作を繰り返す。
ステップ167で単票用紙が挿入されていると判断された場合、単票用紙挿入待ちフラグをクリアし(ステップ168)、単票用紙を正位置にセットし(ステップ169)、単票用紙選択の処理を終了する(ステップ161)。
以上述べた様に、受信割込み処理の中にデータ受信手段とリアルタイムコマンド解析手段を含めることにより、印字装置が単票用紙挿入待ちにより停止した場合でも、コマンドを解析し、単票用紙挿入待ちを解除できる。
図10に、エラーを検出する一実施例としてキャリッジエラーを検出する場合について説明する。
ステップ101で印字指令が開始され、ステップ102で1行印字分の印字装置の初期化を行う。ステップ103から105において1行分の印字を行う。ステップ103では、1ドット列の印字を行い印字キャリッジを1ドット列分移動する。104では、キャリッジが移動することにより、キェリッジ検出器35からの検出パルスがあるかどうかを調べる。通常は、キャリッジが正常に移動するため検出パルスが周期的に発生する。ステップ105において、1行分の印字が終了したかどうかを調べ、終了していない場合ステップ103から繰り返す。1行分の印字が終了していれば、ステップ106で印字終了となる。
ここで紙ジャムなどによりキャリッジが停止した場合、ステップ104において、検出パルスが検出されず、ステップ107に移行する。すなわち、ステップ107以降は、キャリッッジエラーが発生した場合の処理となり、まず、ステップ107において、印字装置が通信データを受け取れないことをホストコンピュータに通知する、いわゆるオフラインとする。ステップ108においてキャリッジエラーが発生した事をRAM53内に記憶する。キャリッッジエラーは回復可能なエラーであるから、回復可能エラーとして情報を記憶する。同時に109において印字機構を停止する。その後、ステップ111において上記エラー情報が消去されるまで、ステップ110においてエラー表示装置にエラーが発生した事を表示する。リアルタイムコマンドが受信されると、エラー情報が消去されステップ112において、受信したリアルタイムコマンドがバッファクリアを指令しているかにより、指令している場合、113においてバッファをクリアする。この場合のバッファとは、受信バッファと印字バッファの両方を示す。その後、ステップ114で印字装置の回復処理を行い、ステップ115で印字装置が受信可能になったことをホストコンピュータに知らせる、いわゆるオンラインとする。
以上述べた様に、受信割込み処理の中にデータ受信手段とリアルタイムコマンド解析手段を含めることにより、印字装置がエラー発生により停止した場合でも、コマンドを解析し、エラーからの回復が可能となる。
次にホストコンピュータ側から見た場合の印字装置の制御について説明する。
図11は、本発明の情報処理装置の概念図であって、印字装置300はホストコンピュータ61とRS−232Cの通信ケーブル305により接続している。ホストコンピュータ61内には、通信手段304としてRS−232Cインターフェース制御回路が組み込まれている。また、CRTなどの表示装置302とキーボードなどの入力装置303がホストコンピュータ61に接続している。
図12は、ホストコンピュータにおいて、単票用紙挿入待ちを解除することを考慮した制御行程を示すフローチャート図である。ここでは、単票用紙の例としてスリップ紙に印字する場合を示す。
スリップ用紙に印字する場合(ステップ250)、まず、スリップ用紙選択コマンドを送信する(ステップ251)。次に、スリップ用紙の状態を調べるためリアルタイムコマンド「GS」「R」「4」を送信し(ステップ252)、これに対する応答を受信する(ステップ253)。この応答は、表6に示した情報が含まれている。この情報により、スリップ用紙が選択されたかどうかを判断する(ステップ254)。
スリップ用紙が選択された場合、ステップ253における情報により、スリップの挿入待ちかどうかを判断する(ステップ255)。挿入待ちでない場合、スリップ用紙のありを確認後(ステップ256)、印字データを送信して(ステップ257)、スリップ用紙の印字を終了する(ステップ258)。
ステップ255において、スリップ挿入待ちのとき、入力装置303の特定のキー、たとえば「スリップキャンセルキー」を監視しこのキーが押されているかどうかを判断する(ステップ259)。このキーは、スリップ挿入待ちキャンセルの機能を割り当てられたキーであり、オペレータにより操作される。
キーが押されている場合、スリップ挿入待ちキャンセルコマンド「GS」「R」「6」を送信することによりスリップ挿入待ちを解除することができる(ステップ260)。
また、ステップ254とステップ256において、それぞれスリップが非選択の場合と用紙がない場合においても、このキーを監視することにより、スリップ印字を終了することができる(ステップ259)。この場合、スリップキャンセルコマンド「GS」「R」「6」を送信しても、印字装置側では単票用紙の挿入待ち状態でないため無視される(ステップ260)。キーが押されていない場合、ステップ252に戻り、スリップの選択(ステップ254)もしくは、用紙あり(ステップ256)を待つことになる。
図13は、ホストコンピュータにおいて、エラーからの回復を考慮した印字行程を示すフローチャート図である。
印字開始後(ステップ200)、1行分の印字データを送信する毎に(ステップ201)、印字装置がオフラインになったかどうかを監視する(ステップ202)。一般に、RS−232Cインターフェースでは、受信側(ここでは印字装置)がオフラインになると、CTS(ClearTo Send)信号もしくは、DSR(DataSet Ready)信号、もしくはXOFFコードにより知ることができる。印字装置がオンラインであれば、印字データを送信し続け、印字データが終了すれば(ステップ203)、印字終了となる(ステップ204)。
ステップ202において、印字装置がオフラインになると、印字装置がエラーを発生したか、その他の原因(たとえば、印字用紙が無くなったなど)により印字ができなくなったと考えられる。そこで、エラーが発生したかどうかを確認するため、ステップ205でリアルタイムコマンド「GS」「R」「2」を送信する。これに対する応答をステップ206で受信し、エラーが発生しているかを判断する(ステップ207)。エラーが発生していない場合、エラー以外の原因でオフラインになったと考えれるので、その他の原因を調べ(ステップ208)、それに対する処理を行う(ステップ209)。その他の原因の取得は、「GS」「R」「1」により、カバーが開いている、印字用紙が無くなったなどの情報を取得することによる。ホストコンピュータは、「カバーを閉じてください」とか「紙をセットしてください」などと表示装置302に表示し、使用者に注意を促すことができる。
これを印字装置がオンラインになるまで繰り返し(ステップ210)、オンラインになったところで、印字を再開する(ステップ201)。
ステップ207でエラーが発生した場合、そのエラーが回復可能かどうかを判断する(ステップ211)。回復可能エラーかどうかは、表4に示したビット5で判断できる。回復可能エラーの場合、エラーが発生したことを使用者に知らせ、エラーの原因と予想される紙ジャムなどを取り除くことを指示する。この時、紙ジャムの発生箇所を表4のビット2とビット3により、キャリッジかオートカッタかを使用者に知らせる事ができる。使用者が紙ジャムを取り除いた後、ホストコンピュータの入力装置303(たとえばキーボード)により、確認の入力を行なわせることにより、エラー原因の除去を確認する(ステップ213)。その後、リアルタイムコマンド「GS」「R」「6」もしくは「7」により、印字装置をエラーから回復させる。使用者が、エラーの原因を完全に取り除いていない場合や、複数のエラーが同時に発生している場合を考慮して、再度ステップ205から、エラーの発生を確認することが望ましい。
ステップ211において回復不可能なエラーの場合は、印字装置に異常が有り、使用者では修復できない場合である。この場合は、印字装置が異常であることを使用者に知らせて(ステップ215)、印字処理を中止する(ステップ216)。
金銭を扱うPOS/ECRなどの情報処理装置としては、データの欠落、重複は絶対あってはなならい。印字装置にエラーが発生した場合、受信済のデータを抹消すること無くエラーから回復し、印字を再開することは重要である。ただし、従来の印字装置を用いた情報処理装置にも対応するため、受信済のデータを抹消してから回復するモードを可能にし、ホストコンピュータからの制御コマンドにより選択可能とした。すなわち、従来の印字装置を用いた情報処理装置では、印字装置がエラーから回復した後は必ず受信済データは抹消していた為、エラー発生前と同一データを印字する場合は、2度目の印字データであることを明示するために特殊な文字を行の先頭などに印字させていた。これに対応するため、受信済データを抹消してから回復するモードが必要であった。
以上述べた本発明の実施例によれば、印字装置がオフラインになった時でも、その原因をホストコンピュータ側で知る事ができる。また、受信割込み処理の中にデータ受信手段とリアルタイムコマンド解析手段を含めることにより、印刷装置側はコマンドを解析することができる。これにより、金銭を扱う流通業界の印字装置として、信頼性の高い高スループットの印字装置を提供するとともに、ホストコンピュータの負担を軽減し、使用者に扱い易い印字装置およびこれを用いた情報処理装置を提供することができる。