以下、本発明をラテラル方式のインクジェット式プリンターの印刷制御装置に具体化した一実施形態を図1〜図10に従って説明する。
図1は、ラテラル方式のインクジェット式プリンターを備えた印刷システムの模式図である。図1に示すように、印刷システム100は、画像データを生成する画像生成装置110と、画像生成装置110から受信した画像データを基に印刷データを生成するホスト装置120と、ホスト装置120から受信した印刷データに基づく画像を印刷する印刷装置の一例としてのラテラル方式のインクジェット式プリンター(以下、単に「プリンター11」と称す)とを備えている。
画像生成装置110は、例えばパーソナルコンピューターにより構成され、その本体111内のCPUが画像作成用ソフトウェアを実行することで構築される画像生成部112を備える。ユーザーは、画像生成部112を起動して入力装置113の操作でモニター114上で画像を作成し、入力装置113を操作して画像の印刷を指示する。すると、その画像に係る画像データが所定の通信インターフェイスを介してホスト装置120へ送信される。
ホスト装置120は、例えばパーソナルコンピューターにより構成され、その本体121内のCPUがプリンタードライバー用ソフトウェアを実行することで構築されるプリンタードライバー122を備える。プリンタードライバー122は、画像生成装置110から受信した画像データを基に印刷データを生成し、プリンター11に設けられた制御装置Cへ送信する。制御装置Cは、プリンタードライバー122から受信した印刷データに基づいてプリンター11を制御し、プリンター11に印刷データに基づく画像を印刷させる。なお、モニター123には、プリンター11に制御用設定値を入力設定するためのメニュー画面や印刷対象の画像等が表示される。
次に、図1に示すプリンター11の構成について説明する。なお、以下における明細書中の説明において、「左右方向」、「上下方向」をいう場合は、図1等の図面に矢印で示した方向を基準として示すものとする。また、図1において手前側を前側、奥側を後側とする。
図1に示すように、プリンター11は、直方体状の本体ケース12を備える。本体ケース12内には、長尺状のシート13を繰り出す繰出し部14と、そのシート13にインクの噴射により印刷を施す印刷室15と、その印刷によりインクが付着したシート13に乾燥処理を施す乾燥装置16と、乾燥処理が施されたシート13を巻き取る巻取り部17とが設けられている。
すなわち、本体ケース12内におけるやや上寄りの位置には、本体ケース12内を上下に区画する平板状の基台18が設けられており、この基台18よりも上側の領域が矩形板状の支持部材19を基台18上に支持してなる印刷室15となっている。そして、基台18よりも下側の領域において、シート13の搬送方向で上流側となる左側寄りの位置に、繰出し部14が配設されると共に、下流側となる右側寄りの位置に、乾燥装置16及び巻取り部17が配設されている。
図1に示すように、繰出し部14には、前後方向に延びる巻き軸20が回転自在に設けられ、その巻き軸20に対してシート13が予めロール状に巻かれた状態で一体回転可能に支持されている。すなわち、シート13は、巻き軸20が回転することにより、繰出し部14から繰り出されるようになっている。また、繰出し部14から繰り出されたシート13は、巻き軸20の右側に位置する第1ローラー21に巻き掛けられて上方へ案内される。
一方、支持部材19の左側であって下側の第1ローラー21と上下方向で対応する位置には、第2ローラー22が下側の第1ローラー21と平行な状態で設けられている。そして、第1ローラー21によって搬送方向が鉛直上方向に変換されたシート13は、この第2ローラー22に左側下方から巻き掛けられることにより、その搬送方向が水平右方向に変換されて支持部材19の上面に摺接するようになっている。
また、支持部材19の右側には、左側の第2ローラー22と支持部材19を挟んで対向する第3ローラー23が第2ローラー22と平行な状態で設けられている。なお、第2ローラー22及び第3ローラー23は各々の周面の頂部が支持部材19の上面と同一高さとなるように位置調整されている。
印刷室15内で左側の第2ローラー22により搬送方向が水平右方向に変換されたシート13は、支持部材19の上面に摺接しつつ下流側となる右側に搬送された後、第3ローラー23に右側上方から巻き掛けられることにより搬送方向が鉛直下方向に変換されて基台18よりも下側の乾燥装置16に向けて搬送されるようになっている。そして、乾燥装置16内を通過することにより乾燥処理が施されたシート13は、更に鉛直下方向に搬送された後、第4ローラー24に巻き掛けられて搬送方向を水平右方向に変換され、この第4ローラー24の右側に配設された巻取り部17の巻取り軸25が搬送モーター61(図5参照)の駆動力に基づいて回転することによりロール状に巻き取られる。
図1に示すように、印刷室15内における支持部材19の前後両側には、左右方向に延びるガイドレール26(図1では2点鎖線で示す)が対をなすように設けられている。ガイドレール26の上面は支持部材19の上面よりも高くなっており、両ガイドレール26の上面には、矩形状のキャリッジ27が第1キャリッジモーター62(図5参照)の駆動に基づき両ガイドレール26に沿って図1に示す主走査方向X(図1では左右方向)への往復移動が可能な状態で支持されている。また、キャリッジ27は第2キャリッジモーター63(図5参照)の駆動に基づき副走査方向(図1では紙面と直交する前後方向)への移動も可能となっている。そして、このキャリッジ27の下面側には支持板28を介して複数の記録ヘッド29が支持されている。
支持部材19の左端から右端までの一定範囲が印刷領域とされており、この印刷領域単位でシート13は間欠的に搬送されるようになっている。そして、支持部材19上に停止したシート13に対してキャリッジ27の往復移動に伴い記録ヘッド29からインクが噴射されることでシート13に印刷が施される。
なお、印刷時には、支持部材19の下側に設けられた吸引装置30が駆動され、支持部材19の上面に開口する多数の吸引孔に及ぶ負圧による吸引力により、シート13は支持部材19の上面に吸着される。そして、シート13への1回分の印刷が終わると、吸引装置30の負圧が解除され、シート13の搬送が行われるようになっている。
また、印刷室15内において、第3ローラー23よりも右側となる非印刷領域には、非印刷時に記録ヘッド29のメンテナンスを行うためのメンテナンス装置32が設けられている。メンテナンス装置32は、記録ヘッド29毎にキャップ33と昇降装置34とを備える。各キャップ33は昇降装置34の駆動により、記録ヘッド29のノズル形成面35(図2参照)に当接するキャッピング位置と、ノズル形成面35から離間する退避位置との間を移動する。
また、図1に示すように、本体ケース12内には、異なる色のインクをそれぞれ収容した複数(例えば8個)のインクカートリッジIC1〜IC8が着脱可能に装着されている。そして、各インクカートリッジIC1〜IC8はインク供給路70A,70B等(図3参照)を通じて記録ヘッド29に接続され、各記録ヘッド29は各インクカートリッジIC1〜IC8から供給されたインクを噴射する。このため、本例のプリンター11では、8色のインクを用いたカラー印刷が可能となっている。なお、本体ケース12においてインクカートリッジIC1〜IC8の配置位置と対応する箇所には開閉式のカバー38が設けられている。インクカートリッジIC1〜IC8の交換作業はカバー38を開けて行われる。
8個のインクカートリッジIC1〜IC8は、例えば黒(K)、シアン(C)、マゼンタ(M)、イエロー(Y)等の各インクを収容する。なお、保湿液を収容する保湿液カートリッジが装填される構成も採用できる。もちろん、インクの種類(色数)は適宜設定でき、黒インクだけでモノクロ印刷する構成や、インクを2色としたり、8色以外で3色以上の任意の色数としたりした構成も採用できる。
各インクカートリッジIC1〜IC8はカートリッジホルダー69(図3参照)を介して制御装置Cと電気的に接続されており、各インクカートリッジIC1〜IC8に実装された不揮発性の記憶素子47(図3,図5参照)には、対応する色のインク残量情報が書き込まれるようになっている。この記憶素子47には、インク残量情報以外にも、品番、インク色、使用期限などのインク関連情報(参照情報の一例)が記憶されている。
図2は、キャリッジの底面に設けられた複数の記録ヘッドと、各記録ヘッドへインクを供給するインク供給装置とを示す模式図である。図2に示すように、キャリッジ27の下面側に支持された支持板28には、複数個(本実施形態では15個)の記録ヘッド29がシート13の搬送方向(図2において白抜き矢印で示す方向)と直交する幅方向(前後方向)に亘って千鳥状の配置パターンで支持されている。つまり、15個の記録ヘッド29は、副走査方向Yに沿って一定ピッチで2列で配列された記録ヘッド29A,29Bが、副走査方向Yに互いに半ピッチずれた千鳥配置をとっている。そして、各記録ヘッド29の下面となるノズル形成面35には、多数のノズル36が前後方向(副走査方向Y)に沿って1列に配置されてなるノズル列37が主走査方向Xに所定間隔をおいて複数列(本実施形態では8列)形成されている。
図2に示すように、各記録ヘッド29へ各色のインクを供給するためのインク供給装置39が設けられている。インク供給装置39は、ポンプモーター65、加圧ポンプ66、インクカートリッジIC1〜IC8、サブタンク67及びカートリッジホルダー69(図3参照)を備えている。
各インクカートリッジIC1〜IC8は、カートリッジホルダー69に装着された状態では、それぞれインク供給路70A(例えばチューブ)を通じてサブタンク67と接続され、さらにサブタンク67はインク供給路70B(例えばチューブ)を通じて各記録ヘッド29に接続されている。但し、図2では、複数(例えば8個)のサブタンク67と1つの記録ヘッド29との接続関係のみ示している。実際には、8個のサブタンク67からは記録ヘッド29の個数と同数本のインク供給路70Bが延びており、各インク供給路70Bは各記録ヘッド29に接続されている。
また、インクカートリッジIC1〜IC8は、カートリッジホルダー69に装着された状態では、加圧ポンプ66の吐出口と空気供給路71を通じて接続されるようになっている。制御装置Cがポンプモーター65を駆動して加圧ポンプ66がポンプ駆動されることにより、加圧ポンプ66から吐出された加圧空気が空気供給路71を通じてインクカートリッジIC1〜IC8内の圧力室に供給される。
また、本体ケース12において図2に実線で示す閉状態にあるカバー38の回動端と対応する位置には、カバー38を閉状態にロックするための電磁ロック68が設けられている。例えば本体ケース12におけるカバー38の近傍位置には、ユーザーがカバー38のロック/ロック解除の操作をするための操作スイッチ72(図5参照)が設けられている。制御装置Cは、操作スイッチ72からカバー38をロックさせる操作がなされた際のロック信号を入力すると、電磁ロック68を励磁させることによりカバー38を閉状態にロックさせる。また、制御装置Cは、操作スイッチ72からカバー38のロックを解除させる操作がなされた際のロック解除信号を入力すると、電磁ロック68を消磁させることによりカバー38のロックを解除させる。カートリッジ交換を行う際は、図2に示すように、カバー38を二点鎖線で示す開状態(但し最大開度は図2の状態より大きい)で、インクカートリッジIC1〜IC8のうち少なくとも1個の交換を行って再びカバー38を図2に実線で示す閉状態とした後、操作スイッチ72を操作することでカバー38を閉状態にロックさせる。なお、カバーロックを指示する方式は、操作スイッチ72による操作方式に限定されず、カバー38が閉状態にあることを検知するセンサーから制御装置Cが閉検知信号を入力したときに電磁ロック68を励磁駆動させる構成も採用できる。
図3は、インク供給装置の要部を示す模式側断面図である。インクカートリッジICとインク供給路70A及び空気供給路71の接続は、図3に示すようにカートリッジホルダー69を介して行われる。詳しくは、カートリッジホルダー69に突設された供給針69aが、インクカートリッジICを構成する箱状のケース73内に収容されたインクパック74のインク供給部74aに差し込まれたときに、該インク供給部74aに内蔵された弁体(いずれも図示略)が開弁方向へ押し込まれる。この結果、インクパック74の内部がインク供給路70Aと連通する状態になる。また、インクカートリッジICに設けられた空気導入部74bが、カートリッジホルダー69に設けられた空気供給部69bに差し込まれたときに該空気供給部69bに内蔵された弁体(いずれも図示略)が開弁方向へ押し込まれることにより、ケース73とインクパック74との間に形成される圧力室75が空気供給路71と連通された状態になる。
図3に示すように、インクパック74が実線で示すインク満タン(インクフル)の状態にあるときは、圧力室75の容積は最小になっている。そして、この最小の容積を、以下、圧力室75の初期容積Aoとする。インクパック74からインクがインク供給路70A側へ導出されるに従い、ケース73内におけるインクパック74の占有体積は、図3中に実線で示す初期状態から二点鎖線で示すように徐々に小さくなる。インクパック74の体積が減少した分のインクがインク供給路70Aを通じてサブタンク67へ供給され、さらにサブタンク67からインク供給路70Bを通じて各記録ヘッド29へ供給される。なお、圧力室75の室圧を検出可能な圧力センサー(図示略)により検出された室圧が所定範囲内に収まるように、ポンプモーター65は駆動制御される。また、図3に示すカートリッジホルダー69には、インクカートリッジICが装着された状態においてその端面に設けられた記憶素子47と電気的に接続することが可能な端子部76が設けられている。
図5は、印刷システム100の電気構成を示すブロック図である。図5に示すホスト装置120内のプリンタードライバー122は、モニター123に表示させるべきメニュー画面、印刷条件設定画面及びエラー画面101(図4参照)などの各種画面の表示制御を行うと共に、各画面の表示状態において操作部124から入力した操作信号に応じた所定処理を行うホスト制御部125を備えている。ホスト制御部125は、プリンタードライバー122を統括的に制御する。また、プリンタードライバー122には、上位の画像生成装置110から受信した画像データIDに対して印刷データの生成に必要な画像処理を施す、解像度変換部126、色変換部127及びハーフトーン処理部128を備えている。解像度変換部126は、画像データIDを表示解像度から印刷解像度へ変換する解像度変換処理を行う。色変換部127は、表示用の表色系(例えばRGB表色系やYCbCr表色系)から印刷用の表色系(例えばCMYK表色系)に色変換する色変換処理を行う。さらにハーフトーン処理部128は、表示用の高階調(例えば256階調)の画素データを印刷用の低階調(例えば2階調又は4階調)の画素データに階調変換するハーフトーン処理などを行う。そして、プリンタードライバー122は、これらの画像処理を施した結果生成された印刷画像データPIに、印刷制御コード(例えばESC/P)で記述されたコマンドを付して印刷ジョブデータ(以下、単に「印刷データPD」と称す)を生成する。
ホスト装置120はデータの転送制御を行う転送制御部129を備える。転送制御部129は、プリンタードライバー122が生成した印刷データPDを所定容量のパケットデータずつプリンター11へ順次シリアル転送する。
一方、プリンター11側の制御装置Cは、ホスト装置120から印刷データPDを受信して記録系の制御をはじめとする各種制御を行う一対のコントローラー41,42を備えている。一対のコントローラー41,42は、複数個(本例では15個)の記録ヘッド29を所定個数(本例では7個と8個)の2つに分けて分担して制御する。すなわち、マスター側コントローラー41が7個の記録ヘッド29Bの制御を受け持ち、スレーブ側コントローラー42が8個の記録ヘッド29Aの制御を受け持つ。
図5に示すホスト装置120内のプリンタードライバー122は、2つのコントローラー41,42のそれぞれが受け持つ記録ヘッド29の配置位置に応じて印刷画像データを2つに分割し、分割した各印刷画像データに同一の印刷言語記述コマンドを付して2つの印刷データP1,P2を生成する。
図5に示すように、本実施形態のホスト装置120は、2つのシリアル通信ポートU1,U2を備えている。また、2つのコントローラー41,42もそれぞれシリアル通信ポートU3,U4を備えている。そして、転送制御部129は、シリアル通信ポートU1,U3間の通信を介してマスター側コントローラー41へ対応する印刷データP1をシリアル転送すると共に、シリアル通信ポートU2,U4間の通信を介してスレーブ側コントローラー42へ対応する印刷データP2をシリアル転送するようになっている。ホスト装置120は、2つのシリアル通信ポートU1,U2を用いた2系統でシリアル転送を行って、各コントローラー41,42へ比較的高速に印刷データP1,P2を転送する。なお、本実施形態では、印刷データP1,P2に含まれる形態でコマンドを入力するシリアル通信ポートU2,U4が、入力手段の一例を構成する。
図5に示すように、2つのコントローラー41,42には、複数個(N個(本例では4個))ずつのヘッド制御ユニット45(以下、単に「HCU45」という)が接続され、各HCU45にはそれ一個につき記録ヘッド29が複数個(M個(本例では2個))ずつ接続されている。
また、2つのコントローラー41,42に接続された各通信回路46には、8個のインクカートリッジIC1〜IC8に実装された8個の記憶素子47のうち半分の4個ずつがそれぞれ接続されている。マスター側コントローラー41は4個のインクカートリッジIC1〜IC4に実装された記憶素子47と通信可能であり、スレーブ側コントローラー42は4個のインクカートリッジIC5〜IC8に実装された記憶素子47と通信可能である。記憶素子47は不揮発性の記憶素子(不揮発性メモリ)により構成されている。記憶素子47には、対応するインクカートリッジICのインク残量情報、インク色、使用期限、メンテナンス情報、品番などの各種のインク関連情報が記憶される。なお、インクカートリッジIC(図2、図3参照)がカートリッジホルダー69に装着された状態で、記憶素子47とカートリッジホルダー69側の端子部76とが電気的に接続されることにより、通信回路46は記憶素子47に対して読み取り及び書き込みのための通信が可能な状態に接続される。
マスター側コントローラー41は、4個のインクカートリッジIC1〜IC4のインク残量を管理し、一方のスレーブ側コントローラー42は、残り4個のインクカートリッジIC5〜IC8のインク残量を管理する。マスター側コントローラー41は、通信回路46を介してインクカートリッジIC1〜IC4の各記憶素子47と通信してインク関連情報の読出し及び書込みが可能となっている。同様に、スレーブ側コントローラー42は、通信回路46を介して各インクカートリッジIC5〜IC8に実装された記憶素子47と通信してインク関連情報の読出し及び書込みが可能となっている。
さらに、制御装置Cは、マスター側コントローラー41の出力側(制御下流側)に通信線SL1を通じて接続されたメカコントローラー43を備えている。メカコントローラー43は主に搬送系及びキャリッジ駆動系を含むメカニカル機構44の制御を司る。マスター側コントローラー41は、自身が受け持つ7個の記録ヘッド29Bの印刷準備ができ(つまりインク滴噴射制御に使用する印刷画像データが準備され)、かつスレーブ側コントローラー42が受け持つ8個の記録ヘッド29Aも印刷準備ができた段階でキャリッジ起動コマンドをメカコントローラー43へ送信するようになっている。これにより、コントローラー41,42のうち一方の印刷準備完了前にキャリッジ27が起動されてしまうことに起因し、記録ヘッド29が噴射位置に到達したにも拘わらずインク滴が噴射されない噴射ミスが防止されるようにしている。
また、マスター側コントローラー41は、自身が受け持つ7個の記録ヘッド29Bの印刷を完了し、かつスレーブ側コントローラー42が受け持つ8個の記録ヘッド29Aも印刷を完了した段階で、シート13の搬送を指令する搬送コマンドをメカコントローラー43へ送信する。これにより、コントローラー41,42のうち一方が印刷完了前の段階でシート13が搬送開始(又は支持部材19上のシートの吸着解除)されてしまうことに起因し、記録ヘッド29から噴射されたインク滴のシート13に対する着弾位置のずれ(印刷位置ずれ)が防止されるようにしている。このようにマスター側コントローラー41は、スレーブ側コントローラー42と進捗の同期をとってコマンドを送信する機能を備えている。そして、両コントローラー41,42は、他方のコントローラーへコマンドを出力するスレーブ側と、スレーブ側から受け付けたコマンドと自身のコマンドとが揃いかつコマンド内容が一致することを確認した時点でメカコントローラー43へコマンドを出力するマスター側とに分かれる。本実施形態では、制御上の同期をとるための仕組みの部分がマスター側とスレーブ側とで異なる。
図5に示すように、マスター側コントローラー41にはリニアエンコーダー50が接続されている。このリニアエンコーダー50はキャリッジ27の移動経路に沿って設けられ、マスター側コントローラー41には、このリニアエンコーダー50からキャリッジ27の移動距離に比例する数のパルスをもつ検出信号(エンコーダーパルス信号)が入力される。マスター側コントローラー41に入力されたエンコーダーパルス信号は、両コントローラー41,42間に接続された信号線SL2を通じてスレーブ側コントローラー42へ伝達されるようになっている。さらにマスター側コントローラー41とスレーブ側コントローラー42は、同期処理に用いられる通信線SL3を通じて互いに接続されている。
図5に示すように、各コントローラー41,42は、それぞれCPU53(中央処理装置)、ASIC54(Application Specific IC(特定用途向け集積回路))、RAM55、及び不揮発性メモリー56を備えている。CPU53は、不揮発性メモリー56に記憶されたプログラムを実行することにより、印刷制御に必要な各種タスクを実行する。また、ASIC54は、印刷データの処理など記録系のデータ処理などを行う。
一方、メカコントローラー43には、モーター駆動回路60を介してメカニカル機構44を構成する搬送モーター61、第1キャリッジモーター(以下、「第1CRモーター62」ともいう)及び第2キャリッジモーター(以下、「第2CRモーター63」ともいう)がそれぞれ接続されている。また、メカコントローラー43には、メンテナンス装置32及び電磁ロック68がそれぞれ接続されている。さらにメカコントローラー43には、モーター駆動回路78を介してインク供給装置39を構成するポンプモーター65が接続されており、ポンプモーター65が駆動されることにより加圧ポンプ66が駆動される。
また、メカコントローラー43には、入力系として、前述の操作スイッチ72及び搬送系のエンコーダー77がそれぞれ接続されている。メカコントローラー43は操作スイッチ72からロック操作信号を入力すると電磁ロック68を励磁し、操作スイッチ72から解除操作信号を入力すると電磁ロック68を消磁する。メカコントローラー43はマスター側コントローラー41から通信線SL1を通じて受信した各種コマンドに従って、各モーター61〜63,65、メンテナンス装置32及び電磁ロック68を駆動制御する。
制御装置Cは、印刷時に、搬送モーター61を駆動して次の被印刷領域が支持部材19上に配置されるまでシート13を搬送する搬送動作と、シート搬送後に次の被印刷領域を支持部材19に吸着させる吸着動作と、記録ヘッド29によるシート13への印刷動作と、1回分(1頁分)の印刷終了後に吸着を解除する吸着解除動作とを行う。このとき、印刷動作は、キャリッジ27の主走査方向Xへの移動中に記録ヘッド29からインク滴を噴射することにより行われる。この印刷動作は、第1CRモーター62の駆動によるキャリッジ27の主走査方向Xへの1回の移動(1パス動作)と、1パス終了毎に行われる第2CRモーター63の駆動によるキャリッジ27の副走査方向Yへの移動とを、所定回数繰り返すことにより行われる。
図6は、マスター側コントローラー41とスレーブ側コントローラー42の機能構成を説明するブロック図である。図6に示すように、両コントローラー41,42は、互いに対称な構成を有している。これは、マスター側とスレーブ側の各コントローラー41,42を同じプログラムの構成で実現できているからである。なお、対称な構成(ほぼ同じ機能構成)であるので、以下、マスター側コントローラー41の構成を説明し、これと対比してスレーブ側コントローラー42の一部異なる機能構成を説明する。
図6に示すように、マスター側コントローラー41は、入力手段の一例としてのシリアル通信ポートU3、画像処理部81、主制御部82、メカ制御部83、出力手段の一例としてのメカI/F部84、同期手段の一例としての仮想メカコントローラー85(バーチャルメカコントローラー)を備えている。さらに、マスター側コントローラー41は、エラー管理部86、通信I/F部87、画像バッファー88、ヘッド制御部89及び検出手段の一例としてのインク管理部90を備えている。一方、スレーブ側コントローラー42は、仮想メカコントローラー85に替えて、ダミーメカコントローラー95を備える点が異なるだけで、その他の構成はマスター側コントローラー41と同様である。なお、主制御部82は、各部83〜90を統括的に制御する機能を有する。
また、スレーブ側コントローラー42のメカI/F部84は、マスター側コントローラー41の仮想メカコントローラー85と通信線SL3を通じて接続されている。すなわち、マスター側コントローラー41のメカI/F部84が実際のメカコントローラー43に接続されているのに対して、スレーブ側コントローラー42のメカI/F部84はマスター側コントローラー41内に設けられた仮想メカコントローラー85に接続されている。スレーブ側のメカI/F部84はメカコントローラー43へコマンドを出力したつもりで実際は仮想メカコントローラー85へコマンドを送信している。
図6に示すマスター側コントローラー41側の画像処理部81は、シリアル通信ポートU3が入力した印刷データP1の解凍処理、コマンド解析、マイクロウィーブ処理及び縦横変換処理などの画像処理を行う。一方、図6に示すスレーブ側コントローラー42側の画像処理部81は、シリアル通信ポートU4が入力した印刷データP2の解凍処理、コマンド解析、マイクロウィーブ処理及び縦横変換処理などの画像処理を行う。
画像処理部81は、解凍後の印刷データを画像バッファー88に一時格納する。ここで、印刷データP1は印刷画像データと印刷言語記述コマンドとを含む。主制御部82は、解凍後の印刷データP1中の印刷言語記述コマンドを解析して制御用のコマンドを取得し、その取得したコマンドをメカ制御部83へ送る。画像処理部81は、印刷画像データに対してドットをノズルに割り付ける割付処理(マイクロウィーブ処理)及び縦横変換処理などの必要な画像処理を順次施し、記録ヘッド29の制御に使用するヘッド制御データを生成して画像バッファー88に格納する。また、本実施形態の主制御部82は、応答手段の一例としても機能する。すなわち、主制御部82は、メカコントローラー43から装置状態情報US(図10参照)を受信してこれを一時格納しておき、ホスト制御部125から装置状態取得コマンドSG(図10参照)を受け付けると、その応答として先に格納しておいた装置状態情報USをホスト制御部125へ送信する。主制御部82のこの機能の詳細は後述する。
ヘッド制御部89は、画像バッファー88からヘッド制御データを読み出し、このヘッド制御データを記録ヘッド29毎に分割して各HCU45へ割り振りつつ転送する。さらに、HCU45は記録ヘッド29へ対応するヘッド制御データを逐次送信する。記録ヘッド29内の不図示のヘッド駆動回路は、ヘッド制御データに基づきノズル36毎の噴射駆動素子を駆動制御し、ノズル36からインク滴を噴射させる。このとき、ヘッド制御部89は、リニアエンコーダー50から入力されるエンコーダーパルス信号を基に噴射タイミング信号を生成し、ヘッド駆動回路はこの噴射タイミング信号に基づき噴射駆動素子を駆動させる。
図6に示すメカ制御部83は、主制御部82から受け付けたコマンドをメカI/F部84へ送る。このとき、メカ制御部83は、受け付けたコマンドがシーケンスコマンドの場合、例えばヘッド制御部89の処理の進捗を監視し、次パスの印刷に使用するヘッド制御データが揃い印刷準備ができた段階でそのシーケンスコマンドをメカI/F部84へ送る。その他のコマンドについてはそのコマンド種に応じた適切な時期にメカI/F部84へ送る。
メカI/F部84は、メカ制御部83からコマンドを受け付けると、仮想メカコントローラー85に問合せをする。そして、メカI/F部84は、仮想メカコントローラー85から問合せの応答としてACK信号(肯定信号)を受信すると、コマンドをメカコントローラー43へ送信する。つまり、メカI/F部84は、仮想メカコントローラー85への問合せの応答としてACK信号を受信しなければ、ACK信号を受信するまで待機し、ACK信号を受信するとコマンドをメカコントローラー43へ送信する。但し、応答(ACK信号)を待つ待機時間が設定時間に達してタイムアウトとなった場合は、リトライ要求をメカ制御部83へ送信する。
一方のスレーブ側コントローラー42においても画像処理部81、主制御部82、メカ制御部83、メカI/F部84は同様の処理を行う。但し、ダミーメカコントローラー95は、仮想メカコントローラー85と異なる機能をもつ。ダミーメカコントローラー95は、メカI/F部84から問合せを受け付けると、無条件で直ちにACK信号を応答する。このため、スレーブ側コントローラー42におけるメカI/F部84は、メカ制御部83からコマンドを受け付けて問合せをすると、ダミーメカコントローラー95から直ぐにACK信号を受信するので、コマンドの受付けからほぼ待ち時間なくそのコマンドを出力できる。
これに対して、マスター側の仮想メカコントローラー85は、マスター側のメカI/F部84からコマンドの問合せを受け付けると、通信線SL3を通じてスレーブ側のメカI/F部84から送られてきたコマンドを受信し、かつ両コマンドが一致していることを条件に、各メカI/F部84にACK信号を応答する。このため、マスター側のメカI/F部84は、仮想メカコン85においてマスター側とスレーブ側の両メカI/F部84からのコマンドが揃い、かつその揃った両コマンドが一致したと判断されたときの応答を待ち、その応答を受け付けると、そのコマンドをメカコントローラー43へ出力する。このため、マスター側とスレーブ側の両コントローラー41,42の同期をとって、コマンドをメカコントローラー43へ送信できる。
図6に示すように、仮想メカコントローラー85とダミーメカコントローラー95は同じ構成であり、共に仮想メカコン部96とダミーメカコン部97を備える。仮想メカコン部96が起動されると仮想メカコントローラー85として機能し、ダミーメカコン部97が起動されるとダミーメカコントローラー95として機能する。仮想メカコン部96とダミーメカコン部97のうちどちらを起動するかは、主制御部82が、自身がマスターであるかスレーブであるかを判定して決める。主制御部82はマスターであると判定した場合、仮想メカコン部96を有効としこれを起動するとともに、ダミーメカコン部97を無効としこれを起動させない。一方、主制御部82はスレーブであると判定した場合、ダミーメカコン部97を有効としこれを起動するとともに、仮想メカコン部96を無効としこれを起動させない。
また、図6に示すマスター側のメカI/F部84は、メカコントローラー43からコマンドを受け付けたときには、そのコマンドを仮想メカコントローラー85へ送る。仮想メカコントローラー85は、マスター側のメカI/F部84から受け付けたコマンドをスレーブ側のメカI/F部84へ送信すると、ACK信号をマスター側のメカI/F部84へ応答する。マスター側のメカI/F部84は、仮想メカコントローラー85からその応答(ACK信号)を受け付けると、上位のメカ制御部83へそのコマンドを送るようになっている。本実施形態では、メカI/F部84のうちメカコントローラー43からのコマンドを入力する入力機能部分も、入力手段の一例として構成される。本実施形態では「第1のコマンド」には、ホスト制御部125から印刷データに含まれる形態でシリアル通信ポートU3,U4が入力するコマンドと、印刷データとは別にホスト制御部125で生成されてシリアル通信ポートU3,U4が入力するコマンドと、メカコントローラー43からメカI/F部84が入力するコマンドとがある。
ところで、仮想メカコントローラー85における同期処理においてコマンドが揃わない場合、マスター側のメカI/F部84は仮想メカコントローラー85からACK信号を受信できないので、待機時間が設定時間に達してタイムアウトになる。一方、スレーブ側コントローラー42のメカI/F部84も、仮想メカコントローラー85からACK信号を受信できないので、待機時間が設定時間に達して、やはりタイムアウトになる。この場合、メカI/F部84はメカ制御部83に対してリトライ要求をする。メカ制御部83はリトライ要求を受け付けると、メカI/F部84へコマンドを再送信(再発行)する。
通信I/F部87は、マスター側とスレーブ側における各ヘッド制御部89が処理の同期をとったり、各インク管理部90が互いの情報(検出結果及びインク消費量等)を交換し合ったりするための通信を行うために設けられたものである。本実施形態では、この通信I/F部87を、一部のコマンドの他のコントローラーへの送信にも使用する。
図6に示すインク管理部90はインク残量演算部98を備えている。インク残量演算部98は、約半数の記録ヘッド29B(又は29A)が消費した8色分のインク消費量を取得する。ここで、ヘッド制御部89は、印刷画像データに基づき記録ヘッド29B(又は29A)のインク滴噴射回数に相当するドット数を色別に計数している。インク残量演算部98は、ヘッド制御部89からインク色毎のドット数を取得してその取得したドット数を色別に合計し、その合計した色別のドット数を基に記録ヘッド29B(スレーブ側では記録ヘッド29A)が消費したインク色別のインク消費量を演算する。こうしてマスター側のインク残量演算部98は7個の記録ヘッド29Bのインク消費量を色別に算出し、一方のスレーブ側のインク残量演算部98は8個の記録ヘッド29Aのインク消費量を色別に算出する。
本実施形態では、複数色のインクカートリッジIC1〜IC8を、マスター側コントローラー41とスレーブ側コントローラー42とで分担して管理する。このため、インク残量演算部98が算出した自コントローラー側の記録ヘッド29B(スレーブ側は記録ヘッド29A)が消費した8色分のインク消費量を、各通信I/F部87,87間の通信を介して相手側のコントローラーへ通知する構成となっている。
そして、インク管理部90は、プリンター11の電源起動時(初期化動作時)に記憶素子47からインク残量を含むインク関連情報を読み出してRAMの所定記憶領域に書き込む。また、インク管理部90は、プリンター11においてインクが消費される所定動作終了時、カバー38が閉じられたとき(つまりカートリッジ交換が行われた可能性があるとき)などの所定時期に、上記のインク消費量をメカ制御部83及び通信I/F部87を経由して相手側コントローラーのインク管理部90へ送信する。そして、インク残量演算部98は、相手側から受信した相手側管理の記録ヘッド29Aで消費された8色のインク消費量と、自身が受け持つ記録ヘッド29Bで消費された同じ8色のインク消費量とを色別に加算して、全ての記録ヘッド29A,29Bで消費された8色分のインク消費量をそれぞれ算出する。さらにインク残量演算部98は、この8色分の各インク消費量を、この8色の前回のインク残量からそれぞれ減算することで、この8色の現在のインク残量を算出する。こうしてインク残量演算部98は、自身管理のインクカートリッジIC1〜IC4と、相手側管理のインクカートリッジIC5〜IC8との現在のインク残量をそれぞれ求める。全インクカートリッジIC1〜IC8についての現在のインク残量情報は、RAM55の所定記憶領域に一時記憶される。そして、インク管理部90は、インクが消費される前記所定動作の終了時点と、電源スイッチ(図示省略)がOFF操作された際の電源遮断時に、RAM55から現在のインク残量などを読み出して、これらを不揮発性メモリー56及び記憶素子47に書き込む。
インク管理部90は、インクカートリッジICの記憶素子47又はRAMの所定記憶領域から読み出したインク関連情報を基にインクカートリッジICに係る各種検出処理を行うインクカートリッジ確認処理(以下「IC確認処理」ともいう)(検出処理)を行う。このIC確認処理には、後述する不適切カートリッジを検出する処理も含まれる。
このIC確認処理は、プリンター11の電源起動時及びカバー38が閉じられたとき(つまりカートリッジ交換が行われた可能性があるとき)などの所定時期に行われる。特に本実施形態のインク供給装置39では、カバー38を開けたときにインクカートリッジICとサブタンク67間の流路が不図示の電磁開閉弁の閉弁により遮断されるようになっており、印刷動作中であってもカバー38を開けてインクカートリッジICを交換することが可能になっている。このようにカバー38の開閉前後でインク残量が変化する可能性があるため、カバー38が閉じられた時点においてもインク消費量演算及びインク残量演算を行うようにしている。なお、IC確認処理(検出処理)が行われるプリンター11の電源起動時においても、インク消費量演算及びインク残量演算を行ってもよい。
メカコントローラー43は、電磁ロック68の励磁/消磁の状態、又はカバー38の開閉状態を検知可能な不図示のセンサーの検知信号に基づいて、カバー38の開閉状態をフラグで管理しており、このフラグの値を基にカバー38が閉じられたことを把握する。例えばカバー開閉状態管理用のフラグが開状態の値から閉状態の値へ変化し、カバー38が閉じられたことを検出すると、メカコントローラー43はカバー閉通知(カバー閉通知コマンド)をメカ制御部83に送信する。メカ制御部83は受け付けたカバー閉通知をさらにインク管理部90に伝える。インク管理部90は、カバー閉通知を受け付けると、IC確認処理を行う。カバー閉通知をIC確認処理開始のトリガーとする理由の他の一つは、カバー38の閉状態で記憶素子47への書き込みが許可される構成となっているためである。
インク管理部90は、IC確認処理を行うときには、まず記憶素子47又はRAMの所定記憶領域にアクセスして最新のインク関連情報を読み取る。そして、インク管理部90は、その読み取ったインク関連情報と予め不揮発性メモリー56に記憶された設定情報とを用いてIC確認処理を行う。ここで、設定情報には、カートリッジ位置番号とインク色との対応関係を示す情報、インクエンド閾値(設定値)、ニアエンド閾値(設定値)、不適切カートリッジの検出処理で用いる判定情報などがある。
インク管理部90は、例えばインク残量演算部98が算出したインク残量がインクエンド閾値未満になったか否かを判定することによりインクエンド検出処理を行う。このインクエンド検出処理では、インク残量がその閾値未満である場合にインクエンドと検出する。また、IC確認処理では、インクカートリッジICの外れを検出する装着外れ検出処理や、色違いのインクカートリッジICの装着を検出する色違い検出処理も行う。
インク管理部90は、通信回路46を介して記憶素子47にアクセスできるか否かを判断することにより、インクカートリッジICの装着外れを検出する。そして、インク管理部90は、記憶素子47にアクセスできないインクカートリッジICが存在すれば、そのインクカートリッジICを装着外れと検出する。
インク管理部90は、カートリッジホルダーの装着位置毎(インク供給針毎)に設定された各カートリッジ位置番号と対応する装着位置に接続されているインクカートリッジICの記憶素子47からインク色情報を読み出す。そして、インク管理部90は、このインク色情報を基に、カートリッジ位置番号とインク色との対応関係を示す前記情報を参照し、そのインク色情報が、カートリッジ位置番号に対応するインク色と一致するか否かを判断することにより、色違いのインクカートリッジICの検出処理を行う。インク管理部90は、そのインク色情報が、カートリッジ位置番号に対応するインク色と一致しない場合に、色違いのインクカートリッジと検出する。
さらに、インク管理部90は、IC確認処理のうちの一部の検出項目として、インクカートリッジIC1〜IC8の中から不適切なインクカートリッジを検出するための不適切カートリッジ検出処理(以下「不適切IC検出処理」ともいう)(検出処理)も行う。すなわち、インク管理部90は、インク関連情報を基に、管理対象のインクカートリッジICが、適切なインクカートリッジ(以下「適切カートリッジ」という)であるか、不適切なインクカートリッジ(以下「不適切カートリッジ」という)であるかを判定することにより、不適切カートリッジを検出する不適切IC検出処理を行う。ここで、「不適切カートリッジ」とは、プリンター11において印刷に使用はできるものの、印刷品質を担保するうえで最適ではない(推奨されない)インクカートリッジを指す。また、「適切カートリッジ」とは、印刷品質を担保するうえで推奨される適切なインクカートリッジを指す。例えば使用期限が切れたインクカートリッジICは、不適切カートリッジに該当する。使用期限が切れたインクは多少増粘している可能性があり、これが原因でノズル目詰まりが僅かながら発生し易い傾向にあるため、要求される印刷品質が高い場合には、ユーザーは使用期限内のインクカートリッジに交換するのが好ましい。なお、本実施形態では、インク切れなどの印刷自体が不能なインクカートリッジを「不良カートリッジ」と呼び、印刷が可能な「不適切カートリッジ」と区別する。
不適切カートリッジ検出処理における使用期限切れの検出処理は次のように行われる。インク管理部90の演算部(図示省略)が、インク関連情報から取得した「使用期限」と、不図示のリアルタイムクロック(RTC)が管理する現在の日にちとを比較して現在の日にちが使用期限を過ぎていれば使用期限切れと判定する。この使用期限切れと判定した場合は、不適切カートリッジとして検出する。
また、ロゴマークなど特殊インク色で印刷する必要がある印刷対象が設定されている場合、特殊インク色以外の通常インク色のインクカートリッジは不適切カートリッジに該当する。この場合、通常インクを使用しても、再現できる色空間の範囲が比較的広ければ特殊色をほぼ再現できるが、厳密に特殊色を出す必要がある場合は、特殊色のインクカートリッジに交換するのが好ましい。
インク管理部90は、印刷条件情報の1つであるインク色について特殊色が設定されている場合は、特殊色と同じ色相のインク色のインクカートリッジが装着されるべきカートリッジ位置番号の装着位置に実際に装着されているインクカートリッジICの記憶素子47からインク色の情報を読み取る。そして、インク管理部90は、その読み取ったインク色が、設定された特殊色であるか否かを判定することにより、特殊色検出処理を行う。インク管理部90は、実際のインク色が、設定された特殊色と一致しない場合は、不適切カートリッジとして検出する。なお、本実施形態のインク供給装置39はインク供給路70A,70B及びサブタンク67内のインクを完全に置換できる機能を有するので、インク色の異なるインクカートリッジIC間で交換しても、交換前後のインクが混ざることがない構成となっている。
インク管理部90は、IC確認処理結果(検出結果)をメカ制御部83へ送る。メカ制御部83は、インク管理部90から受け付けたIC確認処理結果(検出結果)を、各コントローラー41,42の通信I/F部87,87間の通信線SL4を介した通信により、相手側コントローラーのメカ制御部83へ送信する。本実施形態では、IC確認処理が行われるときは、基本的に前述のインク消費量演算も行われる構成になっている。このため、メカ制御部83は、通信I/F部87に対して、IC確認処理結果とインク消費量と前回のインク残量とを、相手側のコントローラーのメカ制御部83へ送信するように指示する。このように本実施形態では、通信線SL4の通信で各コントローラー41,42は互いに相手側管理の記録ヘッド29のインク消費量を交換するときには、この通信I/F部87,87間の通信を利用してIC確認処理結果(検出結果)を相手側のコントローラーへ送信するようにしている。
図6に示すように、メカ制御部83は、マージ処理部83Aと、コマンドの実行順を制御するジョブ制御部93と、ジョブ制御部93で制御された順番で出力されたコマンドを受け付けてその出力タイミングを制御することでシーケンス制御を行うシーケンス制御部94とを備えている。マージ処理部83Aは、マスター側のインク管理部90の検出結果とスレーブ側コントローラー42から受信したスレーブ側のインク管理部90の検出結果とを、マージ(統合)するマージ処理を行う。なお、本実施形態では、ジョブ制御部93とシーケンス制御部94とにより、管理手段の一例が構成される。
マージ処理部83Aは、各インク管理部90の検出結果の組合せのうち少なくとも一方が異常(NG)であれば、マージ結果(統合結果)を異常(NG)とし、各インク管理部90の検出結果が共に正常(OK)であれば、マージ結果を正常(OK)とする。マージ処理部83Aは、例えば異常(NG)を「0」、正常(OK)を「1」で管理し、マスター側とスレーブ側の各インク管理部90の各検出結果に、論理積演算を施すことにより、マージ処理を行う。このマージ処理部83Aは、IC確認処理におけるインク切れ、装着外れ、色違いなどの不良カートリッジの検出項目別にマージ処理を行う。メカ制御部83は、マージ処理の結果、検出結果が状態異常(状態NG)であれば、状態NGコマンド(状態異常コマンド)を生成し、状態正常(状態OK)であれば状態OKコマンド(状態正常コマンド)を生成する。なお、本実施形態では、不適切カートリッジの検出結果については、そのまま使用するか否かをユーザーに問い合わせるため、その検出結果(正確には状態通知コマンド(状態NGコマンド))をホスト制御部125へ送信するので、コントローラー41,42間の通信線SL4を介した通信を伴うマージ処理を行わない。もちろん、不適切カートリッジの検出結果にもマージ処理を行ってもよい。
不適切カートリッジは、印刷品質の観点から推奨はできないものの印刷自体は可能なインクカートリッジである。このため、本実施形態では、不適切カートリッジを検出した場合、ユーザーに対して、不適切カートリッジをそのまま使用するか、それとも適切カートリッジに交換するかの選択を促す構成としている。コントローラー41,42の各メカ制御部83は、不適切カートリッジを検出した旨の検出結果を得た場合は、ホスト装置120のホスト制御部125に不適切カートリッジの旨(不適切カートリッジエラー)を通知する。図6に示すホスト制御部125は、コントローラー41,42から不適切カートリッジエラーの通知を受け付けると、不適切カートリッジをそのまま使用するか、不適切カートリッジを使用しないかの選択を促すエラー画面101(図4(a)参照)をモニター123(図5参照)に表示させる。ここで、状態通知コマンドには、前述の状態OKコマンドと状態NGコマンドとがある。状態通知コマンドはその識別子又はパラメーターの値によって検出対象を把握できるようになっている。不適切カートリッジエラーは、コマンドの識別子又はパラメーターの値により検出対象が使用日限や特殊色などの不適切カートリッジの不適切な理由(要因)を把握可能な状態NGコマンドの総称である。なお、本実施形態では、エラー画面101を表示させてユーザーに選択を促すことでユーザーの意図を確認するホスト制御部125により、確認手段の一例が構成される。
図4(a)は、不適切カートリッジ検出時に表示されるエラー画面を示す。図4(a)に示すエラー画面101は、コントローラー41,42が不適切カートリッジを検出した際にホスト装置120(詳しくはホスト制御部125)がモニター123に表示させる画面である。このエラー画面101には、「インクカートリッジが不適切です。」という報知文102と、その不適切カートリッジに関する詳細情報103と、ユーザーに不適切カートリッジをこのまま使用するか否かを選択させるYESボタン104とNOボタン105とが設けられている。
図4(a)のエラー画面101においてYESボタン104が選択された場合は不適切カートリッジがそのまま使用され、一方、NOボタン105が選択された場合は、インクカートリッジの交換を促す図4(b)に示すエラー画面106に切り替わる。このエラー画面106には、「適切なインクカートリッジに交換してください。」という案内文107と、交換すべきインクカートリッジに関する詳細情報108と、交換の完了をプリンター11に知らせるためのOKボタン109とが設けられている。
モニター123にエラー画面101が表示された後、ユーザーは不適切カートリッジをそのまま使用する場合はYESボタン104を操作する。一方、不適切カートリッジを使用せずカートリッジ交換を行う場合は、NOボタン105を操作し、さらにカバー38を開けて適切なインクカートリッジと交換した後、図4(b)に示すエラー画面106において交換完了の旨を知らせるOKボタン109を操作する。ユーザーが、エラー画面101の表示に気付いて、操作部124を操作してYESボタン104又はNOボタン105を選択するまでに、通常、数秒から数10秒の時間を要する。
図7は、ジョブ制御部93の構成を示す。ジョブ制御部93は、コマンド判定部131、シーケンスキュー132、イミーディエットキュー133及びコマンド出力部134を備えている。主制御部82からメカ制御部83へ送られてきたコマンドは、ジョブ制御部93に入力される。ここで、コマンドには、印刷データPDに含まれる印刷言語記述コマンドを解釈して得られるシーケンス制御用のコマンド(以下「シーケンスコマンド」という)と、コントローラー41,42の内部で行われる各種検出処理などの検出結果に基づき生成される内部発生コマンド(以下「内部コマンド」という)などがある。例えば、インクカートリッジIC1〜IC8の検出結果に基づくエラーコマンドは、内部コマンドに該当する。但し、メカコントローラー43へ所定の動作部(例えばインク供給装置39)の起動及び停止を行わせるために各コントローラー41,42が分担するインクカートリッジIC1〜IC8等の部品の状態を通知する目的の状態通知コマンドは、内部コマンドとみなさない設定としている。
上述のように本実施形態では、コマンドキューには、発行順序が重要なシーケンスキュー132と、直ちに処理するべきイミーディエットキュー133とがある。シーケンスキュー132のコマンド(シーケンスコマンド)は、ホスト制御部125及びメカコントローラー43から発行されるので、複数のコントローラー41,42間で順序が入れ替わることはない。
イミーディエットキュー133も、メカコントローラー43やホスト装置120から発行されたコマンドはほぼ同時に受信するので、そのまま発行すれば、仮想メカコントローラー85の同期処理において両方のコマンドが揃うことになる。たとえマスター側とスレーブ側で発行時期の多少のずれ(タイムラグ)があってリトライになっても、いずれリトライによる仮想メカコントローラー85の同期処理で両方のコマンドが揃うことになる。
一方、エラー通知などのようにコントローラー41,42の内部で発生する内部コマンドは、コントローラー41,42間の通信I/F部87,87経由の通信を使って、相手側(他方)のコントローラーに送信される。これは、仮想メカコントローラー85においてマスターとスレーブの両コントローラー41,42の同期をとるためには、両コントローラー41,42に同一のコマンドが用意されている必要があるからである。コントローラー41,42間の通信I/F部87,87経由の通信は、シリアル通信であるため、コマンドの伝送に比較的長い時間を要する。このため、両コントローラー41,42のうち一方で発生した内部コマンドが他方のコントローラーへ到着するまでの間に、メカコントローラー43やホスト装置120からコマンドが発行された場合、マスター側とスレーブ側の両イミーディエットキュー133間でコマンドの格納順序が同じになる保証はない。
このため、本実施形態では、メカI/F部84に判定部135(図9参照)を設け、判定部135が内部コマンドと判定した場合は、仮想メカコントローラー85へのコマンドの問合せをすることなく(つまり同期処理を行うことなく)、その内部コマンドを直ちにメカコントローラー43へ送信するようにしている。すなわち、メカI/F部84は受け付けたコマンドが内部コマンドであれば、同期処理を行うことなくスルーさせる。なお、この判定部135による処理の詳細は後述する。
図7に示すコマンド判定部131は、受け付けたコマンドが、シーケンスコマンドであるか緊急性の高い緊急コマンド(イミーディエットコマンド)であるかを判定する。コマンド判定部131は、その判定結果に応じて、シーケンスコマンドをシーケンスキュー132に格納し、緊急コマンドをイミーディエットキュー133に格納する。各キュー132,133には、コマンドが取得順に格納される。
イミーディエットキュー133に格納されたコマンドは、シーケンスキュー132に優先して出力される。一方、シーケンスコマンドは実行される順番が重要な種類のコマンドであり、イミーディエットキュー133にコマンドが格納されていないときに、その格納順に出力される。このような出力規則の下、コマンド出力部134は、イミーディエットキュー133から優先してコマンドを出力すると共に、イミーディエットキュー133に格納コマンドがない状態において、シーケンスキュー132に格納されたシーケンスコマンドを格納順に出力する。
例えば図7に示すイミーディエットキュー133からはその格納順に従ってコマンドER1,IS1,…の順番で出力される。また、シーケンスキュー132からはその格納順に従ってシーケンスコマンドSQ1,SQ2,…の順番で出力される。なお、図7の例では、キュー133には、エラーコマンドER1と状態通知コマンドIS1(IC状態通知コマンド)が格納されている。
コマンド出力部134は、下流のシーケンス制御部94からジョブ制御部93に対する応答又は要求を待ってコマンドを出力(発行)する。コマンド出力部134は、メカI/F部84からシーケンス制御部94を介して前回のコマンドを出力した旨の応答を受け付けると、次のコマンドを出力する。また、コマンド出力部134は、メカI/F部84からシーケンス制御部94を介してコマンドの再送を要求するリトライ要求(再送要求)を受け付けると、先に出力した同じコマンドをもう一度送る。
図6に示すシーケンス制御部94は、ジョブ制御部93から緊急コマンドを受け付けた場合はそれを直ちに出力する。また、シーケンス制御部94は、シーケンスコマンドを受け付けたときは、メカコントローラー43からメカI/F部84を介して先の所定動作終了の旨を受信した後、当該所定動作の次に行うべき動作の開始タイミングになったときに、コマンドを出力する。
シーケンス制御部94は、シーケンスコマンドを受信したときは、所定のシーケンスに従った所定のタイミングになると、そのシーケンスコマンドをメカI/F部84へ出力する。シーケンスコマンドには、例えば搬送コマンド、吸着コマンド、第1キャリッジ起動コマンド(キャリッジ主走査方向移動コマンド)、第2キャリッジ起動コマンド(キャリッジ副走査方向移動コマンド)、吸着解除コマンドなどがある。メカ制御部83は、これらのシーケンスコマンドを、ヘッド制御部89(図6参照)の進捗に合わせた適宜なタイミング、あるいはメカコントローラー43側の進捗に合わせた適宜なタイミングで送信する。
二つのコントローラー41,42のうち一方のみが不適切カートリッジを検出したときに、不適切カートリッジを検出しなかった側のコントローラーが状態OKコマンドを生成してメカコントローラー43へ送信する。一方、不適切カートリッジが検出された側のコントローラーが状態NGコマンドを生成してホスト制御部125へ送信する。この場合、一のコントローラーでは状態OKコマンドが直ぐにキュー133に格納され、他のコントローラーでは状態NGコマンドがホスト制御部125へ送信されて、エラー解除通知を待って発行された状態OKコマンドがキュー133に格納されることになる。例えばホスト制御部125はメカコントローラー43の装置状態情報を取得するためにコントローラー41,42へ定期的に後述する装置状態取得コマンドSG(図10参照)を送信する。このとき、仮に装置状態取得コマンドSGがキュー133に格納される構成を採用した場合、一のコントローラーでは適切カートリッジの検出結果に基づき直ぐにキュー133に状態OKコマンドが格納され、他のコントローラーでYESボタンの操作に基づくエラー解除通知があってから発行される状態OKコマンドがキュー133に格納されるまでに数秒から数10秒の時間だけ遅れることになる。この場合、一のコントローラーのキュー133には、状態OKコマンドの後に装置状態取得コマンドSGが格納され、他のコントローラーのキュー133には、この遅れて発行される状態OKコマンドが、装置状態取得コマンドSGの後に格納されることが起こりうる。本実施形態では、キュー133A,133B間におけるコマンド格納順序の不一致を少しでも低減できるように、比較的頻繁に発行される装置状態取得コマンドSGについてはキュー133A,133Bに格納しない構成としている。
ここで、状態通知コマンドは、各コントローラー41,42が分担するインクカートリッジIC1〜IC8などの部品のすべての状態をメカコントローラー43へ正確に通知する必要がある。このため、状態通知コマンドをメカI/F部84から仮想メカコントローラー85を通らずそのままメカコントローラー43へスルーさせることはできない。仮に状態通知コマンドをメカコントローラー43へスルーさせる構成とすると、一のコントローラーから状態OKコマンドをスルーした場合にメカコントローラー43が加圧ポンプ66を駆動させるが、このとき他のコントローラーに接続されたインクカートリッジICのうち少なくとも一個が不適切又は異常である場合がありうる。この場合、加圧ポンプ66の駆動によって不適切又は異常のインクカートリッジICからインクが加圧供給されてしまう不都合が発生する虞がある。このとき、しばらくして状態NGコマンドが発行されてメカコントローラー43が受信することになるが、この間、加圧ポンプ66が駆動されることになるので、不適切又は異常のインクカートリッジからインクが加圧供給されてしまう虞がある。よって、分担して部品の状態を監視する各コントローラー41,42からの状態通知コマンドは、スルーさせることなく、仮想メカコントローラー85でコマンドが揃ったことを確認できてから、メカコントローラー43へ送信する必要がある。このため、本実施形態では、状態通知コマンドについては、メカI/F部84の判定部135が受け付けたコマンドの識別子から識別したコマンドが状態通知コマンド(状態OKコマンド又は状態NGコマンド)であった場合は、仮想メカコントローラー85へ問い合わせを行うようにしている。
仮想メカコントローラー85において他方のコマンドが届かずリトライが繰り返し行われ、やがて設定時間を経過してタイムアウトエラーになってしまい、コマンド送信エラーが発生する。また、仮に二つのコントローラーのうち一方のみがインク切れなどの不良カートリッジを検出したときには、不良カートリッジを検出しなかった側のコントローラーが状態OKコマンドをメカコントローラーへ出力しようとし、一方、不良カートリッジを検出した側のコントローラーが状態NGコマンドをメカコントローラーへ出力しようとする。この場合、仮想メカコントローラーにおける同期処理でコマンドが一致せず、コマンド送信エラーが発生する事態となる。
これに対して本実施形態では、両コントローラー41,42の各メカ制御部83は、マージ処理部83Aがマスター側とスレーブ側の両検出結果を統合(マージ)したマージ処理結果を採用するので、マージ処理結果に基づく状態通知コマンドは両コントローラー41,42で同じになる。このため、両コントローラー41,42のうち一方のみが不適切カートリッジを検出したときにも、仮想メカコントローラー85においてコマンドが不一致のため上述したリトライが繰り返し行われてタイムアウトになる事態を回避できる。
また、本実施形態では、二つのコントローラー41,42のうち一方のみがインク切れなどの不良カートリッジを検出したときには、不適切カートリッジのようにそのまま使用される選択がなされて状態OKコマンドに変更されることはないので、ホスト制御部125に問い合わせてエラー解除通知を待つまでもなく、状態NGコマンドで確定する。このため、ホスト制御部125に問い合わせる替わりに、コントローラー41,42の各通信I/F部87,87間の通信で互いの状態通知コマンドを送信し合い、マージする。両コントローラー41,42で共にマージ処理を行って状態通知コマンドが発行されるので、各キュー133へ状態通知コマンドが格納される時期に時間差が生じることはほとんどなく、各キュー133A,133B間でコマンド待ち行列の順番が異なることは発生しにくい。このため、仮想メカコントローラー85における同期処理でコマンドが揃うことになり、不良カートリッジ検出時のコマンド送信エラーの発生を回避できる。
メカ制御部83は、マージ処理部83Aによるマージ後の検出結果に基づき状態通知コマンドを生成する。この状態通知コマンドには、マージ後の検出結果が「OK」のときの状態OKコマンド(状態正常コマンド)と、マージ後の検出結果が「NG」のときの状態NGコマンド(状態異常コマンド)とがある。メカ制御部83は、マージ処理結果が正常(OK)の場合、状態OKコマンドを生成し、一方、マージ処理結果が異常(NG)の場合、状態NGコマンドを生成する。
インク切れ、装着外れ、色違いなどの不良カートリッジ検出処理における全検出対象でマージ結果が正常「OK」であれば、メカ制御部83は状態OKコマンドを生成して、これをメカI/F部84へ送信する。また、インク切れ、装着外れ、色違いなどの不良カートリッジ検出処理における各検出対象のうち少なくとも一つの検出対象でマージ結果が異常「NG」であると、メカ制御部83は状態NGコマンドを生成し、これをメカI/F部84へ送信する。さらに、不適切カートリッジ検出処理における各検出対象のうち少なくとも1つの検出対象の検出結果が異常「NG」である場合は、メカ制御部83は、不適切カートリッジである旨を識別可能な状態NGコマンドを生成し、これをエラー管理部86及び主制御部82を介してホスト制御部125へ送る。
メカ制御部83は、状態NGコマンドをホスト制御部125へ送った場合は、ホスト制御部125からその応答であるエラー解除通知を受け取るまで待機することになる。この場合、マスター側とスレーブ側の各メカ制御部83における不適切カートリッジ検出処理の検出結果が異なる場合、不適切カートリッジを検出した側のメカ制御部83はエラー解除通知を受け付けるまで待機することになる。
なお、本実施形態におけるホスト制御部125は、装置状態取得要求を定期的又は不定期に各コントローラー41,42へ送信する構成となっている。各コントローラー41,42の各主制御部82は、ホスト制御部125から装置状態取得要求を受け付けたときに、メカコントローラー43から定期又は不定期に取得して蓄積していた装置情報をその応答としてホスト制御部125へ送信するようになっている。そして、各主制御部82は、装置状態情報をホスト制御部125へ送信するときに一緒に状態NGコマンドを送信するようになっている。
図10は、コントローラーがホスト制御部125から装置状態取得コマンドを受け付けると、メカコントローラー43の装置状態情報USをホスト制御部125へ送信する機能構成を示すブロック図である。
本実施形態では、ホスト制御部125からの装置状態取得コマンドSG(状態情報取得要求)をメカコントローラー43まで送信しない点に特徴がある。なお、本実施形態では、マスター側コントローラー41とスレーブ側コントローラー42はこの機能について同じ構成を有しているので、図10に示すマスター側コントローラー41についてのみ説明する。
コントローラー41では、主制御部82が装置状態取得コマンドSGを受け付ける。本実施形態では、主制御部82は、応答手段の一例としての情報転送部140を備えている。この情報転送部140は、装置状態取得コマンドSGを受け付けてその応答の形でメカコントローラー43の装置状態情報をホスト制御部125へ返信(送信)する機能を有している。
図10に示すように、情報転送部140は、情報取得部141、第1格納部142(第1バファー)、加工部143、第2格納部144(第2バッファー)、識別部145及び応答部146を備えている。
また、図10に示すメカコントローラー43は、装置状態情報USを取得するための機能構成部分として、状態検出部151、情報生成部152及び状態情報送信部153を備えている。
状態検出部151は、メカニカル機構44の状態を検出するための各種センサーやエンコーダーなどの検出系154からの検出信号に基づきメカニカル機構44を構成するキャリッジ駆動系、搬送系、クリーニング系などの状態(ステータス)を検出する。
情報生成部152は、状態検出部151の検出情報に基づいて状態情報を生成する。すなわち、情報生成部152は、状態検出部151の検出情報を基づいてメカニカル機構44を構成するキャリッジ駆動系、搬送系、クリーニング系などの状態情報を生成する。キャリッジ駆動系の状態情報としては、キャリッジ27の位置(X方向位置、Y方向位置)や動作状態の情報が挙げられる。また、搬送系の状態情報としては、シート13の搬送位置や搬送動作状態(搬送中、吸着中などのステータス)の情報が挙げられる。クリーニング系の状態情報としては、キャップの位置状態、クリーニング用ポンプの駆動状態などの情報が挙げられる。その他、乾燥装置16の温度情報などが挙げられる。
状態情報送信部153は、情報生成部152が生成した各種の状態情報を含む装置状態情報USをマスター側コントローラー41へ送信する機能を有している。本実施形態では、状態情報送信部153は、不図示のクロック回路からのクロック信号に基づき所定時間間隔毎に最新の装置状態情報USを発信する。この場合、ホスト制御部125からの装置状態取得コマンドSGを受け付けてそれに応答する形で装置状態情報USを送信するのではなく、所定時間間隔毎に自発的に装置状態情報USを発信する構成となっている。本実施形態では、所定時間間隔は一例として、0.1〜10秒の範囲内の所定値を採用している。もちろん、所定時間間隔は、一定の時間間隔に限定されず、不定の時間間隔であってもよい。
このため、マスター側コントローラー41は所定時間間隔毎に装置状態情報USを受信する。マスター側コントローラー41のメカI/F部84は、装置状態情報USを受信すると、仮想メカコン85及び通信線SL3を介してスレーブ側コントローラー42へ送信する。よって、メカコントローラー43から発信された装置状態情報USは、マスター側とスレーブ側の各コントローラー41,42に受信される。メカI/F部84は受信した装置状態情報USをメカ制御部83へ送信する。
また、メカ制御部83には、前述のように、インク管理部90からの検出結果などの状態情報ISが入力されると共に、通信I/F部87を介して他のコントローラー(この例ではスレーブ側コントローラー42)から送られてきた部品の検出結果やインク消費量などの状態情報SS及びコマンドが入力される。
メカ制御部83に入力された各種情報のうちコマンドはジョブ制御部93内の該当するキュー132,133に一時格納された後、規定の出力規則に従って順番に出力される。また、メカ制御部83は装置状態情報US及び状態情報IS,SSを主制御部82へ送る。このとき、装置状態情報USは、メカI/F部84がメカコントローラー43から受信してから直ぐに主制御部82に到達する。
主制御部82が受け付けた装置状態情報US及びコマンドIS,SSは、情報取得部141に取得される。また、この情報取得部141には、主制御部82がエラー管理部86から受け付けたエラーコマンドESも取得される。情報取得部141は、取得した装置状態情報US及びコマンドIS,SS,ESを第1格納部142に格納する。なお、マスター側コントローラー41が、メカコントローラー43から受信した装置状態情報USを、第1格納部142に格納する処理が、情報受信段階に相当する。
加工部143は、装置状態情報USや状態情報SSを加工してホスト制御部125が扱い易い情報に加工する情報加工処理を行う。状態情報SSには、他のコントローラーが分担するインクカートリッジICなどの部品や記録ヘッド29の状態情報が含まれる。この種の状態情報には、例えば分担するインクカートリッジICのインク残量情報や、分担する記録ヘッド29のインク消費量情報などが含まれる。そして、加工部143は、マスター側で分担するインクカートリッジIC1〜IC4のインク残量と、スレーブ側で分担するインクカートリッジIC5〜IC8のインク残量とを合わせた計8個のインクカートリッジIC1〜IC8のインク残量情報として加工する。また、加工部143は、マスター側で分担する記録ヘッド29Bのインク消費量と、スレーブ側で分担する記録ヘッド29Aのインク消費量とをインク種(インク色)別に合計して、計8個のインクカートリッジIC1〜IC8の各インク消費量を含むインク消費量情報として加工する。加工部143は、情報加工処理により生成した状態情報と、元々加工する必要のない装置状態情報USとを第2格納部144に格納する。なお、装置状態情報USのうち一部の情報についてもホスト制御部125で使用し易いように所定の演算を施す加工は行っている。
識別部145は、ホスト制御部125から入力したコマンドをその識別子に基づき識別するコマンド識別処理を行う。識別部145は、コマンドが装置状態取得コマンドSGであると識別した場合、その装置状態取得コマンドSGを応答部146へ送る。識別部145が装置状態取得コマンドSG以外のコマンドと識別したコマンドについては、主制御部82が必要に応じて所定の処理を施した後にメカ制御部83へ送る。メカ制御部83へ送られるコマンドには、シーケンスコマンドや緊急コマンドなどが挙げられる。
応答部146は、識別部145を介してホスト制御部125からの装置状態取得コマンドSGを受け付けると、第2格納部144から装置状態情報US及び状態情報を含む装置状態情報ASを読み出し、その読み出した装置状態情報ASをシリアル通信ポートU3を介してホスト制御部125へ送信する(応答段階)。本実施形態では、ホスト制御部125は、所定時間間隔毎に装置状態取得コマンドSGをコントローラー41,42へ送信することで、装置状態情報ASの送信を要求する。本実施形態のホスト制御部125は、ホスト装置120内の不図示のクロック回路からのクロック信号に基づき所定時間間隔毎に装置状態取得コマンドSGをコントローラー41,42へ送信する。ホスト制御部125が装置状態取得コマンドSGを送信する所定時間間隔は、一例として0.1〜10秒の範囲内の所定値を採用している。もちろん、所定時間間隔は、一定の時間間隔に限定されず、不定の時間間隔であってもよい。なお、本実施形態では、メカコントローラー43が装置状態情報USを送信する時間間隔T1と、ホスト制御部125が装置状態取得コマンドSGを送信する時間間隔T2とを、一方が他方の2倍以内となるような同一又は近似の値に設定している。
ホスト制御部125が装置状態取得コマンドSGを送信する時間間隔は、刻々変化する最新の装置状態情報ASを取得できるように設定されている。例えば時間間隔が短過ぎると、殆ど変化していない装置状態情報ASを繰り返し取得することになって処理の無駄が多く、逆に時間間隔が長過ぎると、変化に追随できず遅延した装置状態情報ASしか得られなくなり、リアルタイムに近い制御が不可能になる。このため、本実施形態では、プリンター11の状態変化を考慮して、装置状態取得コマンドSGの送信時間間隔を設定している。また、メカコントローラー43の状態情報送信部153による装置状態情報USの発信時間間隔は、ホスト制御部125の装置状態取得コマンドSGの送信時間間隔に合わせており、同じ時間間隔か近い時間間隔に設定されている。
このように本実施形態では、ホスト制御部125とコントローラー41,42との間で行われる装置状態取得コマンドSGの送信とその応答とにより行われる情報提供処理と、メカコントローラー43とコントローラー41との間で行われる装置状態情報USを受信する情報受信処理とは、非同期になっている。そして、これら非同期で行われる情報提供処理と情報受信処理とが、ホスト制御部125の要求にメカコントローラー43が応答する構成を採用した場合とほぼ同等のリアルタイムで装置状態情報USを取得できるように、それぞれ非同期で行われる装置状態取得コマンドSGの発信時間間隔と装置状態情報USの発信時間間隔とを合わせ込んでいる。
また、ホスト制御部125からのデータやコマンドを入力するための入力手段とジョブ制御部93との間におけるデータ送信経路の途中に設けられた主制御部82に、応答手段の一例である情報転送部140を設けた。よって、少なくとも装置状態取得コマンドSGはジョブ制御部93を経由することが回避される。
図9は、コマンドの出力処理を説明するブロック図である。なお、図9では、ジョブ制御部93内はイミーディエットキュー133のみを示している。また、図9では、仮想メカコントローラー85を単に「仮想メカコン」、ダミーメカコントローラー95を単に「ダミーメカコン」とそれぞれ記しており、以下の説明でもこれらの略称を用いることにする。図9に示すように、マスター側コントローラー41とスレーブ側コントローラー42のそれぞれ内部で行われる処理の流れ(図中の矢印)は同じになっている。
図9に示すように、メカI/F部84は、判定部135を備えている。判定部135は、メカI/F部84がシーケンス制御部94から受け付けたコマンドが、内部コマンドであるか否かを判定する。詳しくは、判定部135は、内部コマンドか、ホスト制御部125(ホスト装置120)で発行されたコマンドか、メカコントローラー43で発行されたコマンドかを判別可能である。本実施形態では、コマンドには、コマンドの種類を識別する識別子(例えば所定ビットの識別番号)が含まれており、判定部135は、コマンドの識別子から内部コマンドであるか否かを判定する。但し、本実施形態では、前述のように、状態通知コマンド(状態OKコマンド、状態NGコマンド)は、内部コマンドとは判定しない。なお、各コマンドにその種類を識別する識別子を設ける替わりに、内部コマンドだけに識別子を設ける構成を採用してもよい。また、コマンドを送るパケット中にフラグを設定して、フラグ値を基に内部コマンドを判定する方法を採用してもよい。識別子の一例としては、コマンド番号を挙げることができる。
以下、本実施形態におけるコマンド出力処理を、図8及び図9を用いて説明する。主制御部82は、入力した印刷データのコマンド解析で得たコマンドや、ホスト装置120から入力したコマンド、メカコントローラー43から入力したコマンド(入力段階)、コントローラー41,42の内部で発行されたコマンド(コマンド生成段階)を、メカ制御部83へ出力する。メカ制御部83へ入力されたコマンドは、コマンド判定部131によりコマンドの種類が判定される。コマンド判定部131は、コマンドに含まれる識別子に基づいて、入力したコマンドが、シーケンスコマンドであるか、それとも緊急コマンドであるかを判定する。この判定結果に基づき、シーケンスコマンドはシーケンスキュー132に取得した順に格納され、緊急コマンドはイミーディエットキュー133に取得した順番に格納される(管理段階)。なお、内部コマンド及び状態通知コマンドは緊急コマンドに属するので、イミーディエットキュー133に格納される。
コマンド出力部134は、シーケンスキュー132に格納されたシーケンスコマンドよりも、イミーディエットキュー133に格納されたコマンドを優先して出力する。このため、基本的に、イミーディエットキュー133にコマンドがあるうちは、そのコマンドの出力が優先して進められる。
図8は、マスター側とスレーブ側のイミーディエットキュー133A,133Bを示す。なお、図8のキュー133において、一番下に格納されたコマンドのうち破線で囲ったものはメカコントローラー43へ出力されるコマンドを示す。例えば、マスター側コントローラー41の内部でエラーが発生し、これをスレーブ側コントローラー42に通知している間に両コントローラー41,42で検出処理が行われ検出結果に基づく状態通知コマンドが生成されたとする。この場合、スレーブ側コントローラー42では検出結果に基づく状態OKコマンドIS1をキュー133Bに格納し、マスター側コントローラー41では検出結果に基づく状態NGコマンドIS1をホスト装置120へ送信する。図8(a)に示すように、マスター側のキュー133AにはエラーコマンドER1が格納され、スレーブ側のキュー133Bには状態OKコマンドIS1が格納される。このとき、スレーブ側のキュー133Bには、まだエラーコマンドER1は届いていない(図8(a)の状態)。
この図8(a)の格納状態のとき、各ジョブ制御部93は、イミーディエットキュー133A,133Bの最下流格納位置(図8(a),図9における最下位置)のコマンドER1,IS1をシーケンス制御部94へ出力する(図9中の(1))。シーケンス制御部94は、ジョブ制御部93から受信したコマンドをメカI/F部84へ出力する(図9中の(2))。コマンドは緊急コマンドなので、シーケンス制御部94から直ちに出力される。
マスター側のメカI/F部84では判定部135が、コマンドER1を内部コマンドと判定する。この結果、マスター側のメカI/F部84は、仮想メカコン85にコマンドの問合せをすることなく、コマンドER1を直ちにメカコントローラー43へ出力する(出力段階)。一方、スレーブ側のメカI/F部84では判定部135が、状態通知コマンドIS1を内部コマンドではないと判定する。この結果、スレーブ側のメカI/F部84はコマンドIS1を仮想メカコン85へ送るが、仮想メカコン85においてコマンドが揃わずタイムアウトになるので、スレーブ側のメカI/F部84はメカ制御部83にリトライを要求する。
このため、図8(b)に示すように、リトライを要求されたコマンドIS1はキュー133Bに残る。また、このキュー133Bには、通信I/F部87,87間の通信を介して遅れて届いたコマンドER1が格納される。この図8(b)の状態で、キュー133BからコマンドIS1を発行する。スレーブ側のメカI/F部84では判定部135は、状態通知コマンドIS1を内部コマンドではないと判定する。この結果、コマンドIS1は同期処理のために仮想メカコン85へ送られるが、仮想メカコン85においてコマンドが揃わずタイムアウトになるので、スレーブ側のメカI/F部84はメカ制御部83にリトライを要求する。
このため、図8(c)に示すように、リトライを要求されたコマンドIS1はキュー133Bに残る。この間、マスター側コントローラー41から先にホスト制御部125へ送信された状態NGコマンドに基づきホスト制御部125は、モニター123にエラー画面101(図4(a)参照)を表示する。このエラー画面101によって、ユーザーに不適切カートリッジの旨を報知すると共に、不適切カートリッジをそのまま使用するか否かの選択を促す。ユーザーは不適切カートリッジをそのまま使用する場合はYESボタン104を選択操作し、不適切カートリッジを使用しない場合はNOボタン105を選択操作する。NOボタン105を選択操作した場合は、不適切カートリッジを適切カートリッジに交換した後、NOボタン105の選択時に切り替わった図4(b)に示すエラー画面106でOKボタン109を選択操作する。
この結果、ホスト制御部125から先の状態NGコマンドの応答として両コントローラー41,42へエラー解除通知が届く。マスター側コントローラー41ではエラー解除通知を受け付けたメカ制御部83が不適切検出結果のエラーを解除して状態OKコマンドを生成する。この結果、ユーザーがエラー画面101で選択操作するまで例えば数秒から10数秒遅れて、マスター側のキュー133Aには、状態OKコマンドIS1が格納される(図8(c)の状態)。この図8(c)の状態で、両キュー133A,133BからコマンドIS1,IS1をそれぞれ発行する。なお、本実施形態では、各キュー133A,133Bに状態OKコマンドIS1,IS1が揃うまでにタイムアウトになる虞がある。このため、コマンド出力部134は、コマンドのパラメーターの値から把握される検出項目が不適切カートリッジである状態通知コマンドについては、規定回数(例えば1回又は2回)のリトライ要求を受け付けたときに、後続のコマンドの出力を優先するようにしている。
コマンドIS1,IS1を受信した各メカI/F部84では、各判定部135が、コマンドIS1,IS1を内部コマンドではないと判定する。この結果、マスター側のメカI/F部84は仮想メカコン85にコマンドIS1の問合せをし(図9中の(3))、スレーブ側のメカI/F部84はダミーメカコン95にコマンドIS1の問合せをする(図9中の(3))。
スレーブ側ではダミーメカコン95は問合せを受け付けると、無条件で直ちにACK信号を応答する(図9中の(4))。スレーブ側のメカI/F部84はその応答を受け付けると、コマンドIS1を通信線SL3へ出力する(図9中の(5))。この出力されたコマンドIS1は、マスター側の仮想メカコン85が受信する。
仮想メカコン85は、マスターとスレーブの両メカI/F部84からコマンドIS1を受け付けると、両コマンドIS1,IS1が一致するか否かを判断する。この仮想メカコン85における同期処理で、同一のコマンドIS1,IS1(詳しくは共に状態OKコマンド)が揃ったことが確認され、コマンドIS1,IS1が一致したことをもって、マスター側のメカI/F部84に対してACK信号を応答する(図9中の(6))。そして、マスター側のメカI/F部84はACK信号の応答を受け付けると、メカコントローラー43へコマンドIS1を送信する(図9中の(7))。つまり、仮想メカコン85の同期処理において同一のコマンドが揃ったことが確認されたタイミングで、マスター側のメカI/F部84からコマンドIS1がメカコントローラー43へ送信される(出力段階)。
その後、両キュー133A,133Bは、図8(d)の格納状態になる。スレーブ側のコマンド出力部134は、キュー133Bから、コマンドER1を発行する。スレーブ側のメカI/F部84では、判定部135が、コマンドER1を内部コマンドと判定する。この結果、コマンドER1はダミーメカコン95への問い合わせを省いて、仮想メカコン85へ送信される。この場合、仮想メカコン85は、受け付けたコマンドER1が内部コマンドであることから、揃わなくてもマスター側のメカI/F部84に送る。
マスター側のメカI/F部84では、判定部135が、仮想メカコン85から受け付けたコマンドER1を内部コマンドと判定するので、そのまま直ちにメカコントローラー43へ出力する。なお、仮想メカコン85から受け付けたコマンドは、スレーブ側のメカI/F部84で内部コマンドと判定されたものであることが特定できるので、マスター側のメカI/F部84での判定部135の判定を省略し、仮想メカコン85から受け付けたことをもって、そのコマンドを直ちにメカコントローラー43へ出力する構成としてもよい。
このように本実施形態では、各キュー133A,133Bの最下流格納位置のコマンドER1,IS1が揃わないことが発生するが(図8(a))、装置状態取得コマンドSGがキュー133A,133Bに格納されることがない。このため、リトライ要求が行われているうちにコマンド格納順がずれたまま装置状態取得コマンドSGが溜るような事態は回避される。
図11は、比較例のコマンド出力処理を行う場合のキューを示す。以下、装置状態取得コマンドSGがジョブ制御部93に送られる比較例の構成を採用した場合のコマンド出力処理を、図11を用いて説明する。この比較例では、装置状態取得コマンドSGは、状態情報取得要求としてメカコントローラー43まで送られ、その途中でコントローラー内のジョブ制御部のキューに格納される。なお、図11では、実施形態と区別するため、キューの符号をキュー155とし、マスター側を155A、スレーブ側を155Bとする。
図11に示すように、マスター側のキュー155AにエラーコマンドER1が格納され、スレーブ側のキュー155Bに状態OKコマンドIS1が格納される。その直後にホスト制御部125からの装置状態取得コマンドSGがキュー155A,155Bに格納される。この状態で、マスター側とスレーブ側の各キュー155A,155BからコマンドER1,IS1が出力される。エラーコマンドER1は判定部135で内部コマンドと判定されるので、メカコントローラー43へ出力される。一方、スレーブ側のメカI/F部84では判定部135が内部コマンドではないと判定するので、コマンドIS1は仮想メカコン85へ送られるが、コマンドが揃わずリトライ要求される。
よって、キュー155A,155Bは図11(b)に示す状態になる。エラーコマンドER1が遅れてスレーブ側のキュー155Bに格納される。各キュー155A,155BからコマンドSG1,IS1が出力される。仮想メカコン85でコマンドSG1,IS1が揃わず共にリトライ要求される。その間、各キュー155A,155Bには装置状態取得コマンドSG2が格納される。さらにマスター側のキュー155Aには、エラー画面でYESボタンが選択操作されたことによる状態OKコマンドが格納される。以降、コマンドはキュー155A,155Bに格納され続けるが、出力されずリトライになるので、キュー155A,155Bにコマンドが一杯になりエラーになる。
本実施形態では、装置状態取得コマンドSGはジョブ制御部93へ至る前に主制御部82内の情報転送部140に格納される。このため、装置状態取得コマンドSGはキュー133内に格納されることがない。例えば、他のコントローラーへ通信線SL4を介して送信されたエラーコマンドES(ER1等)がキュー133に格納される前に、後から発行された装置状態取得コマンドSGが先に格納されてしまうことに起因して各キュー133A,133Bのコマンド格納順序が異なる事態の発生を低減できる。
また、一のコントローラーのみで不適切カートリッジが検出されて各キュー133A,133Bへ状態通知コマンドが格納される時期にタイムラグが発生しても、そのタイムラグの間に、後から発行された装置状態取得コマンドSGが先に格納されてしまうことにより各キュー133A,133Bのコマンド格納順序が異なる事態の発生を低減できる。
また、両キュー133A,133Bに格納されるコマンドの順番が異なっても、コマンドER1,IS1,ER1は全てメカコントローラー43へ出力される。本実施形態では、メカコントローラー43へエラーコマンドER1が2回出力されることになる。エラーコマンドER1はエラー発生時にメカコントローラー43の動作を停止したい場合に使用するものである。エラーコマンドはそのパラメーターによって、「即停止」、「キャップ後停止」、「何もしない」の3段階が指定される。例えば同じ停止命令のパラメーターが指定されたエラーコマンドが2回送られてきても、既に停止しているときに停止命令を受け付けるだけなので、特に問題はない。
以上詳述したように、本実施形態では、以下に示す効果を得ることができる。
(1)主制御部82内の情報転送部140は、装置状態取得コマンドSGを受け付けると、それまでにメカコントローラー43から受信して格納しておいた装置状態情報ASを読み出して応答する形で送信する。つまり、情報転送部140は、ホスト制御部125からの装置状態取得コマンドSGの受付け及び情報送信の応答を行う情報提供処理と、メカコントローラー43から装置状態情報USを受信する情報取得処理とを非同期で行う。
よって、装置状態取得コマンドSGをメカコントローラー43まで送信する必要がない。このため、定期又は不定期に装置状態取得コマンドSGを比較的頻繁に受け付けても、エラーコマンドや状態通知コマンドなど他のコマンドの出力処理に影響を与えない。よって、コントローラー41,42からメカコントローラー43へのコマンド出力処理を比較的円滑に行うことができる。
(2)情報転送部140を、シリアル通信ポートU3(U4)からキュー133を有するジョブ制御部93に至るデータ送信経路の途中の位置する主制御部82に設けた。このため、機能構成上、装置状態取得コマンドSGがキュー133に格納されることを回避できる。
(3)メカコントローラー43が装置状態情報USを送信する時間間隔と、ホスト制御部125が装置状態取得コマンドSGを送信する時間間隔とを一方が他方の2倍以内となるような同一又は近似の値に設定した。このため、ホスト制御部125がメカコントローラー43から装置状態情報USを取得するための状態情報取得処理を、無駄な情報送信や情報要求の回数をなるべく減らして効率よく行うことができる。
(4)エラー発生側のコントローラーのみで発行されるエラーコマンドについては通信線SL4を介して他のコントローラーへも送信する。このため、各コントローラー41,42で同じエラーコマンドが各キュー133A,133Bに格納されるようになり、仮想メカコン85において各エラーコマンドが揃ったことが確認されるので、エラーコマンドを各コントローラー41,42から同期をとって出力できる。そして、この場合、
(5)状態通知コマンドはその状態内容が肯定(OK)か否定(NG)かによってメカコントローラー43への指示内容が異なってくるため、仮想メカコン85で各コントローラー41,42からのコマンドが一致したことを確認したうえでメカコントローラー43へ出力する。このため、メカコントローラー43へ不適切な状態通知コマンドを送信することを回避できる。例えばエラーコマンドと同様に、判定部135で判定して状態通知コマンドを仮想メカコン85を介さず出力する構成とすると、状態検出結果が一のコントローラーで肯定、他のコントローラーで否定であるときは、状態OKコマンドと状態NGコマンドの両方が出力される。この場合、停止を維持するべきメカニカル機構44が誤って一瞬起動したり、稼働を維持するべきメカニカル機構44を誤って一瞬停止させたりする事態を回避できる。
(6)分担するインクカートリッジICの検出結果をコントローラー41,42間で通信線SL4を介して互いに送信し合い、自身のコントローラー側で得た検出結果と、他方のコントローラー内で得た検出結果とをマージする構成である。このため、一方のコントローラーで検出結果が異常で、他方のコントローラーで検出結果が正常な場合でも、マージ処理により両コントローラー41,42で検出処理(マージ結果)が一致することになる。この結果、仮想メカコン85の同期処理において各コマンドが一致するので、適切なコマンドをメカコントローラー43へ出力できる。
(7)また、仮に両コントローラー41,42で双方の検出結果をマージすることなく、それぞれ異なる状態OKコマンドと状態NGコマンドを出力する構成とした場合、仮想メカコン85でコマンドが揃わず、何度リトライをかけてもコマンドは不一致なので、コマンド送信エラーが発生する。これに対して本実施形態によれば、マスター側とスレーブ側の各コントローラー41,42における検出結果のマージ処理により各コントローラー41,42の状態通知コマンドが同じになるので、この種のコマンド送信エラーの発生も回避できる。このため、コマンド通信エラーに起因するコントローラー41,42のリセット操作を極力回避できる。
(8)各コントローラー41,42の検出結果に応じた状態通知コマンドをマージするので、一方のコントローラーから状態OKコマンド、他のコントローラーから状態NGコマンドが送信される事態を回避できる。このため、メカコントローラー43が起動させるべきでないインク供給装置39を起動させたり、起動中のインク供給装置39を不適切に停止させてしまったりすることを回避できる。
(9)マージ処理の結果がNGであった場合は、ホスト制御部125へその旨を伝え、モニター123にY/N表示を行う。そして、YESが選択されるか、NOが選択された後にユーザーがエラーの原因を取り除きOKが選択されると、エラー解除して状態OK通知を行う。このため、メカコントローラー43へ適切な状態OK通知(状態OKコマンド)を送ることができる。また、各コントローラー41,42のマージ処理でOKの場合は、メカコントローラー43へ適切な状態OK通知(状態OKコマンド)を送ることができる。よって、不適切な状態通知に基づくインク供給装置39等の動作部の不適切な起動や不適切な停止を回避できる。
(10)複数のコントローラー41,42は、図8に示すようにその機能構成が同じなので、マスター側とスレーブ側とで同期処理に係る機能が異なるものの、共通のプログラムにより実現することができる。
(11)インク管理部90(検出手段)は、インクカートリッジICの記憶素子47から取得したインク関連情報に基づきインク切れなどのエラーを検出する。そして、インク切れなどの検出結果に基づき生成されたエラーコマンドが、通信I/F部87,87を通じて他のコントローラーへ送信される際に、IC確認処理の確認結果(検出結果)が一緒に送信される。このため、別々に送信する場合に比べ必要な情報を他のコントローラーへ早期に渡すことができる。この結果、インク残量演算やマージ処理を早期に行って処理の遅延を極力回避できる。
なお、上記実施形態は以下のような形態に変更することもできる。
・情報転送部140は、主制御部82に設ける構成に限定されない。例えばメカ制御部83内に設けたり、メカ制御部83とメカI/F部84との間に設けてもよい。さらにシリアル通信ポートU3(U4)と主制御部82との間に設けてもよい。
・装置状態情報USを装置状態情報ASに加工することなく、第1格納部142から読み出した装置状態情報USをそのまま送信する構成としてもよい。
・検出手段の一例であるインク管理部90が不適切カートリッジの検出を行わない構成とし、不適切カートリッジをそのまま使用するか否かを確認する確認手段を設けない構成も採用できる。例えば、一方のコントローラーでインク切れ、装着切れ、色違い等の異常検出時は、両コントローラー41,42のマージ結果が共に異常となるので、仮想メカコン85で状態異常コマンドが揃うことになるので、コマンド送信エラーの発生を回避できる。しかも他方のコントローラーが仮に正常検出時でもマージされることにより、状態正常コマンドの送信を回避できるので、不適切なコマンドをメカコントローラー43へ送信したことに起因する動作部(例えばインク供給装置39)の不適切な起動や停止を極力回避できる。
・回避手段は適宜選択できる。前記実施形態では、同期手段(仮想メカコン85)でコマンドが揃わないことに起因する送信エラーを回避するための回避手段の一例として、マージ処理部83Aと、判定部135と、ホスト制御部125(確認手段)を採用したが、これらに限定されない。例えばマージ処理部83Aと判定部135とホスト制御部125の確認機能部のうち二つのみ又は一つのみを採用してもよい。また、マージ処理部83Aのように同期手段においてコマンドが揃うような処理を施して送信エラーを回避する回避手段として、例えばキュー133内におけるコマンド格納順序を並び替える再配列手段を採用してもよい。この再配列手段の一例としては、キュー133内のコマンドを、予め設定した優先順位の順番、コマンド番号の順番、あるいはコマンド生成時に付与したシリアル番号の順番など所定の順番にコマンドを並び替えるソート部を挙げることができる。また、一の印刷制御装置内で発生した内部コマンドを他の印刷制御装置へ送信する回避手段でもよい。
・不適切カートリッジの検出処理を行うものの不良カートリッジの検出処理を行わない構成としてもよい。また、不適切カートリッジを検出した場合において、そのままでOKかNOかの選択をユーザーに促してユーザーの意図を確認する確認手段を廃止してもよい。
・検出手段の検出結果と流体消費量とを別々に他の印刷制御装置へ送信する構成としてもよい。また、送受信した流体消費量に基づく算出値は、流体収容体の流体残量に限らず、流体消費量でもよい。さらに、流体収容体の残量又は消費量の算出の度に、その算出結果に基づき流体切れ(一例としてインク切れ)の検出まで行うことは必須ではない。
・確認手段は、ホスト装置120側のホスト制御部125に限定されない。例えばメカコントローラー43側にモニターを接続し、不適切な部品をそのまま使用するか否かの選択を促す確認手段をメカコントローラー43に設けてもよい。
・同期手段は、仮想メカコントローラー85による方法に限定されない。例えば複数の印刷制御装置とメカコントローラー43との間に各印刷制御装置に共通の出力先として同期回路を設け、同期回路において複数の印刷制御装置からのコマンドが全て揃ったら、そのコマンドをメカコントローラー43へ送信する構成を採用してもよい。
・同期手段が、複数の印刷制御装置の各出力手段から受け付けるものはコマンドに限定されず、コマンドが一致するか否かの判断に使用できる情報をコマンドに替えて受け付ける構成でもよい。情報としては、例えばコマンドの識別子情報(例えばコマンド番号)などを挙げることができる。要するに、複数の印刷制御装置において出力すべきコマンドが揃ったことを確認できる構成であれば足りる。
・検出手段の検出結果に基づくコマンドは、印刷制御装置(例えばコントローラー)の内部で個別に発生する内部コマンドであればよい。この場合、内部コマンドは、エラーコマンドに限らず、正常の旨を示すコマンド(正常通知コマンド)でもよいし、3以上の複数種のうち該当する検出結果や状態を通知するコマンドでもよい。内部コマンドであれば、回避手段によって、同期処理においてコマンドが揃わず発生するコマンド送信エラーや、検出結果に応じてコマンドの処理経路が印刷制御装置間で異なり同期処理で一方のコマンドしか届かず発生するコマンド送信エラーを回避できる。
・検出手段は、部品の一例であるインクカートリッジの状態(装着外れ、色違い、インク切れ、不適切カートリッジ等)を検出するインク管理部90に限定されない。記録ヘッド29毎にノズルの目詰まりを検査するためのノズル検査部を設け、複数のノズル検査部を部品の一例として複数のコントローラー41,42に分担して接続する。そして、各コントローラーには、ノズル検査部の制御機能とノズル検査部のノズル検査結果に基づきノズル目詰まり(ノズルエラー)を検出する検出機能とを有する検査制御部(検出手段)を備えた構成も採用できる。この場合、ノズル検査結果又はその検査結果に基づくコマンドを、コントローラー41,42間で通信I/F部87,87を介して他のコントローラーへ通知する。そして、コントローラー41,42内の各メカ制御部83は、各検査制御部のノズル検査結果をマージ処理部によりマージしたマージ結果に基づきノズル目詰まりエラーコマンド(ノズルエラーコマンド)を生成したり、メンテナンス装置32にクリーニングを行わせるクリーニングコマンドを生成したりする。よって、マスターとスレーブの両コントローラー41,42で異なる検出結果を取得した場合でも、マージ結果は同じになるので、そのマージ結果に基づくノズルエラーコマンドやクリーニングコマンドを、コマンド送信エラーの発生や、動作部の不適切な起動や停止を招くことなく、メカコントローラー43へ出力できる。なお、ノズル目詰まりの検出結果を取得した場合、ホスト制御部125(確認手段)がクリーニングを実施するか否かの選択をユーザーに促す画面を表示させる構成としてもよい。
・印刷制御装置の一例であるコントローラー41,42が分担して制御する印刷手段は、記録ヘッド29に限定されない。印刷手段は、例えばキャリッジモーターを含むキャリッジ駆動系であってもよいし、搬送モーターを含む搬送駆動系であってもよい。さらに、記録ヘッド29に、キャリッジ駆動系又は搬送駆動系を加えて印刷手段を構成することもできる。また、キャリッジ駆動系及び搬送駆動系により、印刷手段を構成することもできる。
・印刷制御装置は二つに限らず、三つ以上の印刷制御装置を接続した構成も採用できる。
・記録ヘッドは1個でもよい。例えばライン記録方式の長尺状の記録ヘッドにおいて全ノズルを複数に分割した複数のヘッド領域(分割ノズル群)を分担して二以上の印刷制御装置が制御し、これらの印刷制御装置を同期させてメカコントローラーにコマンドを出力する構成も採用できる。
・図6におけるコントローラーの各機能部を、プログラムを実行するCPUにより主にソフトウェアで実現したが、ハードウェアで実現したり、ソフトウェアとハードウェアとの協働により実現したりしてもよい。
・印刷装置は、ラテラル式のプリンター11に限定されず、シリアルプリンター、ラインプリンター、ページプリンターでもよい。さらにインクジェット式に限定されず、ドットインパクト式の印刷装置にも適用できる。
・前記各実施形態では、印刷装置として、インクジェット式のプリンター11が採用されているが、インク以外の他の流体を噴射したり吐出したりする流体噴射装置を採用してもよい。また、微小量の液滴を吐出させる液体噴射ヘッド等を備える各種の液体噴射装置に流用可能である。この場合、液滴とは、上記液体噴射装置から吐出される液体の状態を言い、粒状、涙状、糸状に尾を引くものも含むものとする。また、ここでいう液体とは、液体噴射装置が噴射させることができるような材料であればよい。例えば、物質が液相であるときの状態のものであればよく、粘性の高い又は低い液状体、ゾル、ゲル水、その他の無機溶剤、有機溶剤、溶液、液状樹脂、液状金属(金属融液)のような流状体、また物質の一状態としての液体のみならず、顔料や金属粒子などの固形物からなる機能材料の粒子が溶媒に溶解、分散または混合されたものなどを含む。また、液体の代表的な例としては上記実施形態で説明したようなインクや液晶等が挙げられる。ここで、インクとは一般的な水性インクおよび油性インク並びにジェルインク、ホットメルトインク等の各種液体組成物を包含するものとする。液体噴射装置の具体例としては、例えば液晶ディスプレイ、EL(エレクトロルミネッセンス)ディスプレイ、面発光ディスプレイ、カラーフィルタの製造などに用いられる電極材や色材などの材料を分散または溶解のかたちで含む液体を噴射する液体噴射装置が挙げられる。さらに、バイオチップ製造に用いられる生体有機物を噴射する液体噴射装置、精密ピペットとして用いられ試料となる液体を噴射する液体噴射装置、捺染装置やマイクロディスペンサ等であってもよい。さらに、時計やカメラ等の精密機械にピンポイントで潤滑油を噴射する液体噴射装置、光通信素子等に用いられる微小半球レンズ(光学レンズ)などを形成するために紫外線硬化樹脂等の透明樹脂液を基板上に噴射する液体噴射装置、基板などをエッチングするために酸又はアルカリ等のエッチング液を噴射する液体噴射装置を採用してもよい。そして、これらのうちいずれか一種の液体噴射装置に本発明を適用することができる。また、流体は、トナーなどの粉粒体でもよい。なお、本明細書でいう流体には、気体のみからなるものは含まないものとする。