以下、本発明の実施形態について説明する。なお、以下に説明される実施形態は本発明の一例にすぎず、本発明の要旨を変更しない範囲で、本発明の実施形態を適宜変更できることは言うまでもない。また、複合機10及び複合機10に取り付けられたインクカートリッジ50が使用可能に水平面に設置された姿勢(図1の姿勢であって、「使用姿勢」と表記することがある。)を基準として上下方向7が定義され、複合機10の開口13が設けられている面を前面として前後方向8が定義され、複合機10を前面から見て左右方向9が定義される。本実施形態では、使用姿勢において、上下方向7が鉛直方向に相当し、前後方向8及び左右方向9が水平方向に相当する。
[第1実施形態]
以下、第1実施形態に係る複合機10及びインク供給装置15が説明される。
[複合機10の全体構成]
図1に示されるように、複合機10(液体排出装置の一例)は、概ね直方体形状である。複合機10は、プリンタ部11、スキャナ部12、及び操作パネル22を有している。プリンタ部11は、複合機10の下部に位置し、インクジェット記録方式で用紙28(図2参照)に画像を記録する。スキャナ部12は、スキャン機能を有する装置であり、プリンタ部11の上方に位置する。プリンタ部11は、前方に開口する開口13を有する筐体14と、筐体14の内部において開口13の右方に位置するインク供給装置15と、を備えている。
操作パネル22は、スキャナ部12の前方に位置している。操作パネル22は、プリンタ部11による画像記録やスキャナ部12による画像読取りを複合機10に実行させるために、ユーザが操作するものである。操作パネル22は、ディスプレイ17を有する。ディスプレイ17は、液晶ディスプレイ、有機ELディスプレイ等であり、各種情報を表示する表示面を備える。ディスプレイ17は、報知機の一例である。但し、報知機の具体例はディスプレイ17に限定されず、スピーカ、LEDランプ、或いはこれらの組み合わせでもよい。操作パネル22は、ユーザによる操作に応じた操作信号をコントローラ230に出力する。操作パネル22は、例えば、押ボタンを有していてもよいし、ディスプレイに重畳されたタッチセンサを有していてもよい。
図2に示されるように、筐体14の内部には、給送部16と、給送トレイ20と、排出トレイ21と、搬送ローラ対45と、記録部24と、排出ローラ対46と、プラテン42と、が配置されている。
[給送トレイ20、排出トレイ21]
図1に示されるように、給送トレイ20は、開口13を通じて前後方向8に沿って筐体14に対して挿抜可能である。開口13は、複合機10の前面で且つ左右方向9の中央部に位置する。図2に示されるように、給送トレイ20は、積層された複数の用紙28を支持可能である。排出トレイ21は、給送トレイ20の上方に配置されており、給送トレイ20と共に前後方向8に沿って挿抜される。排出トレイ21は、排出ローラ対46によって排出された用紙28を支持する。
[給送部16]
給送部16は、給送トレイ20に支持された用紙28を搬送経路38へ給送する。図2に示されるように、給送部16は、給送ローラ25と、給送アーム26と、軸27とを備える。給送ローラ25は、給送アーム26の先端に回転可能に支持されている。給送ローラ25は、不図示の給送用モータから駆動が伝達される。給送アーム26は、プリンタ部11のフレームに支持された軸27に回動可能に支持されている。給送アーム26は、自重或いはバネ等による弾性力によって給送トレイ20に向かって回動付勢されている。
以下、用紙28の搬送に関わる給送ローラ25、搬送ローラ34、及び排出ローラ36が、用紙28を搬送向き38Aに搬送する向きに回転することを、「正回転」と表記する。
[搬送経路38]
図2に示されるように、搬送経路38は、その一部がプリンタ部11の内部において、所定間隔で対向する外側ガイド部材18及び内側ガイド部材19などによって形成される空間を指す。搬送経路38は、給送トレイ20の後端部から後方に延びる経路である。搬送経路38は、プリンタ部11の後部において上方に延びつつ前方にUターンし、記録部24とプラテン42との間の空間を経て排出トレイ21に至る経路である。図2及び図3に示されるように、搬送ローラ対45及び排出ローラ対46の間における搬送経路38は、左右方向9における複合機10の概ね中央に設けられており、且つ前後方向8に延びている。搬送経路38における用紙28の搬送向き38Aは、図2において矢印で示されている。
[搬送ローラ対45]
図2に示されるように、搬送ローラ対45は、記録部24より搬送向き38Aの上流に位置する。搬送ローラ対45は、互いに対向する搬送ローラ34及びピンチローラ35を有する。搬送ローラ34は、不図示の搬送用モータから駆動伝達されて正回転又は逆回転する。ピンチローラ35は、搬送ローラ34の回転に伴って連れ回る。用紙28は、正回転する搬送ローラ34及びピンチローラ35に挟持されて搬送向き38Aに搬送される。
[排出ローラ対46]
図2に示されるように、排出ローラ対46は、記録部24より搬送向き38Aの下流に配置されている。排出ローラ対46は、互いに対向する排出ローラ36及び拍車37を有する。排出ローラ36は、不図示の搬送用モータから駆動伝達されて正回転又は逆回転する。拍車37は、排出ローラ36の回転に伴って連れ回る。用紙28は、正回転する排出ローラ36及び拍車37に挟持されて搬送向き38Aに搬送される。
[記録部24]
図2に示されるように、記録部24は、搬送向き38Aにおける搬送ローラ対45及び排出ローラ対46の間に位置する。記録部24は、搬送経路38を挟んでプラテン42と上下方向7に対向している。記録部24は、キャリッジ23と、キャリッジ23に搭載された記録ヘッド39とを備えている。
図3に示されるように、キャリッジ23は、前後方向8に離間しており、各々が左右方向9に延びるガイドレール43、44に支持されている。ガイドレール43、44は、不図示のフレームに支持されている。キャリッジ23は、ガイドレール44に設けられた公知のベルト機構に連結されている。ベルト機構は、不図示のキャリッジ駆動用モータから駆動伝達されて回動する。キャリッジ23は、ベルト機構の回動に伴って、ガイドレール43,44により案内されて左右方向9に往復移動する。キャリッジ23の移動範囲は、図3の一点鎖線で示されるように、搬送経路38の幅38Bよりも右方及び左方にまで及ぶ。
記録ヘッド39と、インク供給装置15に設けられた4つのサブタンク100とは、4本のインクチューブ32によって接続されている。記録ヘッド39は、フレキシブルフラットケーブル33によって、不図示の制御基板と接続されている。
4つのサブタンク100は、マゼンタサブタンク100M、シアンサブタンク100C、イエローサブタンク100Y、及びブラックサブタンク100Bである。マゼンタサブタンク100M、シアンサブタンク100C、イエローサブタンク100Y、及びブラックサブタンク100Bは、本明細書において特に区別する必要がない場合、サブタンク100と総称される。
4本のインクチューブ32は、イエローインクチューブ32Y、シアンインクチューブ32C、マゼンタインクチューブ32M、及びブラックインクチューブ32Bからなっている。イエローインクチューブ32Y、シアンインクチューブ32C、マゼンタインクチューブ32M、及びブラックインクチューブ32Bは、本明細書において特に区別する必要がない場合、インクチューブ32と総称される。4本のインクチューブ32は、一体に束ねられている。
フレキシブルフラットケーブル33は、制御部が実装された制御基板及び記録ヘッド39を電気的に接続するものである。フレキシブルフラットケーブル33は、制御部から出力される制御信号を記録ヘッド39に伝達する。
図2に示されるように、記録ヘッド39の下面には、複数のノズル40が配置されている。複数のノズル40の先端は、記録ヘッド39の下面から露出している。記録ヘッド39は、ノズル40からインクを微小なインク滴として吐出する。キャリッジ23が移動する過程において、プラテン42に支持されている用紙28に向けて記録ヘッド39がインク滴を吐出する。これにより、用紙28に画像が記録される。また、これにより、4つのサブタンク100に貯留されたインクが消費される。
[プラテン42]
図2及び図3に示されるように、プラテン42は、搬送経路38における搬送ローラ対45及び排出ローラ対46の間に配置されている。プラテン42は、搬送経路38を挟んで記録部24と上下方向7に対向配置されている。プラテン42は、搬送ローラ対45によって搬送される用紙28を下方から支持する。
[カバー48]
図1(B)に示されるように、筐体14の右前部には、開口47が形成されている。筐体14にはインク供給装置15が収納されており、インク供給装置15の前面が開口47から露出している。筐体14には、開口47を開閉可能なカバー48が取り付けられている。カバー48の下端部は、開口47の下方において、左右方向9の軸周りに回転可能に筐体14に支持されている。カバー48は、開口47を閉鎖する閉鎖位置(図1(A)に示される位置)と、開口47を開放する開放位置(図1(B)に示される位置)との間を、回転可能である。
図1(A)に示されるように、カバー48は、透光部49を有している。透光部49は、カバー48の外側から内部の構成を視認可能な透光性を有する。カバー48が閉鎖位置にあるときに、透光部49から、インク供給装置15に取り付けられたインクカートリッジ50の前面が視認可能である。
[カバーセンサ88]
複合機10は、カバーセンサ88(図13参照)を有する。カバーセンサ88は、例えば、カバー48が接離するスイッチ等の機械式センサであってもよいし、カバー48の位置によって光が遮断或いは透過される光学式センサであってもよい。カバーセンサ88は、カバー48の位置に応じた信号をコントローラ230に出力する。より詳細には、カバーセンサ88は、カバー48が閉鎖位置に位置していることに応じて、ローレベル信号をコントローラ230へ出力する。一方、カバーセンサ88は、カバー48が閉鎖位置と異なる位置に位置していることに応じて、ローレベル信号より信号強度の高いハイレベル信号をコントローラ230へ出力する。換言すれば、カバーセンサ88は、カバー48が開放位置に位置していることに応じて、ハイレベル信号をコントローラ230へ出力する。
[インク供給装置15]
図4に示されるように、インク供給装置15は、4つのインクカートリッジ50と、装着ケース71と、4つのサブタンク100と、大気連通部70(図5、図11参照)と、を備えている。
[インクカートリッジ50]
図1、図3に示されるように、4つのインクカートリッジ50(カートリッジの一例)は、マゼンタインクカートリッジ50M、シアンインクカートリッジ50C、イエローインクカートリッジ50Y、及びブラックインクカートリッジ50Bからなっている。マゼンタインクカートリッジ50M、シアンインクカートリッジ50C、イエローインクカートリッジ50Y、及びブラックインクカートリッジ50Bは、本明細書において特に区別される必要がない場合、インクカートリッジ50と総称される。
図4は、4つのインクカートリッジ50のうち、左右方向9の最も左側に位置するマゼンタインクカートリッジ50Mのみが装着ケース71に収納された状態を示している。
図5、図6に示されるように、インクカートリッジ50は、カートリッジ本体51と、ジョイント受部52と、を備えている。カートリッジ本体51は、インク(液体の一例)を貯留する第1貯留室53(第1液室の一例)を有する。
カートリッジ本体51は、概ね直方体状の箱形状を有している。カートリッジ本体51は、上下方向7及び前後方向8から視て概ね長方形状である。カートリッジ本体51は、カートリッジ本体51の前端部に下方に突出する凸部65を有している。カートリッジ本体51は、上壁54、サブ下壁55、右壁56(図4参照)、左壁57(図4参照)、後壁58、前壁59、下壁60を有している。下壁60は、カートリッジ本体51の前部かつ下端部に位置しており、サブ下壁55よりも下方に位置している。サブ下壁55は、下壁60よりも後方に位置している。カートリッジ本体51は、凸部65において、後方(水平方向の一例)に開口する連通口61を有している。連通口61は、サブ下壁55、下壁60、右壁56、及び左壁57によって画定された開口である。
上壁54には、前後方向8の中央部に上方に突出する当接部64が設けられている。当接部64は、装着ケース71のロックレバー79(後述)と当接する部分である。
当接部64の上面にはICチップ66(カートリッジメモリの一例)が位置している。ICチップ66には、ICチップ66が形成されている。また、ICチップ66は、不図示のメモリを備える。ICチップ66は、ICチップ66の上記メモリと電気的に接続されている。ICチップ66は、ICチップ66の上面において、接点152と導通可能に露出されている。すなわち、インクカートリッジ50が装着ケース71に装着された状態において、ICチップ66は、接点152と電気的に導通する。コントローラ230は、接点152及びICチップ66を通じてICチップ66のメモリから情報を読み出し、接点152及びICチップ66を通じてICチップ66のメモリに情報を書き込むことができる。
ICチップ66のメモリは、最大インク量Vc0と、粘度ρと、後述するインク量Vc、高さHc、及び関数Fcとを記憶する。ICチップ66のメモリはカートリッジメモリの一例である。最大インク量Vc0は、インクカートリッジ50に貯留可能なインクの最大量を示す最大液体量の一例である。換言すれば、インク量Vc0は、新品のインクカートリッジ50に貯留されているインクの量を示す。粘度ρは、インクカートリッジ50に貯留されているインクの粘度を示す。以下、ICチップ66のメモリに記憶されている情報を総称して、「CTG情報」と表記することがある。また、「新品」とは、インクカートリッジ50から、インクカートリッジ50内のインクが一度も流出していない状態を示す。
ICチップ66のメモリの記憶領域は、例えば、第1領域と、第2領域と、第3領域とを含む。第1領域、第2領域、及び第3領域は、互いに異なるメモリ領域である。第1領域及び第3領域は、コントローラ230によって情報が上書きされない領域である。一方、第2領域は、コントローラ230によって情報が上書き可能な領域である。そして、第1領域に関数Fcが記憶され、第2領域にインク量Vc及び高さHcが記憶され、第3領域に最大液体量Vc0が記憶される。
第1貯留室53の底面を画定するサブ下壁55の上面は、前後方向8に沿って凸部65に向かって下方に傾斜している。
ジョイント受部52は、カートリッジ本体51において連通口61を囲む部分から後方に延びる円筒形状を有している。ジョイント受部52は、サブタンク100のジョイント102(後述)が挿入される部分である。
図5は、インクカートリッジ50がサブタンク100に装着された装着状態を示している。図6は、インクカートリッジ50がサブタンク100から分離された分離状態を示している。装着状態については以下で詳しく説明される。
ジョイント受部52には、連通口61を閉鎖可能な栓部材62と、栓部材62を後方に付勢するバネ63と、が設けられている。図6に示されるように、インクカートリッジ50に外力が加わらない状態では、栓部材62は、連通口61を閉鎖する位置にある。バネ63は、栓部材62と前壁59との間において前後方向8に沿って延びており、前後方向8に圧縮可能である。図5に示されるように、ジョイント102によって、バネ63の弾性力よりも大きな前向きの外力が栓部材62に加えられると、栓部材62が前方に移動して連通口61から離れる。
[装着ケース71]
装着ケース71は、前方が開放された直方体状の箱形状である。装着ケース71は、上壁72、下壁73、右壁74、左壁75、後壁76、及び3つの仕切壁77を有している。上壁72、下壁73、右壁74、左壁75、及び後壁76により、前方が開放された内部空間78が画定されている。3つの仕切壁77は、右壁74及び左壁75と平行な壁であり、内部空間78を、4つの空間に区画している。区画された4つの空間のそれぞれに、4つのインクカートリッジ50のそれぞれが収納される。装着ケース71は、図5、図6、図7に示されるように、ロックレバー79と、接点152と、装着センサ154と、液面センサ155と、を備えている。
[ロックレバー79]
図4、図5、図6に示されるように、装着ケース71には、インクカートリッジ50を内部空間78内に保持するロックレバー79が設けられている。ロックレバー79は、前後方向に延びた板状部材である。ロックレバー79の中央部は、上壁72に、左右方向9の軸周りに回転可能に設けられている。ロックレバー79は、後方に傾いたロック位置と、前方に傾いたアンロック位置との間で回転する。ロックレバー79は、外力が加わらない状態では、自重により後方に傾いてロック位置となる。ロック位置において、ロックレバー79の後端部は、内部空間78にあるインクカートリッジ50の当接部64の前面と当接し、インクカートリッジ50が前後方向8の前方へ移動することを規制する。ロック位置のロックレバー79の前端部がユーザの指等によって下方に押圧されると、ロックレバー79はロック位置からアンロック位置に回転する。アンロック位置において、ロックレバー79の後端部は、当接部64の前面より上方に位置する。アンロック位置のロックレバー79は、前後方向8の前方へ移動するインクカートリッジ50の当接部64と当接しないので、装着ケース71からインクカートリッジ50が取り外し可能となる。
[接点152]
接点152(インタフェースの一例)は、装着ケース71の上壁72に位置している。接点152は、上壁72から装着ケース71の内部空間78へ向けて下方に突出している。接点152は、装着ケース71にインクカートリッジ50が装着された状態において、インクカートリッジ50の後述するICチップ66に接する位置に位置している。接点152は、導電性を有しており、さらに上下方向7に沿って弾性的に変形可能である。接点152は、コントローラ230に電気的に接続されている。
[装着センサ154]
装着センサ154は、装着ケース71の上壁72に位置している。装着センサ154は、インクカートリッジ50が装着ケース71に装着されているか否かを検出するためのセンサである。装着センサ154は、左右方向9に離間した発光部及び受光部を備える。装着ケース71にインクカートリッジ50が装着された状態において、インクカートリッジ50の図示しない被検知部が、装着センサ154の発光部及び受光部の間に位置する。換言すれば、装着センサ154の発光部及び受光部は、装着ケース71に装着されたインクカートリッジ50の被検知部を挟んで、互いに対向した状態で位置している。
装着センサ154は、発光部から左右方向9に沿って照射された光が受光部で受光されたか否かに応じて、異なる信号(図中では、「装着信号」と表記する。)を出力する。装着センサ154は、例えば、受光部で受光された光の受光強度が閾値強度未満であることに応じて、ローレベル信号をコントローラ230へ出力する。一方、装着センサ154は、受光部で受光された光の受光強度が閾値強度以上であることに応じて、ローレベル信号より信号強度の高いハイレベル信号をコントローラ230へ出力する。ハイレベル信号は第3信号の一例であり、ローレベル信号は第4信号の一例である。
[サブタンク100]
図4から図11には、サブタンク100(タンクの一例)が示されている。サブタンク100は、装着ケース71の下壁73の下方に位置している。
図7に示されるように、サブタンク100は、タンク本体101と、ジョイント102と、を備えている。タンク本体101の内部に、インクを貯留する第2貯留室105(第2液室の一例)が形成されている。サブタンク100は、第2貯留室105と連通する液体流路103及び気体流路104を備えている。液体流路103及び気体流路104は、タンク本体101の内部及びジョイント102の内部に形成されている。また、サブタンク100は、第2貯留室105を外部に連通する大気連通口106(図9、図10、図12(A)参照)を備えている。
[液体流路103及び気体流路104]
図7に示されるように、液体流路103及び気体流路104は並列に位置している。
液体流路103は、第1開口131と、第2開口132と、鉛直部分133と、水平部分134と、を有している。第1開口131は、液体流路103の一端側(後端側)に形成され且つ第2貯留室105に連通する開口である。第1開口131は、上下方向7に沿って開口している。第2開口132は、液体流路103の一端側とは反対の他端側(前端側)に形成され且つ外部に開口する開口である。第2開口132は、前後方向8に沿って開口している。第2開口132は、インクカートリッジ50の装着状態において、インクカートリッジ50の第1貯留室53内に位置する。鉛直部分133は、液体流路103において第1開口131から上方に延びる部分である。水平部分134は、液体流路103において第2開口132から後方に延びる部分である。鉛直部分133の上端部は水平部分134の後端部に接続されている。
気体流路104は、第3開口141と、第4開口142と、鉛直部分143と、水平部分144と、を有している。第3開口141は、気体流路104の一端側(後端側)に形成され且つ第2貯留室105に連通する開口である。第3開口141は、上下方向7に沿って開口している。第4開口142は、気体流路104の一端側とは反対の他端側(前端側)に形成され且つ外部に開口する開口である。第4開口142は、前後方向8に沿って開口している。第4開口142は、インクカートリッジ50の装着状態において、インクカートリッジ50の第1貯留室53に連通する。鉛直部分143は、気体流路104において第3開口141から上方に延びる部分である。水平部分144は、気体流路104において第4開口142から後方に延びる部分である。鉛直部分143の上端部は水平部分144の後端部に接続されている。
[タンク本体101]
タンク本体101は、概ね直方体状の外壁を有している。タンク本体101は、上下方向7から視て概ねT字形状(図9、図10参照)であり、前後方向8から視て概ね長方形状(図8参照)であり、左右方向9から視てL字形状(図4から図7参照)である。
図4から図11に示されるように、タンク本体101の外壁は、後側上壁107、屈曲上壁130、前側上壁108、下壁109、2つの後側側壁110、2つの前側屈曲側壁111、後壁112、及び前壁113を有している。後側上壁107は、後端から水平面に対して上方に傾斜しながら前方に延びる壁である。屈曲上壁130は、後側上壁107の前端から延びる壁であって、前方から上方に向けて屈曲している。前側上壁108は、屈曲上壁130の上端から、水平面と平行に前方に延びている。下壁109は、水平面と平行に前後方向8に延びている。下壁109は、上下方向7から視てT字形状を有している。後側側壁110は、後側上壁107と下壁109とを上下方向7に接続している。後側側壁110は、左右方向9から視て概ね長方形である。図9に示されるように、後側側壁110は、隣り合う異なるインクのタンク本体101において共用されている。前側屈曲側壁111は、屈曲上壁130及び前側上壁108と、下壁109とを上下方向7に接続している。前側屈曲側壁111は、左右方向9から視て概ね長方形であり、上下方向7から視て隅部が弧を描くL字形状である。後壁112は、下壁109の後端部から上方に延びており、左右に位置する2つの後側側壁110と、後側上壁107とに接続されている。前壁113は、下壁109の前端部から上方に延びており、左右に位置する2つの前側屈曲側壁111に接続されている。
図7、図11に示されるように、下壁109には、第2貯留室105に連通する連通口129が形成されている。連通口129には、インクチューブ32の一端部が接続されており、インクチューブ32を介して、第2貯留室105と記録ヘッド39とが連通接続されている。
タンク本体101の前端部かつ上部には、前後方向8に延びる円筒形状の内筒部114が設けられている。内筒部114の内部は、前壁113、左右に位置する2つの前側屈曲側壁111、及び前側上壁108によって形成された開口に連通している。内筒部114には、ジョイント102の後端部が取り付け可能である。内筒部114にジョイント102が取り付けられた装着状態では、内筒部114の内部とジョイント102の内部が連通する。
[幅広部150及び幅狭部151]
図10に示されるように、タンク本体101は、前後方向8に沿って並ぶ幅広部150及び幅狭部151を有している。幅広部150は、タンク本体101において前後方向8の後部に位置し、2つの後側側壁110及び後壁112を含む部分である。幅狭部151は、タンク本体101において前後方向8の前端部(第1方向の一端部の一例)に位置し、2つの前側屈曲側壁111及び前壁113を含む部分である。幅狭部151の左右方向9(第1方向に直交する第2方向の一例)における幅は、幅広部150の左右方向9における幅よりも小さい。第2貯留室105は、幅広部150及び幅狭部151に亘って形成されている。
図8に示されるように、幅広部150の左右方向9における幅は、インクカートリッジ50の左右方向9における幅に、概ね等しい。したがって、幅狭部151の左右方向9における幅は、インクカートリッジ50の左右方向9における幅よりも小さい。
[鉛直壁115及び水平壁116]
図7、図11に示されるように、タンク本体101は、タンク本体101の前部且つ上部に、鉛直壁115及び水平壁116を備えている。
鉛直壁115は、上下方向7に延びる壁であり、前後方向8において前壁113と屈曲上壁130との間に位置している。鉛直壁115は、左右に位置する2つの前側屈曲側壁111を接続しており、前壁113、前側上壁108、2つの前側屈曲側壁111に画定される空間を前後に区画している。鉛直壁115の下端位置が、液体流路103の第1開口131の上下方向7における位置であり、且つ、気体流路104の第3開口141の上下方向7における位置である。鉛直壁115の下端位置は、後側上壁107の前端の下端位置に等しい。つまり、第2貯留室105の上面は、鉛直壁115の下端位置を通り水平面と平行な仮想平面と、後側上壁107の下面とによって画定されている。
水平壁116は、鉛直壁115の上端から前方に延びる壁である。水平壁116は、内筒部114の内部まで延びている。水平壁116は、左右に位置する2つの前側屈曲側壁111を接続し、且つ、内筒部114の内面を左右方向9において接続している。水平壁116は、前側上壁108、2つの前側屈曲側壁111によって画定される空間と、内筒部114によって画定される空間とを、上下に区画している。
図10に示されるように、液体流路103の鉛直部分133は、鉛直壁115、前壁113、及び2つの前側屈曲側壁111によって形成されている。液体流路103の鉛直部分133において上下方向7と直交する断面の形状は、矩形である。液体流路103の鉛直部分133は、第2貯留室105を区画する2つの前側屈曲側壁111と面一に連続している。したがって、液体流路103の鉛直部分133の左右方向9における幅は、幅狭部151によって画定される第2貯留室105の左右方向9における幅と、同じである。
図10に示されるように、気体流路104の鉛直部分143は、屈曲上壁130、鉛直壁115、及び2つの前側屈曲側壁111によって形成されている。気体流路104の鉛直部分133において上下方向7と直交する断面の形状は、矩形である。気体流路104の鉛直部分133は、第2貯留室105を区画する2つの前側屈曲側壁111と面一に連続している。したがって、気体流路104の鉛直部分143の左右方向9における幅は、幅狭部151によって画定される第2貯留室105の左右方向9における幅と、同じである。
図10に示されるように、気体流路104の第3開口141の前後方向8(水平方向の一例)に沿った長さ149は、液体流路103の第1開口131の前後方向8(水平方向の一例)に沿った長さ148よりも、長い。気体流路104の第3開口141の左右方向9に沿った長さは、液体流路103の第1開口131の左右方向9に沿った長さに、等しい。そのため、気体流路104の第3開口141の開口面積は、液体流路103の第1開口131の開口面積よりも大きい。
図7に示されるように、気体流路104の鉛直部分143において、気体流路104の開口面積は、気体流路104の第3開口141に近づくにつれて拡大している。液体流路103の鉛直部分133では、液体流路103の開口面積は、上下方向7において一定である。
図7に示されるように、タンク本体101内における液体流路103の水平部分134は、前側上壁108、水平壁116、2つの前側屈曲側壁111、及び内筒部114によって形成されている。タンク本体101内における気体流路104の水平部分144は、水平壁116、2つの前側屈曲側壁111、及び内筒部114によって形成されている。
[第1リブ117]
図7、図11に示されるように、タンク本体101は、鉛直壁115と連続する第1リブ117を備えている。第1リブ117は、前側屈曲側壁111から突出しており、鉛直壁115から下方に延びている。第1リブ117と下壁109との間は離間している。左右に位置する2つの前側屈曲側壁111のそれぞれに第1リブ117が設けられており、1つの第2貯留室105内には、2つの第1リブ117が左右方向9に離れて位置している。
[液面センサ155]
図7に示されるように、液面センサ155は、タンク本体101の第2貯留室105の液面が境界位置B以上であるか否かを検出するためのセンサである。境界位置Bは、気体流路104の第3開口141を通過して水平方向に延びる仮想線Lより下方の位置である。液面センサ155は、タンク本体101の後壁112の境界位置Bにインクが接触しているか否かによって異なる反射率を有するプリズムを利用して、第2貯留室105の境界位置Bにおけるインクの液面を光学的に検出するためのセンサである。
液面センサ155は、左右方向9に離間した発光部及び受光部を備える。液面センサ155は、発光部から出力された光が受光部で受光されたか否かに応じて異なる信号(図中では、「液面信号」と表記する。)を出力する。本実施形態では、タンク本体101の第2貯留室105の液面が境界位置B以上であれば、液面センサ155は、ローレベル信号を出力する。タンク本体101の第2貯留室105の液面が境界位置B未満であれば、液面センサ155は、ハイレベル信号を出力する。ローレベル信号が第1信号の一例である。ハイレベル信号が第2信号の一例である。
[ジョイント102]
図4から図9、図11に示されるように、ジョイント102は、ジョイント本体118、内壁119、栓部材120(図6、図7参照)、及びバネ121(図6、図7参照)を備えている。
[ジョイント本体118]
図7に示されるように、ジョイント本体118は、ジョイント本体118は、後端部に位置する外筒部122と、前端部に位置する先端部123と、外筒部122及び先端部123を接続する本体部124と、を備えている。外筒部122は、円筒形状を有しており、前後方向8に延びている。外筒部122は、タンク本体101の内筒部114に嵌め込まれている。これにより、ジョイント本体118がタンク本体101に固定されている。先端部123は、前後方向8の軸を軸芯とする円板形状を有している。本体部124は、円筒形状を有しており、前後方向8に延びている。本体部124の前端部には、上方及び下方にそれぞれ開口する上開口部125及び下開口部126が形成されている。
[仕切壁127及び第2リブ128]
図7、図8に示されるように、内壁119は、ジョイント本体118の内部に位置している。内壁119は、先端部123から後方に外筒部122を超えて延びている。内壁119は、仕切壁127と、第2リブ128とを備えている。図8に示されるように、内壁119は、前後方向8から視てT字形状を有している。仕切壁127の後端面は、タンク本体101内の水平壁116の前端面に接触している。仕切壁127及び水平壁116により、ジョイント本体118とタンク本体101との接続部分の内部空間が、液体流路103及び気体流路104に区画されている。
仕切壁127は、ジョイント本体118の内部において左右方向9に拡がる壁である。仕切壁127は、先端部123から後方に延びている。ジョイント本体118の内部空間は、仕切壁127によって上部と下部とに区画されている。
第2リブ128は、仕切壁127の左右方向9の中央部から下方に突出している。第2リブ128は、先端部123から後方に延びている。第2リブ128とジョイント本体118の内面との間には隙間がある。
ジョイント102内における液体流路103の水平部分134は、ジョイント本体118の内面及び内壁119の下面によって形成されている。ジョイント102内における液体流路103の水平部分134の断面は、略半円形状である。より正確には、水平部分134の断面は、半円形状の上側部分が第2リブ128によって左右に分割されており、半円形状の下側部分が左右に分割されずに繋がっている。ジョイント102内における気体流路104の水平部分144は、ジョイント本体118の内面及び内壁119の上面によって形成されている。ジョイント102内における気体流路104の水平部分144の断面は、半円形状である。
[栓部材120及びバネ121]
栓部材120は、円筒状の部材であり、ジョイント本体118の本体部124の外側に位置している。栓部材120は、本体部124に沿って前後方向8に移動可能である。バネ121は、前端部が栓部材120の後端部に固定されており、後端部が大気連通部70のバッファタンク90及びジョイント本体118の外筒部122に当接している。バネ121は、栓部材120を前方に付勢する。外力が加えられない状態では、栓部材120は、ジョイント本体118の前端部に位置しており、上開口部125及び下開口部126を閉鎖している。バネ121の弾性力よりも大きな後向きの外力が栓部材120に加えられると、栓部材120は後方に移動して、上開口部125及び下開口部126が開放される。インクカートリッジ50の装着時には、栓部材120にインクカートリッジ50のジョイント受部52が当接する。インクカートリッジ50の装着時に加えられる外力により、ジョイント受部52に当接する栓部材120が後方に移動する。
[インクカートリッジ50の装着状態]
図5、図7に示されるように、インクカートリッジ50がサブタンク100に装着された装着状態では、サブタンク100のジョイント本体118が、前後方向8に沿ってインクカートリッジ50のジョイント受部52内に挿入され、さらに連通口61内に挿入されている。この装着状態では、インクカートリッジ50の第1貯留室53に、サブタンク100の液体流路103の第2開口132及び気体流路104の第4開口142が進入している。図4、図5に示されるように、インクカートリッジ50は、前後方向8に沿ってサブタンク100に分離及び装着可能である。
[インクカートリッジ50及びサブタンク100のレイアウト]
インクカートリッジ50及びサブタンク100のレイアウトが説明される。レイアウトは、インクカートリッジ50が装着ケース71に装着され、インクカートリッジ50及びサブタンク100が図5に示される使用姿勢であるとして説明がなされる。
図5に示されるように、インクカートリッジ50の凸部65は、上下方向7において、ジョイント102と略同じ位置にあるが、インクカートリッジ50の凸部65より上方の部分は、ジョイント102よりも上方にある。そのため、インクカートリッジ50の第1貯留室53の大部分は、第2開口132よりも上方に位置している。また、サブタンク100の上部、すなわち屈曲上壁130付近から上方の部分は、ジョイント102と略同じ位置にあるが、サブタンク100の屈曲上壁130付近より下方の部分は、ジョイント102よりも下方にある。そのため、サブタンク100の第2貯留室105の大部分は、第3開口141ジョイント102よりも下方にある。
第1貯留室53の凸部65より上方の部分は、液体流路103の水平部分134及び気体流路104の水平部分144よりも上方に位置している。第2貯留室105は、液体流路103の水平部分134及び気体流路104の水平部分144よりも下方に位置している。第1貯留室53の下側部分と、第2貯留室105の上側部分とは、前後方向8の同軸上に並んでいる。第1貯留室53の容積は、第2貯留室105の容積よりも大きい。
気体流路104の水平部分144は、液体流路103の水平部分134よりも上方に位置している。
図7に示されるように、第1貯留室53の連通口61から後方に向けて、液体流路103の第1開口131、気体流路104の第3開口141、及び大気連通口106が順に位置している。第1貯留室53の連通口61の上下方向7の位置が、第1貯留室53と液体流路103とが連通する上下方向7の位置に相当し、その上下方向7の位置において連通口61から後方に向かう方向が、第1貯留室53から遠ざかる方向である。
[大気連通部70]
図5、図11、図12に示されるように、大気連通部70は、バッファタンク90と、連通流路145と、大気連通路147と、を備えている。
[バッファタンク90]
図5、図11に示されるように、バッファタンク90は、装着ケース71の下方且つサブタンク100の上方に位置している。
図5、図11に示されるように、バッファタンク90は、上壁91、下壁92、2つの側壁93、3つの仕切壁94、後壁95、及び突出壁96を備えている。上壁91は、水平面に対して傾斜した面に沿って拡がる壁である。下壁92は、後方から水平面と平行に延びながら、前方に向かうにつれて上方に屈曲する壁である。下壁92の前端部は上壁91の前端部に接続している。2つの側壁93は、上壁91及び下壁92の左右方向9の両端部をそれぞれ上下方向7に接続する壁である。3つの仕切壁94は、2つの側壁93と左右方向9に並列に配置された壁である。後壁95は、上壁91及び下壁92の後端部を接続する壁である。突出壁96は、上壁91の後端部から上方に延びる壁である。後壁95と突出壁96との間には、前後方向8に隙間が形成されている。
バッファタンク90の上壁91の上方には、装着ケース71の下壁73が位置している。バッファタンク90の上壁91は、装着ケース71の下壁73を支持している。したがって、バッファタンク90の上壁91は、装着ケース71に収納されたインクカートリッジ50を、装着ケース71の下壁73を介して支持可能である。
[バッファ室97]
上壁91、下壁92、2つの側壁93、後壁95によって画定される内部空間は、3つの仕切壁94により4つのバッファ室97として区画されている。4つのバッファ室97は、それぞれ4つのサブタンク100に連通接続されている。4つのバッファ室97は、気液置換により第1貯留室53内のインクが第2貯留室105に供給されるに伴って第1貯留室53に送られる空気を、貯留可能な空間である。4つのバッファ室97は、記録部24よりも上方に位置している。
図5に示されるように、第1貯留室53の下方にバッファ室97が位置し、バッファ室97の下方に第2貯留室105が位置している。凸部65内に形成された第1貯留室53の一部及びバッファ室97の一部は、前後方向8(水平方向の一例)の同軸上に並んでいる。さらに、凸部65の一部、ジョイント102の一部、及びバッファタンク90の一部が、前後方向8(水平方向の一例)の同軸上に並んでいる。また、第1貯留室53の一部及びバッファ室97の一部は、上下方向7の同軸上に並んでいる。
[連通流路145]
図12(A)に示されるように、バッファタンク90の下壁92は、バッファ室97に連通する開口部98を有している。インク供給装置15は、タンク本体101の大気連通口106とバッファタンク90の開口部98とを接続する接続管99を備えている。接続管99は、円筒形状である。接続管99の内面によって、第2貯留室105とバッファ室97とを接続する連通流路145が形成されている。連通流路145は、上下方向7に延びている。
[大気連通路147]
図12(B)に示されるように、上壁91の後端部には、バッファ室97毎に開口部146が形成されている。上壁91は、突出壁96の後方に4つの開口部146を有している。上壁91の下面は、前後方向8(水平方向の一例)に沿って開口部98と反対(後方)に向かって上方に傾斜している。開口部146は、上壁91の下面が上下方向7の最も高い位置において、上壁91に開口している。ここで、後壁95の前面と突出壁96の後面とによって、上下方向7に延びる大気連通路147が形成されている。大気連通路147は、開口部146を介してバッファ室97から上方に延びており、複合機10の筐体14の外部に連通している。
[本実施形態の動作]
まず、空のサブタンク100にインクカートリッジ50が初めて装着された初期導入時におけるインク及び空気の流れが説明される。
図6に示される初期導入前の状態(前状態)では、インクカートリッジ50はサブタンク100から分離されている。前状態では、インクカートリッジ50の連通口61は栓部材62によって閉鎖されており、第1貯留室53がインクカートリッジ50によって密閉されている。そのため、第1貯留室53に満たされたインクは、外部に漏れることはない。一方、前状態では、サブタンク100の上開口部125及び下開口部126(図7参照)は、栓部材120によって閉鎖されている。そのため、第2貯留室105に連通する液体流路103の第2開口132及び気体流路104の第2開口が、外部に対して閉じられている。第2貯留室105は、液体流路103及び気体流路104の他に外部に連通する部位として、大気連通口106(図7参照)及び連通口129(図7参照)を有している。大気連通口106は、バッファ室97を介して複合機10の外気と連通している。連通口129は、インクチューブ32を介して記録ヘッド39に連通しているが、記録ヘッド39の休止状態ではインクは連通口129から流出することはない。ここで、第2貯留室105には、インクが満たされておらず、第2貯留室105は空の状態である。
図5、図7に示されるように、インクカートリッジ50がサブタンク100に装着されると、連通口61を閉鎖する栓部材62がバネ63の付勢力に逆らって前方に退避し、且つ、上開口部125及び下開口部126を閉鎖する栓部材120がバネ121の付勢力に逆らって後方に退避する。この結果、第1貯留室53が液体流路103及び気体流路104を介して第2貯留室105に連通する。そうすると、インクカートリッジ50の第1貯留室53内のインクが、液体流路103を介して自然落下して、サブタンク100の第2貯留室105内に導入される。大気連通口106が外気に開放されているため、第2貯留室105内に導入されたインクの量と同じ体積の空気が、大気連通口106及び気体流路104を介して第1貯留室53に導入される。このように、第1貯留室53内のインクが空気に置換されること(気液置換)により、第1貯留室53内のインクが第2貯留室105に供給される。
気液置換の進行により、第2貯留室105のインクの液面は上昇する。インクの液面が上昇して鉛直壁115の下端位置に到達すると、気体流路104の第3開口141が閉じられる。そうすると、気液置換ができなくなるので、第1貯留室53から第2貯留室105へのインクの供給が停止される。このようにして、初期導入時におけるインクの供給が行われる。
次に、インクカートリッジ50の装着状態においてプリンタ部11による記録動作が実行された場合のインク及び空気の流れが説明される。
記録動作の実行時に記録ヘッド39からインクが吐出されると、第2貯留室105内のインクが連通口129から記録ヘッド39へと吸引される。インクの減少に伴って第2貯留室105内のインクの液面が下降するので、閉じられていた気体流路104の第3開口141が開放される。気体流路104の第3開口141が開放されると、上述したように、気液置換が実行されて、第1貯留室53から第2貯留室105にインクが供給される。記録ヘッド39でのインクの消費を補うように、第1貯留室53から第2貯留室105にインクが供給され、第2貯留室105内のインクの液面の高さは、気体流路104の第3開口141の位置に保たれる。
第1貯留室53内のインクが空になった場合、空になったインクカートリッジ50を、インクに満たされた別のインクカートリッジ50に交換することにより、複合機10は継続的に記録動作を実行できる。
[コントローラ230]
コントローラ230は、図6に示されるように、CPU231、ROM232、RAM233、EEPROM234、及びASIC235を備えている。ROM232には、CPU231が各種動作を制御するためのプログラムなどが格納されている。RAM233は、CPU231が上記プログラムを実行する際に用いるデータや信号等を一時的に記録する記憶領域、或いはデータ処理の作業領域として使用される。EEPROM234には、電源オフ後も保持すべき設定情報が格納される。ROM232、RAM233、及びEEPROM234は、装置メモリの一例である。
ASIC235は、給送ローラ25、搬送ローラ34、排出ローラ36、及び記録ヘッド39を動作させるためのものである。コントローラ230は、ASIC235を通じて不図示のモータを駆動させることによって、給送ローラ25、搬送ローラ34、及び排出ローラ36を回転させる。また、コントローラ230は、ASIC235を通じて記録ヘッド39の駆動素子に駆動信号を出力することによって、記録ヘッド39にノズル40を通じてインクを吐出させる。ASIC235は、ノズル40を通じて吐出すべきインクの量に応じて、複数種類の駆動信号を出力可能である。
また、ASIC235には、ディスプレイ17と、操作パネル22とが接続されている。
さらに、ASIC235には、接点152と、カバーセンサ88と、装着センサ154と、液面センサ155とが電気的に接続されている。コントローラ230は、装着ケース71に装着されたインクカートリッジ50のICチップ66のメモリに、接点152を通じてアクセスする。コントローラ230は、カバー48の位置をカバーセンサ88を通じて検出する。また、コントローラ230は、装着センサ154の検出信号に基づいて、装着ケース71に装着されたインクカートリッジ50を検出する。さらに、コントローラ230は、第2貯留室105内のインクの液面が境界位置B以上か否かを液面センサ155を通じて検出する。
EEPROM234は、装着ケース71に装着される4つのインクカートリッジ50それぞれに対応付けて、換言すれば、インクカートリッジ50と連通されるサブタンク100それぞれに対応付けて、各種情報を記憶している。各種情報とは、例えば、液体量の一例であるインク量Vc、Vsと、最大インク量Vc0と、高さHc、Hsと、流路抵抗Rnと、関数Fc、Fsと、C_Emptyフラグと、S_Emptyフラグと、カウント値Nと、容積Vthとを含む。
なお、最大インク量Vc0、インク量Vc、高さHc、及び関数Fcは、インクカートリッジ50が装着ケース71に装着された状態で、接点152を通じてICチップ66のメモリからコントローラ230によって読み出される情報である。また、流路抵抗Rn及び関数Fsは、EEPROM234に代えて、ROM232に記憶されていてもよい。
インク量Vcは、インクカートリッジ50の第1貯留室53に貯留されているインクの量を示す。インク量Vsは、サブタンク100の第2貯留室105に貯留されているインクの量を示す。インク量Vc、Vsは、例えば、後述する式3、4によって算出される。
高さHcは、インクカートリッジ50に貯留されているインクの液面と基準位置との上下方向の高さを示す。一例として、基準位置は、仮想線Lと同じ位置である。また、基準位置は、境界位置Bと同じ位置でもよい。高さHsは、サブタンク100に貯留されているインクの液面と第2貯留室105の底面との上下方向の高さを示す。高さHc、Hsは、例えば、式5、6によって算出される。
流路抵抗Rnは、液体流路103の内部空間を通過するインクが受ける抵抗の大きさを示す。
関数Fcは、インク量Vc及び高さHcの対応関係を示す情報である。インクカートリッジ50の第1貯留室53の水平断面積Dcが上下方向7において変化する場合、関数Fcは、インク量Vc及び高さHcを変数として、インクカートリッジ50の設計時に予め決定される。一方、上下方向7における水平断面積Dcが一定の場合、関数Fc=Vc/Dcとなる。第1対応情報は、関数の形式に限定されず、対応するインク量Vc及び高さHcの複数のセットを含むテーブルの形式であってもよい。
関数Fsは、インク量Vs及び高さHsの対応関係を示す情報である。サブタンク100の第2貯留室105の水平断面積Dsが上下方向7において変化する場合、関数Fsは、インク量Vs及び高さHsを変数として、サブタンク100の設計時に予め決定される。一方、上下方向7における水平断面積Dsが一定の場合、関数Fs=Vs/Dsとなる。なお、第2対応情報は、関数の形式に限定されず、対応するインク量Vc及び高さHcの複数のセットを含むテーブルの形式であってもよい。
カウント値Nは、液面センサ155から出力される信号がローレベル信号からハイレベル信号に変化した後に、記録ヘッド39に排出を指示したインク排出量Dh(すなわち、駆動信号で示されるインク量)に相当する値で、閾値Nthに近づく向きに更新される値である。カウント値Nは、初期値を“0”としてカウントアップされる値である。また、閾値Nthは、連通口129の直上と境界位置Bとの間の第2貯留室105の容積に相当する。但し、カウント値Nは、この容積に相当する値を初期値として、カウントダウンされる値でもよい。この場合の閾値Nthは、0となる。
インクカートリッジ50の第1貯留室53内にサブタンク100へ流出可能なインクがあるとき、サブタンク100の第2貯留室105内のインクの液面は、気体流路104の第3開口141を含む仮想線Lの位置となる。この状態が平衡状態と称される。つまり、平衡状態では、第1貯留室53と第2貯留室105との間でのインクの移動が停止する。平衡状態におけるインク量Vsは、第2貯留室105の仮想線Lから下方の容積Vthである。
C_Emptyフラグは、インクカートリッジ50がカートリッジエンプティ状態か否かを示す情報である。C_Emptyフラグには、カートリッジエンプティ状態であることに対応する値“ON”、或いはカートリッジエンプティ状態でないことに対応する値“OFF”が設定される。カートリッジエンプティ状態とは、インクカートリッジ50(より詳細には、第1貯留室53)にインクが実質的に貯留されていない状態である。換言すれば、カートリッジエンプティ状態とは、連通された第1貯留室53から第2貯留室105にインクが移動しない状態である。この状態を液面センサ155で検出する場合、カートリッジエンプティ状態とは、当該インクカートリッジ50に連通されたサブタンク100の液面が境界位置B未満の状態である。
S_Emptyフラグは、サブタンク100がインクエンプティ状態か否かを示す情報である。S_Emptyフラグには、インクエンプティ状態であることに対応する値“ON”、或いはインクエンプティ状態でないことに対応する値“OFF”が設定される。インクエンプティ状態とは、例えば、サブタンク100(より詳細には、第2貯留室105)に貯留されたインクの液面が連通口129の直上の位置に達した状態である。換言すれば、インクエンプティ状態とは、カウント値Nが閾値Nth以上の状態である。インクエンプティ状態になった後に記録ヘッド39によるインクの吐出を継続すると、ノズル40内がインクで満たされず、空気が混入してしまう(所謂、エアイン)可能性がある。すなわち、インクエンプティ状態は、記録ヘッド39を通じたインクの排出を禁止しなければならない状態である。
[複合機10の動作]
図14~図17を参照して、本実施形態に係る複合機10の動作を説明する。図7~図17に示される各処理は、コントローラ230のCPU231によって実行される。なお、以下の各処理は、ROM232に記憶されているプログラムをCPU231が読み出して実行してもよいし、コントローラ230に搭載されたハードウェア回路によって実現されてもよい。また、以下の各処理の実行順序は、本発明の要旨を変更しない範囲で、適宜変更することができる。
[画像記録処理]
コントローラ230は、複合機10に記録指示が入力されたことに応じて、図14に示される画像記録処理を実行する。記録指示は、画像データで示される画像をシートに記録する記録処理を複合機10に実行させるための排出指示の一例である。記録指示の取得先は特に限定されないが、例えば、記録指示に対応するユーザ操作を操作パネル22を通じて受け付けてもよいし、不図示の通信インタフェースを通じて外部装置から受信してもよい。
まず、コントローラ230は、4つのS_Emptyフラグそれぞれの設定値を判断する(S11)。そして、コントローラ230は、4つのS_Emptyフラグの少なくとも1つに“ON”が設定されていると判断したことに応じて(S11:ON)、S_Empty報知画面をディスプレイ17に表示させる(S12)。S_Empty報知画面は、対応するサブタンク100がインクエンプティ状態になったことを、ユーザに報知するための画面である。S_Empty報知画面は、例えば、インクエンプティ状態のサブタンク100に貯留されているインクの色及びインク量Vc、Vsを示す情報を含んでもよい。なお、ステップS12において、コントローラ230は、4つのC_Emptyフラグの少なくとも1つに“ON”が設定されていると判断したことに応じて、C_Empty報知画面を、S_Empty報知画面と合わせてディスプレイ17に表示させてもよい。
また、コントローラ230は、“ON”が設定されたS_Emptyフラグに対応するインクカートリッジ50それぞれに対して、S13~S17の処理を実行する。すなわち、S13~S17の処理は、4つのインクカートリッジ50のうち、対応するS_Emptyフラグに“ON”が設定されたインクカートリッジ50それぞれに対して実行される。インクカートリッジ50毎のS13~S17の処理は共通するので、1つのインクカートリッジ50に対応するS13~S17の処理のみを説明する。
まず、コントローラ230は、装着センサ154が出力する信号を取得する(S13)。次に、コントローラ230は、装着センサ154から取得した信号がハイレベル信号及びローレベル信号のどちらであるかを判断する(S14)。そして、コントローラ230は、装着センサ154が出力する信号が、ローレベル信号からハイレベル信号に変化し、再びハイレベル信号からローレベル信号に変化するまで(S14:No)、所定の時間間隔でS13、S14の処理を繰り返し実行する。換言すれば、コントローラ230は、インクカートリッジ50が装着ケース71から抜き出され、新たにインクカートリッジ50が装着ケース71に装着されるまで、S13、S14の処理を繰り返し実行する。
そして、コントローラ230は、装着センサ154からローレベル信号を取得し、その後に装着センサ154からハイレベル信号を取得し、さらにその後に装着センサ154からローレベル信号を取得したことに応じて(S14:Yes)、時間の計測を開始するとともに、S15~S17の処理を実行する。まず、コントローラ230は、接点152を通じてICチップ66のメモリからCTG情報を読み出し、読み出したCTG情報をEEPROM234に記憶させる(S15)。
また、コントローラ230は、Empty報知解除処理を実行する(S16)。Empty報知解除処理は、ディスプレイ17に表示されたC_Empty報知画面及びS_Empty報知画面を消去する処理である。Empty報知解除処理の詳細は、図17を参照して後述する
また、コントローラ230は、Empty報知解除処理と並行して残量更新処理を実行する(S17)。残量更新処理は、EEPROM234に記憶されたインク量Vc、Vs及び高さHc、Hsを更新する処理である。残量更新処理の詳細は、図15を参照して後述する。また詳細は後述するが、コントローラ230は、Empty報知解除処理及び残量更新処理と並行して、或いはEmpty報知解除処理及び残量更新処理が終了したことに応じて、S11以降の処理を再び実行する。そして、コントローラ230は、4つのS_Emptyフラグの全てに“OFF”が設定されていることに応じて(S11:OFF)、現時点で4つの液面センサ155それぞれから出力されている信号を取得する(S18)。さらにS18において、コントローラ230は、液面センサ155から取得した信号がハイレベル信号及びローレベル信号のどちらかを示す情報を、RAM233に記憶させる(S18)。
そして、コントローラ230は、記録指示に含まれる画像データで示される画像をシートに記録する(S19)。より詳細には、コントローラ230は、給送トレイ20上のシートを給送ローラ25及び搬送ローラ34に搬送させ、記録ヘッド39にインクを吐出させ、画像が記録されたシートを排出ローラ36に排出トレイ21へ排出させる。すなわち、コントローラ230は、4つのS_Emptyフラグの全てに“OFF”が設定されているときに記録ヘッド39を通じたインクの排出を許可する。一方、コントローラ230は、4つのS_Emptyフラグの少なくとも1つに“ON”が設定されているときに記録ヘッド39を通じたインクの排出を禁止する。
次に、コントローラ230は、記録指示に従ってシートに画像を記録したことに応じて、現時点で4つの液面センサ155それぞれから出力されている信号を取得する(S20)。さらに、S18と同様に、コントローラ230は、液面センサ155から取得した信号がハイレベル信号及びローレベル信号のどちらかを示す情報を、RAM233に記憶させる(S20)。そして、コントローラ230は、カウント処理を実行する(S21)。カウント処理は、S18、S20で液面センサ155から取得した信号に基づいて、カウント値N、C_Emptyフラグ、及びS_Emptyフラグを更新する処理である。カウント処理の詳細は、図16を参照して後述する。
次に、コントローラ230は、記録指示で示された全ての画像をシートに記録するまで(S22:Yes)、S11~S21の処理を繰り返し実行する。そして、コントローラ230は、記録指示で示される全ての画像をシートに記録したことに応じて(S22:No)、4つのS_Emptyフラグそれぞれの設定値及び4つのC_Emptyフラグそれぞれの設定値を判断する(S23、S24)。
コントローラ230は、4つのS_Emptyフラグの少なくとも1つに“ON”が設定されていることに応じて(S23:ON)、S_Empty報知画面をディスプレイ17に表示させる(S25)。また、コントローラ230は、4つのS_Emptyフラグの全てに“OFF”が設定されており、且つ4つのC_Emptyフラグの少なくとも1つに“ON”が設定されていることに応じて(S23:OFF&S24:ON)、C_Empty報知画面をディスプレイ17に表示させる(S26)。S25、S26の処理は、報知機を作動させることの一例である。
S25で表示されるS_Empty報知画面は、S12と同様であってもよい。また、C_Empty報知画面は、”ON”が設定されたC_Emptyフラグに対応するインクカートリッジ50がカートリッジエンプティ状態になったことを、ユーザに報知するための画面である。C_Empty報知画面は、例えば、カートリッジエンプティ状態のインクカートリッジ50に貯留されているインクの色及びインク量Vc、Vsを示す情報を含んでもよい。一方、コントローラ230は、4つのS_Emptyフラグ及び4つのC_Emptyフラグの全てに“OFF”が設定されていることに応じて(S24:OFF)、S25、S26の処理を実行せずに、画像記録処理を終了する。
なお、排出指示の具体例は記録指示に限定されず、ノズル40のメンテナンスを指示するメンテナンス指示等であってもよい。コントローラ230は、例えばメンテナンス指示を取得したことに応じて、図14と同様の処理を実行する。メンテナンス指示を取得した場合の前述の処理との相違点は、以下の通りである。まず、コントローラ230は、S19において、不図示のメンテナンス機構を駆動させて、ノズル40を通じてインクを排出させる。また、コントローラ230は、カウント処理を実行した後にS22の処理を実行することなく、S23以降の処理を実行する。
[残量更新処理]
次に図15を参照して、S17でコントローラ230が実行する残量更新処理の詳細を説明する。なお、以下の説明では、図18(A)に示されるように、サブタンク100内にインクが貯留されていない状態の装着ケース71に、新品(すなわち、最大インク量Vc0のインクが貯留された)インクカートリッジ50が装着された場合を前提とする。また、残量更新処理は、S14で新たにインクカートリッジ50の装着を検出した時刻tk-1から期間Δtが経過した時刻tkに実行されるものとする。すなわち、この場合の期間Δt=tk-tk-1である。
コントローラ230は、流出量Qa、Qc、インク量Vc、Vs、及び高さHc、Hsを、下記の式1~式6を用いて算出する(S31、S32)。
まず、流出量Qaは、連通口129を通じて第2貯留室105から期間Δtの間に流出するインクの量を示す。S12~S17の実行時点で記録ヘッド39を通じてインクが排出されていないので、インク排出量Dh(tk-1)、Dh(tk)は、いずれも0となる。すなわち、コントローラ230は、式1を用いて、流出量Qa=0を算出する(S31)。
次に、流出量Qcは液体流路103を通じて、期間Δtの間に第1貯留室53から第2貯留室105に流出するインクの量を示す。コントローラ230は、EEPROM234に記憶された高さHcを、時刻tk-1における高さHc’として読み出す。また、コントローラ230は、粘度ρ、流路抵抗RnをEEPROM234から読み出す。そして、コントローラ230は、EEPROM234から読み出した情報と、重力加速度gと、を式2に代入して、流出量Qcを算出する(S31)。
流出量Qcは、式2で示されるように、高さHc’が大きいほど大きくなる。また、流出量Qcは、液体流路103の流路抵抗Rnが大きいほど小さくなる。
なお、第1貯留室53から第2貯留室105にインクが移動すると、気体流路104を通じて、第2貯留室105から第1貯留室53に空気が流入する。
次に、コントローラ230は、EEPROM234に記憶されたインク量Vcを、時刻tk-1におけるインク量Vc’として読み出す。そして、コントローラ230は、EEPROM234から読み出したインク量Vc’と、直前に算出した流出量Qcとを式3に代入して、時刻tkにおけるインク量Vcを算出する(S32)。すなわち、コントローラ230は、時刻tk-1におけるインク量Vc’から、期間Δtの間に第1貯留室53から第2貯留室105に流出したインクの流出量Qcを減じて、時刻tkにおけるインク量Vcを算出する。
またS32において、コントローラ230は、EEPROM234に記憶されたインク量Vsを、時刻tk-1におけるインク量Vs’として読み出す。そして、コントローラ230は、EEPROM234から読み出したインク量Vs’と、直前に算出した流出量Qa、Qcとを式4に代入して、時刻tkにおけるインク量Vsを算出する。すなわち、コントローラ230は、時刻tk-1におけるインク量Vs’に、期間Δtの間にサブタンク100から流出したインクの流出量Qaを減じ、且つ期間Δtの間に第1貯留室53から第2貯留室105に流出したインクの流出量Qcを加えて、時刻tkにおけるインク量Vsを算出する。
またS32において、コントローラ230は、EEPROM234に記憶された関数Fcを読み出す。そして、コントローラ230は、式5で示されるように直前に算出したインク量Vcを関数Fcに代入して、時刻tkにおける高さHcを特定する。さらにS32において、EEPROM234から関数Fsを読み出す。そして、コントローラ230は、式6で示されるように直前に算出したインク量Vsを関数Fsに代入して、時刻tkにおける高さHsを特定する(S32)。
次に、コントローラ230は、S32で算出したインク量Vc、Vs及び高さHc、Hs(残量情報)をEEPROM234に記憶させる(S33)。より詳細には、コントローラ230は、EEPROM234に記憶されているインク量Vc、Vs及び高さHc、Hsを、直前のS32で算出したインク量Vc、Vs及び高さHc、Hsで上書きする。また、コントローラ230は、S33で算出したインク量Vc及び高さHc(残量情報)を、接点152を通じてICチップ66のメモリに記憶させる(S34)。より詳細には、コントローラ230は、ICチップ66のメモリの第2領域に記憶されているインク量Vc及び高さHcを、直前のS33で算出したインク量Vc及び高さHcで上書きする。
なお、コントローラ230は、S34の処理に先立って、装着センサ154から出力されている信号を取得し、取得した信号がハイレベル信号かローレベル信号かを判断してもよい。そして、コントローラ230は、装着センサ154からハイレベル信号を取得したことに応じて、S35の処理を実行してもよい。一方、コントローラ230は、装着センサ154からローレベル信号を取得したことに応じて、S34の処理を実行せずに、S35以降の処理を実行してもよい。
次に、コントローラ230は、S32で算出したインク量Vsと、容積Vthとを比較する(S35)。図18(B)に示されるように、インク量Vsが容積Vthになると、サブタンク100の第2貯留室105における液面が仮想線Lに到達する。これにより、気体流路104の第3開口141がインクにより閉塞されて、第1貯留室53及び第2貯留室105の間においてインクが移動しない。第1貯留室53及び第2貯留室105の間において、実質的にインクが移動しない状態を、平衡状態とする。
次に、コントローラ230は、インク量Vsが容積Vth以上だと判断したことに応じて(S35:No)、装着センサ154が出力する信号を取得する(S36)。次に、コントローラ230は、装着センサ154から取得した信号がハイレベル信号及びローレベル信号のどちらであるかを判断する(S37)。そして、コントローラ230は、装着センサ154が出力する信号がローレベル信号からハイレベル信号に変化するまで(S37:Yes)、或いは直前にS31~S34の処理を実行してから期間Δtが経過するまで(S38:Yes)、期間Δtより短い所定の時間間隔でS36、S37の処理を繰り返し実行する。
次に、コントローラ230は、装着センサ154の出力が変化しないうちに期間Δtが経過したことに応じて(S37:No&S38:Yes)、S31以降の処理を再び実行する。換言すれば、コントローラ230は、直前にS31~S34の処理を実行してから期間Δtが経過するまでの間、次のS31~S34の処理の実行を待機する。S31~S38の処理が繰り返し実行されることによって、高さHsが仮想線Lに近づく。そして、コントローラ230は、インク量Vsが容積Vth以上だと判断したことに応じて(S35:Yes)、残量更新処理を終了する。すなわち、4つのインクカートリッジ50それぞれに対応する残量更新処理は、別々のタイミングで終了する可能性がある。
ここで、コントローラ230は、S38における期間Δtを可変にしてもよい。より詳細には、コントローラ230は、S38における期間Δtを、直前のS32で算出した高さHcが大きいほど短くし、直前のS32で算出した高さHcが小さいほど長くしてもよい。すなわち、コントローラ230は、繰り返し実行するS31~S34の処理の間隔(換言すれば、インク量Vc、Vs及び高さHc、Hsの更新間隔)を、高さHcが大きいほど短くし、高さHcが小さいほど長くしてもよい。
一方、コントローラ230は、期間Δtが経過する前に装着センサ154の出力がローレベル信号からハイレベル信号に変化したと判断したことに応じて(S38:No&S37:Yes)、S31~S38の処理に代えて、S39~S41の処理を実行する。装着センサ154の出力がローレベル信号からハイレベル信号に変化するのは、装着ケース71からインクカートリッジ50が抜かれたことに対応する。すなわち、S31~S34の処理は、装着ケース71にインクカートリッジ50が装着されている間に繰り返し実行され、装着ケース71からインクカートリッジ50が抜かれたことに応じて停止される。
そして、コントローラ230は、装着センサ154の出力が再びハイレベル信号からローレベル信号に変化するまで(S40:No)、装着センサ154が出力する信号を所定の時間間隔で繰り返し取得する(S39)。そして、コントローラ230は、装着センサ154の出力がハイレベル信号からローレベル信号に変化したことに応じて(S40:Yes)、S41の処理を実行すると共に、再びS31以降の処理を実行する。S36、S37、S39、S40,S41の処理は、図14のS13、S14、S15の処理に対応する。
一例として、コントローラ230は、S17で開始した残量更新処理が終了したことに応じて、S11以降の処理を実行してもよい。この場合は、図11(B)に示されるように、第2貯留室105の液面が仮想線Lに到達した状態で、記録ヘッド39を通じたインクの排出が開始される。他の例として、コントローラ230は、S17で開始した残量更新処理と並行して、S11以降の処理を実行してもよい。この場合は、第2貯留室105の液面が仮想線L未満の位置にある状態で、記録ヘッド39を通じたインクの排出が開始される。
[カウント処理]
次に図16を参照して、S21でコントローラ230が実行するカウント処理の詳細を説明する。なお、コントローラ230は、4つのインクカートリッジ50のそれぞれに対して、カウント処理を独立して実行する。インクカートリッジ50毎のカウント処理は共通するので、1つのインクカートリッジ50に対応するカウント処理のみを説明する。
まず、コントローラ230は、S18、S20でRAM233に記憶させた液面センサ155の信号を示す情報を比較する(S51)。すなわち、コントローラ230は、カウント処理(S21)を実行する直前のS19の処理を実行する前と後とで、4つの液面センサ155それぞれの信号が変化したか否かを判断する。
コントローラ230は、S18、S20でRAM233に記憶させた情報が共にローレベル信号を示す(すなわち、S19の処理の前後で液面センサ155の出力が変化していない)ことに応じて(S51:L→L)、残量更新処理を実行する(S52)。一方、S17で残量更新処理が開始され且つ平衡状態になる前にS19の処理が実行された場合は、S17で開始された残量更新処理が継続して実行されているので、S52で改めて残量更新処理を開始する必要がない。S52における残量更新処理は、流出量Qa≠0である点で前述の説明と相違する。以下、前述の説明との共通点の詳細な説明を省略し、相違点を中心に説明する。
まず、コントローラ230は、S19の開始時刻tk-1から終了時刻tkまでのインク排出量Dhを式1に代入して、流出量Qaを算出する(S32)。この場合の期間Δtは、1枚のシートに画像を記録するのに要する期間に相当する。また、この場合のインク排出量Dhは、1枚のシートに吐出されるべきインクの総排出量に相当する。すなわち、コントローラ230は、1枚のシートの画像記録を実行する度に、S31~S34の処理を実行すればよい。但し、期間Δt及びインク排出量Dhの具体例は、これらに限定されない。
他の例として、期間Δtは、1パス分の画像の記録を実行するのに要する期間に相当する。この場合において、時刻tk-1は、1パス分の画像の記録が開始される時刻である。また、時刻tkは、1パス分の画像の記録が終了した時刻である。また、インク排出量Dh(tk-1)は、S19の開始から時刻tk-1までに排出を指示したインク量に相当する。さらに、インク排出量Dh(tk)は、S19の開始から時刻tkまでに排出を指示したインク量に相当する。すなわち、コントローラ230は、1パス分の画像の記録が終了する度に、S31~S34の処理を実行してもよい。さらに他の例として、コントローラ230は、画像記録の区切りとは関係のない任意のタイミングで、S31~S34の処理を実行してもよい。
また、コントローラ230は、EEPROM234に記憶された高さHc’、粘度ρ、及び流路抵抗Rnを式2に代入して、流出量Qcを算出する(S32)。
図16に戻って、コントローラ230は、S18でRAM233に記憶させた情報がローレベル信号を示し、S20でRAM233に記憶させた情報がハイレベル信号を示す(すなわち、S19の処理の前後で液面センサ155の出力が変化した)ことに応じて(S51:L→H)、C_Emptyフラグに“ON”を代入する(S53)。液面センサ155の出力がローレベル信号からハイレベル信号に変化するのは、図19(A)に示されるように、S19の処理中に第2貯留室105の液面が境界位置Bに達したことに対応する。そして、これ以降は、インクカートリッジ50とサブタンク100との間でインクが移動しない。
また、コントローラ230は、EEPROM234に記憶されたインク量Vcを、予め定められた所定値(=0)で上書きする(S54)。同様に、コントローラ230は、EEPROM234に記憶されたインク量Vsを、予め定められた所定値(=容積Vth-インク排出量Dh)で上書きする(S54)。残量更新処理で算出されるインク量Vc、Vsは誤差を含むので、S31~S34の処理の繰り返し回数が増えるほど、インク量Vc、Vsに累積される誤差が大きくなる。そこで、コントローラ230は、液面センサ155の出力がローレベル信号からハイレベル信号に変化したタイミングで、インク量Vc、Vsに予め定められた値を代入して、累積した誤差をリセットする。
なお前述したように、インク排出量Dhは、直前のS19で1枚のシートに吐出されるインク量に相当する。一方、液面センサ155の出力が変化するのは、S19の処理の途中である。すなわち、S54で上書きされたインク量Vsは、液面センサ155の出力が変化した瞬間にサブタンク100に貯留されているインクの量とは僅かにズレを生じている。しかしながら、このズレは僅かなので、S54で上書きしたインク量Vsを、液面センサ155の出力が変化した時点のインク量Vsとして扱うものとする。
また、コントローラ230は、EEPROM234に記憶されたカウント値Nに、インク排出量Dhを代入する(S55)。すなわち、コントローラ230は、直前のS19で排出を指示したインク量に相当する値で、カウント値Nをカウントアップする。換言すれば、コントローラ230は、液面センサ155の出力がローレベル信号からハイレベル信号に変化したことに応じて、カウント値Nの更新を開始する。
次に、コントローラ230は、S55で更新したカウント値Nと、閾値Nthとを比較する(S56)。そして、コントローラ230は、S55で更新したカウント値Nが閾値Nth未満だと判断したことに応じて(S56:No)、S57の処理を実行せずに、カウント処理を終了する。一方、コントローラ230は、S55で更新したカウント値Nが閾値Nth以上だと判断したことに応じて(S56:Yes)、S_Emptyフラグに“ON”を代入する(S57)。そして、コントローラ230は、S_Emptyフラグに“ON”が設定されていることに応じて記録ヘッド39を通じたインクの排出を禁止して、カウント処理を終了する。
また、コントローラ230は、S18、S20でRAM233に記憶させた情報が共にハイレベル信号を示すことに応じて(S51:H→H)、EEPROM234に記憶されているカウント値Nを読み出す。そして、コントローラ230は、読み出したインク量Vsからインク排出量Dhを減算し、また、読み出したカウント値Nにインク排出量Dhを加算して、再びEEPROM234に記憶させる(S58)。次に、コントローラ230は、S58で更新したカウント値Nを用いて、前述したS56以降の処理を実行する。
すなわち、コントローラ230は、記録ヘッド39を通じてインクを排出させる度に、インクカートリッジ50毎にカウント処理を実行する。例えば、1つのインクカートリッジ50を対象として見ると、装着ケース71に装着されてからしばらくの間は残量更新処理が実行され(S51:L→L)、液面センサ155の出力が変化したタイミングでS53~S56の処理が1回だけ実行され(S51:L→H)、その後はサブタンク100内のインクがなくなるまでS58、S56の処理が実行されることになる(S51:H→H)。
[Empty解除処理]
次に図14、図17を参照して、S16でコントローラ230が実行するEmpty解除処理の詳細を説明する。なお、コントローラ230は、4つのインクカートリッジ50のそれぞれに対して、S13~S17の処理を、独立して実行する。インクカートリッジ50毎のEmpty解除処理は共通するので、1つのインクカートリッジ50に対応するEmpty解除処理のみを説明する。
カウント処理において、コントローラ230は、S55で更新したカウント値Nが閾値Nth以上だと判断したことに応じて(S56:Yes)、S_Emptyフラグに“ON”を代入し(S57)、記録ヘッド39を通じたインクの排出を禁止する。画像記録処理において、コントローラ230は、S_Emptyフラグに“ON”が設定されていると判断したことに応じて(S11:ON)、S_Empty報知画面をディスプレイ17に表示させる(S12)。
前述された状態(つまり、コントローラ230が記録ヘッド39を通じたインクの排出を禁止し且つS_Empty報知画面をディスプレイ17に表示させている状態)において、図19(B)に示されるように、インクカートリッジ50は、サブタンク100へインクが流出しない状態、すなわち、Vc=0である。また、サブタンク100は、インクの液面が境界位置Bより下方であって、連通口129の直上付近の位置に達している。したがって、ユーザは、エンプティになったインクカートリッジ50を新品の或いは十分にインクが貯留されているインクカートリッジ50に交換して、記録ヘッド39を通じたインクの排出の禁止が解除されなければ、画像記録を行うことができない。
ユーザがインクカートリッジ50を交換している過程において、コントローラ230は、装着センサ154からローレベル信号を取得し、その後に装着センサ154からハイレベル信号を取得し、さらにその後に装着センサ154からローレベル信号を取得する(S14:Yes)。具体的には、インクカートリッジ50が装着ケース71から抜去される過程では、コントローラ230は、装着センサ154からローレベル信号を取得し、その後に装着センサ154からハイレベル信号を取得する。次に、インクカートリッジ50が装着ケース71に挿入される過程では、装着センサ154からハイレベル信号を取得し、その後に装着センサ154からローレベル信号を取得する。そして、コントローラ230は、接点152を通じてICチップ66のメモリからCTG情報を読み出し、読み出したCTG情報をEEPROM234に記憶させる(S15)。
Empty解除処理において、まず、コントローラ230は、S15において、接点152を通じてICチップ66のメモリから読み出してEEPROM234に記憶させたCTG情報に基づいて、流出量Qcを算出する。流出量Qcの算出は、S31における算出と同様である。インクカートリッジ50が交換された直後において、記録ヘッド39を通じたインクの排出の禁止は解除されていないので、流出量Qa=0である。したがって、コントローラ230は、EEPROM234に記憶させた高さHc、粘度ρ、流路抵抗Rn、及び重力加速度gと、を式2に代入して、流出量Qcを算出する(S61)。
次に、コントローラ230は、S61で算出した流出量Qcと、閾値Qth1とを比較する(S62)。閾値Qth1は、例えば記録ヘッド39の、期間Δtにおいて記録ヘッド39を通じたインクの排出を指示可能なインクの排出量Dhの最大値に相当する値でもよい。これにより、仮に、記録ヘッド39を通じたインクの排出が許可されて、期間Δtにおける排出量Dhの最大値が画像記録において指示されたとしても、第2貯留室105に対する所謂エアインが防止される。閾値Qth1は、第1閾値の一例である。
そして、コントローラ230は、S61で算出した流出量Qcが閾値Qth1以上だと判断したことに応じて(S62:Yes)、S_Emptyフラグ及びC_Emptyフラグにそれぞれ“OFF”を代入する(S63)。また、コントローラ230は、EEPROM234に記憶されているカウント値Nを、EEPROM234の別の記憶領域又はICチップ66のメモリに記憶させ、現在のカウント値Nをリセットする(S63)。すなわち、コントローラ230は、カウント値Nを”0”に更新する。そして、コントローラ230は、4つのS_Emptyフラグの全てに“OFF”が設定されていることに応じて、記録ヘッド39を通じたインクの排出を許可する。そして、コントローラ230は、S_Empty報知画面及びC_Empty報知画面をディスプレイ17から消去する(S64)。
続いて、コントローラ230は、装着センサ154からローレベル信号を取得し、その後に装着センサ154からハイレベル信号を取得し、さらにその後に装着センサ154からローレベル信号を取得した後(S14)に経過した時間と、時間T2とを比較する(S66)。例えば、時間T2は、図18(B)に示されるように、第2貯留室105内のインクの液面が、連通口129の直上付近の位置にある状態から、交換されたインクカートリッジ50からサブタンク100へインクが流出することによって、仮想線Lに到達するのに必要な時間である。また、例えば、時間T2は、第1貯留室53内に容積Vthに相当するインクが貯留されているときに、容積Vthに相当するすべてのインクが第2貯留室105へ流出するために要する時間であってもよい。また、例えば、時間T2は、算出された流出量Qcに基づいて、容積Vthに相当するインク量が第2貯留室105に流入するために要する時間として可変に算出されてもよい。
そして、コントローラ230は、液面センサ155の信号を取得する(S65)。図18(B)に示されるように、第1貯留室53から第2貯留室105へインクが流入して、第2貯留室105におけるインクの液面が仮想線Lに到達したとする。この過程において、液面センサ155の出力が、ハイレベル信号からローレベル信号に変化する。コントローラ230は、液面センサ155からローレベル信号を取得したことに応じて(S65:Yes)、Empty解除処理を終了する。
また、コントローラ230は、液面センサ155からローレベル信号を取得していないことに応じて(S65:No)、経過した時間が時間T2を超えているか否かを判定する(S66)。コントローラ230は、経過した時間が時間T2を超えていないと判定したことに応じて(S66:No)、S65へ戻る。
コントローラ230は、経過した時間が時間T2を超えていると判定したことに応じて(S66:Yes)、S_Emptyフラグ及びC_Emptyフラグにそれぞれ“ON”を代入する(S67)。例えば、インクカートリッジ50のICチップ66のメモリに記憶されているインク量Vcと、実際に第1貯留室53に貯留されているインク量とが合致していないことが想定される。例えば、第1貯留室53に殆どインクが貯留されていない場合には、経過した時間が時間T2を超えても、液面センサ155の出力はローレベル信号のままである。そのような場合には、S_Emptyフラグ及びC_Emptyフラグが再び“ON”にされる。また、コントローラ230は、リセットしたカウント値Nを、EEPROM234又はICチップ66のメモリに記憶させていた元のカウント値Nに更新する(S67)。そして、コントローラ230は、ディスプレイ17にS_Empty報知画面及びC_Empty報知画面を表示して(S68)、Empty解除処理を終了する。
また、コントローラ230は、S61で算出した流出量Qcが閾値Qth1未満だと判断したことに応じて(S62:No)、S61で算出した流出量Qcと、閾値Qth2とを比較する(S69)。閾値Qth2は、閾値Qth1より小さい値である。閾値Qth2は、第2閾値の一例である。
そして、コントローラ230は、S61で算出した流出量Qcが閾値Qth2以上だと判断したことに応じて(S69:Yes)、時間T1を算出する(S70)。閾値Qth2は、閾値Qth1より小さい値である。仮に、記録ヘッド39を通じたインクの排出が許可されて、期間Δtにおける排出量Dhの最大値が画像記録において指示されると、第2貯留室105に対するエアインが生じ得る。時間T1は、第1貯留室53から第2貯留室105へインクが流出してインク量Vsが増加するための時間である。時間T1は、時間T1経過後に期間Δtにおける排出量Dhの最大値が画像記録において指示されても所謂エアインが生じない時間である。したがって、時間T1は、算出された流出量Qcが大きければ短くなり、算出された流出量Qcが小さければ長くなる。
続いて、コントローラ230は、装着センサ154からローレベル信号を取得し、その後に装着センサ154からハイレベル信号を取得し、さらにその後に装着センサ154からローレベル信号を取得した後(S14)に経過した時間と、時間T1とを比較する(S71)。そして、コントローラ230は、経過した時間が時間T1に到達したと判断したことに応じて(S71:Yes)、S63~S68の処理を実行する。また、コントローラ230は、経過した時間が時間T1に到達していないと判断したことに応じて(S71:No)、S71を繰り返す。
また、コントローラ230は、S61で算出した流出量Qcが閾値Qth2未満だと判断したことに応じて(S69:No)、液面センサ155の信号を取得する(S72)。流出量Qcが閾値Qth2未満であっても、第1貯留室53から第2貯留室105へインクが流入して、第2貯留室105内のインクの液面が境界位置Bに到達すると、液面センサ155の出力が、ハイレベル信号からローレベル信号に変化する。したがって、コントローラ230は、液面センサ155からローレベル信号を受信したことに応じて(S72:Yes)、S_Emptyフラグ及びC_Emptyフラグにそれぞれ“OFF”を代入する(S73)。また、コントローラ230は、EEPROM234に記憶されているカウント値Nをリセットする(S73)。すなわち、コントローラ230は、カウント値Nを”0”に更新する。そして、コントローラ230は、4つのS_Emptyフラグの全てに“OFF”が設定されていることに応じて、記録ヘッド39を通じたインクの排出を許可する。そして、コントローラ230は、S_Empty報知画面及びC_Empty報知画面をディスプレイ17から消去して(S74)、Empty解除処理を終了する。
また、コントローラ230は、液面センサ155からローレベル信号を受信していないことに応じて(S72:No)、S14の後の経過時間が、予め設定されたタイムアウト時間を経過したかを判定する(S75)。タイムアウト時間は、時間T1より長い時間が設定されている。コントローラ230は、S14の後の経過時間がタイムアウト時間を経過していないと判定したことに応じて(S75:No)、S72に戻る。コントローラ230は、S14の後の経過時間がタイムアウト時間を経過したと判定したことに応じて(S75:Yes)、Empty解除処理を終了する。
[第1実施形態の作用効果]
上述の説明によれば、複合機10は、S_Empty報知画面がディスプレイ17に表示された状態において、液面センサ155の出力が変化する前に、流出量Qcと閾値Qth1との比較に基づいて、S_Empty報知画面をディスプレイ17から消去することができる。
また、上述の説明によれば、複合機10は、S_Empty報知画面をディスプレイ17から消去されてから、排出量Dhの最大量のインクが吐出される画像記録が指示されたとしても、第2貯留室105においてエアインが生じることを抑制できる。これは、閾値Qth1が、記録ヘッド39から期間Δtにおける排出量Dhの最大量であるためである。
また、上述の説明によれば、複合機10は、S_Empty報知画面がディスプレイ17に表示された状態において、インクカートリッジ50の交換から時間T1を待機して、液面センサ155の出力が変化する前に、S_Empty報知画面をディスプレイ17から消去することができる。複合機10が、S_Empty報知画面をディスプレイ17から消去する条件は、S61で算出された流出量Qcが閾値Qth1未満であり且つ閾値Qth2以上である。また、時間T1が流出量Qcに応じて算出されることにより、時間T1を短縮することができる。
また、上述の説明によれば、複合機10は、液面センサ155の出力がハイレベル信号からローレベル信号となる前に、S_Empty報知画面をディスプレイ17から消去する。その後、インクカートリッジ50の交換から時間T2が経過しても、液面センサ155の出力が変化しないときには、S_Empty報知画面がディスプレイ17に表示される。これにより、複合機10は、仮にインクカートリッジ50のICチップ66のメモリに書き込まれた液体量Vcが正確でなく、第1貯留室53から第2貯留室105へインクが殆ど流出しないときには、S_Empty報知画面をディスプレイ17に再表示させることができる。また、同様に、複合機10は、インクカートリッジ50の交換後に、第1貯留室53から第2貯留室105へインクが殆ど流出しないときには、EEPROM234又ICチップ66に記憶させたリセット前のカウント値Nを復帰することができる。
また、上述の説明によれば、複合機10は、S61で算出された流出量Qcが閾値Qth2未満であるときには、液面センサ155の出力が変化したことに基づいて、S_Empty報知画面をディスプレイ17から消去することができる。
また、上述の説明によれば、複合機10は、S_Empty報知画面がディスプレイ17に表示されると共に、記録ヘッド39からのインクの排出が禁止されるので、第2貯留室105サブタンク100に対するエアインが生ずることを抑制できる。
また、上述の説明によれば、複合機10は、記録ヘッド39にインクを排出させたことに伴って第2貯留室105の液面の高さが仮想線Lより下降したとしても、式1~式4に従ってインク量Vc、Vsを個別に算出することができる。また、複合機10は、式2で高さHcを考慮して流出量Qcを算出するので、流出量Qcを適切に算出することができる。その結果、インク量Vc、Vsを適切に算出することができる。
また、上述の説明によれば、装着ケース71にインクカートリッジ50が装着された時点から平衡状態になるまでの期間中において、複合機10は、式1~式4に従って、インク量Vc、Vsを個別に算出することができる。但し、装着ケース71からインクカートリッジ50が抜かれるとインクの移動もなくなるので、複合機10は、装着センサ154からハイレベル信号が出力されたことに応じて、インク量Vsが容積Vth未満か否かに拘わらず、S31~S34の処理を停止するのが望ましい。
また、上述の説明によれば、複合機10は、期間Δtが経過する度にS31~S34の処理を繰り返し実行する。その結果、平衡状態になるまでの期間中において、複合機10は、インク量Vc、Vsをリアルタイムに把握することができる。なお、流出量Qcは、高さHcが大きいほど大きくなり、高さHcが小さいほど小さくなる。そこで上述の説明のように、高さHcに応じてS31~S34の実行頻度を変更することによって、リアルタイムなインク量Vc、Vsの把握と、コントローラ230の処理負荷の軽減とを両立させることができる。
また、上述の説明によれば、複合機10は、装着ケース71にインクカートリッジ50が装着されたタイミングで、最大インク量Vc0、粘度ρ、関数Fcを、ICチップ66のメモリから読み出す。そして、複合機10は、読み出した最大インク量Vc0、粘度ρ、関数Fcを用いて、流出量Qa、Qc、インク量Vc、Vs、及び高さHc、Hsを算出する。これにより、複合機10は、CTG情報がインクカートリッジ50毎に異なる場合であっても、S32、S33で適切な値を算出することができる。
また、上述の説明によれば、複合機10は、S32で算出したインク量Vc及び高さHcをICチップ66のメモリに書き込む。これにより、装着ケース71から抜かれたインクカートリッジ50が他の複合機10に装着された場合において、当該他の複合機10がインクカートリッジ50に貯留されたインクの量を適切に把握することができる。但し、装着ケース71からインクカートリッジ50が抜かれるのは、カバー48が開放位置に配置されている場合だけである。そこで上述の説明のように、複合機10は、装着センサ154からハイレベル信号が出力されている場合にのみICチップ66のメモリのインク量Vc及び高さHcを更新する。これによって、ICチップ66のメモリへのアクセス回数を削減することができる。
[第1実施形態の変形例]
第1実施形態では、複合機10は、第2貯留室105におけるインクの液面が境界位置Bに到達したときにC_Empty報知画面が報知されるように構成されている。しかし、これに限らない。例えば、複合機10は、第2貯留室105におけるインクの液面が境界位置Bより上方、例えば仮想線L付近に到達したときにC_Empty報知画面が報知するように構成されてもよい。
また、第1実施形態では、液体流路103の第1開口131が境界位置Bより上方であるが、第1開口131は、境界位置Bより下方であって第2貯留室105の底面付近にあってもよい。この場合、第1貯留室53に貯留されたインクと、第2貯留室105に貯留されたインクとが液体流路103によって連続する。したがって、流量Qcは、第1貯留室53に貯留されたインクの液面と、第2貯留室105に貯留されたインクの液面との差、すなわち水頭差に基づいて算出される。すなわち、時刻tk-1における高さHc’と、高さHs’と基準位置(仮想線L)との差Hsl’の和、粘度ρ、流路抵抗Rn、及び重力加速度gに基づいて算出される。そして、流出量Qcは、高さHc’と差Hsl’の和が大きいほど大きくなる。また、流出量Qcは、液体流路103の流路抵抗Rnが大きいほど小さくなる。
また、第1実施形態の残量更新処理では、流量Qa,Qcが算出されているが、流量Qa,Qcは必ずしも算出されなくてもよい。この場合、コントローラ230は、装着ケース71にインクカートリッジ50が装着された時点から平衡状態になるまでの期間中において、インク量Vc、Vsを期間Δt毎に算出しない。例えば、図20に示されるように、コントローラ230は、S19で記録ヘッド39から排出されたインク排出量Dhを取得する(S81)。なお、S16の後の残量更新処理では、インク排出量Dh=0である。
そして、コントローラ230は、インク量Vc,Vsの合計値からインク排出量Dhを差し引いて、総量Vtを算出する(S82:Vt=(Vc+Vs)-Dh)。コントローラ230は、総量Vtが容積Vthより大きければ、インク量Vsを容積Vthとし、また、インク量Vcを、総量VtからVthを差し引いた値(Vc=Vt-Vth)とする。他方、コントローラ230は、総量Vtが容積Vthより小さければ、インク量Vcをゼロとし、インク量Vsを総量Vtとする。
次に、コントローラ230は、S82で決定したインク量Vc、VsをEEPROM234に記憶させる(S83)。また、コントローラ230は、S82で算出したインク量Vcを、接点152を通じてICチップ66のメモリに記憶させる(S84)。
[第2実施形態]
以下、第2実施形態が説明される。第2実施形態における複合機10の構成は、第1実施形態と同様なので、ここでは詳細な説明が省略される。また、複合機10の動作における、画像記録処理(図14)及び残量更新処理(図15)も第1実施形態と同様である。また、第2実施形態では、装着センサ154が出力するハイレベル信号は第1信号の一例であり、ローレベル信号は第2信号の一例である。また、第2実施形態では、液面センサ155が出力するローレベル信号が第3信号の一例であり、ハイレベル信号が第4信号の一例である。以下、第2実施形態のカウント処理及びエンプティ解除処理が説明される。
[カウント処理]
図21を参照して、図14のS21でコントローラ230が実行するカウント処理の詳細を説明する。なお、コントローラ230は、4つのインクカートリッジ50のそれぞれに対して、カウント処理を独立して実行する。インクカートリッジ50毎のカウント処理は共通するので、1つのインクカートリッジ50に対応するカウント処理のみを説明する。
まず、コントローラ230は、S18、S20でRAM233に記憶させた液面センサ155の信号を示す情報を比較する(S91)。すなわち、コントローラ230は、カウント処理(S21)を実行する直前のS19の処理を実行する前と後とで、4つの液面センサ155それぞれの信号が変化したか否かを判断する。
コントローラ230は、S18、S20でRAM233に記憶させた情報が共にローレベル信号を示す(すなわち、S19の処理の前後で液面センサ155の出力が変化していない)ことに応じて(S91:L→L)、残量更新処理を実行する(S92)。一方、S17で残量更新処理が開始され且つ平衡状態になる前にS19の処理が実行された場合は、S17で開始された残量更新処理が継続して実行されているので、S92で改めて残量更新処理を開始する必要がない。S92における残量更新処理は、第1実施形態と同様である。
コントローラ230は、S18でRAM233に記憶させた情報がローレベル信号を示し、S20でRAM233に記憶させた情報がハイレベル信号を示す(すなわち、S19の処理の前後で液面センサ155の出力が変化した)ことに応じて(S91:L→H)、C_Emptyフラグに“ON”を代入する(S93)。液面センサ155の出力がローレベル信号からハイレベル信号に変化するのは、S19の処理中に第2貯留室105の液面が境界位置Bに達したことに対応する。そして、これ以降は、インクカートリッジ50とサブタンク100との間でインクが移動しない。
また、コントローラ230は、EEPROM234に記憶されたインク量Vcを、予め定められた所定値(=0)で上書きする(S94)。同様に、コントローラ230は、EEPROM234に記憶されたインク量Vsを、予め定められた所定値(=容積Vth-インク排出量Dh)で上書きする(S94)。残量更新処理で算出されるインク量Vc、Vsは誤差を含むので、S31~S34の処理の繰り返し回数が増えるほど、インク量Vc、Vsに累積される誤差が大きくなる。そこで、コントローラ230は、液面センサ155の出力がローレベル信号からハイレベル信号に変化したタイミングで、インク量Vc、Vsに予め定められた値を代入して、累積した誤差をリセットする。
また、後述されるEmpty解除処理において、ディスプレイ17にインク量Vsが不定であることを示す記号「?」が表示されている場合には、コントローラ230は、インク量Vsを所定値に上書きしたことに応じて、ディスプレイ17から記号「?」の表示を消去する(S95)。
なお前述したように、インク排出量Dhは、直前のS19で1枚のシートに吐出されるインク量に相当する。一方、液面センサ155の出力が変化するのは、S19の処理の途中である。すなわち、S54で上書きされたインク量Vsは、液面センサ155の出力が変化した瞬間にサブタンク100に貯留されているインクの量とは僅かにズレを生じている。しかしながら、このズレは僅かなので、S94で上書きしたインク量Vsを、液面センサ155の出力が変化した時点のインク量Vsとして扱うものとする。
また、コントローラ230は、EEPROM234に記憶されたカウント値Nに、インク排出量Dhを代入する(S96)。すなわち、コントローラ230は、直前のS19で排出を指示したインク量に相当する値で、カウント値Nをカウントアップする。換言すれば、コントローラ230は、液面センサ155の出力がローレベル信号からハイレベル信号に変化したことに応じて、カウント値Nの更新を開始する。
次に、コントローラ230は、S96で更新したカウント値Nと、閾値Nthとを比較する(S97)。そして、コントローラ230は、S96で更新したカウント値Nが閾値Nth未満だと判断したことに応じて(S97:No)、S98の処理を実行せずに、カウント処理を終了する。
また、コントローラ230は、S18、S20でRAM233に記憶させた情報が共にハイレベル信号を示すことに応じて(S91:H→H)、EEPROM234に記憶されているカウント値Nを読み出す。そして、コントローラ230は、読み出したインク量Vsからインク排出量Dhを減算し、また、読み出したカウント値Nにインク排出量Dhを加算して、再びEEPROM234に記憶させる(S99)。次に、コントローラ230は、S99で更新したカウント値Nを用いて、前述したS97以降の処理を実行する。ここで、コントローラ230は、S99で更新したカウント値Nが閾値Nth以上だと判断したことに応じて(S97:Yes)、S_Emptyフラグに“ON”を代入する(S98)。そして、コントローラ230は、S_Emptyフラグに“ON”が設定されていることに応じて記録ヘッド39を通じたインクの排出を禁止して、カウント処理を終了する。
すなわち、コントローラ230は、記録ヘッド39を通じてインクを排出させる度に、インクカートリッジ50毎にカウント処理を実行する。例えば、1つのインクカートリッジ50を対象として見ると、装着ケース71に装着されてからしばらくの間は残量更新処理が実行され(S91:L→L)、液面センサ155の出力が変化したタイミングでS93~S97の処理が1回だけ実行され(S91:L→H)、その後はサブタンク100内のインクがなくなるまでS99、S97~S98の処理が実行されることになる(S91:H→H)。
[Empty解除処理]
次に図22を参照して、S16でコントローラ230が実行するEmpty解除処理の詳細を説明する。なお、コントローラ230は、4つのインクカートリッジ50のそれぞれに対して、S13~S17の処理を、独立して実行する。インクカートリッジ50毎のEmpty解除処理は共通するので、1つのインクカートリッジ50に対応するEmpty解除処理のみを説明する。
カウント処理において、コントローラ230は、S97で更新したカウント値Nが閾値Nth以上だと判断したことに応じて(S97:Yes)、S_Emptyフラグに“ON”を代入し(S98)、記録ヘッド39を通じたインクの排出を禁止する。画像記録処理において、コントローラ230は、S_Emptyフラグに“ON”が設定されていると判断したことに応じて(S11:ON)、S_Empty報知画面をディスプレイ17に表示させる(S12)。
前述された状態(つまり、コントローラ230が記録ヘッド39を通じたインクの排出を禁止し且つS_Empty報知画面をディスプレイ17に表示させている状態)において、図19(B)に示されるように、インクカートリッジ50は、サブタンク100へインクが流出しない状態、すなわち、Vc=0である。また、サブタンク100は、インクの液面が境界位置Bより下方であって、連通口129の上端付近の位置に達している。したがって、ユーザは、エンプティになったインクカートリッジ50を新品の或いは十分にインクが貯留されているインクカートリッジ50に交換して、記録ヘッド39を通じたインクの排出の禁止が解除されなければ、画像記録を行うことができない。
ユーザがインクカートリッジ50を交換している過程において、コントローラ230は、装着センサ154からローレベル信号を取得し、その後に装着センサ154からハイレベル信号を取得し、さらにその後に装着センサ154からローレベル信号を取得する(S14:Yes)。具体的には、インクカートリッジ50が装着ケース71から抜去される過程では、コントローラ230は、装着センサ154からローレベル信号を取得し、その後に装着センサ154からハイレベル信号を取得する。次に、インクカートリッジ50が装着ケース71に挿入される過程では、装着センサ154からハイレベル信号を取得し、その後に装着センサ154からローレベル信号を取得する。そして、コントローラ230は、接点152を通じてICチップ66のメモリからCTG情報を読み出し、読み出したCTG情報をEEPROM234に記憶させる(S15)。
Empty解除処理において、まず、コントローラ230は、S15において、接点152を通じてICチップ66のメモリから読み出してEEPROM234に記憶させたCTG情報に基づいて、流出量Vcsを算出する(S101)。流出量Vcsは、交換されたインクカートリッジ50の第1貯留室53からサブタンク100の第2貯留室105へインクが流出して、平衡状態になるまでに、第1貯留室53から第2貯留室105へ流出されるインクの総量である。
流出量Vcsは、例えば、次のように算出される。インクカートリッジ50が交換される前のインクカートリッジ50の第1貯留室53のインク量Vc、及びインクカートリッジ50が交換される前のサブタンク100の第2貯留室105のインク量Vsは、前述された式3及び式4からそれぞれ算出される。仮に、インクカートリッジ50が新品に交換されると、インクカートリッジ50のICチップ66のメモリから最大インク量Vc0が読み出される。
そして、容積Vthと、インクカートリッジ50が交換される直前の第2貯留室105のインク量Vsとの差が、インクカートリッジ50からサブタンク100へ流出する流出量Vcsである(Vcs=Vs-Vth)。
次に、コントローラ230は、S101で算出した流出量Vcsと、閾値Vthとを比較する(S102)。閾値Vthは、例えば容積Vthと同じ値でもよい。閾値Vthは、閾値の一例である。
そして、コントローラ230は、S101で算出した流出量Vcsが閾値Vth以上だと判断したことに応じて(S102:Yes)、S_Emptyフラグ及びC_Emptyフラグにそれぞれ“OFF”を代入する(S103)。また、コントローラ230は、EEPROM234に記憶されているカウント値Nを、EEPROM234の別の記憶領域又はICチップ66のメモリに記憶させ、現在のカウント値Nをリセットする(S103)。すなわち、コントローラ230は、カウント値Nを”0”に更新する。そして、コントローラ230は、4つのS_Emptyフラグの全てに“OFF”が設定されていることに応じて、記録ヘッド39を通じたインクの排出を許可する。そして、コントローラ230は、S_Empty報知画面及びC_Empty報知画面をディスプレイ17から消去する(S104)。
続いて、コントローラ230は、装着センサ154からローレベル信号を取得し、その後に装着センサ154からハイレベル信号を取得し、さらにその後に装着センサ154からローレベル信号を取得した後(S14)に経過した時間と、時間Tとを比較する(S105)。例えば、時間Tは、図19(B)に示されるように、第2貯留室105におけるインクの液面が、連通口129の上端付近の位置にある状態から、交換されたインクカートリッジ50からサブタンク100へインクが流出することによって、境界位置Bに到達するのに必要な時間である。また、例えば、時間Tは、第1貯留室53に容積Vthに相当するインクが貯留されているときに、容積Vthに相当するすべてのインクが第2貯留室105へ流出するために要する時間として設定されていてもよい。また、例えば、時間Tは、ICチップ66のメモリから読み出されたインク量Vcに基づいて、可変に算出されてもよい。時間Tは、待機時間の一例である。
そして、コントローラ230は、経過した時間が時間Tを超えていれば(S105:Yes)、液面センサ155の信号を取得する(S106)。図18(B)に示されるように、第1貯留室53から第2貯留室105へインクが流入して、第2貯留室105におけるインクの液面が仮想線Lに到達したとする。この過程において、液面センサ155の出力が、ハイレベル信号からローレベル信号に変化する。コントローラ230は、液面センサ155からローレベル信号を取得したことに応じて(S106:Yes)、Empty解除処理を終了する。
また、コントローラ230は、液面センサ155からローレベル信号を取得していないことに応じて(S106:No)、S_Emptyフラグ及びC_Emptyフラグにそれぞれ“ON”を代入する(S107)。例えば、インクカートリッジ50のICチップ66のメモリに記憶されているインク量Vcと、実際に第1貯留室53に貯留されているインク量とが合致していないとする。第1貯留室53に殆どインクが貯留されていない場合には、経過した時間が時間Tを超えても、液面センサ155の出力はローレベル信号のままである。そのような場合には、S_Emptyフラグ及びC_Emptyフラグが再び“ON”にされる。また、コントローラ230は、リセットしたカウント値Nを、EEPROM234又はICチップ66のメモリに記憶させていた元のカウント値Nに更新する(S107)。そして、コントローラ230は、ディスプレイ17にS_Empty報知画面及びC_Empty報知画面を表示する(S108)。また、コントローラ230は、ディスプレイ17に、インク量Vsが不定であることを表示する(S109)。インク量Vsが不定であることは、例えば、ディスプレイ17に表示されているインク量Vsを示す表示、例えば、数値やインデックスに記号「?」を付加することである。記号「?」は、第2報知の一例である。そして、コントローラ230は、Empty解除処理を終了する。
また、コントローラ230は、S101で算出した流出量Vcsが閾値Vth未満だと判断したことに応じて(S102:No)、ディスプレイ17に、インク量Vsが不定であることを表示する(S110)。すなわち、記号「?」を表示する。
続いて、コントローラ230は、装着センサ154からローレベル信号を取得し、その後に装着センサ154からハイレベル信号を取得し、さらにその後に装着センサ154からローレベル信号を取得した後(S14)に経過した時間と、時間Tとを比較する(S111)。そして、コントローラ230は、経過した時間が時間Tを超えたと判断したことに応じて(S111:Yes)、液面センサ155の信号を取得する(S112)。
流出量Vcsが閾値Vth未満であっても、第1貯留室53から第2貯留室105へインクが流入して、第2貯留室105におけるインクの液面が境界位置Bに到達すると、液面センサ155の出力が、ハイレベル信号からローレベル信号に変化する。したがって、コントローラ230は、液面センサ155からローレベル信号を受信したことに応じて(S112:Yes)、S_Emptyフラグ及びC_Emptyフラグにそれぞれ“OFF”を代入する(S113)。また、コントローラ230は、EEPROM234に記憶されているカウント値Nをリセットする(S113)。すなわち、コントローラ230は、カウント値Nを”0”に更新する。そして、コントローラ230は、4つのS_Emptyフラグの全てに“OFF”が設定されていることに応じて、記録ヘッド39を通じたインクの排出を許可する。そして、コントローラ230は、S_Empty報知画面及びC_Empty報知画面をディスプレイ17から消去して(S114)、Empty解除処理を終了する。
[第2実施形態の作用効果]
上述の説明によれば、複合機10は、インクカートリッジ50が交換されてから、ICチップ66に記憶されているインク量Vcに基づいて第1貯留室53から第2貯留室105へ流出する流出量Vcsを算出する。そして、複合機10は、算出した流出量Vcsが閾値Vth以上であることに応じて、C_Empty報知画面をディスプレイ17から消去する。これにより、液面センサ155の出力がハイレベル信号からローレベル信号になる前に、C_Empty報知画面をディスプレイ17から消去できる。
上述の説明によれば、複合機10は、C_Empty報知画面をディスプレイ17から消去しており、インクカートリッジ50が交換されてから経過した時間が時間Tを超えるかを判定する。そして、複合機10は、時間Tを超えるまでに、液面センサ155の出力が変化しないことに応じて、C_Empty報知画面をディスプレイ17に再表示する。これにより、ICチップ66のメモリに書き込まれたインク量Vcが正確でなく、第1貯留室53にインクが殆ど貯留されていない状態であり、第1貯留室53から第2貯留室105へインクが殆ど流出しないときには、C_Empty報知画面をディスプレイ17に再報知させることができる。
また、上述の説明によれば、複合機10は、時間Tを超えるまでに、液面センサ155の出力が変化しないことに応じて、インク量Vsが不定であることを示す記号「?」を表示する。これにより、インク量Vsが正確でないことをユーザに報知できる。
また、上述の説明によれば、複合機10は、液面センサ155の出力が変化したことに応じて、インク量Vc=0に更新し、またインク量Vs=Vth-Dhに更新する。これにより、算出されたインク量Vc及びインク量Vsが、実際に第1貯留室53及び第2貯留室105にそれぞれ貯留されたインクの各量に対して誤差を含むものであったり、インク量Vsが不定であったりしても、液面センサ155が出力する信号が変化したタイミングにおいて、誤差を含むインク量Vc及びインク量Vsを修正できる。
また、上述の説明によれば、複合機10は、記録ヘッド39にインクを排出させたことに伴って第2貯留室105の液面が仮想線Lより下降したとしても、式1~式4に従ってインク量Vc、Vsを個別に算出することができる。また、複合機10は、式2で高さHcを考慮して流出量Qcを算出するので、排出指示を取得した時点で平衡状態でない場合でも、流出量Qcを適切に算出することができる。その結果、インク量Vc、Vsを適切に算出することができる。
また、上述の説明によれば、装着ケース71にインクカートリッジ50が装着された時点で、第2貯留室105の液面が仮想線Lより下方であるとしても、平衡状態となるまでの期間中において、複合機10は、式1~式4に従ってインク量Vc、Vsを個別に算出することができる。但し、装着ケース71からインクカートリッジ50が抜かれるとインクの移動もなくなるので、複合機10は、装着センサ154からハイレベル信号が出力されたことに応じて、インク量Vsが容積Vth未満か否かに拘わらず、S31~S34の処理を停止するのが望ましい。
また、上述の説明によれば、複合機10は、期間Δtが経過する度にS31~S34の処理を繰り返し実行する。その結果、平衡状態となるまでの期間中において、複合機10は、インク量Vc、Vsをリアルタイムに把握することができる。なお、流出量Qcは、高さHcが大きいほど大きくなり、高さHcが小さいほど小さくなる。そこで上述の説明のように、高さHcに応じてS31~S34の実行頻度を変更することによって、リアルタイムなインク量Vc、Vsの把握と、コントローラ230の処理負荷の軽減とを両立させることができる。
また、上述の説明によれば、複合機10は、装着ケース71にインクカートリッジ50が装着されたタイミングで、最大インク量Vc0、粘度ρ、関数Fcを、ICチップ66のメモリから読み出す。そして、複合機10は、読み出した最大インク量Vc0、粘度ρ、関数Fcを用いて、流出量Qa、Qc、インク量Vc、Vs、及び高さHc、Hsを算出する。これにより、複合機10は、CTG情報がインクカートリッジ50毎に異なる場合であっても、S32、S33で適切な値を算出することができる。
また、上述の説明によれば、複合機10は、S32で算出したインク量Vc及び高さHcをICチップ66のメモリに書き込む。これにより、装着ケース71から抜かれたインクカートリッジ50が他の複合機10に装着された場合において、当該他の複合機10がインクカートリッジ50に貯留されたインクの量を適切に把握することができる。但し、装着ケース71からインクカートリッジ50が抜かれるのは、カバー87が露出位置に配置されている場合だけである。そこで上述の説明のように、複合機10は、装着センサ154からハイレベル信号が出力されている場合にのみICチップ66のメモリのインク量Vc及び高さHcを更新する。これによって、ICチップ66のメモリへのアクセス回数を削減することができる。
[第2実施形態の変形例]
上述の説明では、C_Emptyフラグが液面センサ155の出力に応じて更新されるが、サブタンク100には液面センサ155が設けられていなくてもよい。例えば、複合機10は、インクカートリッジ50の最大量Vc0からサブタンク100に最初に流入するインク量Vsが算出できる。したがって、複合機10は、そのインク量Vsから、記録ヘッド39が排出するインク量を排出量Dhをカウントダウンしてインク量Vsを更新する。そして、複合機10は、インク量Vsが閾値Vth未満になったことに応じて、C_Emptyフラグが”ON”に更新してもよい。
また、上述の説明では、S_Empty報知画面がディスプレイ17に表示され、記録ヘッド39を通じたインクの排出が禁止されている状態で、インクカートリッジ50が交換される態様が説明されている。しかし、これに限らない。例えば、S_Empty報知画面がディスプレイ17に表示されておらず、記録ヘッド39を通じたインクの排出が許可されている状態で、インクカートリッジ50が交換されても、前述と同様の作用効果が奏される。
また、上述の説明では、複合機10は、第2貯留室105におけるインクの液面が境界位置Bに到達したときにC_Empty報知画面が報知されるように構成されている。しかし、これに限らない。例えば、複合機10は、第2貯留室105におけるインクの液面が境界位置Bより上方、例えば仮想線L付近に到達したときにC_Empty報知画面が報知するように構成されてもよい。
また、第2実施形態では、液体流路103の第1開口131が境界位置Bより上方であるが、第1開口131は、境界位置Bより下方であって第2貯留室105の底面付近にあってもよい。この場合、第1貯留室53に貯留されたインクと、第2貯留室105に貯留されたインクとが液体流路103によって連続する。したがって、流量Qcは、第1貯留室53に貯留されたインクの液面と、第2貯留室105に貯留されたインクの液面との差、すなわち水頭差に基づいて算出される。すなわち、時刻tk-1における高さHc’と、高さHs’と基準位置(仮想線L)との差Hsl’の和、粘度ρ、流路抵抗Rn、及び重力加速度gに基づいて算出される。そして、流出量Qcは、高さHc’と差Hsl’の和が大きいほど大きくなる。また、流出量Qcは、液体流路103の流路抵抗Rnが大きいほど小さくなる。
また、第2実施形態の残量更新処理では、流量Qa,Qcが算出されているが、流量Qa,Qcは必ずしも算出されなくてもよい。この場合、コントローラ230は、装着ケース71にインクカートリッジ50が装着された時点から平衡状態になるまでの期間中において、インク量Vc、Vsを期間Δt毎に算出しない。例えば、図20と同様の残量更新処理が実行されてもよい。
[第3実施形態]
以下、第3実施形態が説明される。第3実施形態における複合機10の構成は、第1実施形態と同様なので、ここでは詳細な説明が省略される。また、複合機10の動作における、画像記録処理(図14)及び残量更新処理(図15)も第1実施形態と同様である。また、カウント処理(図21)は第2実施形態と同様である。以下、第3実施形態のエンプティ解除処理が説明される。
[Empty解除処理]
図23を参照して、S16でコントローラ230が実行するEmpty解除処理の詳細を説明する。なお、コントローラ230は、4つのインクカートリッジ50のそれぞれに対して、S13~S17の処理を、独立して実行する。インクカートリッジ50毎のEmpty解除処理は共通するので、1つのインクカートリッジ50に対応するEmpty解除処理のみを説明する。
カウント処理において、コントローラ230は、S96で更新したカウント値Nが閾値Nth以上だと判断したことに応じて(S97:Yes)、S_Emptyフラグに“ON”を代入し(S98)、記録ヘッド39を通じたインクの排出を禁止する。画像記録処理において、コントローラ230は、S_Emptyフラグに“ON”が設定されていると判断したことに応じて(S11:ON)、S_Empty報知画面をディスプレイ17に表示させる(S12)。
前述された状態(つまり、コントローラ230が記録ヘッド39を通じたインクの排出を禁止し且つS_Empty報知画面をディスプレイ17に表示させている状態)において、図18(B)に示されるように、インクカートリッジ50は、サブタンク100へインクが流出しない状態、すなわち、Vc=0である。また、サブタンク100は、インクの液面が境界位置Bより下方であって、連通口129の上端付近の位置に達している。したがって、ユーザは、エンプティになったインクカートリッジ50を新品の或いは十分にインクが貯留されているインクカートリッジ50に交換して、記録ヘッド39を通じたインクの排出の禁止が解除されなければ、画像記録を行うことができない。
ユーザがインクカートリッジ50を交換している過程において、コントローラ230は、装着センサ154からローレベル信号を取得し、その後に装着センサ154からハイレベル信号を取得し、さらにその後に装着センサ154からローレベル信号を取得する(S14:Yes)。具体的には、インクカートリッジ50が装着ケース71から抜去される過程では、コントローラ230は、装着センサ154からローレベル信号を取得し、その後に装着センサ154からハイレベル信号を取得する。次に、インクカートリッジ50が装着ケース71に挿入される過程では、装着センサ154からハイレベル信号を取得し、その後に装着センサ154からローレベル信号を取得する。そして、コントローラ230は、接点152を通じてICチップ66のメモリからCTG情報を読み出し、読み出したCTG情報をEEPROM234に記憶させる(S15)。
Empty解除処理において、まず、コントローラ230は、S15において、接点152を通じてICチップ66のメモリから読み出してEEPROM234に記憶させたCTG情報に基づいて、流出量Vcsを算出する(S121)。流出量Vcsは、交換されたインクカートリッジ50の第1貯留室53からサブタンク100の第2貯留室105へインクが流出して、平衡状態になるまでに、第1貯留室53から第2貯留室105へ流出されるインクの総量である。
流出量Vcsは、例えば、次のように算出される。インクカートリッジ50が交換される前のインクカートリッジ50の第1貯留室53のインク量Vc、及びインクカートリッジ50が交換される前の第2貯留室105のインク量Vsは、前述された式3及び式4からそれぞれ算出される。仮に、インクカートリッジ50が新品に交換されると、インクカートリッジ50のICチップ66のメモリから最大インク量Vc0が読み出される。
そして、容積Vthと、インクカートリッジ50が交換される直前の第2貯留室105のインク量Vsとの差が、インクカートリッジ50からサブタンク100へ流出する流出量Vcsである(Vcs=Vs-Vth)。
次に、コントローラ230は、S121で算出した流出量Vcsと、閾値Vthとを比較する(S122)。閾値Vthは、例えば容積Vthと同じ値でもよい。閾値Vthは、閾値の一例である。
そして、コントローラ230は、S121で算出した流出量Vcsが閾値Vth以上だと判断したことに応じて(S122:Yes)、S_Emptyフラグ及びC_Emptyフラグにそれぞれ“OFF”を代入する(S123)。また、コントローラ230は、EEPROM234に記憶されているカウント値Nを、EEPROM234の別の記憶領域又はICチップ66のメモリに記憶させ、現在のカウント値Nをリセットする(S123)。すなわち、コントローラ230は、カウント値Nを”0”に更新する。そして、コントローラ230は、4つのS_Emptyフラグの全てに“OFF”が設定されていることに応じて、記録ヘッド39を通じたインクの排出を許可する。そして、コントローラ230は、S_Empty報知画面及びC_Empty報知画面をディスプレイ17から消去する(S124)。また、コントローラ230は、ディスプレイ17に、カートリッジの再交換を促す再交換画面が表示されていれば、再交換画面をディスプレイ17から消去する(S124)。
続いて、コントローラ230は、装着センサ154からローレベル信号を取得し、その後に装着センサ154からハイレベル信号を取得し、さらにその後に装着センサ154からローレベル信号を取得した後(S14)に経過した時間と、時間Tとを比較する(S125)。例えば、時間Tは、図19(B)に示されるように、第2貯留室105におけるインクの液面が、連通口129の上端付近の位置にある状態から、交換されたインクカートリッジ50からサブタンク100へインクが流出することによって、境界位置Bに到達するのに必要な時間である。また、例えば、時間Tは、第1貯留室53に容積Vthに相当するインクが貯留されているときに、容積Vthに相当するすべてのインクが第2貯留室105へ流出するために要する時間として設定されていてもよい。また、例えば、時間Tは、ICチップ66のメモリから読み出されたインク量Vcに基づいて、可変に算出されてもよい。時間Tは、待機時間の一例である。
そして、コントローラ230は、経過した時間が時間Tを超えていれば(S125:Yes)、液面センサ155の信号を取得する(S126)。図18(B)に示されるように、第1貯留室53から第2貯留室105へインクが流入して、第2貯留室105におけるインクの液面が仮想線Lに到達したとする。この過程において、液面センサ155の出力が、ハイレベル信号からローレベル信号に変化する。コントローラ230は、液面センサ155からローレベル信号を取得したことに応じて(S126:Yes)、Empty解除処理を終了する。
また、コントローラ230は、液面センサ155からローレベル信号を取得していないことに応じて(S126:No)、S_Emptyフラグ及びC_Emptyフラグにそれぞれ“ON”を代入する(S127)。例えば、インクカートリッジ50のICチップ66のメモリに記憶されているインク量Vcと、実際に第1貯留室53に貯留されているインク量とが合致していないとする。第1貯留室53に殆どインクが貯留されていない場合には、経過した時間が時間Tを超えても、液面センサ155の出力はローレベル信号のままである。そのような場合には、S_Emptyフラグ及びC_Emptyフラグが再び“ON”にされる。また、コントローラ230は、リセットしたカウント値Nを、EEPROM234又はICチップ66のメモリに記憶させていた元のカウント値Nに更新する(S127)。そして、コントローラ230は、ディスプレイ17にS_Empty報知画面及びC_Empty報知画面を表示する(S128)。また、コントローラ230は、ディスプレイ17に、インク量Vsが不定であることを表示する(S129)。インク量Vsが不定であることは、例えば、ディスプレイ17に表示されているインク量Vsを示す表示、例えば、数値やインデックスに記号「?」を付加することである。記号「?」は、第2報知の一例である。そして、コントローラ230は、Empty解除処理を終了する。
また、コントローラ230は、S121で算出した流出量Vcsが閾値Vth未満だと判断したことに応じて(S122:No)、ディスプレイ17に、カートリッジの再交換を促す再交換画面を表示する(S130)。また、コントローラ230は、ディスプレイ17に、インク量Vsが不定であることを表示する(S131)。すなわち、記号「?」を表示する。
続いて、コントローラ230は、装着センサ154からローレベル信号を取得し、その後に装着センサ154からハイレベル信号を取得し、さらにその後に装着センサ154からローレベル信号を取得した後(S14)に経過した時間と、時間Tとを比較する(S131)。そして、コントローラ230は、経過した時間が時間Tを超えたと判断したことに応じて(S132:Yes)、液面センサ155の信号を取得する(S133)。
流出量Vcsが閾値Vth未満であっても、第1貯留室53から第2貯留室105へインクが流入して、第2貯留室105におけるインクの液面が境界位置Bに到達すると、液面センサ155の出力が、ハイレベル信号からローレベル信号に変化する。したがって、コントローラ230は、液面センサ155からローレベル信号を受信したことに応じて(S133:Yes)、S_Emptyフラグ及びC_Emptyフラグにそれぞれ“OFF”を代入する(S134)。また、コントローラ230は、EEPROM234に記憶されているカウント値Nをリセットする(S133)。すなわち、コントローラ230は、カウント値Nを”0”に更新する。そして、コントローラ230は、4つのS_Emptyフラグの全てに“OFF”が設定されていることに応じて、記録ヘッド39を通じたインクの排出を許可する。そして、コントローラ230は、S_Empty報知画面及びC_Empty報知画面をディスプレイ17から消去して(S135)、Empty解除処理を終了する。
[第3実施形態の作用効果]
上述の説明によれば、複合機10は、インクカートリッジ50が交換されてから、ICチップ66に記憶されているインク量Vcに基づいてインクカートリッジ50からサブタンク100へ流出する流出量Vcsを算出する。そして、複合機10は、算出した流出量Vcsが閾値Vth未満であることに応じて、インク量Vsが不定であることを示す記号「?」がディスプレイ17に表示する。これにより、インクカートリッジ50が交換されても、液面センサ155の出力が変化するに十分な量のインクがインクカートリッジ50からサブタンク100へ流出しないときには、インク量Vsが正確に算出されず不定であることをユーザに報知できる。また、複合機10は、算出した流出量Vcsが閾値Vth未満であることに応じて、カートリッジの再交換を促す再交換画面をディスプレイ17に表示する。これにより、インクカートリッジ50が交換されても、コントローラ230がサブタンク100のインクの液面が境界位置Bより高いと判定するに十分な量のインクがインクカートリッジ50からサブタンク100へ流出しないときには、カートリッジの再交換をユーザに報知できる。
また、上述の説明によれば、複合機10は、液面センサ155の出力がローレベル信号からハイレベル信号に変化したことに応じて、インク量Vc=0とし、且つインク量Vs=Vth-Dhに更新して、ディスプレイ17から記号「?」を消去する。仮に、算出されたインク量Vc及びインク量Vsが、実際にインクカートリッジ50及びサブタンク100にそれぞれ貯留されたインク量に対して誤差を含むものであったとする。しかし、複合機10は、液面センサ155の出力が変化したタイミングにおいて、誤差を含むインク量Vc及びインク量Vsを修正して、ディスプレイ17から記号「?」を消去する。
また、上述の説明によれば、複合機10は、インクカートリッジ50が交換されてからの経過時間が時間Tに到達するまでの間に、液面センサ155からローレベル信号を受信したことに応じて、コントローラ230がC_Empthy報知画面をディスプレイ17から消去する。仮に、交換されたインクカートリッジ50のICチップ66に書き込まれたインク量Vcが正確でなく、交換されたインクカートリッジ50に十分な量のインクが貯留されている状態であるとする。そのような場合には、複合機10は、インクカートリッジ50からサブタンク100へインクが流出して液面センサ155の出力が変化したことに応じて、C_Empty報知画面をディスプレイ17から消去する。
また、上述の説明によれば、複合機10は、記録ヘッド39にインクを排出させたことに伴って第2貯留室105の液面の高さが仮想線Lより下降したとしても、式1~式4に従ってインク量Vc、Vsを個別に算出することができる。また、複合機10は、式2で高さHcを考慮して流出量Qcを算出するので、排出指示を取得した時点で第2貯留室105の液面が仮想線Lより下方にある場合でも、流出量Qcを適切に算出することができる。その結果、インク量Vc、Vsを適切に算出することができる。
また、上述の説明によれば、装着ケース71にインクカートリッジ50が装着された時点で、第2貯留室105の液面の高さが仮想線Lより下方にあるとしても、第2貯留室105の液面が仮想線Lに到達するまでの期間中において、複合機10は、式1~式4に従ってインク量Vc、Vsを個別に算出することができる。但し、装着ケース71からインクカートリッジ50が抜かれるとインクの移動もなくなるので、複合機10は、装着センサ154からハイレベル信号が出力されたことに応じて、インク量Vsが容積Vth未満か否かに拘わらず、S31~S34の処理を停止するのが望ましい。
また、上述の説明によれば、複合機10は、期間Δtが経過する度にS31~S34の処理を繰り返し実行する。その結果、平衡状態となるまでの期間中において、複合機10は、インク量Vc、Vsをリアルタイムに把握することができる。なお、流出量Qcは、高さHcが大きいほど大きくなり、高さHcが小さいほど小さくなる。そこで上述の説明のように、高さHcに応じてS31~S34の実行頻度を変更することによって、リアルタイムなインク量Vc、Vsの把握と、コントローラ230の処理負荷の軽減とを両立させることができる。
また、上述の説明によれば、複合機10は、装着ケース71にインクカートリッジ50が装着されたタイミングで、最大インク量Vc0、粘度ρ、関数Fcを、ICチップ66のメモリから読み出す。そして、複合機10は、読み出した最大インク量Vc0、粘度ρ、関数Fcを用いて、流出量Qa、Qc、インク量Vc、Vs、及び高さHc、Hsを算出する。これにより、複合機10は、CTG情報がインクカートリッジ50毎に異なる場合であっても、S32、S33で適切な値を算出することができる。
また、上述の説明によれば、複合機10は、S32で算出したインク量Vc及び高さHcをICチップ66のメモリに書き込む。これにより、装着ケース71から抜かれたインクカートリッジ50が他の複合機10に装着された場合において、当該他の複合機10がインクカートリッジ50に貯留されたインクの量を適切に把握することができる。但し、装着ケース71からインクカートリッジ50が抜かれるのは、カバー87が露出位置に配置されている場合だけである。そこで上述の説明のように、複合機10は、装着センサ154からハイレベル信号が出力されている場合にのみICチップ66のメモリのインク量Vc及び高さHcを更新する。これによって、ICチップ66のメモリへのアクセス回数を削減することができる。
[第3実施形態の変形例]
上述の説明では、算出された流出量Vcsが閾値Vth未満であることに応じて、コントローラ230は、インク量Vsが不定であることを示す記号「?」、及びカートリッジの再交換を促す再交換画面をディスプレイ17に表示する。しかし、これに限らない。例えば、記号「?」及び再交換画面がともにディスプレイ17に表示される必要はなく、コントローラ230が、記号「?」及び再交換画面のいずれか一方のみをディスプレイ17に表示することとしてもよい。また、コントローラ230が再交換画面のみをディスプレイ17に表示する態様においては、サブタンク100には液面センサ155が設けられていなくてもよい。例えば、インクカートリッジ50の最大インク量Vc0からサブタンク100に最初に流入するインク量Vsが算出できる。複合機10は、そのインク量Vsから、記録ヘッド39が排出するインク量をインク排出量Dhをカウントダウンしてインク量Vsを更新し、インク量Vsが閾値Vth未満になったことに応じて、C_Emptyフラグを”ON”に更新しもよい。
また、上述の説明では、S_Empty報知画面がディスプレイ17に表示され、記録ヘッド39を通じたインクの排出が禁止されている状態で、インクカートリッジ50が交換される態様が説明されている。しかし、これに限らない。例えば、S_Empty報知画面がディスプレイ17に表示されておらず、記録ヘッド39を通じたインクの排出が許可されている状態で、インクカートリッジ50が交換されても、前述と同様の作用効果が奏される。
また、上述の説明では、複合機10は、第2貯留室105におけるインクの液面が境界位置Bに到達したときにC_Empty報知画面が報知されるように構成されている。しかし、これに限らない。例えば、複合機10は、第2貯留室105におけるインクの液面が境界位置Bより上方、例えば仮想線L付近に到達したときにC_Empty報知画面が報知するように構成されてもよい。
また、第3実施形態では、液体流路103の第1開口131が境界位置Bより上方であるが、第1開口131は、境界位置Bより下方であって第2貯留室105の底面付近にあってもよい。この場合、第1貯留室53に貯留されたインクと、第2貯留室105に貯留されたインクとが液体流路103によって連続する。したがって、流量Qcは、第1貯留室53に貯留されたインクの液面と、第2貯留室105に貯留されたインクの液面との差、すなわち水頭差に基づいて算出される。すなわち、時刻tk-1における高さHc’と、高さHs’と基準位置(仮想線L)との差Hsl’の和、粘度ρ、流路抵抗Rn、及び重力加速度gに基づいて算出される。そして、流出量Qcは、高さHc’と差Hsl’の和が大きいほど大きくなる。また、流出量Qcは、液体流路103の流路抵抗Rnが大きいほど小さくなる。
また、第3実施形態の残量更新処理では、流量Qa,Qcが算出されているが、流量Qa,Qcは必ずしも算出されなくてもよい。この場合、コントローラ230は、装着ケース71にインクカートリッジ50が装着された時点から平衡状態になるまでの期間中において、インク量Vc、Vsを期間Δt毎に算出しない。例えば、図20と同様の残量更新処理が実行されてもよい。
[第4実施形態]
以下、第4実施形態が説明される。第4実施形態における複合機10の構成は、第1実施形態と同様なので、ここでは詳細な説明が省略される。以下、第4実施形態に係る複合機10の動作が説明される。
[複合機10の動作]
図24~図26を参照して、第4実施形態に係る複合機10の動作を説明する。図24~図26に示される各処理は、コントローラ230のCPU231によって実行される。なお、以下の各処理は、ROM232に記憶されているプログラムをCPU231が読み出して実行してもよいし、コントローラ230に搭載されたハードウェア回路によって実現されてもよい。また、以下の各処理の実行順序は、本発明の要旨を変更しない範囲で、適宜変更することができる。
[画像記録処理]
コントローラ230は、複合機10に記録指示が入力されたことに応じて、図24に示される画像記録処理を実行する。記録指示は、画像データで示される画像をシートに記録する記録処理を複合機10に実行させるための排出指示の一例である。記録指示の取得先は特に限定されないが、例えば、記録指示に対応するユーザ操作を操作パネル22を通じて受け付けてもよいし、不図示の通信インタフェースを通じて外部装置から受信してもよい。なお、液面センサ155からローレベル信号が出力されている状態で取得した排出指示は第1排出指示の一例であり、液面センサ155からハイレベル信号が出力されている状態で取得した排出指示は第2排出指示の一例である。
まず、コントローラ230は、4つのS_Emptyフラグそれぞれの設定値を判断する(S141)。そして、コントローラ230は、4つのS_Emptyフラグの少なくとも1つに“ON”が設定されていると判断したことに応じて(S141:ON)、S_Empty報知画面をディスプレイ17に表示させる(S142)。S_Empty報知画面は、対応するサブタンク100がインクエンプティ状態になったことを、ユーザに報知するための画面である。S_Empty報知画面は、例えば、インクエンプティ状態のサブタンク100に貯留されているインクの色及びインク量Vc、Vsに関連する情報を含んでもよい。
また、コントローラ230は、“ON”が設定されたS_Emptyフラグに対応するインクカートリッジ50それぞれに対して、S143~S147の処理を実行する。すなわち、S143~S147の処理は、4つのインクカートリッジ50のうち、対応するS_Emptyフラグに“ON”が設定されたインクカートリッジ50それぞれに対して実行される。インクカートリッジ50毎のS143~S147の処理は共通するので、1つのインクカートリッジ50に対応するS143~S147の処理のみを説明する。
まず、コントローラ230は、装着センサ154が出力する信号を取得する(S143)。次に、コントローラ230は、装着センサ154から取得した信号がハイレベル信号及びローレベル信号のどちらであるかを判断する(S144)。そして、コントローラ230は、装着センサ154が出力する信号が、ローレベル信号からハイレベル信号に変化し、再びハイレベル信号からローレベル信号に変化するまで(S144:No)、所定の時間間隔でS143、S144の処理を繰り返し実行する。換言すれば、コントローラ230は、インクカートリッジ50が装着ケース71から抜き出され、新たにインクカートリッジ50が装着ケース71に装着されるまで、S143、S144の処理を繰り返し実行する。
そして、コントローラ230は、装着センサ154からローレベル信号を取得し、その後に装着センサ154からハイレベル信号を取得し、さらにその後に装着センサ154からローレベル信号を取得したことに応じて(S14:Yes)、S145~S147の処理を実行する。まず、コントローラ230は、接点152を通じてICチップ66のメモリからCTG情報を読み出し、読み出したCTG情報をEEPROM234に記憶させる(S145)。また、コントローラ230は、C_Emptyフラグに初期値“OFF”を代入し、S_Emptyフラグに初期値“OFF”を代入し、カウント値Nに初期値“0”を代入する(S146)。
さらに、コントローラ230は、残量更新処理を実行する(S147)。残量更新処理は、EEPROM234に記憶されたインク量Vc、Vs及び高さHc、Hsを更新する処理である。残量更新処理の詳細は、図25を参照して後述する。また詳細は後述するが、コントローラ230は、残量更新処理と並行して或いは残量更新処理が終了したことに応じて、S141以降の処理を再び実行する。そして、コントローラ230は、4つのS_Emptyフラグの全てに“OFF”が設定されていることに応じて(S141:OFF)、現時点で4つの液面センサ155それぞれから出力されている信号を取得する(S148)。さらにS148において、コントローラ230は、液面センサ155から取得した信号がハイレベル信号及びローレベル信号のどちらかを示す情報を、RAM233に記憶させる。
そして、コントローラ230は、記録指示に含まれる画像データで示される画像をシートに記録する(S149)。より詳細には、コントローラ230は、給送トレイ20上のシートを給送ローラ25及び搬送ローラ34に搬送させ、記録ヘッド39にインクを吐出させ、画像が記録されたシートを排出ローラ36に排出トレイ21へ排出させる。すなわち、コントローラ230は、4つのS_Emptyフラグの全てに“OFF”が設定されているときにインクの吐出を許可する。一方、コントローラ230は、4つのS_Emptyフラグの少なくとも1つに“ON”が設定されているときにインクの吐出を禁止する。
次に、コントローラ230は、記録指示に従ってシートに画像を記録したことに応じて、現時点で4つの液面センサ155それぞれから出力されている信号を取得する(S150)。S150において、S148と同様に、コントローラ230は、液面センサ155から取得した信号がハイレベル信号及びローレベル信号のどちらかを示す情報を、RAM233に記憶させる。そして、コントローラ230は、カウント処理を実行する(S151)。カウント処理は、S148、S150で液面センサ155から取得した信号に基づいて、カウント値N、C_Emptyフラグ、及びS_Emptyフラグを更新する処理である。カウント処理の詳細は、図26を参照して後述する。
次に、コントローラ230は、記録指示で示された全ての画像をシートに記録するまで(S152:Yes)、S141~S151の処理を繰り返し実行する。そして、コントローラ230は、記録指示で示される全ての画像をシートに記録したことに応じて(S152:No)、4つのS_Emptyフラグそれぞれの設定値及び4つのC_Emptyフラグそれぞれの設定値を判断する(S153、S154)。
コントローラ230は、4つのS_Emptyフラグの少なくとも1つに“ON”が設定されていることに応じて(S153:ON)、S_Empty報知画面をディスプレイ17に表示させる(S155)。また、コントローラ230は、4つのS_Emptyフラグの全てに“OFF”が設定されており、且つ4つのC_Emptyフラグの少なくとも1つに“ON”が設定されていることに応じて(S153:OFF&S24:ON)、C_Empty報知画面をディスプレイ17に表示させる(S156)。S155、S156の処理は、報知機を作動させることの一例である。
S155で表示されるS_Empty報知画面は、S142と同様であってもよい。また、C_Empty報知画面は、“ON”が設定されたC_Emptyフラグに対応するインクカートリッジ50がカートリッジエンプティ状態になったことを、ユーザに報知するための画面である。C_Empty報知画面は、例えば、カートリッジエンプティ状態のインクカートリッジ50に貯留されているインクの色及びインク量Vc、Vsに関連する情報を含んでもよい。一方、コントローラ230は、4つのS_Emptyフラグ及び4つのC_Emptyフラグの全てに“OFF”が設定されていることに応じて(S154:OFF)、S155、S156の処理を実行せずに、画像記録処理を終了する。
なお、排出指示の具体例は記録指示に限定されず、ノズル40のメンテナンスを指示するメンテナンス指示等であってもよい。コントローラ230は、例えばメンテナンス指示を取得したことに応じて、図24と同様の処理を実行する。メンテナンス指示を取得した場合の前述の処理との相違点は、以下の通りである。まず、コントローラ230は、S149において、不図示のメンテナンス機構を駆動させて、ノズル40を通じてインクを排出させる。また、コントローラ230は、カウント処理を実行した後にS152の処理を実行することなく、S153以降の処理を実行する。
[残量更新処理]
次に図25を参照して、S147でコントローラ230が実行する残量更新処理の詳細を説明する。なお、以下の説明では、図18(A)に示されるように、サブタンク100内にインクが貯留されていない状態の装着ケース71に、新品(すなわち、最大インク量Vc0のインクが貯留された)インクカートリッジ50が装着された場合を前提とする。また、残量更新処理は、S144で新たにインクカートリッジ50の装着を検出した時刻tk-1から期間Δtが経過した時刻tkに実行されるものとする。すなわち、この場合の期間Δt=tk-tk-1である。
まず、コントローラ230は、対応するC_Emptyフラグの設定値を判断する(S161)。S147で実行される残量更新処理の開始時点では、S146でC_Emptyフラグに“OFF”が設定されている。次に、コントローラ230は、C_Emptyフラグに“OFF”が設定されていると判断したことに応じて(S161:OFF)、流出量Qa、Qc、インク量Vc、Vs、及び高さHc、Hsを、下記の式1~式6を用いて算出する(S162、S163)。
まず、流出量Qaは、流出口174を通じて第1貯留室53から期間Δtの間に流出するインクの量を示す。S142~S147の実行時点で記録ヘッド39を通じてインクが排出されていないので、インク排出量Dh(tk-1)、Dh(tk)は、いずれも0となる。すなわち、コントローラ230は、式1を用いて、流出量Qa=0を算出する(S32)。
次に、流出量Qcは液体流路103を通じて、期間Δtの間に第1貯留室53から第2貯留室105に流出するインクの量を示す。コントローラ230は、EEPROM234に記憶された高さHcを、時刻tk-1における高さHc’として読み出す。また、コントローラ230は、粘度ρ、流路抵抗RnをEEPROM234から読み出す。そして、コントローラ230は、EEPROM234から読み出した情報と、重力加速度gと、を式2に代入して、流出量Qcを算出する(S31)。
流出量Qcは、式2で示されるように、高さHc’が大きいほど大きくなる。また、流出量Qcは、液体流路103の流路抵抗Rnが大きいほど小さくなる。
なお、第1貯留室53から第2貯留室105にインクが移動すると、気体流路104を通じて、第2貯留室105から第1貯留室53に空気が流入する。
次に、コントローラ230は、EEPROM234に記憶されたインク量Vcを、時刻tk-1におけるインク量Vc’として読み出す。そして、コントローラ230は、EEPROM234から読み出したインク量Vc’と、直前に算出した流出量Qcとを式3に代入して、時刻tkにおけるインク量Vcを算出する(S163)。すなわち、コントローラ230は、時刻tk-1におけるインク量Vc’から、期間Δtの間に第2貯留室105から第1貯留室53に流出したインクの流出量Qcを減じて、時刻tkにおけるインク量Vcを算出する。
またS163において、コントローラ230は、EEPROM234に記憶されたインク量Vsを、時刻tk-1におけるインク量Vs’として読み出す。そして、コントローラ230は、EEPROM234から読み出したインク量Vs’と、直前に算出した流出量Qa、Qcとを式4に代入して、時刻tkにおけるインク量Vsを算出する。すなわち、コントローラ230は、時刻tk-1におけるインク量Vs’に、期間Δtの間にサブタンク100から流出したインクの流出量Qaを減じ、且つ期間Δtの間に第2貯留室105から第1貯留室53に流出したインクの流出量Qcを加えて、時刻tkにおけるインク量Vsを算出する。
またS163において、コントローラ230は、EEPROM234に記憶された関数Fcを読み出す。そして、コントローラ230は、式5で示されるように直前に算出したインク量Vcを関数Fcに代入して、時刻tkにおける高さHcを特定する。さらにS162において、EEPROM234から関数Fsを読み出す。そして、コントローラ230は、式6で示されるように直前に算出したインク量Vsを関数Fsに代入して、時刻tkにおける高さHsを特定する(S162)。
次に、コントローラ230は、S163で算出したインク量Vc、Vs及び高さHc、HsをEEPROM234に記憶させる(S164)。より詳細には、コントローラ230は、EEPROM234に記憶されているインク量Vc、Vs及び高さHc、Hsを、直前のS163で算出したインク量Vc、Vs及び高さHc、Hsで上書きする。また、コントローラ230は、S163で算出したインク量Vc及び高さHcを、接点152を通じてICチップ66のメモリに記憶させる(S165)。より詳細には、コントローラ230は、ICチップ66のメモリの第2領域に記憶されているインク量Vc及び高さHcを、直前のS33で算出したインク量Vc及び高さHcで上書きする。
なお、コントローラ230は、S165の処理に先立って、装着センサ154から出力されている信号を取得し、取得した信号がハイレベル信号かローレベル信号かを判断してもよい。そして、コントローラ230は、装着センサ154からハイレベル信号を取得したことに応じて、S165の処理を実行してもよい。一方、コントローラ230は、装着センサ154からローレベル信号を取得したことに応じて、S165の処理を実行せずに、S166以降の処理を実行してもよい。
次に、コントローラ230は、S163で算出したインク量Vsと、容積Vth1とを比較する(S166)。図18(B)に示されるように、インク量Vsが容積Vth1になると、サブタンク100の第2貯留室105における液面が仮想線Lに到達する。これにより、気体流路104の第3開口141がインクにより閉塞されて、第1貯留室53及び第2貯留室105の間においてインクが移動しない。第1貯留室53及び第2貯留室105の間において、実質的にインクが移動しない状態を、平衡状態とする。
次に、コントローラ230は、インク量Vsが容積Vth1未満だと判断したことに応じて(S166:No)、装着センサ154が出力する信号を取得する(S167)。次に、コントローラ230は、装着センサ154から取得した信号がハイレベル信号及びローレベル信号のどちらであるかを判断する(S168)。そして、コントローラ230は、装着センサ154が出力する信号がローレベル信号からハイレベル信号に変化するまで(S168:No)、或いは直前にS162~S166の処理を実行してから期間Δtが経過するまで(S169:No)、期間Δtより短い所定の時間間隔でS167、S168の処理を繰り返し実行する。
次に、コントローラ230は、装着センサ154の出力が変化しないうちに期間Δtが経過したことに応じて(S168:No&S169:Yes)、S161以降の処理を再び実行する。換言すれば、コントローラ230は、直前にS162~S165の処理を実行してから期間Δtが経過するまでの間、次のS162~S165の処理の実行を待機する。S161~S169の処理が繰り返し実行されることによって、図18(B)に示されるように、高さHsが徐々に仮想線Lに近づく。そして、コントローラ230は、インク量Vsが容積Vth1以上だと判断したことに応じて(S166:Yes)、残量更新処理を終了する。すなわち、4つのインクカートリッジ50それぞれに対応する残量更新処理は、別々のタイミングで終了する可能性がある。
ここで、コントローラ230は、S169における期間Δtを可変にしてもよい。より詳細には、コントローラ230は、S169における期間Δtを、直前のS163で算出した高さHcが大きいほど短くし、直前のS163で算出した高さHcが小さいほど長くしてもよい。すなわち、コントローラ230は、繰り返し実行するS162~S165の処理の間隔(換言すれば、インク量Vc、Vs及び高さHc、Hsの更新間隔)を、高さHcが大きいほど短くし、高さHcが小さいほど長くしてもよい。
一方、コントローラ230は、期間Δtが経過する前に装着センサ154の出力がローレベル信号からハイレベル信号に変化したと判断したことに応じて(S169:No&S168:Yes)、S161~S169の処理に代えて、S170~S173の処理を実行する。装着センサ154の出力がローレベル信号からハイレベル信号に変化するのは、装着ケース71からインクカートリッジ50が抜かれたことに対応する。すなわち、S162~S165の処理は、装着ケース71にインクカートリッジ50が装着されている間に繰り返し実行され、装着ケース71からインクカートリッジ50が抜かれたことに応じて停止される。
そして、コントローラ230は、装着センサ154の出力が再びハイレベル信号からローレベル信号に変化するまで(S171:No)、装着センサ154が出力する信号を所定の時間間隔で繰り返し取得する(S170)。そして、コントローラ230は、装着センサ154の出力がハイレベル信号からローレベル信号に変化したことに応じて(S171:Yes)、S172~S173の処理を実行すると共に、再びS161以降の処理を実行する。S167、S168、S170、S171の処理は、図24のS143、S144の処理に対応する。また、S172、S173の処理は、図24のS145、S146の処理に対応する。
一例として、コントローラ230は、S147で開始した残量更新処理が終了したことに応じて、S141以降の処理を実行してもよい。この場合は、図18(B)に示されるように、第2液室105の液面が仮想線Lに到達した状態で、記録ヘッド39を通じたインクの排出が開始される。他の例として、コントローラ230は、S147で開始した残量更新処理と並行して、S141以降の処理を実行してもよい。この場合は、第2液室105の液面が仮想線Lより下降した状態で、記録ヘッド39を通じたインクの排出が開始される。
[カウント処理]
次に図26を参照して、S151でコントローラ230が実行するカウント処理の詳細を説明する。なお、コントローラ230は、4つのインクカートリッジ50のそれぞれに対して、カウント処理を独立して実行する。インクカートリッジ50毎のカウント処理は共通するので、1つのインクカートリッジ50に対応するカウント処理のみを説明する。
まず、コントローラ230は、S148、S150でRAM233に記憶させた液面センサ155の信号を示す情報を比較する(S181)。すなわち、コントローラ230は、カウント処理(S151)を実行する直前のS149の処理を実行する前と後とで、4つの液面センサ155それぞれの信号が変化したか否かを判断する。
コントローラ230は、S148、S150でRAM233に記憶させた情報が共にローレベル信号を示す(すなわち、S149の処理の前後で液面センサ155の出力が変化していない)ことに応じて(S181:L→L)、残量更新処理を実行する(S182)。一方、S147で残量更新処理が開始され且つ平衡状態になる前にS149の処理が実行された場合は、S147で開始された残量更新処理が継続して実行されているので、S182で改めて残量更新処理を開始する必要がない。S182における残量更新処理は、流出量Qa≠0である点で前述の説明と相違する。以下、前述の説明との共通点の詳細な説明を省略し、相違点を中心に説明する。
まず、コントローラ230は、S149の開始時刻tk-1から終了時刻tkまでのインク排出量Dhを式1に代入して、流出量Qaを算出する(S162)。この場合の期間Δtは、1枚のシートに画像を記録するのに要する期間に相当する。また、この場合のインク排出量Dhは、1枚のシートに吐出されるべきインクの総排出量に相当する。すなわち、コントローラ230は、1枚のシートへの画像の記録が終了する度に、S162~S165の処理を実行すればよい。但し、期間Δt及びインク排出量Dhの具体例は、これらに限定されない。
他の例として、期間Δtは、1パス分の画像の記録を実行するのに要する期間に相当する。この場合において、時刻tk-1は、1パス分の画像の記録が開始される時刻である。また、時刻tkは、1パス分の画像の記録が終了した時刻である。また、インク排出量Dh(tk-1)は、S149の開始から時刻tk-1までに排出を指示したインク量に相当する。さらに、インク排出量Dh(tk)は、S149の開始から時刻tkまでに排出を指示したインク量に相当する。すなわち、コントローラ230は、1パス分の画像の記録が終了する度に、S162~S165の処理を実行してもよい。さらに他の例として、コントローラ230は、画像記録の区切りとは関係のない任意のタイミングで、S162~S165の処理を実行してもよい。
また、コントローラ230は、EEPROM234に記憶された高さHc’、Hs’、粘度ρ、及び流路抵抗Rnと、直前に算出した流出量Qaとを式2に代入して、流出量Qcを算出する(S162)。
コントローラ230は、EEPROM234からインク量Vsを読み出し、読み出したインク量Vsと容積Vth2とを比較する(S163)。容積Vth2は、容積Vth1未満の閾値量の一例である。より詳細には、容積Vth2は、例えば、容積Vth1から吐出誤差と分注誤差の少なくとも一方或いは両方を減じた値である。吐出誤差とは、新品のインクカートリッジ50が装着ケース71に装着されてからインクエンプティ状態になるまでの間に、排出指示によって排出が指示されたインク量と、ノズル40を通じて実際に排出されたインク量との差の想定値である。分注誤差とは、新品のインクカートリッジ50の第1液室53に実際に貯留されているインク量と、ICチップ66のメモリに記憶されている最大インク量Vc0との差の想定値である。
そして、コントローラ230は、読み出したインク量Vsが容積Vth2未満だと判断したことに応じて(S183:Yes)、C_Emptyフラグに“ON”を代入し(S184)、更にS_Emptyフラグに“ON”を代入して(S189)、カウント処理を終了する。一方、コントローラ230は、読み出したインク量Vsが容積Vth2以上だと判断したことに応じて(S183:No)、S184、S189の処理を実行せずに、カウント処理を終了する。
また、コントローラ230は、S148でRAM233に記憶させた情報がローレベル信号を示し、S150でRAM233に記憶させた情報がハイレベル信号を示す(すなわち、S149の処理の前後で液面センサ155の出力が変化した)ことに応じて(S181:L→H)、C_Emptyフラグに“ON”を代入する(S185)。液面センサ155の出力がローレベル信号からハイレベル信号に変化するのは、図18(B)に示されるように、S149の処理中に第2貯留室105の液面が境界位置Bに達したことに対応する。そして、これ以降は、インクカートリッジ50とサブタンク100との間でインクが移動しない。そこで図25に示されるように、コントローラ230は、C_Emptyフラグに“ON”が設定されたことに応じて(S161:ON)、残量更新処理を終了する。
また、コントローラ230は、EEPROM234に記憶されたインク量Vcを、予め定められた所定値(=0)で上書きする(S186)。同様に、コントローラ230は、EEPROM234に記憶されたインク量Vsを、予め定められた所定値(=容積Vth1-インク排出量Dh)で上書きする(S186)。残量更新処理で算出されるインク量Vc、Vsは誤差を含むので、1632~S165の処理の繰り返し回数が増えるほど、インク量Vc、Vsに累積される誤差が大きくなる。そこで、コントローラ230は、液面センサ155の出力がローレベル信号からハイレベル信号に変化したタイミングで、インク量Vc、Vsに予め定められた値を代入して、累積した誤差をリセットする。
なお前述したように、インク排出量Dhは、直前のS149で1枚のシートに吐出されるインク量に相当する。一方、液面センサ155の出力が変化するのは、S149の処理の途中である。すなわち、S186で上書きされたインク量Vsは、液面センサ155の出力が変化した瞬間にサブタンク100に貯留されているインクの量とは僅かにズレを生じている。しかしながら、このズレは僅かなので、S186で上書きしたインク量Vsを、液面センサ155の出力が変化した時点のインク量Vsとして扱うものとする。
また、コントローラ230は、EEPROM234に記憶されたカウント値Nに、インク排出量Dhを代入する(S187)。すなわち、コントローラ230は、直前のS149で排出を指示したインク量に相当する値で、カウント値Nをカウントアップする。換言すれば、コントローラ230は、液面センサ155の出力がローレベル信号からハイレベル信号に変化したことに応じて、カウント値Nの更新を開始する。
次に、コントローラ230は、S187で更新したカウント値Nと、閾値Nthとを比較する(S88)。そして、コントローラ230は、S187で更新したカウント値Nが閾値Nth未満だと判断したことに応じて(S188:No)、S189の処理を実行せずに、カウント処理を終了する。一方、コントローラ230は、S187で更新したカウント値Nが閾値Nth以上だと判断したことに応じて(S188:Yes)、S_Emptyフラグに“ON”を代入して(S189)、カウント処理を終了する。
また、コントローラ230は、S148、S150でRAM233に記憶させた情報が共にハイレベル信号を示すことに応じて(S181:H→H)、EEPROM234に記憶されているインク量Vsを読み出す。そして、コントローラ230は、読み出したインク量Vsからインク排出量Dhを減じて、再びEEPROM234に記憶させる(S190)。また、コントローラ230は、EEPROM234に記憶されているカウント値Nを読み出す。そして、コントローラ230は、読み出したカウント値Nにインク排出量Dhを加算して、再びEEPROM234に記憶させる(S191)。すなわち、コントローラ230は、直前のS149で排出を指示したインク排出量Dhで、EEPROM234に記憶されたインク量Vs及びカウント値Nを更新する。次に、コントローラ230は、S191で更新したカウント値Nを用いて、前述したS188以降の処理を実行する。
すなわち、コントローラ230は、記録ヘッド39を通じてインクを排出させる度に、インクカートリッジ50毎にカウント処理を実行する。例えば、1つのインクカートリッジ50を対象として見ると、装着ケース71に装着されてからしばらくの間は残量更新処理が実行され(S181:L→L)、インク量Vsが容積Vth2に達する前に液面センサ155の出力が変化したタイミングでS185~S187の処理が1回だけ実行され(S183:No&S181:L→H)、その後はサブタンク100内のインクがなくなるまでS190~S191、S188~S189の処理が実行されることになる(S181:H→H)。一方、液面センサ155の出力が変化する前にインク量Vsが容積Vth2に達すると(S181:L→L&S183:Yes)、S185~S187の処理が実行されずにインクエンプティ状態となり、また、S190~S191の処理が実行されずに、S_Emptyフラグが”ON”となる。
[第4実施形態の作用効果]
上記の第4実施形態に係る複合機10において、液面センサ155の出力がローレベル信号からハイレベル信号に変化する前にインク量Vsが容積Vth2未満になった場合とは、液面センサ155が故障していると考えることができる。また、このような課題は、第4実施形態に係る複合機10のように、サブタンク100にアクチュエータ190が配置されている場合に、交換可能なインクカートリッジ50にアクチュエータ190が配置されている場合と比較して、より顕著になる。
そこで上述の説明のように、複合機10は、液面センサ155の出力がローレベル信号からハイレベル信号に変化する前にインク量Vsが容積Vth2未満になったことに応じて(S181:L→L&S183:Yes)、その後の記録ヘッド39を通じたインクの排出を禁止する(S189)。これにより、液面センサ155が故障していたとしても、エアインを有効に抑制することができる。
より詳細には、複合機10は、インク量Vsが容積Vth2未満になっても液面センサ155からローレベル信号が出力されていることに応じて、インク量Vsが容積Vth2未満になった時点でインクの排出を禁止する。一方、複合機10は、インク量Vsが容積Vth2以上のときに液面センサ155の出力がローレベル信号からハイレベル信号に変化したことに応じて、カウント値Nが閾値Nthに達するまでインクの排出が可能になる。
そこで、例えば、カウント値Nの初期値及び閾値Nthの差を、正常な液面センサ155がハイレベル信号を出力する際のインク量Vs(=Vth1)及び容積Vth2の差より大きく設定すればよい。これにより、液面センサ155が正常に作動している場合に、液面センサ155が故障した場合と比較して、より多くのインクが記録ヘッド39を通じて排出可能になる。すなわち、インクカートリッジ50内のインクを無駄なく排出することと、エアインを抑制することとを両立させることができる。
また、上述の説明によれば、複合機10は、液面センサ155の出力がローレベル信号からハイレベル信号に変化する度(S181:L→H)に、インク量Vc、Vsに所定値を代入する(S186、S187)。これにより、式3、4を用いて算出したインク量Vc、Vsに累積された誤差がリセットされる。その結果、誤差の少ないインク量Vc、Vsに関連する情報を、S_Empty報知画面或いはC_Empty報知画面等を通じてユーザに報知することができる。なお、インク量Vc、Vsに関連するとは、例えば、インク量Vc、Vsそのものでもよいし、インク量Vc、Vsに相当するインクで画像を記録可能なシートの枚数の推定値でもよい。
また、上述の説明によれば、複合機10は、記録ヘッド39にインクを排出させたことに伴って第2液室105の液面の高さが仮想線Lより下降したとしても、式1~式4に従ってインク量Vc、Vsを個別に算出することができる。また、複合機10は、式2で高さHcを考慮して流出量Qcを算出するので、排出指示を取得した時点で第2液室105の液面が仮想線Lより下方である場合でも、流出量Qcを適切に算出することができる。その結果、インク量Vc、Vsを適切に算出することができる。
また、上述の説明によれば、装着ケース71にインクカートリッジ50が装着された時点で、平衡状態でないとしても、平衡状態となるまでの期間中において、複合機10は、式1~式4に従って、インク量Vc、Vsを個別に算出することができる。但し、装着ケース71からインクカートリッジ50が抜かれるとインクの移動もなくなるので、複合機10は、装着センサ154からハイレベル信号が出力されたことに応じて、インク量Vsが容積th1未満か否かに拘わらず、S162~S165の処理を停止するのが望ましい。
また、上述の説明によれば、複合機10は、期間Δtが経過する度にS162~S165の処理を繰り返し実行する。その結果、平衡状態となるまでの期間中において、複合機10は、インク量Vc、Vsをリアルタイムに把握することができる。なお、流出量Qcは、高さHcが大きいほど大きくなり、高さHcが小さいほど小さくなる。そこで上述の説明のように、高さHcに応じてS162~S165の実行頻度を変更することによって、リアルタイムなインク量Vc、Vsの把握と、コントローラ230の処理負荷の軽減とを両立させることができる。
[第4実施形態の変形例]
なお、S53で比較するインク量V及び閾値量の組み合わせは、前述の例に限定されない。他の例として、閾値量は、インク量Vcが0になってからのインク量Vsの変化量を示してもよい。すなわち、コントローラ230は、S33で算出したインク量Vcが0になった時のインク量Vsを、基準インク量Vs0としてEEPROM234に記憶させる。そして、コントローラ230は、S53において、直前に算出したインク量Vs及び基準インク量Vs0の差と閾値量とを比較してもよい。さらに他の例として、インク量Vはインク量Vc、Vsの和である総量Vtであり、閾値量は容積th2であってもよい。この場合、インク量Vsは算出されなくてもよい。
また、上述の説明では、複合機10は、第2貯留室105におけるインクの液面が境界位置Bに到達したときにC_Empty報知画面が報知されるように構成されている。しかし、これに限らない。例えば、複合機10は、第2貯留室105におけるインクの液面が境界位置Bより上方、例えば仮想線L付近に到達したときにC_Empty報知画面が報知するように構成されてもよい。
また、第4実施形態では、液体流路103の第1開口131が境界位置Bより上方であるが、第1開口131は、境界位置Bより下方であって第2貯留室105の底面付近にあってもよい。この場合、第1貯留室53に貯留されたインクと、第2貯留室105に貯留されたインクとが液体流路103によって連続する。したがって、流量Qcは、第1貯留室53に貯留されたインクの液面と、第2貯留室105に貯留されたインクの液面との差、すなわち水頭差に基づいて算出される。すなわち、時刻tk-1における高さHc’と、高さHs’と基準位置(仮想線L)との差Hsl’の和、粘度ρ、流路抵抗Rn、及び重力加速度gに基づいて算出される。そして、流出量Qcは、高さHc’と差Hsl’の和が大きいほど大きくなる。また、流出量Qcは、液体流路103の流路抵抗Rnが大きいほど小さくなる。
また、第3実施形態の残量更新処理では、流量Qa,Qcが算出されているが、流量Qa,Qcは必ずしも算出されなくてもよい。この場合、コントローラ230は、装着ケース71にインクカートリッジ50が装着された時点から平衡状態になるまでの期間中において、インク量Vc、Vsを期間Δt毎に算出しない。例えば、図20と同様の残量更新処理が実行されてもよい。
[その他の変形例]
上記各実施形態では、液面センサ155は、第2貯留室105の後壁112にインクが接触しているか否かによって異なる反射率を有するプリズムを利用して、第2貯留室105におけるインクの液面を光学的に検出するためのセンサであるが、第2貯留室105におけるインクの液面が検出できれば、液面センサ155の構成は特に限定されない。例えば、第2貯留室105内に設けられて、第2貯留室105の液面が境界位置B未満であるか否かにより回動するアクチュエータの被検出部が、検出位置に位置しているか否かを液面センサ155が検出する構成であってもよい。また、第2貯留室105のインクの液面が電極によって検出される構成であってもよい。また、液面センサ155は、サブタンク100の第2貯留室105の液面によって異なる信号を出力するものに代えて、インクカートリッジ50の第1貯留室53の液面によって異なる信号を出力するものであってもよい。
上記各実施形態では、コントローラ230が、装着センサ154からローレベル信号を受信し、その後に装着センサ154からハイレベル信号を受信し、さらにその後に装着センサ154からローレベル信号を受信したことに応じて、S15、S145に示す処理を実行した。コントローラ230がS15,S145に示す処理を実行するのは、装着ケース71内にインクカートリッジ50が存在しない装着ケース71内に、インクカートリッジ50が装着されたことを契機としている。つまり、コントローラ230は、装着ケース71内にインクカートリッジ50が装着されたと判定したことに応じて、S15,S145に示す処理を実行すればよい。なお、コントローラ230が、装着センサ154からローレベル信号を受信し、その後に装着センサ154からハイレベル信号を受信し、さらにその後に装着センサ154からローレベル信号を受信したことは、コントローラ230が、装着ケース71内にカートリッジが装着されたと判定したことの一例である。コントローラ230が、装着ケース71内にインクカートリッジ50が装着されたと判定する、他の例を以下に説明する。
例えば、コントローラ230が、カバーセンサ88からハイレベル信号を受信した後にローレベル信号を受信する。そして、コントローラ230は、ICチップ66のメモリから識別情報を読み出して、EEPROM234に記憶された交換前のインクカートリッジ50の識別情報と比較する。ICチップ66のメモリから読み出した識別情報と、EEPROM234に記憶された識別情報とが異なると判定したことに応じて、コントローラ230は、S15,S145に示す処理を実行してもよい。つまり、「コントローラ230は、ICチップ66のメモリから識別情報を読み出して、EEPROM234に記憶された交換前のインクカートリッジ50の識別情報と比較する。その結果、ICチップ66のメモリから読み出した識別情報と、EEPROM234に記憶された識別情報とが異なると判定した」ことが、コントローラ230が、装着ケース71内にインクカートリッジ50が装着されたと判定することの一例である。
また、例えば、コントローラ230が、カバーセンサ88からハイレベル信号を受信した後にローレベル信号を受信する。そして、コントローラ230は、ディスプレイ17を通じてユーザに、装着ケース71内に新たなインクカートリッジ50の装着をしたか、を示す確認画面を表示させる。コントローラ230は、ディスプレイ17に確認画面を表示させている一方で、操作パネル22を通じて、当該確認画面に対応する、入力を受信する。受信した当該入力が、装着ケース71内に新たなインクカートリッジ50の装着した、ことに対応していることに応じて、コントローラ230は、S15,S145に示す処理を実行する。つまり、「コントローラ230が、カバーセンサ88からハイレベル信号を受信した後にローレベル信号を受信する。そして、コントローラ230は、ディスプレイ17を通じてユーザに、装着ケース71内に新たなインクカートリッジ50の装着をしたか、を示す確認画面を表示させる。コントローラ230は、ディスプレイ17に確認画面を表示させている一方で、操作パネル22を通じて、当該確認画面に対応する、入力を受信する。受信した当該入力が、装着ケース71内に新たなインクカートリッジ50の装着した、ことに対応している」ことが、コントローラ230が、装着ケース71内にインクカートリッジ50が装着されたと判定することの一例である。
また、上各記実施形態では、4つのS_Emptyフラグの少なくとも1つに“ON”が設定されているときに、4つのサブタンク100全てについて記録ヘッド39を通じたインクの排出を禁止する例が説明された。S_Emptyフラグに“ON”が設定されているサブタンク100についてのみ、記録ヘッド39を通じたインクの排出が禁止されてもよい。また、マゼンタ、シアン、及びイエローに係るS_Emptyフラグの少なくとも一つに“ON”が設定され、ブラックに係るS_Emptyフラグに“OFF”が設定されている場合に、マゼンタ、シアン、及びイエローのインクの排出が禁止され、ブラックのインクの排出が許可されてもよい。
また、上記各実施形態では、コントローラ230は、S_Emptyフラグが”ON”であれば、記録ヘッド39を通じたインクの排出を禁止するが、記録ヘッド39を通じたインクの排出は必ずしも禁止される必要はなく、コントローラ230は、S_Emptyフラグが”ON”であれば、S_Empty報知画面をディスプレイ17に表示させるのみであってもよい。
また、ICチップ66は、接点152と接触して導通されるが、これにかえて、NFC(near field communication)やRFID(radio frequency identification)のような電波を用いて非接触でデータを読み書きする情報媒体とインタフェースとが採用されてもよい。
また、上記各実施形態では、インクが液体の一例として説明されているが、液体は、例えば、画像記録時にインクに先立って用紙などに吐出される前処理液でもよいし、記録ヘッド39を洗浄するための水でもよい。