(57)【要約】【課題】インクの消費量に基づいて残量を管理するプリンタにおけるインク残量管理の精度を向上させる。【解決手段】印刷ジョブをプリンタに対して発行する場合、まず、プリンタに対してインクの残量警告を含むステータス情報を要求する（Ｓ１００８）。ステータス情報を得ると、インク交換の可能性が示されているか判定し、示されていれば利用者にインク交換の内容の入力を促す表示を行う。それに対してインク交換を行った旨の入力がされた場合には（Ｓ１０１９−ＹＥＳ）、改めて現在のプリンタのステータス情報を判定し（Ｓ１０２０）、インク交換の可能性が示されていればプリンタに対して、インク残量に関する情報を初期化するためのコマンドを送信する（Ｓ１０２１）。【選択図】図２
2004030615.tif 000002
【特許請求の範囲】
【請求項１】
色材の使用量に基づいて該色材の残量に関する情報を更新して記憶し、該情報および色材交換の可能性を示す情報を含むステータス情報を要求に応じて出力し、前記色材の残量に関する情報および前記色材交換の可能性を示す情報を要求に応じて初期化するプリンタに接続されたプリンタ制御装置であって、
前記プリンタにステータス情報の送信を要求し、前記プリンタからステータス情報を受信するステータス受信手段と、
前記ステータス受信手段によって受信したステータス情報において前記色材交換の可能性が示されている場合には、利用者に色材交換操作の内容を入力するよう指示する確認手段と、
前記確認手段による指示に対して色材交換操作を行ったことが入力された場合に、前記プリンタに対して、色材の残量に関する情報および前記色材交換の可能性を示す情報を初期化させるためのコマンドを送信するコマンド送信手段と
を備えることを特徴とするプリンタ制御装置。
【請求項２】
前記確認手段は、色材の消費を伴う印字データを前記プリンタへ送信することが要求された場合に、利用者に、色材交換操作の内容の入力を指示することを特徴とする請求項１記載のプリンタ制御装置。
【請求項３】
前記コマンド送信手段は、前記確認手段による指示に対して色材交換操作を行ったことが入力された場合には、前記ステータス受信手段により前記プリンタからステータス情報を受信し、当該ステータス情報において色材交換の可能性が示されていれば、前記プリンタに対して、色材の残量に関する情報および前記色材交換の可能性を示す情報を初期化させるためのコマンドを送信することを特徴とする請求項１記載のプリンタ制御装置。
【請求項４】
前記色材は複数の色成分の色材を含み、前記確認手段は、色材交換操作の内容として、交換された色材の種類の入力を指示し、前記コマンド送信手段は、入力された種類の色材についての残量に関する情報を初期化させるためのコマンドを送信することを特徴とする請求項１記載のプリンタ制御装置。
【請求項５】
コンピュータにより実行可能なプログラムであって、
色材の使用量に基づいて該色材の残量に関する情報を更新して記憶し、該情報および色材交換の可能性を示す情報を含むステータス情報を要求に応じて出力し、前記色材の残量に関する情報および前記色材交換の可能性を示す情報を要求に応じて初期化するプリンタに接続されたコンピュータを、
前記プリンタにステータス情報の送信を要求し、前記プリンタからステータス情報を受信するステータス受信手段と、
前記ステータス受信手段によって受信したステータス情報において前記色材交換の可能性が示されている場合には、利用者に色材交換操作の内容を入力するよう指示する確認手段と、
前記確認手段による指示に対して色材交換操作を行ったことが入力された場合に、前記プリンタに対して、色材の残量に関する情報および前記色材交換の可能性を示す情報を初期化させるためのコマンドを送信するコマンド送信手段と
として機能させることを特徴とするプログラム。
【請求項６】
前記確認手段は、色材の消費を伴う印字データを前記プリンタへ送信することが要求された場合に、利用者に、色材交換操作の内容の入力を指示することを特徴とする請求項５記載のプログラム。
【請求項７】
前記コマンド送信手段は、前記確認手段による指示に対して色材交換操作を行ったことが入力された場合には、前記ステータス受信手段により前記プリンタからステータス情報を受信し、当該ステータス情報において色材交換の可能性が示されていれば、前記プリンタに対して、色材の残量に関する情報および前記色材交換の可能性を示す情報を初期化させるためのコマンドを送信することを特徴とする請求項５記載のプログラム。
【請求項８】
前記色材は複数の色成分の色材を含み、前記確認手段は、色材交換操作の内容として、交換された色材の種類の入力を指示し、前記コマンド送信手段は、入力された種類の色材についての残量に関する情報を初期化させるためのコマンドを送信することを特徴とする請求項５記載のプログラム。
【請求項９】
請求項５乃至８のいずれか１項に記載のプログラムを記録したコンピュータ可読記録媒体。
【請求項１０】
色材の使用量に基づいて該色材の残量に関する情報を更新して記憶し、該情報および色材交換の可能性を示す情報を含むステータス情報を要求に応じて出力し、前記色材の残量に関する情報および前記色材交換の可能性を示す情報を要求に応じて初期化するプリンタに対して、ステータス情報の送信を要求し、前記プリンタからステータス情報を受信するステータス受信工程と、前記ステータス受信手段によって受信したステータス情報において前記色材交換の可能性が示されている場合には、利用者に色材交換操作の内容を入力するよう指示する確認工程と、
前記確認工程による指示に対して色材交換操作を行ったことが入力された場合に、前記プリンタに対して、色材の残量に関する情報および前記色材交換の可能性を示す情報を初期化させるためのコマンドを送信するコマンド送信工程と
を備えることを特徴とするプリンタ制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えばプリンタとプリンタに対して印字データを送信するホストコンピュータ等のプリンタ制御装置及び方法に関し、特にプリンタのインク残量の管理に関する。
【０００２】
【従来の技術】
従来、インクジェットプリンタにおいてインクの残量を計測し、利用者にインク交換を行うタイミングを適切に知らせるための方法として、各インクタンクの使用開始時からのインクの総使用量を記録し、この総使用量があらかじめインクタンクに充填された総インク量に近くなると、利用者にインク交換を促す方法が知られている。また、逆にあらかじめインクタンクに充填された総インク量に基づいた初期値からインクの使用量を減算していき、その値が一定の値を下回ったら、利用者にインク交換を促す方法も知られている。これらの方法は、インク残量を直接計測するためのセンサ等を必要としないため、インクジェットプリンタの中でも比較的安価な機種において多く用いられている。この方式で正しくインク使用量を監視するためには、利用者がインク交換を行ったときに、インク使用量のカウンタが正しく初期化されることが必要である。
【０００３】
インク使用量のカウンタを初期化する方法としては、次のような方法が知られている。すなわち、プリンタでインクタンクの交換操作を監視し、インクタンクの交換操作が行われたら、インクタンクが新しいものに交換されたと見なしてインク使用量のカウンタを自動的に初期化する方法である（特許文献等１参照）。
【０００４】
また、別の方法として、インク交換の操作を行った後、利用者があらかじめ定められたカウンタ初期化のための操作を行うことで、インク使用量のカウンタを初期化する方法もある（特許文献等２参照）。この際、操作を容易にするために、プリンタと接続されたホストコンピュータの画面上にインク使用量のカウンタを初期化するためのＧＵＩ（グラフィカル・ユーザ・インタフェース）を設け、このＧＵＩ上のボタン操作によって、インク使用量を初期化するためのコマンドがプリンタに転送され、このコマンドによってカウンタを初期化するように構成する場合もある。
【０００５】
【特許文献１】
特開平０９−３０００６号公報
【特許文献２】
特開平８−２２４８９１号公報
【０００６】
【発明が解決しようとする課題】
しかしながら、これらの方法には次のような問題点があった。すなわち、インクタンクの交換操作を検知して自動的にカウンタを初期化する方法では、交換が検知された場合に、自動的にインク使用量のカウンタが初期化されてしまうため、一旦取り外した使用中のインクタンクを再度取り付けた場合のように実際のインク残量が変化していない場合にもインク使用量のカウンタが初期化されてしまい、カウンタがそのインクタンクのインク使用量を正しく反映しなくなってしまうという問題があった。更に、この問題を回避するために、インクタンクに個々のインクタンクを識別するためのマイクロチップを設けるものもあるが、これもコストがかさむという問題があった。
【０００７】
また、インク交換の操作を行った後、利用者がインク使用量のカウンタ初期化の操作を行う方法では、利用者がカウンタ初期化の操作を正しく行わなかった場合に、カウンタがインク使用量を正しく反映しなくなってしまうという問題があった。
【０００８】
本発明は上記の問題に鑑みてなされたものであり、インク使用量からその残量に関する情報を得るプリンタにおけるインク残量に関する情報の初期化を容易かつ確実に行うことが可能なプリンタ制御装置及び方法を提供することを目的とする。
【０００９】
更に、一台のプリンタに対して複数のプリンタ制御装置が接続され、複数のプリンタ制御装置からそれぞれ独立にインク残量に関する情報を初期化する操作が行われた場合にも、インクの残量に関する情報を正確に維持できなくなるという問題を解消したプリンタ制御装置及び方法を提供することも目的としている。
【００１０】
【課題を解決するための手段】
上記の目的を達成するため、本発明は次のような構成を備える。
【００１１】
色材の使用量に基づいて該色材の残量に関する情報を更新して記憶し、該情報および色材交換の可能性を示す情報を含むステータス情報を要求に応じて出力し、前記色材の残量に関する情報および前記色材交換の可能性を示す情報を要求に応じて初期化するプリンタに接続されたプリンタ制御装置であって、
前記プリンタにステータス情報の送信を要求し、前記プリンタからステータス情報を受信するステータス受信手段と、
前記ステータス受信手段によって受信したステータス情報において前記色材交換の可能性が示されている場合には、利用者に色材交換操作の内容を入力するよう指示する確認手段と、
前記確認手段による指示に対して色材交換操作を行ったことが入力された場合に、前記プリンタに対して、色材の残量に関する情報および前記色材交換の可能性を示す情報を初期化させるためのコマンドを送信するコマンド送信手段とを備える。
【００１２】
この構成により、色材の使用量に基づいてその残量に関する情報を管理するプリンタについて、色材の交換時に必要な、その残量に関する情報の初期化が容易かつ確実に行えるようになるという効果がある。
【００１３】
更に好ましくは、前記確認手段は、色材の消費を伴う印字データを前記プリンタへ送信することが要求された場合に、利用者に、色材交換操作の内容の入力を指示する。
【００１４】
この構成により、色材の消費を伴わない操作を行う場合に利用者が交換した色材に関する入力を行わなければならないという煩雑さを回避できるという効果がある。
【００１５】
更に好ましくは、前記コマンド送信手段は、前記確認手段による指示に対して色材交換操作を行ったことが入力された場合には、前記ステータス受信手段により前記プリンタからステータス情報を受信し、当該ステータス情報において色材交換の可能性が示されていれば、前記プリンタに対して、色材の残量に関する情報および前記色材交換の可能性を示す情報を初期化させるためのコマンドを送信する。
【００１６】
この構成により、複数のプリンタ制御装置から同時期に色材の残量に関する情報の初期化のための操作が行われた場合にも、プリンタに対して色材の残量に関する情報を初期化するためのコマンドが何度も送信されることを回避し、プリンタの色材の残量に関する情報が不正に初期化されることを回避できるという効果がある。
【００１７】
更に好ましくは、前記色材は複数の色成分の色材を含み、前記確認手段は、色材交換操作の内容として、交換された色材の種類の入力を指示し、前記コマンド送信手段は、入力された種類の色材についての残量に関する情報を初期化させるためのコマンドを送信する。
【００１８】
この構成により、交換された色材についてその残量に関する情報を初期化することができ、残量の管理を正確に行うことができる。
【発明の実施の形態】
以下、添付の図面を参照して本発明の実施の形態を詳細に説明する。
【００１９】
［第１実施形態］
以下、図１ないし図１０について本発明の第１の実施形態によるプリンタ制御装置の構成及び動作を詳細に説明する。
【００２０】
図１は本実施形態のシステム構成を示すブロック図である。図２は本実施形態におけるプリンタ制御装置であるホストコンピュータ１００１のデータ転送処理を制御するデータ転送制御プログラムの処理動作を表すフローチャートである。図３はホストコンピュータ１００１からプリンタ２００１に対してステータス要求設定を行うために送信するステータス要求設定コマンドの例である。図４はプリンタ２００１からホストコンピュータ１００１に対して送信される、プリンタ２００１のステータスを表すステータス情報の例である。図４の例では、プリンタ２００１でユーザによるインク交換の可能性がある操作が検知されていることが示されている。図５はプリンタ２００１からホストコンピュータ１００１に対して送信される、プリンタ２００１のステータスを表すステータス情報の例であって、プリンタ２００１でユーザによるインク交換の可能性がある操作が検知されていない状態を示す。図６はホストコンピュータ１００１上で動作するデータ転送制御プログラムがプリンタとの通信が正常に行えない場合に表示するダイアログボックスの表示例である。図７はホストコンピュータ１００１上で動作するデータ転送制御プログラムがプリンタ２００１へジョブデータを転送しようとするときに、プリンタ２００１がインク交換の可能性がある操作を検知したステータスを示している場合に表示する、インク交換操作の確認のダイアログボックスの表示例である。図８は図７に示したダイアログボックスでユーザが実際にインク交換を行ったことを示す操作（「はい」ボタンの押下）を行った場合に、図７のダイアログボックスに続けて表示する、交換したインクタンクの種類を指定するためのダイアログボックスの表示例である。図９は図８で示したダイアログボックスでユーザがインクタンクの種類を選択して、「ＯＫ」ボタンを押下した場合に、ジョブのデータに先立ってプリンタ２００１へ送信する、インク残量情報をリセットし、インク交換操作の有無の情報をインク交換操作が行われていないことを表すものに変更するよう指示するコマンドの例である。図１０は、図７で示したダイアログボックスでユーザが実際にはインク交換を行わなかったことを示す操作（「いいえ」ボタンの押下）を行った場合に、ジョブのデータに先立ってプリンタ２００１へ送信する、インク残量情報はリセットせずインク交換操作の有無の情報のみをインク交換操作が行われていないことを表すものに変更するよう指示するコマンドの例である。
【００２１】
図１中、本実施形態のシステムにおけるホストコンピュータ１００１は、後述するハードディスク内のアプリケーションプログラム等によって生成された文字、図形、およびイメージの混在するデータを、同じハードディスク内のプリンタ制御プログラムによって印字データに変換し、データ転送制御プログラムを介してプリンタ２００１に画像出力する。
【００２２】
ＣＰＵ１００２はホストコンピュータ本体１１００の制御を行う。ＲＡＭ１００３は、ホストコンピュータ１００１内で動作するプログラムがロードされたり、プログラムが動作中にワークメモリとして使用される。ハードディスク１００４は、オペレーティングシステムやアプリケーションプログラムをはじめとするプリンタ制御プログラムやデータ転送制御プログラム等の各種のプログラムのほか、各プログラムが動作する際に必要なデータ等が格納されている。
【００２３】
ハードディスクコントローラ１００５は、ハードディスク１００４のデータやプログラムの読み書きの制御を行う。データ入出力コントローラ１００６は、上述のプリンタ制御プログラムで生成されたプリンタ用のコマンドやデータをプリンタ側へ転送したり、逆にプリンタ側から送られてきたデータを受信して一時的に保持する。データ入出力コントローラ１００６は、双方向のデータ通信インタフェースによってプリンタ２００１と接続され、プリンタ２００１との間でデータの送受信を行う。
【００２４】
ＲＯＭ１００７には、ホストコンピュータ１００１上で各種プログラムを実行したり、各種コントローラの制御を行うなどの様々な基本動作のためのプログラムおよびデータ等が格納されている。キーボードコントローラ１００８は、ホストコンピュータ１００１に接続されたキーボード１０１０からのキー入力を制御する。マウスコントローラ１０１２は、ホストコンピュータ１００１に接続されたマウス１０１３からの入力を制御する。ＣＲＴコントローラ１００９はディスプレイ用のＣＲＴ１０１１への表示を制御する。
【００２５】
また、図１中、本実施形態のシステムにおけるプリンタ２００１は、ホストコンピュータ１００１から印字データを受け取り、これを記録用紙上に画像記録する。プリンタ２００１はまた、ホストコンピュータ１００１に対してプリンタ２００１のプリンタステータスデータを送信するものである。
【００２６】
データ入出力コントローラ２００２は、プリンタ２００１に対してホストコンピュータ１００１から転送された印字データなどを受信したり、該プリンタ側からの情報をホストコンピュータ１００１へ転送する。ＣＰＵ２００３はプリンタ本体の制御を行う。プログラムＲＯＭ２００４は、ホストコンピュータ１００１から受信した印字データを出力するなどの一連のプリンタ動作を行うためのプログラムを格納している。
【００２７】
フレームメモリ２００５は、プログラムＲＯＭ２００４内のプログラムによって生成された画像パターンを保持する。ワークメモリ２００６は、イメージデータの描画処理をはじめとして画像記録の各種の処理およびホストコンピュータ１００１との通信処理において使用される。画像記録部２００７は、フレームメモリ２００５に保持した画像パターンをインク等の色材により用紙上に記録する。ＥＥＰＲＯＭ２００８はプリンタ２００１の電源をオフにした状態でも保持されるべき情報を記憶する。ＥＥＰＲＯＭ２００８には、プリンタの印刷枚数の累計などのメンテナンス情報のほか、各インクのインク残量に関する情報、インク交換操作の有無の情報が記録される。
【００２８】
ＣＰＵ２００３はカラー画像記録部２００７のインクタンクに対する利用者のアクセスを、カラー画像記録部２００７からの割り込み信号により認識することが可能であり、インクタンクへのアクセスを認識した場合には、前述のＥＥＰＲＯＭ２００８上の所定の領域に設けたインク交換操作情報として、インクタンクの交換の可能性がある操作が行われたことを表す内容を記録する。この記録されたインク交換操作情報の内容は、ホストコンピュータ１００１から送信されるインク情報初期化コマンドによって、インク残量に関する情報（インク残量情報）が初期化され、インク交換操作の有無を示すインク交換操作情報が、インク交換操作が行われていないことを表す内容に変更される。したがってインク情報初期化コマンドにより内容が変更されるまでは、インク交換操作情報は、インクタンク交換の可能性がある操作が行われたことを示す内容のまま保持される。例えばインクタンク交換時に開かれるカバーの開閉を検知するためのセンサをプリンタが備えていれば、そのカバーが開かれたことをプリンタが検知した場合に、インク交換の可能性がある操作が行われた旨の内容をインク交換操作情報として記録する。このほか、例えば印字ヘッドを搭載するキャリッジをインクタンク交換のために待避位置へと移動させるためのボタン操作等がされた場合に、インクタンク交換の可能性がある操作が行われたことを表す内容を、インク交換操作情報として記録することもできる。
【００２９】
プリンタ２００１では、画像記録部２００７による画像記録や、クリーニング処理によってインクが消費された場合に、その消費量をもとにインク残量を計算して、前述のＥＥＰＲＯＭ２００８の所定の領域にインク残量情報として記録する。このインク残量情報は、各色のインクについて、初期化された状態（未使用の状態）を０とし、その後のインク使用量を加算して更新していく。各色のインクについて、インク残量が少なくなったことを警告するしきい値があらかじめ設けられており、前記加算され更新されるインク残量情報の示す値が、このしきい値を超えた場合は、インク残量警告状態として、ステータス情報に反映させる。インク残量情報は、ホストコンピュータ１００１から送信されるインク情報初期化コマンドによって初期化される。
【００３０】
さらに、このプリンタ２００１はプリンタのステータス情報をホストコンピュータへ送信する機能をサポートしている。プリンタ２００１は、ホストコンピュータからステータス情報の送信要求があった際には、プリンタで発生しているエラーや警告の有無と、エラーや警告が発生している場合にはその種類、プリンタでインクタンク交換の可能性がある操作が行われたかを示すインク交換操作情報をホストコンピュータに対して送信する。警告の種類には、例えばインク残量が一定の水準まで低下したインク残量警告状態が含まれる。
【００３１】
図１のデータ入出力コントローラ１００６は、プリンタ２００１に対してステータス情報の送信を要求し、送信されたステータス情報を受信するステータス受信手段を構成する。また、データ入出力コントローラ１００６は、ＥＥＰＲＯＭ２００８に記録されたインク残量に関するインク残量情報を初期化するとともにインク交換操作の有無を表すインク交換操作情報をインク交換操作が行われていないことを表す内容に変更することを指示するためのインク情報初期化コマンドをプリンタ２００１に対して送信するコマンド送信手段を構成する。ＣＰＵ１００２、キーボードコントローラ１００８、ＣＲＴコントローラ１００９、キーボード１０１０、ＣＲＴ１０１１、マウスコントローラ１０１２、マウス１０１３は、ステータス受信手段によって受信したプリンタのインクタンク交換操作の有無を示すステータス情報に基づいて、インク交換操作が行われたことを表すステータス情報が通知された場合には利用者に実際のインク交換操作の内容を入力するよう促すインク交換確認手段を構成する。プリンタのインクタンク交換操作の有無を示すステータス情報は、プリンタ２００１のＥＥＰＲＯＭ２００８に格納されたインク交換操作情報に基づいてプリンタ２００１から送信されたステータス情報である。
【００３２】
（処理動作の説明）
図２から図１０を用いて本実施形態におけるプリンタ制御装置の処理動作について説明する。
【００３３】
まず、図２を用いてホストコンピュータ１００１上で動作するデータ転送制御プログラムの動作を説明する。図２はホストコンピュータ１００１上で動作するデータ転送制御プログラムの処理動作を示すフローチャートである。ホストコンピュータ１００１上での印刷処理は、一般にアプリケーションプログラムで作成した文書あるいは画像等のデータをプリンタドライバと呼ばれるプログラムが印字データに変換し、この印字データをオペレーティングシステムが提供するプリントスプーラがスプールする。プリントスプーラはデータ転送制御プログラムを起動して、印字データをプリンタに転送するよう指示する。データ転送制御プログラムは、プリンタとの通信が正しく行われ、プリンタの機種が、転送しようとする印字データで想定されているプリンタ機種と一致しているかを確認するため、プリンタのデバイスＩＤを受信する。さらに、プリンタからプリンタのエラー、警告の有無とその種類を表すステータスを取得し、問題が無い場合にはプリンタへ印字データを転送し、問題がある場合にはユーザの支持を仰ぐ。プリンタドライバおよびプリントスプーラの動作は本実施形態とは直接関係ないため、説明を省略する。
【００３４】
図２において、データ転送制御プログラムは、プリントスプーラによってＲＡＭ１００３上にロードされ呼び出されると、まず初期化の処理を行う（Ｓ１００１）。ここでは、プログラムで使用するメモリ領域の確保や変数の初期化を行う。
【００３５】
ステップＳ１００２では、プリントスプーラからの終了要求が無いかを判断し、終了要求がある場合には、ステップＳ１００３に進んで終了処理を行い、終了する。ステップＳ１００３の終了処理は、プログラムで使用したメモリ領域の開放を行う。
【００３６】
プリントスプーラからの終了要求が無い場合、ステップＳ１００４へ進む。プリントスプーラからジョブ開始とデータ転送の指示（関数呼び出し）が行われる場合には、ステップＳ１００５へ進む。それ以外の場合には、プリントスプーラからの終了要求とジョブ開始の指示のいずれかがあるまで、ステップＳ１００２からステップＳ１００４の処理を繰り返す。
【００３７】
プリントスプーラからジョブ開始とデータ転送の指示があった場合はステップＳ１００５へ進み、ジョブ開始とデータ転送の指示で指定されたポートをオープンし、プリンタからデバイスＩＤを取得する（ステップＳ１００６）。デバイスＩＤには、そのプリンタの機種を示す情報が含まれており、この情報をもとに接続されているプリンタとデータ転送制御プログラムがサポートするプリンタ機種とが一致しているかを判断できる。
【００３８】
ステップＳ１００７では、デバイスＩＤが正しく取得でき、取得してデバイスＩＤに含まれるプリンタ機種情報とデータ転送制御プログラムがサポートするプリンタ機種とが一致しているかを判断する。デバイスＩＤが正しく取得でき、かつ、機種が一致していると判断した場合は、ステップＳ１００８へ進む。デバイスＩＤが取得できないか、あるいは機種が不一致であると判断した場合は、ステップＳ１０１２へ進む。
【００３９】
ステップＳ１０１２では、プリンタとの通信が正しく行えないことを示すダイアログボックスを表示する。この表示はプリントスプーラが行い、データ転送制御プログラムはプリントスプーラからのデータ転送を指示する関数呼び出しに対してエラーの応答を行った場合に、このダイアログボックスが表示されるようになっている。ダイアログボックスは図６に示すようなものであり、利用者は「再試行」または「キャンセル」のボタンを押下することが可能である。「再試行」のボタンが押下された場合、プリントスプーラは再度データ転送制御プログラムに対してデータ転送を指示する関数呼び出しを行うので、データ転送制御プログラムはステップＳ１００６からの処理を行う。また、利用者が前記ダイアログボックスに対して何も入力を行わないまま一定時間が経過した場合も、「再試行」のボタンが押下された場合と同様の処理が行われる。前記ダイアログボックスに対して「キャンセル」ボタンが押下された場合は、プリントスプーラはジョブキャンセルの処理を行う。この際、プリントスプーラはデータ転送制御プログラムに対してジョブ終了を指示する関数呼び出しを行うため、データ転送制御プログラムはポートのクローズ処理等、ジョブ終了のための処理を行ったあと、ステップＳ１００２へ進み、終了要求か新たなジョブ開始の要求が行われるのを待つ。
【００４０】
ステップＳ１００８では、プリンタ２００１に対してステータス要求コマンドを送信し、送信が成功した場合にはプリンタからのステータス受信処理を開始する。ステータス要求コマンドは例えば図３に示すような内容を有する。図３に示すコマンドは、ステータス要求コマンドであることを示すエスケープシーケンス（１Ｂｈ，”Ｓ”，”Ｔ”，”Ｓ”）に続いて、その後のコマンドサイズを表す２バイトの情報（００１６ｈ）と、プリンタ２００１に対してステータスを要求するコマンド（ＲＥＱ）および要求するステータス情報の種類とを含む。図３のコマンド例では、エラー情報（ＥＲＲ）、警告情報（ＷＲＮ）、インク交換操作情報（ＣＨＧ）、ページ情報（ＰＡＧ）を送信するよう要求している。このステータス要求コマンドを受信したプリンタ２００１は、その後、プリンタ２００１の電源がオフにされるか、別のステータス要求コマンドによって指示されるまで、ホストコンピュータ１００１からのステータス送信要求があるたびに、ステータス要求コマンドで指定されたステータス情報を送信するよう動作する。ホストコンピュータはステータス要求コマンドを送信した後、必要に応じてプリンタにステータス送信の要求を行い、ステータスを取得する。
【００４１】
ステップＳ１００８でステータス要求コマンドの送信に失敗した場合や、ステータス要求コマンドは送信したがその後プリンタからステータス情報が取得できず、プリンタ２００１側で正しくステータス要求コマンドが処理されていない可能性がある場合には、ステップＳ１０１２へ進む。ステップＳ１０１２以降の処理は、前述のとおりである。
【００４２】
ステップＳ１０１０では、ステップＳ１００８でプリンタ２００１に対して送信したステータス要求コマンドに対して受信したステータス情報を解析する処理を行う。プリンタ２００１から送信されるステータス情報は例えば図４や図５に示すようなものである。ステータス情報は、先頭に送信されるステータス情報全体のバイト数を示す長さ情報２バイトを持ち、そのあとに実際のステータスを表す情報が続くようになっている。図４および図５の例では、エラー情報（ＥＲＲ）と警告情報（ＷＲＮ）はエラー及び警告が発生していないことを示す「０」となっている。また、ページ情報（ＰＡＧ）はプリンタが印刷処理を行っていないことを示す「０」となっている。また、インク交換操作情報（ＣＨＧ）は、図４の例ではインク交換操作が行われた可能性があることを示す「１」となっており、図５の例ではインク交換操作が行われた可能性がないことを示す「０」となっている。
【００４３】
ステップＳ１０１１では、ステップＳ１０１０で解析した結果、インク交換操作情報（ＣＨＧ）の内容が、インク交換操作が行われた可能性を示す値（「１」）であればステップＳ１０１８へ、インク交換操作が行われた可能性がないことを示す値（「０」）であればステップＳ１０１５へ進む。
【００４４】
ステップＳ１０１８以降は、以前のジョブから今回のジョブまでの間にプリンタ２００１でインク交換の操作が行われた可能性がある場合の処理である。この場合、データ転送制御プログラムはプリンタ２００１へ印刷ジョブのデータを転送し始める前に、実際にインク交換の操作が行われたかを利用者に問い合わせる。そしてインク交換の操作が実際に行われた場合には、交換されたインクの残量に関する情報を初期化するよう指示するコマンドをプリンタ２００１に送信してから印刷ジョブのデータを転送するよう制御する。
【００４５】
そこで、ステップＳ１０１８では、まず図７に示すようなダイアログボックスを表示して利用者の入力を受け付ける。ダイアログボックスはインク交換が行われた可能性があることを利用者に示し、実際にインク交換の操作を行ったかどうかの入力を求める。
【００４６】
ステップＳ１０１９では、図７及び図８のダイアログボックスに対する利用者による入力を判定する。利用者が図７のダイアログボックスで「いいえ」ボタンを選択した場合には、インク交換は行われていないとみなして、ステップＳ１０２２へ処理を進める。一方、利用者がこのダイアログボックスで「はい」ボタンを選択した場合には、図７のダイアログボックスを消去して図８に示すダイアログボックスを新たに表示する。この表示は、図２においてはステップ１０１９において行われることになる。
【００４７】
図８のダイアログボックスは、交換したインクタンクの種類を指定するためのチェックボックスを備える。利用者が交換したインクタンクを選択して「ＯＫ」ボタンを選択することで、どのインクタンクを交換したかを入力できる。表示直後の図８のダイアログボックスは、いずれのチェックボックスも選択されていない状態であり、また、チェックボックスが選択されていない状態では「ＯＫ」ボタンが選択できないようになっている。
【００４８】
図８において「ＯＫ」ボタンが選択された場合はステップＳ１０２０へ処理を進める。一方「キャンセル」ボタンが選択された場合には、ダイアログボックスを消去して、再度図７に示すダイアログボックスを表示する。
【００４９】
ステップＳ１０２０では、まずあらためてプリンタ２００１のステータス情報を獲得し、取得が成功したならその内容を解析する。そして、このプリンタ２００１から取得した最新のステータス情報に含まれるインク交換操作情報の値を確認する。インク交換操作情報がインク交換が行われた可能性があることを示している場合、すなわちＣＨＧコマンドの応答が「１」の場合には、ステップＳ１０２１へ進む。一方、インク交換操作情報がインク交換が行われた可能性がないことを示している場合、すなわちＣＨＧコマンドの応答が「０」の場合には、ステップＳ１０１５へ進む。
【００５０】
ステップＳ１０２０においてステータス情報をあらためて取得するのは、プリンタが複数のホストコンピュータから制御される場合を考慮しているためである。このような場合、プリンタ２００１を利用するホストコンピュータは、すべて図２の手順でインク残量を管理している。或るホストコンピュータが図２の手順を実行して、後述のステップＳ１０２１の処理によってインク残量に関する情報を初期化するよう指示するインク情報初期化コマンドをプリンタ２００１に送信し、その後に続けて行われるジョブデータ送信によってプリンタ２００１は印刷等の処理を行ってインクを消費しているものとする。この場合、別のホストコンピュータが並行して図２の手順を実行していると、そのコンピュータからプリンタ２００１に対して、改めてインク残量に関する情報を初期化するよう指示するコマンドが送信されてしまう。この結果、先のホストコンピュータからの印刷ジョブによる消費分を反映したインク残量がインク残量情報としてプリンタ２００１のＥＥＰＲＯＭ２００８に記録されているにも関わらず、後のコンピュータからの初期化コマンドによりその情報が消去されてしまう。ステップＳ１０２０は、そのようなインク残量初期化コマンドの二重送信を避けるための処理である。なおステップＳ１０２０では、ステータス情報の取得に失敗した場合にも、ステップＳ１０１５に分岐する。
【００５１】
ステップＳ１０２１では、プリンタ２００１へのジョブデータ送信に先立って、プリンタ２００１のインク残量に関する情報（インク残量情報）を初期化するとともに、インク交換がされたことの可能性を示す情報（インク交換操作情報）をインク交換が行われていないことを表す内容（すなわち０）に変更するよう指示するコマンドをプリンタ２００１に送信する。このインク情報初期化コマンドは、ステップＳ１０１９で表示した図８に示すダイアログに対する利用者の入力に基づいて発行されるものであり、例えば図９に示すような形式を持つ。図９のインク情報初期化コマンドは、制御コマンドであることを示すエスケープシーケンス（１Ｂｈ，”Ｃ”，”Ｍ”，”Ｄ”）に続いて、その後のコマンドサイズを表す２バイトの情報と、ブラックインクタンク（ＢＫ）とカラーインクタンク（ＣＬ）に関するインク残量に関する情報をリセットするよう指示するコマンド（ＲＳＴ）からなっている。プリンタ２００１はこのコマンドを受信すると、指定されたインクタンクのインク残量情報をリセットし、新しいインクタンクのインク残量を表す状態にするとともに、インク交換捜査情報をインク交換が行われていないことを示す内容に変更する。
【００５２】
ステップＳ１０２２では、プリンタ２００１へのジョブデータ送信に先立って、プリンタ２００１のインク交換がされたことの可能性を示す情報（インク交換操作情報）を、インク交換が行われていないことを表す内容（すなわち０）に変更するよう指示するコマンドをプリンタ２００１に送信する。このインク交換操作情報初期化コマンドは、例えば図１０に示すような形式を持つ。
【００５３】
図１０のインク交換操作情報初期化コマンドは、制御コマンドであることを表すエスケープシーケンス（１Ｂｈ，“Ｃ”，“Ｍ”，“Ｄ”）に続いて、その後のコマンドサイズを表す２バイトの情報と、どのインクタンクのインク残量に関する情報もリセットせず、インク交換操作情報のみをインク交換が行われていないことを表す状態に変更するよう指示するコマンド（ＲＳＴ＝０）からなっている。プリンタ２００１はこのコマンドを受信すると、インク残量情報はリセットせず、インク交換操作情報のみをインク交換が行われていないことを表す状態にする。
【００５４】
ステップＳ１０１５では、プリントスプーラからプリンタへの送信を指示された印刷ジョブのデータをプリンタ２００１へ送信し、また、プリンタ２００１のステータス情報を取得する処理を行う。ステップＳ１０１６では、データ転送制御プログラムはプリントスプーラからのデータ送信の指示があるか判定し、指示がある限りこの処理（Ｓ１０１５）を繰り返す。ジョブ終了の指示があれば、プリンタ２００１から受信するステータス情報によりプリンタでの処理が完了したことを確認した上で、ステップＳ１０１７へ進む。プリンタでの処理が終了したことの確認は、前述のＰＡＧステータスにより判断して行う。
【００５５】
ステップＳ１０１７では、使用したポートをクローズする処理を行って、一連のジョブの処理を完了する。その後は、ステップＳ１００２以降の処理を、プリントスプーラからの終了要求があるまで繰り返す。
【００５６】
以上のように、上記一連の処理をホストコンピュータ１００１でのデータ転送処理時に行うことにより、インク使用量の累計からインク残量の情報を得る方式のプリンタとホストコンピュータとからなる印刷システムにおいて、インク交換の操作が行われた場合のインク残量に関する情報のリセット処理を容易かつ確実に行うことができる。
【００５７】
更に、この印刷システムにおいて、一台のプリンタに対して複数のホストコンピュータが接続され、複数のホストコンピュータからそれぞれ独立にインク残量に関する情報をリセットするための操作が行われた場合にも、このリセット処理が何度も行われて情報が正しいインク残量を反映しなくなるといった問題が発生しないように処理できる。
【００５８】
［実施形態の変形例］
（１）本実施形態では、インク使用量に基づいてその残量を検知するプリンタを利用するシステムを説明したが、プリンタとしては、液体状の色材であるインクを利用するインクジェットプリンタなどのほか、色材としてトナーを用いる電子写真式のプリンタや、インクリボンを用いるプリンタについても、実施形態のプリンタと同様の原理で色材の残量を検知している限り本発明を適用できる。
（２）本実施形態ではプリンタがカラープリンタであるものとしている。しかし、モノクロプリンタであっても本発明を適用できる。この場合、図８の入力画面は不要となるために、図７の画面において「はい」が選択されたなら、図８の画面を表示することなくそのままステップＳ１０１９からステップＳ１０２０へと分岐する。
（３）図８の画面では、選択できるのは「ブラックインクタンク」あるいは「カラーインクタンク」である。ここで表示されるのは、プリンタが個々に残量を管理するインクとなる。図８の例は、ＹＭＣのカラーインクタンクをまとめたカートリッジとブラックインクタンクとを利用し、それぞれについて残量を管理するプリンタについてのものである。したがって、ＹＭＣＫの各色について残量を管理するプリンタについては、ＹＭＣＫ各色についてチェックボックスを表示し、交換したタンクを選択させる。図２のステップＳ１０２１では、選択された色のインクについての残量を初期化するためコマンドが発行される。
【００５９】
なお、本発明は、複数の機器（例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。
【００６０】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体（または記録媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成される。
【００６１】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコード自体およびプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００６２】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【００６３】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【００６４】
【発明の効果】
以上説明したように、請求項１の発明によれば、色材の使用量に基づいてその残量に関する情報を管理するプリンタについて、色材の交換時に必要な、その残量に関する情報の初期化が容易かつ確実に行えるようになるという効果がある。
【００６５】
また請求項２の発明によれば、色材の消費を伴わない操作を行う場合に利用者が交換した色材に関する入力を行わなければならないという煩雑さを回避できるという効果がある。
【００６６】
また請求項３の発明によれば、複数のプリンタ制御装置から同時期に色材の残量に関する情報の初期化のための操作が行われた場合にも、プリンタに対して色材の残量に関する情報を初期化するためのコマンドが何度も送信されることを回避し、プリンタの色材の残量に関する情報が不正に初期化されることを回避できるという効果がある。
【００６７】
また請求項４の発明によれば、交換された色材についてその残量に関する情報を初期化することができ、残量の管理を正確に行うことができる。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態に係るホストコンピュータ及びプリンタからなるシステムの構成を示すブロック図である。
【図２】第１の実施の形態に係るホストコンピュータ上で動作するデータ転送制御プログラムの処理動作を示すフローチャートである。
【図３】第１の実施の形態に係るホストコンピュータ上で動作するデータ転送制御プログラムがプリンタへ転送するステータス要求コマンドの例を表す図である。
【図４】第１の実施の形態に係るプリンタが送信し、ホストコンピュータが受信する、プリンタのステータス情報の例を表す図である。
【図５】第１の実施の形態に係るプリンタがホストコンピュータに対して送信する、プリンタのステータス情報の例を表す図である。
【図６】第１の実施の形態に係るホストコンピュータで動作するデータ転送制御プログラムが表示する、通信エラーのダイアログボックスの表示例を表す図である。
【図７】第１の実施の形態に係るホストコンピュータで動作するデータ転送制御プログラムが表示する、インク交換操作の確認ダイアログボックスの表示例を表す図である。
【図８】第１の実施の形態に係るホストコンピュータで動作するデータ転送制御プログラムが表示する、インク交換操作の確認ダイアログボックスの表示例を表す図である。
【図９】第１の実施の形態に係るホストコンピュータがプリンタに対して送信する、プリンタのインク残量に関する情報を初期化し、インク交換操作の有無の情報をインク交換操作が行われていないことを表すものに変更するよう指示するコマンドの例を表す図である。
【図１０】第１の実施の形態に係るホストコンピュータがプリンタに対して送信する、プリンタのインク残量に関する情報は初期化せず、インク交換操作の有無の情報のみをインク交換操作が行われていないことを表すものに変更するよう指示するコマンドの例を表す図である。
【符号の説明】
１００１　ホストコンピュータ
１００２　ＣＰＵ
１００３　ＲＡＭ
１００４　ハードディスク
１００６　データ入出力コントローラ（ホストコンピュータ）
１００７　ＲＯＭ
１００８　キーボードコントローラ
１００９　ＣＲＴコントローラ
１０１０　キーボード
１０１１　ＣＲＴ
１０１２　マウスコントローラ
１０１３　マウス
２００１　プリンタ
２００２　データ入出力コントローラ（プリンタ）
２００３　プリンタＣＰＵ
２００４　プログラムＲＯＭ
２００５　フレームメモリ
２００６　ワークメモリ
２００７　画像記録部
２００８　ＥＥＰＲＯＭ
【図１】
2004030615.tif 000003
【図２】
2004030615.tif 000004
【図３】
2004030615.tif 000005
【図４】
2004030615.tif 000006
【図５】
2004030615.tif 000007
【図６】
2004030615.tif 000008
【図７】
2004030615.tif 000009
【図８】
2004030615.tif 000010
【図９】
2004030615.tif 000011
【図１０】
2004030615.tif 000012