以下、本発明に係る印刷システム、印刷システムの制御方法、及びプログラムの一実施形態について、図面に基づいて、説明する。一実施形態として、POS(Point Of Sale)システムにおいて用いられるホスト装置(レジ端末)と、印刷装置(レシートプリンタ)を例に挙げて説明する。また、本発明のプログラムは、上記の印刷システムを機能させるためのものであるため、プログラムについては、印刷システムの説明に含めるものとする。また、本発明の制御方法も、印刷システムの説明に含めるものとする。
図1は本発明の一実施形態に係る印刷システム(POSシステム)の構成を示す外観斜視図である。図1に示すように、本実施形態の印刷システム1は、オペレータによる商品情報の入力に基づいて会計処理を行うと共に、レシートや領収書等として用いられる印刷データを生成するホスト装置10と、当該ホスト装置10から送信された印刷データおよび制御データに基づいて印刷を行う印刷装置20と、複数のホスト装置10(POS端末)と接続され(図1に示す例では1台のみ図示)、これらホスト装置10を統括制御するPOSサーバ30と、によって構成されている。そして、ホスト装置10と印刷装置20とがセットとなり、一人のオペレータの操作対象となる1台のPOS端末を構成している。
ホスト装置10は、本体ケース18の前部上面にオペレータが商品情報を手入力するキーボード14と、その後部右側にオペレータが入力情報を確認するオペレータ用ディスプレイ17aとを配置し、本体ケース18内にはキャッシュドロア18aが収納されている。また、本体ケース18の右側側面には商品に貼付されたバーコードを読みとるためのバーコードスキャナ16、キーボード14の右側には、顧客から提示されたクレジットカードを読みとるためのカードリーダ15(カードリーダ用スロット)が形成されている。さらに、本体ケース18の背面側には、顧客が商品情報等を確認するための顧客用ディスプレイ17bが配置されている。
そして、ホスト装置10は、キーボード14やバーコードスキャナ16により入力された商品情報に基づいて、印刷データを生成して印刷装置20に送信する。また、ホスト装置10は、印刷装置20からのステータスやレスポンスを受信し、印刷装置20における異常発生の有無や印刷装置20の処理モード(通常処理モード又は削除処理モード:詳細は後述する)の確認など、印刷装置20の状態監視を行うと共に、印刷装置20を制御する各種制御データおよびコマンドを送信する。
一方、印刷装置20は、前部が開口した筐体21と、前部開口を開閉自在に覆蓋するカバー22とを備え、当該カバー22を開放することによって、連続用紙Pの交換および内部の保守、点検が可能となっている。連続用紙Pは、巻回された状態で、印刷装置内部の用紙収容部25に収納されている。また、用紙収容部25から繰り出された連続用紙Pは、カバー22に形成された排紙口24から筐体21外へ導かれる。また、排紙口24の内側にはカッタ機構(図示省略)を備えている。
また、印刷装置20は、コネクタ等を介してホスト装置10と接続されており、当該ホスト装置10からの印刷指示にしたがって、レシートや領収書の発行処理を行う。すなわち、ホスト装置10からの印刷指示により、印刷ヘッド122、インク供給部125(いずれも図4参照)を制御してキャラクタ(文字や記号など)および絵柄等の印刷を行い、紙送りモータ124(図4参照)を駆動して連続用紙Pの排紙口24に搬送する。そして、印刷を完了すると、排紙口24の内側に配置されたカッタ機構(図示省略)により切断分離する。連続用紙Pから切断分離されたシートは、排紙口24から排出される。排紙口24から排出されたシートは、例えば小売店の店員であるオペレータによって、利用者に提供される。
また、筐体21の前面には、印刷装置20内の各種異常要因を表示する複数のエラーLED23が備えられており、用紙収容部25に収容された連続用紙Pを使い切った場合(用紙なしとなった場合)、インクエンドの場合、その他紙ジャムなど印刷続行が困難となるエラーが発生した場合は、それぞれの異常の要因に対応したエラーLED23を点灯または点滅することにより異常発生を表示する。
次に、図2を参照してホスト装置10の制御構成について説明する。図2は、ホスト装置の機能ブロック図である。図2に示すとおり、ホスト装置10は、印刷装置20とのデータの送受信を行うインタフェース31と、印刷装置20から受信したステータスやレスポンス等のデータを格納する受信バッファとして機能するデータ受信部32と、を備えている。ホスト装置10は、印刷装置20の異常発生時における印刷装置20の処理モード(通常処理モード又は削除処理モード)を予め設定するコマンドの生成など、処理モードの設定を行う要因別モード設定部33も備えている。
さらに、ホスト装置10は、印刷装置20から受信したステータスやレスポンス等に基づき、印刷装置20の状態監視を行う状態監視部34と、連続用紙Pに印刷するための印刷データを生成する印刷データ生成部35と、印刷装置20における削除処理モードを終了させるための印刷再開コマンドを生成する印刷再開コマンド生成部36と、ホスト装置10全体を制御する制御部37と、各種コマンドや印刷データを送信するデータ送信部38(アプリケーションが管理するデータバッファ、およびOSが管理する送信バッファとしても機能する)と、印刷装置20から受信したステータスに基づき、異常の要因を判定する要因判定部39と、要因判定部39で判定された要因に対応する処理を実行する要因別処理部40と、を備えている。要因判定部39が要因判定手段に相当し、要因別処理部40が、要因別処理手段に相当する。
要因別モード設定部33は、予め定められて、例えばキーボード14(図1参照)を介して入力された、印刷装置20の異常発生時における印刷装置20の処理モード(通常処理モード又は削除処理モード)を設定するためのコマンドの生成など、各種モード設定のための処理を行う。印刷装置20の異常発生時における印刷装置20の処理モードは、上記した用紙なしやインクエンドやエラーなどの異常の要因毎に、それぞれ個別に設定される。この場合の要因別モード設定部33が、要因別処理モード設定手段に相当する。
状態監視部34は、印刷装置20からステータスを受信することにより、用紙なしやインクエンド等の印刷装置20の状態を監視する。また、削除処理開始レスポンス、削除処理終了レスポンス等により、印刷装置20におけるデータ処理の進行状況を監視する。削除処理開始レスポンスおよび削除処理終了レスポンスは、印刷装置20において削除処理モードが開始したことおよび終了したこと(通常データ処理に復帰したこと)を示すレスポンスであり、これによりホスト装置10は、印刷装置20の処理モードを確認することができる。なお、印刷装置20の処理モードおよびこれらのレスポンスについては、後に詳述する。
制御部37は、印刷装置20に異常が発生していない(印刷可能な状態)場合は、通常の処理(印刷データや制御コマンドの送信)を行う。また、状態監視部34により印刷装置20が削除処理モードに移行したことを検出したとき(削除処理開始レスポンスを取得したとき)、その時点で実行しているデータ送信処理を停止する。また、印刷装置20から異常解除のステータスを受信したとき、印刷再開コマンド生成部36により印刷再開コマンドを送信する。その後、状態監視部34により印刷装置20が印刷可能な状態に復帰したことを検出したとき(削除処理終了レスポンスを取得したとき)、印刷データの送信処理を再開する。
要因判定部39は、状態監視部34により印刷装置20が印刷を実行できない異常状態になったことを検出したとき(異常発生のステータスを取得したとき)、当該異常発生のステータスから、印刷装置20で発生している異常の要因を判定する。要因別処理部40は、要因判定部39で判定された要因から、実行すべき要因の解除処理を選択し実行する。異常発生時にホスト装置10が実行する要因解除の各処理の詳細は、後述する。
次に、図3を参照して印刷装置20の制御構成について説明する。図3は、印刷装置の機能ブロック図である。図3に示すとおり、印刷装置20は、ホスト装置10とのデータの送受信を行うインタフェース41と、受信した印刷データや制御コマンドを格納する受信バッファ242(図4参照)として機能するデータ受信部42と、ホスト装置10から受信した印刷再開コマンドや印刷装置20の異常検出に基づいて、処理モードを判定し、判定した処理モードに対応する通常処理モード制御部44又は削除処理モード制御部45に処理を移す処理モード判定部43と、当該処理モード判定部43により通常処理モードと判定された場合に制御を行う通常処理モード制御部44と、同じく処理モード判定部43により削除処理モードと判定された場合に制御を行う削除処理モード制御部45と、異常発生時における処理モードを決定するためのホスト装置10からの指定値(コマンド)を記憶する要因別処理モード記憶部46と、を備えている。
印刷装置20は、さらに、カバー検出センサ142、用紙検出センサ143及びインク残量検出センサ144(いずれも図4参照)等の状態を検出して、印刷装置20内の異常の有無を検出する要因検出部47aと、要因検出部47aの検出結果を監視することで印刷装置20が印刷可能な状態であるか否かを監視する状態監視部47と、ホスト装置10から送信された印刷データに基づいて生成されたイメージデータを格納するプリントバッファ245(図4参照)として機能し、かつ印刷制御を行う印刷制御部48と、ホスト装置10に送信する各種ステータスやレスポンスを生成するステータス/レスポンス生成部49と、ステータス/レスポンス生成部49により生成されたステータスやレスポンスを、ホスト装置10に送信するデータを格納する送信バッファ243(図4参照)として機能するデータ送信部50と、を備えている。要因検出部47aが、異常検出手段と要因判別手段とに相当する。インタフェース41と、ステータス/レスポンス生成部49と、データ送信部50とが、異常発生情報送信手段に相当する。
通常処理モード制御部44は、印刷装置20が正常に印刷できる状態において、ホスト装置10から受信した印刷データや各種コマンドの処理を実行する。また、通常処理モード制御時において、印刷再開コマンドを受信した場合は、これを破棄する。印刷装置20に異常が発生した場合は、処理モード判定部43が、検出された異常の要因に対応して、処理モードを判定し、削除処理モードに移行することが指定された異常の要因の場合には、削除処理モード制御部45に処理を移す。
また、削除処理モード制御部45は、削除処理モードに移行したときに、ホスト装置10に削除処理開始レスポンスを送信すると共に、ホスト装置10から印刷再開コマンドを受信したときに、削除処理終了レスポンスを送信し、その後、通常処理モード制御部44に処理を移す。また、削除処理モード制御部45は、削除処理モードの処理対象となっている特定のコマンドのみを実行し、これら以外のコマンドや印刷データは読み捨て処理を行う。削除処理モードの処理対象となっている特定のコマンドとしては、印刷再開コマンド、処理モード(通常処理モード又は削除処理モード)確認コマンド、印刷装置のステータス要求コマンド、紙ジャムなどのエラーを復帰するためのエラー復帰コマンドなどが挙げられる。なお、削除処理開始レスポンス及び削除処理終了レスポンスの送信処理は通常処理モード制御部44で実行する構成としても良い。
また、ステータス/レスポンス生成部49は、状態監視部47で検出した印刷装置20の状態を通知するステータスや、データの処理状況を通知する、削除処理開始レスポンス、削除処理終了レスポンス等の各種レスポンスを生成する。
次に、図4を参照して、印刷装置20の制御構成について説明する。図4は、印刷装置の制御構成を示す制御ブロック図である。図4に示すように、印刷装置20は、エラーLED23を有し、印刷装置20における異常状態を表示する表示部110と、印刷ヘッド122と、紙送りモータ124により連続用紙Pを搬送する用紙送り部123と、インクカートリッジ126からインクを供給するインク供給部125とを有し、ホスト装置10から送信された印刷データに基づいて印刷を行う印刷部120と、用紙カッタ132とこれを駆動するカッタモータ131とを有し、連続用紙Pの印刷済み部分の後端を切断する切断部130と、カバー22の開閉を検出するカバー検出センサ142と、印刷部120にセットされた連続用紙Pの有無を検出する用紙検出センサ143と、インクカートリッジ126内のインク残量を検出するインク残量検出センサ144とを有し、各種検出を行う検出部140と、ヘッドドライバ152およびモータドライバ153(送りモータドライバ153a、カッタモータドライバ153b)を有し、各部を駆動する駆動部150と、各部と接続され、印刷装置20全体を制御する制御部200と、を備えている。
制御部200は、CPU210、ROM220、キャラクタジェネレータROM(CG−ROM)230、RAM240および入出力制御装置(以下、「IOC(Input Output Controller)」と表記する。)260を備え、当該各装置は、互いに内部バス270により接続されている。ROM220は、処理モードに応じた制御を行うためのプログラムの他、CPU210で処理する各種プログラムを記憶する制御プログラムブロック221と、各種テーブルや制御データを記憶する制御データブロック222とを有している。また、CG−ROM230は、文字や記号のフォントデータを記憶しており、文字等を特定するコードデータが与えられると、対応するフォントデータを出力する。なお、ホスト装置10の処理能力に応じて、CG−ROM230を省略した構成としても良い。
RAM240は、フラグ等として使用される各種ワークエリアブロック241の他、ホスト装置10から受信した印刷データ等を記憶するデータ受信部42(図3参照)として機能する受信バッファ242と、ホスト装置10に送信するステータスおよび各種レスポンスを記憶するデータ送信部50(図3参照)として機能する送信バッファ243と、異常発生時モード選択コマンド(図5(a)参照)の指定値を記憶する要因別処理モード記憶部46(図3参照)として機能する異常発生時モードブロック244と、印刷するためのイメージデータを記憶するプリントバッファ245と、を有し、作業領域として使用される。
IOC260には、CPU210の機能を補うと共に各種周辺回路とのインタフェース信号を取り扱うための論理回路が、ゲートアレイやカスタムLSIなどにより構成されて組み込まれている。これにより、IOC260は、ホスト装置10からの印刷データや制御データをそのまま或いは加工して内部バス270に取り込む。
そして、CPU210は、上記の構成により、ROM220内の制御プログラムにしたがって、IOC260を介してホスト装置10および印刷装置20内の各部から各種信号やデータを入力し、CG−ROM230からのフォントデータ、RAM240内の各種データを処理し、IOC260を介して印刷装置20内の各部に、各種信号やデータを出力することにより、ホスト装置10から送信された制御コマンドに応じたモード移行や印刷処理等の制御を行う。
次に、ホスト装置10から印刷装置20に送信される制御コマンドについて説明する。図5は、制御コマンドの一例を示す説明図である。図5(a)に示すように、異常発生時における処理を決定するための異常発生時モード選択コマンドは、「ESC A m1 m2 m3」で表される。最初に、パラメータm1について説明する。m1=0の場合(第1処理モード)は、異常発生時において、処理モード判定部43は、削除処理モードに移行しないと判定する。この場合、受信バッファ242およびプリントバッファ245内に蓄積された印刷が完了していないデータを保持する。また、m1=1の場合(第2処理モード)は、異常発生時において、処理モード判定部43は、削除処理モードに移行すると判定し、削除処理モード制御部45に処理を移す。削除処理モード制御部45は、削除処理モードの各処理を実行すると共に、受信バッファ242およびプリントバッファ245内に蓄積された印刷が完了していないデータを一括破棄する。また、m1=2の場合(第3処理モード)は、異常発生時において、処理モード判定部43は、削除処理モードに移行すると判定し、削除処理モード制御部45に処理を移す。削除処理モード制御部45は、削除処理モードの各処理を実行すると共に、プリントバッファ245内に蓄積された印刷が完了していないデータを一括破棄し、受信バッファ242内に蓄積された印刷が完了していないデータを保持する。
このように、パラメータm1を変化させることにより、異常発生時の適切な処理モードを選択することができる。すなわち、第1処理モード(m1=0)を選択すると、異常が解除された後、異常発生前に実行した印刷のデータに続くデータに基づく印刷が、異常発生前に実行された印刷結果に連続して印刷されることで、継続した印刷結果を得ることができる。従って、例えばインクエンドのような、異常発生によって用紙が分断しない異常の要因による異常の場合に有効である。この場合、印刷データの再送信が必要なくなると共に、異常発生前に実行した印刷が無駄にならないことから、用紙などの無駄が発生することがない。
また、第2処理モード(m1=1)を選択すると、受信バッファ242とプリントバッファ245内のデータを一括破棄するため、削除処理モードにおいてデータを削除するのに要する時間を短縮することができる。さらに、印刷装置20の状態監視を行うアプリケーションを用いている場合は、印刷装置20からのステータスを監視しながら処理を行うことができるため、異常解除のステータス受信後に印刷再開コマンドを送信することで、支障なく処理を続行することができる。
また、第3処理モード(m1=2)を選択すると、受信バッファ242内のデータを保持したまま、削除処理モードへ移行し、削除処理モードにおいて、受信バッファ242内のデータを1バイトずつ確認しながら削除していく。異常発生時にホスト装置10のデータ送信中止処理に間に合わなかったデータや、通信途上のデータの中に印刷再開コマンドが含まれていた場合に、印刷装置20の異常状態が解除されたときに、当該印刷再開コマンドによって印刷が可能な状態に復帰することができる。なお、通信途上のデータには、ホスト装置10に設けられたOSが管理する送信バッファ内のデータ、印刷装置サーバに設けられたデータバッファ内のデータ、印刷装置20の受信バッファ242内のデータなどがある。印刷装置20の異常状態解除を検出して、ホスト装置10から印刷再開コマンドを送ることを必要とせずに印刷が可能な状態に復帰することができるため、ホスト装置10のアプリケーションが、印刷装置20の状態監視を行わないアプリケーションであっても、支障なく処理を続行することができる。なお、受信バッファ242内のデータを1バイトずつ確認しながら削除していく処理は、削除処理に時間がかかるため、印刷装置20の状態監視を行うアプリケーションを使用している場合には、第2処理モード(m1=1)を選択することが好ましい。
次に、パラメータm2について説明する。異常発生時モード選択コマンド「ESC A m1 m2 m3」は、パラメータm2によって、処理モード移行時のレスポンスをホスト装置10に送信するか否かを指定する。例えば、m2=0の場合は、処理モード移行時のレスポンスをホスト装置10に送信しない。また、m2=1の場合は、通常データの処理から削除処理モードへの移行、又は削除処理モードから通常データ処理への移行の際に、削除処理モード制御部45又は通常処理モード制御部44が、それぞれ削除処理開始レスポンス又は削除処理終了レスポンスを、ステータス/レスポンス生成部49に生成させて、ホスト装置10に送信する。この場合の削除処理モード制御部45又は通常処理モード制御部44が、モード移行レスポンス選択手段に相当する。
ホスト装置10は、印刷装置20から、削除処理開始レスポンスおよび削除処理終了レスポンスを受信することで、印刷装置20の処理モードを把握することができる。また、削除処理終了レスポンスにより、印刷再開コマンドが正常処理されたことを確認することができる。
また、処理モード移行時のレスポンスをホスト装置10に送信するか否かを選択して指定することが可能であるため、両レスポンスをホスト装置に「送信しない」とすることで、ホスト装置10のアプリケーションが、印刷装置20の状態監視を行わないアプリケーションである場合にも対応することができる。
次に、パラメータm3について説明する。異常発生時モード選択コマンド「ESC A m1 m2 m3」は、パラメータm3によって、パラメータm1及びパラメータm2の動作の対象となる異常の要因を指定する。例えば、m3=10の場合は、異常の要因がカッタエラーの場合に、パラメータm1で指定する処理モードで動作し、パラメータm2で指定するレスポンス処理を行う。同様にm3=11、m3=20、m3=21、m3=30、m3=40は、それぞれ、異常の要因がキャリッジ動作エラー、カバーAのオープン、カバーBのオープン、用紙なし、インクエンドの場合に、パラメータm1及びパラメータm2の動作の対象とすることを指定する。m3=0は、全ての異常の要因に対して、パラメータm1及びパラメータm2の動作の対象とすることを指定する。
異常時の処理モードが、要因によらず同一の処理でよい印刷装置においては、m3=0を選択して指定することで、セットアップ時のアプリケーションの処理を効率化することができる。また、一旦、m3=0を選択して指定することで、全ての要因に対して同一処理モードを指定し、次に異なる処理モードが必要な要因についてのみ、個々に再設定することで、要因毎に異常時の処理モードが異なる印刷装置においても、セットアップ時のアプリケーションの処理を効率化することができる。パラメータm3が、第1のパラメータに相当する。
カッタエラーは、連続紙を切断するカッタが、例えば基準位置に戻らないため、用紙カットが実行できないなどの、カッタ周辺のエラーである。キャリッジ動作エラーは、ヘッドを搭載したキャリッジが、摺動しないため印刷が実行できないなどの、キャリッジ周辺のエラーである。これらのエラーは、当該エラーが発生する直前の印刷が正常に実行されていない場合があり、エラー発生から復帰したところで、既印刷部分も再度印刷を実行することが好ましい。
カバーAのオープン、カバーBのオープンは、カバーA、カバーBが開いている状態を指定する。カバーAは、例えばインクカートリッジの収容部のカバーであって、カバーAが開けられると印刷が停止する。印刷が停止しても、用紙やヘッドは印刷が停止した時の状態を維持しており、カバーAが閉じられたところで、既印刷部に続けて未印刷データによる印刷を実行することで、目的の印刷を実行することが可能である。カバーBは、例えば、開けることで用紙の保持ができなくなる構成の用紙収容部のカバーであって、カバーBが開けられて印刷が停止したところで用紙の位置ずれがおこる。従って、カバーBが閉じられたところで、未印刷データによる印刷を再開しても、既印刷部と未印刷データによる印刷が連続しない可能性が高いため、既印刷部分も再度印刷を実行することが好ましい。
用紙なしは、セットされた印刷用紙が無くなった状態である。用紙が連続紙の場合には、印刷停止後、新たに連続紙を補充することで異常の要因が解除されるが、補充された連続紙に未印刷データの印刷を再開しても、既印刷部分に連続して印刷することはできない。従って、連続紙が補充された後、既印刷部分も再度印刷を実行することが好ましい。また、用紙が単票用紙の場合には、印刷停止後、新たに用紙を補充することで異常の要因が解除され、補充された用紙に未印刷データによる印刷を実行することで、目的の印刷を実行することが可能である。
インクエンドは、ヘッドに供給される印刷用インクが無くなった状態である。インクエンドが要因で印刷が停止しても、用紙やヘッドは印刷が停止した時の状態を維持しており、インクが補充されたところで、既印刷部に続けて未印刷データによる印刷を実行することで、目的の印刷を実行することが可能である。
なお、異常発生時の処理モードの選択、モード移行レスポンス有無の選択、並びに当該選択した処理を適用する異常の要因の選択は、上記の通りコマンドによって選択可能とする方法以外に、印刷装置20にメモリスイッチを備え、ホスト装置10から当該メモリスイッチを切り替え可能な制御データを送信することで選択できるようにしても良い。また、印刷装置20にディップスイッチ等を備え、当該ディップスイッチ等を切替えることによって選択可能としても良い。
次に、図5(b)を参照して印刷再開コマンドについて説明する。印刷再開コマンドは、削除処理モードから印刷可能な状態への復帰を指令するためのコマンドであり、「ESC B d1・・・dk」で表される。ここで、d1・・・dkは、例えば「FINISH」といった文字列など、任意のキーワードを設定可能となっている。このように、任意のキーワードをパラメータとすることにより、不測の一致による誤動作を回避することができる。また、ホスト装置10のアプリケーションが、印刷装置20の状態監視を行っているアプリケーションである場合は、ホスト装置10から印刷装置20へ、印刷再開コマンドを送信することで、印刷可能な状態への復帰をアプリケーションが管理することができるため、印刷が完了していないデータを確実に削除することができる。さらに、印刷装置20の状態監視を行わないアプリケーションを用いる場合は、印刷データの先頭に印刷再開コマンドを付加することで、異常発生時に処理されていた頁の次の頁から印刷を再開することができる。また、連続用紙Pの切断を指令するコマンドの直前(被印刷媒体が単票用紙の場合は、当該単票用紙の排出を指令するコマンドの直前)など、確実に動作させたいデータの直前に印刷再開コマンドを付加することで、これらの処理を確実に行わせることができる。
次に、図5(c)を参照して処理モード確認コマンドについて説明する。処理モード確認コマンドとは、印刷装置20の処理モードを確認するためのコマンドであり、「ESC C m」で表される。ここで、パラメータmは、例えばm=1とすることができる。このように、ホスト装置10は、処理モード確認コマンドを用いることで、例えば印刷データを送信する前にこれを送信し、印刷装置20の処理モードを確認して、印刷装置20の処理モードに合わせたデータ送信を行うことができる。したがって、印刷データを送信したにも関わらず、印刷装置20が削除処理モードのため、当該印刷データが読み捨てられるといったことがない。また、ホスト装置10のアプリケーションが起動する前に、既に印刷装置20が削除処理モードに移行していた場合、削除処理開始レスポンスがアプリケーションに届かないことが考えられるが、この場合でも処理モード確認コマンドを使用することで印刷装置20が削除処理モードであることを認識することができる。
なお、この処理モード確認コマンド「ESC C m」に対する印刷装置20からの戻り値は、例えば、削除処理開始レスポンス又は削除処理終了レスポンスである。すなわち、印刷装置20が、削除処理モードの場合、削除処理開始レスポンスを送信し、削除処理モードでない場合、削除処理終了レスポンスを送信する。このように、モード移行を通知するためのレスポンスと同様のレスポンスを戻り値とすることで、ホスト装置10は、各処理モードに応じた制御と共通のタスクを使用して処理を行うことができる。
次に、図6ないし図8のフローチャートを参照し、印刷装置20の処理例について説明する。最初に、図6を参照して通常データ処理時(通常処理モード)における印刷装置20の処理例について説明する。図6は、印刷装置の状態監視を行うアプリケーションを用いた場合の、印刷装置における通常データ処理の一例を示すフローチャートである。図6に示すように、印刷装置20は、ホスト装置10からデータを受信すると(ステップS11)、異常発生時のモード指定であるか否か(異常発生時モード選択コマンド「ESC A」であるか否か)を判定する(ステップS12)。ここで、異常発生時のモード指定である場合は(ステップS12でYes)、指定値A(パラメータm1,m2,m3の値)を異常発生時モードブロック244(図4参照)に記憶し(ステップS13)、受信したデータに対応する処理を終了する。なお、印刷装置20の状態監視を行うアプリケーションを用いた場合、指定値Aのパラメータm2は常に1(モード移行レスポンスを送信する)とする(図5(a)参照)ことが好ましい。上述したように、パラメータm3は要因を指定するパラメータであり、パラメータm3が示す要因毎の指定値A(パラメータm1,m2の値)が記憶される。なお、データを受信した時点で、既に異常発生時モードブロック244に指定値Aが記憶されており、受信したデータの指定値Aと記憶されていた指定値Aとが同一の場合には、新たに受信した指定値Aの異常発生時モードブロック244への書き込みは実行せず、記憶されていた指定値Aを維持する。異常発生時モードブロック244は、書き込み回数の増加による劣化の可能性があるフラッシュメモリであるような場合に、不要な書き込み動作を実行しないことで、劣化を抑制することができる。
異常発生時のモード指定でない場合は(ステップS12でNo)、処理モード確認コマンド「ESC C」であるか否かを判定する(ステップS14)。処理モード確認コマンドである場合は(ステップS14でYes)、現在が削除処理モードでないため、削除処理終了レスポンスをホスト装置10に送信し(ステップS15)、削除処理モードでないことを通知する。また、処理モード確認コマンドでない場合は(ステップS14でNo)、データの指令に応じた処理(印刷制御やメカ制御等)を実行し(ステップS16)、受信したデータに対応する処理を終了する。
なお、図示は省略したが、通常データ処理において、例えばオペレータのミス等により印刷再開コマンドを受信した場合は、これを破棄する。
次に、図7および図8を参照して異常発生時および削除処理モードにおける印刷装置20の処理例について説明する。図7及び図8は、印刷装置の状態監視を行うアプリケーションを用いた場合の、印刷装置における異常発生時の処理の一例を示すフローチャートである。
図7に示すように、印刷装置20の要因検出部47aが、異常の要因が発生し、異常状態となったことを検出すると(ステップS21でYes)、印刷制御およびメカ制御を停止すると共に、異常発生のステータスをホスト装置10に送信する(ステップS22)。異常の要因としては、紙ジャム、カバーオープン、用紙なし、インクエンドなどが挙げられる。異常発生のステータスには、異常発生の情報と共に、当該異常の要因を示す情報が含まれている。説明を簡略するために、異常の要因を仮に、カバーオープン(要因a)、用紙なし(要因b)、インクエンド(要因c)の3種類として説明する。カバーオープン(要因a)、用紙なし(要因b)、インクエンド(要因c)は、図5(a)を参照して説明した、カバーA又はカバーBのオープン、用紙なし、インクエンドである。
次に、要因が要因a(カバーAのオープン)であって、要因aの場合に削除処理モードの指定があるか否か、すなわち要因aに対応する指定値Aが、m1=1又は2であるか否か(図5(a)参照)を判定する(ステップS23)。要因が要因aでない、又は要因が要因aであって削除処理モードの指定がない(要因aに対応する指定値Aが、m1=0)場合は(ステップS23でNo)、要因が要因b(用紙なし)であって、要因bの場合に削除処理モードの指定があるか否か、すなわち要因bに対応する指定値Aが、m1=1又は2であるか否か(図5(a)参照)を判定する(ステップS24)。要因が要因bでない、又は要因が要因bであって削除処理モードの指定がない(要因bに対応する指定値Aが、m1=0)場合は(ステップS24でNo)、要因が要因c(インクエンド)であって、要因cの場合に削除処理モードの指定があるか否か、すなわち要因cに対応する指定値Aが、m1=1又は2であるか否か(図5(a)参照)を判定する(ステップS25)。
要因が要因cでない、又は要因が要因cであって削除処理モードの指定がない(要因cに対応する指定値Aが、m1=0)場合は(ステップS25でNo)、新たな要因による異常が発生したか否かを判定する(ステップS41)。新たな要因による異常が発生していた場合(ステップS41でYes)は、ステップS23に戻り、ステップS23からステップS25を繰返す。ステップS41を実行することで、要因の判定及び削除処理モードの指定の有無の判定を実行する間に発生した新たな要因による異常に対応して、適切な処理を実行することができる。例えば、ステップS25が実行されてNoと判定されると、削除処理モードには移行しない。従って、ステップS25が実行されてNoと判定される間に、要因a又は要因bによる異常が発生し、要因a又は要因bに対して削除処理モードの指定がある(指定値Aが、m1=1又は2)場合には、新たに発生した要因a又は要因bによる異常に対しては適切な処理が実行されない。ステップS41を実行することで、新たに発生した異常に対して、要因の判定及び削除処理モードの指定の有無の判定を実行し、適切な処理を実行することができる。
新たな要因による異常が発生していない場合(ステップS41でNo)は、異常が解除されたか否か判定し(ステップS42)異常が解除されない場合は(ステップS42でNo)、ステップS41を繰返す。異常解除された後(ステップS42でYes)、異常解除のステータスを送信し、未処理データ(印刷が完了していないデータ)の処理を再開し(ステップS43)、異常発生時の処理を終了する。この場合、異常発生時に未処理データを破棄していない(保持したままである)ため、異常発生前の印刷に継続して印刷を行う。
一方、異常の要因が、要因a、要因b、又は要因cであって、いずれかの要因に対して削除処理モードの指定がある(指定値Aが、m1=1又は2)場合は(ステップS23、ステップS24、又はステップS25のすくなくともひとつでYes)、ステップS26に進む。ここで、m1=1の場合は、受信バッファ242内の未処理データとプリントバッファ245内の未処理イメージデータとを一括破棄する。また、m1=2の場合は、受信バッファ242内の未処理データを保持したまま、プリントバッファ245内の未処理イメージデータを破棄する。さらに、処理モード移行時のレスポンス送信が指定されている場合(指定値Aが、m2=1)は、削除処理開始レスポンスをホスト装置10に送信し、削除処理モードに移行する。また、処理モード移行時のレスポンス送信が指定されていない場合(指定値Aが、m2=0)には、削除処理開始レスポンスを送信せずに削除処理モードに移行する(ステップS26)。
次に、印刷装置20に状態変化があるか否かを判定し(ステップS27)、状態変化があった場合は(ステップS27でYes)、それが異常解除であるか否かを判定し(ステップS28)、異常解除である場合は(ステップS28でYes)、異常解除のステータスをホスト装置10に送信する(ステップS29)。また、異常発生である場合は(ステップS28でNo)、異常発生のステータスをホスト装置10に送信する(ステップS30)。
異常解除又は異常発生のステータスの送信を実行した後(ステップS29,ステップS30)、並びに状態変化がない場合は(ステップS27でNo)、図8に示すように、ホスト装置10からの受信データがあるか否かを判定する(ステップS31)。受信データがある場合は(ステップS31でYes)、当該データが処理モード確認コマンド「ESC C」であるか否かを判定し(ステップS32)、処理モード確認コマンドである場合は(ステップS32でYes)、現在が削除処理モードであるため、削除処理開始レスポンスを送信し(ステップS33)、削除処理モードであることを通知する。
また、処理モード確認コマンドでない場合は(ステップS32でNo)、ステータス要求コマンドであるか否かを判定し(ステップS34)、ステータス要求コマンドである場合は(ステップS34でYes)、ステータスを送信する(ステップS35)。
さらに、ステータス要求コマンドでもない場合は(ステップS34でNo)、エラー復帰コマンドであるか否かを判定し(ステップS36)、例えば紙ジャムなど、復帰可能なエラー発生により削除処理モードに移行した場合は、当該紙ジャムを解消し、紙送り方法の補正等の処理を行った後、エラー復帰通知をホスト装置10に送信する(ステップS37)。
さらに、エラー復帰コマンドでもない場合は(ステップS36でNo)、印刷再開コマンド「ESC B」であるか否かを判定し(ステップS38)、印刷再開コマンドでない場合は(ステップS38でNo)、受信したデータを読み捨てる(ステップS39)。また、印刷再開コマンドである場合は(ステップS38でYes)、削除処理終了レスポンスを送信し(ステップS40、但し、指定値Aがm2=0の場合には、レスポンスは送信しない)、削除処理モードを終了して印刷可能な状態に復帰する。
なお、ステップS26で実行している未処理データの破棄を、ステップS26のように削除処理モードへの移行の前に実行することは、必須ではない。例えば、削除処理モードの終了時に未処理データの破棄を実行するなど、上述した一連の削除処理の間に実行すればよい。
このように、削除処理モードにおいては、上記に示す特定のコマンド(処理モード確認コマンド、ステータス要求コマンド、印刷再開コマンド)以外は全て読み捨てるため、異常発生時モード選択コマンドで削除処理モードを指定することにより、未処理データ(ホスト装置10が削除を所望するデータ)を確実に削除することができる。
なお、印刷再開コマンドを受信し、印刷可能な状態に復帰した時点で、異常の要因(異常状態)が解除されていない場合は、最初の異常検出処理により異常あり(ステップS21でYes)となり、再度上記した異常発生時の処理を実行する。この構成によれば、印刷装置20は確実に異常の要因を解除することができる、また、ホスト装置10は、異常状態が継続していることを把握することができると共に印刷再開コマンドが正常処理されたことを確認することができる。
また、例えば印刷再開コマンドをオペレータの判断でも送信できる構成となっている場合、オペレータの操作ミス等により、異常の要因が解除されていないにも関わらず、印刷再開コマンドを送信してしまうことが考えられる。このような場合であって、ホスト装置10がレスポンスを受信できない状況となると、印刷装置の送信バッファ243内に過去の削除処理開始レスポンスおよび削除処理終了レスポンスが未送信のまま残ってしまうことがある。また、レスポンスの受信と処理モード確認コマンドの送信を別タスクで起動するような場合にも、同様にレスポンスが重複することが考えられる。このように、送信バッファ243内に過去の両レスポンスおよび削除処理終了レスポンスが未送信のまま存在している状態で、再度削除処理モードに移行した場合は、当該過去の両レスポンスを破棄して、最新の削除処理開始レスポンスのみを送信する。この構成によれば、送信バッファ243内に蓄積された過去の削除処理開始レスポンスおよび削除処理終了レスポンスがホスト装置に連続送信されることがない。したがって、印刷装置20の状態監視の間隔が大きいアプリケーションを用いても、複数のレスポンスが連続送信されることで制御部(CPU等)に負荷をかけることがない。
次に、図9ないし図11を参照して、ホスト装置10の処理例について説明する。最初に、印刷装置20の状態監視を行うアプリケーションを用いたホスト装置が実行する、通常の印刷装置制御の処理例について説明する。図9は、ホスト装置における通常の印刷装置制御の処理例を示すフローチャートである。
図9に示すように、ホスト装置10は、要因別モード設定部33(図2参照)が、印刷装置20の異常発生時における印刷装置20の処理モード(通常処理モード又は削除処理モード)を設定するためのコマンドの生成など、各種モード設定のための処理を行う(ステップS51)。
次に、印刷装置20への送信データがあるか否かを判定し(ステップS52)、送信データがある場合には(ステップS52でYes)、印刷装置20へのデータ送信処理を行い(ステップS53)、ステップS54に進む。ステップS51で生成された印刷装置20の処理モードを設定するための異常発生時モード選択コマンド(図5(a)参照)が、印刷装置20へ未送信の場合は、ステップS53で、印刷装置20へ送信される。送信データがない場合には(ステップS52でNo)、ステップS52からステップS54に進む。
次に、ホスト装置10は、印刷装置20からの受信データがあるか否かを判定し(ステップS54)、受信データがある場合には(ステップS54でYes)、受信データの解析処理を実行(ステップS55)し、ステップS52へ戻る。受信データがない場合(ステップS54でNo)は、ステップS52へ戻る。
次に、ホスト装置10における、印刷装置20からの受信データの解析処理(図9ステップS55)の処理例について、より詳細に説明する。図10は、ホスト装置における、印刷装置からの受信データの解析処理例を示すフローチャートである。
図10に示すように、ホスト装置10は、印刷装置20からの受信データが削除処理開始レスポンス(図7ステップS26参照)であるか否かを判定する(ステップS61)。削除処理開始レスポンスでない場合は(ステップS61でNo)、受信データが異常発生のステータス(図7ステップS22参照)であるか、即ち印刷装置20において異常が発生したか否かを判定する(ステップS62)。受信データが異常発生のステータスでない場合は(ステップS62でNo)、受信データに応じた処理を実行し(ステップS64)、受信データの解析処理を終了する。
また、受信データが削除処理開始レスポンスである場合は(ステップS61でYes)、これにより印刷装置20が削除処理モードに入ったことを認識し、データ送信処理を停止する(ステップS63)。
データ送信処理を停止する(ステップS63)と、印刷装置20が削除処理開始レスポンスを送信する前に送信した異常発生のステータスに異常発生の情報と共に含まれている、当該異常の要因を示す情報から、異常の要因を判定し、要因に対応する要因解除を促すメッセージの表示及び不要なメッセージの消去を実行する(ステップS72)。
次に、印刷装置20からのデータを受信したか否かを判定し(ステップS73)、受信していない場合は(ステップS73でNo)、データの受信を待つ。印刷装置20からのデータを受信した場合は(ステップS73でYes)、受信したデータが異常解除のステータスであるか否かを判定する(ステップS74)。受信したデータが異常解除のステータスでない場合は(ステップS74でNo)、受信したデータは異常発生のステータス(図7ステップS30参照)などであり、印刷装置20は異常状態のままであることから、ステップS72に戻り、異常の要因を判定し、要因に対応する要因解除を促すメッセージの表示及び不要なメッセージの消去を実行する(ステップS72)。
また、異常解除のステータスを受信した場合は(ステップS74でYes)、ステップS72で表示したメッセージを消去し(ステップS75)、未送信データを破棄し(ステップS76)、印刷再開コマンド「ESC B」を送信する(ステップS77)。ステップS76の未送信データの破棄は、制御部37によって実行される。この場合の制御部37が、データ破棄手段に相当する。
次に、当該印刷再開コマンド「ESC B」に対する削除処理終了レスポンスを受信したか否かを判定し(ステップS78)、削除処理終了レスポンスを受信できない場合(ステップS78でNo)は、受信できるまで待機する。削除処理終了レスポンスを受信することにより(ステップS78でYes)、印刷装置20が印刷可能な状態に復帰したことを認識し、受信データの解析処理を終了する。
ステップS62で、受信データが異常発生のステータスであった場合は、これにより印刷装置20に異常が発生したことを認識し(ステップS62でYes)、データ送信処理を停止する(ステップS65)。
データ送信処理を停止すると(ステップS65)、印刷装置20が送信した異常発生のステータスに異常発生の情報と共に含まれている、当該異常の要因を示す情報(図7参照)から、異常の要因を判定し、要因に対応する要因解除を促すメッセージの表示及び不要なメッセージの消去を実行する(ステップS66)。
次に、印刷装置20からのデータを受信したか否かを判定し(ステップS67)、受信していない場合は(ステップS67でNo)、データの受信を待つ。印刷装置20からのデータを受信した場合は(ステップS67でYes)、受信したデータが削除処理開始レスポンスであるか否かを判定する(ステップS68)。受信したデータが削除処理開始レスポンスである場合は(ステップS68でYes)、ステップS72に進み、異常の要因を判定し、要因に対応する要因解除を促すメッセージの表示及び不要なメッセージの消去を実行する(ステップS72)。さらに、ステップS73からステップS78の各ステップを実行する。受信したデータが削除処理開始レスポンスである場合は(ステップS68でYes)、印刷装置20において新たな異常要因が発生(図7ステップS41参照)し、当該要因に対応して削除処理開始レスポンスが送信された(図7ステップS26参照)場合であり、印刷装置20はさらに、異常発生のステータスを送信(図7ステップS30参照)する。ホスト装置10は、当該異常発生のステータスに異常発生の情報と共に含まれている、当該異常の要因を示す情報から、異常の要因を判定し、要因に対応する要因解除を促すメッセージの表示及び不要なメッセージの消去を実行する(ステップS72)。
削除処理開始レスポンスでない場合は(ステップS68でNo)、受信したデータが異常解除のステータスであるか否かを判定する(ステップS69)。異常解除のステータスでない場合は(ステップS69でNo)、受信したデータは異常発生のステータス(図7ステップS30参照)などであり、印刷装置20は異常状態のままであることから、ステップS66に戻り、異常の要因を判定し、要因に対応する要因解除を促すメッセージの表示及び不要なメッセージの消去を実行する(ステップS66)。
そして、異常解除のステータスを受信した場合は(ステップS69でYes)、ステップS66で表示したメッセージを消去し(ステップS70)、停止していた印刷データの送信処理を再開し(ステップS71)、受信データの解析処理を終了する。
なお、削除処理開始レスポンスを受信した場合の処理終了後は、異常発生時に送信を停止したデータの最初からデータを送信する。
次に、ホスト装置10における、印刷装置20で発生している異常の要因の判定、メッセージの表示、及び不要メッセージの消去(図10ステップS66又はステップS72)の処理例について、より詳細に説明する。図11は、ホスト装置における、異常の要因の判定、メッセージの表示、及び不要メッセージの消去の処理例を示すフローチャートである。説明を簡略化するために、異常の要因を仮に、用紙なし、用紙カバーオープン、インクエンド、インクカバーオープンの4種類として説明する。
図11に示すように、ホスト装置10は、印刷装置20からの受信データから、印刷装置20で発生している異常の要因に変化があったか否かを判定する(ステップS81)。異常の要因に変化がない場合(ステップS81でNo)は、異常の要因の判定、メッセージの表示、及び不要メッセージの消去の処理を終了し、ステップS66の場合はステップS67に、ステップS72の場合は、ステップS73に進む(図10参照)。
印刷装置20が異常状態のままであっても、別の要因が新たに発生した場合や、異常要因が複数存在し、そのうちの何れかが解除された場合には、異常の要因に変化があったと判定される。異常の要因に変化があった場合(ステップS81でYes)は、異常の要因が「用紙なし」であるか否かを、要因判定部39(図2参照)が判定する(ステップS82)。要因が「用紙なし」であった場合(ステップS82でYes)は、メッセージ「用紙を補給」を、表示し(ステップS83)、ステップS85に進む。
要因が「用紙なし」ではなかった場合(ステップS82でNo)は、メッセージ「用紙を補給」を、消去し(ステップS84)、ステップS85に進む。ステップS84が実行されるのは「用紙なし」の要因が発生から解除に変化したと判定される場合である。また、メッセージ「用紙を補給」が表示されていない場合には、ステップS84は実行されず、ステップS82から直接ステップS85に進んでもよい。
次に、異常の要因が「用紙カバーオープン」(用紙収容部のカバーが開いている)であるか否かを、要因判定部39(図2参照)が判定する(ステップS85)。要因が「用紙カバーオープン」であった場合(ステップS85でYes)は、メッセージ「用紙カバーを閉じる」を、表示し(ステップS86)、ステップS88に進む。要因が「用紙カバーオープン」ではなかった場合(ステップS85でNo)は、メッセージ「用紙カバーを閉じる」を、消去し(ステップS87)、ステップS88に進む。なお、メッセージ「用紙カバーを閉じる」が表示されていない場合には、ステップS87は実行されず、ステップS85から直接ステップS88に進んでもよい。
次に、異常の要因が「インクエンド」であるか否かを、要因判定部39(図2参照)が判定する(ステップS88)。要因が「インクエンド」であった場合(ステップS88でYes)は、メッセージ「インクカートリッジを交換」を、表示し(ステップS89)、ステップS91に進む。要因が「インクエンド」ではなかった場合(ステップS88でNo)は、メッセージ「インクカートリッジを交換」を、消去し(ステップS90)、ステップS91に進む。なお、メッセージ「インクカートリッジを交換」が表示されていない場合には、ステップS90は実行されず、ステップS88から直接ステップS91に進んでもよい。
次に、異常の要因が「インクカバーオープン」(インクカートリッジを収容する収容部のカバーが開いている)であるか否かを、要因判定部39(図2参照)が判定する(ステップS91)。要因が「インクカバーオープン」であった場合(ステップS91でYes)は、メッセージ「インクカバーを閉じる」を、表示し(ステップS92)、異常の要因の判定、メッセージの表示、及びメッセージの消去の処理を終了する。要因が「インクカバーオープン」ではなかった場合(ステップS91でNo)は、メッセージ「インクカバーを閉じる」を、消去し(ステップS93)、異常の要因の判定、メッセージの表示、及び不要メッセージの消去の処理を終了する。なお、メッセージ「インクカバーを閉じる」が表示されていない場合には、ステップS93は省略して、ステップS91終了後、異常の要因の判定、メッセージの表示、及び不要メッセージの消去の処理を終了し、ステップS66の場合はステップS67に、ステップS72の場合は、ステップS73に進んでもよい(図10参照)。
上記ステップS83、ステップS86、ステップS89、ステップS92、の各ステップで実行された処理が、各異常の要因(用紙なし、用紙カバーオープン、インクエンド、インクカバーオープン)毎に設定された、要因解除のための処理である。要因に対応したメッセージを表示することで、オペレータに要因解除のための操作を明示するとともに、操作の実行を促して、適切な要因解除を速やかに実行することができる。要因に対応したメッセージを表示することが、復帰処理に相当する。
上記処理例では、異常の要因として、用紙なし、用紙カバーオープン、インクエンド、インクカバーオープンを取り上げて説明したが、異常の他の要因としては、用紙が引っ掛ったり変形したりすることで紙詰まりとなった紙ジャム、連続用紙を切断するカッタが動かないオートカッタエラー、ヘッド温度が上昇し、ヘッド温度が下がるまで、一時的に印刷動作を停止するヘッド高温、印刷装置の機能が損なわれた装置の故障、などが挙げられる。
要因が紙ジャムの場合には、異常の前後で、印刷結果は分断される。ホスト装置10の対応としては、「紙ジャム、用紙を取り除いた後にEnterキーを押す」というメッセージを表示して、詰まった用紙の除去を促す。ホスト装置10はEnterキーが押されると、印刷装置20のキャリッジを初期化させるエラー復帰コマンドを送信する。印刷装置20は、エラー復帰コマンドを受けて、キャリッジを初期化する。
要因がオートカッタエラーの場合には、紙ジャムの場合と同様に、異常の前後で印刷結果は分断される。ホスト装置10の対応としては、「オートカッタエラー、用紙を取り除いた後にEnterキーを押す」というメッセージを表示して、詰まった用紙の除去を促す。ホスト装置10はEnterキーが押されると、印刷装置20の切断部130(図4参照)を初期化させるエラー復帰コマンドを送信する。印刷装置20は、エラー復帰コマンドを受けて、切断部130を初期化する。
要因がヘッド高温の場合には、紙ジャムなどの場合と異なり、異常からの復帰後、異常発生前の印刷結果に続けて印刷を実行することができ、異常の前後で印刷結果は分断されない。ヘッド高温は、ヘッド温度が下がるまで印刷動作を停止することで解消できるため、ホスト装置10の対応としては、「ヘッド高温、しばらくお待ちください」というメッセージを表示して、オペレータが不要な操作を行い、その結果、不適切な処理が実行されることを抑制する。
要因が印刷装置20の故障の場合には、速やかな異常からの復帰ができない場合もあり、異常からの復帰まで異常発生前の印刷結果を状態を変えずに維持することは困難な場合があるため、異常の前後で印刷結果が分断されることが殆どである。印刷装置20が故障した場合は、電源を切り、メーカなどに修理を依頼することが望ましい。ホスト装置10の対応としては、「装置の故障、プリンタの電源をオフしてサービスマンに連絡」というメッセージを表示して、メーカなどに修理を依頼することを促す。
上記「用紙を補給」などの各メッセージは、例えばオペレータ用ディスプレイ17aに、各メッセージの文字が表示される。この場合、「用紙を補給」などの各メッセージが指示メッセージに相当し、オペレータ用ディスプレイ17aが、メッセージ表示手段に相当する。なお、メッセージの表示方法としては、オペレータ用ディスプレイ17a以外のディスプレイに、メッセージの文字を表示する方法でもよいし、ディスプレイに全メッセージを表示しておき、伝えたいメッセージを点滅させるなどして、伝えたいメッセージを示す方法などでもよい。また、メッセージを固定表示し、各メッセージに対応するLEDなどを設け、伝えたいメッセージに対応するLEDを点灯などさせて伝えたいメッセージを示す方法などでもよい。また、印刷装置20に表示装置を設け、当該表示部に上記各メッセージを表示させてもよい。この場合、印刷装置20に設けた表示装置が、印刷装置表示部に相当する。
以上、説明したとおり、本発明のホスト装置10及び印刷装置20を備えた印刷システム1によれば、印刷装置20は、異常検出手段及び異常要因判別手段としての要因検出部47aが、印刷装置20に異常の要因が発生し、印刷装置が印刷を実行できない異常状態であることを検出すると、異常発生情報送信手段としてのステータス/レスポンス生成部49が、印刷装置が異常状態であるという情報と共に、当該異常の要因を特定できる情報を含む異常発生のステータスを生成し、データ送信部50及びインタフェース41を介して、ホスト装置10に送信する。ホスト装置においては、要因判定部39が、当該ステータスから、印刷装置20で発生している異常の要因を判定し、要因別処理部40が、予め設定されているメッセージの表示などの復帰処理を実行する。要因に対応したメッセージを表示することで、オペレータに要因解除のための操作を明示するとともに、操作の実行を促して、適切な要因解除を速やかに実行することができる。
また、本発明の印刷装置20及びホスト装置10を備えた印刷システム1によれば、要因検出部47aが印刷装置20の異常を検出すると、処理モード判定部43が、異常の要因のそれぞれに対応して予め指定され、要因別処理モード記憶部に記憶された、通常処理モードの継続、又は削除処理モードへの移行を実行することで、個々の要因に対応した適切な異常発生時の処理モードを実行することができる。印刷装置20の異常が検出されたとき、データを読み捨てる削除処理モードに移行することで、ホスト装置10のデータ送信中止処理に間に合わなかったデータや、通信途上のデータが存在した場合でも、異常が解除されて印刷が再開されたときに、これらのデータに従って不必要な印刷が実行されることを回避することができる。また、印刷装置20の異常が検出されたとき、通常処理モードを維持することで、異常が解除されて印刷が再開されたときに、異常が発生する前に実行された印刷に続く印刷を実行し、異常が発生する前後で連続した印刷結果を実現することができる。
さらに、異常発生時モード選択コマンドにより、アプリケーションの種類やユーザが所望する印刷結果、及び異常の要因に対応して、適切な処理モードを選択することができる。パラメータm3の値によって要因を指定し、パラメータm1の値によって処理モードを指定することで、要因毎に適切な処理モードを選択することができる。例えば、異常発生によって用紙を分断(分割)しない要因に対応して、第1処理モード(m1=0)を選択することで、継続した印刷結果を得ることができる。したがって、印刷データの再送信が必要なくなると共に用紙の無駄が発生することがない。また、第2処理モード(m1=1)を選択すると、受信バッファ242内のデータを破棄するため、削除処理モードにおいてデータを削除するのに要する時間を短縮することができる。さらに、印刷装置20の状態監視を行うアプリケーションであれば、印刷装置20からのステータスを監視しながら処理を行うことができるため、破棄するデータ内に印刷再開コマンドを含ませない制御が可能となる。また、第3処理モード(m1=2)を選択すると、受信バッファ242内のデータを保持したまま、削除処理モードへ移行するため、通信途上のデータの中に印刷再開コマンドが含まれていた場合に、当該印刷再開コマンドによって印刷可能な状態に復帰することができる。したがって、受信バッファ242内のデータの削除処理に時間がかかるが、印刷装置20の状態監視を行わないアプリケーションであっても、支障なく処理を続行することができる。
なお、上記実施形態では、ホスト装置10と印刷装置20とによって構成される印刷システム1を例に挙げて説明したが、ホスト装置10によって制御される装置は印刷装置に限らず、種々の端末装置に適用することが可能である。また、上記の実施形態によらず、例えばシステム構成やコマンド等について、本発明の要旨を逸脱しない範囲内において、種々変更を適宜加え得ることは勿論である。
1…印刷システム、10…ホスト装置、14…キーボード、17a…オペレータ用ディスプレイ、17b…顧客用ディスプレイ、20…印刷装置、30…POSサーバ、31…インタフェース(ホスト装置)、32…データ受信部、33…要因別モード設定部、34…状態監視部、35…印刷データ生成部、36…印刷再開コマンド生成部、37…制御部、38…データ送信部、39…要因判定部、40…要因別処理部、41…インタフェース(印刷装置)、42…データ受信部、43…処理モード判定部、44…通常処理モード制御部、45…削除処理モード制御部、46…要因別処理モード記憶部、47…状態監視部、47a…要因検出部、48…印刷制御部、49…ステータス/レスポンス生成部、50…データ送信部、242…受信バッファ(印刷装置)、243…送信バッファ、244…異常発生時モードブロック、245…プリントバッファ、P…連続用紙。