(57)【特許請求の範囲】
【請求項１】
印刷手段を分担して制御する複数の印刷制御装置と、前記印刷制御装置からのコマンドに基づいて印刷用のメカニカル機構を駆動制御する駆動制御手段とを備えた印刷装置における印刷制御装置であって、
第１のコマンドを入力する入力手段と、
前記印刷制御装置の内部で第２のコマンドを生成するコマンド生成手段と、
前記第１及び第２のコマンドを取得した順番に管理する管理手段と、
前記第１及び第２のコマンドを前記管理された順番で出力する指示手段と、
前記指示手段から受け付けたコマンドを前記駆動制御手段へ出力するための出力手段と、
前記複数の印刷制御装置の各出力手段に同じコマンドが揃うと、前記出力手段に当該コマンドを出力させる同期手段と、を備え、
前記出力手段は、前記指示手段から受け付けたコマンドが第１のコマンドであるか第２のコマンドであるかを判定し、前記第１のコマンドであれば前記同期手段による同期をとって当該第１のコマンドを出力し、一方、前記第２のコマンドであれば前記同期手段による同期をとらずに当該第２のコマンドを出力することを特徴とする印刷制御装置。
【請求項２】
他の印刷制御装置と通信するための通信手段を更に備え、
前記通信手段を介して前記他の印刷制御装置との間で前記第２のコマンドを送信し合う構成であることを特徴とする請求項１に記載の印刷制御装置。
【請求項３】
前記印刷装置に備えられた複数の部品が前記複数の印刷制御装置に分担して接続されており、
前記分担する前記部品の状態を検出する検出手段を更に備え、
前記コマンド生成手段は、前記検出手段の検出結果に基づき前記第２のコマンドを生成することを特徴とする請求項１又は２に記載の印刷制御装置。
【請求項４】
前記第２のコマンドは、前記検出手段がエラーを検出したときに前記コマンド生成手段により生成されるエラーコマンドであることを特徴とする請求項３に記載の印刷制御装置。
【請求項５】
前記複数の印刷制御装置は、印刷データを生成するホスト制御手段とそれぞれ前記入力手段を介して接続されるとともに、前記駆動制御手段とは前記複数のうち一の印刷制御装置が前記入力手段を介して接続される構成であり、
前記駆動制御手段からの第１のコマンドは、前記一の印刷制御装置を介して他の印刷制御装置へ送信される構成であり、
前記管理手段は、前記入力手段を介して前記ホスト制御手段から取得した第１のコマンドを取得順に管理する第１の管理手段と、前記駆動制御手段から取得した第１のコマンドを取得順に管理する第２の管理手段とを備えたことを特徴とする請求項１乃至４のいずれか一項に記載の印刷制御装置。
【請求項６】
前記第１の管理手段と前記第２の管理手段との間には優先順位が設定され、
前記管理手段は、前記第１の管理手段と前記第２の管理手段とのうち設定された優先順位の高い方のものから順にコマンドを出力させる出力部を備えたことを特徴とする請求項５に記載の印刷制御装置。
【請求項７】
印刷データに基づいて印刷手段を分担して制御する複数の印刷制御装置と、前記印刷制御装置からのコマンドに基づいて印刷用のメカニカル機構を駆動制御する駆動制御手段とを備えた印刷装置であって、
前記印刷制御装置として、請求項１乃至６のいずれか一項に記載の前記印刷制御装置を備えたことを特徴とする印刷装置。
【請求項８】
印刷手段を分担して制御する複数の印刷制御装置と、前記複数の印刷制御装置からのコマンドに基づき印刷用のメカニカル機構を駆動制御する駆動制御手段とを備えた印刷装置における印刷制御方法であって、
第１のコマンドを入力する入力段階と、
前記印刷制御装置の内部で第２のコマンドを生成するコマンド生成段階と、
前記第１及び第２のコマンドを取得した順番に管理する管理段階と、
前記第１及び第２のコマンドを前記管理された順番で出力する指示段階と、
前記指示段階で出力されて受け付けたコマンドが第１のコマンドか第２のコマンドであるかを判定し、前記第１のコマンドであれば同期手段により前記各印刷制御装置の各出力手段に同じコマンドが揃う同期をとって前記駆動制御手段へ出力し、一方、前記第２のコマンドであれば前記同期手段による同期をとらずに前記駆動制御手段へ出力する出力段階と、
を備えたことを特徴とする印刷装置における印刷制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷装置における印刷手段を制御する印刷制御装置、印刷装置及び印刷装置における印刷制御方法に関する。
【背景技術】
【０００２】
例えば特許文献１には、インクを噴射する記録ヘッド（流体噴射手段）を複数個備えた印刷装置が開示されている。この印刷装置では、往復移動可能に設けられたキャリッジに、複数の印刷ヘッドと、複数の印刷ヘッドを駆動制御する複数の駆動制御部とが搭載されている。また、印刷装置の本体側には、各駆動制御部にデータを転送する複数のデータ処理部が搭載されている。キャリッジの往復移動を制御する主制御部には、所定数の印刷ヘッドにつき１つの駆動制御部と１つのデータ処理部とを１組とする回路セットが複数組接続されている。所定数の印刷ヘッドにつき１組の回路セットで処理を分担する構成なので、この印刷装置によれば、データ処理部１個当たりの処理の負荷が軽減される。
【０００３】
さらに記録ヘッドが多くなる場合は、主制御部自体を二以上設け、主制御部とデータ処理部と駆動制御部とを１組の回路セットとする印刷制御装置を１つの基板で構成し、このような基板を複数備える印刷装置を構成するとよい。このように印刷装置を構成すれば、多数の記録ヘッドを複数の印刷制御装置が分担して制御するため、記録ヘッドの個数が増えるに連れて、印刷制御装置の個数を増やすことにより、印刷制御装置１個当たりの負担を相対的に小さくしつつ、必要な印刷処理速度を確保することができる。
【０００４】
また、複数の記録ヘッドの制御を担当する各印刷制御装置と、キャリッジの駆動や印刷媒体（シート）の搬送を制御する駆動制御装置とを別々に構成し、各印刷制御装置が印刷データから取得したコマンドを駆動制御装置へ送信する構成を採用した場合、各印刷制御装置から駆動制御装置へのコマンドの出力タイミングを同期させる必要がある。例えば、１つの印刷制御装置をマスター（マスター側の印刷制御装置）とし、他の印刷制御装置をスレーブ（スレーブ側の印刷制御装置）とする。そして、マスター側の印刷制御装置は、スレーブ側の印刷制御装置から受信したコマンドと、自身のコマンドとが揃った段階で、キャリッジ系及び搬送系の駆動制御装置（メカコントローラー等）へコマンドを送信する構成とする。このような構成であれば、別々の印刷制御装置により制御される各記録ヘッドのインク噴射処理と、駆動制御装置により制御される印刷媒体の搬送処理とが行われるタイミングを適切に制御することができる。
【０００５】
また、複数の印刷制御装置間で複数の記録ヘッドを分担するだけでなく、記録ヘッドへインクを供給する複数のインクカートリッジ、記録ヘッドのノズル目詰まりを検査するノズル検査装置など、印刷装置に複数個設けられるこれらの部品についても、複数の印刷制御装置に分担して接続し、各印刷制御装置間で負担を分担することが望ましい。ここで、通常、インクカートリッジには、インク残量やインク色などのインク関連情報が書き込まれた記憶素子が設けられ、各印刷制御装置は、担当するインクカートリッジの記憶素子にアクセスしてインク種ごとのインク残量などのインク関連情報を分担して管理する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００４−２５５５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、複数の印刷制御装置において、ある印刷制御装置のみにその内部で個別にコマンド（内部コマンド）が発生する場合がある。例えば、印刷制御装置が担当するインクカートリッジのインク切れエラー（インクエンドエラー）やノズル検査装置のノズル目詰まりエラーなど、担当する記録ヘッド、インクカートリッジ、ノズル検査装置などの部品におけるエラーなどは、印刷制御装置の内部で発生した内部コマンドに該当する。
【０００８】
しかしながら、例えばマスター側の印刷制御装置で内部コマンドが発生すると、他のスレーブ側の印刷制御装置では内部コマンドが発生していない。このため、マスター側の印刷制御装置が内部コマンドを出力する際に同期をとるために、スレーブ側の印刷制御装置から同一の内部コマンドを待っても送られてくることがないので、この同期処理でタイムアウトになり内部コマンドを出力できないという問題がある。
【０００９】
本発明は、上記課題に鑑みてなされたものであり、その目的の一つは、複数の印刷制御装置間で出力すべき同じコマンドが揃わないために同期がとれず発生するエラーを低減できる印刷制御装置、印刷装置及び印刷装置における印刷制御方法を提供することにある。
【課題を解決するための手段】
【００１０】
上記目的の一つを達成するために、本発明は、印刷手段を分担して制御する複数の印刷制御装置と、前記印刷制御装置からのコマンドに基づいて印刷用のメカニカル機構を駆動制御する駆動制御手段とを備えた印刷装置における印刷制御装置であって、第１のコマンドを入力する入力手段と、前記印刷制御装置の内部で第２のコマンドを生成するコマンド生成手段と、前記第１及び第２のコマンドを取得した順番に管理する管理手段と、前記第１及び第２のコマンドを前記管理された順番で出力する指示手段と、前記指示手段から受け付けたコマンドを前記駆動制御手段へ出力する出力手段と、前記複数の印刷制御装置の各出力手段に同じコマンドが揃うと、前記出力手段に当該コマンドを出力させる同期手段と、を備え、前記出力手段は、前記指示手段から受け付けたコマンドが第１のコマンドであるか第２のコマンドであるかを判定し、前記第１のコマンドであれば前記同期手段による同期をとって当該第１のコマンドを出力し、一方、前記第２のコマンドであれば前記同期手段による同期をとらずに当該第２のコマンドを出力することを要旨とする。
【００１１】
この発明によれば、出力手段は、指示手段から受け付けたコマンドが第１のコマンドか第２のコマンドであるかを判定する。そして、出力手段は、第１のコマンドであれば同期手段による同期をとって駆動制御手段へ出力し、一方、第２のコマンドであれば同期手段による同期をとらずに駆動制御手段へ出力する。この結果、印刷制御装置の内部で発生した第２のコマンドが、他の印刷制御装置に存在しなくても、複数の印刷制御装置間で出力すべき同じコマンドが揃わないために同期がとれず発生するエラーを低減できる。
【００１２】
本発明の印刷制御装置では、他の印刷制御装置と通信するための通信手段を更に備え、前記通信手段を介して前記他の印刷制御装置との間で前記第２のコマンドを送信し合う構成である。
【００１３】
この発明によれば、印刷制御装置は通信手段を介して他の印刷制御装置との間で第２のコマンドを送信し合う。送信の結果、例えば一の印刷制御装置の内部で発生した第２のコマンドが、他の印刷制御装置にも存在することになる。但し、通信手段を介すると、第２のコマンドを内部で発生した一の印刷制御装置に比べ、他の印刷制御装置へは第２のコマンドはその通信所要時間分遅れて到達するため、その間に例えば第１のコマンドが各印刷制御装置に入力されると、各管理手段におけるコマンドの取得順が複数の印刷制御装置間でずれることが起こりうる。しかし、第２のコマンドは同期手段による同期をとることなく（つまり同じコマンドが揃わなくても）出力されるので、仮にコマンドの順番がずれていても、同期手段で同じコマンドが揃わないことに起因するエラーの発生を低減できる。
【００１４】
本発明の印刷制御装置では、前記印刷装置に備えられた複数の部品が前記複数の印刷制御装置に分担して接続されており、前記分担する前記部品の状態を検出する検出手段を更に備え、前記コマンド生成手段は、前記検出手段の検出結果に基づき前記第２のコマンドを生成する。
【００１５】
この発明によれば、印刷制御装置に分担して接続された部品の状態を検出する検出手段の検出結果に基づき生成された第２のコマンドは、その検出対象の部品を分担する一の印刷制御装置の内部のみに存在する。この場合でも、複数の印刷制御装置間で出力すべき同じコマンドが同期手段において揃わないことに起因するエラーの発生を低減できる。
【００１６】
本発明の印刷制御装置では、前記第２のコマンドは、前記検出手段がエラーを検出したときに前記コマンド生成手段により生成されるエラーコマンドである。
この発明によれば、検出手段がエラーを検出したときにコマンド生成手段によりエラーコマンドが生成される。エラーコマンドであるので、揃わずに出力されても問題はない。例えば１つの印刷制御装置のみでエラーコマンドが発生した場合でも、駆動制御手段によるメカニカル機構の動作は停止されるべきなので、揃わずに出力されても何ら問題はない。
【００１７】
本発明の印刷制御装置では、前記複数の印刷制御装置は、印刷データを生成するホスト制御手段とそれぞれ前記入力手段を介して接続されるとともに、前記駆動制御手段とは前記複数のうち一の印刷制御装置が前記入力手段を介して接続される構成であり、前記駆動制御手段からの第１のコマンドは、前記一の印刷制御装置を介して他の印刷制御装置へ送信される構成であり、前記管理手段は、前記入力手段を介して前記ホスト制御手段から取得した第１のコマンドを取得順に管理する第１の管理手段と、前記駆動制御手段から取得した第１のコマンドを取得順に管理する第２の管理手段とを備えている。
【００１８】
この発明によれば、ホスト制御手段から取得した第１のコマンドは第１の管理手段に取得順に管理され、駆動制御手段から取得した第１のコマンドは第２の管理手段に取得順に管理される。駆動制御手段から取得した第１のコマンドは、一の印刷制御装置に送られてから、他の印刷制御装置へ送られる。このため、一の印刷制御装置に送られた後、他の印刷制御装置へ到達するまでの間に、ホスト制御手段からのコマンドが送られてきた場合、一の印刷制御装置の管理手段に取得されるコマンドの取得順と他の印刷制御装置の管理手段に取得されるコマンドの取得順とが異なることになる。しかし、この取得順に拘らず、ホスト制御手段からの第１のコマンドは第１管理手段に管理され、駆動制御手段からの第１のコマンドは第２の管理手段に管理される。そして、各印刷制御装置の指示手段は、各印刷制御装置の第１の管理手段と第２の管理手段のうち対応するものからコマンドを出力させる。この結果、各指示手段が各出力手段へ出力する同じコマンドが揃うことになり、同期手段で同じコマンドが揃わないために同期がとれず発生するエラーを低減できる。
【００１９】
本発明の印刷制御装置では、前記第１の管理手段と前記第２の管理手段との間には優先順位が設定され、前記管理手段は、前記第１の管理手段と前記第２の管理手段とのうち設定された優先順位の高い方のものから順にコマンドを出力させる出力部を備えている。
【００２０】
この発明によれば、管理手段の出力部によって、第１の管理手段と第２の管理手段のうち設定された優先順位の高い方のものから順に第１のコマンドは出力される。この結果、出力部から出力される同じコマンドは揃うことになり、同期手段で同じコマンドが揃わないために同期がとれず発生するエラーを低減できる。
【００２１】
本発明は、印刷データに基づいて印刷手段を分担して制御する複数の印刷制御装置と、前記印刷制御装置からのコマンドに基づいて印刷用のメカニカル機構を駆動制御する駆動制御手段とを備えた印刷装置であって、前記印刷制御装置として、上記発明に係る印刷制御装置を備えていることを要旨とする。この発明によれば、上記発明に係る印刷制御装置を備えているので、この印刷装置によって、上記印刷制御装置の発明と同様の効果を得ることができる。
【００２２】
本発明は、印刷手段を分担して制御する複数の印刷制御装置と、前記複数の印刷制御装置からのコマンドに基づき印刷用のメカニカル機構を駆動制御する駆動制御手段とを備えた印刷装置における印刷制御方法であって、第１のコマンドを入力する入力段階と、前記印刷制御装置の内部で第２のコマンドを生成するコマンド生成段階と、前記第１及び第２のコマンドを取得した順番に管理する管理段階と、前記第１及び第２のコマンドを前記管理された順番で出力する指示段階と、前記指示段階で出力されて受け付けたコマンドが第１のコマンドか第２のコマンドであるかを判定し、前記第１のコマンドであれば前記各印刷制御装置からの同じコマンドが全て揃った段階で出力させる同期手段を介して前記駆動制御手段へ出力し、一方、前記第２のコマンドであれば前記同期手段を介さずに前記駆動制御手段へ出力する出力段階と、を備えたことを要旨とする。この発明によれば、上記印刷制御装置に係る発明と同様の効果を得ることができる。
【図面の簡単な説明】
【００２３】
【図１】第１実施形態における印刷システムの模式側面図。
【図２】記録ヘッドの底面とインク供給装置とを示す模式図。
【図３】印刷システムの電気的構成を示すブロック図。
【図４】マスター／スレーブの各コントローラーの機能構成を説明するブロック図。
【図５】ジョブ制御部の構成を示すブロック図。
【図６】（ａ）〜（ｄ）キューにおける処理を説明する模式図。
【図７】コマンドの出力処理を説明するブロック図。
【図８】メカコントローラーからのコマンドの入力処理を説明するブロック図。
【図９】（ａ）第１実施形態のキューにおける処理、（ｂ）第２実施形態のキューにおける処理をそれぞれ説明する模式図。
【図１０】第２実施形態のジョブ制御部の構成を示すブロック図。
【図１１】（ａ），（ｂ）第２実施形態の第１キューにおける処理を説明する模式図。
【発明を実施するための形態】
【００２４】
（第１実施形態）
以下、本発明をラテラル方式のインクジェット式プリンターの印刷制御装置に具体化した第１実施形態を図１〜図７に従って説明する。
【００２５】
図１は、ラテラル方式のインクジェット式プリンターを備えた印刷システムの模式図である。図１に示すように、印刷システム１００は、画像データを生成する画像生成装置１１０と、画像生成装置１１０から受信した画像データを基に印刷データを生成するホスト装置１２０と、ホスト装置１２０から受信した印刷データに基づく画像を印刷する印刷装置の一例としてのラテラル方式のインクジェット式プリンター（以下、単に「プリンター１１」と称す）とを備えている。
【００２６】
画像生成装置１１０は、例えばパーソナルコンピューターにより構成され、その本体１１１内のＣＰＵが画像作成用ソフトウェアを実行することで構築される画像生成部１１２を備える。ユーザーは、画像生成部１１２を起動して入力装置１１３の操作でモニター１１４上で画像を作成し、入力装置１１３を操作して画像の印刷を指示する。すると、その画像に係る画像データが所定の通信インターフェイスを介してホスト装置１２０へ送信される。
【００２７】
ホスト装置１２０は、例えばパーソナルコンピューターにより構成され、その本体１２１内のＣＰＵがプリンタードライバー用ソフトウェアを実行することで構築されるプリンタードライバー１２２を備える。プリンタードライバー１２２は、画像生成装置１１０から受信した画像データを基に印刷データを生成し、プリンター１１に設けられた制御装置Ｃへ送信する。制御装置Ｃは、プリンタードライバー１２２から受信した印刷データに基づいてプリンター１１を制御し、プリンター１１に印刷データに基づく画像を印刷させる。なお、モニター１２３には、プリンター１１に制御用設定値を入力設定するためのメニュー画面や印刷対象の画像等が表示される。
【００２８】
次に、図１に示すプリンター１１の構成について説明する。なお、以下における明細書中の説明において、「左右方向」、「上下方向」をいう場合は、図１等の図面に矢印で示した方向を基準として示すものとする。また、図１において手前側を前側、奥側を後側とする。
【００２９】
図１に示すように、プリンター１１は、直方体状の本体ケース１２を備える。本体ケース１２内には、長尺状のシート１３を繰り出す繰出し部１４と、そのシート１３にインクの噴射により印刷を施す印刷室１５と、その印刷によりインクが付着したシート１３に乾燥処理を施す乾燥装置１６と、乾燥処理が施されたシート１３を巻き取る巻取り部１７とが設けられている。
【００３０】
すなわち、本体ケース１２内におけるやや上寄りの位置には、本体ケース１２内を上下に区画する平板状の基台１８が設けられており、この基台１８よりも上側の領域が矩形板状の支持部材１９を基台１８上に支持してなる印刷室１５となっている。そして、基台１８よりも下側の領域において、シート１３の搬送方向で上流側となる左側寄りの位置に、繰出し部１４が配設されると共に、下流側となる右側寄りの位置に、乾燥装置１６及び巻取り部１７が配設されている。
【００３１】
図１に示すように、繰出し部１４には、前後方向に延びる巻き軸２０が回転自在に設けられ、その巻き軸２０に対してシート１３が予めロール状に巻かれた状態で一体回転可能に支持されている。すなわち、シート１３は、巻き軸２０が回転することにより、繰出し部１４から繰り出されるようになっている。また、繰出し部１４から繰り出されたシート１３は、巻き軸２０の右側に位置する第１ローラー２１に巻き掛けられて上方へ案内される。
【００３２】
一方、支持部材１９の左側であって下側の第１ローラー２１と上下方向で対応する位置には、第２ローラー２２が下側の第１ローラー２１と平行な状態で設けられている。そして、第１ローラー２１によって搬送方向が鉛直上方向に変換されたシート１３は、この第２ローラー２２に左側下方から巻き掛けられることにより、その搬送方向が水平右方向に変換されて支持部材１９の上面に摺接するようになっている。
【００３３】
また、支持部材１９の右側には、左側の第２ローラー２２と支持部材１９を挟んで対向する第３ローラー２３が第２ローラー２２と平行な状態で設けられている。なお、第２ローラー２２及び第３ローラー２３は各々の周面の頂部が支持部材１９の上面と同一高さとなるように位置調整されている。
【００３４】
印刷室１５内で左側の第２ローラー２２により搬送方向が水平右方向に変換されたシート１３は、支持部材１９の上面に摺接しつつ下流側となる右側に搬送された後、第３ローラー２３に右側上方から巻き掛けられることにより搬送方向が鉛直下方向に変換されて基台１８よりも下側の乾燥装置１６に向けて搬送されるようになっている。そして、乾燥装置１６内を通過することにより乾燥処理が施されたシート１３は、更に鉛直下方向に搬送された後、第４ローラー２４に巻き掛けられて搬送方向を水平右方向に変換され、この第４ローラー２４の右側に配設された巻取り部１７の巻取り軸２５が搬送モーター６１（図３参照）の駆動力に基づいて回転することによりロール状に巻き取られる。
【００３５】
図１に示すように、印刷室１５内における支持部材１９の前後両側には、左右方向に延びるガイドレール２６（図１では２点鎖線で示す）が対をなすように設けられている。ガイドレール２６の上面は支持部材１９の上面よりも高くなっており、両ガイドレール２６の上面には、矩形状のキャリッジ２７が第１キャリッジモーター６２（図３参照）の駆動に基づき両ガイドレール２６に沿って図１に示す主走査方向Ｘ（図１では左右方向）への往復移動が可能な状態で支持されている。また、キャリッジ２７は第２キャリッジモーター６３（図３参照）の駆動に基づき副走査方向（図１では紙面と直交する前後方向）への移動も可能となっている。そして、このキャリッジ２７の下面側には支持板２８を介して複数の記録ヘッド２９が支持されている。
【００３６】
支持部材１９の左端から右端までの一定範囲が印刷領域とされており、この印刷領域単位でシート１３は間欠的に搬送されるようになっている。そして、支持部材１９上に停止したシート１３に対してキャリッジ２７の往復移動に伴い記録ヘッド２９からインクが噴射されることでシート１３に印刷が施される。
【００３７】
なお、印刷時には、支持部材１９の下側に設けられた吸引装置３０が駆動され、支持部材１９の上面に開口する多数の吸引孔に及ぶ負圧による吸引力により、シート１３は支持部材１９の上面に吸着される。そして、シート１３への１回分の印刷が終わると、吸引装置３０の負圧が解除され、シート１３の搬送が行われるようになっている。
【００３８】
また、印刷室１５内において、第３ローラー２３よりも右側となる非印刷領域には、非印刷時に記録ヘッド２９のメンテナンスを行うためのメンテナンス装置３２が設けられている。メンテナンス装置３２は、記録ヘッド２９毎にキャップ３３と昇降装置３４とを備える。各キャップ３３は昇降装置３４の駆動により、記録ヘッド２９のノズル形成面３５（図２参照）に当接するキャッピング位置と、ノズル形成面３５から離間する退避位置との間を移動する。
【００３９】
また、図１に示すように、本体ケース１２内には、異なる色のインクをそれぞれ収容した複数（例えば８個）のインクカートリッジＩＣ１〜ＩＣ８が着脱可能に装着されている。そして、各インクカートリッジＩＣ１〜ＩＣ８はインク供給路７０Ａ，７０Ｂ等（図３参照）を通じて記録ヘッド２９に接続され、各記録ヘッド２９は各インクカートリッジＩＣ１〜ＩＣ８から供給されたインクを噴射する。このため、本例のプリンター１１では、８色のインクを用いたカラー印刷が可能となっている。なお、本体ケース１２においてインクカートリッジＩＣ１〜ＩＣ８の配置位置と対応する箇所には開閉式のカバー３８が設けられている。インクカートリッジＩＣ１〜ＩＣ８の交換作業はカバー３８を開けて行われる。
【００４０】
８個のインクカートリッジＩＣ１〜ＩＣ８は、例えば黒（Ｋ）、シアン（Ｃ）、マゼンタ（Ｍ）、イエロー（Ｙ）等の各インクを収容する。なお、保湿液を収容する保湿液カートリッジが装填される構成も採用できる。もちろん、インクの種類（色数）は適宜設定でき、黒インクだけでモノクロ印刷する構成や、インクを２色としたり、８色以外で３色以上の任意の色数としたりした構成も採用できる。
【００４１】
各インクカートリッジＩＣ１〜ＩＣ８はカートリッジホルダー（図示省略）を介して制御装置Ｃと電気的に接続されており、各インクカートリッジＩＣ１〜ＩＣ８に実装された不揮発性の記憶素子４７（図３参照）には、対応する色のインク残量情報が書き込まれるようになっている。
【００４２】
図２は、キャリッジの底面に設けられた複数の記録ヘッドと、各記録ヘッドへインクを供給するインク供給装置とを示す模式図である。図２に示すように、キャリッジ２７の下面側に支持された支持板２８には、複数個（本実施形態では１５個）の記録ヘッド２９がシート１３の搬送方向（図２において白抜き矢印で示す方向）と直交する幅方向（前後方向）に亘って千鳥状の配置パターンで支持されている。つまり、１５個の記録ヘッド２９は、副走査方向Ｙに沿って一定ピッチで２列で配列された記録ヘッド２９Ａ，２９Ｂが、副走査方向Ｙに半ピッチ分ずつずれた千鳥配置をとっている。そして、各記録ヘッド２９の下面となるノズル形成面３５には、多数のノズル３６が前後方向（副走査方向Ｙ）に沿って１列に配置されてなるノズル列３７が主走査方向Ｘに所定間隔をおいて複数列（本実施形態では８列）形成されている。
【００４３】
図２に示すように、各記録ヘッド２９へ各色のインクを供給するためのインク供給装置３９が設けられている。インク供給装置３９は、ポンプモーター６５、加圧ポンプ６６、インクカートリッジＩＣ１〜ＩＣ８及びサブタンク６７を備えている。
【００４４】
各インクカートリッジＩＣ１〜ＩＣ８は、カートリッジホルダーに装着された状態では、それぞれインク供給路７０Ａ（例えばチューブ）を通じてサブタンク６７と接続され、さらにサブタンク６７はインク供給路７０Ｂ（例えばチューブ）を通じて各記録ヘッド２９に接続されている。但し、図２では、複数（例えば８個）のサブタンク６７と１つの記録ヘッド２９との接続関係のみ示している。実際には、１個のサブタンク６７からは記録ヘッド２９と同数本のインク供給路７０Ｂが延びており、各インク供給路７０Ｂは各記録ヘッド２９に接続されている。
【００４５】
また、インクカートリッジＩＣ１〜ＩＣ８は、カートリッジホルダーに装着された状態では、加圧ポンプ６６の吐出口と空気供給路７１を通じて接続されるようになっている。制御装置Ｃがポンプモーター６５を駆動して加圧ポンプ６６がポンプ駆動されることにより、加圧ポンプ６６から吐出された加圧空気が空気供給路７１を通じてインクカートリッジＩＣ１〜ＩＣ８内に供給される。
【００４６】
インクカートリッジＩＣ内にはインクパックが収容されており、空気供給路７１を通じてインクカートリッジＩＣ内に供給される加圧空気によってインクパックが加圧されることにより、インクカートリッジＩＣからインク供給路７０Ａへインクが加圧供給されるようになっている。インクカートリッジＩＣから供給されたインクはインク供給路７０Ａを通じてサブタンク６７へ供給され、さらにサブタンク６７からインク供給路７０Ｂを通じて各記録ヘッド２９へ供給される。
【００４７】
また、本体ケース１２において図２に実線で示す閉状態にあるカバー３８の回動端と対応する位置には、カバー３８を閉状態にロックするための電磁ロック６８が設けられている。例えば本体ケース１２におけるカバー３８の近傍位置には、ユーザーがカバー３８のロック／ロック解除の操作をするための操作スイッチ７２（図３参照）が設けられている。制御装置Ｃは、操作スイッチ７２からカバー３８をロックさせる操作がなされた際のロック信号を入力すると、電磁ロック６８を励磁させることによりカバー３８を閉状態にロックさせる。また、制御装置Ｃは、操作スイッチ７２からカバー３８のロックを解除させる操作がなされた際のロック解除信号を入力すると、電磁ロック６８を消磁させることによりカバー３８のロックを解除させる。カートリッジ交換を行う際は、図２に示すように、カバー３８を二点鎖線で示す開状態（但し最大開度は図２の状態より大きい）で、インクカートリッジＩＣ１〜ＩＣ８のうち少なくとも１個の交換を行って再びカバー３８を図２に実線で示す閉状態とした後、操作スイッチ７２を操作することでカバー３８を閉状態にロックさせる。
【００４８】
図３は、印刷システム１００の電気構成を示すブロック図である。図３に示すホスト装置１２０内のプリンタードライバー１２２は、モニター１２３に表示させるべきメニュー画面及び印刷条件設定画面などの各種画面の表示制御を行うと共に、各画面の表示状態において操作部１２４から入力した操作信号に応じた所定処理を行うホスト制御部１２５を備えている。ホスト制御部１２５は、プリンタードライバー１２２を統括的に制御する。また、プリンタードライバー１２２には、上位の画像生成装置１１０から受信した画像データに対して印刷データの生成に必要な画像処理を施す、解像度変換部１２６、色変換部１２７及びハーフトーン処理部１２８を備えている。解像度変換部１２６は、画像データを表示解像度から印刷解像度へ変換する解像度変換処理を行う。色変換部１２７は、表示用の表色系（例えばＲＧＢ表色系やＹＣｂＣｒ表色系）から印刷用の表色系（例えばＣＭＹＫ表色系）に色変換する色変換処理を行う。さらにハーフトーン処理部１２８は、表示用の高階調（例えば２５６階調）の画素データを印刷用の低階調（例えば２階調又は４階調）の画素データに階調変換するハーフトーン処理などを行う。そして、プリンタードライバー１２２は、これらの画像処理を施した結果生成された印刷画像データに、印刷制御コード（例えばＥＳＣ／Ｐ）で記述されたコマンドを付して印刷ジョブデータ（以下、単に「印刷データＰＤ」と称す）を生成する。
【００４９】
ホスト装置１２０はデータの転送制御を行う転送制御部１２９を備える。転送制御部１２９は、プリンタードライバー１２２が生成した印刷データＰＤを所定容量のパケットデータずつプリンター１１へ順次シリアル転送する。
【００５０】
一方、プリンター１１側の制御装置Ｃは、ホスト装置１２０から印刷データＰＤを受信して記録系の制御をはじめとする各種制御を行う一対のコントローラー４１，４２を備えている。一対のコントローラー４１，４２は、複数個（本例では１５個）の記録ヘッド２９を所定個数（本例では７個と８個）の２つに分けて分担して制御する。すなわち、マスター側コントローラー４１が７個の記録ヘッド２９Ｂの制御を受け持ち、スレーブ側コントローラー４２が８個の記録ヘッド２９Ａの制御を受け持つ。
【００５１】
図３に示すホスト装置１２０内のプリンタードライバー１２２は、２つのコントローラー４１，４２のそれぞれが受け持つ記録ヘッド２９の配置位置に応じて印刷画像データを２つに分割し、分割した各印刷画像データに同一の印刷言語記述コマンドを付して２つの印刷データＰ１，Ｐ２を生成する。
【００５２】
図３に示すように、本実施形態のホスト装置１２０は、２つのシリアル通信ポートＵ１，Ｕ２を備えている。また、２つのコントローラー４１，４２もそれぞれシリアル通信ポートＵ３，Ｕ４を備えている。そして、転送制御部１２９は、シリアル通信ポートＵ１，Ｕ３間の通信を介してマスター側コントローラー４１へ対応する印刷データＰ１をシリアル転送すると共に、シリアル通信ポートＵ２，Ｕ４間の通信を介してスレーブ側コントローラー４２へ対応する印刷データＰ２をシリアル転送するようになっている。ホスト装置１２０は、２つのシリアル通信ポートＵ１，Ｕ２を用いた２系統でシリアル転送を行って、各コントローラー４１，４２へ比較的高速に印刷データＰ１，Ｐ２を転送する。なお、本実施形態では、印刷データＰ１，Ｐ２に含まれる形態でコマンドを入力するシリアル通信ポートＵ２，Ｕ４が、入力手段の一例を構成する。
【００５３】
図３に示すように、２つのコントローラー４１，４２には、複数個（Ｎ個（本例では４個））ずつのヘッド制御ユニット４５（以下、単に「ＨＣＵ４５」という）が接続され、各ＨＣＵ４５にはそれ一個につき記録ヘッド２９が複数個（Ｍ個（本例では２個））ずつ接続されている。
【００５４】
また、２つのコントローラー４１，４２に接続された各通信回路４６には、８個のインクカートリッジＩＣ１〜ＩＣ８に実装された８個の記憶素子４７のうち半分の４個ずつがそれぞれ接続されている。マスター側コントローラー４１は４個のインクカートリッジＩＣ１〜ＩＣ４に実装された各記憶素子４７と通信可能であり、スレーブ側コントローラー４２は４個のインクカートリッジＩＣ５〜ＩＣ８に実装された各記憶素子４７と通信可能である。記憶素子４７は不揮発性の記憶素子（不揮発性メモリ）により構成されている。記憶素子４７には、対応するインクカートリッジＩＣのインク残量情報、インク色、使用期限、メンテナンス情報、品番などの各種のインク関連情報が記憶される。なお、インクカートリッジＩＣ（図２参照）がカートリッジホルダーに装着された状態で、記憶素子４７とカートリッジホルダー側の端子部とが電気的に接続されることにより、通信回路４６は記憶素子４７に対して読み取り及び書き込みのための通信が可能な状態に接続される。
【００５５】
マスター側コントローラー４１は、部品の一例である４個のインクカートリッジＩＣ１〜ＩＣ４のインク残量等を管理し、一方のスレーブ側コントローラー４２は、部品の一例である残り４個のインクカートリッジＩＣ５〜ＩＣ８のインク残量等を管理する。マスター側コントローラー４１は、通信回路４６を介してインクカートリッジＩＣ１〜ＩＣ４の各記憶素子４７と通信してインク関連情報の読出し及び書込みが可能となっている。同様に、スレーブ側コントローラー４２は、通信回路４６を介して各インクカートリッジＩＣ５〜ＩＣ８に実装された記憶素子４７と通信してインク関連情報の読出し及び書込みが可能となっている。
【００５６】
さらに、制御装置Ｃは、マスター側コントローラー４１の出力側（制御下流側）に通信線ＳＬ１を通じて接続されたメカコントローラー４３を備えている。メカコントローラー４３は主に搬送系及びキャリッジ駆動系を含むメカニカル機構４４の制御を司る。マスター側コントローラー４１は、自身が受け持つ７個の記録ヘッド２９Ｂの印刷準備ができ（つまりインク滴噴射制御に使用する印刷画像データが準備され）、かつスレーブ側コントローラー４２が受け持つ８個の記録ヘッド２９Ａも印刷準備ができた段階でキャリッジ起動コマンドをメカコントローラー４３へ送信するようになっている。これにより、コントローラー４１，４２のうち一方の印刷準備完了前にキャリッジ２７が起動されてしまうことに起因し、記録ヘッド２９が噴射位置に到達したにも拘わらずインク滴が噴射されない噴射ミスが防止されるようにしている。
【００５７】
また、マスター側コントローラー４１は、自身が受け持つ７個の記録ヘッド２９Ｂの印刷を完了し、かつスレーブ側コントローラー４２が受け持つ８個の記録ヘッド２９Ａも印刷を完了した段階で、シート１３の搬送を指令する搬送コマンドをメカコントローラー４３へ送信する。これにより、コントローラー４１，４２のうち一方が印刷完了前の段階でシート１３が搬送開始（又は支持部材１９上のシートの吸着解除）されてしまうことに起因し、記録ヘッド２９から噴射されたインク滴のシート１３に対する着弾位置のずれ（印刷位置ずれ）が防止されるようにしている。このようにマスター側コントローラー４１は、スレーブ側コントローラー４２と進捗の同期をとってコマンドを送信する機能を備えている。そして、両コントローラー４１，４２は、他方のコントローラーへコマンドを出力するスレーブ側と、スレーブ側から受け付けたコマンドと自身のコマンドとが揃いかつコマンド内容が一致することを確認した時点でメカコントローラー４３へコマンドを出力するマスター側とに分かれる。本実施形態では、制御上の同期をとるための仕組みの部分がマスター側とスレーブ側とで異なる。
【００５８】
図３に示すように、マスター側コントローラー４１にはリニアエンコーダー５０が接続されている。このリニアエンコーダー５０はキャリッジ２７の移動経路に沿って設けられ、マスター側コントローラー４１には、このリニアエンコーダー５０からキャリッジ２７の移動距離に比例する数のパルスをもつ検出信号（エンコーダーパルス信号）が入力される。マスター側コントローラー４１に入力されたエンコーダーパルス信号は、両コントローラー４１，４２間に接続された信号線ＳＬ２を通じてスレーブ側コントローラー４２へ伝達されるようになっている。さらにマスター側コントローラー４１とスレーブ側コントローラー４２は、同期処理に用いられる通信線ＳＬ３を通じて互いに接続されている。
【００５９】
図３に示すように、各コントローラー４１，４２は、それぞれＣＰＵ５３（中央処理装置）、ＡＳＩＣ５４（Application Specific IC（特定用途向け集積回路））、ＲＡＭ５５、及び不揮発性メモリー５６を備えている。ＣＰＵ５３は、不揮発性メモリー５６に記憶されたプログラムを実行することにより、印刷制御に必要な各種タスクを実行する。また、ＡＳＩＣ５４は、印刷データの処理など記録系のデータ処理などを行う。
【００６０】
一方、メカコントローラー４３には、モーター駆動回路６０を介してメカニカル機構４４を構成する搬送モーター６１、第１キャリッジモーター（以下、「第１ＣＲモーター６２」ともいう）及び第２キャリッジモーター（以下、「第２ＣＲモーター６３」ともいう）がそれぞれ接続されている。また、メカコントローラー４３には、メンテナンス装置３２及び電磁ロック６８がそれぞれ接続されている。さらにメカコントローラー４３には、モーター駆動回路７６を介してインク供給装置３９を構成するポンプモーター６５が接続されており、ポンプモーター６５が駆動されることにより加圧ポンプ６６が駆動される。
【００６１】
また、メカコントローラー４３には、入力系として、前述の操作スイッチ７２及びエンコーダー７３がそれぞれ接続されている。メカコントローラー４３は操作スイッチ７２からロック操作信号を入力すると電磁ロック６８を励磁し、操作スイッチ７２から解除操作信号を入力すると電磁ロック６８を消磁する。メカコントローラー４３はマスター側コントローラー４１から通信線ＳＬ１を通じて受信した各種コマンドに従って、各モーター６１〜６３，６５、メンテナンス装置３２及び電磁ロック６８を駆動制御する。
【００６２】
制御装置Ｃは、印刷時に、搬送モーター６１を駆動してシート１３の次の被印刷領域を支持部材１９上に配置すべくシート１３を搬送する搬送動作と、シート搬送後に次の被印刷領域を支持部材１９に吸着させる吸着動作と、記録ヘッド２９によるシート１３への印刷動作と、１回分（１頁分）の印刷終了後にシート１３の吸着を解除する吸着解除動作とを行う。このとき、印刷動作は、キャリッジ２７の主走査方向Ｘへの移動中に記録ヘッド２９からインク滴を噴射することにより行われる。この印刷動作は、第１ＣＲモーター６２の駆動によるキャリッジ２７の主走査方向Ｘへの移動（１パス動作）と、１パス終了毎に行われるキャリッジ２７の副走査方向Ｙへの移動とを、所定回数繰り返すことにより行われる。
【００６３】
図４は、マスター側コントローラー４１とスレーブ側コントローラー４２の機能構成を説明するブロック図である。図４に示すように、両コントローラー４１，４２は、互いに対称な構成を有している。これは、マスター側とスレーブ側の各コントローラー４１，４２を同じプログラムの構成で実現できているからである。なお、対称な構成（ほぼ同じ機能構成）であるので、以下、マスター側コントローラー４１の構成を説明し、これと対比してスレーブ側コントローラー４２の一部異なる構成を説明する。
【００６４】
図４に示すように、マスター側コントローラー４１は、入力手段の一例としてのシリアル通信ポートＵ３、画像処理部８１、主制御部８２、メカ制御部８３、出力手段の一例としてのメカＩ／Ｆ部８４、同期手段の一例としての仮想メカコントローラー８５（バーチャルメカコントローラー）を備えている。さらに、マスター側コントローラー４１は、エラー管理部８６、通信手段の一例である通信Ｉ／Ｆ部８７、画像バッファー８８、ヘッド制御部８９及び検出手段の一例としてのインク管理部９０を備えている。一方、スレーブ側コントローラー４２は、仮想メカコントローラー８５に替えて、ダミーメカコントローラー９５を備える点が異なるだけで、その他の構成はマスター側コントローラー４１と同様である。なお、主制御部８２は、各部８３〜９０を統括的に制御する機能を有する。
【００６５】
また、スレーブ側コントローラー４２のメカＩ／Ｆ部８４は、マスター側コントローラー４１の仮想メカコントローラー８５と通信線ＳＬ３を通じて接続されている。すなわち、マスター側コントローラー４１のメカＩ／Ｆ部８４が実際のメカコントローラー４３に接続されているのに対して、スレーブ側コントローラー４２のメカＩ／Ｆ部８４はマスター側コントローラー４１内に設けられた仮想メカコントローラー８５に接続されている。スレーブ側のメカＩ／Ｆ部８４はメカコントローラー４３へコマンドを出力したつもりで実際は仮想メカコントローラー８５へコマンドを送信している。
【００６６】
図４に示すマスター側コントローラー４１側の画像処理部８１は、シリアル通信ポートＵ３が入力した印刷データＰ１の解凍処理、コマンド解析、マイクロウィーブ処理及び縦横変換処理などの画像処理を行う。一方、図４に示すスレーブ側コントローラー４２側の画像処理部８１は、シリアル通信ポートＵ４が入力した印刷データＰ２の解凍処理、コマンド解析、マイクロウィーブ処理及び縦横変換処理などの画像処理を行う。
【００６７】
画像処理部８１は、解凍後の印刷データを画像バッファー８８に一時格納する。ここで、印刷データＰ１は印刷画像データと印刷言語記述コマンドとを含む。主制御部８２は、解凍後の印刷データＰ１中の印刷言語記述コマンドを解析して制御用のコマンドを取得し、その取得したコマンドをメカ制御部８３へ送る。画像処理部８１は、印刷画像データに対してドットをノズルに割り付ける割付処理（マイクロウィーブ処理）及び縦横変換処理などの必要な画像処理を順次施し、記録ヘッド２９の制御に使用するヘッド制御データを生成して画像バッファー８８に格納する。
【００６８】
ヘッド制御部８９は、画像バッファー８８からヘッド制御データを読み出し、このヘッド制御データを記録ヘッド２９毎に分割して各ＨＣＵ４５へ割り振りつつ転送する。さらに、ＨＣＵ４５は記録ヘッド２９へ対応するヘッド制御データを逐次送信する。記録ヘッド２９内の不図示のヘッド駆動回路は、ヘッド制御データに基づきノズル３６毎の噴射駆動素子を駆動制御し、ノズル３６からインク滴を噴射させる。このとき、ヘッド制御部８９は、リニアエンコーダー５０から入力されるエンコーダーパルス信号を基に噴射タイミング信号を生成し、ヘッド駆動回路はこの噴射タイミング信号に基づき噴射駆動素子を駆動させる。
【００６９】
図４に示すメカ制御部８３は、主制御部８２から受け付けたコマンドをメカＩ／Ｆ部８４へ送る。このとき、メカ制御部８３は、例えばヘッド制御部８９の処理の進捗を監視しており、次パスの印刷に使用するヘッド制御データが揃い印刷準備ができた段階でコマンドをメカＩ／Ｆ部８４へ送る。
【００７０】
メカＩ／Ｆ部８４は、メカ制御部８３からコマンドを受け付けると、仮想メカコントローラー８５に問合せをする。そして、メカＩ／Ｆ部８４は、仮想メカコントローラー８５から問合せの応答としてＡＣＫ信号（肯定信号）を受信すると、コマンドをメカコントローラー４３へ送信する。つまり、メカＩ／Ｆ部８４は、仮想メカコントローラー８５への問合せの応答としてＡＣＫ信号を受信しなければ、ＡＣＫ信号を受信するまで待機し、ＡＣＫ信号を受信するとコマンドをメカコントローラー４３へ送信する。但し、応答（ＡＣＫ信号）を待つ待機時間が設定時間に達してタイムアウトとなった場合は、リトライ要求をメカ制御部８３へ送信する。
【００７１】
一方のスレーブ側コントローラー４２においても画像処理部８１、主制御部８２、メカ制御部８３、メカＩ／Ｆ部８４は同様の処理を行う。但し、ダミーメカコントローラー９５は、仮想メカコントローラー８５と異なる機能をもつ。ダミーメカコントローラー９５は、メカＩ／Ｆ部８４から問合せを受け付けると、無条件で直ちにＡＣＫ信号を応答する。このため、スレーブ側コントローラー４２におけるメカＩ／Ｆ部８４は、メカ制御部８３からコマンドを受け付けて問合せをすると、ダミーメカコントローラー９５から直ぐにＡＣＫ信号を受信するので、コマンドの受付けからほぼ待ち時間なくそのコマンドを出力できる。
【００７２】
これに対して、マスター側の仮想メカコントローラー８５は、マスター側のメカＩ／Ｆ部８４からコマンドの問合せを受け付けると、通信線ＳＬ３を通じてスレーブ側のメカＩ／Ｆ部８４から送られてきたコマンドを受信し、かつ両コマンドが一致していることを条件に、各メカＩ／Ｆ部８４にＡＣＫ信号を応答する。このため、マスター側のメカＩ／Ｆ部８４は、仮想メカコン８５においてマスター側とスレーブ側の両メカＩ／Ｆ部８４からのコマンドが揃い、かつその揃った両コマンドが一致したと判断されたときの応答を待ち、その応答を受け付けると、そのコマンドをメカコントローラー４３へ出力する。このため、マスター側とスレーブ側の両コントローラー４１，４２の同期をとって、コマンドをメカコントローラー４３へ送信できる。
【００７３】
図４に示すように、仮想メカコントローラー８５とダミーメカコントローラー９５は同じ構成であり、共に仮想メカコン部９６とダミーメカコン部９７を備える。仮想メカコン部９６が起動されると仮想メカコントローラー８５として機能し、ダミーメカコン部９７が起動されるとダミーメカコントローラー９５として機能する。仮想メカコン部９６とダミーメカコン部９７のうちどちらを起動するかは、主制御部８２が、自身がマスターであるかスレーブであるかを判定して決める。主制御部８２はマスターであると判定した場合、仮想メカコン部９６を有効としこれを起動するとともに、ダミーメカコン部９７を無効としこれを起動させない。一方、主制御部８２はスレーブであると判定した場合、ダミーメカコン部９７を有効としこれを起動するとともに、仮想メカコン部９６を無効としこれを起動させない。
【００７４】
また、図４に示すマスター側のメカＩ／Ｆ部８４は、メカコントローラー４３からコマンドを受け付けたときには、そのコマンドを仮想メカコントローラー８５へ送る。仮想メカコントローラー８５は、マスター側のメカＩ／Ｆ部８４から受け付けたコマンドをスレーブ側のメカＩ／Ｆ部８４へ送信すると、ＡＣＫ信号をマスター側のメカＩ／Ｆ部８４へ応答する。マスター側のメカＩ／Ｆ部８４は、仮想メカコントローラー８５からその応答（ＡＣＫ信号）を受け付けると、上位のメカ制御部８３へそのコマンドを送るようになっている。本実施形態では、メカＩ／Ｆ部８４のうちメカコントローラー４３からのコマンドを入力する入力機能部分も、入力手段の一例として構成される。本実施形態では「第１のコマンド」には、ホスト制御部１２５から印刷データに含まれる形態でシリアル通信ポートＵ３，Ｕ４が入力するコマンドと、印刷データとは別にホスト制御部１２５で生成されてシリアル通信ポートＵ３，Ｕ４が入力するコマンドと、メカコントローラー４３からメカＩ／Ｆ部８４が入力するコマンドとがある。
【００７５】
ところで、仮想メカコントローラー８５における同期処理においてコマンドが揃わない場合、マスター側のメカＩ／Ｆ部８４は仮想メカコントローラー８５からＡＣＫ信号を受信できないので、待機時間が設定時間に達してタイムアウトになる。一方、スレーブ側コントローラー４２のメカＩ／Ｆ部８４も、仮想メカコントローラー８５からＡＣＫ信号を受信できないので、待機時間が設定時間に達して、やはりタイムアウトになる。この場合、メカＩ／Ｆ部８４はメカ制御部８３に対してリトライ要求をする。メカ制御部８３はリトライ要求を受け付けると、メカＩ／Ｆ部８４へコマンドを再送信（再発行）する。また、仮想メカコントローラー８５における同期処理においてマスター側とスレーブ側のコマンドが揃っても、その揃った両コマンドが不一致と判断した場合は、仮想メカコントローラー８５は各メカＩ／Ｆ部８４にＡＣＫ信号を応答しない。この場合も、メカＩ／Ｆ部８４はメカ制御部８３に対してリトライ要求をすることになる。
【００７６】
通信Ｉ／Ｆ部８７は、マスター側とスレーブ側における各ヘッド制御部８９及び各インク管理部９０が、処理の同期をとったり、互いの情報を交換し合ったりするための通信を行うために設けられたものである。
【００７７】
図４に示すインク管理部９０はインク残量演算部９８を備えている。インク残量演算部９８は、約半数の記録ヘッド２９Ｂ（又は２９Ａ）が消費した８色分のインク消費量を取得する。ここで、ヘッド制御部８９は、印刷画像データに基づき記録ヘッド２９Ｂ（又は２９Ａ）のインク滴噴射回数に相当するドット数を色別に計数している。インク残量演算部９８は、ヘッド制御部８９からインク色毎のドット数を取得してその取得したドット数を色別に合計し、その合計した色別のドット数を基に記録ヘッド２９Ｂ（又は２９Ａ）が消費したインク色別のインク消費量を演算する。こうしてマスター側のインク残量演算部９８は７個の記録ヘッド２９Ｂのインク消費量を色別に算出し、一方のスレーブ側のインク残量演算部９８は８個の記録ヘッド２９Ａのインク消費量を色別に算出する。
【００７８】
本実施形態では、複数色のインクカートリッジＩＣ１〜ＩＣ８を、マスター側コントローラー４１とスレーブ側コントローラー４２とで分担して管理する。このため、インク残量演算部９８が算出した自コントローラー側の記録ヘッド２９Ｂ（又は２９Ａ）が消費した８色分のインク消費量のうち、相手側のコントローラーが管理する４個のインクカートリッジＩＣに対応する４色分のインク消費量を、各通信Ｉ／Ｆ部８７，８７間の通信を介して相手側のコントローラーへ通知する構成となっている。
【００７９】
そして、インク管理部９０は、１回の印刷が終わったとき、カートリッジ交換が行われたとき、電源スイッチ（図示省略）がＯＦＦ操作された際の電源遮断時などの所定時期に、相手側管理の４色分のインク消費量情報をメカ制御部８３及び通信Ｉ／Ｆ部８７を経由して相手側コントローラーのインク管理部９０へ送信する。そして、インク残量演算部９８は、インク管理部９０が受信した相手側管理の記録ヘッド２９Ａで消費された４色のインク消費量と、自身が受け持つ記録ヘッド２９Ｂで消費された同じ４色のインク消費量とを色別に加算して、全ての記録ヘッド２９Ａ，２９Ｂで消費された４色分のインク消費量をそれぞれ算出する。さらにインク残量演算部９８は、この４色分の各インク消費量を、この４色の前回のインク残量からそれぞれ減算することで、この４色の現在のインク残量を算出する。現在のインク残量情報は、ＲＡＭ５５の所定記憶領域に一時記憶される。例えばカバー３８が開閉されたとき、１回（１ジョブ）の印刷が終わったとき、電源遮断時などの所定時期に、インク管理部９０はＲＡＭ５５から読み出した現在のインク残量を不揮発性メモリー５６及び記憶素子４７に書き込む。
【００８０】
インク管理部９０は、インク残量を管理する他、インクカートリッジＩＣの状態を監視し、インク関連のエラー検出も行う。インク管理部９０は、例えばインク残量演算部９８が算出したインク残量がインクエンド閾値未満になったか否かを判定し、インク残量がその閾値未満である場合にインクエンドと判定する。例えばインクエンドになってから、一定の許容印刷時間又は一定の許容インク量が消費されるまでの期間を過ぎると、強制的に印刷動作を停止させるためのエラーがメカ制御部８３を介してエラー管理部８６に通知される。また、インクカートリッジＩＣの外れや、色違いのインクカートリッジＩＣの装着を検出したときにも、メカ制御部８３を介してエラー管理部８６にエラーが通知される。
【００８１】
エラー管理部８６は、インク管理部９０からのエラー通知など、コントローラー４１，４２の内部で発生したエラー通知を受け付けると、そのエラーの内容を判断し、その判断したエラー内容に応じた種類のエラーコマンドを発行する。エラーコマンドの種類は、例えばそのパラメーターの値で区別される。このエラーコマンドは主制御部８２へ送られ、さらに主制御部８２からメカ制御部８３へ送られる。なお、本実施形態では、エラー管理部８６と、検出手段の一例であるインク管理部９０とにより、コマンド生成手段の一例が構成される。
【００８２】
メカ制御部８３は、コマンドの実行順を制御するジョブ制御部９３と、ジョブ制御部９３で制御された順番で出力されたコマンドを受け付けてその出力タイミングを制御することでシーケンス制御を行うシーケンス制御部９４とを備えている。なお、本実施形態では、ジョブ制御部９３により管理手段の一例が構成され、シーケンス制御部９４により指示手段の一例が構成される。
【００８３】
図５は、ジョブ制御部９３の構成を示す。ジョブ制御部９３は、コマンド判定部１３１、シーケンスキュー１３２、イミーディエットキュー１３３及びコマンド出力部１３４を備えている。主制御部８２からメカ制御部８３へ送られてきたコマンドは、ジョブ制御部９３に入力される。ここで、コマンドには、印刷データＰＤに含まれる印刷言語記述コマンドを解釈して得られるなどのシーケンス制御用のコマンド（以下「シーケンスコマンド」という）と、コントローラー４１，４２の内部で行われる各種検出処理などの検出結果に基づき生成される内部発生コマンド（以下「内部コマンド」という）などがある。
【００８４】
このため、コマンドキューには、発行順序が重要なシーケンスキュー１３２と、直ちに処理するべきイミーディエットキュー１３３とがある。シーケンスキュー１３２のコマンド（シーケンスコマンド）は、ホスト制御部１２５、メカコントローラー４３から発行されるので、複数のコントローラー４１，４２間で順序が入れ替わることはない。
【００８５】
イミーディエットキュー１３３も、メカコントローラー４３やホスト装置１２０から発行されたコマンドはほぼ同時に受信するので、そのまま発行すれば、仮想メカコン８５の同期処理において両方のコマンドが揃うことになる。たとえマスター側とスレーブ側で発行時期の多少のずれ（タイムラグ）があってリトライになっても、いずれリトライによる仮想メカコン８５の同期処理で両方のコマンドが揃うことになる。
【００８６】
一方、エラー通知などのようにコントローラー４１，４２の内部で発生する内部コマンドは、コントローラー４１，４２間の通信Ｉ／Ｆ部８７，８７経由の通信を使って、相手側（他方）のコントローラーに送信される。これは、仮想メカコントローラー８５においてマスター側とスレーブ側の両コントローラー４１，４２の同期をとるためには、両コントローラー４１，４２に同一のコマンドが用意されている必要があるからである。コントローラー４１，４２間の通信Ｉ／Ｆ部８７，８７経由の通信は、シリアル通信であるため、コマンドの伝送に比較的長い時間を要する。このため、両コントローラー４１，４２のうち一方で発生した内部コマンドが他方のコントローラーへ到着するまでの間に、メカコントローラー４３やホスト装置１２０のコマンドが発行された場合、マスター側とスレーブ側の両イミーディエットキュー１３３間でコマンドの格納順序が保証されない。
【００８７】
図５に示すコマンド判定部１３１は、受け付けたコマンドが、シーケンスコマンドであるか緊急性の高い緊急コマンド（イミーディエットコマンド）であるかを判定する。コマンド判定部１３１は、その判定結果に応じて、シーケンスコマンドをシーケンスキュー１３２に格納し、緊急コマンドをイミーディエットキュー１３３に格納する。各キュー１３２，１３３には、コマンドが取得順に格納される。
【００８８】
内部コマンドは、エラーコマンドに代表されるように緊急性の高いコマンドであり、イミーディエットキュー１３３に格納される。イミーディエットキュー１３３に格納された内部コマンドは、シーケンスキュー１３２に優先して出力される。一方、シーケンスコマンドは実行される順番が重要な種類のコマンドであり、イミーディエットキュー１３３に内部コマンドが格納されていないときに、その格納順に出力される。このような出力規則の下、コマンド出力部１３４は、イミーディエットキュー１３３から優先して内部コマンドを出力すると共に、イミーディエットキュー１３３に格納コマンドがない状態において、シーケンスキュー１３２に格納されたシーケンスコマンドを格納順に出力する。
【００８９】
例えば図５に示すシーケンスキュー１３２からはその格納順に従ってシーケンスコマンドＳＱ１，ＳＱ２，…の順番で出力される。また、イミーディエットキュー１３３からはその格納順に従ってコマンドＰＳ１，ＥＲ１，ＰＳ２，…の順番で出力される。ここで、「コマンドＰＳ」は、ホスト装置１２０により発行されたコマンドを示し、「コマンドＥＲ」はコントローラー４１，４２内で発行された内部コマンドを示す。コマンドＰＳは、例えばユーザーによるホスト装置１２０の画面操作などを基に発行される。
【００９０】
コマンド出力部１３４は、下流のシーケンス制御部９４からジョブ制御部９３に対する応答又は要求を待ってコマンドを出力（発行）する。コマンド出力部１３４は、メカＩ／Ｆ部８４からシーケンス制御部９４を介して前回のコマンドを出力した旨の応答を受け付けると、次のコマンドを出力する。また、コマンド出力部１３４は、メカＩ／Ｆ部８４からシーケンス制御部９４を介してコマンドの再送を要求するリトライ要求（再送要求）を受け付けると、先に出力した同じコマンドをもう一度送る。
【００９１】
図４に示すシーケンス制御部９４は、ジョブ制御部９３から内部コマンドを受け付けた場合はそれを直ちに出力する。また、シーケンス制御部９４は、シーケンスコマンドを受け付けたときは、メカコントローラー４３からメカＩ／Ｆ部８４を介して先の所定動作終了の旨を受信した後、当該所定動作の次に行うべき動作の開始タイミングになったときに、コマンドを出力する。
【００９２】
シーケンス制御部９４は、シーケンスコマンドを受信したときは、所定のシーケンスに従った所定のタイミングになると、そのシーケンスコマンドをメカＩ／Ｆ部８４へ出力する。コマンドには、例えば搬送コマンド、吸着コマンド、第１キャリッジ起動コマンド（キャリッジ主走査方向移動コマンド）、第２キャリッジ起動コマンド（キャリッジ副走査方向移動コマンド）、吸着解除コマンドなどがある。メカ制御部８３は、これらのシーケンスコマンドを、ヘッド制御部８９（図４参照）の進捗に合わせた適宜なタイミング、あるいはメカコントローラー４３側の進捗に合わせた適宜なタイミングで送信する。
【００９３】
図７は、コマンドの出力処理を説明するブロック図である。なお、図７では、ジョブ制御部９３内はイミーディエットキュー１３３のみを示している。また、図７では、仮想メカコントローラー８５を単に「仮想メカコン」、ダミーメカコントローラー９５を単に「ダミーメカコン」とそれぞれ記しており、以下の説明でもこれらの略称を用いることにする。図７に示すように、マスター側コントローラー４１とスレーブ側コントローラー４２のそれぞれ内部で行われる処理の流れ（図中の矢印）は同じになっている。
【００９４】
図７に示すように、メカＩ／Ｆ部８４は、判定部１３５を備えている。判定部１３５は、メカＩ／Ｆ部８４がシーケンス制御部９４から受け付けたコマンドが、内部コマンドであるか否かを判定する。詳しくは、判定部１３５は、内部コマンドか、ホスト制御部１２５（ホスト装置１２０）で発行されたコマンドか、メカコントローラー４３で発行されたコマンドかを判別可能である。本実施形態では、コマンドには、コマンドの種類を識別する識別子（例えば所定ビットの識別番号）が含まれており、判定部１３５は、コマンドの識別子から内部コマンドであるか否かを判定する。なお、各コマンドにその種類を識別する識別子を設ける替わりに、内部コマンドだけに識別子を設ける構成を採用してもよい。また、コマンドを送るパケット中にフラグを設定して、フラグ値を基に判定する方法を採用してもよい。識別子の一例としては、コマンド番号を挙げることができる。
【００９５】
以下、本実施形態におけるコマンド出力処理を、図６及び図７を用いて説明する。主制御部８２は、入力した印刷データのコマンド解析で得たコマンドや、ホスト装置１２０から入力したコマンド、メカコントローラー４３から入力したコマンド（入力段階）、コントローラー４１，４２の内部で発行されたコマンド（コマンド生成段階）を、メカ制御部８３へ出力する。メカ制御部８３へ入力されたコマンドは、コマンド判定部１３１によりコマンドの種類が判定される。コマンド判定部１３１は、コマンドに含まれる識別子に基づいて、入力したコマンドが、第１のコマンドの一例であるシーケンスコマンドであるか、それとも第２のコマンドの一例である内部コマンドを含む緊急コマンドであるかを判定する。この判定結果に基づき、シーケンスコマンドはシーケンスキュー１３２にそれぞれ取得した順に格納され、緊急コマンドはイミーディエットキュー１３３にそれぞれ取得した順番に格納される（管理段階）。
【００９６】
コマンド出力部１３４は、シーケンスキュー１３２に格納されたシーケンスコマンドよりも、イミーディエットキュー１３３に格納されたコマンドを優先して出力する。このため、基本的に、イミーディエットキュー１３３にコマンドがあるうちは、そのコマンドの出力が優先して進められる。
【００９７】
図６は、マスター側とスレーブ側のイミーディエットキュー１３３Ａ，１３３Ｂを示す。なお、図６のキュー１３３において、一番下に格納されたコマンドのうち破線で囲ったコマンドはメカコントローラー４３へ出力されるものである。例えば、マスター側コントローラー４１でエラーが発生したとする。ホスト装置１２０からコマンドＰＳ１を受信してから内部でエラーが発生し、これをスレーブ側コントローラー４２に通知している間にホスト装置１２０からコマンドＰＳ２が送られてきたとする。この場合、図６（ａ）に示すように、マスター側のキュー１３３Ａには、コマンドＰＳ１，ＥＲ１，ＰＳ２の順番に格納され、スレーブ側のキュー１３３Ｂには、コマンドＰＳ１，ＰＳ２の順番に格納される。このとき、スレーブ側のキュー１３３Ｂには、まだエラーコマンドＥＲ１は届いていない（図６（ａ）の状態）。
【００９８】
この図６（ａ）の格納状態のとき、ジョブ制御部９３は、イミーディエットキュー１３３内の最下流格納位置（図７における最下位置）のコマンドＰＳ１，ＰＳ２をシーケンス制御部９４へ出力する（図７中の（１））。シーケンス制御部９４は、ジョブ制御部９３から受信したコマンドをメカＩ／Ｆ部８４へ出力する（図７中の（２））（指示段階）。この場合、コマンドは緊急コマンドなので、直ちに出力される。
【００９９】
メカＩ／Ｆ部８４は、コマンドを受信すると、マスター側では仮想メカコン８５にコマンドＰＳ１の問合せをし（図７中の（３））、スレーブ側ではダミーメカコン９５にコマンドＰＳ１の問合せをする（図７中の（３））。
【０１００】
スレーブ側ではダミーメカコン９５は問合せを受け付けると、無条件で直ちにＡＣＫ信号を応答する（図７中の（４））。スレーブ側のメカＩ／Ｆ部８４はその応答を受け付けると、コマンドＰＳ１を通信線ＳＬ３へ出力する（図７中の（５））。この出力されたコマンドＰＳ１は、マスター側の仮想メカコン８５が受信する。
【０１０１】
仮想メカコン８５は、マスター側とスレーブ側の両メカＩ／Ｆ部８４からコマンドを受け付けると、両コマンドが一致するか否かを判断し、一致すれば、マスター側のメカＩ／Ｆ部８４に対してＡＣＫ信号を応答する（図７中の（６））。この場合、仮想メカコン８５はコマンドＰＳ１，ＰＳ１が一致すると判断するので、マスター側のメカＩ／Ｆ部８４に対してＡＣＫ信号を応答する。そして、マスター側のメカＩ／Ｆ部８４はＡＣＫ信号の応答を受け付けると、メカコントローラー４３へコマンドを送信する（図７中の（７））。つまり、仮想メカコン８５の同期処理においてマスター側とスレーブ側の両方で同一のコマンドが揃ったことが確認されたタイミングで、マスター側のメカＩ／Ｆ部８４からコマンドＰＳ１がメカコントローラー４３へ送信される（出力段階）。
【０１０２】
メカＩ／Ｆ部８４は、コマンドをメカコントローラー４３へ出力する度に、シーケンス制御部９４を介してジョブ制御部９３へコマンド出力の旨を応答する。ジョブ制御部９３は、コマンド出力の旨の応答を受け付けると、次のコマンドを出力する。このようにジョブ制御部９３はコマンドを１つずつ順番に出力する。
【０１０３】
コマンドＰＳ１，ＰＳ１が発行された後、両キュー１３３Ａ，１３３Ｂは、図６（ｂ）の格納状態になる。コマンド出力部１３４は、両キュー１３３Ａ，１３３Ｂから、最下流格納位置のコマンドＥＲ１，ＰＳ２をそれぞれ発行する。この発行されたコマンドＥＲ１，ＰＳ２は、それぞれマスター側とスレーブ側の各メカＩ／Ｆ部８４に送られる（図７中の（１），（２））。
【０１０４】
この場合、マスター側のメカＩ／Ｆ部８４では判定部１３５が、コマンドＥＲ１を内部コマンドと判定する。この結果、マスター側のメカＩ／Ｆ部８４は、仮想メカコン８５に同期処理を行わせるための問合せをすることなく、つまり仮想メカコン８５を介することなく、コマンドＥＲ１を直ちにメカコントローラー４３へ出力する（出力段階）。一方、スレーブ側のメカＩ／Ｆ部８４では判定部１３５が、コマンドＰＳ２を内部コマンドではないと判定する。この結果、コマンドＰＳ２は同期処理のため、仮想メカコン８５へ送られるが、コマンドが揃わずタイムアウトになるので、スレーブ側のメカＩ／Ｆ部８４はメカ制御部８３にリトライを要求する。
【０１０５】
このため、図６（ｃ）に示すように、リトライを要求されたコマンドＰＳ２はキュー１３３Ｂに残る。また、このスレーブ側のキュー１３３Ｂには遅れて届いたコマンドＥＲ１が格納される。この図６（ｃ）の状態で、両キュー１３３Ａ，１３３ＢからコマンドＰＳ２，ＰＳ２をそれぞれ発行する。この場合、仮想メカコン８５における同期処理で、同一のコマンドＰＳ２，ＰＳ２が揃ったことが確認される。この結果、マスター側のメカＩ／Ｆ部８４は、仮想メカコン８５からＡＣＫ信号の応答を受け付ける。この応答を受け付けたマスター側のメカＩ／Ｆ部８４は、コマンドＰＳ２をメカコントローラー４３へ出力する。
【０１０６】
その後、両キュー１３３Ａ，１３３Ｂは、図６（ｄ）の格納状態になる。スレーブ側のコマンド出力部１３４は、キュー１３３Ｂから、コマンドＥＲ１を発行する。スレーブ側のメカＩ／Ｆ部８４では、判定部１３５が、コマンドＥＲ１を内部コマンドと判定する。この結果、コマンドＥＲ１は仮想メカコン８５へ送信される。この場合、仮想メカコン８５は、受け付けたコマンドＥＲ１が内部コマンドであることから、揃わなくてもマスター側のメカＩ／Ｆ部８４に送る。
【０１０７】
マスター側のメカＩ／Ｆ部８４では、判定部１３５が、仮想メカコン８５から受け付けたコマンドＥＲ１を内部コマンドと判定するので、そのまま直ちにメカコントローラー４３へ出力する。このとき、仮想メカコン８５から受け付けたコマンドは、スレーブ側のメカＩ／Ｆ部８４で内部コマンドと判定されたものであることが特定できるので、マスター側のメカＩ／Ｆ部８４での判定部１３５の判定を省略し、仮想メカコン８５から受け付けたことをもって、そのコマンドを直ちにメカコントローラー４３へ出力する構成としてもよい。
【０１０８】
このように両キュー１３３Ａ，１３３Ｂに格納されるコマンドの順番が異なっても、コマンドＰＳ１，ＥＲ１，ＰＳ２，ＥＲ１は全てメカコントローラー４３へ出力される。本実施形態では、メカコントローラー４３へエラーコマンドＥＲ１が２回出力されることになる。エラーコマンドＥＲ１はエラー発生時にメカコントローラー４３の動作を停止したい場合に使用するものである。エラーコマンドはそのパラメーターによって、「即停止」、「キャップ後停止」、「何もしない」の３段階が指定される。例えば同じ停止命令のパラメーターが指定されたエラーコマンドが２回送られてきても、既に停止しているときに停止命令を受け付けるだけなので、特に問題はない。
【０１０９】
以上詳述したように、本実施形態によれば、以下に示す効果を得ることができる。
（１）マスター側のメカＩ／Ｆ部８４は、判定部１３５が、メカ制御部８３から受け付けたコマンドが内部コマンド（第２のコマンド）であると判定すると、仮想メカコン８５による同期処理を介さずにその内部コマンドをメカコントローラー４３へ出力する。この結果、通信線ＳＬ４を介した通信に相対的に時間がかかって送信先のコントローラーで内部コマンドの取得時期が遅れ、これが原因で各コントローラー４１，４２内のキュー各１３３に格納されたコマンドの順番が異なることになっても、仮想メカコン８５でコマンドが揃わないことに起因するコマンド送信エラーの発生を回避できる。
【０１１０】
（２）各コントローラー４１，４２がエラーを検出した際に生成されるエラーコマンドは同期処理を行うことなく出力されるので、エラーコマンドをメカコントローラー４３へ出力できなくなる事態を回避できる。また、マスター側とスレーブ側の各コントローラー４１、４２から同じエラーコマンドが、メカコントローラー４３へ二重通知されることになる。しかし、先に出力されたエラーコマンドによりメカコントローラー４３がメカニカル機構４４の動作を停止させた後、後のエラーコマンドが送られてきても、既に停止状態なので、実質何も行われず、何ら問題はない。
【０１１１】
（３）内部コマンドがエラーコマンドである場合、同期処理を経ずに出力されても問題はない。例えば複数のコントローラー４１，４２のうち１つのコントローラーのみでエラーコマンドが発生した場合でも、メカニカル機構４４の動作は停止されるべきなので、内部コマンドが揃わずにメカコントローラー４３へ出力されても何ら問題はない。
【０１１２】
（４）仮想メカコン８５は、マスター側とスレーブ側の各メカＩ／Ｆ部８４からのコマンドが揃いかつ各コマンドが一致したと判断したときに、マスター側のメカＩ／Ｆ部８４にＡＣＫ信号を応答し、マスター側のメカＩ／Ｆ部８４がＡＣＫ信号の応答に基づきコマンドをメカコントローラー４３へ送信する。よって、マスター側とスレーブ側のコントローラー４１，４２間で同期をとってメカコントローラー４３へコマンドを送信できる。
【０１１３】
（５）複数のコントローラー４１，４２は、図４及び図７に示すようにその機能構成が同じなので、共通のプログラムにより実現することができる。この場合、仮想メカコン部９６とダミーメカコン部９７のうち起動させる一方を選択することで異なる機能を実現できるので、マスター側とスレーブ側で同期処理に係る機能が一部異なるものの、各コントローラー４１，４２を共通のプログラムにより実現できる。
【０１１４】
（６）インク管理部９０（検出手段）は、インクカートリッジＩＣの記憶素子４７から取得したインク関連情報及びインク残量演算部９８が算出したインク消費量に基づきインク切れ（インクエンド）などのエラーを検出する。そして、インク切れの検出結果に基づきコントローラーの内部で生成されたエラーコマンドは、メカＩ／Ｆ部８４において内部コマンド（第２のコマンド）と判定されるため、仮想メカコン８５の同期処理を介することなく、直ちにメカコントローラー４３へ送信される。よって、インク切れのときに、コマンド送信エラーが発生する事態を回避できる。
【０１１５】
（第２実施形態）
次に第２実施形態を図８〜図１１を用いて説明する。この第２実施形態は、第１実施形態において起こりうるコマンド送信エラーを回避するための実施形態である。第１実施形態では、ホスト制御部１２５からのコマンドＰＳ（以下「ホストコマンドＰＳ」ともいう）（緊急コマンド）と、メカコントローラー４３からのメカコマンドＭＣ（緊急コマンド）とが、共通のキュー１３３に格納される構成であった。ここで、各キュー１３３Ａ，１３３ＢでコマンドＰＳ，ＭＣの格納順が異なると、コマンドは不一致のままなので、コマンド送信エラーになってしまう。この第２実施形態は、この種のコマンド送信エラーを解決する構成を提供する。
【０１１６】
図８は、メカコントローラー４３から各コントローラー４１，４２へのコマンド送信手順を説明するブロック図である。このコマンド送信手順は第１実施形態では詳しく説明しなかったが、第１実施形態でも同様である。
【０１１７】
メカコントローラー４３はメカニカル機構４４にその状態や動作を検出するために設けられた不図示の検出系の検出結果を基に状態通知コマンドや要求コマンド、エラーコマンド等のコマンドＭＣを発行し、その発行したコマンドＭＣをマスター側コントローラー４１へ送信する（図８中の（１１））。
【０１１８】
このコマンドＭＣを受け付けたマスター側のメカＩ／Ｆ部８４は仮想メカコン８５にコマンドを送信する（図８中の（１２））。仮想メカコン８５は受け付けたコマンドを、通信線ＳＬ３を通ってスレーブ側コントローラー４２へ送信し（図８中の（１３））、この送信後、マスター側のメカＩ／Ｆ部８４へＡＣＫ信号を応答する（図８中の（１４））。マスター側のメカＩ／Ｆ部８４は、仮想メカコン８５からＡＣＫ信号の応答を受け付けると、そのコマンドＭＣをメカ制御部８３へ送信する（図８中の（１５））。
【０１１９】
一方、コマンドＭＣを受け付けたスレーブ側のメカＩ／Ｆ部８４は、ダミーメカコン９５へコマンドＭＣを送り（図８中の（１６））、その後直ぐ返されるＡＣＫ信号を受け付けると（図８中の（１７））、そのコマンドＭＣをスレーブ側のメカ制御部８３へ送信する（図８中の（１８））。ここで、マスター側コントローラー４１がメカコントローラー４３からコマンドＭＣを受信した後、そのコマンドＭＣが各コントローラー４１，４２のメカ制御部８３，８３へ送られるまでのコマンド送信所要時間は、コントローラー内部の送信だけで済むマスター側に比べ、通信線ＳＬ３によるシリアル通信を伴うスレーブ側で相対的に長くなる。
【０１２０】
例えば、メカコントローラー４３からコントローラー４１，４２へコマンドＭＣ１が送信されるとほぼ同時に、ホスト制御部１２５からコントローラー４１，４２へコマンドＰＳ１が送信されたとする。ホスト制御部１２５からのコマンドＰＳは、シリアル通信ポートＵ１，Ｕ３（又はＵ２，Ｕ４）間のシリアル通信で同時に送られてくるので、各キュー１３３Ａ，１３３Ｂにほぼ同時に格納される。
【０１２１】
例えばマスター側コントローラー４１では、メカコントローラー４３からのコマンドＭＣ１を受信した後、極僅かの遅れでホスト制御部１２５からのコマンドＰＳ１を受信したとすると、マスター側のキュー１３３ＡにはコマンドＭＣ１，ＰＳ１の順番で格納される（図９（ａ））。一方、スレーブ側コントローラー４２は、メカコントローラー４３からのコマンドＭＣ１を、通信線ＳＬ３を介した通信で遅延する分だけマスター側に遅れて受信する。このため、スレーブ側のキュー１３３ＢにはコマンドＰＳ１，ＭＣ１の順番で格納されることになる（図９（ａ）参照）。このように各キュー１３３Ａ，１３３Ｂのコマンド格納順が異なった場合、これらのコマンドＭＣ１，ＰＳ１は判定部１３５において内部コマンドとは判定されないので、仮想メカコン８５において不一致となり、リトライを繰り返しても不一致のままでやがてコマンド送信エラーとなる。また、コマンドＭＣ１がヘッド制御部８９へ送られるなどその出力経路がメカＩ／Ｆ部８４を経由しないコマンドである場合、他方のホストコマンドＰＳ１がメカＩ／Ｆ部８４を経由する際に相手側のコマンドが届かず、タイムアウトによりコマンド送信エラーが発生する虞がある。
【０１２２】
この第２実施形態は、各キュー１３３Ａ，１３３Ｂにおいて、このような内部コマンド以外のコマンドの格納順が異なった場合でもコマンド送信エラーの発生を回避できるように、図１０に示す構成のジョブ制御部９３を採用している。
【０１２３】
図１０は、本実施形態のジョブ制御部９３の構成を示す。なお、ジョブ制御部９３以外の構成は、前記第１実施形態と共通であるので、第１実施形態と共通の構成については説明を省略し、ジョブ制御部９３の構成のみ詳細に説明する。
【０１２４】
図１０に示すように、管理手段の一例としてのジョブ制御部９３は、コマンド判定部１４０、第１キュー１４１、第２キュー１４２、第３キュー１４３、第４キュー１４４及びコマンド出力部１４５を備えている。
【０１２５】
コマンド判定部１４０は、前記第１実施形態と同様に、入力したコマンドの種類（本例では４種類）を判定する。本実施形態のコマンド判定部１４０は、入力したコマンドが、内部コマンドＥＲ、ホスト制御部１２５からのホストコマンドＰＳ（緊急コマンド）、メカコントローラー４３からのメカコマンドＭＣ（緊急コマンド）、シーケンスコマンドＳＱのうちいずれであるかを判定する。
【０１２６】
そして、コマンド判定部１４０は、判定結果を基に、内部コマンドＥＲであれば第１キュー１４１に格納し、ホストコマンドＰＳであれば第２キュー１４２に格納し、メカコマンドＭＣであれば第３キュー１４３に格納し、さらにシーケンスコマンドＳＱであれば第４キュー１４４に格納する。第１実施形態では、緊急コマンドは全て共通のイミーディエットキュー１３３に格納していたのに対して、この第２実施形態では、緊急コマンドを、内部コマンド、ホストコマンドＰＳ、メカコマンドＭＣごとに別々のキュー１４１〜１４３に格納するようにしている。なお、本実施形態では、ホスト制御部１２５からのホストコマンドＰＳ（第１のコマンド）を格納する第２キュー１４２が、第１の管理手段の一例を構成しており、メカコントローラー４３からのメカコマンドＭＣ（第１のコマンド）を格納する第３キュー１４３が、第２の管理手段の一例を構成している。
【０１２７】
ここで、第１〜第４キュー１４１〜１４４には、コマンドを出力させるキューの優先順位が設定されている。本実施形態では、第１〜第４キュー１４１〜１４４の順番でコマンドの出力が優先される。出力部の一例としてのコマンド出力部１４５は、第１〜第４キュー１４１〜１４４のうちコマンドを出力するキューを、各キューの優先順位に従って決定してコマンドの出力順を制御する。本実施形態では、前述のように、第１キュー１４１が第１位の優先順位、第２キュー１４２が第２位の優先順位、第３キュー１４３が第３位の優先順位、第４キュー１４４が第４位の優先順位に設定されている。
【０１２８】
コマンド出力部１４５は、各キュー１４１〜１４４のコマンド格納状態を管理し、第１キュー１４１にコマンドがあるうちは第１キュー１４１からのコマンドの出力を優先する。第１キュー１４１が空であれば、第２キュー１４２のコマンドの出力を優先する。さらに第１及び第２キュー１４１，１４２が共に空であれば、第３キュー１４３のコマンドの出力を優先する。そして、第１〜第３キュー１４１〜１４３が全て空であれば、第４キュー１４４のコマンドの出力を行う。
【０１２９】
以下、この第２実施形態におけるコマンド出力処理を、図９（ｂ）を参照しつつ説明する。なお、図９（ｂ）では４つのキュー１４１〜１４４のうち第２キュー１４２と第３キュー１４３のみ図示している。
【０１３０】
例えば、メカコントローラー４３からコントローラー４１，４２へコマンドＭＣ１が送信されるとほぼ同時に、ホスト制御部１２５からコントローラー４１，４２へコマンドＰＳ１が送信されたとする。このとき、マスター側コントローラー４１では、コマンドＭＣ１を受信した後、極僅かの遅れでコマンドＰＳ１を受信したとする。この場合、マスター側のジョブ制御部９３では、コマンド判定部１４０が入力コマンドのコマンド種を判定し、コマンド種に応じたキューへコマンドを振分ける。このため、まずコマンドＭＣ１が第３キュー１４３Ａに格納され、続いてコマンドＰＳ１が第２キュー１４２Ａに格納される（図９（ｂ）における左図参照）。
【０１３１】
一方、スレーブ側コントローラー４２では、ホストコマンドＰＳ１はマスター側とほぼ同時に受信されるが、メカコマンドＭＣ１は通信線ＳＬ３を介した通信で遅延した分だけマスター側に遅れて受信される。このため、スレーブ側のジョブ制御部９３には、先にコマンドＰＳ１が到達し、その後遅れてコマンドＭＣ１が到達することになる。この場合、コマンド判定部１４０が入力コマンドのコマンド種を判定し、コマンド種に応じたキューへコマンドを振分ける。このため、まずコマンドＰＳ１が第２キュー１４２Ｂに格納され、続いてコマンドＭＣ１が第３キュー１４３Ｂに格納される（図９（ｂ）における右図参照）。
【０１３２】
よって、コマンドＰＳ１，ＭＣ１がジョブ制御部９３に到達する順番が、マスター側とスレーブ側で異なっても、共にコマンドＰＳ１が第２キュー１４２Ａ，１４２Ｂに格納され、コマンドＭＣ１が第３キュー１４３Ａ，１４３Ｂに格納される。
【０１３３】
そして、コマンド出力部１４５は、第１〜第４キュー１４１〜１４４のうちコマンドが格納されたキューが複数ある場合は、そのうち優先順位の高いキューから順番にコマンドを出力させる。このため、図９（ｂ）の例では、まず、優先順位第２位の第２キュー１４２Ａ，１４２ＢからコマンドＰＳ１，ＰＳ１が出力される。この場合、コマンドＰＳ１，ＰＳ１は揃っているので、仮想メカコン８５でコマンドＰＳ１，ＰＳ１の一致が確認されることになり、マスター側のメカＩ／Ｆ部８４からメカコントローラー４３へコマンドＰＳ１が送信される。
【０１３４】
図９（ｂ）の例では、コマンドＰＳ１の出力により各キュー１４２Ａ，１４２Ｂが空になると、次にコマンド出力部１４５は、コマンドが格納されているキューの中で最も優先順位の高いキュー１４３Ａ，１４３ＢからコマンドＭＣ１，ＭＣ１を出力させる。この場合、仮想メカコン８５でコマンドＭＣ１，ＭＣ１の一致が確認され、マスター側のメカＩ／Ｆ部８４からメカコントローラー４３へコマンドＭＣ１が送信される。また、コマンドＭＣ１がヘッド制御部８９へ送られる場合などメカＩ／Ｆ部８４を経由しないコマンドである場合もある。この場合、まず第２キュー１４２Ａ，１４２Ｂから出力されたコマンドＰＳ１，ＰＳ１が仮想メカコン８５でその一致が確認され、コマンドＰＳ１がマスター側のメカＩ／Ｆ部８４からメカコントローラー４３へ送信される。そして、次にコマンドＭＣ１がシーケンス制御部９４を経由して例えばヘッド制御部８９へ送られる。
【０１３５】
メカコマンドＭＣの中には、コントローラー４１，４２内で他のコマンドを二次的に誘起する種類のコマンドがある。本実施形態では、コントローラー４１，４２内でメカコマンドＭＣをトリガーとして誘起される二次コマンドも、メカコマンドＭＣ（第１のコマンド）に属する設定としている。もちろん、この種の二次コマンドを内部コマンド（第２のコマンド）に属する設定としてもよい。
【０１３６】
この種の二次コマンドを誘起するタイプのメカコマンドＭＣには、コントローラー４１，４２に所定動作を要求する要求コマンドなどが挙げられる。コントローラー４１は、要求コマンドで要求された所定動作を完了すると、メカコントローラー４３に完了通知コマンドを発行する。つまり、コントローラー４１，４２内において、要求コマンドをトリガーとして完了通知コマンドが誘起される。この種の二次コマンドの発行タイミングは、要求コマンドで要求された所定動作がマスターとスレーブ間で非同期に行われる場合はずれる虞がある。このずれた期間の間に、ホストコマンドＰＳ１が割り込むと、二次コマンドＭＣとホストコマンドＰＳ１とがジョブ制御部９３に入力される順番が、マスターとスレーブ間で異なることになる。
【０１３７】
このような場合でも本実施形態では、図９（ｂ）に示すように、ホストコマンドＰＳ１は第２キュー１４２Ａ，１４２Ｂに格納され、メカコマンドＭＣ１（二次コマンドを含む）は第３キュー１４３Ａ，１４３Ｂに格納される。よって、この場合も、まず優先順位の高い第２キュー１４２Ａ，１４２ＢからホストコマンドＰＳ１，ＰＳ１が出力され、仮想メカコン８５でコマンドＰＳ１，ＰＳ１の一致が確認されるので、そのコマンドＰＳ１がメカコントローラー４３へ送信される。そして、次に優先順位の高い第３キュー１４３Ａ，１４３ＢからコマンドＭＣ１，ＭＣ１が出力され、仮想メカコン８５でコマンドＭＣ１，ＭＣ１の一致が確認されるので、そのコマンドＭＣ１がメカコントローラー４３へ送信される。あるいは、メカコマンドＭＣがシーケンス制御部９４を介してヘッド制御部８９などコントローラー４１，４２内の他の制御部へ送られる。
【０１３８】
次に、要求コマンドがクリーニング要求の場合を例にしてコマンド出力処理を説明する。メカコントローラー４３は、メンテナンス装置３２のキャップ３３の開放時間や、印刷枚数をカウントしており、そのカウント値から、記録ヘッド２９のクリーニングが必要と判断すると、コントローラー４１からの印刷準備指示のコマンドを拒否するリジェクトを返して、自発的にクリーニング動作を開始する。この際、メカコントローラー４３は、クリーニング動作として、クリーニング用のインク噴射動作（空噴射）であるフラッシング動作をコントローラー４１に要求する。ここで、フラッシング動作とは、記録ヘッド２９のノズルから印刷とは関係のないインク滴を噴射してノズルの目詰まりを予防又は解消するクリーニング動作である。
【０１３９】
また、このフラッシング動作が行われるとき、メカコントローラー４３は、フラッシング動作の前後に、噴射駆動素子を非噴射の駆動範囲内で駆動させてノズル内のインクを微振動させる微振動動作をコントローラー４１に要求する。ここで、微振動動作は、ノズル内のインクを微振動させてそのインクの増粘を防止するなどのために行われる。
【０１４０】
詳細には、メカコントローラー４３は、クリーニング動作に入ると、まずキャリッジ２７をフラッシング位置まで移動させ、キャリッジ２７が所定の位置に到達すると、コントローラー４１，４２に向かってフラッシング開始要求コマンド（メカコマンドＭＣ）を発行する。
【０１４１】
フラッシング開始要求コマンドを受け付けたコントローラー４１，４２は、直ちにＡＣＫ信号を返す。このフラッシング開始要求コマンドはメカコマンドＭＣに属するので、メカＩ／Ｆ部８４からジョブ制御部９３に送られた際に第３キュー１４３に格納される。第３キュー１４３から出力されたフラッシング開始要求コマンドはシーケンス制御部９４を介してヘッド制御部８９に送られる。このフラッシング開始要求コマンドを受け付けたヘッド制御部８９は、フラッシング動作を開始させる。すなわち、記録ヘッド２９へ出力される電圧波形を噴射波形からフラッシング波形に切換え、かつフラッシング用噴射データを生成して記録ヘッド２９へ転送することでフラッシング動作を開始する。
【０１４２】
このフラッシング動作は、マスターとスレーブ間の同期をとる必要がないため非同期で行われる。所定のショット数を噴射してフラッシング動作が終了すると、ヘッド制御部８９からシーケンス制御部９４を経由してジョブ制御部９３にフラッシング完了通知コマンドが送られる。
【０１４３】
このフラッシング完了通知コマンドは、メカコントローラー４３から発行されたメカコマンドＭＣをトリガーにしてコントローラー４１，４２内で発生する二次コマンドであり、本例ではメカコマンドＭＣに属する。この結果、フラッシング完了通知コマンドは第３キュー１４３に格納される。このとき、フラッシングの処理時間の都合でマスターとスレーブ間でタイムラグが発生し、マスターとスレーブ間でフラッシング完了通知コマンドの発行時刻がずれる可能性がある。その間にホストコマンドＰＳ１に割り込まれると、ジョブ制御部９３へ入力されるコマンドＰＳ１，ＭＣ１の順番がマスターとスレーブ間で入れ替わることになる。
【０１４４】
しかし、本実施形態では、図９（ｂ）に示すように、ホストコマンドＰＳ１は第２キュー１４２Ａ，１４２Ｂに格納され、メカコマンドＭＣ１は第３キュー１４３Ａ，１４３Ｂに格納される。このため、まず各第２キュー１４２Ａ，１４２ＢからホストコマンドＰＳ１，ＰＳ１が出力され、仮想メカコン８５でコマンドＰＳ１，ＰＳ１の一致が確認されると、そのコマンドＰＳ１がメカコントローラー４３へ送信される。次に、各第３キュー１４３Ａ，１４３ＢからメカコマンドＭＣ１，ＭＣ１が出力され、仮想メカコン８５でコマンドＭＣ１，ＭＣ１の一致が確認されると、そのコマンドＭＣ１（フラッシング完了通知コマンド）がメカコントローラー４３へ送信される。
【０１４５】
メカコントローラー４３はこのフラッシング完了通知コマンドを受信すると、次に微振動開始要求コマンド（メカコマンドＭＣ）をコントローラー４１，４２に発行する。この微振動開始要求コマンドを受信したコントローラー４１，４２は、直ちにＡＣＫ信号を返す。この微振動開始要求コマンドもメカコマンドＭＣに属するため、各コントローラー４１，４２への到達時期がずれ、その間にホストコマンドＰＳが発行されると、ジョブ制御部９３に入力されるコマンドＰＳ，ＭＣの順番がマスターとスレーブ間で異なることになる。この場合も、図９（ｂ）に示すように、ホストコマンドＰＳ１は第２キュー１４２Ａ，１４２Ｂに格納され、メカコマンドＭＣ１（微振動開始要求コマンド）は第３キュー１４３Ａ，１４３Ｂに格納されるので、前述と同様にホストコマンドＰＳ１はメカコントローラー４３へ送信される。また、次に第３キュー１４３Ａ，１４３Ｂから出力された微振動開始要求コマンドはヘッド制御部８９へ送られ、ヘッド制御部８９が記録ヘッド２９の微振動を開始する。
【０１４６】
一方、フラッシング完了通知を受信したメカコントローラー４３は、第１ＣＲモーター６２を駆動してキャリッジ２７をフラッシング位置からキャップ位置（例えばホームポジション）に移動させ、キャリッジ２７がキャップ位置に到達すると、昇降装置３４を駆動してキャップ３３をキャッピング位置に向かって移動させる。メカコントローラー４３は、キャップ３３が記録ヘッド２９をキャッピングする直前に微振動停止コマンド（メカコマンドＭＣ）をコントローラー４１，４２に発行する。この微振動停止コマンドを受信したコントローラー４１，４２は、直ちにＡＣＫ信号を返すと共に記録ヘッド２９の微振動を停止させる。この結果、記録ヘッド２９がキャップ３３によってキャッピングされる直前に、記録ヘッド２９の微振動が停止される。
【０１４７】
他のメカコマンドＭＣの例としては、カバー３８が閉じられたことを検知した際にメカコントローラー４３から発行されるカバー閉通知コマンドが挙げられる。カバー３８が閉まると、メカコントローラー４３はカバー閉通知コマンド（メカコマンドＭＣ）をコントローラー４１に発行する。このカバー閉通知コマンドもメカコマンドＭＣに属するため、各コントローラー４１，４２への到達時期がずれ、その間にホストコマンドＰＳが割り込むと、ジョブ制御部９３に入力されるコマンドＰＳ，ＭＣの順番がマスターとスレーブ間で異なることになる。本実施形態では、ホストコマンドＰＳは第２キュー１４２Ａ，１４２Ｂに格納され、このメカコマンドＭＣ（カバー閉通知コマンド）は、第３キュー１４３Ａ，１４３Ｂに格納される。この場合も、コマンド送信エラーが発生することなく、ホストコマンドＰＳ１をメカコントローラー４３へ送信できる。
【０１４８】
また、第３キュー１４３から出力されたカバー閉通知コマンドは、シーケンス制御部９４を経由してインク管理部９０に送られる。カバー閉通知コマンドを受け付けたインク管理部９０は、記憶素子４７にアクセスしてカートリッジ検出処理（インク関連の検出処理）を開始する。このカートリッジ検出処理は、マスターとスレーブ間の同期をとる必要がないため非同期で行われる。カートリッジ検出処理を終了すると、それぞれの検出結果通知コマンドを通信Ｉ／Ｆ部８７，８７間の通信で、他方のコントローラーへ送信する。その後、各コントローラー４１，４２は各検出結果通知コマンドの検出結果内容をマージし、そのマージ結果を基に、カートリッジＩＣの装着外れやインク切れ等のエラーの有無をメカコントローラー４３に伝えるためのパック状態通知コマンドを発行する。この発行されたパック状態通知コマンドはジョブ制御部９３に送られる。このパック状態通知コマンドは、カバー閉通知コマンド（メカコマンドＭＣ）をトリガーとして開始されるカートリッジ検出処理の結果を通知する検出系のコマンドであるので、内部コマンド（第２のコマンド）に属する設定としている。もちろん、パック状態通知コマンドを、メカコマンドＭＣに属する設定としてもよい。
【０１４９】
カートリッジ検出処理の処理時間の都合でマスターとスレーブ間でタイムラグが発生し、マスターとスレーブ間でパック状態通知コマンドの発行時刻がずれる可能性がある。その間、ホストコマンドＰＳ１に割り込まれると、マスターとスレーブ間で、ジョブ制御部９３へ入力されるコマンドＰＳ１，ＥＲ１の順番が入れ替わる。しかし、本実施形態では、図１０に示すように、内部コマンドＥＲ１（パック状態通知コマンド）は第１キュー１４１に格納され、ホストコマンドＰＳ１は第２キュー１４２に格納される。
【０１５０】
そして、まず各第１キュー１４１から内部コマンドＥＲ１，ＥＲ１が出力され、判定部１３５が内部コマンドであると判定するので、マスター側のコマンドＥＲ１とスレーブ側のコマンドＥＲ１とがそれぞれメカコントローラー４３へ送信される。次に、各第２キュー１４２Ａ，１４２ＢからホストコマンドＰＳ１，ＰＳ１が出力され、仮想メカコン８５でコマンドＰＳ１，ＰＳ１の一致が確認されると、そのコマンドＰＳ１がメカコントローラー４３へ送信される。パック状態通知コマンドを受け付けたメカコントローラー４３は、正常なパック状態であれば、インク供給装置３９のポンプモーター６５を駆動してインク供給を開始し、一方、異常なパック状態であればインク供給を開始しない。本例では、パック状態通知コマンドは、メカコントローラー４３に二重通知されるが、同じ内容のコマンドが短時間のうちに二回通知されるだけなので、特に動作上の問題は発生しない。なお、パック状態通知コマンドをメカコマンドＭＣに属する設定とした場合は、図９（ｂ）に示すように各キューにコマンドが格納され、前述の処理が同様に行われることにより、仮想メカコン８５でコマンドの一致が確認できないことに起因するコマンド送信エラーを回避できる。
【０１５１】
このように、コントローラー４１，４２に到着するホストコマンドＰＳとメカコマンドＭＣの順番が異なることになったり、メカコマンドＭＣをトリガーとしてコントローラー４１，４２内で発行された二次コマンドＭＣとホストコマンドＰＳとの順番が異なることになったりしても、それぞれコマンドＰＳ，ＭＣは専用のキュー１４２，１４３に別々に格納される。このため、第１実施形態の構成で起こりうる同一キュー内でコマンドの順番が入れ替わる事態が回避される。よって、コントローラー４１，４２間でコマンドＰＳ，ＭＣを受信する順番が異なっても、コマンド送信エラーの発生を回避できる。
【０１５２】
図１１は、エラーコマンドの順番が入れ替わったときのコマンド出力処理を説明する模式図である。なお、図１１では、第１キューとメカＩ／Ｆ部と仮想メカコンのみを模式的に示し、メカ制御部や第２〜第４キューなどの一部の構成を省略している。例えば図１１（ａ）に示すように、エラーコマンドの順番が入れ替わった場合のコマンド出力処理を説明する。
【０１５３】
例えばマスター側コントローラー４１の内部でエラーコマンドＥＲ１が発生し、これとほぼ同時にスレーブ側コントローラー４２の内部でエラーコマンドＥＲ１が発生したとする。この場合、マスター側コントローラー４１からエラーコマンドＥＲ１が通信線ＳＬ４を介してホスト側へ送信され、これとほぼ同時にスレーブ側コントローラー４２からエラーコマンドＥＲ２が通信線ＳＬ４を介してスレーブ側へ送信される。このため、内部で発生したコマンドが先に格納され、通信線ＳＬ４を介して遅れて到達したコマンドが後から格納されることになる。
【０１５４】
このため、マスター側の第１キュー１４１ＡにはエラーコマンドＥＲ１，ＥＲ２の順番で格納され、スレーブ側の第１キュー１４１ＢにはエラーコマンドＥＲ２，ＥＲ１の順番で格納される。この状態から図１１（ａ）の各キュー１４１Ａ，１４１Ｂの最下流格納位置に配置されたエラーコマンドＥＲ１，ＥＲ２が出力される。出力されたエラーコマンドＥＲ１，ＥＲ２はメカＩ／Ｆ部８４が受け付ける。
【０１５５】
メカＩ／Ｆ部８４では、判定部１３５が、受け付けたコマンドが内部コマンドであるか否かを判定する。この場合、エラーコマンドＥＲ１は内容コマンドと判定されるので、マスター側のメカＩ／Ｆ部８４は、仮想メカコン８５へ問い合わせることなく、コマンドＥＲ１をメカコントローラー４３へ送信する。また、スレーブ側のメカＩ／Ｆ部８４でも、判定部１３５がエラーコマンドＥＲ２を内容コマンドと判定するので、エラーコマンドＥＲ２はスレーブ側のメカＩ／Ｆ部８４から通信線ＳＬ３を介して出力される。そして、通信線ＳＬ３を介してエラーコマンドＥＲ２を受信した仮想メカコン８５は、スレーブ側のメカＩ／Ｆ部８４から受け付けたコマンドが内部コマンドであると確認するので、そのコマンドをマスター側のメカＩ／Ｆ部８４へ送信する。このメカＩ／Ｆ部８４は判定部１３５で内部コマンドと判定したことをもって、あるいは仮想メカコン８５から送られてきたコマンドであることをもって、その受け付けたコマンドをメカコントローラー４３へ送信する。よって、第２実施形態においても、エラーコマンドのような内部コマンドが第１キュー１４１に格納される順番がマスター側とスレーブ側で異なっても、メカＩ／Ｆ部８４が、エラーコマンドを仮想メカコン８５へ問い合わせることなく、メカコントローラー４３へスルーさせることにより、コマンド送信エラーの発生を回避できる。
【０１５６】
以上詳述したように、第２実施形態によれば、以下に示す効果を得ることができる。
（７）ホスト制御部１２５からのホストコマンドＰＳを格納する第２キュー１４２と、メカコントローラー４３からのメカコマンドＭＣを格納する第３キュー１４３とを別々に設けたので、各コントローラー４１，４２間でホストコマンドＰＳとメカコマンドＭＣとの取得順が入れ替わっても、それぞれを対応する各キューに別々に格納できる。よって、ホストコマンドＰＳとメカコマンドＭＣとを受信する順番がコントローラー４１，４２間で異なることに起因して第１実施形態の構成の場合に起こりうるコマンド送信エラーを回避することができる。また、メカコマンドＭＣ（例えば要求コマンド）をトリガーとしてコントローラー４１，４２内で発生するコマンド（例えば完了通知コマンド）もメカコマンドＭＣに属する設定とし、ホストコマンド用の第２キュー１４２とは異なる第３キュー１４３に格納する構成とした。よって、この種のメカコマンドＭＣとホストコマンドＰＳとがジョブ制御部９３へ入力される順番がマスターとスレーブ間で異なっても、コマンド送信エラーの発生を回避できる。
【０１５７】
（８）各キュー１４１〜１４３に優先順位を設定したので、各コントローラー４１，４２間で対応するキューからコマンドを出力させることができる。このため、各コントローラー４１，４２においてメカ制御部８３からメカＩ／Ｆ部８４へ出力されるコマンドを揃えることができる。
【０１５８】
（９）エラーコマンドなどの内部コマンドが第１キュー１４１に格納される順番がコントローラー４１，４２間で異なる場合でも、メカＩ／Ｆ部８４の判定部１３５により内部コマンドと判定されれば、仮想メカコン８５へ問い合わせることなく、その内部コマンドをメカコントローラー４３へ出力する。よって、第２実施形態においても、仮想メカコン８５でエラーコマンドが揃わないことに起因するコマンド送信エラーを回避できる。
【０１５９】
なお、上記実施形態は以下のような形態に変更することもできる。
・前記各実施形態において、内部コマンドを通信Ｉ／Ｆ部８７経由で通知しない構成を採用してもよい。この場合、内部コマンドが発生していない側のコントローラーのキュー１３３Ｂ内にその内部コマンドが格納されることはなくなり、メカコントローラー４３へのエラーコマンドの２重通知も解消する。
【０１６０】
・前記各実施形態では、判定部１３５により、「内部コマンド」であるかどうかを判定したが、予め同期処理を行わずそのままメカコントローラー４３へスルーさせるべき「スルーコマンド」であるかどうかを判定してもよい。この場合、コマンドにスルーコマンド専用の識別子を付したり、パケット中にスルーコマンドである旨をフラグで設定したりして、スルーコマンドであるかどうかを判定すればよい。例えばコントローラー４１，４２の内部で発生したエラーコマンドと、このエラーコマンド以外の内部コマンドと、ホスト装置１２０で発行されたエラーコマンドとを、スルーコマンドとしてもよい。この構成であっても、少なくとも内部コマンドは同期処理されることなくスルーされる。
【０１６１】
・前記第２実施形態において、第１〜第３キュー１４１〜１４３に設定される優先順位は適宜変更することができる。例えばホストコマンドＰＳを格納するためのキューを第１位の優先順位に設定し、メカコマンドＭＣを格納するためのキューを第２位の優先順位、内部コマンドを第３位の優先順位に設定してもよい。これらのうちどのキューに格納されるコマンドも緊急コマンドなので、特に優先順位に適宜設定してよい。
【０１６２】
・前記第２実施形態において、内部コマンド専用のキュー（第１キュー１４１）は廃止してもよい。例えば内部コマンドは、ホストコマンド用の第２キュー又はメカコマンド用の第３キューに格納してもよい。この場合、各コントローラー４１，４２のメカ制御部８３からメカＩ／Ｆ部８４へ出力されるコマンドの組合せが、内部コマンドとホストコマンド、又は内部コマンドとメカコマンドの組合せになっても、そのうち内部コマンドは判定部１３５による判定の結果、同期処理を行うことなくメカコントローラー４３へ送信される。よって、その後のリトライによってホストコマンド又はメカコマンドが揃うことになるので、コマンド送信エラーは回避される。
【０１６３】
・前記第２実施形態において、第１のコマンド（内部コマンド、ホストコマンドＰＳ、メカコマンドＭＣ）が格納される複数のキューに優先順位を設定しない構成も採用できる。複数のコントローラー間で対応するキューからコマンドが出力されれば、仮想メカコン８５においてコマンドが揃うので、コマンド送信エラーを回避できる。例えば、第１〜第３キューにおいて１つのキューからコマンドを１つ出力するとコマンド出力キューを次のキューへシフトさせる循環をコマンドが無くなるまで繰り返す構成も採用できる。
【０１６４】
・同期手段は、仮想メカコントローラー８５による方法に限定されない。例えば複数の印刷制御装置の出力先としてメカコントローラー４３との間に介在する同期回路を設け、同期回路において複数の印刷制御装置からのコマンドが揃い、かつすべて一致したら、そのコマンドをメカコントローラー４３へ送信する構成を採用してもよい。
【０１６５】
・同期手段は、複数の印刷制御装置の各出力手段からコマンドを受け付けるのではなく、コマンドを受け付けた際にコマンドが一致するか否かの判断に使用できる情報をコマンドに替えて受け付ける構成でもよい。情報としては、例えばコマンドの識別子情報（例えばコマンド番号）などを挙げることができる。
【０１６６】
・内部コマンドはエラーコマンドに限定されない。印刷制御装置の一例であるコントローラー内で個別に発生した内部コマンドであればよい。内部コマンドであれば、仮に他のコントローラーへ通信線ＳＬ４を介して送信されたときに、その内部コマンドの通信所要時間が比較的長くかかることが原因で、送信元と送信先の各コントローラーのジョブ制御部９３間でコマンドの取得順が異なることになる構成であれば、同様の課題が発生する。
【０１６７】
・前記第２実施形態において、メカコマンドＭＣをトリガーとしてコントローラー４１，４２内で発生した二次コマンドを、内部コマンド（第２のコマンド）として扱ってもよい。各コントローラー４１，４２から、完了通知コマンドが二重通知されても問題が起こらない種類のコマンドであれば、内部コマンドとして扱っても何ら問題はない。この構成であっても、この内部コマンドが仮想メカコン８５を経由せずスルーすることから、ホストコマンドＰＳの送信エラーを回避できる。
【０１６８】
・検出手段は、部品の一例であるインクカートリッジの状態（装着外れ、色違い、インク切れ等）を検出するインク管理部９０に限定されない。記録ヘッド２９毎にノズルの目詰まりを検査するためのノズル検査部を設け、複数のノズル検査部を部品の一例として複数のコントローラー４１，４２に分担して接続する。そして、各コントローラーには、ノズル検査部の検査制御とノズル検査部のノズル検査結果に基づきノズル目詰まり（ノズルエラー）を検出する検出機能とを有する検査制御部（検出手段）を備えた構成も採用できる。この場合、ノズル検査結果又はその検査結果に基づくコマンドを、コントローラー４１，４２間で通信Ｉ／Ｆ部８７，８７を介して他のコントローラーへ通知する。そして、各コントローラー４１，４２内に設けられた各検査制御部は、ノズル検査結果に基づきノズル目詰まりエラーコマンド（ノズルエラーコマンド）を生成したり、ノズル検査結果に基づきメンテナンス装置３２にクリーニングを行わせるクリーニングコマンドを生成したりする。この場合、通信による所要時間が比較的長いことに起因し、マスター側とスレーブ側の両コントローラー４１，４２でコマンドを取得した順番（つまりキュー１３３Ｂ内のコマンド格納順）が異なっても、ノズルエラーコマンドやクリーニングコマンドを、コマンド送信エラーの発生を招くことなく、メカコントローラー４３へ出力できる。
【０１６９】
・印刷制御装置の一例であるコントローラー４１，４２が分担して制御する印刷手段は、記録ヘッド２９に限定されない。印刷手段は、例えばキャリッジモーターを含むキャリッジ駆動系であってもよいし、搬送モーターを含む搬送駆動系であってもよい。さらに、記録ヘッド２９に、キャリッジ駆動系又は搬送駆動系を加えて印刷手段を構成することもできる。また、キャリッジ駆動系及び搬送駆動系により、印刷手段を構成することもできる。
【０１７０】
・印刷制御装置は二つに限らず、三つ以上の印刷制御装置を接続した構成も採用できる。
・記録ヘッドは１個でもよい。例えばライン記録方式の長尺状の記録ヘッドにおいて全ノズルを複数に分割したヘッド領域を複数に分担して二以上の印刷制御装置により制御し、これらの印刷制御装置を同期させてメカコントローラーにコマンドを出力する構成も採用できる。
【０１７１】
・図４におけるコントローラーの各機能部を、プログラムを実行するＣＰＵにより主にソフトウェアで実現したが、ハードウェアで実現したり、ソフトウェアとハードウェアとの協働により実現したりしてもよい。
【０１７２】
・印刷装置は、ラテラル式のプリンター１１に限定されず、シリアルプリンター、ラインプリンター、ページプリンターでもよい。さらにインクジェット式に限定されず、ドットインパクト式の印刷装置にも適用できる。
【０１７３】
・前記実施形態では、印刷装置として、インクジェット式のプリンター１１が採用されているが、インク以外の他の流体を噴射したり吐出したりする流体噴射装置を採用してもよい。また、微小量の液滴を吐出させる液体噴射ヘッド等を備える各種の液体噴射装置に流用可能である。この場合、液滴とは、上記液体噴射装置から吐出される液体の状態を言い、粒状、涙状、糸状に尾を引くものも含むものとする。また、ここでいう液体とは、液体噴射装置が噴射させることができるような材料であればよい。例えば、物質が液相であるときの状態のものであればよく、粘性の高い又は低い液状体、ゾル、ゲル水、その他の無機溶剤、有機溶剤、溶液、液状樹脂、液状金属（金属融液）のような流状体、また物質の一状態としての液体のみならず、顔料や金属粒子などの固形物からなる機能材料の粒子が溶媒に溶解、分散または混合されたものなどを含む。また、液体の代表的な例としては上記実施形態で説明したようなインクや液晶等が挙げられる。ここで、インクとは一般的な水性インクおよび油性インク並びにジェルインク、ホットメルトインク等の各種液体組成物を包含するものとする。液体噴射装置の具体例としては、例えば液晶ディスプレイ、ＥＬ（エレクトロルミネッセンス）ディスプレイ、面発光ディスプレイ、カラーフィルタの製造などに用いられる電極材や色材などの材料を分散または溶解のかたちで含む液体を噴射する液体噴射装置が挙げられる。さらに、バイオチップ製造に用いられる生体有機物を噴射する液体噴射装置、精密ピペットとして用いられ試料となる液体を噴射する液体噴射装置、捺染装置やマイクロディスペンサ等であってもよい。さらに、時計やカメラ等の精密機械にピンポイントで潤滑油を噴射する液体噴射装置、光通信素子等に用いられる微小半球レンズ（光学レンズ）などを形成するために紫外線硬化樹脂等の透明樹脂液を基板上に噴射する液体噴射装置、基板などをエッチングするために酸又はアルカリ等のエッチング液を噴射する液体噴射装置を採用してもよい。そして、これらのうちいずれか一種の液体噴射装置に本発明を適用することができる。また、流体は、トナーなどの粉粒体でもよい。なお、本明細書でいう流体には、気体のみからなるものは含まないものとする。
【０１７４】
前記実施形態及び変形例から把握できる技術的思想を以下に記載する。
請求項１乃至６のいずれか一項に記載の前記同期手段を備えた一の前記印刷制御装置と、前記同期手段を備えない他の印刷制御装置とを備え、前記他の印刷制御装置の前記出力手段は前記同期手段に接続されており、前記一の印刷制御装置の前記出力手段は前記同期手段及び前記駆動制御手段に接続されていることを特徴とする印刷制御システム。この構成によれば、印刷手段を複数の印刷制御手段で分担して制御でき、しかも、各出力手段にコマンドが全て揃わないことに起因する同期手段のエラーを回避できる。
【符号の説明】
【０１７５】
１１…印刷装置の一例であるプリンター、１３…印刷媒体の一例であるシート、２７…キャリッジ、２９，２９Ａ，２９Ｂ…印刷手段を構成する記録ヘッド、３６…ノズル、４１…印刷制御装置、第１印刷制御装置及びマスター側印刷制御装置の一例であるマスター側コントローラー、４２…印刷制御装置、第２印刷制御装置及びスレーブ側印刷制御装置の一例であるスレーブ側コントローラー、４３…駆動制御手段の一例であるメカコントローラー、４４…印刷用のメカニカル機構、４５…ヘッド制御ユニット（ＨＣＵ）、４６…通信回路、４７…記憶素子、５０…リニアエンコーダー、５３…ＣＰＵ、５４…ＡＳＩＣ、５５…ＲＡＭ、５６…不揮発性メモリー、６１…搬送手段を構成する搬送モーター、６２…第１ＣＲモーター、６３…第２ＣＲモーター、７２…操作スイッチ、８１…画像処理部、８２…主制御部、８３…指示手段の一例であるメカ制御部、８４…出力手段の一例であるメカＩ／Ｆ部、８５…同期手段の一例である仮想メカコントローラー、８６…コマンド生成手段の一例を構成するエラー管理部、８７…通信手段の一例である通信Ｉ／Ｆ部、８８…画像バッファー、８９…ヘッド制御部、９０…コマンド生成手段の一例を構成すると共に検出手段の一例であるインク管理部、９３…管理手段の一例であるジョブ制御部、９４…指示手段の一例であるシーケンス制御部、９５…ダミーメカコントローラー、９８…インク残量演算部、１００…印刷システム、１１０…画像生成装置、１２０…ホスト装置、１２２…プリンタードライバー、１２５…ホスト制御手段の一例であるホスト制御部、１３１…コマンド判定部、１３２…シーケンスキュー、１３３，１３３Ａ，１３３Ｂ…イミーディエットキュー、１３４…コマンド出力部、１３５…判定部、１４０…コマンド判定部、１４１，１４１Ａ，１４１Ｂ…第１キュー、１４２，１４２Ａ，１４２Ｂ…第１の管理手段の一例である第２キュー、１４３，１４３Ａ，１４３Ｂ…第２の管理手段の一例である第３キュー、１４４…第４キュー、１４５…出力部の一例であるコマンド出力部、Ｃ…制御装置、Ｕ３，Ｕ４…入力手段の一例を構成するシリアル通信ポート、ＩＣ１〜ＩＣ８…印刷材収容体の一例であるインクカートリッジ、ＳＬ３…通信線、ＳＬ４…通信線、ＰＤ，Ｐ１，Ｐ２…印刷データ、ＥＲ１，ＥＲ２…第２のコマンドの一例であるエラーコマンド（内部コマンド）、ＰＳ１，ＰＳ２…第１のコマンドの一例であるコマンド（ホストコマンド）、ＭＣ１，ＭＣ２…第１のコマンドの一例であるコマンド（メカコマンド）。
【図１】
0005593924.tif 000002
【図２】
0005593924.tif 000003
【図３】
0005593924.tif 000004
【図４】
0005593924.tif 000005
【図５】
0005593924.tif 000006
【図６】
0005593924.tif 000007
【図７】
0005593924.tif 000008
【図８】
0005593924.tif 000009
【図９】
0005593924.tif 000010
【図１０】
0005593924.tif 000011
【図１１】
0005593924.tif 000012