説明

記録システム、記録制御装置、制御方法、及び、プログラム

【課題】記録装置と外部装置とが通信可能に接続された構成において、記録装置に接続された外部装置の動作状態の異常を記録装置において正確に検出できるようにする。
【解決手段】ホストコンピューター2は、少なくとも状態の変化が発生したことをトリガーとしてプリンター3から通知されたステータスデータをもとに、プリンター3がエラー状態であるか否かを判定する状態判定部212と、プリンター3に所定のコマンドを送信してそのコマンドに対するプリンター3からのレスポンスを確認する確認部213と、プリンター3がエラー状態であると判定した場合、又は、確認されたレスポンスがコマンドから想定されるレスポンスでない場合に、プリンター3をリセットするコマンド送信制御部211とを備え、確認部213は、所定時間、プリンター3からステータスデータを受信しない場合に所定のコマンドを送信する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、記録システム、記録制御装置、制御方法、及び、プログラムに関する。
【背景技術】
【0002】
従来、プリンター等の記録装置に上位ホスト装置等の記録制御装置が接続された記録システムでは、記録制御装置がプリンタードライバー等のプログラムを実行することで、記録装置に制御コマンドを送信し、記録装置の記録(印刷)にかかる制御を行っている。この記録制御装置では、記録装置をリセットするAPI(Application Program Interface)により、記録装置から送信される自身のステータスを示すデータをもとに、記録装置のエラー状態を監視しながらリセットを行うタイミングを制御している(特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2003−131857号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上述した従来技術では、記録装置からエラー状態を示すデータを受信していないが、実際には記録装置にエラーが発生している場合にリセットが行われないなど、記録装置のリセットが適切に行われないことがあった。
本発明は、上述した事情に鑑みてなされたものであり、記録装置と記録制御装置とが通信可能に接続された記録システムにおいて、記録装置のリセットを適切に行うことができるようにすることを目的とする。
【課題を解決するための手段】
【0005】
上記課題を解決するため、本発明は、記録装置と記録制御装置とが通信可能に接続され、前記記録制御装置から送信されるコマンドに基づき前記記録装置が制御される記録システムであって、前記記録装置は、自装置の状態を示すステータスデータを、少なくとも状態の変化が発生したことをトリガーとして、前記記録制御装置へ通知する通知手段を備え、前記記録制御装置は、前記記録装置から通知された前記ステータスデータをもとに、前記記録装置がエラー状態であるか否かを判定する状態判定手段と、前記記録装置に所定のコマンドを送信して当該コマンドに対する前記記録装置からのレスポンスを確認する確認手段と、前記状態判定手段により前記記録装置がエラー状態であると判定された場合、又は、前記確認手段により確認された前記レスポンスが、前記確認手段によって送信された前記コマンドから想定されるレスポンスでない場合に、前記記録装置をリセットするリセットコマンドを送信するリセット手段とを備え、前記確認手段は、所定時間、前記記録装置から前記ステータスデータを受信しない場合、前記記録装置に前記所定のコマンドを送信することを特徴とする。
本発明によれば、記録制御装置が、記録装置から状態の変化をトリガーとして通知されたステータスデータをもとに記録装置がエラー状態であるか否かを判定し、エラー状態であると判定した場合に記録装置にリセットコマンドを送信する一方、記録装置に所定のコマンドを送信してそのコマンドに対する記録装置からのレスポンスを確認し、このレスポンスが確認の際に送信したコマンドから想定されるレスポンスでない場合に、記録装置にリセットコマンドを送信する。これにより、記録装置が、エラーであることを示すステータスデータを送信した場合に加え、記録装置がエラー状態を示すステータスデータを送信していないが、実際には記録装置にエラーが発生している場合、例えば記録装置が自装置の状態の変化を検知できない場合などにも、記録装置をリセットすることができ、記録装置のリセットを適切に行うことができる。
【0006】
また、本発明は、上記記録システムにおいて、リセットコマンドは、再起動により初期化を行う第1のリセットを記録装置に実行させるコマンドであることを特徴とする。
本発明によれば、記録装置がエラー状態である場合、又は、確認されたレスポンスが送信されたコマンドから想定されるレスポンスでない場合において、記録装置を再起動により初期化することができる。
【0007】
また、本発明は、上記記録システムにおいて、前記第1のリセットを前記記録装置に実行させた後に、再び前記リセットコマンドを送信する場合、前記記録装置の設定を予め定められた初期状態に戻す第2のリセットを実行させるリセットコマンドを送信することを特徴とする。
本発明によれば、第1のリセットを記録装置に実行させた後に、記録装置がエラー状態である場合、又は、確認されたレスポンスが送信されたコマンドから想定されるレスポンスでない場合が継続し、再びリセットコマンドを送信する場合に、記録装置の設定を予め定められた初期状態に戻すことができる。
【0008】
また、本発明は、上記記録システムにおいて、前記状態判定手段は、前記記録装置から通知された前記ステータスデータをもとに、前記記録装置が印刷中であるか否かを判定し、前記リセット手段は、前記記録装置が印刷中である場合には前記リセットコマンドを送信しないことを特徴とする。
本発明によれば、記録装置が印刷中にリセットが行われることを防止できる。
【0009】
また、本発明は、上記記録システムにおいて、前記記録装置は、自装置でエラーが発生したことを検出する検出手段を更に備え、前記通知手段は、前記検出手段により前記エラーが検出されたことをトリガーとして、前記ステータスデータを通知することを特徴とする。
本発明によれば、記録装置でエラーが検出された場合にこれをトリガーとしてステータスデータの通知が行われる構成、例えば自動状態送信を行う記録装置を有する記録システムにおいて、エラー状態を示すステータスデータが送信されないが、実際には記録装置にエラーが発生している場合であっても、記録装置のリセットを適切に行うことができる。
【0010】
また、上記課題を解決するため、本発明は、通信可能に接続された記録装置から、少なくとも状態の変化が発生したことをトリガーとして通知された、当該記録装置の状態を示すステータスデータをもとに、前記記録装置がエラー状態であるか否かを判定する状態判定手段と、前記記録装置に所定のコマンドを送信して当該コマンドに対する前記記録装置からのレスポンスを確認する確認手段と、前記記録装置がエラー状態である場合、又は、確認された前記レスポンスが送信された前記コマンドから想定されるレスポンスでない場合に、前記記録装置をリセットするコマンドを送信するリセット手段と、を備え、前記確認手段は、所定時間、前記記録装置から前記ステータスデータを受信しない場合、前記記録装置に前記所定のコマンドを送信することを特徴とする記録制御装置である。
本発明によれば、記録制御装置が、記録装置から状態の変化をトリガーとして通知されたステータスデータをもとに記録装置がエラー状態であるか否かを判定し、エラー状態であると判定した場合に記録装置にリセットコマンドを送信する一方、記録装置に所定のコマンドを送信してそのコマンドに対する記録装置からのレスポンスを確認し、このレスポンスが確認の際に送信したコマンドから想定されるレスポンスでない場合に、記録装置にリセットコマンドを送信する。これにより、記録装置がエラーであることを示すステータスデータを送信した場合に加え、記録装置がエラー状態を示すステータスデータを送信していないが、実際には記録装置にエラーが発生している場合、例えば記録装置が自装置の状態の変化を検知できない場合などにも、記録装置をリセットすることができ、記録装置のリセットを適切に行うことができる。
【0011】
また、上記課題を解決するため、本発明は、記録装置と通信可能に接続された記録制御装置が実行する制御方法であって、前記記録装置から、少なくとも状態の変化が発生したことをトリガーとして通知された、当該記録装置の状態を示すステータスデータをもとに、前記記録装置がエラー状態であるか否かを判定し、前記記録装置に所定のコマンドを送信して当該コマンドに対する前記記録装置からのレスポンスを確認し、前記記録装置がエラー状態である場合、又は、確認された前記レスポンスが送信された前記コマンドから想定されるレスポンスでない場合に、前記記録装置をリセットするコマンドを送信し、さらに、所定時間、前記記録装置から前記ステータスデータを受信しない場合、前記記録装置に前記所定のコマンドを送信することを特徴とする。
本発明によれば、記録制御装置が、記録装置から通知されたステータスデータをもとに記録装置がエラー状態であるか否かを判定し、エラー状態であると判定した場合に記録装置にリセットコマンドを送信する一方、記録装置に所定のコマンドを送信してそのコマンドに対する記録装置からのレスポンスを確認し、このレスポンスが確認の際に送信したコマンドから想定されるレスポンスでない場合に、記録装置にリセットコマンドを送信する。これにより、記録装置がエラーであることを示すステータスデータを送信した場合に加え、記録装置がエラー状態を示すステータスデータを送信していないが、実際には記録装置にエラーが発生している場合、例えば記録装置が自装置の状態の変化を検知できない場合などにも、記録装置をリセットすることができ、記録装置のリセットを適切に行うことができる。
【0012】
また、上記課題を解決するため、本発明は、記録装置と通信可能に接続された記録制御装置が実行するプログラムであって、前記記録装置から、少なくとも状態の変化が発生したことをトリガーとして通知された、当該記録装置の状態を示すステータスデータをもとに、前記記録装置がエラー状態であるか否かを判定し、前記記録装置に所定のコマンドを送信して当該コマンドに対する前記記録装置からのレスポンスを確認し、前記記録装置がエラー状態である場合、又は、確認された前記レスポンスが送信された前記コマンドから想定されるレスポンスでない場合に、前記記録装置をリセットするコマンドを送信し、さらに、所定時間、前記記録装置から前記ステータスデータを受信しない場合、前記記録装置に前記所定のコマンドを送信することを特徴とする。
本発明によれば、記録制御装置が、記録装置から通知されたステータスデータをもとに記録装置がエラー状態であるか否かを判定し、エラー状態であると判定した場合に記録装置にリセットコマンドを送信する一方、記録装置に所定のコマンドを送信してそのコマンドに対する記録装置からのレスポンスを確認し、このレスポンスが確認の際に送信したコマンドから想定されるレスポンスでない場合に、記録装置にリセットコマンドを送信する。これにより、記録装置がエラーであることを示すステータスデータを送信した場合に加え、記録装置がエラー状態を示すステータスデータを送信していないが、実際には記録装置にエラーが発生している場合、例えば記録装置が自装置の状態の変化を検知できない場合などにも、記録装置をリセットすることができ、記録装置のリセットを適切に行うことができる。
【発明の効果】
【0013】
本発明によれば、記録装置と記録制御装置とが通信可能に接続された記録システムにおいて、記録装置のリセットを適切に行うことができる。
【図面の簡単な説明】
【0014】
【図1】実施形態にかかる記録システムの構成を示すブロック図である。
【図2】ホストコンピューターとプリンターの機能ブロック図である。
【図3】プリンタードライバーにより実行される処理のフローチャートである。
【発明を実施するための形態】
【0015】
以下、図面を参照して本発明の実施形態について説明する。図1は、実施形態にかかる記録システム1の構成を示すブロック図である。
記録システム1は、紙、コーティング紙または合成樹脂シート等からなる記録媒体としてのカットシートや連続シートに、文字や画像を印刷(記録)する記録装置としてのプリンター3と、プリンター3を制御して記録を実行させる記録制御装置としてのホストコンピューター2とを、通信線10を介して相互に通信可能に接続して構成される。本実施形態ではホストコンピューター2とプリンター3とを一対一で接続した構成を例示するが、一台のホストコンピューター2に接続されるプリンター3の数に制限はなく、多数のプリンター3をホストコンピューター2に接続してもよい。また、複数のホストコンピューター2に1台のプリンター3を接続したものでもよい。通信線10は、ホストコンピューター2とプリンター3とを一対一で接続する通信ケーブルや無線通信回線の他、一台のホストコンピューター2に対し多数のプリンター3を接続可能な有線または無線のLAN、または、公衆回線網を介した広域ネットワークにより構成される。また、プリンター3の記録方式についても特に制限はなく、本実施形態では一例として、プリンター3を、発熱素子を備えたラインサーマルヘッドにより感熱ロール紙に印刷するサーマルプリンターで構成した場合について説明する。
【0016】
図1に示すように、ホストコンピューター2は、主として、CPU21と、不揮発性メモリーであるROM22と、揮発性メモリーであるRAM23と、キーボード等の入力デバイスに接続された入力部24と、表示装置等の出力デバイスに接続された出力部25と、大規模記憶装置としての記憶部26と、通信I/F27とを備えている。ホストコンピューター2は、CPU21が記憶部26に記憶されたオペレーティングシステム26A、アプリケーションプログラム26B、及びプリンタードライバー26Cを実行しながら、通信I/F27を介してプリンター3に各種コマンドや印刷データを出力することにより、プリンター3を制御する。ホストコンピューター2は、プリンター3に対し、印刷実行を指示するコマンドと印刷用のデータとを含む印刷ジョブを送信して、印刷を行わせる。
【0017】
また、ホストコンピューター2は、プリンター3から通知された、プリンターの状態を示すステータスデータをもとに、プリンター3がエラー状態である場合にプリンター3をリセットするリセットコマンドをプリンター3に送信する。また、ホストコンピューター2は、プリンター3がエラー状態でない場合であっても、プリンター3に送信したコマンドから想定されるレスポンスがなかった場合にはリセットコマンドをプリンター3に送信する。このリセットコマンドの送信の詳細については後述する。
【0018】
プリンター3は、主として、CPU31と、書き換え可能な不揮発性メモリーであるフラッシュROM32と、揮発性メモリーであるRAM33と、LEDランプ34と、通信I/F35と、印刷ヘッド38が備える発熱素子に適宜通電させて記録媒体としての感熱ロール紙に熱エネルギーを与え、有色のドットを形成させて記録を行う印刷制御部36と、用紙搬送機構37と、印刷ヘッド38とを備えている。
【0019】
プリンター3は、CPU31がフラッシュROM32に記憶されたファームウェアを実行しながら、通信I/F35を介してホストコンピューター2と通信を行うことにより、各種コマンドや印刷データを受信する。そして、印刷制御部36が各種コマンドや印刷データに基づき、用紙搬送機構37を介して用紙を搬送しつつ印刷ヘッド38を駆動して用紙への印刷を実行し、レシートやクーポンを発券する。また、プリンター3は、発券時や、エラーの発生時等にはLEDランプ5を点灯または点滅させたり、スピーカー(図示略)から音声を報知したりするなどして、ユーザーに各種情報を視覚的または聴覚的に通知する。また、プリンター3は、通信I/F35における通信状態、用紙搬送機構37における搬送状態、印刷ヘッド38におけるインク詰まりなどの印字状態等の自装置の状態をモニターし、その状態を示すステータスデータをホストコンピューター2に通知する。このステータスデータの通知の詳細については後述する。
【0020】
図2は、ホストコンピューター2とプリンター3の機能ブロック図である。図2に示すホストコンピューター2の各部は、CPU21(図1参照)が記憶部26に記憶された各種プログラムを実行することにより、ソフトウェアとハードウェアとの協働により実現される。また、プリンター3の各部は、CPU31によりフラッシュROM32に記憶された各種プログラムを実行することにより、ソフトウェアとハードウェアとの協働により実現される。
【0021】
図2に示すように、プリンター3は、ホストコンピューター2から送信される各種コマンドや印刷データを受信する受信部401と、受信部401が受信した各種コマンドや印刷データを一時的に保持する受信バッファー402が設けられている。受信バッファー402によって受信されたデータは、コマンド解析部403によって解析され、制御コマンドの場合は制御コマンドバッファー404に、印刷データの場合には印刷バッファー405にDMA転送等により転送される。印刷バッファー405に一時保存された印刷データは、データ展開処理が行われてデータ変換され、最終的には印刷ヘッド38のノズル列に対応したドットパターンデータが生成されて印刷バッファー405に記憶される。一方、制御コマンドバッファー404に一時保存された制御コマンドデータは、主制御部408によって読み出されて、記録媒体としての用紙カット動作など制御コマンドに応じた処理が実行される。
【0022】
ホストコンピューター2から送信される制御コマンドには、プリンター3をリセットするリセットコマンドが含まれる。プリンター3のリセットには、再起動により初期化を行うソフトリセット(第1のリセット)と、プリンター3の設定を予め定められた初期状態(例えば工場出荷状態)に戻すハードリセット(第2のリセット)とがある。リセットコマンドには、上述したソフトリセット又はハードリセットの指示を示すフラグ等の情報が含まれている。主制御部408は、制御コマンドバッファー404より読み出したリセットコマンドがソフトリセットを指示している場合、プリンター3を再起動する処理を実行する。また、主制御部408は、制御コマンドバッファー404より読み出したリセットコマンドがハードリセットを指示している場合、フラッシュROM32の所定領域に記憶された初期状態の設定データを読み出して、プリンター3の設定を初期状態に戻した後に再起動する処理を実行する。
【0023】
また、ホストコンピューター2から送信される制御コマンドには、プリンター3での処理を即時に行わせるリアルタイム制御コマンド(即時実行制御コマンド)がある。プリンター3では、通常のコマンドが制御コマンドバッファー404に記憶された順に実行されるのに対し、リアルタイム制御コマンドは、受信バッファー402においてコマンド解析部403により検出されると、他の処理に優先して直ちに実行される。
【0024】
また、ホストコンピューター2から送信される制御コマンドには、所定のレスポンスをホストコンピューター2へ返信するコマンドがある。具体的には、機器のID等の設定情報を返信するコマンドの他、単に正しくデータが受信されたことを示すアクノリッジデータを返信するコマンドなどがある。主制御部408は、返信を要するコマンドを制御コマンドバッファー404より読み出した場合は、そのコマンドに対応したレスポンスを送信部414を介してホストコンピューター2へ返す。ホストコンピューター2では、プリンター3に送信したコマンドに対するレスポンスを確認することで、プリンター3にエラーが発生していることを認識できる。例えば、コマンドの送信に対して正しくデータが受信されたことを示すアクノリッジデータが遅れたり、返ってこない場合には、通信エラー等のエラーが生じていることを認識できる。また、機器のID等の設定情報を返信させるコマンドに対して、コマンドに対応した設定情報が得られなかった場合には、設定異常等のエラーが生じていることを認識できる。
【0025】
検出手段としての異常検出部406は、プリンター3の各部が正常に動作しているかどうかを監視し、プリンター3でエラーが発生したことを検出する。具体的には、異常検出部406は、タイマー409でのカウントをもとに、所定の時間間隔(例えば数msec)でプリンター3の各部からエラーの種別を示すエラーコードが出力されているか否かを監視し、エラーコードの検出をもってエラーの発生を検出している。異常検出部406は、エラーの発生を検出した場合には検出したエラーコードを主制御部408へ出力する。主制御部408は、異常検出部406からのエラーコードをもとに、プリンター3で発生しているエラーの種別を識別できる。
【0026】
通知手段としての主制御部408は、自装置の状態を示すステータスデータを、送信部414を介してホストコンピューター2へ通知する。具体的には、主制御部408は、制御コマンドデータに応じた処理の状態(例えば印刷中、用紙搬送中など)、制御コマンドデータを受付中である待ち状態、異常検出部406から出力されたエラーコードが示すプリンター3のエラー状態などを一意に示すステータスコードを生成し、生成したステータスコードをステータスデータとしてホストコンピューター2へ通知する。したがって、ホストコンピューター2では、プリンター3より通知されたステータスコードから、そのプリンター3の状態(印刷中、用紙搬送中、エラー種別など)を認識できる。
【0027】
主制御部408は、タイマー409でのカウントをもとに、所定の時間間隔(例えば数sec)でステータスデータをホストコンピューター2へ通知してもよいが、直近に生成したステータスコードをRAM33などに一時記憶しておき、そのステータスコードに変化があった場合にホストコンピューター2へ通知する自動状態送信機能(オートステータスバック)を有する。このオートステータスバック機能により、主制御部408は、自装置のステータスに変化があった場合に、これをトリガーとしてステータスデータを通知する。例えば、異常検出部406によってエラーコードが検出された場合に、そのエラーを示すステータスデータをホストコンピューター2へ通知する。また、ホストコンピューター2から送信された印刷データの印刷が完了した場合、オフラインに移行した場合などにもオートステータスバックによりステータスデータをホストコンピューター2へ送信する。
【0028】
一方、ホストコンピューター2は、記憶部26に記憶されたオペレーティングシステム26Aを実行することにより、ホストコンピューター2の基本的機能を実現する。ホストコンピューター2は、記憶部26に記憶されたアプリケーションプログラム26Bを実行するアプリケーション実行部201と、プリンタードライバー26Cを実行するプリンタードライバー実行部210と、プリンター3との間で印刷ジョブ及びコマンドを送受信する送受信部214とを備える。
【0029】
アプリケーション実行部201は、アプリケーションプログラムを実行してデータを処理し、処理されたデータを随時出力する。また、アプリケーション実行部201は、アプリケーションプログラムの実行中に印刷の指示がなされた場合に、印刷実行の指示と、印刷すべきデータとを、印刷用データ(記録用データ)としてプリンタードライバー実行部210に出力する。
【0030】
プリンタードライバー実行部210は、コマンド送信制御部211、状態判定部212、確認部213、及び、プリンター3との通信を行う送受信部214を備えている。
【0031】
コマンド送信制御部211は、アプリケーション実行部201がアプリケーションプログラムの実行により出力する印刷の指示(印刷用データ)に基づき、この印刷用データを印刷するための印刷ジョブや各種制御コマンドを生成して、送受信部214によってプリンター3に送信させる。この印刷ジョブには、印刷実行を指示する印刷指示コマンドと、印刷用データとが含まれ、印刷指示コマンドとともに他のコマンドを含ませることも可能である。送受信部214は、プリンター3との通信を行うためのポート(ここではLANポート)を介して、API(Application Program Interface)の指示に応じてプリンター3に各種コマンドを送信したり、プリンター3から情報を受信したりする。例えば、送受信部214は、プリンター3から送信されたステータスデータやレスポンスの受信を行う。送受信部214を介して受信されたデータは、APIを介してプリンタードライバー実行部210の各部へ通知される。
【0032】
また、リセット手段としてのコマンド送信制御部211は、プリンター3が所定の条件を満たす場合に、リセットコマンドを生成し、生成したリセットコマンドを送受信部214により送信させる。ここで、コマンド送信制御部211がリセットコマンドを生成する条件は、状態判定部212(詳細は後述する)によりプリンター3がエラー状態であると判定された場合、又は、プリンター3に所定のコマンドを送信し、その送信したコマンドに対するプリンター3からのレスポンスを確認部213(詳細は後述する)により確認した際に、コマンドから想定されるレスポンスとは異なる場合である。したがって、記録システム1では、プリンター3から通知されるステータスデータではプリンター3はエラー状態でないが、実際にはなんらかのエラーが発生しているためホストコンピューター2からのレスポンスに答えられない場合であっても、プリンター3のリセットを行うことができ、プリンター3のリセットを適切に行うことができる。
【0033】
状態判定手段としての状態判定部212は、プリンター3より通知されたステータスデータをもとに、プリンター3がエラー状態であるか否かを判定する。具体的には、状態判定部212は、ステータースデータとして送信されたステータスコードから一意に定まるプリンター3の状態を取得する。このステータスコードによるプリンター3の状態の取得は、ステータスコードが示すプリンター3の状態が予め設定されているテーブルデータなどを参照して行う。このとき状態判定部212は、ステータスコードが所定のエラー状態を示すエラーコード(エラー情報)とマッチするか否かをもとに、プリンター3がエラー状態であるか否かを判定する。また、状態判定部212は、上述したテーブルデータを参照するなどして、プリンター3が印刷中である場合などの他の状態を判定してもよい。
【0034】
確認手段としての確認部213は、プリンター3に所定のコマンドを送信し、そのコマンドに対するプリンター3からのレスポンスを確認する。具体的には、プリンター3が所定レスポンスを返信する制御コマンドを生成し、生成した制御コマンドを送受信部214により送信させる。次いで、確認部213は、送受信部214で受信されたプリンター3からのレスポンスが、送信した制御コマンドから想定されたものであるか否かを確認する。確認部213が生成する制御コマンドとしては、機器のID等の設定情報を返信させるコマンドの他、単に正しくデータが受信されたことを示すアクノリッジデータを返信させるコマンドなどがある。確認部213は、設定情報を返信させるコマンドをプリンター3へ送信した場合は、プリンター3からのレスポンスで設定情報が得られた場合に、想定されたレスポンスが得られたものとする。また、確認部213は、アクノリッジデータを返信させるコマンドをプリンター3へ送信した場合は、プリンター3からのレスポンスで要求したアクノリッジデータが得られた場合に、想定されたレスポンスが得られたものとする。
【0035】
上述のように、プリンター3はオートステータスバックの機能によって、動作状態(状態)が変化すると、この状態変化をトリガーとしてステータスデータを送信する。このためプリンター3の動作中は、何度かのステータスデータを受信することとなる。ステータスデータを受信していない状態が所定時間以上続いた場合には、プリンター3の動作状態が変化しないまま時間が経過しているか、何らかのエラーにより、ステータスコードの検出やステータスデータの送信に支障を来していることになる。また、プリンター3の正常動作中に、動作状態が変化しないまま経過する時間は概ね決まっており、極端に長い時間、動作状態が変化しない場合は何らかのエラーが発生した可能性がある。そこで、確認部213は、プリンター3から所定時間以上ステータスデータを受信していない場合に、上記所定のコマンドを送信する。これにより、ステータスデータの受信状態に基づいて、無駄なく、かつ効率よく、プリンター3の動作状態の確認を行うことができる。
【0036】
次に、プリンタードライバー実行部210により行われる処理を具体的に説明する。
図3は、プリンタードライバー実行部210の動作を示すフローチャートである。この図3に示す処理は、アプリケーション実行部201がプリンタードライバー実行部210をAPIなどを介して呼び出すことで開始される。なお、アプリケーション実行部201が呼び出しを行うタイミングは、任意であってよく、例えば操作画面等のユーザーインターフェースを介してリセット指示等をユーザーから受け付けた時点に開始してもよいし、一定の時間間隔で呼び出しを行ってもよい。
【0037】
処理が開始されると、プリンタードライバー実行部210の状態判定部212は、送受信部214を介してプリンター3より受信されたステータスデータをもとに、そのステータスデータにエラーコード(エラー情報)が含まれているか否かを判定する(ステップS1)。エラー情報がある場合(ステップS1;Yes)はプリンター3にエラーが発生していることから、コマンド送信制御部211は、プリンター3をリセットさせるリセットコマンドを生成し、生成したリセットコマンドを送受信部214により送信させるプリンターリセット処理を行う(ステップS9)。
【0038】
一方、プリンター3より受信されたステータスデータにエラー情報がない場合(ステップS1;No)、状態判定部212は、プリンター3より受信されたステータスデータをもとに、プリンター3が印刷中であるか否かを判定する(ステップS2)。ここで印刷中である場合(ステップS2;Yes)、プリンタードライバー実行部210は、リセット不要を示す戻り値を設定して(ステップS10)、処理を終了する。すなわち、プリンター3が印刷中である場合は、リセットコマンドがプリンター3へ送信されない。したがって、記録システム1では、印刷中のプリンター3に対してユーザーが操作画面等から不用意にリセットを指示した場合であっても、リセットが行われることがない。
【0039】
また、印刷中でない場合(ステップS2;No)、確認部213は、プリンター3から最後の(直近の)ステータスデータを受信してから現在までの経過時間が、所定時間内であるか否かを判別する(ステップS3)。ここで、ステータスデータを受信してから所定時間内である場合(ステップS3;Yes)、ステップS10へ移行する。また、ステータスデータを受信してから所定時間以上が経過した場合(ステップS3;No)、確認部213は、デバイス情報(例えば機器のID等)を取得するためのコマンドを送受信部214よりプリンター3に送信させる(ステップS4)。次いで、確認部213は、プリンター3からのレスポンスが来るまで一定時間待つためのループ処理(ステップS5〜S7)を行い、コマンドに対するレスポンスとしてプリンター3から受け取ったデータを解析する(ステップS6)。次いで、確認部213は、送信したコマンドから期待されるレスポンス、すなわち想定されたレスポンスを受け取ったか否かを判定する(ステップS8)。具体的には、デバイス情報を取得するためのコマンドに対するレスポンスとして、プリンター3からデバイス情報が取得されたか否かを判定する。なお、本実施形態では、プリンター3からのレスポンスとしてデバイス情報を確認する処理を例示したが、他のレスポンス(例えばアクノリッジデータ)を確認する処理であってもよい。
【0040】
ステップS8において想定されたレスポンスがあった場合、プリンタードライバー実行部210は、リセット不要を示す戻り値を設定して(ステップS10)、処理を終了する。すなわち、送信したコマンドに対してプリンター3より想定されたレスポンスがあった場合は、プリンター3は正常に動作していることから、リセットコマンドはプリンター3へ送信されない。
【0041】
なお、ステップS8において想定されたレスポンスがなかった場合、コマンド送信制御部211は、プリンター3をリセットさせるリセットコマンドを生成し、生成したリセットコマンドを送受信部214により送信させるプリンターリセット処理を行う(ステップS9)。したがって、ステータスデータではプリンター3はエラー状態でないが、プリンター3からのレスポンスが想定されるレスポンスとは異なり、実際にはなんらかのエラーが発生している場合であっても、プリンター3のリセットを行うことができ、プリンター3のリセットを適切に行うことができる。
【0042】
また、ステップS9において、コマンド送信制御部211がプリンターリセット処理で生成するリセットコマンドは、プリンター3を再起動により初期化を行うソフトリセットのコマンドとすることができる。この場合は、プリンター3は再起動による初期化が行われることとなる。
さらに、コマンド送信制御部211は、上述したソフトリセットのコマンドをプリンター3へ送信してソフトリセットを行った後に、再びS8の処理を行ってリセットコマンドを送信する場合は、プリンター3の設定を初期状態に戻すハードリセットを実行させるハードリセットのコマンドを送信することも可能である。具体的には、コマンド送信制御部211は、プリンターリセット処理でソフトリセットのコマンドを送信したことを示すデータをRAM23の所定領域に記憶する。そして、続いてプリンターリセット処理を行う際に、RAM23の所定領域を読み出し、ソフトリセットのコマンドを送信したこと示すデータが記憶されている場合にハードリセットのコマンドを送信する。このようにソフトリセットを行った後に、再びリセットコマンドをプリンター3に送信する場合にはハードリセットのコマンドを送信することで、ソフトリセットではエラー状態が回復しないプリンター3のリセットを確実に行うことができる。
【0043】
以上説明したように、本発明を適用した実施形態に係る記録システム1によれば、プリンター3とホストコンピューター2とが通信可能に接続され、ホストコンピューター2から送信されるコマンドに基づきプリンター3が制御される記録システム1であって、プリンター3は、主制御部408によって、少なくとも状態の変化が発生したことをトリガーとして自装置の状態を示すステータスデータをホストコンピューター2へ通知し、ホストコンピューター2は、プリンター3から通知されたステータスデータをもとに、状態判定部212の機能によってプリンター3がエラー状態であるか否かを判定し、確認部213の機能によって、プリンター3に所定のコマンドを送信して当該コマンドに対するプリンター3からのレスポンスを確認し、状態判定部212によりプリンター3がエラー状態であると判定された場合、又は、確認部213により送信したコマンドに対するレスポンスが、送信したコマンドから想定される、或いは送信したコマンドに対応するレスポンスでない場合に、コマンド送信制御部211の機能によって、プリンター3をリセットするリセットコマンドを送信する構成とし、確認部213は、プリンター3から、所定時間、ステータスデータを受信しない場合に、上記所定のコマンドを送信する。これにより、プリンター3がエラーであることを示すステータスデータを送信した場合に加え、プリンター3がエラー状態を示すステータスデータを送信していないが、実際にはプリンター3にエラーが発生している場合にも、プリンター3をリセットすることができ、プリンター3のリセットを適切に行うことができる。また、プリンター3が状態の変化をトリガーとして送信するステータスデータの受信状態に基づき、プリンター3のエラーの発生を予測し、コマンドを送信するので、無駄なく、効率よくプリンター3のエラーを検出し、リセットできる。
【0044】
また、ホストコンピューター2のコマンド送信制御部211が送信するリセットコマンドは、再起動により初期化を行うソフトリセットをプリンター3に実行させるコマンドであるため、プリンター3がエラー状態である場合、又は、確認されたレスポンスが送信されたコマンドから想定されるレスポンスでない場合において、プリンター3を再起動により初期化することができる。
また、ソフトリセットを指示するリセットコマンドをプリンター3に実行させた後に、再びリセットコマンドを送信する場合、コマンド送信制御部211は、プリンター3の設定を予め定められた初期状態に戻すハードリセットリセットを実行させるリセットコマンドを送信するので、ソフトリセットをプリンター3に実行させた後に、リセットが必要になった場合には、プリンター3の設定を予め定められた初期状態に戻すことができる。また、ソフトリセットは比較的短時間で実行可能であり、予め設定した初期状態に戻すだけで済むため、工場出荷状態に戻すハードリセットよりも実行後の再設定等の負担が軽い。このため、最初に送信するリセットコマンドを、ソフトリセットを指示するコマンドとすることで、リセット後の操作の負荷が軽くて済むという利点がある。さらに、再度リセットコマンドを送信する場合にはハードリセットをさせることで、ソフトリセットでも解消しない異常を速やかに解消できる。
【0045】
また、ホストコンピューター2の状態判定部212は、プリンター3から通知されたステータスデータをもとに、プリンター3が印刷中であるか否かを判定し、コマンド送信制御部211は、プリンター3が印刷中である場合にはリセットコマンドを送信しないので、プリンター3が印刷中にリセットが行われることを防止できる。
【0046】
また、プリンター3は、異常検出部406によって、自装置でエラーが発生したことを検出し、異常検出部406によりエラーが検出された場合に、主制御部408の機能によってステータスデータを通知するので、エラー状態を示すステータスデータが送信されないが、実際にはプリンター3にエラーが発生している場合であっても、プリンター3のリセットを適切に行うことができる。
【0047】
なお、上記実施形態は本発明を適用した一具体例を示すものであり、本発明はこれに限定されるものではない。例えば、プリンター3がサーマルプリンターである場合を例に挙げて説明したが、本発明を適用可能な記録装置は、文字や画像を記録できる装置であれば特に制限されず、印刷ヘッドから記録媒体に複数色のインクを吐出することで文字や画像を形成するインクジェットプリンター、記録ワイヤーを突出する記録ヘッドにより記録媒体にドットを形成して印刷するドットインパクトプリンター、レーザープリンター等にも本発明を適用可能であり、他の装置に組み込まれるプリンターにも本発明を適用可能である。また、記録システム1を、ホストコンピューター2を1台又は複数台備える構成や、プリンター3を1台又は複数台備える構成とすることも、勿論可能である。
また、上記実施形態では、ホストコンピューター2のCPU21が記憶部26に記憶された各種プログラムを実行し、プリンター3のCPU31がフラッシュROM32に記憶された各種プログラムを実行することにより、図2に示す各部の機能を実現する構成として説明したが、これらの各種プログラムは、他の記憶装置、記憶媒体や外部装置の記憶媒体に記憶させ、ホストコンピューター2のCPU21或いはプリンター3のCPU31により読み出して実行する構成としても良い。さらに、これらのプログラム105A、ホストコンピューター2或いはプリンター3が通信ネットワークを介して接続された他の装置からダウンロードして実行しても良い。
【符号の説明】
【0048】
1…記録システム、2…ホストコンピューター(記録制御装置)、3…プリンター(記録装置)、21…CPU、26…記憶部、26C…プリンタードライバー、26D…設定データ、31…CPU、36…印刷制御部、210…プリンタードライバー実行部、211…コマンド送受信制御部(リセット手段)、212…状態判定部(状態判定手段)、213…確認部(確認手段)、403…コマンド解析部、406…異常検出部(検出手段)、408…主制御部(通知手段)。

【特許請求の範囲】
【請求項1】
記録装置と記録制御装置とが通信可能に接続され、前記記録制御装置から送信されるコマンドに基づき前記記録装置が制御される記録システムであって、
前記記録装置は、
自装置の状態を示すステータスデータを、少なくとも状態の変化が発生したことをトリガーとして、前記記録制御装置へ通知する通知手段を備え、
前記記録制御装置は、
前記記録装置から通知された前記ステータスデータをもとに、前記記録装置がエラー状態であるか否かを判定する状態判定手段と、
前記記録装置に所定のコマンドを送信して当該コマンドに対する前記記録装置からのレスポンスを確認する確認手段と、
前記状態判定手段により前記記録装置がエラー状態であると判定された場合、又は、前記確認手段により確認された前記レスポンスが、前記確認手段によって送信された前記コマンドから想定されるレスポンスでない場合に、前記記録装置をリセットするリセットコマンドを送信するリセット手段と、
を備え、
前記確認手段は、所定時間、前記記録装置から前記ステータスデータを受信しない場合、前記記録装置に前記所定のコマンドを送信すること、
を特徴とする記録システム。
【請求項2】
前記リセットコマンドは、再起動により初期化を行う第1のリセットを前記記録装置に実行させるコマンドであること、
を特徴とする請求項1に記載の記録システム。
【請求項3】
前記リセット手段は、前記第1のリセットを前記記録装置に実行させた後に、再び前記リセットコマンドを送信する場合、前記記録装置の設定を予め定められた初期状態に戻す第2のリセットを実行させるリセットコマンドを送信すること、
を特徴とする請求項2に記載の記録システム。
【請求項4】
前記状態判定手段は、前記記録装置から通知された前記ステータスデータをもとに、前記記録装置が印刷中であるか否かを判定し、
前記リセット手段は、前記記録装置が印刷中である場合には前記リセットコマンドを送信しないこと、
を特徴とする請求項1ないし3のいずれか一項に記載の記録システム。
【請求項5】
前記記録装置は、自装置でエラーが発生したことを検出する検出手段を更に備え、
前記通知手段は、前記検出手段により前記エラーが検出されたことをトリガーとして、前記ステータスデータを通知すること、
を特徴とする請求項1ないし4のいずれか一項に記載の記録システム。
【請求項6】
通信可能に接続された記録装置から、少なくとも状態の変化が発生したことをトリガーとして通知された、当該記録装置の状態を示すステータスデータをもとに、前記記録装置がエラー状態であるか否かを判定する状態判定手段と、
前記記録装置に所定のコマンドを送信して当該コマンドに対する前記記録装置からのレスポンスを確認する確認手段と、
前記状態判定手段により前記記録装置がエラー状態であると判定された場合、又は、前記確認手段により確認された前記レスポンスが、前記確認手段により送信された前記コマンドから想定されるレスポンスでない場合に、前記記録装置をリセットするコマンドを送信するリセット手段と、
を備え、
前記確認手段は、所定時間、前記記録装置から前記ステータスデータを受信しない場合、前記記録装置に前記所定のコマンドを送信すること、
を特徴とする記録制御装置。
【請求項7】
記録装置と通信可能に接続された記録制御装置が実行する制御方法であって、
前記記録装置から、少なくとも状態の変化が発生したことをトリガーとして通知された、当該記録装置の状態を示すステータスデータをもとに、前記記録装置がエラー状態であるか否かを判定し、前記記録装置に所定のコマンドを送信して当該コマンドに対する前記記録装置からのレスポンスを確認し、前記記録装置がエラー状態であると判定した場合、又は、確認された前記レスポンスが、確認の際に送信した前記コマンドから想定されるレスポンスでない場合に、前記記録装置をリセットするコマンドを送信し、
さらに、所定時間、前記記録装置から前記ステータスデータを受信しない場合、前記記録装置に前記所定のコマンドを送信すること、
を特徴とする制御方法。
【請求項8】
記録装置と通信可能に接続された記録制御装置が実行するプログラムであって、
前記記録装置から、少なくとも状態の変化が発生したことをトリガーとして通知された、当該記録装置の状態を示すステータスデータをもとに、前記記録装置がエラー状態であるか否かを判定し、前記記録装置に所定のコマンドを送信して当該コマンドに対する前記記録装置からのレスポンスを確認し、前記記録装置がエラー状態であると判定した場合、又は、確認された前記レスポンスが、確認の最に送信した前記コマンドから想定されるレスポンスでない場合に、前記記録装置をリセットするコマンドを送信し、
さらに、所定時間、前記記録装置から前記ステータスデータを受信しない場合、前記記録装置に前記所定のコマンドを送信すること、
を特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate


【公開番号】特開2012−190221(P2012−190221A)
【公開日】平成24年10月4日(2012.10.4)
【国際特許分類】
【出願番号】特願2011−52619(P2011−52619)
【出願日】平成23年3月10日(2011.3.10)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】