以下、本発明のプリントシステムの態様について、図1〜図20を用いて説明する。
図1は本発明のプリントシステムの概略構成を説明するための図である。なお、図1では、プリントシステム1が備える各構成要素の内で、本発明の説明に要する部分のみを示し、その他の構成要素については省略している。
プリントシステム1は、印画用メディア(図示していない)の印画を行って印画物を形成するプリンタ部5と、このプリンタ部5に対して印画データおよび印画処理を指示するコマンドを送るユーザアプリケーション2と、ユーザアプリケーション2からのコマンドを解析して指示データをプリンタ部4に送るドライバ4を備え、ユーザアプリケーション2からの指示に基づいてプリンタ部5で印画用メディアに印画を行い、印画物を排紙する。
ユーザアプリケーション2は印画処理制御部9を構成し、ステータスAPI3を利用することによって、プリンタ部5の種々の状態情報を取得し、取得した状態情報に基づいて印画制御を行う。
なお、ユーザアプリケーション2は、図示しないCPUやメモリ等のハードウエアによって構成し、メモリに格納する制御プログラムを実行し、各種処理データを一次メモリに格納するといってソフトウエア処理によって印画処理制御部9の印画処理制御を行う。また、ステータスAPI3についても、ユーザアプリケーション2が備えるCPUによるプログラムの実行で利用することができる。
なお、ステータスAPI3は、例えば、印刷ジョブの有無に関わる情報、エラーの有無に関わる情報、印画済みの印画データの数量に関わる情報、プリンタに送信済みの印画データの数量に関わる情報などの、プリンタユニットに関わる種々の状態情報の読み出しを行うための関数を備え、ユーザアプリケーション2のプログラムは、これら関数を利用することによってプリンタに関わる種々の状態情報を簡易に取得することができる。
本発明のプリンタ部5は、複数台のプリンタ(以下、プリンタユニットと呼ぶ)7A〜7Dと、これらプリンタユニット7A〜7Dを制御せるコントローラ6を備える。各プリンタユニット7A〜7Dは、ドライバ4が備える複数台のドライバ(以下、ドライバユニットと呼ぶ)4A〜4Dを通して印画データおよび各種信号を授受する。また、コントローラ6は、各プリンタ7A〜7Dの印画動作および排紙動作を制御する。
本発明のプリントシステムは、プリンタ部5の複数台のプリンタユニットにそれぞれ複数の受信バッファ(ここでは2つの受信バッファ)を設け、印画用メディアの残量が十分にあるときには、これら複数の受信バッファに印画データを格納する構成(受信バッファを2つとするダブルバッファの構成)の状態で使用することによって、1つの受信バッファからの読み出しと、他の受信バッファへの書き込みを並行して行うことで印画動作の処理速度を高めて印画物のスループットを高める。一方、印画用メディアの残量が少量のときには、印画データを格納する受信バッファを一つとしてシングルバッファの構成の状態で使用することによって、印画用メディアが不足することによって、印画データが印画されずに廃棄されることを防ぎ、この印画データを別のプリンタユニットにおいて空き状態にある受信バッファの送信することによってリカバリー処理を要することなく、印画処理を続けることができる。
複数台のプリンタユニットを備えるプリンタから定められた順で印画物を排紙する場合には、本発明の構成とすることで、仮に何れかのプリンタユニットの印画用メディアが不足した状態となって場合であっても、その印画用メディアに印画予定であった印画データは、リカバリー処理を要することなく、定められた順で印画物を排紙することができる。
図2、図3は、本発明のプリンタ部7の構成例を示す概略ブロック図である。本発明のプリンタ部7は複数台のプリンタユニット7A〜7Dを備える。図2,3では、プリンタ部7が4台のプリンタユニットを備える例を示しているが、プリンタユニットの台数は4台に限らず任意の台数とすることができる。また、これら複数台のプリンタユニットは、1つの筐体に設ける構成とする他、離れた位置に設置する構成としてもよい。
はじめに、図2に示す構成例について説明する。以下では、プリンタユニット7A〜7Dの構成を、プリンタユニット7Aを例として説明する。プリンタユニット7Aは、2つの受信バッファA1,A2(7a,7b)と、印画データ形成回路A(7c)と、ページメモリA(7d)と、ヘッドA(7e)を備える。プリンタユニット7B〜7Dについても同様の構成とすることができる。
受信バッファ7a,7bは、ユーザアプリケーション2から送信された印画データをドライバ4を介して格納する。ここで、各受信バッファ7a,7bは、一枚の印画用メディアに相当する印画データを格納する。したがって、2つの受信バッファ7a,7bにそれぞれ格納されて印画データを用いて印画することによって、2種類の印画画像を形成することができる。
図2に示す構成例では、受信バッファ7a,7bへの印画データの格納はユーザアプリケーション2の印画処理制御部9の制御によって行われる。
印画データ形成回路7cは、受信バッファ7a,7bに格納される印画データを読み出して展開してページデータを形成し、ページメモリ7dに格納する。ヘッド7eは、ページメモリ7dに格納されたページデータを順次読み出して印画動作を行い、印画用メディア上に印画画像を形成する。なお、印画用メディアは、印画を行うための種々の媒体とすることができ、例えば、印画データを写真プリントして印画する場合には写真用用紙とすることができる。
残量記録手段7fは、例えば、インクリボンの残り枚数を記録する記憶装置とすることができる。プリンタユニットによる印画を、印画データに基づいてインクリボンを印画用メディアに転写することで行う場合には、インクリボンの残り枚数と印画用メディアの残量とは対応しているため、インクリボンの残り枚数を計数することによって印画用メディアの残量を推定することができる。
例えば、上記の記憶装置としてRFIDを用いた構成とすることができる。RFIDをインクリボンカセットに設け、未使用時の備えているインクリボンの枚数を初期値としてカウンタに記憶させておき、プリンタからインクリボンの使用枚数の情報をRF信号で取得し、使用枚数に応じてこのカウンタのカウンタ値を減算させる。これによって、RFIDのID情報としてインクリボンの残り枚数が記録される。
プリンタは、このRFIDからインクリボンの残り枚数を取得する。インクリボンの残り枚数と対応関係にあるため、RFIDから取得したインクリボンの残り枚数から印画用メディアの残量を推定することができる。なお、印画用メディアに印画する画像のサイズによってインクリボンの使用幅が異なるため、インクリボンの残り枚数を計数する際には、印画用メディアに印画する画像のサイズに応じて減算する枚数を調整する。
RFIDは、非接触通信によってプリンタとの間でインクリボンの使用枚数、およびインクリボンの残り枚数に関するID情報を授受することができるため、インクリボンカセットと印画用メディアとをペアとしてプリンタ間で入れ替えることによって、印画用メディアを交換した場合であっても、インクリボンに設けたRFIDからそのインクリボンカセットのインクリボンの残り枚数、および印画用メディアの残量を求めることができる。
印画用メディアの残量検知は、ユーザアプリケーション2に設けた残量検知部8によって行うことができ、各プリンタユニットにおいて残量記録手段7fから取得したインクリボンの残り枚数のデータを入力することで行うことができる。
図3はプリンタ部7の他の構成例を示している。図3に示す構成例は、印画用メディアの残量検知を印画用メディアの枚数を計数することで行い、また、受信バッファのダブルバッファとシングルバッファとのバッファの使用形態の切り替えを各プリンタユニット側で行う態様である。
次に、図3に示す構成例について説明する。以下では、プリンタユニット7A〜7Dの構成を、プリンタユニット7Aを例として説明する。プリンタユニット7Aは、2つの受信バッファA1,A2(7a,7b)と、印画データ形成回路A(7c)と、ページメモリA(7d)と、ヘッドA(7e)と、残量検知手段A(7f)を備える。プリンタユニット7B〜7Dについても同様の構成とすることができる。
図3の構成において、2つの受信バッファ7a,7bと、印画データ形成回路7cと、ページメモリ7dと、ヘッド7eは、図2で説明した構成と同様とすることができるためここでの説明は省略する。
残量検知手段7fは、例えば、印画用メディアの残量を計数する構成とすることができ、印画用メディアの初期値から印画用メディアの使用枚数を減算することによって残量を求める。印画用メディアがロール紙であるバッファにはロール紙の送り出し量を検出し、この送り出し量から印画用メディアの残量を求めてもよい。
切替回路7gは、ユーザアプリケーションから送信された印画データを受信バッファ7a,7bに格納する際の印画データに振り分けを行う他、例えば、のプリンタユニットへの転送を行う。この切替回路7gの切り替え制御は、残量検知手段7fからの残量信号に基づいて、印画用メディアが十分にある場合には、送信された印画データを受信バッファ7a、受信バッファ7bの空きバッファに送って印画処理を行い、印画用メディアが不足する場合には、送信された印画データをそのプリンタユニット7の受信バッファ7a、受信バッファ7bの内の1つにのみに送り、後続する印画データは別のプリンタユニットに転送する。
転送されたプリンタユニットは、その切替回路7gにおいて前記と同様の処理を行い、そのプリンタユニットの残量検知手段7fからの残量信号に基づいて、印画用メディアが十分にある場合には、送信された印画データを受信バッファ7a、受信バッファ7bの空きバッファに送り、印画用メディアが少ない場合には、送信された印画データをそのプリンタユニット7の受信バッファ7a、受信バッファ7bの内のいずれか一方の受信バッファに対してのみに送る。
当該プリンタユニットの受信バッファに空きバッファが無い場合には、印画データをさらに別のプリンタユニットに転送する。
転送された印画データは、プリンタ部5が備える何れかのプリンタユニットの受信バッファに空きバッファが発生するまでプリンタユニット7A〜7Dを回り、発生した空きバッファに送り込まれ、印画処理が行われる。
印画データがプリンタユニット間において、空きバッファが生じるまで循環している間は、例えば、この印画データの循環状態をユーザアプリケーションに送って、ユーザアプリケーションからの次の印画データの送信を待機させる制御を行う他、ユーザアプリケーションでの印画データの送信を制御することなくプリンタ部5に送信し、プリンタ部5側の複数台のプリンタユニット間において複数の印画データを循環させてもよい。この場合には、送信した印画データに順位情報を付加し、この順位情報に基づいて切替回路7gにおいて空きバッファへの書き込みを制御する。
図4を用いて、コントローラによるプリンタユニットの順序制御を説明する。本発明のプリントシステムでは、定められた順序に従って印画物の排出する順序制御を行う。この排出順序はアプリケーション側において、複数の画像を、グループ順およびグループ内における画像シリアル順に設定し、この順序に従ってグループ番号および画像シリアル番号を対応するプリンタユニットに送る。プリンタユニットの排出順序制御と排紙のタイミングは、プリンタ5の内部のプリンタユニット7とコントローラ6との間で通信することで制御を行う。
プリンタユニット7は、ユーザアプリケーション2から受信した画像シリアル番号とグループ番号をコントローラ6に転送することで、排出要求を出す。排出要求を受けたコントローラ6は、転送された画像シリアル番号とグループ番号に従って、印画された印画物の順序を照合し、順序通りであればその印画物を排出する許可を出し、順序に誤りがあれば、他のプリンタユニットの排出が終わって順序通りとなるまで排出を待たせる。この順序制御によって、画像シリアル番号の順序で印画物の排出が行われる。
プリンタユニット7の一構成では、ロール状の記録用紙(図示していない)を印画用メディアとし、このロール状の記録用紙をロール紙ホルダ(図示していない)に保持しておき、ロール紙ホルダから巻き戻した記録用紙の記録面上に印刷を行う。
印刷は、例えば、インクリボンカセット(図示していない)に保持されたインクリボン(図示していない)を記録用紙(図示していない)の記録面に当接させながら、ヘッド7eによって所定位置にインクを記録することによって行う。この印刷において、カラー印刷などの多色印刷を行う場合には、インクリボンに印刷を行う色に対応したイエロー、マゼンタ、シアン等の複数のインク部分を、インクリボンの巻き取る方向に沿って順に用意しておき、インクリボンを巻き取りながらインク部分をヘッド7eに対して通過させる動作を、色毎に繰り返す。この際、記録用紙の同一印刷領域に各色の印刷を重ねて行わせるために、記録用紙を往復動させる。この記録用紙の往復動は、ロール紙ホルダの回転方向を変えてロール紙の巻きほどきと巻き戻しを繰り返すことで行うことができる。
これによって、記録用紙をヘッド7eに対して往復動させ、記録用紙の同一の印刷領域に対して複数回の印刷を繰り返して行う。
なお、インクリボンは、イエロー、マゼンタ、シアン等の色部分に加えてオーバーコート層を備え、全色の印刷が終了した印刷面上をこのオーバーコート層で覆うことによって印刷面を保護することができる。
印刷が終了した記録用紙は、ヘッド7e部分を通過した後、排出経路を通過し、プリンタ1の筐体(図示していない)に設けた排出口(図示していない)からプリンタ外部に排出される。
次に、本発明のプリントシステムの印画動作を、図5〜図12を用いて説明する。以下では、正常な印画動作の例を図5,6を用いて説明し、エラー時の印画動作の例を図7〜図20を用いて説明する。また、エラー時の印画動作の例では、プリンタ動作の動作に伴うエラー時におけるリカバリーについて図7〜図12を用いて説明し、印画用メディアが不足したこと(以下、メディアニアエンド)によるエラー時における処理について図13〜図20を用いて説明する。
はじめに、本発明のプリントシステムの通常の印画動作を、図1の構成に基づいて図5のフローチャート、および図6を用いて説明する。図1中の“S”を付した番号は、フローチャート中の“S”を付した番号と対応している。
ユーザアプリケーション2は、外部あるいは内部で発生した印画要求に基づいて印画処理を開始する(S1)。この印画要求がある場合、プリンタユニットにおいて印刷ジョブの有無を検索する。この印刷ジョブの有無は、例えば、ユーザアプリケーション内の印刷キューに各プリンタユニットに対する印画データが保持されているかによって判定することができる(S2)。
判定したプリンタユニットに対して印刷ジョブが設定されていない場合には(S2)、プリントシステム1が備える別のプリンタユニットに切り替えた後(S12)、S1に戻って処理を行う。
判定したプリンタユニットに対して印刷ジョブが設定されている場合には(S2)、そのプリンタユニットのステータスを取得し、エラーが発生していないかを確認する(S3)。エラー状態のステータスは、ユーザアプリケーションがステータスAPI3の関数を実行することで取得することができる。取得したエラーステータスからエラーが有ることが確認された場合には、エラー処理を実行する(S13)。
取得したエラーステータスからエラーが無いことが確認された場合には(S3)、プリンタユニットの印画済みの印画データの個数を計数する第2のカウンタ(以下、ライフカウンタと呼ぶ)のカウンタ値を取得する。ライフカウンタのカウンタ値は、ユーザアプリケーションがステータスAPI3の関数を実行することで取得することができる。また、プリンタユニットの送信済み印画データの個数を計数する第1のカウンタ(以下、アプリケーションカウンタと呼ぶ)のカウンタ値を取得する。アプリケーションカウンタのカウンタ値は、ユーザアプリケーションがステータスAPI3の関数を実行することで取得することができる(S4)。
再度、プリンタユニットのステータスを取得し、エラーが発生していないかを確認する(S5)。取得したエラーステータスからエラーが有ることが確認された場合には、エラー処理を実行する(S13)。
S5の工程において、エラーが無いことが確認された場合には、そのプリンタユニットに空きバッファがあるかを確認する。空きバッファの確認は、ライフカウンタのカウンタ値とアプリケーションカウンタのカウンタ値の差から求めることができる。
例えば、プリンタユニットが2つの受信バッファを備えるダブルバッファ構成では、アプリケーションカウンタのカウンタ値からライフカウンタのカウンタ値を差し引いた差が“0”である場合には、送信済み印画データの個数と印画済みの印画データの個数とが一致しており、送信された印画データは全て印画されたことを示しているため、2つの受信バッファに共に空きバッファであり、空きバッファ数は“2“である。
また、アプリケーションカウンタのカウンタ値からライフカウンタのカウンタ値を差し引いた差が“1”である場合には、送信済み印画データの個数が印画済みの印画データの個数よりも1だけ多く、この送信済み印画データは2つの受信バッファの一方に格納され、他方の受信バッファは空きバッファであることを示しており、空きバッファ数は“1“である。
また、アプリケーションカウンタのカウンタ値からライフカウンタのカウンタ値を差し引いた差が“2”である場合には、送信済み印画データの個数が印画済みの印画データの個数よりも2だけ多く、この送信済み印画データは2つの受信バッファの両方に格納され、空きバッファは存在しないことを示しており、空きバッファ数は“0“である。
したがって、カウンタ値の差と“1”とを比較し、カウンタ値が1以下の場合(カウンタ値の差≦1)は「空きバッファ有り」と判定し、カウンタ値が1を超える場合(カウンタ値の差>1)は「空きバッファ無し」と判定する(S6)。
「空きバッファ有り」と判定した場合には(S6)、印画処理を実行する。印画処理は、ユーザアプリケーション2がプリンタユニット7に対して、送信する印画データのグループ番号、グループ内のシリアル番号、裏面印画データ、および印画データを送信することで行われる。なお、送信する印画データがグループ内の最後のデータである場合には、最後のシリアル番号であることを記述することで、グループ内の全印画データが送信されたことを確認することができる(S7〜S10)。
上記S7〜S10の送信処理を行った後、ユーザアプリケーション内のアプリケーションカウンタをカウンタアップし、送信済み印画データの個数を“1”増加させる。アプリケーションカウンタは、空きバッファの確認と、エラー発生時にどの画像まで印画したかの判断に適用することができる。
「空きバッファ無し」と判定した場合には(S6)、送信した印画データを受信バッファに格納することができず、プリンタユニットでの印画が不可能であるため、プリンタ1が備える別のプリンタユニットに切り替えた後(S12)、S1に戻って処理を行う。
なお、ライフカウンタおよびアプリケーションカウンタのカウントアップにおいて、カウントアップの数値は、例えば、基準となる印画用メディアのサイズの印画データを送信したときを“+1”とし、基準となる印画用メディアのサイズよりも大きな幅の印画用メディアに印画する印画データを送信した場合には、カウントアップの数値として“+2”を設定する。このカウントアップの数値を印画用メディアのサイズに合わせることによって、印画用メディアの残量を正しく確認することができる。また、空きバッファの確認およびエラー発生の確認を行う場合には、カウンタ値の差を1/2とすることで、基準となる印画用メディアのサイズに合わせて評価を行う。
また、アプリケーションカウンタの初期化は、システム起動時にプリンタユニットのライフカウンタのカウンタ値を取得し、取得した値をセットする。通常、初期状態では、2つの受信バッファは空きバッファであるため、この初期化によってプリンタユニットのライフカウンタのカウンタ値とアプリケーションカウンタのカウンタ値とを一致させておく。
図6は、本発明のプリントシステムの通常の印画動作における2つの受信バッファの処理を説明するための説明図である。
図6において、プリンタユニット7A〜7Dはそれぞれ2つの受信バッファ7a,7bを備え、はじめの状態において各プリンタユニットの受信バッファには印画データが格納されているものとする。また、ここでは、プリントシステムは、印画物を印画データD1〜D8の順序で排出する排出制御を行うものとする。
図6中では、印画データをD1〜D8で示し、プリンタユニット7Aの受信バッファ7a,7bには印画データD1,D5が格納され、プリンタユニット7Bの受信バッファ7a,7bには印画データD2,D6が格納され、プリンタユニット7Cの受信バッファ7a,7bには印画データD3,D7が格納され、プリンタユニット7Cの受信バッファ7a,7bには印画データD4,D8が格納されているものとする(図6(a))。
この状態において、各プリンタユニット7A〜7Dは、受信バッファ7aに格納される印画データD1〜D4を読み出して印画処理を行う(図6(b))。排出順序は印画データD1〜D8の順序に設定されているため、排出制御によってはじめに印画データD1の印画物が排出される。この印画データD1の印画物排出によって、プリンタユニット7Aでは、受信バッファ7bに格納される印画データD5の印画処理を行う(図6(c))。
排出制御によって次に印画データD2の印画物が排出される。この印画データD2の印画物排出によって、プリンタユニット7Bでは、受信バッファ7bに格納される印画データD6の印画処理を行う(図6(d))。
残りの印画データD3〜D8についても排出順序にしたがって印画処理および排出処理が行われる。
次に、本発明のプリントシステムによる印画処理において、プリンタ動作の動作に伴うエラー時におけるリカバリーについて図7〜図12を用いて説明する。図7はエラーリカバリー時における動作を説明するためのフローチャートである。
印画処理中において、印画用メディアの不足に伴うエラーを除いて突発的にエラーが発生する場合がある。このような突発エラーが発生した場合には、エラーが発生したプリンタユニットに送信していた印画データを別のプリンタユニットの再送し、リカバリーを行う必要がある。このとき、画像シリアル番号の順序で排出するようにリカバリー処理を行う。
ユーザアプリケーション2は、プリンタユニットにエラーが発生しているかを判定する。このエラー判定は、そのプリンタユニットのステータスを取得し、エラーが発生していないかを確認することで行う。エラー状態のステータスは、ユーザアプリケーションがステータスAPI3の関数を実行することで取得することができる(S21)。取得したエラーステータスからエラーが無いことが確認された場合には、通常の印画処理を続行する(S23)。
取得したエラーステータスからエラーが有ることが確認された場合には、そのプリンタユニットのライフカウンタとアプリケーションカウンタのカウンタ値を取得する。ライフカウンタとアプリケーションカウンタのカウンタ値は、ユーザアプリケーションがステータスAPI3の関数を実行することで取得することができる(S22)。
アプリケーションカウンタのカウンタ値とライフカウンタのカウンタ値との差を算出する。カウンタ値の差は、リカバリーすべき印画データの個数を表している。このカウンタ値の差が例えば“2”の場合には、前々回に送信した印画データと前回に送信した印画データがリカバリーすべき印画データである。また、カウンタ値の差が“1”の場合には、前回に送信した印画データがリカバリーすべき印画データである。印画データのリカバリーは、リカバリーすべき印画データをリカバリーリストに追加し、このリカバリーリストに挙げられている印画データを送信することで行う。
そこで、カウンタ値の差と“2”とを比較する(S24)。カウンタ値の差が“2”である場合には、2つ前の印画データである前々回送信の印画データをリカバリーリストに追加し(S25)、さらに、1つ前の印画データである前回送信の印画データをリカバリーリストに追加する(S26)。カウンタ値の差が“1”である場合には(S27)、1つ前の印画データである前回送信の印画データをリカバリーリストに追加する(S26)。
カウンタ値の差が“2”でも“1”でもない場合には(S24,S27)、リカバリー処理は不要である(S27)。
エラーが発生したプリンタユニットの印画用メディアと同じサイズも印画用メディアを装着している別のプリンタユニットについて、受信バッファに空バッファのものがあるかを確認する。この確認は、プリンタユニットのステータスが“IDLE”であるかによって行うことができる。“IDLE”は印画データの受信待ちの状態にあるステータ状態を示すものである。“IDLE”のステータス状態は、ユーザアプリケーションがステータスAPI3の関数を実行することで取得することができる(S28)。プリンタユニットのステータスが“IDLE”である場合には、受信バッファは印画データを受信可能な状態にあるため、印画データを送信することができる。そこで、“IDLE”であることが確認された場合には、そのプリンタユニットにリカバリーリストに挙げられている印画データを送信する(S36)。
一方、同じサイズの印画用メディアを有し、“IDLE”状態にあるプリンタユニットが無い場合には、印画処理中にあるプリンタユニットの空きバッファに印画データを送信する(S28)。
空きバッファがあるプリンタユニットへの送信は、エラーが無いプリンタユニットであって、一番小さな画像シリアル番号を送信しているプリンタユニットに対して行う。この送信において、はじめに、印画を中止するコマンドを送信する(S29)。
中止コマンドを送信したプリンタユニットが“IDLE”状態になった後(S30)、そのプリンタユニットのライフカウンタのカウンタ値とアプリケーションカウンタのカウンタ値を取得する。ライフカウンタとアプリケーションカウンタのカウンタ値は、ユーザアプリケーションがステータスAPI3の関数を実行することで取得することができる(S31)。
アプリケーションカウンタのカウンタ値とライフカウンタのカウンタ値との差を算出する。カウンタ値の差は、リカバリーすべき印画データの個数を表している。このカウンタ値の差が例えば“2”の場合には、前々回に送信した印画データと前回に送信した印画データがリカバリーすべき印画データである。また、カウンタ値の差が“1”の場合には、前回に送信した印画データがリカバリーすべき印画データである。印画データのリカバリーは、リカバリーすべき印画データをリカバリーリストに追加し、このリカバリーリストに挙げられている印画データを送信することで行う。
そこで、カウンタ値の差と“2”とを比較する(S32)。カウンタ値の差が“2”である場合には、2つ前の印画データである前々回送信の印画データをリカバリーリストに追加し(S33)、さらに、1つ前の印画データである前回送信の印画データをリカバリーリストに追加する(S34)。
カウンタ値の差が“1”である場合には(S35)、1つ前の印画データである前回送信の印画データをリカバリーリストに追加する(S34)。
カウンタ値の差が“2”でも“1”でもない場合には(S32,35)、リカバリーリストの印画データを、画像シリアル番号の小さい順でプリンタユニットを一台選択し印画データを再送信して再印画処理を行う(S36)。
リカバリー処理では、印画物を廃棄せずに処理する場合と印画物を廃棄して処理する場合がある。これは、エラー発生時において、リカバリー先の画像シリアル番号が、エラーが発生した画像シリアル番号より後の順番であるときには、先に順番の画像シリアル番号はエラーによって排出されないため、後の順番の画像シリアル番号の印画物を排出することができず、廃棄しなければならない場合が生じる。
図8,図9は印画物を廃棄せずに処理する場合を示し、図10〜12は印画物を廃棄して処理する場合を示している。
はじめに、印画物を廃棄せずに行うリカバリー処理について図8,9を用いて説明する。図8,9では、2つの受信バッファの処理の例を示し、プリンタユニット7A〜7Dはそれぞれ2つの受信バッファ7a,7bを備え、はじめの状態において各プリンタユニットの受信バッファには印画データが格納されているものとする。また、ここでは、プリントシステムは、印画物を印画データD1〜D8の順序で排出する排出制御を行うものとする。
図8中では、印画データをD1〜D8で示し、はじめに、プリンタユニット7Aの受信バッファ7a,7bには印画データD1,D5が格納され、プリンタユニット7Bの受信バッファ7a,7bには印画データD2,D6が格納され、プリンタユニット7Cの受信バッファ7a,7bには印画データD3,D7が格納され、プリンタユニット7Cの受信バッファ7a,7bには印画データD4,D8が格納されているものとする(図8(a))。
この状態において、各プリンタユニット7A〜7Dは、受信バッファ7aに格納される印画データD1〜D4を読み出して印画処理を行う。ここで、プリンタユニット7Cが印画データD3の印画処理においてエラーが発生した場合には、ユーザアプリケーション2は、ステータスAPI3によってプリンタユニット7Cのエラーを検出する。エラーを検出すると、プリンタユニット7Cのライフカウンタのカウンタ値を取得し、そのカウンタ値から印画がどこまで終了したかを確認し、プリンタユニット7Cに送信した印画データD3,D7をリカバリーリストに追加する(図8(b))。
次に、ユーザアプリケーション2は、エラーを検出すると、リカバリー処理が必要な場合には、現在処理中の印画データの中で一番小さな画像シリアル番号の印画データを処理しているプリンタユニットに「印画中止」コマンドを送信する。一番小さな画像シリアル番号とするには、排出順序が印画データD1〜D8の順序に設定されているためである。
ここでは、印画データD1の印画物が排出されているため、印画データD2を印画処理しているプリンタユニット7Bに対して「印画中止」コマンドを送信する(図8(c))。
「印画中止」コマンドを受信したプリンタユニット7Bは、印画データD2の印画処理を最後まで行う。印画データD2の印画物は排出処理が可能であるため、印画物の排出を行い、残りの受信バッファに格納している印画データD6をクリアし、プリンタユニット7Bのステータス状態が“IDLE”になるまで待機する。プリンタユニット7Bのステータス状態が“IDLE”となった後、ユーザアプリケーション2はプリンタユニット7Bのライフカウンタのカウンタ値を取得し、どの印画データまで出力されたかを確認する。ここでは、印画データD2は出力され、印画データD6がクリアされているため、印画データD6をリカバリーリストに追加する(図8(d))。
次に、ユーザアプリケーション2は、「印画中止」コマンドを送信したプリンタユニット7Bに対して、リカバリーリストに挙げられた印画データを画像シリアル番号の小さい順番で送信する(図9(a))。リカバリーリストから印画データD3,D6をプリンタユニット7Bの受信バッファに送信することで、プリンタユニット7Bは印画データD3の印画処理を開始する(図9(b))。
プリンタユニット7Bにおいて、印画データD3の印画処理が終了すると、ユーザアプリケーション2の排出制御によって印画データD3の印画物を排出し、プリンタユニット7Bは、印画データD6の印画処理を開始する。ここで、印画データD1,D2,D3の印画物が排出され、次の排出順は印画データD4の印画物である。そのため、印画データD6の印画処理が終了した場合であっても、プリンタユニット7Dの印画データD4の印画処理が終了し、さらに、プリンタユニット7Aの印画データD5の印画処理が終了して排出されるまで、印画データD6の印画物は排出されずに待機する(図9(c))。
図9(d)は、プリンタユニット7Dの印画データD4の印画処理が終了して排出された状態を示している。
次に、印画物を廃棄するリカバリー処理について図10〜12を用いて説明する。図10〜12では、2つの受信バッファの処理の例を示し、プリンタユニット7A〜7Dはそれぞれ2つの受信バッファ7a,7bを備え、はじめの状態において各プリンタユニットの受信バッファには印画データが格納されているものとする。また、ここでは、プリントシステムは、印画物を印画データD1〜D8の順序で排出する排出制御を行うものとする。
図10中では、印画データをD1〜D8で示し、はじめに、プリンタユニット7Aの受信バッファ7a,7bには印画データD1,D5が格納され、プリンタユニット7Bの受信バッファ7a,7bには印画データD2,D6が格納され、プリンタユニット7Cの受信バッファ7a,7bには印画データD3,D7が格納され、プリンタユニット7Cの受信バッファ7a,7bには印画データD4,D8が格納されているものとする(図10(a))。
この状態において、各プリンタユニット7A〜7Dは、受信バッファ7aに格納される印画データD1〜D4を読み出して印画処理を行う。ここで、プリンタユニット7Aが印画データD1の印画処理においてエラーが発生した場合には、ユーザアプリケーション2は、ステータスAPI3によってプリンタユニット7Aのエラーを検出する。エラーを検出すると、プリンタユニット7Aのライフカウンタのカウンタ値を取得し、そのカウンタ値から印画がどこまで終了したかを確認し、プリンタユニット7Aに送信した印画データD1,D5をリカバリーリストに追加する(図10(b))。
次に、ユーザアプリケーション2は、エラーを検出すると、リカバリー処理が必要な場合には、現在処理中の印画データの中で一番小さな画像シリアル番号の印画データを処理しているプリンタユニットに「印画中止」コマンドを送信する。一番小さな画像シリアル番号とするには、排出順序が印画データD1〜D8の順序に設定されているためである。
ここでは、印画データD1の次に小さな画像シリアル番号の画像データはD2であるため、この画像データD2を印画処理しているプリンタユニット7Bに対して「印画中止」コマンドを送信する(図10(c))。
「印画中止」コマンドを受信したプリンタユニット7Bは、印画データD2の印画処理を最後まで行う。印画データD1の印画物はエラー発生によって排出されておらず、印画データD2の印画物は排出処理を行うことができないため、印画物を廃棄する。印画物の廃棄は例えばカットすることで行う。また、プリンタユニット7Bの他方の受信バッファに格納される印画データD6はクリアしてステータスを“IDLE”状態とする。
ユーザアプリケーション2は、「印画中止」コマンドを送信したプリンタユニット7Bが“IELD”状態となるのを待ち、“IDLE”状態を確認した後、プリンタユニット7Bのライフカウンタのカウンタ値を取得し、どのデータまで出力したかを確認する。ここでは、印画データD2の印画物は破棄され、印画データD6はクリアされているため、印画データD2,D6をリカバリーリストに追加する(図10(d))。
次に、ユーザアプリケーション2は、「印画中止」コマンドを送信したプリンタユニット7Bに対して、リカバリーリストに挙げられた印画データを画像シリアル番号の小さい順番で送信する(図11(a))。リカバリーリストから印画データD1,D2をプリンタユニット7Bの受信バッファに送信することで、プリンタユニット7Bは印画データD1の印画処理を開始する(図11(b))。
プリンタユニット7Bにおいて、印画データD1の印画処理が終了すると、ユーザアプリケーション2の排出制御によって印画データD1の印画物を排出し、プリンタユニット7Bは、印画データD2の印画処理を開始する(図11(c))。
プリンタユニット7Bにおいて、印画データD2の印画処理が終了すると、ユーザアプリケーション2の排出制御によって印画データD2の印画物を排出し、リカバリーリストから印画データD5,D6をプリンタユニット7Bの受信バッファに送信することで、プリンタユニット7Bは印画データD5の印画処理を開始する(図11(d))。
以後、印画物の排出順に従って、プリンタユニット7Cの印画データD3の印画物を排出し(図12(a))、プリンタユニット7Dの印画データD4の印画物を排出し(図12(b))、プリンタユニット7Bの印画データD5の印画物を排出し(図12(c))、プリンタユニット7Bの印画データD6の印画物を排出する(図12(d))。
次に、印画用メディアが不足したメディアニアエンドの状態における処理について図13〜図20を用いて説明する。
図13は、メディアニアエンドのエラー時における処理を説明するためのフローチャートであり、図14は説明図である。ユーザアプリケーション2は、ステータスAPI3によってプリンタユニット7A〜7Dのメディアニアエンドの状態を取得することでエラー検知することができる。ここで、メディアニアエンドは、印画用メディアの残量が多少の余裕を有して減少した状態を意味する。このメディアニアエンドであるか否かの判定は、印画用メディアの残量が許容値に達したことで検出することができる。この許容値は、予め任意に設定しておくことができる(S101)。
メディアニアエンドのエラーを検出していない場合には(S101)、2個の受信バッファを用い(S103)、メディアニアエンドを検出した場合には(S101)、1個の受信バッファを用いる(S102)。この受信バッファの有効な個数状態において、各受信バッファに空きバッファが有る場合には印画処理を行い(S105)、各受信バッファに空きバッファが無い場合には、別のプリンタユニットに切り替え同様の処理を行う(S106)。
図14(a)は、受信バッファ7a,7bに印画データD1,D2が格納され、印画データD1が印画処理されている状態を示している。印画データD1の印画処理が終了して排出された後、受信バッファ7bに格納される印画データD2が印画処理され、受信バッファ7aには次の印画データD3が格納される(図14(b))。
ここで、メディアニアエンド検出によって、印画用メディアの残量が少ないことが検出されると、有効な受信バッファの個数を1個とする。受信バッファ7aには印画データD3が格納されて印画処理が行われているため、有効な受信バッファの個数を1個とすることによって、受信バッファ7bへの印画データの送信は行われない。印画データD3は、印画処理が終了した後に排出される(図14(c))。
印画データD3の印画物が排出された後は、受信バッファ7aあるいは受信バッファ7bの何れか一つのみを有効なバッファとする(図14(d))。
図15は、メディアエンドエラーによるリカバリー動作を制御する構成例を説明するための図であり、ユーザアプリケーションが行うソフトウエア処理の機能をブロック図で示すものである。
図15において、メディアエンドエラーによる印画データの送信制御機能は、プリンタユニットへの印画データの送信を制御する送信制御部10、各プリンタユニットにおけるカウンタ値を計数するカウンタ部11A〜11D、およびカウンタ値に基づいてメディアニアエンドを判定する判定部12によって構成することができる。
送信制御部10は、判定部12のメディアニアエンドの判定に基づいて、メディアニアエンドが検出された場合に印画データの送信先であるプリンタユニットを切り替える切替部10a、メディアニアエンドが検出されない場合に印画データをプリンタユニットに送信する印画データ送信部10b、および送信する印画データを記憶しておく印画データ記憶部10cを備える。
各カウンタ部11A〜11Dは、ライフカウンタ、アプリケーションカウンタ、およびメディアカウンタの各カウンタ手段を有する。ライフカウンタは、印画済みの印画データの個数を計数するカウンタであり、プリンタ動作に基づいてカントアップする。アプリケーションカウンタは送信済み印画データの個数を計数するカウンタであり、ユーザアプリケーションのプリンタユニットへの送信動作に基づいてカントアップする。メディアカウンタはプリンタユニットが備える印画用メディアの残量を計数するカウンタであり、対応関係にあるインクリボンの残り数から算出することができる。インクリボンの残り数から算出する場合には、インクリボンカセットに設けたRFIDから取得することができる。
判定部12は、各プリンタユニットが備える前記したメディアカウンタから取得したカウンタ値からメディアニアエンドの状態を判定し、ライフカウンタとアプリケーションカウンタのカウンタ値の差とメディアニアエンドの状態とから送信制御部10を制御する。
図16はメディアニアエンド時のリカバリー動作を説明するためのフローチャートである。ここでは、メディアニアエンドは、RFIDに記憶されるインクリボンの残り枚数から推定する。RFIDはカウンタを備え、プリンタユニット側から印画動作を行ったことを取得し、印画動作を行う毎に減算することによって、インクリボンの残り枚数を計数する。インクリボンを用いて印画用メディアに印画画像を転写することで印刷を行う場合には、インクリボンの残り枚数と印画用メディアの残量との間には所定に関係があり、インクリボンの残り枚数から印画用メディアの残量を推定することができる。
例えば、RFIDのカウンタで計数するインクリボンの残り枚数が少なくなり、予め定められた枚数となったことを検出した場合には、印画用メディアの残量が少なくなりメディアニアエンドの状態となったと推定する。本発明のプリントシステムは、このメディアニアエンド状態の検出に基づいて、2個の受信バッファの内から1個の受信バッファのみを使用するようにする。
メディアニアエンドは、印画が終了して次の印画のための頭出しを行うときにエンド検出される。このとき受信バッファに次の印画データが残っていると、その印画データを他のプリンタユニットに再送信するリカバリーが必要となるが、本発明のプリントシステムではプリンタユニットの受信バッファを1個のみを使用するようにすることで、メディアニアエンド検出時に受信バッファには印画データが残っていないため、リカバリーを行う必要がない。
ユーザアプリケーション2は、外部あるいは内部で発生した印画要求に基づいて印画処理を開始する(S41)。この印画要求がある場合、プリンタユニットにおいて印刷ジョブの有無を検索する。この印刷ジョブの有無は、例えば、ユーザアプリケーション内の印刷キューに各プリンタユニットに対する印画データが保持されているかによって判定することができる(S42)。
判定したプリンタユニットに対して印刷ジョブが設定されていない場合には(S42)、プリンタ1が備える別のプリンタユニットに切り替えた後(S53)、S41に戻って処理を行う。
判定したプリンタユニットに対して印刷ジョブが設定されている場合には(S42)、そのプリンタユニットのステータスを取得し、エラーが発生していないかを確認する(S43)。エラー状態のステータスは、ユーザアプリケーションがステータスAPI3の関数を実行することで取得することができる。取得したエラーステータスからエラーが有ることが確認された場合には、エラー処理を実行する(S54)。
取得したエラーステータスからエラーが無いことが確認された場合には(S43)、プリンタユニットの印画済みの印画データの個数を計数するライフカウンタのカウンタ値を取得する。ライフカウンタのカウンタ値は、ユーザアプリケーションがステータスAPI3の関数を実行することで取得することができる。また、プリンタユニットの送信済み印画データの個数を計数するアプリケーションカウンタのカウンタ値を取得する。アプリケーションカウンタのカウンタ値は、ユーザアプリケーションがステータスAPI3の関数を実行することで取得することができる(S44)。
再度、プリンタユニットのステータスを取得し、エラーが発生していないかを確認する(S45)。取得したエラーステータスからエラーが有ることが確認された場合には、エラー処理を実行する(S54)。
S45の工程において、エラーが無いことが確認された場合には、メディアカウンタからインクリボンの残り枚数をRFIDから取得する(S46)。ここで、残り枚数の初期値として印刷可能枚数に+50枚の余裕枚数分を加えた枚数を設定している。
印画メディアの印刷可能枚数および初期値は、印画メディアの種類に応じて定めることができる。表1は一例を示している。
表1に示す印画メディアは、写真用の印画用紙の例である。
そこで、太くした残り枚数から50を減算した(残り枚数−50)の値を算出し、この(残り枚数−50)の値を設定値(例えば5)と比較する。この比較処理はメディアニアエンドを検出する処理であり、(残り枚数−50)の値が設定値以下となったことによってメディアニアエンドとする。この設定値は、RDIFに記録される残り枚数の値が実際のインクリボンの残り枚数と一致している場合には、“0”に設定することができるが、インクリボンの使用状況によってRDIFに記録される残り枚数の値と実際のインクリボンの残り枚数とは必ずしも一致しないため、残り枚数のマージン分として例えば“5”を設定するものである。この設定値は必ずしも“5”である必要はなく、プリンタユニットの使用状況等に応じて任意に定めても良い(S47)。
ここで、残り枚数の多少を、空きバッファの有無を判定する空きバッファ判定値(Judge)に対応させる。例えば、(残り枚数−50)の値が設定値以下の場合((残り枚数−50)≦5)には、空きバッファ判定値(Judge)を“0”に設定し(S48)、(残り枚数−50)の値が設定値よりも大きい場合((残り枚数−50)>5)には、空きバッファ判定値(Judge)を“1”に設定する(S49)。
この空きバッファ判定値(Judge)は、受信バッファに残っている未印画処理の印画データの個数と比較することで、そのプリンタユニットで印画処理を行うか、あるいは別のプリンタユニットに切り替えて印画処理を行うかを判定するための指標として用いるものである。
(残り枚数−50)の値が設定値以下の場合((残り枚数−50)≦5)は、印画用メディアが少なくメディアエンドが発生する可能性の有る状態である。このときの空きバッファ判定値(Judge)“0”と未印画処理の印画データの個数とを比較し(S50)、未印画処理の印画データが1個あるいは2個残っている場合には、そのプリンタユニットで印画を行うことはできないため、別のプリンタユニットに切り替える(S53)。なお、未印画処理の印画データの個数が0であって、印画すべき印画データが残っていない場合には、別のプリンタユニットに切り替えることなく、そのプリンタユニットでの印画を続ける(S51)。
また、(残り枚数−50)の値が設定値よりも大きい場合((残り枚数−50)>5)は、印画用メディアが十分であって印画処理を行うことができる状態である。このときの空きバッファ判定値(Judge)“1”と未印画処理の印画データの個数とを比較し(S50)、未印画処理の印画データが2個残っている場合には、そのプリンタユニットで印画を行うことはできないため、別のプリンタユニットに切り替え(S53)、一方、未印画処理の印画データが0又は1個残っている場合には、そのプリンタユニットで印画を行う(S51)。S51の印画処理を行った後、アプリケーションカウンタおよびライフカウンタをカウントアップする(S52)。
以下の表2,3はこの関係を示している。
図17,図18はメディアニアエンド検出時のリカバリー動作を説明するための説明図である
図17(a)〜(f)は、空きバッファ判定値(Judge)が「1」の場合を示し、図17(g),(h)空きバッファ判定値(Judge)が「0」の場合を示している。
空きバッファ判定値(Judge)が「1」の場合、ライフカウンタCLが“N”のとき、初期化によってアプリケーションカウンタCAは“N”となる。カウンタ値差は“0”である。このとき2つの受信バッファはともに空きバッファである。
印画データが送信されると、アプリケーションカウンタCAは“N+1”となり、受信バッファの一方に印画データが格納され、空きバッファは“1”となる(図17(c))。さらに、印画データが送信されると、アプリケーションカウンタCAは“N+2”となり、受信バッファの他方に印画データが格納され、空きバッファは“0”となる(図17(d))。この状態で印画データが送信されると、カウンタ差が2であるため、他のプリンタユニットに送信される。
空きバッファ判定値(Judge)が「0」の場合には、2つの受信バッファの一方のみを使用する(図17(g))。印画データが送信されると、アプリケーションカウンタCAは“N+3”となり、受信バッファの一方に印画データが格納され、空きバッファは“0”となる(図17(h))。
さらに、この状態で印画データが送信されると、カウンタ差が1であるため、他のプリンタユニットに送信される。
図18はメディアニアエンド検出時のリカバリー動作を説明するための説明図である。
図18では、2つの受信バッファの処理の例を示し、プリンタユニット7A〜7Dはそれぞれ2つの受信バッファ7a,7bを備え、はじめの状態において各プリンタユニットの受信バッファには印画データが格納されているものとする。また、プリントシステムは、印画物を印画データD1〜D8の順序で排出する排出制御を行うものとする。
図18中では、印画データをD1〜D8で示し、はじめに、プリンタユニット7Aの受信バッファ7a,7bには印画データD1,D5が格納され、プリンタユニット7Bの受信バッファ7a,7bには印画データD2,D6が格納され、プリンタユニット7Cの受信バッファ7a,7bには印画データD3,D7が格納され、プリンタユニット7Cの受信バッファ7a,7bには印画データD4,D8が格納されているものとする(図18(a))。
この状態において、各プリンタユニット7A〜7Dは、受信バッファ7aに格納される印画データD1〜D4を読み出して印画処理を行う。ここで、プリンタユニット7Aが印画データD1の印画処理において、プリンタユニット7Aのメディアニアエンドエラーが発生した場合には、ユーザアプリケーション2は、ステータスAPI3によってプリンタユニット7Aのメディアニアエンドエラーを検出する。メディアニアエンドエラーを検出すると、プリンタユニット7Aの受信バッファの使用個数を“1”とする(図18(b))。
印画データD1の印画処理および排出処理が終了した後、次の印画データD9はプリンタユニット7Aに送信することができないため(図18(c))、プリンタの切り替えを行って空きバッファが存在するプリンタユニット7Bの受信バッファに送信する(図18(d))。
図19、図20は本発明のプリンタユニットの切り替え動作を説明するためのタイミングチャートである。
図19は印画メディアの残量が十分にあり、空きバッファ判定値(Judge)が「1」の場合を示し、図20は印画メディアの残量が不足し、空きバッファ判定値(Judge)が「0」の場合を示している。
図19において、はじめに、アプリケーションカウンタのカウンタ値(図19(d))をライフカウンタのカウンタ値N(図19(c))に基づいてNに初期化する(図19中のa)。これによって、カウンタ値差は“0” (図19(e))、空きバッファ数は“2” (図19(f))となる。ここで、空きバッファ判定値(Judge)は“1” (図19(g))であるから、プリンタユニットの切り替えは行われない(図19(h),(i))。
この状態で印画データを送信する場合には(図19(a)のb)、空きバッファ判定値(Judge)は“1” (図19(g))であるから、プリンタユニットの切り替えを行うことなく(図19(h),(i))、送信が行われる。これによって、アプリケーションカウンタのカウンタ値は“N”から“N+1”となり(図19(d))、カウンタ値差は“1” (図19(e))、空きバッファ数は“1” (図19(f))となる。
この状態で印画データを送信する場合には(図19(e)のc)、空きバッファ判定値(Judge)は“1” (図19(g))であるから、プリンタユニットの切り替えを行うことなく(図19(h),(i))、送信が行われる。これによって、アプリケーションカウンタのカウンタ値は“N+1”から“N+2”となり(図19(d))、カウンタ値差は“2” (図19(e))、空きバッファ数は“0” (図19(f))となる。
さらに、この状態で印画データを送信する場合には(図19(a)のd)、カウンタ値差は“2” (図19(e))であり、空きバッファ判定値(Judge)は“1” (図19(g))であるから、プリンタユニットの切り替えが行われる(図19(h),(i))。
プリンタ動作は、印画処理、カット処理、シュータ、裏面印刷、およびソータの処理が順に行われる。プリンタ動作が行われると(図19(b)のe)、ライフカウンタのカウンタ値は“N”から“N+1”となり(図19(c))、カウンタ値差は“1” (図19(e))、空きバッファ数は“1” (図19(f))となる。さらに、プリンタ動作が行われると(図19(b)のf)、ライフカウンタのカウンタ値は“N+1”から“N+2”となり(図19(c))、カウンタ値差は“0” (図19(e))、空きバッファ数は“2” (図19(f))となる。
図20において、はじめに、アプリケーションカウンタのカウンタ値(図20(d))をライフカウンタのカウンタ値N(図20(c))に基づいてNに初期化する(図20中のa)。これによって、カウンタ値差は“0” (図20(e))、空きバッファ数は“2” (図20(f))となる。ここで、空きバッファ判定値(Judge)は“0” (図20(g))であるから、プリンタユニットの切り替えは行われない(図20(h),(i))。
この状態で印画データを送信する場合には(図20(a)のb)、空きバッファ判定値(Judge)は“1” (図20(g))であるから、プリンタユニットの切り替えを行うことなく(図20(h),(i))、送信が行われる。これによって、アプリケーションカウンタのカウンタ値は“N”から“N+1”となり(図20(d))、カウンタ値差は“1” (図20(e))、空きバッファ数は“1” (図20(f))となる。
この状態で印画データを送信する場合には(図20(e)のc)、空きバッファ判定値(Judge)は“0” (図20(g))であるから、プリンタユニットの切り替えて別のプリンタユニットで印画を行う(図20(h),(i))。これによって、アプリケーションカウンタのカウンタ値は“N+1”のままであり(図20(d))、カウンタ値差は“1” (図19(e))、空きバッファ数は“1” (図20(f))のままである。
さらに、この状態で印画データを送信する場合には(図20(a)のd)、空きバッファ判定値(Judge)は“0” (図20(g))であるから、プリンタユニットの切り替えて別のプリンタユニットで印画を行う(図20(h),(i))。これによって、アプリケーションカウンタのカウンタ値は“N+1”のままであり(図20(d))、カウンタ値差は“1” (図20(e))、空きバッファ数は“1” (図20(f))のままである。
ここで、プリンタ動作が行われると(図20(b)のe)、ライフカウンタのカウンタ値は“N”から“N+1”となり(図20(c))、カウンタ値差は“0” (図20(e))、空きバッファ数は“2” (図20(f))となる。
この状態で印画データを送信する場合には(図20(a)のf)、空きバッファ判定値(Judge)は“1” (図20(g))であるから、プリンタユニットの切り替えを行うことなく(図20(h),(i))、送信が行われる。これによって、アプリケーションカウンタのカウンタ値は“N+1”から“N+2”となり(図20(d))、カウンタ値差は“1” (図20(e))、空きバッファ数は“1” (図20(f))となる。
この状態で印画データを送信する場合には(図20(a)のg)、空きバッファ判定値(Judge)は“0” (図20(g))であるから、プリンタユニットの切り替えて別のプリンタユニットで印画を行う(図20(h),(i))。これによって、アプリケーションカウンタのカウンタ値は“N+1”のままであり(図20(d))、カウンタ値差は“1” (図20(e))、空きバッファ数は“1” (図20(f))のままである。
さらに、プリンタ動作が行われると(図20(b)のh)、ライフカウンタのカウンタ値は“N+1”から“N+2”となり(図20(c))、カウンタ値差は“0” (図20(e))、空きバッファ数は“2” (図19(f))となる。
なお、上記した構成例は一例であり、本発明はこれらの例に限定されるものではなく、各種変更を含むものである。また、上記した構成例では、2つの受信バッファの例について示しているが、本発明は、受信バッファの個数は2つに限られるものではなく、2つ以上の任意の個数とする構成に適用してもよい。