(57)【特許請求の範囲】
【請求項１】
接続確認コマンドを受信し、前記接続確認コマンドを受信しない時間が基準時間に達した場合に異常を検出する記録装置に対して、通信可能に接続された記録制御装置であって、
アプリケーションプログラムを実行して、当該アプリケーションプログラムにより処理されるデータを記録用データとして出力するアプリケーション実行部と、
前記アプリケーション実行部が出力する記録用データに基づいて前記記録装置に対して記録ジョブを送信する記録制御部と、を備え、
前記アプリケーション実行部が前記接続確認コマンドを出力しない場合、前記記録制御部は、前記アプリケーション実行部の状況を確認して、当該状況に基づき、前記アプリケーション実行部に代わり前記接続確認コマンドを生成し前記記録装置へ送信すること、
を特徴とする記録制御装置。
【請求項２】
前記記録制御部は、タイマーを備え、前記アプリケーション実行部が少なくとも前記接続確認コマンドを出力しない状態が、前記基準時間に達する前に、前記アプリケーション実行部に対して応答要求を出力し、この応答要求に応じて前記アプリケーション実行部が応答を出力した場合は、前記接続確認コマンドを前記記録装置へ送信することを特徴とする請求項１に記載の記録制御装置。
【請求項３】
前記記録制御部には、前記基準時間より短い予備基準時間が予め設定され、
前記記録制御部は、前記アプリケーション実行部が少なくとも前記接続確認コマンドを出力しない状態が、前記予備基準時間に達した場合に、前記アプリケーション実行部に対して応答要求を出力することを特徴とする請求項２に記載の記録制御装置。
【請求項４】
前記記録制御部は、前記アプリケーション実行部が前記記録用データを出力した場合、前記接続確認コマンドを生成して前記記録装置へ送信することを特徴とする請求項１ないし３のいずれかに記載の記録制御装置。
【請求項５】
記録媒体に記録を行う記録装置と、記録制御装置とを通信可能に接続して構成される記録システムであって、
前記記録装置は、前記記録制御装置から接続確認コマンドを受信する受信部と、前記受信部により前記接続確認コマンドを受信しない時間が予め設定された基準時間に達した場合に異常を検出する異常検出部とを備え、
前記記録制御装置は、
アプリケーションプログラムを実行して、当該アプリケーションプログラムにより処理されるデータを記録用データジョブとして出力するアプリケーション実行部と、
前記アプリケーション実行部が出力する前記記録用データに基づいて前記記録装置に対して記録ジョブを送信する記録制御部と、を備え、
前記アプリケーション実行部が前記接続確認コマンドを出力しない場合、前記記録制御部は、前記アプリケーション実行部の状況を確認して、当該状況に基づき前記接続確認コマンドを生成し前記記録装置へ送信すること、
を特徴とする記録システム。
【請求項６】
接続確認コマンドを受信し、前記接続確認コマンドを受信しない時間が基準時間に達した場合に異常を検出する記録装置に対して、通信可能に接続された記録制御装置により実行される記録制御方法であって、
アプリケーションプログラムを実行する際、前記記録装置への前記接続確認コマンドの出力を行わない場合、前記アプリケーションプログラムの実行の状況を確認して、当該状況に基づき、前記接続確認コマンドを生成し前記記録装置へ送信すること、
を特徴とする記録制御方法。
【請求項７】
接続確認コマンドを受信し、前記接続確認コマンドを受信しない時間が基準時間に達した場合に異常を検出する記録装置に対して、通信可能に接続された記録制御部が実行するプログラムであって、
アプリケーションプログラムの実行の際、前記記録装置に対する前記接続確認コマンドの出力を行わない場合、前記アプリケーションプログラムの実行の状況を確認して、当該状況に基づき、前記接続確認コマンドを生成し前記記録装置へ送信すること、
を特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記録装置に接続された記録制御装置、この記録制御装置を備えた記録システム、記録制御装置が実行する記録制御方法、及び、プログラムに関する。
【背景技術】
【０００２】
従来、プリンター等の記録装置を上位ホスト装置等の外部装置に接続した場合に、記録装置が外部装置から送信されるデータの異常を検出する構成が知られている（例えば、特許文献１参照）。特許文献１の構成では、記録装置が、記録用のデータの抜け等を自動的に判定して、データ転送時の異常発生を検出する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１１−１３４１４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１記載の構成では、外部装置から記録装置へのデータ転送時の異常を検出するが、正常な印刷の妨げとなるような事態は、他にも、記録装置に接続された外部装置の誤操作による電源停止、外部装置のハングアップ、外部装置と記録装置とを繋ぐケーブルの断線等が考えられる。これらの異常が発生した場合、記録装置は何もデータを受信できないため、受信したデータに基づく正常／異常の判別が難しい。このため、外部装置の動作状態をユーザーが直接確認する必要があった。しかしながら、例えば外部装置と記録装置とが離れた場所に設置された場合には、記録装置を使用するユーザーが外部装置の状態を確認しに行くことは面倒であり、負担が大きかった。
本発明は、上述した事情に鑑みてなされたものであり、記録装置と外部装置とが通信可能に接続された構成において、記録装置に接続された外部装置の動作状態の異常を記録装置において正確に検出できるようにすることを目的とする。
【課題を解決するための手段】
【０００５】
上記課題を解決するため、本発明は、接続確認コマンドを受信し、前記接続確認コマンドを受信しない時間が基準時間に達した場合に異常を検出（判断）する記録装置に対して、通信可能に接続された記録制御装置であって、アプリケーションプログラムを実行して、当該アプリケーションプログラムにより処理されるデータを記録用データとして出力するアプリケーション実行部と、前記アプリケーション実行部が出力する前記記録用データに基づいて前記記録装置に対して記録ジョブを送信する記録制御部と、を備え、前記アプリケーション実行部が前記接続確認コマンドを出力しない場合、前記記録制御部は、前記アプリケーション実行部の状況を確認して、当該状況に基づき、前記アプリケーション実行部に代わり前記接続確認コマンドを生成し前記記録装置へ送信すること、を特徴とする。
【０００６】
本発明によれば、外部接続された記録制御装置から接続確認コマンドを受信しない状態が続いた場合に異常を検出する機能を備えた記録装置に接続される記録制御装置が、アプリケーションプログラムを実行するアプリケーション実行部が記録装置への接続確認コマンドを出力した場合、及び、アプリケーション実行部が処理したデータを記録するための記録用データを記録装置に送信する場合に、接続確認コマンドが記録装置に送信されるようになっている。しかし、記録用データの出力タイミングと接続確認コマンドの送信タイミングとが重複する等の偶発的な原因などにより、アプリケーション実行部が接続確認コマンドを出力できない場合であっても、記録制御部は、アプリケーション実行部の状況を確認して、当該状況に基づき、アプリケーション実行部に代わり記録装置に接続確認コマンドを生成して送信する。これにより、記録制御装置がアプリケーションプログラムを実行可能な正常な状態であるにも関わらず記録装置が異常を検出してしまうことがなく、また記録制御装置の動作状態の異常を記録装置が正確に検出できる。
【０００７】
また、本発明は、上記記録制御装置において、前記記録制御部は、タイマーを備え、前記アプリケーション実行部が少なくとも前記接続確認コマンドを出力しない状態が、前記基準時間に達する前に、前記アプリケーション実行部に対して応答要求を出力し、この応答要求に応じて前記アプリケーション実行部が応答を出力した場合は、前記接続確認コマンドを前記記録装置へ送信することを特徴とする。
本発明によれば、記録装置が、記録制御装置から接続確認コマンドを受信していないとして異常を検出する前に、アプリケーション実行部に対して応答要求を行うので、アプリケーション実行部が偶発的な原因により接続確認コマンドを送信しなかった場合には、記録装置に異常を検出させないようにすることができる。これにより、アプリケーションプログラムを実行不能になった場合や記録制御装置の動作が停止した場合等、検出すべき異常が記録制御装置で発生した場合のみ、記録装置に異常を検出させるので、記録制御装置の動作状態の異常を記録装置が正確に検出できる。
【０００８】
また、本発明は、上記記録制御装置において、前記記録制御部には、前記基準時間より短い予備基準時間が予め設定され、前記記録制御部は、前記アプリケーション実行部が少なくとも前記接続確認コマンドを出力しない状態が、前記予備基準時間に達した場合に、前記アプリケーション実行部に対して応答要求を出力することを特徴とする。
本発明によれば、記録装置が異常を検出する基準時間よりも短い予備基準時間に基づいて、アプリケーション実行部に応答要求を行うので、記録装置が異常を検出する前に、確実に応答要求を行うことができ、偶発的な原因により接続確認コマンドが送信されなかった場合に記録装置に異常を検出させないようにすることができる。
また、本発明は、上記記録制御装置において、前記記録制御部は、前記アプリケーション実行部が前記記録用データを出力した場合、前記接続確認コマンドを生成し前記記録装置へ送信することを特徴とする。
本発明によれば、アプリケーション実行部が記録用データを出力している場合は、正常な状態であると判断できるので、アプリケーション実行部が接続確認コマンドを出力しなくても、記録制御部は、アプリケーション実行部に代わり記録装置に接続確認コマンドを生成して送信してよい。
【０００９】
また、上記課題を解決するため、本発明は、記録媒体に記録を行う記録装置と、記録制御装置とを通信可能に接続して構成される記録システムであって、前記記録装置は、前記記録制御装置から接続確認コマンドを受信する受信部と、前記受信部により前記接続確認コマンドを受信しない時間が予め設定された基準時間に達した場合に異常を検出する異常検出部とを備え、前記記録制御装置は、アプリケーションプログラムを実行して、当該アプリケーションプログラムにより処理されるデータを記録用データとして出力するアプリケーション実行部と、前記アプリケーション実行部が出力する前記記録用データに基づいて前記記録装置に対して記録ジョブを送信する記録制御部と、を備え、前記アプリケーション実行部が前記接続確認コマンドを出力しない場合、前記記録制御部は、前記アプリケーション実行部の状況を確認して、当該状況に基づき前記接続確認コマンドを生成し前記記録装置へ送信すること、を特徴とする。
本発明によれば、記録制御装置から接続確認コマンドを受信しない状態が続いた場合に異常を検出する機能を備えた記録装置に接続される記録制御装置が、アプリケーションプログラムを実行するアプリケーション実行部が記録装置への接続確認コマンドを出力した場合、及び、アプリケーション実行部が処理したデータを記録するための記録用データを記録装置に送信する場合に、接続確認コマンドが記録装置に送信されるようになっている。しかし、記録用データの出力タイミングと接続確認コマンドの送信タイミングとが重複する等の偶発的な原因などにより、アプリケーション実行部が接続確認コマンドを出力できない場合であっても、記録制御部は、アプリケーション実行部の状況を確認して、当該状況に基づき、アプリケーション実行部に代わり記録装置に接続確認コマンドを生成して送信する。これにより、記録制御装置がアプリケーションプログラムを実行可能な正常な状態であるにも関わらず記録装置が異常を検出してしまうことがなく、また記録制御装置の動作状態の異常を記録装置が正確に検出できる。
【００１０】
また、上記課題を解決するため、本発明は、接続確認コマンドを受信し、前記接続確認コマンドを受信しない時間が基準時間に達した場合に異常を検出する記録装置に対して、通信可能に接続された記録制御装置により実行される記録制御方法であって、アプリケーションプログラムを実行する際、前記記録装置への前記接続確認コマンドの出力を行わない場合、前記アプリケーションプログラムの実行の状況を確認して、当該状況に基づき、前記接続確認コマンドを生成し前記記録装置へ送信すること、を特徴とする。
本発明によれば、記録制御装置から接続確認コマンドを受信しない状態が続いた場合に異常を検出する機能を備えた記録装置に接続される記録制御装置が、アプリケーションプログラムを実行して記録装置への接続確認コマンドを出力した場合や、アプリケーションプログラムにより処理したデータを記録するための記録ジョブを記録装置に送信する場合等に、接続確認コマンドが記録装置に送信する構成となっていながら、記録するデータの出力タイミングと接続確認コマンドの送信タイミングとが重複する等の偶発的な原因などにより、アプリケーション実行部が接続確認コマンドを出力できない場合であっても、アプリケーションプログラムの実行の状況を確認して、当該状況に基づき、記録装置に接続確認コマンドを生成して送信する。これにより、記録制御装置がアプリケーションプログラムを実行可能な状態であるにも関わらず記録装置が異常を検出してしまうことがなく、記録制御装置の動作状態の異常を記録装置が正確に検出できる。
【００１１】
また、上記課題を解決するため、本発明は、接続確認コマンドを受信し、前記接続確認コマンドを受信しない時間が基準時間に達した場合に異常を検出する記録装置に対して、通信可能に接続された記録制御部が実行するプログラムであって、アプリケーションプログラムの実行の際、前記記録装置に対する前記接続確認コマンドの出力を行わない場合、前記アプリケーションプログラムの実行の状況を確認して、当該状況に基づき、前記接続確認コマンドを生成し前記記録装置へ送信すること、を特徴とする。
本発明によれば、記録制御装置から接続確認コマンドを受信しない状態が続いた場合に異常を検出する機能を備えた記録装置に接続される記録制御装置が、アプリケーションプログラムを実行して記録装置への接続確認コマンドを出力した場合や、アプリケーションプログラムにより処理したデータを記録するための記録ジョブを記録装置に送信する場合に、接続確認コマンドが記録装置に送信される構成となっていながら、記録するデータの出力タイミングと接続確認コマンドの送信タイミングとが重複する等の偶発的な原因などにより、アプリケーション実行部が接続確認コマンドを出力できない場合であっても、アプリケーションプログラムの実行の状況を確認して、当該状況に基づき、記録装置に接続確認コマンドを生成して送信する。これにより、記録制御装置がアプリケーションプログラムを実行可能な状態であるにも関わらず記録装置が異常を検出してしまうことがなく、記録制御装置の動作状態の異常を記録装置が正確に検出できる。
【発明の効果】
【００１２】
本発明によれば、記録制御装置がアプリケーションプログラムを実行可能な状態であるにも関わらず記録装置が異常を検出してしまうことがなく、記録制御装置の動作状態の異常を記録装置が正確に検出できる。
【図面の簡単な説明】
【００１３】
【図１】実施形態の記録システムの電気的構成を示すブロック図である。
【図２】ホストコンピューターとプリンターの機能ブロック図である。
【図３】プリンタードライバーにより実行される処理のフローチャートである。
【図４】記録システムの動作シーケンスの一例を示す図である。
【発明を実施するための形態】
【００１４】
以下、図面を参照して本発明の実施形態について説明する。
図１は、本発明を適用した実施形態に係る記録システム１の電気的構成を示すブロック図である。
記録システム１は、紙、コーティング紙または合成樹脂シート等からなる記録媒体としてのカットシートや連続シートに、文字や画像を印刷（記録）する記録装置としてのプリンター３と、プリンター３を制御して記録を実行させる記録制御装置としてのホストコンピューター２とを、通信線１０を介して相互に通信可能に接続して構成される。本実施形態ではホストコンピューター２とプリンター３とを一対一で接続した構成を例示するが、一台のホストコンピューター２に接続されるプリンター３の数に制限はなく、多数のプリンター３をホストコンピューター２に接続してもよい。また、複数のホストコンピューター２に１台のプリンター３を接続したものでもよい。通信線１０は、ホストコンピューター２とプリンター３とを一対一で接続する通信ケーブルや無線通信回線の他、一台のホストコンピューター２に対し多数のプリンター３を接続可能な有線または無線のＬＡＮ、または、公衆回線網を介した広域ネットワークにより構成される。また、プリンター３の記録方式についても特に制限はなく、本実施形態では一例として、プリンター３を、印刷ヘッドから記録媒体に複数色のインクを吐出することで文字や画像を形成するインクジェットプリンターで構成した場合について説明する。
【００１５】
図１に示すように、ホストコンピューター２は、主として、ＣＰＵ２１と、不揮発性メモリーであるＲＯＭ２２と、揮発性メモリーであるＲＡＭ２３と、大規模記憶装置としての記憶部２４と、キーボード等の入力デバイスに接続された入力部２５と、表示装置等の出力デバイスに接続された出力部２６と、通信インターフェース２７とを備えている。ホストコンピューター２は、ＣＰＵ２１が記憶部２４に記憶されたオペレーティングシステム２４Ａ、アプリケーションプログラム２４Ｂ、及びプリンタードライバー２４Ｃを実行しながら、通信インターフェース２７を介してプリンター３に各種コマンドや印刷データを出力することにより、プリンター３を制御する。ホストコンピューター２は、プリンター３に対し、印刷実行を指示するコマンドと印刷用のデータとを含む印刷ジョブを送信して、印刷を行わせる。また、ホストコンピューター２は、後述するタイマーリセットコマンド（接続確認コマンド）を一定周期でプリンター３に送信する。
【００１６】
プリンター３は、主として、ＣＰＵ４１と、書き換え可能な不揮発性メモリーであるフラッシュＲＯＭ４２と、揮発性メモリーであるＲＡＭ４３と、通信インターフェース４４と、インクを記録媒体としての用紙に吐出させて記録を行う印刷制御部４５と、用紙搬送機構４６と、印刷ヘッド４７と、スピーカー４８と、ＬＥＤランプ５とを備えている。
【００１７】
プリンター３は、ＣＰＵ４１がフラッシュＲＯＭ４２に記憶されたファームウェアを実行しながら、通信インターフェース４４を介してホストコンピューター２と通信を行うことにより印刷データを受信する。そして、印刷制御部４５が各種コマンドや印刷データに基づき、用紙搬送機構４６を介して用紙を搬送しつつ印刷ヘッド４７を駆動して用紙への印刷を実行し、レシートやクーポンを発券する。また、プリンター３は、発券時や、ホストコンピューター２も含めた異常時等、ＬＥＤランプ５を点灯または点滅させたり、スピーカー４８によりメロディー、案内音声を発したりすることにより、ユーザーに各種情報を視覚的または聴覚的に通知する。スピーカー４８はブザーであってもよい。
【００１８】
プリンター３は、ホストコンピューター２から送信される各種コマンドをモニターし、ホストコンピューター２が正常に動作しているかどうかを判断して、ホストコンピューター２が異常であると判断した時には、所定の異常検出処理を行うように構成されている。以下、プリンター３の異常検出処理について説明する。
【００１９】
図２は、記録システム１を構成するホストコンピューター２及びプリンター３の機能的構成を示す機能ブロック図である。図２に示す各部は、ホストコンピューター２がＣＰＵ２１（図１）により記憶部２４に記憶された各種プログラムを実行することにより、及び、プリンター３がＣＰＵ４１によりフラッシュＲＯＭ４２に記憶された各種プログラムを実行することにより、ソフトウェアとハードウェアとの協働により実現される。
【００２０】
図２に示すように、プリンター３は、ホストコンピューター２から送信される各種コマンドや印刷データを受信する受信部４０１と、受信部４０１が受信した各種コマンドや印刷データを一時的に保持する受信バッファー４０２が設けられている。受信バッファー４０２によって受信されたデータは、コマンド解析部４０３によって解析され、制御コマンドの場合は制御コマンドバッファー４０４に、印刷データの場合には印刷バッファー４０５にＤＭＡ転送等により転送される。
印刷バッファー４０５に一時保存された印刷データは、データ展開処理が行われてデータ変換され、最終的には印刷ヘッド４７のノズル列に対応したドットパターンデータが生成されて印刷バッファー４０５に記憶される。一方、制御コマンドバッファー４０４に一時保存された制御コマンドデータは、主制御部４０８によって読み出されて、記録媒体としての用紙カット動作など制御コマンドに応じた処理が実行される。
【００２１】
異常検出部４０６は、ホストコンピューター２が正常に動作しているかどうかを監視し、ホストコンピューター２の動作異常と判断した場合に、ユーザーにホストコンピューター２の異常を報知する。
異常検出設定値記憶部４０７は、フラッシュＲＯＭ４２内に設定された領域であり、ここには異常検出処理を行うための設定値を記憶している。この設定値は、ホストコンピューター２が異常であるかどうかを判断する基準時間と、ホストコンピューター２が異常であるときに異常を通知する報知方法の種類を示す報知設定値とを含む。
【００２２】
異常検出部４０６は、タイマー４０９によるカウントを開始させ、このカウント中に、ホストコンピューター２からタイマーリセットコマンド（接続確認コマンド）を受信したか否かを監視する。このタイマーリセットコマンドはリアルタイム制御コマンド（即時実行制御コマンド）として構成され、例えば、プリンター３がオフライン状態であっても、受信部４０１により検出され、受信される。異常検出部４０６は、受信部４０１によってタイマーリセットコマンドが受信された場合には、タイマー４０９のカウントを停止し、カウント値をリセットして、再びカウントを開始させる。プリンター３では、通常のコマンドが制御コマンドバッファー４０４に記憶された順に実行されるのに対し、リアルタイム制御コマンドは、受信バッファー４０２においてコマンド解析部４０３により検出されると、他の処理に優先して直ちに実行される。
【００２３】
また、異常検出部４０６は、タイマー４０９のカウントを開始した後、受信部４０１がタイマーリセットコマンドを受信しないまま、タイマー４０９のカウント値が異常検出設定値記憶部４０７に記憶された基準時間に達した場合に、ホストコンピューター２の異常と判断する。つまり、記録システム１では、ホストコンピューター２からプリンター３に対し、プリンター３が記憶する基準時間より短い周期でタイマーリセットコマンドを送信し、このタイマーリセットコマンドが基準時間以内に受信されない場合に、プリンター３が異常を検出する。
【００２４】
一方、ホストコンピューター２は、記憶部２４に記憶されたオペレーティングシステム２４Ａを実行することにより、ホストコンピューター２の基本的機能を実現する。ホストコンピューター２は、記憶部２４に記憶されたアプリケーションプログラム２４Ｂを実行するアプリケーション実行部２０１と、プリンタードライバー２４Ｃを実行するプリンタードライバー実行部２１０（記録制御部）と、プリンター３との間で印刷ジョブ及びコマンドを送受信する送受信部２１４とを備える。
【００２５】
アプリケーション実行部２０１は、アプリケーションプログラムを実行してデータを処理し、処理されたデータを随時出力する。また、アプリケーション実行部２０１は、アプリケーションプログラムの実行中に印刷の指示がなされた場合に、印刷実行の指示と、印刷すべきデータとを、印刷用データ（記録用データ）としてプリンタードライバー実行部２１０に出力する。また、アプリケーション実行部２０１は、正常に動作していることを示すため、予め設定された時間が経過する毎にタイマーリセットコマンドを生成して、出力する。このタイマーリセットコマンドは、単独のコマンドとして出力することも、印刷データとともに出力することも可能である。
【００２６】
プリンタードライバー実行部２１０は、コマンド送信制御部２１１、タイマー２１２、アプリケーション実行部２０１の動作状態を監視するアプリケーション動作監視部２１３、及び、プリンター３との通信を行う送受信部２１４を備えている。コマンド送信制御部２１１は、アプリケーション実行部２０１がアプリケーションプログラムの実行により出力する印刷の指示（印刷用データ）に基づき、この印刷用データを印刷するための印刷ジョブや各種制御コマンドを生成して、送受信部２１４によってプリンター３に送信させる。この印刷ジョブには、印刷実行を指示する印刷指示コマンドと、印刷用データとが含まれ、印刷指示コマンドとともに他のコマンドを含ませることも可能である。送受信部２１４は、プリンター３との通信を行うためのポート（ここではＬＡＮポート）を介して、ＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）の指示に応じてプリンター３に各種コマンドを送信したり、プリンター３から情報を受信したりする。
【００２７】
コマンド送信制御部２１１は、アプリケーション実行部２０１が印刷実行の指示と印刷用のデータとを出力した場合に、印刷指示コマンドを生成して印刷用のデータと組み合わせることで印刷ジョブを生成し、生成した印刷ジョブを送受信部２１４により送信させる。また、コマンド送信制御部２１１は、アプリケーション実行部２０１がタイマーリセットコマンドを出力した場合は、これに応じてタイマーリセットコマンドを送受信部２１４によりプリンター３へ送信させる。さらに、コマンド送信制御部２１１は、印刷ジョブを生成してプリンター３に送信する場合にも、タイマーリセットコマンドを生成して送受信部２１４によりプリンター３に送信させる。つまり、コマンド送信制御部２１１は、アプリケーション実行部２０１がタイマーリセットコマンド及び印刷の指示のいずれかを出力する毎に、タイマーリセットコマンドをプリンター３に送信する。
【００２８】
タイマー２１２は、アプリケーション動作監視部２１３の制御に従ってカウントを実行する。アプリケーション動作監視部２１３は、プリンタードライバー実行部２１０が動作を開始してからタイマー２１２によるカウントを開始させ、このカウント中に、アプリケーション実行部２０１がタイマーリセットコマンドまたはタイマーリセットコマンドを含む印刷の指示を出力したか否かを監視する。この印刷の指示には、印刷用データ自体が含まれていても良いし、印刷用データのみが出力された場合に、この印刷用データを印刷の指示として動作してもよい。アプリケーション動作監視部２１３は、タイマーリセットコマンドがアプリケーション実行部２０１から出力された場合には、タイマー２１２のカウントを停止し、カウント値をリセットして、再びカウントを開始させる。
タイマー２１２のカウントを開始した後、アプリケーション実行部２０１がタイマーリセットコマンドまたはタイマーリセットコマンドを含む印刷用データのいずれも出力しないまま、タイマー２１２のカウント値が、予め設定された予備基準時間に達したか否かを監視する。この予備基準時間は、予め記憶部２４に設定データ２４Ｄとして記憶されている。アプリケーション実行部２０１がタイマーリセットコマンドまたはタイマーリセットコマンドを含む印刷用データのいずれも出力しない状態で、タイマー２１２のカウント値が予備基準時間に達した場合、アプリケーション動作監視部２１３は、アプリケーション実行部２０１に対して応答要求を送信し、この応答要求への応答がない場合に、アプリケーション実行部２０１の異常を検出する。仮に、アプリケーション実行部２０１が正常ではあるがタイマーリセットコマンドを出力できない状況であっても、応答要求により、正常であることを判別できる。
異常を検出したアプリケーション動作監視部２１３は、プリンター３へのコマンド送信は行わず、出力部２６の機能等により異常発生を報知する。
なお、上記のように、タイマー２１２のカウントの停止及びリセットを行う場合に専用のタイマーリセットコマンドを用いる場合に限らず、印刷等の制御コマンドや、印刷以外の所定の機能を有するコマンドにより、タイマー２１２のカウントを停止し、カウント値をリセットするようにしてもよい。すなわち、印刷等の制御コマンドや印刷以外の所定の機能を有するコマンドとして使用されるコマンドに、タイマーリセットコマンドとしての機能を持たせてもよい。この場合、タイマーリセットコマンドを新たに定義しなくても、既存のコマンド体系を流用して本願発明を実現できる。
【００２９】
記録システム１においては、ソフトウェアの不具合によりアプリケーション実行部２０１がアプリケーションプログラムの実行中にハングアップする場合、ホストコンピューター２とプリンター３とをつなぐ通信線１０の問題、誤操作によるホストコンピューター２の電源停止等により、ホストコンピューター２が正常に動作しなくなることが考えられる。記録システム１のプリンター３はホストコンピューター２から離れた場所に設置することが可能であり、例えば、ホストコンピューター２とプリンター３とを、同一建物内の別のフロアーに設置することも、通信線１０として専用線や公衆回線網を用いることで遠隔地にプリンター３とホストコンピューター２を設置することも可能である。このようにホストコンピューター２とプリンター３とが遠隔地に設置された構成では、プリンター３を使用するユーザーがホストコンピューター２を監視することが難しいので、ホストコンピューター２の異常発生を、遠隔地のプリンター３が速やかに検出することが望まれる。そこで記録システム１は、プリンター３の機能によってホストコンピューター２の異常を速やかに検出できるように、上記の基準時間に基づく異常検出を行う。
【００３０】
プリンター３における異常報知の方法としては、エラーメッセージの印刷、異常を通知するＬＥＤランプ５の表示、及びスピーカー４８によるエラー音や案内音声等の音声出力のうちの一つまたはそれらの組み合わせが挙げられる。エラーメッセージの印刷、音声出力及びＬＥＤランプ５の表示を併用することによって、プリンター３のユーザーはホストコンピューターの異常状態を視覚的に認識するのみならず聴覚的にも認識することができるので、システムがダウンしてもその原因を確実に把握し、迅速にシステムの復旧作業を行うことが可能である。
【００３１】
なお、プリンター３に記憶された基準時間と報知設定値は、システム運行中でもホストコンピューター２から設定コマンドを送信することによって、変更することが可能である。このように基準時間と報知設定値とが変更可能であれば、各システム運行者の運行形態を反映した適切な異常検出処理を実行できる。
【００３２】
次に、図３を参照して、異常検出処理の具体的な流れを説明する。
図３はホストコンピューター２のプリンタードライバー実行部２１０の動作を示すフローチャートである。
プリンタードライバー実行部２１０は、動作開始とともにタイマー２１２のカウントを開始し（ステップＳ１１）、アプリケーション動作監視部２１３の機能によってアプリケーション実行部２０１がタイマーリセットコマンドを含む印刷の指示（印刷用データを含む）またはタイマーリセットコマンドを出力したか否かを判別し（ステップＳ１２）、タイマーリセットコマンドを含む印刷の指示及びタイマーリセットコマンドが出力されない間はタイマー２１２のカウント値が予備基準時間に到達したか否かを判別する（ステップＳ１３）。
アプリケーション実行部２０１がタイマーリセットコマンドを含む印刷の指示またはタイマーリセットコマンドを出力した場合（ステップＳ１２；Ｙｅｓ）、プリンタードライバー実行部２１０は、コマンド送信制御部２１１の機能によってタイマーリセットコマンドを生成して、送受信部２１４によりプリンター３へ送信させる（ステップＳ１４）。タイマーリセットコマンドの送信後、後述するステップＳ１８の動作に移行する。
【００３３】
また、タイマーリセットコマンドを含む印刷の指示及びタイマーリセットコマンドが出力されない間に、タイマー２１２のカウント値が予備基準時間に到達した場合（ステップＳ１３；Ｙｅｓ）、プリンタードライバー実行部２１０は、アプリケーション動作監視部２１３の機能によってアプリケーション実行部２０１に対し、応答要求を出力する（ステップＳ１５）。アプリケーション動作監視部２１３は、この応答要求に対するアプリケーション実行部２０１の応答を待ち（ステップＳ１６）、所定時間内に正常な応答があった場合は（ステップＳ１６；Ｙｅｓ）、ステップＳ１４に移行して、アプリケーション実行部２０１に代わりタイマーリセットコマンドを送信する。また、所定時間内にアプリケーション実行部２０１から正常な応答がなかった場合には（ステップＳ１６；Ｎｏ）、アプリケーション実行部２０１の動作に異常が発生したと判別して、エラーの発生を出力部２６等により報知し（ステップＳ１７）、ステップＳ１８に移行する。このような構成にすることにより、アプリケーション実行部２０１が他の優先する処理をしていて、タイマーリセットコマンドを出力できないなど、本来異常でないにもかかわらず、異常と判断されることを避けることができる。
【００３４】
ステップＳ１８で、プリンタードライバー実行部２１０は、タイマー２１２のカウント値をリセットし、動作を停止するか否かを判別し（ステップＳ１９）、動作を継続する場合はステップＳ１１に戻り、停止する場合は本処理を終了する。
【００３５】
図４は記録システム１の動作シーケンスの一例を示す図であり、図中（Ａ）はアプリケーション実行部２０１の動作を示し、（Ｂ）はプリンタードライバー実行部２１０の動作を示し、（Ｃ）はプリンター３の動作を示す。
上述のように、アプリケーションプログラム２４Ｂは、アプリケーション実行部２０１により実行される際に、一定周期でタイマーリセットコマンドを出力するようプログラムされている。従って、アプリケーション実行部２０１は、一定時間毎にタイマーリセットコマンドを出力し（ステップＳ２１）、これによりプリンタードライバー実行部２１０はタイマー２１２をリセットすると共に、タイマーリセットコマンドをプリンター３に送信する（ステップＳ３１）。このタイマーリセットコマンドを受信したプリンター３はタイマー４０９をリセットする。
【００３６】
また、プリンタードライバー実行部２１０は、アプリケーション実行部２０１がタイマーリセットコマンドを出力したときだけでなく、アプリケーション実行部２０１が印刷の指示を出力したとき（ステップＳ２２）も、タイマーリセットコマンドが付加されていない場合には、タイマーリセットコマンドを生成してプリンター３に送信する（ステップＳ３２）。プリンタードライバー実行部２１０は、アプリケーション実行部２０１が出力した印刷指示に従って、印刷ジョブを生成してプリンター３に送信する処理も行う（ステップＳ３３）。
このプリンタードライバー実行部２１０の機能により、アプリケーション実行部２０１が出力すべきタイマーリセットコマンドが出力されない場合や、タイマーリセットコマンドの出力タイミングが遅れた場合に、プリンター３に対してタイマーリセットコマンドを送信できる。例えば、アプリケーション実行部２０１がタイマーリセットコマンドを出力するタイミングと、印刷の指示を出力するタイミングとが重なった場合に、印刷の指示が優先されるためにタイマーリセットコマンドの出力タイミングが遅れることや、タイマーリセットコマンドが出力されないことがある。このような場合も、プリンター３に対して確実にタイマーリセットコマンドを送信できる。
【００３７】
また、プリンタードライバー実行部２１０は、プリンター３のタイマー４０９のカウント値が異常を検出する基準時間に達する前に、タイマー２１２のカウント値が予備基準時間に達するように構成されている。タイマー２１２のカウント値が予備基準時間に達した場合、プリンタードライバー実行部２１０はアプリケーション実行部２０１に応答要求を出力する（ステップＳ３４、Ｓ３６）。この応答要求に応じてアプリケーション実行部２０１が応答信号を出力した場合（ステップＳ２５）、プリンタードライバー実行部２１０はタイマーリセットコマンドを生成してプリンター３に送信する（ステップＳ３５）。この動作は、タイマーリセットコマンドが送信されず、プリンター３が異常を検出する直前に、プリンタードライバー実行部２１０がアプリケーション実行部２０１の動作を確認する動作である。アプリケーション実行部２０１が他の処理を実行するため、または他の機能部が他の処理を実行するため、或いは他の偶発的な原因により、アプリケーション実行部２０１が正常動作しているにもかかわらずタイマーリセットコマンドを出力しなかった場合に、プリンター３が異常を検出する前にアプリケーション実行部２０１の動作を確認し、プリンタードライバー実行部２１０が代わりにタイマーリセットコマンドを生成し送信することで、アプリケーション実行部２０１の動作中にプリンター３が異常を検出してしまう事態を回避できる。
【００３８】
また、プリンタードライバー実行部２１０が、タイマー２１２のカウント値が予備基準時間に達して、アプリケーション実行部２０１に応答要求を出力した場合に、アプリケーション実行部２０１が所定時間内に応答を送信しなければ、プリンタードライバー実行部２１０は、アプリケーション実行部２０１で異常が発生していると判断し、プリンター３へのタイマーリセットコマンドの送信を行わない。このため、プリンタードライバー実行部２１０でも異常を判断できると共に、プリンター３においてはタイマー４０９のカウント値が基準時間に達し、エラーの発生が報知される。
【００３９】
このように、本実施形態では、プリンター３がホストコンピューター２からタイマーリセットコマンドを受信しない状態が続いた場合に異常を検出する機能を備え、このプリンター３に接続されるホストコンピューター２が、アプリケーションプログラムを実行するアプリケーション実行部２０１の機能により、プリンター３へのタイマーリセットコマンドを所定周期で出力し、アプリケーションプログラムにより処理されたデータを印刷する指示を出力するよう構成され、プリンタードライバー実行部２１０が、アプリケーション実行部２０１がタイマーリセットコマンドを出力した場合、及び、印刷を指示した場合に、タイマーリセットコマンドをプリンター３に送信する。
つまり、タイマーリセットコマンドを受信しない時間が基準時間に達した場合に異常を検出（判断）するプリンター３に対して、通信可能に接続されたホストコンピューター２が、アプリケーションプログラムを実行して、当該アプリケーションプログラムにより処理されるデータを記録用データとして出力するアプリケーション実行部２０１と、アプリケーション実行部２０１が出力する記録用データに基づいてプリンター３に対して記録ジョブを送信するプリンタードライバー実行部２１０と、を備え、アプリケーション実行部２０１がタイマーリセットコマンドを出力しない場合、プリンタードライバー実行部２１０は、アプリケーション実行部２０１の状況を確認して、当該状況に基づき、アプリケーション実行部２０１に代わりタイマーリセットコマンドを生成しプリンター３へ送信する。
【００４０】
このため、タイマーリセットコマンドの送信タイミングと印刷するためのデータの出力タイミングとが重複するなどの偶発的な原因等により、アプリケーション実行部２０１がタイマーリセットコマンドを出力できない場合であっても、印刷用データが出力されることでプリンター３にタイマーリセットコマンドが送信される。これにより、ホストコンピューター２がアプリケーションプログラムを実行可能な状態であるにも関わらずプリンター３が異常を検出してしまうことがなく、ホストコンピューター２の動作状態の正常か異常かをプリンター３が正確に検出できる。そして、ホストコンピューター２が、ソフトウェアの不具合によりアプリケーション実行部２０１がアプリケーションプログラムの実行中にハングアップした場合、ホストコンピューター２とプリンター３とをつなぐ通信線１０の問題、誤操作によるホストコンピューター２の電源停止等により、ホストコンピューター２が正常に動作しなった場合には、確実にプリンター３が異常を検出して、このプリンター３の異常検出通知によってユーザーは即座にホストコンピューター２の異常を認識することが可能である。
【００４１】
これにより、ホストコンピューター２がプリンター３と遠く離れた場所に設置されている場合でも、プリンター３のユーザーは、ホストコンピューター２の異常状態を即座に認識することができ、システムの復旧作業を迅速に行うことが可能である。そして、ホストコンピューター２が動作可能な状態であるにも関わらずプリンター３が異常を検出してしまうことがないので、ホストコンピューター２の動作確認及び復旧に係る無駄な作業を防止でき、効率よく記録システム１を運用できる。
【００４２】
また、ホストコンピューター２が有するプリンタードライバー実行部２１０は、アプリケーション実行部２０１がタイマーリセットコマンドも印刷用データも出力しない状態が、基準時間に達する前に、アプリケーション実行部２０１に対して応答要求を出力し、この応答要求に応じてアプリケーション実行部２０１が応答を出力した場合は、タイマーリセットコマンドをプリンター３へ送信するので、アプリケーション実行部２０１が偶発的な原因によりタイマーリセットコマンドを送信しなかった場合には、プリンター３が異常を検出する前にタイマーリセットコマンドを送信する機会を確保し、プリンター３に異常を検出させないようにすることができる。これにより、アプリケーションプログラムを実行不能になった場合やホストコンピューター２の動作が停止した場合等、検出すべき異常がホストコンピューター２で発生した場合のみ、プリンター３に異常を検出させるので、ホストコンピューター２の動作状態の異常をプリンター３が正確に検出できる。
【００４３】
さらに、プリンタードライバー実行部２１０には、基準時間より短い予備基準時間が予め設定され、アプリケーション実行部２０１がタイマーリセットコマンドも印刷ジョブも出力しない状態が予備基準時間に達した場合に、アプリケーション実行部２０１に対して応答要求を出力するので、プリンター３が異常を検出する前に、確実に応答要求を行うことができる。
【００４４】
なお、上記実施形態は本発明を適用した一具体例を示すものであり、本発明はこれに限定されるものではない。例えば、上記実施形態では、アプリケーション実行部２０１が出力した印刷の指示に基づいてプリンタードライバー実行部２１０が印刷ジョブを生成するものとして説明したが、本発明はこれに限定されるものではなく、アプリケーション実行部２０１が印刷ジョブを生成して出力し、プリンタードライバー実行部２１０はこの印刷ジョブを送信するものであってもよい。また、例えば、上記実施形態では一つのホストコンピューター２に１または複数のプリンター３が接続された記録システム１において、ホストコンピューター２が、アプリケーション実行部２０１が印刷指示またはタイマーリセットコマンドを出力しない時間をプリンタードライバー実行部２１０によって監視する構成を例に挙げて説明したが、本発明はこれに限定されるものではなく、複数のホストコンピューター２と複数のプリンター３とが一つのネットワークを介して通信可能に接続され、一つのホストコンピューター２のアプリケーション実行部２０１が印刷指示またはタイマーリセットコマンドを出力しない時間を、他のホストコンピューター２が監視する構成としてもよいし、各々のホストコンピューター２のアプリケーション実行部２０１の動作を監視する専用の装置をホストコンピューター２に接続してもよい。また、上記実施形態では、基準時間が予め設定されてフラッシュＲＯＭ４２に記憶され、予備基準時間が予め設定されて記憶部２４に記憶された構成としたが、ホストコンピューター２がプリンター３と通信を行って、プリンター３が記憶している基準時間を取得し、この取得した基準時間より短い予備基準時間を自動的に設定してもよい。さらに、プリンター３が異常を報知する方法としては、ＬＥＤランプ５の点灯／点滅、エラー発生を伝えるメッセージの印刷出力、エラー発生を伝える音声出力等の他、プリンター３に接続された他の装置に制御信号をプリンター３から送信し、この制御信号を受信した装置がメッセージを表示出力等してもよい。
また、このような構成により、仮にアプリケーションプログラム２４Ｂやアプリケーション実行部２０１がタイマーリセットコマンドに対応していないものであっても、プリンタードライバー実行部２１０が代わりに適切なタイミングでタイマーリセットコマンドを生成してプリンター３へ送信するので、様々なアプリケーションプログラム２４Ｂへの対応が可能となる。
また、上記実施形態では、プリンター３がインクジェット式プリンターである場合を例に挙げて説明したが、本発明を適用可能な記録装置は、文字や画像を記録できる装置であれば特に制限されず、発熱素子を備えたラインサーマルヘッドにより感熱ロール紙に印刷するサーマルプリンター、ドットインパクトプリンター、レーザープリンター等にも本発明を適用可能であり、他の装置に組み込まれるプリンターにも本発明を適用可能である。
【符号の説明】
【００４５】
１…記録システム、２…ホストコンピューター（記録制御装置）、３…プリンター（記録装置）、２４…記憶部、２４Ａ…オペレーティングシステム、２４Ｂ…アプリケーションプログラム、２４Ｃ…プリンタードライバー、４７…印刷ヘッド、２０１…アプリケーション実行部、２１０…プリンタードライバー実行部（記録制御部）、２１２…タイマー、２１３…アプリケーション動作監視部、４０６…異常検出部、４０７…異常検出設定値記憶部、４０９…タイマー。
【図１】
0005482434.tif 000002
【図２】
0005482434.tif 000003
【図３】
0005482434.tif 000004
【図４】
0005482434.tif 000005