(57)【要約】【課題】記録装置と外部装置とが通信可能に接続された構成において、記録装置に接続された外部装置の動作状態の異常を記録装置において正確に検出できるようにする。【解決手段】ホストコンピューター２は、少なくとも状態の変化が発生したことをトリガーとしてプリンター３から通知されたステータスデータをもとに、プリンター３がエラー状態であるか否かを判定する状態判定部２１２と、プリンター３に所定のコマンドを送信してそのコマンドに対するプリンター３からのレスポンスを確認する確認部２１３と、プリンター３がエラー状態であると判定した場合、又は、確認されたレスポンスがコマンドから想定されるレスポンスでない場合に、プリンター３をリセットするコマンド送信制御部２１１とを備え、確認部２１３は、所定時間、プリンター３からステータスデータを受信しない場合に所定のコマンドを送信する。【選択図】図２
2012190221.tif 000002
【特許請求の範囲】
【請求項１】
記録装置と記録制御装置とが通信可能に接続され、前記記録制御装置から送信されるコマンドに基づき前記記録装置が制御される記録システムであって、
前記記録装置は、
自装置の状態を示すステータスデータを、少なくとも状態の変化が発生したことをトリガーとして、前記記録制御装置へ通知する通知手段を備え、
前記記録制御装置は、
前記記録装置から通知された前記ステータスデータをもとに、前記記録装置がエラー状態であるか否かを判定する状態判定手段と、
前記記録装置に所定のコマンドを送信して当該コマンドに対する前記記録装置からのレスポンスを確認する確認手段と、
前記状態判定手段により前記記録装置がエラー状態であると判定された場合、又は、前記確認手段により確認された前記レスポンスが、前記確認手段によって送信された前記コマンドから想定されるレスポンスでない場合に、前記記録装置をリセットするリセットコマンドを送信するリセット手段と、
を備え、
前記確認手段は、所定時間、前記記録装置から前記ステータスデータを受信しない場合、前記記録装置に前記所定のコマンドを送信すること、
を特徴とする記録システム。
【請求項２】
前記リセットコマンドは、再起動により初期化を行う第１のリセットを前記記録装置に実行させるコマンドであること、
を特徴とする請求項１に記載の記録システム。
【請求項３】
前記リセット手段は、前記第１のリセットを前記記録装置に実行させた後に、再び前記リセットコマンドを送信する場合、前記記録装置の設定を予め定められた初期状態に戻す第２のリセットを実行させるリセットコマンドを送信すること、
を特徴とする請求項２に記載の記録システム。
【請求項４】
前記状態判定手段は、前記記録装置から通知された前記ステータスデータをもとに、前記記録装置が印刷中であるか否かを判定し、
前記リセット手段は、前記記録装置が印刷中である場合には前記リセットコマンドを送信しないこと、
を特徴とする請求項１ないし３のいずれか一項に記載の記録システム。
【請求項５】
前記記録装置は、自装置でエラーが発生したことを検出する検出手段を更に備え、
前記通知手段は、前記検出手段により前記エラーが検出されたことをトリガーとして、前記ステータスデータを通知すること、
を特徴とする請求項１ないし４のいずれか一項に記載の記録システム。
【請求項６】
通信可能に接続された記録装置から、少なくとも状態の変化が発生したことをトリガーとして通知された、当該記録装置の状態を示すステータスデータをもとに、前記記録装置がエラー状態であるか否かを判定する状態判定手段と、
前記記録装置に所定のコマンドを送信して当該コマンドに対する前記記録装置からのレスポンスを確認する確認手段と、
前記状態判定手段により前記記録装置がエラー状態であると判定された場合、又は、前記確認手段により確認された前記レスポンスが、前記確認手段により送信された前記コマンドから想定されるレスポンスでない場合に、前記記録装置をリセットするコマンドを送信するリセット手段と、
を備え、
前記確認手段は、所定時間、前記記録装置から前記ステータスデータを受信しない場合、前記記録装置に前記所定のコマンドを送信すること、
を特徴とする記録制御装置。
【請求項７】
記録装置と通信可能に接続された記録制御装置が実行する制御方法であって、
前記記録装置から、少なくとも状態の変化が発生したことをトリガーとして通知された、当該記録装置の状態を示すステータスデータをもとに、前記記録装置がエラー状態であるか否かを判定し、前記記録装置に所定のコマンドを送信して当該コマンドに対する前記記録装置からのレスポンスを確認し、前記記録装置がエラー状態であると判定した場合、又は、確認された前記レスポンスが、確認の際に送信した前記コマンドから想定されるレスポンスでない場合に、前記記録装置をリセットするコマンドを送信し、
さらに、所定時間、前記記録装置から前記ステータスデータを受信しない場合、前記記録装置に前記所定のコマンドを送信すること、
を特徴とする制御方法。
【請求項８】
記録装置と通信可能に接続された記録制御装置が実行するプログラムであって、
前記記録装置から、少なくとも状態の変化が発生したことをトリガーとして通知された、当該記録装置の状態を示すステータスデータをもとに、前記記録装置がエラー状態であるか否かを判定し、前記記録装置に所定のコマンドを送信して当該コマンドに対する前記記録装置からのレスポンスを確認し、前記記録装置がエラー状態であると判定した場合、又は、確認された前記レスポンスが、確認の最に送信した前記コマンドから想定されるレスポンスでない場合に、前記記録装置をリセットするコマンドを送信し、
さらに、所定時間、前記記録装置から前記ステータスデータを受信しない場合、前記記録装置に前記所定のコマンドを送信すること、
を特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記録システム、記録制御装置、制御方法、及び、プログラムに関する。
【背景技術】
【０００２】
従来、プリンター等の記録装置に上位ホスト装置等の記録制御装置が接続された記録システムでは、記録制御装置がプリンタードライバー等のプログラムを実行することで、記録装置に制御コマンドを送信し、記録装置の記録（印刷）にかかる制御を行っている。この記録制御装置では、記録装置をリセットするＡＰＩ（Application Program Interface）により、記録装置から送信される自身のステータスを示すデータをもとに、記録装置のエラー状態を監視しながらリセットを行うタイミングを制御している（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−１３１８５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述した従来技術では、記録装置からエラー状態を示すデータを受信していないが、実際には記録装置にエラーが発生している場合にリセットが行われないなど、記録装置のリセットが適切に行われないことがあった。
本発明は、上述した事情に鑑みてなされたものであり、記録装置と記録制御装置とが通信可能に接続された記録システムにおいて、記録装置のリセットを適切に行うことができるようにすることを目的とする。
【課題を解決するための手段】
【０００５】
上記課題を解決するため、本発明は、記録装置と記録制御装置とが通信可能に接続され、前記記録制御装置から送信されるコマンドに基づき前記記録装置が制御される記録システムであって、前記記録装置は、自装置の状態を示すステータスデータを、少なくとも状態の変化が発生したことをトリガーとして、前記記録制御装置へ通知する通知手段を備え、前記記録制御装置は、前記記録装置から通知された前記ステータスデータをもとに、前記記録装置がエラー状態であるか否かを判定する状態判定手段と、前記記録装置に所定のコマンドを送信して当該コマンドに対する前記記録装置からのレスポンスを確認する確認手段と、前記状態判定手段により前記記録装置がエラー状態であると判定された場合、又は、前記確認手段により確認された前記レスポンスが、前記確認手段によって送信された前記コマンドから想定されるレスポンスでない場合に、前記記録装置をリセットするリセットコマンドを送信するリセット手段とを備え、前記確認手段は、所定時間、前記記録装置から前記ステータスデータを受信しない場合、前記記録装置に前記所定のコマンドを送信することを特徴とする。
本発明によれば、記録制御装置が、記録装置から状態の変化をトリガーとして通知されたステータスデータをもとに記録装置がエラー状態であるか否かを判定し、エラー状態であると判定した場合に記録装置にリセットコマンドを送信する一方、記録装置に所定のコマンドを送信してそのコマンドに対する記録装置からのレスポンスを確認し、このレスポンスが確認の際に送信したコマンドから想定されるレスポンスでない場合に、記録装置にリセットコマンドを送信する。これにより、記録装置が、エラーであることを示すステータスデータを送信した場合に加え、記録装置がエラー状態を示すステータスデータを送信していないが、実際には記録装置にエラーが発生している場合、例えば記録装置が自装置の状態の変化を検知できない場合などにも、記録装置をリセットすることができ、記録装置のリセットを適切に行うことができる。
【０００６】
また、本発明は、上記記録システムにおいて、リセットコマンドは、再起動により初期化を行う第１のリセットを記録装置に実行させるコマンドであることを特徴とする。
本発明によれば、記録装置がエラー状態である場合、又は、確認されたレスポンスが送信されたコマンドから想定されるレスポンスでない場合において、記録装置を再起動により初期化することができる。
【０００７】
また、本発明は、上記記録システムにおいて、前記第１のリセットを前記記録装置に実行させた後に、再び前記リセットコマンドを送信する場合、前記記録装置の設定を予め定められた初期状態に戻す第２のリセットを実行させるリセットコマンドを送信することを特徴とする。
本発明によれば、第１のリセットを記録装置に実行させた後に、記録装置がエラー状態である場合、又は、確認されたレスポンスが送信されたコマンドから想定されるレスポンスでない場合が継続し、再びリセットコマンドを送信する場合に、記録装置の設定を予め定められた初期状態に戻すことができる。
【０００８】
また、本発明は、上記記録システムにおいて、前記状態判定手段は、前記記録装置から通知された前記ステータスデータをもとに、前記記録装置が印刷中であるか否かを判定し、前記リセット手段は、前記記録装置が印刷中である場合には前記リセットコマンドを送信しないことを特徴とする。
本発明によれば、記録装置が印刷中にリセットが行われることを防止できる。
【０００９】
また、本発明は、上記記録システムにおいて、前記記録装置は、自装置でエラーが発生したことを検出する検出手段を更に備え、前記通知手段は、前記検出手段により前記エラーが検出されたことをトリガーとして、前記ステータスデータを通知することを特徴とする。
本発明によれば、記録装置でエラーが検出された場合にこれをトリガーとしてステータスデータの通知が行われる構成、例えば自動状態送信を行う記録装置を有する記録システムにおいて、エラー状態を示すステータスデータが送信されないが、実際には記録装置にエラーが発生している場合であっても、記録装置のリセットを適切に行うことができる。
【００１０】
また、上記課題を解決するため、本発明は、通信可能に接続された記録装置から、少なくとも状態の変化が発生したことをトリガーとして通知された、当該記録装置の状態を示すステータスデータをもとに、前記記録装置がエラー状態であるか否かを判定する状態判定手段と、前記記録装置に所定のコマンドを送信して当該コマンドに対する前記記録装置からのレスポンスを確認する確認手段と、前記記録装置がエラー状態である場合、又は、確認された前記レスポンスが送信された前記コマンドから想定されるレスポンスでない場合に、前記記録装置をリセットするコマンドを送信するリセット手段と、を備え、前記確認手段は、所定時間、前記記録装置から前記ステータスデータを受信しない場合、前記記録装置に前記所定のコマンドを送信することを特徴とする記録制御装置である。
本発明によれば、記録制御装置が、記録装置から状態の変化をトリガーとして通知されたステータスデータをもとに記録装置がエラー状態であるか否かを判定し、エラー状態であると判定した場合に記録装置にリセットコマンドを送信する一方、記録装置に所定のコマンドを送信してそのコマンドに対する記録装置からのレスポンスを確認し、このレスポンスが確認の際に送信したコマンドから想定されるレスポンスでない場合に、記録装置にリセットコマンドを送信する。これにより、記録装置がエラーであることを示すステータスデータを送信した場合に加え、記録装置がエラー状態を示すステータスデータを送信していないが、実際には記録装置にエラーが発生している場合、例えば記録装置が自装置の状態の変化を検知できない場合などにも、記録装置をリセットすることができ、記録装置のリセットを適切に行うことができる。
【００１１】
また、上記課題を解決するため、本発明は、記録装置と通信可能に接続された記録制御装置が実行する制御方法であって、前記記録装置から、少なくとも状態の変化が発生したことをトリガーとして通知された、当該記録装置の状態を示すステータスデータをもとに、前記記録装置がエラー状態であるか否かを判定し、前記記録装置に所定のコマンドを送信して当該コマンドに対する前記記録装置からのレスポンスを確認し、前記記録装置がエラー状態である場合、又は、確認された前記レスポンスが送信された前記コマンドから想定されるレスポンスでない場合に、前記記録装置をリセットするコマンドを送信し、さらに、所定時間、前記記録装置から前記ステータスデータを受信しない場合、前記記録装置に前記所定のコマンドを送信することを特徴とする。
本発明によれば、記録制御装置が、記録装置から通知されたステータスデータをもとに記録装置がエラー状態であるか否かを判定し、エラー状態であると判定した場合に記録装置にリセットコマンドを送信する一方、記録装置に所定のコマンドを送信してそのコマンドに対する記録装置からのレスポンスを確認し、このレスポンスが確認の際に送信したコマンドから想定されるレスポンスでない場合に、記録装置にリセットコマンドを送信する。これにより、記録装置がエラーであることを示すステータスデータを送信した場合に加え、記録装置がエラー状態を示すステータスデータを送信していないが、実際には記録装置にエラーが発生している場合、例えば記録装置が自装置の状態の変化を検知できない場合などにも、記録装置をリセットすることができ、記録装置のリセットを適切に行うことができる。
【００１２】
また、上記課題を解決するため、本発明は、記録装置と通信可能に接続された記録制御装置が実行するプログラムであって、前記記録装置から、少なくとも状態の変化が発生したことをトリガーとして通知された、当該記録装置の状態を示すステータスデータをもとに、前記記録装置がエラー状態であるか否かを判定し、前記記録装置に所定のコマンドを送信して当該コマンドに対する前記記録装置からのレスポンスを確認し、前記記録装置がエラー状態である場合、又は、確認された前記レスポンスが送信された前記コマンドから想定されるレスポンスでない場合に、前記記録装置をリセットするコマンドを送信し、さらに、所定時間、前記記録装置から前記ステータスデータを受信しない場合、前記記録装置に前記所定のコマンドを送信することを特徴とする。
本発明によれば、記録制御装置が、記録装置から通知されたステータスデータをもとに記録装置がエラー状態であるか否かを判定し、エラー状態であると判定した場合に記録装置にリセットコマンドを送信する一方、記録装置に所定のコマンドを送信してそのコマンドに対する記録装置からのレスポンスを確認し、このレスポンスが確認の際に送信したコマンドから想定されるレスポンスでない場合に、記録装置にリセットコマンドを送信する。これにより、記録装置がエラーであることを示すステータスデータを送信した場合に加え、記録装置がエラー状態を示すステータスデータを送信していないが、実際には記録装置にエラーが発生している場合、例えば記録装置が自装置の状態の変化を検知できない場合などにも、記録装置をリセットすることができ、記録装置のリセットを適切に行うことができる。
【発明の効果】
【００１３】
本発明によれば、記録装置と記録制御装置とが通信可能に接続された記録システムにおいて、記録装置のリセットを適切に行うことができる。
【図面の簡単な説明】
【００１４】
【図１】実施形態にかかる記録システムの構成を示すブロック図である。
【図２】ホストコンピューターとプリンターの機能ブロック図である。
【図３】プリンタードライバーにより実行される処理のフローチャートである。
【発明を実施するための形態】
【００１５】
以下、図面を参照して本発明の実施形態について説明する。図１は、実施形態にかかる記録システム１の構成を示すブロック図である。
記録システム１は、紙、コーティング紙または合成樹脂シート等からなる記録媒体としてのカットシートや連続シートに、文字や画像を印刷（記録）する記録装置としてのプリンター３と、プリンター３を制御して記録を実行させる記録制御装置としてのホストコンピューター２とを、通信線１０を介して相互に通信可能に接続して構成される。本実施形態ではホストコンピューター２とプリンター３とを一対一で接続した構成を例示するが、一台のホストコンピューター２に接続されるプリンター３の数に制限はなく、多数のプリンター３をホストコンピューター２に接続してもよい。また、複数のホストコンピューター２に１台のプリンター３を接続したものでもよい。通信線１０は、ホストコンピューター２とプリンター３とを一対一で接続する通信ケーブルや無線通信回線の他、一台のホストコンピューター２に対し多数のプリンター３を接続可能な有線または無線のＬＡＮ、または、公衆回線網を介した広域ネットワークにより構成される。また、プリンター３の記録方式についても特に制限はなく、本実施形態では一例として、プリンター３を、発熱素子を備えたラインサーマルヘッドにより感熱ロール紙に印刷するサーマルプリンターで構成した場合について説明する。
【００１６】
図１に示すように、ホストコンピューター２は、主として、ＣＰＵ２１と、不揮発性メモリーであるＲＯＭ２２と、揮発性メモリーであるＲＡＭ２３と、キーボード等の入力デバイスに接続された入力部２４と、表示装置等の出力デバイスに接続された出力部２５と、大規模記憶装置としての記憶部２６と、通信Ｉ／Ｆ２７とを備えている。ホストコンピューター２は、ＣＰＵ２１が記憶部２６に記憶されたオペレーティングシステム２６Ａ、アプリケーションプログラム２６Ｂ、及びプリンタードライバー２６Ｃを実行しながら、通信Ｉ／Ｆ２７を介してプリンター３に各種コマンドや印刷データを出力することにより、プリンター３を制御する。ホストコンピューター２は、プリンター３に対し、印刷実行を指示するコマンドと印刷用のデータとを含む印刷ジョブを送信して、印刷を行わせる。
【００１７】
また、ホストコンピューター２は、プリンター３から通知された、プリンターの状態を示すステータスデータをもとに、プリンター３がエラー状態である場合にプリンター３をリセットするリセットコマンドをプリンター３に送信する。また、ホストコンピューター２は、プリンター３がエラー状態でない場合であっても、プリンター３に送信したコマンドから想定されるレスポンスがなかった場合にはリセットコマンドをプリンター３に送信する。このリセットコマンドの送信の詳細については後述する。
【００１８】
プリンター３は、主として、ＣＰＵ３１と、書き換え可能な不揮発性メモリーであるフラッシュＲＯＭ３２と、揮発性メモリーであるＲＡＭ３３と、ＬＥＤランプ３４と、通信Ｉ／Ｆ３５と、印刷ヘッド３８が備える発熱素子に適宜通電させて記録媒体としての感熱ロール紙に熱エネルギーを与え、有色のドットを形成させて記録を行う印刷制御部３６と、用紙搬送機構３７と、印刷ヘッド３８とを備えている。
【００１９】
プリンター３は、ＣＰＵ３１がフラッシュＲＯＭ３２に記憶されたファームウェアを実行しながら、通信Ｉ／Ｆ３５を介してホストコンピューター２と通信を行うことにより、各種コマンドや印刷データを受信する。そして、印刷制御部３６が各種コマンドや印刷データに基づき、用紙搬送機構３７を介して用紙を搬送しつつ印刷ヘッド３８を駆動して用紙への印刷を実行し、レシートやクーポンを発券する。また、プリンター３は、発券時や、エラーの発生時等にはＬＥＤランプ５を点灯または点滅させたり、スピーカー（図示略）から音声を報知したりするなどして、ユーザーに各種情報を視覚的または聴覚的に通知する。また、プリンター３は、通信Ｉ／Ｆ３５における通信状態、用紙搬送機構３７における搬送状態、印刷ヘッド３８におけるインク詰まりなどの印字状態等の自装置の状態をモニターし、その状態を示すステータスデータをホストコンピューター２に通知する。このステータスデータの通知の詳細については後述する。
【００２０】
図２は、ホストコンピューター２とプリンター３の機能ブロック図である。図２に示すホストコンピューター２の各部は、ＣＰＵ２１（図１参照）が記憶部２６に記憶された各種プログラムを実行することにより、ソフトウェアとハードウェアとの協働により実現される。また、プリンター３の各部は、ＣＰＵ３１によりフラッシュＲＯＭ３２に記憶された各種プログラムを実行することにより、ソフトウェアとハードウェアとの協働により実現される。
【００２１】
図２に示すように、プリンター３は、ホストコンピューター２から送信される各種コマンドや印刷データを受信する受信部４０１と、受信部４０１が受信した各種コマンドや印刷データを一時的に保持する受信バッファー４０２が設けられている。受信バッファー４０２によって受信されたデータは、コマンド解析部４０３によって解析され、制御コマンドの場合は制御コマンドバッファー４０４に、印刷データの場合には印刷バッファー４０５にＤＭＡ転送等により転送される。印刷バッファー４０５に一時保存された印刷データは、データ展開処理が行われてデータ変換され、最終的には印刷ヘッド３８のノズル列に対応したドットパターンデータが生成されて印刷バッファー４０５に記憶される。一方、制御コマンドバッファー４０４に一時保存された制御コマンドデータは、主制御部４０８によって読み出されて、記録媒体としての用紙カット動作など制御コマンドに応じた処理が実行される。
【００２２】
ホストコンピューター２から送信される制御コマンドには、プリンター３をリセットするリセットコマンドが含まれる。プリンター３のリセットには、再起動により初期化を行うソフトリセット（第１のリセット）と、プリンター３の設定を予め定められた初期状態（例えば工場出荷状態）に戻すハードリセット（第２のリセット）とがある。リセットコマンドには、上述したソフトリセット又はハードリセットの指示を示すフラグ等の情報が含まれている。主制御部４０８は、制御コマンドバッファー４０４より読み出したリセットコマンドがソフトリセットを指示している場合、プリンター３を再起動する処理を実行する。また、主制御部４０８は、制御コマンドバッファー４０４より読み出したリセットコマンドがハードリセットを指示している場合、フラッシュＲＯＭ３２の所定領域に記憶された初期状態の設定データを読み出して、プリンター３の設定を初期状態に戻した後に再起動する処理を実行する。
【００２３】
また、ホストコンピューター２から送信される制御コマンドには、プリンター３での処理を即時に行わせるリアルタイム制御コマンド（即時実行制御コマンド）がある。プリンター３では、通常のコマンドが制御コマンドバッファー４０４に記憶された順に実行されるのに対し、リアルタイム制御コマンドは、受信バッファー４０２においてコマンド解析部４０３により検出されると、他の処理に優先して直ちに実行される。
【００２４】
また、ホストコンピューター２から送信される制御コマンドには、所定のレスポンスをホストコンピューター２へ返信するコマンドがある。具体的には、機器のＩＤ等の設定情報を返信するコマンドの他、単に正しくデータが受信されたことを示すアクノリッジデータを返信するコマンドなどがある。主制御部４０８は、返信を要するコマンドを制御コマンドバッファー４０４より読み出した場合は、そのコマンドに対応したレスポンスを送信部４１４を介してホストコンピューター２へ返す。ホストコンピューター２では、プリンター３に送信したコマンドに対するレスポンスを確認することで、プリンター３にエラーが発生していることを認識できる。例えば、コマンドの送信に対して正しくデータが受信されたことを示すアクノリッジデータが遅れたり、返ってこない場合には、通信エラー等のエラーが生じていることを認識できる。また、機器のＩＤ等の設定情報を返信させるコマンドに対して、コマンドに対応した設定情報が得られなかった場合には、設定異常等のエラーが生じていることを認識できる。
【００２５】
検出手段としての異常検出部４０６は、プリンター３の各部が正常に動作しているかどうかを監視し、プリンター３でエラーが発生したことを検出する。具体的には、異常検出部４０６は、タイマー４０９でのカウントをもとに、所定の時間間隔（例えば数ｍｓｅｃ）でプリンター３の各部からエラーの種別を示すエラーコードが出力されているか否かを監視し、エラーコードの検出をもってエラーの発生を検出している。異常検出部４０６は、エラーの発生を検出した場合には検出したエラーコードを主制御部４０８へ出力する。主制御部４０８は、異常検出部４０６からのエラーコードをもとに、プリンター３で発生しているエラーの種別を識別できる。
【００２６】
通知手段としての主制御部４０８は、自装置の状態を示すステータスデータを、送信部４１４を介してホストコンピューター２へ通知する。具体的には、主制御部４０８は、制御コマンドデータに応じた処理の状態（例えば印刷中、用紙搬送中など）、制御コマンドデータを受付中である待ち状態、異常検出部４０６から出力されたエラーコードが示すプリンター３のエラー状態などを一意に示すステータスコードを生成し、生成したステータスコードをステータスデータとしてホストコンピューター２へ通知する。したがって、ホストコンピューター２では、プリンター３より通知されたステータスコードから、そのプリンター３の状態（印刷中、用紙搬送中、エラー種別など）を認識できる。
【００２７】
主制御部４０８は、タイマー４０９でのカウントをもとに、所定の時間間隔（例えば数ｓｅｃ）でステータスデータをホストコンピューター２へ通知してもよいが、直近に生成したステータスコードをＲＡＭ３３などに一時記憶しておき、そのステータスコードに変化があった場合にホストコンピューター２へ通知する自動状態送信機能（オートステータスバック）を有する。このオートステータスバック機能により、主制御部４０８は、自装置のステータスに変化があった場合に、これをトリガーとしてステータスデータを通知する。例えば、異常検出部４０６によってエラーコードが検出された場合に、そのエラーを示すステータスデータをホストコンピューター２へ通知する。また、ホストコンピューター２から送信された印刷データの印刷が完了した場合、オフラインに移行した場合などにもオートステータスバックによりステータスデータをホストコンピューター２へ送信する。
【００２８】
一方、ホストコンピューター２は、記憶部２６に記憶されたオペレーティングシステム２６Ａを実行することにより、ホストコンピューター２の基本的機能を実現する。ホストコンピューター２は、記憶部２６に記憶されたアプリケーションプログラム２６Ｂを実行するアプリケーション実行部２０１と、プリンタードライバー２６Ｃを実行するプリンタードライバー実行部２１０と、プリンター３との間で印刷ジョブ及びコマンドを送受信する送受信部２１４とを備える。
【００２９】
アプリケーション実行部２０１は、アプリケーションプログラムを実行してデータを処理し、処理されたデータを随時出力する。また、アプリケーション実行部２０１は、アプリケーションプログラムの実行中に印刷の指示がなされた場合に、印刷実行の指示と、印刷すべきデータとを、印刷用データ（記録用データ）としてプリンタードライバー実行部２１０に出力する。
【００３０】
プリンタードライバー実行部２１０は、コマンド送信制御部２１１、状態判定部２１２、確認部２１３、及び、プリンター３との通信を行う送受信部２１４を備えている。
【００３１】
コマンド送信制御部２１１は、アプリケーション実行部２０１がアプリケーションプログラムの実行により出力する印刷の指示（印刷用データ）に基づき、この印刷用データを印刷するための印刷ジョブや各種制御コマンドを生成して、送受信部２１４によってプリンター３に送信させる。この印刷ジョブには、印刷実行を指示する印刷指示コマンドと、印刷用データとが含まれ、印刷指示コマンドとともに他のコマンドを含ませることも可能である。送受信部２１４は、プリンター３との通信を行うためのポート（ここではＬＡＮポート）を介して、ＡＰＩ（Application Program Interface）の指示に応じてプリンター３に各種コマンドを送信したり、プリンター３から情報を受信したりする。例えば、送受信部２１４は、プリンター３から送信されたステータスデータやレスポンスの受信を行う。送受信部２１４を介して受信されたデータは、ＡＰＩを介してプリンタードライバー実行部２１０の各部へ通知される。
【００３２】
また、リセット手段としてのコマンド送信制御部２１１は、プリンター３が所定の条件を満たす場合に、リセットコマンドを生成し、生成したリセットコマンドを送受信部２１４により送信させる。ここで、コマンド送信制御部２１１がリセットコマンドを生成する条件は、状態判定部２１２（詳細は後述する）によりプリンター３がエラー状態であると判定された場合、又は、プリンター３に所定のコマンドを送信し、その送信したコマンドに対するプリンター３からのレスポンスを確認部２１３（詳細は後述する）により確認した際に、コマンドから想定されるレスポンスとは異なる場合である。したがって、記録システム１では、プリンター３から通知されるステータスデータではプリンター３はエラー状態でないが、実際にはなんらかのエラーが発生しているためホストコンピューター２からのレスポンスに答えられない場合であっても、プリンター３のリセットを行うことができ、プリンター３のリセットを適切に行うことができる。
【００３３】
状態判定手段としての状態判定部２１２は、プリンター３より通知されたステータスデータをもとに、プリンター３がエラー状態であるか否かを判定する。具体的には、状態判定部２１２は、ステータースデータとして送信されたステータスコードから一意に定まるプリンター３の状態を取得する。このステータスコードによるプリンター３の状態の取得は、ステータスコードが示すプリンター３の状態が予め設定されているテーブルデータなどを参照して行う。このとき状態判定部２１２は、ステータスコードが所定のエラー状態を示すエラーコード（エラー情報）とマッチするか否かをもとに、プリンター３がエラー状態であるか否かを判定する。また、状態判定部２１２は、上述したテーブルデータを参照するなどして、プリンター３が印刷中である場合などの他の状態を判定してもよい。
【００３４】
確認手段としての確認部２１３は、プリンター３に所定のコマンドを送信し、そのコマンドに対するプリンター３からのレスポンスを確認する。具体的には、プリンター３が所定レスポンスを返信する制御コマンドを生成し、生成した制御コマンドを送受信部２１４により送信させる。次いで、確認部２１３は、送受信部２１４で受信されたプリンター３からのレスポンスが、送信した制御コマンドから想定されたものであるか否かを確認する。確認部２１３が生成する制御コマンドとしては、機器のＩＤ等の設定情報を返信させるコマンドの他、単に正しくデータが受信されたことを示すアクノリッジデータを返信させるコマンドなどがある。確認部２１３は、設定情報を返信させるコマンドをプリンター３へ送信した場合は、プリンター３からのレスポンスで設定情報が得られた場合に、想定されたレスポンスが得られたものとする。また、確認部２１３は、アクノリッジデータを返信させるコマンドをプリンター３へ送信した場合は、プリンター３からのレスポンスで要求したアクノリッジデータが得られた場合に、想定されたレスポンスが得られたものとする。
【００３５】
上述のように、プリンター３はオートステータスバックの機能によって、動作状態（状態）が変化すると、この状態変化をトリガーとしてステータスデータを送信する。このためプリンター３の動作中は、何度かのステータスデータを受信することとなる。ステータスデータを受信していない状態が所定時間以上続いた場合には、プリンター３の動作状態が変化しないまま時間が経過しているか、何らかのエラーにより、ステータスコードの検出やステータスデータの送信に支障を来していることになる。また、プリンター３の正常動作中に、動作状態が変化しないまま経過する時間は概ね決まっており、極端に長い時間、動作状態が変化しない場合は何らかのエラーが発生した可能性がある。そこで、確認部２１３は、プリンター３から所定時間以上ステータスデータを受信していない場合に、上記所定のコマンドを送信する。これにより、ステータスデータの受信状態に基づいて、無駄なく、かつ効率よく、プリンター３の動作状態の確認を行うことができる。
【００３６】
次に、プリンタードライバー実行部２１０により行われる処理を具体的に説明する。
図３は、プリンタードライバー実行部２１０の動作を示すフローチャートである。この図３に示す処理は、アプリケーション実行部２０１がプリンタードライバー実行部２１０をＡＰＩなどを介して呼び出すことで開始される。なお、アプリケーション実行部２０１が呼び出しを行うタイミングは、任意であってよく、例えば操作画面等のユーザーインターフェースを介してリセット指示等をユーザーから受け付けた時点に開始してもよいし、一定の時間間隔で呼び出しを行ってもよい。
【００３７】
処理が開始されると、プリンタードライバー実行部２１０の状態判定部２１２は、送受信部２１４を介してプリンター３より受信されたステータスデータをもとに、そのステータスデータにエラーコード（エラー情報）が含まれているか否かを判定する（ステップＳ１）。エラー情報がある場合（ステップＳ１；Ｙｅｓ）はプリンター３にエラーが発生していることから、コマンド送信制御部２１１は、プリンター３をリセットさせるリセットコマンドを生成し、生成したリセットコマンドを送受信部２１４により送信させるプリンターリセット処理を行う（ステップＳ９）。
【００３８】
一方、プリンター３より受信されたステータスデータにエラー情報がない場合（ステップＳ１；Ｎｏ）、状態判定部２１２は、プリンター３より受信されたステータスデータをもとに、プリンター３が印刷中であるか否かを判定する（ステップＳ２）。ここで印刷中である場合（ステップＳ２；Ｙｅｓ）、プリンタードライバー実行部２１０は、リセット不要を示す戻り値を設定して（ステップＳ１０）、処理を終了する。すなわち、プリンター３が印刷中である場合は、リセットコマンドがプリンター３へ送信されない。したがって、記録システム１では、印刷中のプリンター３に対してユーザーが操作画面等から不用意にリセットを指示した場合であっても、リセットが行われることがない。
【００３９】
また、印刷中でない場合（ステップＳ２；Ｎｏ）、確認部２１３は、プリンター３から最後の（直近の）ステータスデータを受信してから現在までの経過時間が、所定時間内であるか否かを判別する（ステップＳ３）。ここで、ステータスデータを受信してから所定時間内である場合（ステップＳ３；Ｙｅｓ）、ステップＳ１０へ移行する。また、ステータスデータを受信してから所定時間以上が経過した場合（ステップＳ３；Ｎｏ）、確認部２１３は、デバイス情報（例えば機器のＩＤ等）を取得するためのコマンドを送受信部２１４よりプリンター３に送信させる（ステップＳ４）。次いで、確認部２１３は、プリンター３からのレスポンスが来るまで一定時間待つためのループ処理（ステップＳ５〜Ｓ７）を行い、コマンドに対するレスポンスとしてプリンター３から受け取ったデータを解析する（ステップＳ６）。次いで、確認部２１３は、送信したコマンドから期待されるレスポンス、すなわち想定されたレスポンスを受け取ったか否かを判定する（ステップＳ８）。具体的には、デバイス情報を取得するためのコマンドに対するレスポンスとして、プリンター３からデバイス情報が取得されたか否かを判定する。なお、本実施形態では、プリンター３からのレスポンスとしてデバイス情報を確認する処理を例示したが、他のレスポンス（例えばアクノリッジデータ）を確認する処理であってもよい。
【００４０】
ステップＳ８において想定されたレスポンスがあった場合、プリンタードライバー実行部２１０は、リセット不要を示す戻り値を設定して（ステップＳ１０）、処理を終了する。すなわち、送信したコマンドに対してプリンター３より想定されたレスポンスがあった場合は、プリンター３は正常に動作していることから、リセットコマンドはプリンター３へ送信されない。
【００４１】
なお、ステップＳ８において想定されたレスポンスがなかった場合、コマンド送信制御部２１１は、プリンター３をリセットさせるリセットコマンドを生成し、生成したリセットコマンドを送受信部２１４により送信させるプリンターリセット処理を行う（ステップＳ９）。したがって、ステータスデータではプリンター３はエラー状態でないが、プリンター３からのレスポンスが想定されるレスポンスとは異なり、実際にはなんらかのエラーが発生している場合であっても、プリンター３のリセットを行うことができ、プリンター３のリセットを適切に行うことができる。
【００４２】
また、ステップＳ９において、コマンド送信制御部２１１がプリンターリセット処理で生成するリセットコマンドは、プリンター３を再起動により初期化を行うソフトリセットのコマンドとすることができる。この場合は、プリンター３は再起動による初期化が行われることとなる。
さらに、コマンド送信制御部２１１は、上述したソフトリセットのコマンドをプリンター３へ送信してソフトリセットを行った後に、再びＳ８の処理を行ってリセットコマンドを送信する場合は、プリンター３の設定を初期状態に戻すハードリセットを実行させるハードリセットのコマンドを送信することも可能である。具体的には、コマンド送信制御部２１１は、プリンターリセット処理でソフトリセットのコマンドを送信したことを示すデータをＲＡＭ２３の所定領域に記憶する。そして、続いてプリンターリセット処理を行う際に、ＲＡＭ２３の所定領域を読み出し、ソフトリセットのコマンドを送信したこと示すデータが記憶されている場合にハードリセットのコマンドを送信する。このようにソフトリセットを行った後に、再びリセットコマンドをプリンター３に送信する場合にはハードリセットのコマンドを送信することで、ソフトリセットではエラー状態が回復しないプリンター３のリセットを確実に行うことができる。
【００４３】
以上説明したように、本発明を適用した実施形態に係る記録システム１によれば、プリンター３とホストコンピューター２とが通信可能に接続され、ホストコンピューター２から送信されるコマンドに基づきプリンター３が制御される記録システム１であって、プリンター３は、主制御部４０８によって、少なくとも状態の変化が発生したことをトリガーとして自装置の状態を示すステータスデータをホストコンピューター２へ通知し、ホストコンピューター２は、プリンター３から通知されたステータスデータをもとに、状態判定部２１２の機能によってプリンター３がエラー状態であるか否かを判定し、確認部２１３の機能によって、プリンター３に所定のコマンドを送信して当該コマンドに対するプリンター３からのレスポンスを確認し、状態判定部２１２によりプリンター３がエラー状態であると判定された場合、又は、確認部２１３により送信したコマンドに対するレスポンスが、送信したコマンドから想定される、或いは送信したコマンドに対応するレスポンスでない場合に、コマンド送信制御部２１１の機能によって、プリンター３をリセットするリセットコマンドを送信する構成とし、確認部２１３は、プリンター３から、所定時間、ステータスデータを受信しない場合に、上記所定のコマンドを送信する。これにより、プリンター３がエラーであることを示すステータスデータを送信した場合に加え、プリンター３がエラー状態を示すステータスデータを送信していないが、実際にはプリンター３にエラーが発生している場合にも、プリンター３をリセットすることができ、プリンター３のリセットを適切に行うことができる。また、プリンター３が状態の変化をトリガーとして送信するステータスデータの受信状態に基づき、プリンター３のエラーの発生を予測し、コマンドを送信するので、無駄なく、効率よくプリンター３のエラーを検出し、リセットできる。
【００４４】
また、ホストコンピューター２のコマンド送信制御部２１１が送信するリセットコマンドは、再起動により初期化を行うソフトリセットをプリンター３に実行させるコマンドであるため、プリンター３がエラー状態である場合、又は、確認されたレスポンスが送信されたコマンドから想定されるレスポンスでない場合において、プリンター３を再起動により初期化することができる。
また、ソフトリセットを指示するリセットコマンドをプリンター３に実行させた後に、再びリセットコマンドを送信する場合、コマンド送信制御部２１１は、プリンター３の設定を予め定められた初期状態に戻すハードリセットリセットを実行させるリセットコマンドを送信するので、ソフトリセットをプリンター３に実行させた後に、リセットが必要になった場合には、プリンター３の設定を予め定められた初期状態に戻すことができる。また、ソフトリセットは比較的短時間で実行可能であり、予め設定した初期状態に戻すだけで済むため、工場出荷状態に戻すハードリセットよりも実行後の再設定等の負担が軽い。このため、最初に送信するリセットコマンドを、ソフトリセットを指示するコマンドとすることで、リセット後の操作の負荷が軽くて済むという利点がある。さらに、再度リセットコマンドを送信する場合にはハードリセットをさせることで、ソフトリセットでも解消しない異常を速やかに解消できる。
【００４５】
また、ホストコンピューター２の状態判定部２１２は、プリンター３から通知されたステータスデータをもとに、プリンター３が印刷中であるか否かを判定し、コマンド送信制御部２１１は、プリンター３が印刷中である場合にはリセットコマンドを送信しないので、プリンター３が印刷中にリセットが行われることを防止できる。
【００４６】
また、プリンター３は、異常検出部４０６によって、自装置でエラーが発生したことを検出し、異常検出部４０６によりエラーが検出された場合に、主制御部４０８の機能によってステータスデータを通知するので、エラー状態を示すステータスデータが送信されないが、実際にはプリンター３にエラーが発生している場合であっても、プリンター３のリセットを適切に行うことができる。
【００４７】
なお、上記実施形態は本発明を適用した一具体例を示すものであり、本発明はこれに限定されるものではない。例えば、プリンター３がサーマルプリンターである場合を例に挙げて説明したが、本発明を適用可能な記録装置は、文字や画像を記録できる装置であれば特に制限されず、印刷ヘッドから記録媒体に複数色のインクを吐出することで文字や画像を形成するインクジェットプリンター、記録ワイヤーを突出する記録ヘッドにより記録媒体にドットを形成して印刷するドットインパクトプリンター、レーザープリンター等にも本発明を適用可能であり、他の装置に組み込まれるプリンターにも本発明を適用可能である。また、記録システム１を、ホストコンピューター２を１台又は複数台備える構成や、プリンター３を１台又は複数台備える構成とすることも、勿論可能である。
また、上記実施形態では、ホストコンピューター２のＣＰＵ２１が記憶部２６に記憶された各種プログラムを実行し、プリンター３のＣＰＵ３１がフラッシュＲＯＭ３２に記憶された各種プログラムを実行することにより、図２に示す各部の機能を実現する構成として説明したが、これらの各種プログラムは、他の記憶装置、記憶媒体や外部装置の記憶媒体に記憶させ、ホストコンピューター２のＣＰＵ２１或いはプリンター３のＣＰＵ３１により読み出して実行する構成としても良い。さらに、これらのプログラム１０５Ａ、ホストコンピューター２或いはプリンター３が通信ネットワークを介して接続された他の装置からダウンロードして実行しても良い。
【符号の説明】
【００４８】
１…記録システム、２…ホストコンピューター（記録制御装置）、３…プリンター（記録装置）、２１…ＣＰＵ、２６…記憶部、２６Ｃ…プリンタードライバー、２６Ｄ…設定データ、３１…ＣＰＵ、３６…印刷制御部、２１０…プリンタードライバー実行部、２１１…コマンド送受信制御部（リセット手段）、２１２…状態判定部（状態判定手段）、２１３…確認部（確認手段）、４０３…コマンド解析部、４０６…異常検出部（検出手段）、４０８…主制御部（通知手段）。
【図１】
2012190221.tif 000003
【図２】
2012190221.tif 000004
【図３】
2012190221.tif 000005