以下、本発明の実施形態について説明する。なお、以下に説明される実施形態は本発明の一例にすぎず、本発明の要旨を変更しない範囲で、本発明の実施形態を適宜変更できることは言うまでもない。また、プリンタ10が使用可能に水平面に設置された使用姿勢を基準として上下方向7が定義され、プリンタ10の開口13が形成された面を前面として前後方向8が定義され、プリンタ10を前面から見て左右方向9が定義される。本実施形態では、使用姿勢において、上下方向7が鉛直方向に相当し、前後方向8及び左右方向9が水平方向に相当する。前後方向8及び左右方向9は、直交している。
[プリンタ10の概要]
本実施形態に係るプリンタ10は、インクジェット記録方式でシートに画像を記録する液体排出装置の一例である。プリンタ10は、概ね直方体形状の筐体14を有している。また、プリンタ10は、ファクシミリ機能、スキャン機能、及びコピー機能などの機能を有する、所謂、「複合機」であってもよい。カートリッジ200及びプリンタ10がシステムの一例である。
筐体14の内部には、図1及び図2に示されるように、給送トレイ15と、給送ローラ23と、搬送ローラ25と、複数のノズル29を有するヘッド21と、ヘッド21に対面するプラテン26と、排出ローラ27と、排出トレイ16と、カートリッジ200が着脱される装着ケース150と、ヘッド21及び装着ケース150に装着されたカートリッジ200を連通させるチューブ32とが位置している。
プリンタ10は、給送ローラ23及び搬送ローラ25を駆動させて、給送トレイ15に支持されたシートをプラテン26の位置まで搬送する。次に、プリンタ10は、装着ケース150に装着されたカートリッジ200からチューブ32を通じて供給されるインクを、ヘッド21にノズル29を通じて吐出させる。これにより、プラテン26に支持されたシートにインクが着弾して、シート上に画像が記録される。そして、プリンタ10は、排出ローラ27を駆動させて、画像が記録されたシートを排出トレイ16に排出する。
より詳細には、ヘッド21は、搬送ローラ25によるシートの搬送向きと交差する主走査方向に往復移動するキャリッジに搭載されていてもよい。そして、プリンタ10は、主走査方向の一方から他方へキャリッジを移動させる過程で、ヘッド21にノズル29を通じてインクを吐出させてもよい。これにより、ヘッド21に対面するシートの一部の領域(以下、「1パス」と表記する。)に画像が記録される。次に、プリンタ10は、次に画像が記録されるべき領域がヘッド21に対面するように、搬送ローラ25にシートを搬送させてもよい。そして、これらの処理を交互に繰り返し実行させることによって、1枚のシートに画像が記録される。
[カバー87]
図1に示されるように、筐体14の前面14Aで且つ左右方向9の右端部には、開口85が形成されている。筐体14は、さらにカバー87を備える。カバー87は、開口85を覆う被覆位置(図1(A)に示される位置)と、開口85を露出させる露出位置(図1(B)に示される位置)との間を回動可能である。カバー87は、例えば、上下方向7における筐体14の下端近傍において、左右方向9に沿う回動軸線周りに回動可能に、筐体14によって支持されている。そして、開口85より後方に広がる筐体14内部の収容空間86には、装着ケース150が位置している。
[カバーセンサ88]
プリンタ10は、カバーセンサ88(図6参照)を有する。カバーセンサ88は、例えば、カバー87が接離するスイッチ等の機械式センサであってもよいし、カバー87の位置によって光が遮断或いは透過される光学式センサであってもよい。カバーセンサ88は、カバー87の位置に応じた信号をコントローラ130に出力する。より詳細には、カバーセンサ88は、カバー87が被覆位置に位置していることに基づいて、ローレベル信号をコントローラ130へ出力する。一方、カバーセンサ88は、カバー87が被覆位置と異なる位置に位置していることに基づいて、ローレベル信号より信号強度の高いハイレベル信号をコントローラ130へ出力する。換言すれば、カバーセンサ88は、カバー87が露出位置に位置していることに基づいて、ハイレベル信号をコントローラ130へ出力する。ハイレベル信号は第3信号の一例であり、ローレベル信号は第4信号の一例である。
[装着ケース150]
装着ケース150は、図3に示されるように、接点152(インタフェースの一例)と、ロッド153と、装着センサ154と、液面センサ155と、ロックピン156とを備えている。装着ケース150には、ブラック、シアン、マゼンタ、イエローの各色に対応する4つのカートリッジ200が収容可能である。すなわち、装着ケース150は、接点152、ロッド153、装着センサ154、液面センサ155を、4つのカートリッジ200それぞれに対応して、4つずつ備えている。なお、装着ケース150に装着されるカートリッジ200の数は、4つに限定されず、1つでも良いし、5つ以上でも良い。
装着ケース150は、装着されたカートリッジ200を収容する内部空間を有する箱形状である。装着ケース150の内部空間は、上端を画定する天壁と、下端を画定する底壁と、前後方向8の後端を画定する奥壁と、左右方向9の両端を画定する一対の側壁とで画定される。一方、装着ケース150の奥壁と対面する位置は、開口85となっている。すなわち、開口85は、カバー87を露出位置に配置したときに、装着ケース150の内部空間を、プリンタ10の外部に露出させる。
そして、カートリッジ200は、筐体14の開口85を通じて、装着ケース150に挿入され、装着ケース150から抜かれる。より詳細には、カートリッジ200は、開口85を前後方向8の後ろ向きに通過して、装着ケース150に装着される。装着ケース150から抜かれるカートリッジ200は、開口85を前後方向8の前向きに通過する。
[接点152]
接点152は、装着ケース150の天壁に位置している。接点152は、天壁から装着ケース150の内部空間へ向けて下方に突出している。接点152は、装着ケース150にカートリッジ200が装着された状態において、カートリッジ200の後述する電極248に接する位置に位置している。接点152は、導電性を有しており、さらに上下方向7に沿って弾性的に変形可能である。接点152は、コントローラ130に電気的に接続されている。
[ロッド153]
ロッド153は、装着ケース150の奥壁から前方へ突出している。ロッド153は、装着ケース150の奥壁において、後述するジョイント180より上方に位置している。ロッド153は、カートリッジ200が装着ケース150に装着される過程において、カートリッジ200の後述する大気連通口221を通じて大気バルブ室214に進入する。ロッド153が大気バルブ室214に進入すると、後述する大気バルブ室214が大気に連通される。
[装着センサ154]
装着センサ154は、装着ケース150の天壁に位置している。装着センサ154は、カートリッジ200が装着ケース150に装着されているか否かを検出するためのセンサである。装着センサ154は、左右方向9に離間した発光部及び受光部を備える。装着ケース150にカートリッジ200が装着された状態において、カートリッジ200の後述する遮光リブ245は、装着センサ154の発光部及び受光部の間に位置する。換言すれば、装着センサ154の発光部及び受光部は、装着ケース150に装着されたカートリッジ200の遮光リブ245を挟んで、互いに対向した状態で位置している。
装着センサ154は、発光部から左右方向9に沿って照射された光が受光部で受光されたか否かに基づいて、異なる信号(図中では、「装着信号」と表記する。)を出力する。装着センサ154は、例えば、受光部で受光された光の受光強度が閾値強度未満であることに基づいて、ローレベル信号をコントローラ130へ出力する。一方、装着センサ154は、受光部で受光された光の受光強度が閾値強度以上であることに基づいて、ローレベル信号より信号強度の高いハイレベル信号をコントローラ130へ出力する。ハイレベル信号は第1信号の一例であり、ローレベル信号は第2信号の一例である。
[液面センサ155]
液面センサ155は、後述するアクチュエータ190の被検出部194が検出位置に位置しているか否かを検出するためのセンサである。液面センサ155は、左右方向9に離間した発光部及び受光部を備える。換言すれば、液面センサ155の発光部及び受光部は、検出位置に位置した被検出部194を挟んで、互いに対向した状態で位置している。液面センサ155は、発光部から出力された光が受光部で受光されたか否かに基づいて異なる信号(図中では、「液面信号」と表記する。)を出力する。
[ロックピン156]
ロックピン156は、装着ケース150の内部空間の上端で且つ開口85付近において、左右方向9に沿って延びる棒状の部材である。ロックピン156の左右方向9の両端は、装着ケース150の一対の側壁に固定されている。ロックピン156は、4つのカートリッジ200が収納可能な4つの空間に亘って左右方向9に延びている。ロックピン156は、装着ケース150に装着されたカートリッジ200を、図5に示される装着位置に保持するためのものである。カートリッジ200は、装着ケース150に装着された状態で、ロックピン156に係合される。
[タンク160]
プリンタ10は、4つのカートリッジ200それぞれに対応して、4つのタンク160を備える。タンク160は、装着ケース150の奥壁よりさらに後方に位置している。タンク160は、図3に示されるように、上壁161と、前壁162と、下壁163と、後壁164と、不図示の一対の側壁とで構成されている。なお、前壁162は、各々が前後方向8にずれた複数の壁によって構成される。タンク160の内部は、液室171が形成されている。液室171は、第2液室の一例である。
タンク160を構成する壁のうち、少なくとも液面センサ155に対面する壁は、透光性を有している。これにより、液面センサ155が出力した光は、液面センサ155に対面する壁を透過することができる。後壁164の少なくとも一部は、上壁161、下壁163、及び側壁の端面に溶着されるフィルムでもよい。また、タンク160の側壁は、装着ケース150と共通でもよいし、装着ケース150とは独立していてもよい。さらに、左右方向9に隣接するタンク160の間は、不図示の隔壁によって仕切られている。4つのタンク160の構成は、概ね共通する。
液室171は、流出口174を通じて不図示のインク流路に連通されている。流出口174の下端は、液室171の下端を画定する下壁163によって画定されている。流出口174は、ジョイント180(より詳細には、貫通孔184の下端)より上下方向7の下方に位置している。流出口174に連通された不図示のインク流路は、チューブ32に連通されている。これにより、液室171は、流出口174からインク流路及びチューブ32を通じて、ヘッド21と連通する。つまり、液室171に貯留されたインクは、流出口174からインク流路及びチューブ32を通じて、ヘッド21へ供給される。流出口174に連通されたインク流路及びチューブ32は、一端(流出口174)が液室171に連通され、且つ他端33(図2参照)がヘッド21に連通された第4流路の一例である。
液室171は、大気連通室175を通じて大気に連通されている。より詳細には、大気連通室175は、前壁162を貫通する貫通孔176を通じて液室171に連通されている。また、大気連通室175は、大気連通ポート177及び大気連通ポート177に接続された不図示のチューブを通じて、プリンタ10の外部に連通されている。すなわち、大気連通室175は、一端(貫通孔176)が液室171に連通され、且つ他端(大気連通ポート177)がプリンタ10の外部に連通された第5流路の一例である。なお、大気連通室175は、大気連通ポート177及び不図示のチューブを通じて、大気に連通している。
[ジョイント180]
ジョイント180は、図3に示されるように、ニードル181と、ガイド182とを備えている。ニードル181は、内部に流路が形成された管である。ニードル181は、液室171を画定する前壁162から前方へ突出している。ニードル181の突出先端には、開口183が形成されている。また、ニードル181の内部空間は、前壁162を貫通する貫通孔184を通じて液室171に連通されている。ニードル181は、一端(開口183)がタンク160の外部に連通され、且つ他端(貫通孔184)が液室171に連通された第3流路の一例である。ガイド182は、ニードル181の周囲に配置された円筒形状の部材である。ガイド182は、前壁162から前方に突出して、突出端が開口している。
ニードル181の内部空間には、バルブ185と、コイルバネ186とが位置している。バルブ185は、ニードル181の内部空間において、閉塞位置と開放位置との間を、前後方向8に沿って移動可能である。バルブ185は、閉塞位置に位置すると開口183を閉塞する。またバルブ185は、開放位置に位置すると開口183を開放する。コイルバネ186は、バルブ185を開放位置から閉塞位置に移動させる向き、すなわち前後方向8の前向きに付勢している。
[アクチュエータ190]
液室171には、アクチュエータ190が位置している。アクチュエータ190は、液室171内に配置された不図示の支持部材によって、矢印198、199の向きに回動可能に支持されている。アクチュエータ190は、図3の実線で示される位置及び破線で示される位置の間を回動することができる。さらに、アクチュエータ190は、不図示のストッパ(例えば、液室171の内壁)によって、実線の位置より矢印198の向きへの回動が規制される。アクチュエータ190は、フロート191と、軸192と、アーム193と、被検出部194とを備える。
フロート191は、液室171に貯留されるインクより比重が小さい材料で形成されている。軸192は、フロート191の右面及び左面から左右方向9に突出している。軸192は、支持部材に形成された不図示の孔に挿入されている。これにより、アクチュエータ190は、軸192を中心として回動可能に支持部材によって支持される。アーム193は、フロート191から略上方へ延びている。被検出部194は、アーム193の突出先端部に位置している。被検出部194は、上下方向7及び前後方向8に延びる板状の部材である。被検出部194は、液面センサ155の発光部から出力された光を遮光する材料又は色で形成されている。
液室171内のインクの液面が境界位置P以上のとき、浮力によって矢印198の向きに回動されたアクチュエータ190は、ストッパによって図3の実線で示される検出位置に保持される。一方、インクの液面が境界位置P未満のとき、アクチュエータ190は、液面の降下に追従して矢印199の向きに回動される。これにより、被検出部194は、検出位置から外れた位置に移動する。すなわち、被検出部194は、液室171に貯留されたインクの量に対応する位置に移動する。
境界位置Pは、上下方向7において、ニードル181の軸中心と同じ高さであり、且つ後述するインク供給口234の中心と同じ高さである。しかしながら、境界位置Pは、上下方向7における流出口174より上方の位置であれば、前述の位置に限定されない。他の例として、境界位置Pは、ニードル181の内部空間の上端や下端の高さでもよいし、インク供給口234の上端や下端の高さでもよい。
液室171に貯留されたインクの液面が境界位置P以上のとき、液面センサ155の発光部から出力された光が被検出部194で遮られる。これにより、液面センサ155は、発光部からの光が受光部に到達しないので、ローレベル信号をコントローラ130へ出力する。一方、液室171に貯留されたインクの液面が境界位置P未満のとき、液面センサ155は、発光部から出力された光が受光部に到達するので、ハイレベル信号をコントローラ130へ出力する。すなわち、コントローラ130は、液室171内のインクの液面が境界位置P以上か否かを、液面センサ155から出力される信号によって検出することができる。
[カートリッジ200]
カートリッジ200は、液体の一例であるインクを内部に貯留可能な液室210(図2参照)を有する容器である。液室210は、例えば、樹脂製の壁によって画定されている。カートリッジ200は、図4(A)に示されるように、上下方向7及び前後方向8それぞれに沿った寸法が、左右方向9に沿った寸法よりも大きい扁平形状である。なお、異なる色のインクが貯留されるカートリッジ200の外形形状は同一でもよいし、異なっていてもよい。カートリッジ200を構成する壁のうちの少なくとも一部は、透光性を有している。これにより、ユーザは、カートリッジ200の液室210内に貯留されたインクの液面をカートリッジ200の外部から視認することができる。
カートリッジ200は、筐体201と、供給管230とを備える。筐体201は、後壁202と、前壁203と、上壁204と、下壁205と、一対の側壁206、207とで構成されている。なお、後壁202は、各々が前後方向8にずれた複数の壁によって構成されている。また、上壁204は、各々が上下方向7にずれた複数の壁によって構成されている。さらに、下壁205は、各々が上下方向7にずれた複数の壁によって構成されている。
カートリッジ200の内部空間には、図4(B)に示されるように、液室210、インクバルブ室213、及び大気バルブ室214が形成されている。液室210は、上部液室211と、下部液室212とを有する。上部液室211、下部液室212、及び大気バルブ室214は、筐体201の内部空間である。一方、インクバルブ室213は、供給管230の内部空間である。液室210は、インクを貯留する。大気バルブ室214は、液室210とカートリッジ200の外部とを連通させる。液室210は、第1液室の一例である。
液室210の上部液室211及び下部液室212は、筐体201の内部空間を仕切る隔壁215によって、上下方向7に隔てられている。そして、上部液室211及び下部液室212は、隔壁215に形成された貫通孔216によって連通されている。また、上部液室211及び大気バルブ室214は、筐体201の内部空間を仕切る隔壁217によって、上下方向7に隔てられている。そして、上部液室211及び大気バルブ室214は、隔壁217に形成された貫通孔218によって連通されている。さらに、インクバルブ室213は、貫通孔219を通じて下部液室212の下端に連通されている。
大気バルブ室214は、カートリッジ200の上部において、後壁202に形成された大気連通口221を通じてカートリッジ200の外部に連通されている。すなわち、大気バルブ室214は、一端(貫通孔218)が液室210(より詳細には、上部液室211)に連通され、且つ他端(大気連通口221)がカートリッジ200の外部に連通された第2流路の一例である。なお、大気バルブ室214は、大気連通口221を通じて、大気に連通している。また、大気バルブ室214には、バルブ222と、コイルバネ223とが位置している。バルブ222は、閉塞位置と開放位置との間を、前後方向8に沿って移動可能である。バルブ222は、閉塞位置に位置すると、大気連通口221を閉塞する。また、バルブ222は、開放位置に位置すると大気連通口221を開放する。コイルバネ223は、バルブ222を開放位置から閉塞位置に移動させる向き、すなわち前後方向8の後ろ向きに付勢している。
カートリッジ200が装着ケース150に装着される過程において、ロッド153が大気連通口221を通じて大気バルブ室214内に進入する。大気バルブ室214内に進入したロッド153は、閉塞位置のバルブ222をコイルバネ223の付勢力に抗して前向きに移動させる。そして、バルブ222が開放位置に移動することによって、上部液室211が大気に連通される。なお、大気連通口221を開放するための構成は、前述の例に限定されない。他の例として、大気連通口221を封止するフィルムをロッド153が突き破る構成でもよい。
供給管230は、筐体201の下部において、後壁202から後方に突出している。供給管230は、その突出端(すなわち、後端)が開口されている。すなわち、インクバルブ室213は、貫通孔219を通じて連通された液室210と、カートリッジ200の外部とを連通させる。インクバルブ室213は、一端(貫通孔219)が液室210(より詳細には下部液室212)と連通され、且つ他端(後述するインク供給口234)がカートリッジ200の外部と連通された第1流路の一例である。また、インクバルブ室213には、パッキン231と、バルブ232と、コイルバネ233とが位置している。
パッキン231の中央には、前後方向8に貫通したインク供給口234が形成されている。インク供給口234の内径は、ニードル181の外径より僅かに小さい。バルブ232は、閉塞位置と開放位置との間を、前後方向8に沿って移動可能である。バルブ232は、閉塞位置に位置すると、パッキン231と当接してインク供給口234を閉塞する。また、バルブ232は、開放位置に位置すると、パッキン231から離間してインク供給口234を開放する。コイルバネ233は、バルブ232を開放位置から閉塞位置に移動させる向き、すなわち前後方向8の後ろ向きに付勢している。また、コイルバネ233の付勢力は、コイルバネ186より大きい。
カートリッジ200が装着ケース150に装着される過程において、供給管230がガイド182内に進入し、やがてニードル181がインク供給口234を通じてインクバルブ室213に進入する。このとき、ニードル181は、パッキン231を弾性変形させつつ、インク供給口234を画定する内周面に液密に接触する。カートリッジ200が装着ケース150へさらに挿入されると、ニードル181は、バルブ232をコイルバネ233の付勢力に抗して前向きに移動させる。また、バルブ232は、ニードル181の開口183から突出するバルブ185を、コイルバネ186の付勢力に抗して後ろ向きに移動させる。
これにより、図5に示されるように、インク供給口234及び開口183が開放されて、供給管230のインクバルブ室213と、ニードル181の内部空間とが連通される。すなわち、装着ケース150にカートリッジ200が装着された状態において、インクバルブ室213及びニードル181の内部空間は、カートリッジ200の液室210とタンク160の液室171とを連通させる流路を構成する。
また、装着ケース150にカートリッジ200が装着された状態において、液室210の一部と、液室171の一部とは、水平方向から見て互いに重なる。その結果、液室210に貯留されたインクは、接続された供給管230及びジョイント180を通じて、水頭差によってタンク160の液室171に移動する。
上壁204には、突起241が形成されている。突起241は、上壁204の外面から上方に突出し且つ前後方向8に沿って延びている。突起241は、ロック面242と、傾斜面243とを有する。ロック面242及び傾斜面243は、上壁204より上方に位置している。ロック面242は、前後方向8の前方を向き且つ上下方向7及び左右方向9に延びている(すなわち、上壁204と概ね直交する)。傾斜面243は、上下方向7の上方及び前後方向8の後方を向くように、上壁204に対して傾斜している。
ロック面242は、装着ケース150にカートリッジ200が装着された状態において、ロックピン156に当接される面である。傾斜面243は、カートリッジ200が装着ケース150に装着される過程において、ロックピン156をロック面242と当接する位置まで案内する面である。ロック面242とロックピン156とが当接した状態では、コイルバネ186、223、233の付勢力に抗して、カートリッジ200が図5に示される装着位置に保持される。
ロック面242より前方において上壁204から上方へと延びるようにして、平板状の部材が形成されている。この平板状の部材の上面は、カートリッジ200を装着ケース150から抜去する際に、ユーザが操作する操作部244である。カートリッジ200が装着ケース150に装着された状態で且つカバー87が露出位置に位置しているとき、操作部244は、ユーザが操作可能となる。操作部244が下方へ押されると、カートリッジ200が回動することによって、ロック面242がロックピン156より下方へ移動する。その結果、カートリッジ200が装着ケース150から抜去することが可能となる。
上壁204の外面で且つ突起241より後方には、遮光リブ245が形成されている。遮光リブ245は、上壁204の外面から上方に突出し且つ前後方向8に沿って延びている。遮光リブ245は、装着センサ154の発光部から出力される光を遮光する材料又は色で形成されている。遮光リブ245は、装着ケース150にカートリッジ200が装着された状態において、装着センサ154の発光部から受光部に至る光路上に位置する。すなわち、装着センサ154は、装着ケース150にカートリッジ200が装着されていることに基づいて、ローレベル信号をコントローラ130に出力する。一方、装着センサ154は、装着ケース150にカートリッジ200が装着されていないことに基づいて、ハイレベル信号をコントローラ130に出力する。すなわち、コントローラ130は、装着ケース150にカートリッジ200が装着されているか否かを、装着センサ154から出力される信号によって検出することができる。
上壁204の外面で且つ前後方向8における遮光リブ245及び突起241の間には、ICチップ247が位置している。ICチップ247には、電極248が形成されている。また、ICチップ247は、不図示のメモリを備える。電極248は、ICチップ247の上記メモリと電気的に接続されている。電極248は、ICチップ247の上面において、接点152と導通可能に露出されている。すなわち、カートリッジ200が装着ケース150に装着された状態において、電極248は、接点152と電気的に導通する。コントローラ130は、接点152及び電極248を通じてICチップ247のメモリから情報を読み出し、接点152及び電極248を通じてICチップ247のメモリに情報を書き込むことができる。
ICチップ247のメモリは、最大インク量Vc0と、粘度ρと、後述するインク量Vc、高さHc、誤差情報C、流路抵抗Rc、及び関数Fcとを記憶する。ICチップ247のメモリはカートリッジメモリの一例である。最大インク量Vc0は、カートリッジ200に貯留可能なインクの最大量を示す最大液体量の一例である。換言すれば、最大インク量Vc0は、新品のカートリッジ200に貯留されているインクの量を示す。粘度ρは、カートリッジ200に貯留されているインクの粘度を示す。以下、ICチップ247のメモリに記憶されている情報を総称して、「CTG情報」と表記することがある。また、「新品」とは、カートリッジ200から、カートリッジ200内のインクが一度も流出していない状態を示す。
ICチップ247のメモリの記憶領域は、例えば、第1領域と、第2領域と、第3領域とを含む。第1領域、第2領域、及び第3領域は、互いに異なるメモリ領域である。第1領域及び第3領域は、コントローラ130によって情報が上書きされない領域である。一方、第2領域は、コントローラ130によって情報が上書き可能な領域である。そして、第1領域に流路抵抗Rc及び関数Fcが記憶され、第2領域にインク量Vc、高さHc、及び誤差情報Cが記憶され、第3領域に最大インク量Vc0が記憶される。
[コントローラ130]
コントローラ130は、図6に示されるように、CPU131、ROM132、RAM133、EEPROM134、及びASIC135を備えている。ROM132には、CPU131が各種動作を制御するためのプログラムなどが格納されている。RAM133は、CPU131が上記プログラムを実行する際に用いるデータや信号等を一時的に記録する記憶領域、或いはデータ処理の作業領域として使用される。EEPROM134には、電源オフ後も保持すべき設定情報が格納される。ROM132、RAM133、及びEEPROM134は、装置メモリの一例である。
ASIC135は、給送ローラ23、搬送ローラ25、排出ローラ27、及びヘッド21を作動させるためのものである。コントローラ130は、ASIC135を通じて不図示のモータを駆動させることによって、給送ローラ23、搬送ローラ25、及び排出ローラ27を回転させる。また、コントローラ130は、ASIC135を通じてヘッド21の駆動素子に駆動信号を出力することによって、ヘッド21にノズル29を通じてインクを吐出させる。ASIC135は、ノズル29を通じて吐出すべきインクの量に基づいて、複数種類の駆動信号を出力可能である。
また、ASIC135には、ディスプレイ17と、操作パネル22とが接続されている。ディスプレイ17は、液晶ディスプレイ、有機ELディスプレイ等であり、各種情報を表示する表示面を備える。ディスプレイ17は、報知機の一例である。但し、報知機の具体例はディスプレイ17に限定されず、スピーカ、LEDランプ、或いはこれらの組み合わせでもよい。操作パネル22は、ユーザによる操作に応じた操作信号をコントローラ130に出力する。操作パネル22は、例えば、押ボタンを有していてもよいし、ディスプレイに重畳されたタッチセンサを有していてもよい。
さらに、ASIC135には、接点152と、カバーセンサ88と、装着センサ154と、液面センサ155とが電気的に接続されている。コントローラ130は、装着ケース150に装着されたカートリッジ200のICチップ247のメモリに、接点152を通じてアクセスする。コントローラ130は、カバー87の位置をカバーセンサ88を通じて検出する。また、コントローラ130は、カートリッジ200の挿抜を装着センサ154を通じて検出する。さらに、コントローラ130は、液室171内のインクの液面が境界位置P以上か否かを液面センサ155を通じて検出する。
EEPROM134は、装着ケース150に装着される4つのカートリッジ200それぞれに対応付けて、換言すれば、カートリッジ200と連通されるタンク160それぞれに対応付けて、各種情報を記憶している。各種情報とは、例えば、液体量の一例であるインク量Vc、Vsと、最大インク量Vc0と、高さHc、Hsと、誤差情報C、Sと、誤差フラグと、流路抵抗Rc、Rs、Rnと、関数Fc、Fsと、C_Emptyフラグと、S_Emptyフラグと、カウント値Nとを含む。
なお、最大インク量Vc0、インク量Vc、高さHc、誤差情報C、流路抵抗Rc、及び関数Fcは、カートリッジ200が装着ケース150に装着された状態で、接点152を通じてICチップ247のメモリからコントローラ130によって読み出される情報である。また、流路抵抗Rc、Rn及び関数Fsは、EEPROM134に代えて、ROM132に記憶されていてもよい。
インク量Vcは、カートリッジ200の液室210に貯留されているインクの量を示す。インク量Vsは、タンク160の液室171に貯留されているインクの量を示す。インク量Vc、Vsは、例えば、後述する式3、4によって算出される。
高さHcは、カートリッジ200に貯留されているインクの液面と基準位置との上下方向の高さを示す。高さHsは、タンク160に貯留されているインクの液面と基準位置との上下方向の高さを示す。一例として、基準位置は、ニードル181の内部空間の中心を通り水平方向(より詳細には、前後方向8)に沿って延びる仮想線の位置でもよい。他の例として、基準位置は、境界位置Pと同じ位置でもよい。高さHc、Hsは、例えば、式5、6によって算出される。
誤差情報Cは、カートリッジ200の液室210に実際に貯留されているインクの量と、ICチップ247のメモリから読み出したインク量Vcとの間の誤差の大きさを示す情報である。誤差情報S(タンク誤差情報の一例)は、タンク160の液室171に実際に貯留されているインクの量と、EEPROM134に記憶されているインク量Vsとの間の誤差の大きさを示す情報である。誤差情報C、Sには、誤差が閾値誤差未満であることに対応する“小”、或いは誤差が閾値誤差以上であることに対応する“大”が設定される。
誤差フラグは、装着ケース150にカートリッジ200が装着された時点において、誤差情報C、Sの少なくとも一方に“大”が設定されていたか否かを示す情報である。誤差フラグには、誤差情報C、Sの少なくとも一方に“大”が設定されていたことに対応する“ON”、或いは誤差情報C、Sの両方に“小”が設定されていたことに対応する“OFF”が設定される。
流路抵抗Rcは、大気バルブ室214を通過する空気が受ける抵抗の大きさを示す。より詳細には、流路抵抗Rcは、大気連通口221から貫通孔218に至る流路に位置する半透膜を空気が通過する際の抵抗を示す。流路抵抗Rsは、大気連通室175を通過する空気が受ける抵抗の大きさを示す。より詳細には、流路抵抗Rsは、大気連通ポート177から貫通孔176に至る流路に位置する半透膜を空気が通過する際の抵抗を示す。流路抵抗Raは、連通されたインクバルブ室213及びニードル181の内部空間を通過するインクが受ける抵抗の大きさを示す。より詳細には、流路抵抗Raは、インクバルブ室213を通過するインクが受ける抵抗の大きさ、ニードル181の内部空間を通過するインクが受ける抵抗の大きさの一方或いは両方を示す。
関数Fcは、インク量Vc及び高さHcの対応関係を示す第1対応情報の一例である。カートリッジ200の液室210の水平断面積Dcが上下方向7において変化する場合、関数Fcは、インク量Vc及び高さHcを変数として、カートリッジ200の設計時に予め決定される。一方、上下方向7における水平断面積Dcが一定の場合、関数Fc=Vc/Dcとなる。第1対応情報は、関数の形式に限定されず、対応するインク量Vc及び高さHcの複数のセットを含むテーブルの形式であってもよい。
関数Fsは、インク量Vs及び高さHsの対応関係を示す第2対応情報の一例である。タンク160の液室171の水平断面積Dsが上下方向7において変化する場合、関数Fsは、インク量Vs及び高さHsを変数として、タンク160の設計時に予め決定される。一方、上下方向7における水平断面積Dsが一定の場合、関数Fs=Vs/Dsとなる。なお、第2対応情報は、関数の形式に限定されず、対応するインク量Vc及び高さHcの複数のセットを含むテーブルの形式であってもよい。
カウント値Nは、液面センサ155から出力される信号がローレベル信号からハイレベル信号に変化した後に、ヘッド21に排出を指示したインク排出量Dh(すなわち、駆動信号で示されるインク量)に相当する値で、閾値Nth1、Nth2に近づく向きに更新される値である。カウント値Nは、初期値を“0”としてカウントアップされる値である。また、閾値Nth1は、流出口174の上端と境界位置Pとの間の液室171の容積Vthに相当する。閾値Nth2は、閾値Nth1よりカウント値Nの初期値に近い値(すなわち、Nth1>Nth2)である。カウント値Nは排出量の一例であり、容積Vthは閾値量の一例である。但し、カウント値Nは、容積Vthに相当する値を初期値として、カウントダウンされる値でもよい。この場合の閾値Nth1は0となり、閾値Nth2は0<Nth2<Vth1となる。
C_Emptyフラグは、カートリッジ200がカートリッジエンプティ状態か否かを示す情報である。C_Emptyフラグには、カートリッジエンプティ状態であることに対応する値“ON”、或いはカートリッジエンプティ状態でないことに対応する値“OFF”が設定される。カートリッジエンプティ状態とは、カートリッジ200(より詳細には、液室210)にインクが実質的に貯留されていない状態である。換言すれば、カートリッジエンプティ状態とは、連通されたカートリッジ200からタンク160にインクが移動しない状態である。さらに換言すれば、カートリッジエンプティ状態とは、当該カートリッジ200に連通されたタンク160の液面が境界位置P未満の状態である。
S_Emptyフラグは、タンク160がインクエンプティ状態か否かを示す情報である。S_Emptyフラグには、インクエンプティ状態であることに対応する値“ON”、或いはインクエンプティ状態でないことに対応する値“OFF”が設定される。インクエンプティ状態とは、例えば、タンク160(より詳細には、液室171)に貯留されたインクの液面が流出口174の上端の位置に達した状態である。換言すれば、インクエンプティ状態とは、カウント値Nが閾値Nth以上の状態である。インクエンプティ状態になった後にヘッド21によるインクの吐出を継続すると、ノズル29内がインクで満たされず、空気が混入してしまう(所謂、エアイン)可能性がある。すなわち、インクエンプティ状態は、ヘッド21を通じたインクの排出を禁止しなければならない状態である。
[プリンタ10の動作]
図7~図10を参照して、本実施形態に係るプリンタ10の動作を説明する。図7~図10に示される各処理は、コントローラ130のCPU131によって実行される。なお、以下の各処理は、ROM132に記憶されているプログラムをCPU131が読み出して実行してもよいし、コントローラ130に搭載されたハードウェア回路によって実現されてもよい。また、以下の各処理の実行順序は、本発明の要旨を変更しない範囲で、適宜変更することができる。
[画像記録処理]
コントローラ130は、プリンタ10に記録指示が入力されたことに基づいて、図7に示される画像記録処理を実行する。記録指示は、画像データで示される画像をシートに記録する記録処理をプリンタ10に実行させるための排出指示の一例である。記録指示の取得先は特に限定されないが、例えば、記録指示に対応するユーザ操作を操作パネル22を通じて受け付けてもよいし、不図示の通信インタフェースを通じて外部装置から受信してもよい。
まず、コントローラ130は、4つのS_Emptyフラグそれぞれの設定値を判断する(S11)。そして、コントローラ130は、4つのS_Emptyフラグの少なくとも1つに“ON”が設定されていると判断したことに基づいて(S11:ON)、S_Empty報知画面をディスプレイ17に表示させる(S12)。S_Empty報知画面は、対応するタンク160がインクエンプティ状態になったことを、ユーザに報知するための画面である。S_Empty報知画面は、例えば、インクエンプティ状態のタンク160に貯留されているインクの色、インク量Vc、Vs、及び誤差情報C、Sを示す情報を含んでもよい。
また、コントローラ130は、“ON”が設定されたS_Emptyフラグに対応するカートリッジ200それぞれに対して、S13~S17の処理を実行する。すなわち、S13~S17の処理は、4つのカートリッジ200のうち、対応するS_Emptyフラグに“ON”が設定されたカートリッジ200それぞれに対して実行される。カートリッジ200毎のS13~S17の処理は共通するので、1つのカートリッジ200に対応するS13~S17の処理のみを説明する。
まず、コントローラ130は、装着センサ154が出力する信号を取得する(S13)。次に、コントローラ130は、装着センサ154から取得した信号がハイレベル信号及びローレベル信号のどちらであるかを判断する(S14)。そして、コントローラ130は、装着センサ154が出力する信号がローレベル信号からハイレベル信号に変化するまで(S14:No)、所定の時間間隔でS13、S14の処理を繰り返し実行する。換言すれば、コントローラ130は、カートリッジ200が装着ケース150から抜き出されるまで、S13、S14の処理を繰り返し実行する。
そして、コントローラ130は、装着センサ154からローレベル信号を取得し、その後に装着センサ154からハイレベル信号を取得したことに基づいて(S14:Yes)、CTG交換処理を実行する(S15)。CTG交換処理は、装着ケース150に新たに装着されたカートリッジ200のCTG情報を、EEPROM134に記憶させる処理である。CTG交換処理の詳細は、図8(A)を参照して後述する。また、コントローラ130は、C_Emptyフラグに初期値“OFF”を設定し、S_Emptyフラグに初期値“OFF”を設定し、カウント値Nに初期値“0”を設定する(S16)。さらに、コントローラ130は、残量更新処理を実行する(S17)。残量更新処理は、EEPROM134に記憶されたインク量Vc、Vs及び高さHc、Hsを更新する処理である。残量更新処理の詳細は、図9を参照して後述する。
また詳細は後述するが、コントローラ130は、残量更新処理と並行して或いは残量更新処理が終了したことに基づいて、S11以降の処理を再び実行する。そして、コントローラ130は、4つのS_Emptyフラグの全てに“OFF”が設定されていることに基づいて(S11:OFF)、現時点で4つの液面センサ155それぞれから出力されている信号を取得する(S18)。さらにS18において、コントローラ130は、液面センサ155から取得した信号がハイレベル信号及びローレベル信号のどちらかを示す情報を、RAM133に記憶させる。
そして、コントローラ130は、記録指示に含まれる画像データで示される画像をシートに記録する(S19)。より詳細には、コントローラ130は、給送トレイ15上のシートを給送ローラ23及び搬送ローラ25に搬送させ、ヘッド21にインクを吐出させ、画像が記録されたシートを排出ローラ27に排出トレイ16へ排出させる。すなわち、コントローラ130は、4つのS_Emptyフラグの全てに“OFF”が設定されているときにインクの吐出を許可する。一方、コントローラ130は、4つのS_Emptyフラグの少なくとも1つに“ON”が設定されているときにインクの吐出を禁止する。
次に、コントローラ130は、記録指示に従ってシートに画像を記録したことに基づいて、現時点で4つの液面センサ155それぞれから出力されている信号を取得する(S20)。S20において、S18と同様に、コントローラ130は、液面センサ155から取得した信号がハイレベル信号及びローレベル信号のどちらかを示す情報を、RAM133に記憶させる。そして、コントローラ130は、カウント処理を実行する(S21)。カウント処理は、S18、S20で液面センサ155から取得した信号に基づいて、カウント値N、C_Emptyフラグ、及びS_Emptyフラグを更新する処理である。カウント処理の詳細は、図10を参照して後述する。
次に、コントローラ130は、記録指示で示された全ての画像をシートに記録するまで(S22:Yes)、S11~S21の処理を繰り返し実行する。そして、コントローラ130は、記録指示で示される全ての画像をシートに記録したことに基づいて(S22:No)、4つのS_Emptyフラグそれぞれの設定値及び4つのC_Emptyフラグそれぞれの設定値を判断する(S23、S24)。
コントローラ130は、4つのS_Emptyフラグの少なくとも1つに“ON”が設定されていることに基づいて(S23:ON)、S_Empty報知画面をディスプレイ17に表示させる(S25)。また、コントローラ130は、4つのS_Emptyフラグの全てに“OFF”が設定されており、且つ4つのC_Emptyフラグの少なくとも1つに“ON”が設定されていることに基づいて(S23:OFF&S24:ON)、C_Empty報知画面をディスプレイ17に表示させる(S26)。
S25で表示されるS_Empty報知画面は、S12と同様であってもよい。また、C_Empty報知画面は、“ON”が設定されたC_Emptyフラグに対応するカートリッジ200がカートリッジエンプティ状態になったことを、ユーザに報知するための画面である。C_Empty報知画面は、例えば、カートリッジエンプティ状態のカートリッジ200に貯留されているインクの色、インク量Vc、Vs、及び誤差情報C、Sを示す情報を含んでもよい。一方、コントローラ130は、4つのS_Emptyフラグ及び4つのC_Emptyフラグの全てに“OFF”が設定されていることに基づいて(S24:OFF)、S25、S26の処理を実行せずに、画像記録処理を終了する。
なお、排出指示の具体例は記録指示に限定されず、ノズル29のメンテナンスを指示するメンテナンス指示等であってもよい。コントローラ130は、例えばメンテナンス指示を取得したことに基づいて、図7と同様の処理を実行する。メンテナンス指示を取得した場合の前述の処理との相違点は、以下の通りである。まず、コントローラ130は、S19において、不図示のメンテナンス機構を駆動させて、ノズル29を通じてインクを排出させる。また、コントローラ130は、カウント処理を実行した後にS22の処理を実行することなく、S23以降の処理を実行する。
[CTG交換処理]
次に図8(A)を参照して、S15でコントローラ130が実行するCTG交換処理の詳細を説明する。まず、コントローラ130は、装着センサ154が出力する信号を取得する(S31)。次に、コントローラ130は、装着センサ154から取得した信号がハイレベル信号及びローレベル信号のどちらであるかを判断する(S32)。そして、コントローラ130は、装着センサ154が出力する信号がハイレベル信号からローレベル信号に変化するまで(S32:No)、所定の時間間隔でS31、S32の処理を繰り返し実行する。換言すれば、コントローラ130は、新たにカートリッジ200が装着ケース150に装着されるまで、S31、S32の処理を繰り返し実行する。
そして、コントローラ130は、装着センサ154からハイレベル信号を取得し、その後に装着センサ154からローレベル信号を取得したことに基づいて(S32:Yes)、接点152を通じてICチップ247のメモリからCTG情報を読み出す(S33)。さらに、S33において、コントローラ130は、読み出したCTG情報をEEPROM134に記憶させる。次に、コントローラ130は、誤差情報C、SをEEPROM134から読み出し、読み出した誤差情報C、Sそれぞれの設定値を判断する(S34、S35)。
次に、コントローラ130は、読み出した誤差情報C、Sの両方に“小”が設定されていると判断したことに基づいて(S34:小&S35:小)、誤差フラグに“OFF”を設定する(S36)。一方、コントローラ130は、読み出した誤差情報C、Sの少なくとも一方に“大”が設定されていると判断したことに基づいて(S34:大/S35:大)、誤差フラグに“ON”を設定する(S37)。
[残量更新処理]
次に図9を参照して、S17でコントローラ130が実行する残量更新処理の詳細を説明する。なお、以下の説明では、図11(A)に示されるように、タンク160内にインクが貯留されていない状態の装着ケース150に、新品(すなわち、最大インク量Vc0のインクが貯留された)カートリッジ200が装着された場合を前提とする。また、残量更新処理は、S32で新たにカートリッジ200の装着を検出した時刻tk-1から期間Δtが経過した時刻tkに実行されるものとする。すなわち、この場合の期間Δt=tk-tk-1である。
まず、コントローラ130は、対応するC_Emptyフラグの設定値を判断する(S51)。S17で実行される残量更新処理の開始時点では、S16でC_Emptyフラグに“OFF”が設定されている。次に、コントローラ130は、C_Emptyフラグに“OFF”が設定されていると判断したことに基づいて(S51:OFF)、残量算出処理を実行する(S52)。残量算出処理は、流出量Qa、Qc、インク量Vc、Vs、高さHc、Hs、及び誤差情報C、Sを算出する処理である。図7(B)を参照して、残量算出処理の詳細を説明する。
[残量算出処理]
まず、流出量Qaは、流出口174を通じて液室171から期間Δtの間に流出するインクの量を示す。S12~S17の実行時点でヘッド21を通じてインクが排出されていないので、インク排出量Dh(tk-1)、Dh(tk)は、いずれも0となる。すなわち、コントローラ130は、式1を用いて、流出量Qa=0を算出する(S41)。
次に、流出量Qcは、連通されたニードル181の内部空間及びインクバルブ室213を通じて、期間Δtの間に液室210から液室171に流出するインクの量を示す。コントローラ130は、EEPROM134に記憶された高さHc、Hsを、時刻tk-1における高さHc’、Hs’として読み出す。また、コントローラ130は、粘度ρ、流路抵抗Rc、Rs、RnをEEPROM134から読み出す。そして、コントローラ130は、EEPROM134から読み出した情報と、重力加速度gと、直前に算出した流出量Qa=0とを式2に設定して、流出量Qcを算出する(S41)。
流出量Qcは、式2で示されるように、高さHc’、Hs’の差(すなわち、水頭差)が大きいほど大きくなり、水頭差が小さいほど小さくなる。また、流出量Qcは、インクが実際に通過すインクバルブ室213及びニードル181の内部空間の流路抵抗Rnが大きいほど小さくなり、流路抵抗Rnが小さいほど大きくなる。
また、液室210から液室171にインクが移動すると、液室210は一時的に大気圧から減圧され、液室171は一時的に大気圧より加圧される。液室210内の圧力と大気圧との圧力差は、大気バルブ室214を通じて液室210に空気が流入することによって解消される。さらに、流出量Qa=0の場合において、液室171内の圧力と大気圧との圧力差は、大気連通室175を通じて液室171から空気が流出することによって解消される。
そして、これらの圧力差は、液室210から液室171へのインクの移動を阻害する。すなわち、流出量Qcは、流路抵抗Rcが大きいほど小さくなり、流路抵抗Rcが小さいほど大きくなる。また、流出量Qa=0のときの流出量Qcは、流路抵抗Rsが大きいほど小さくなり、流路抵抗Rsが小さいほど大きくなる。
次に、コントローラ130は、EEPROM134に記憶されたインク量Vcを、時刻tk-1におけるインク量Vc’として読み出す。そして、コントローラ130は、EEPROM134から読み出したインク量Vc’と、直前に算出した流出量Qcとを式3に設定して、時刻tkにおけるインク量Vcを算出する(S42)。すなわち、コントローラ130は、時刻tk-1におけるインク量Vc’から、期間Δtの間に液室210から液室171に流出したインクの流出量Qcを減じて、時刻tkにおけるインク量Vcを算出する。
またS42において、コントローラ130は、EEPROM134に記憶されたインク量Vsを、時刻tk-1におけるインク量Vs’として読み出す。そして、コントローラ130は、EEPROM134から読み出したインク量Vs’と、直前に算出した流出量Qa、Qcとを式4に設定して、時刻tkにおけるインク量Vsを算出する。すなわち、コントローラ130は、時刻tk-1におけるインク量Vs’に、期間Δtの間にタンク160から流出したインクの流出量Qaを減じ、且つ期間Δtの間に液室210から液室171に流出したインクの流出量Qcを加えて、時刻tkにおけるインク量Vsを算出する。
またS42において、コントローラ130は、EEPROM134に記憶された関数Fcを読み出す。そして、コントローラ130は、式5で示されるように直前に算出したインク量Vcを関数Fcに設定して、時刻tkにおける高さHcを特定する。さらにS42において、コントローラ130は、直前に算出したインク量Vsと容積Vthとを比較する。そして、コントローラ130は、インク量Vsが容積Vth以下(すなわち、図11(A)に示されるように、液室171の液面が境界位置P以下)だと判断したことに基づいて、式6で示されるように時刻tkにおける高さHs=0と特定する。一方、コントローラ130は、インク量Vsが容積Vthより多い(すなわち、図11(B)及び図12(A)に示されるように、液室171の液面が境界位置Pより高い)と判断したことに基づいて、EEPROM134から関数Fsを読み出す。そして、コントローラ130は、式6で示されるように直前に算出したインク量Vsを関数Fsに設定して、時刻tkにおける高さHsを特定する(S42)。
次に、コントローラ130は、誤差フラグをEEPROM134から読み出し、読み出した誤差フラグの設定値を判断する(S43)。次に、コントローラ130は、誤差フラグに“OFF”が設定されていると判断したことに基づいて(S43:OFF)、直前のS42で算出した高さHc、Hsの差と閾値高さHthとを比較する(S44)。S44で用いる閾値高さHthは、後述するS56で用いる閾値高さHthと同一でもよいし、異なってもよい。より典型的には、S44で用いる閾値高さHthは、S56で用いる閾値高さHthより大きな値でもよい。
次に、コントローラ130は、高さHc、Hsの差が閾値高さHth以上だと判断したことに基づいて(S44:Yes)、誤差情報C、Sに“大”を設定する(S45)。一方、コントローラ130は、高さHc、Hsの差が閾値高さHth未満だと判断したことに基づいて(S44:No)、誤差情報C、Sに“小”を設定する(S46)。また、コントローラ130は、誤差フラグに“ON”が設定されていると判断したことに基づいて(S43:ON)、S44の処理を実行せずに、S45の処理を実行する。
次に、コントローラ130は、S42~S46で決定したインク量Vc、Vs、高さHc、Hs、及び誤差情報C、SをEEPROM134に記憶させる(S47)。より詳細には、コントローラ130は、EEPROM134に記憶されているインク量Vc、Vs、高さHc、Hs、及び誤差情報C、Sを、直前のS42~S46で決定したインク量Vc、Vs、高さHc、Hs、及び誤差情報C、Sで上書きする。
また、コントローラ130は、S42~S46で算出したインク量Vc、高さHc、及び誤差情報Cを、接点152を通じてICチップ247のメモリに記憶させる(S48)。より詳細には、コントローラ130は、ICチップ247のメモリの第2領域に記憶されているインク量Vc、高さHc、及び誤差情報Cを、直前のS42~S46で決定したインク量Vc、高さHc、及び誤差情報Cで上書きする。
なお、コントローラ130は、S48の処理に先立って、カバーセンサ88から出力されている信号を取得し、取得した信号がハイレベル信号かローレベル信号かを判断してもよい。そして、コントローラ130は、カバーセンサ88からハイレベル信号を取得したことに基づいて、S48の処理を実行してもよい。換言すれば、コントローラ130は、カバー87が被覆位置から移動(さらに換言すれば、露出位置に位置)したことに基づいて、S48の処理を実行してもよい。一方、コントローラ130は、カバーセンサ88からローレベル信号を取得したことに基づいて、S48の処理を実行せずに、残量算出処理を終了してもよい。
次に図9に戻って、コントローラ130は、誤差フラグをEEPROM134から読み出し、読み出した誤差フラグの設定値を判断する(S53)。そして、コントローラ130は、誤差フラグに“OFF”が設定されていると判断したことに基づいて(S53:OFF)、ディスプレイ17に残量報知情報を表示させる(S54)。一方、コントローラ130は、誤差フラグに“ON”が設定されていると判断したことに基づいて(S53:ON)、ディスプレイ17に誤差報知情報を表示させる(S55)。すなわち、コントローラ130は、装着ケース150にカートリッジ200が装着された時点の誤差情報C、Sの設定値に基づいて(S34~S37)、残量報知情報或いは誤差報知情報をディスプレイ17に表示させる(S53~S55)。
残量報知情報は、カートリッジ200の液室210及びタンク160の液室171に貯留されているインクの残量を報知するための情報である。残量報知情報は、例えば、EEPROM134に記憶されているインク量Vc、Vsそのものでもよいし、インク量Vc、Vsに相当するインクで画像を記録可能なシートの枚数の推定値でもよい。誤差報知情報は、EEPROM134に記憶されているインク量Vc、Vsが誤差を含むことを報知するための情報である。誤差報知情報は、例えば、「インク量を検出することができません。」等のメッセージでもよい。S55の処理は、報知機を作動させることの一例である。また、コントローラ130は、S55において、上述の残量報知情報上に、「?」、「!」又は「誤差あり」などの文字をオーバーレイさせて、ディスプレイ17に表示させてもよい。このような態様も誤差報知情報の一例としてもよい。
また、残量報知情報或いは誤差報知情報は、ディスプレイ17に表示中の画面(例えば、S_Empty報知画面、C_Empty報知画面、待機画面など)の一部に表示されてもよい。換言すれば、ディスプレイ17の一部には、4つカートリッジ200及びタンク160それぞれに対応付けられた4つの残量報知情報或いは誤差報知情報が表示されてもよい。一方、残量報知情報或いは誤差報知情報は、操作パネル22を通じたユーザの指示に従って表示される残量報知画面に表示されてもよい。
次に、コントローラ130は、高さHc、HsをEEPROM134から読み出し、読み出した高さHc、Hsの差と閾値高さHthとを比較する(S56)。閾値高さHthは、液室210、171の間において、実質的にインクが移動しないと考えられる水頭差を示す。閾値高さHthは、例えば、0である。液室210、171の間において、実質的にインクが移動しない状態を、平衡状態とする。すなわち、この平衡状態では、液室210、171の水頭差が実質的に0である。
次に、コントローラ130は、高さHc、Hsの差が閾値高さHth以上だと判断したことに基づいて(S56:No)、装着センサ154が出力する信号を取得する(S57)。次に、コントローラ130は、装着センサ154から取得した信号がハイレベル信号及びローレベル信号のどちらであるかを判断する(S58)。そして、コントローラ130は、装着センサ154が出力する信号がローレベル信号からハイレベル信号に変化するまで(S58:No)、或いは直前にS52~S55の処理を実行してから期間Δtが経過するまで(S59:No)、期間Δtより短い所定の時間間隔でS57、S58の処理を繰り返し実行する。
次に、コントローラ130は、装着センサ154の出力が変化しないうちに期間Δtが経過したことに基づいて(S58:No&S59:Yes)、S51以降の処理を再び実行する。換言すれば、コントローラ130は、直前にS52~S55の処理を実行してから期間Δtが経過するまでの間、次のS52~S55の処理の実行を待機する。S51~S59の処理が繰り返し実行されることによって、図11(A)~図12(A)に示されるように、高さHc、Hsの差が徐々に小さくなる。そして、コントローラ130は、高さHc、Hsの差が閾値高さHth未満だと判断したことに基づいて(S56:Yes)、残量更新処理を終了する。すなわち、4つのカートリッジ200それぞれに対応する残量更新処理は、別々のタイミングで終了する可能性がある。
ここで、コントローラ130は、S59における期間Δtを可変にしてもよい。より詳細には、コントローラ130は、S59における期間Δtを、直前のS52で算出した高さHc、Hsの差が大きいほど短くし、直前のS52で算出した高さHc、Hsの差が小さいほど長くしてもよい。すなわち、コントローラ130は、繰り返し実行するS52~S55の処理の間隔(換言すれば、インク量Vc、Vs、高さHc、Hs、及び誤差情報C、Sの更新間隔)を、高さHc、Hsの差が大きいほど短くし、高さHc、Hsの差が小さいほど長くしてもよい。
一方、コントローラ130は、期間Δtが経過する前に装着センサ154の出力がローレベル信号からハイレベル信号に変化したと判断したことに基づいて(S59:No&S58:Yes)、S51~S59の処理に代えて、S60~S61の処理を実行する。装着センサ154の出力がローレベル信号からハイレベル信号に変化するのは、装着ケース150からカートリッジ200が抜かれたことに対応する。すなわち、コントローラ130は、装着ケース150にカートリッジ200が装着されている間に、S52~S55の処理を繰り返し実行する。また、コントローラ130は、装着ケース150からカートリッジ200が抜かれたことに基づいて、S52~S55の処理を実行しない。換言すれば、S52~S55の処理は、装着ケース150からカートリッジ200が抜かれたことに基づいて、停止される。S60、S61の処理は、図7のS15、S16の処理に対応する。
一例として、コントローラ130は、S17で開始した残量更新処理が終了したことに基づいて、S11以降の処理を実行してもよい。この場合は、図12(A)に示されるように、液室210、171の液面が揃った状態で、ヘッド21を通じたインクの排出が開始される。他の例として、コントローラ130は、S17で開始した残量更新処理と並行して、S11以降の処理を実行してもよい。この場合は、図11(B)に示されるように、液室210、171の間に水頭差が生じた状態で、ヘッド21を通じたインクの排出が開始される。
[カウント処理]
次に図10を参照して、S21でコントローラ130が実行するカウント処理の詳細を説明する。なお、コントローラ130は、4つのカートリッジ200のそれぞれに対して、カウント処理を独立して実行する。カートリッジ200毎のカウント処理は共通するので、1つのカートリッジ200に対応するカウント処理のみを説明する。
まず、コントローラ130は、S18、S20でRAM133に記憶させた液面センサ155の信号を示す情報を比較する(S71)。すなわち、コントローラ130は、カウント処理(S21)を実行する直前のS19の処理を実行する前と後とで、4つの液面センサ155それぞれの信号が変化したか否かを判断する。
コントローラ130は、S18、S20でRAM133に記憶させた情報が共にローレベル信号を示す(すなわち、S19の処理の前後で液面センサ155の出力が変化していない)ことに基づいて(S71:L→L)、残量更新処理を実行する(S72)。一方、S17で残量更新処理が開始され且つ平衡状態になる前にS19の処理が実行された場合は、S17で開始された残量更新処理が継続して実行されているので、S72で改めて残量更新処理を開始する必要がない。S72における残量更新処理は、流出量Qa≠0である点で前述の説明と相違する。以下、前述の説明との共通点の詳細な説明を省略し、相違点を中心に説明する。
まず、コントローラ130は、S19の開始時刻tk-1から終了時刻tkまでのインク排出量Dhを式1に設定して、流出量Qaを算出する(S41)。この場合の期間Δtは、1枚のシートに画像を記録するのに要する期間に相当する。また、この場合のインク排出量Dhは、1枚のシートに吐出されるべきインクの総排出量に相当する。すなわち、コントローラ130は、1枚のシートへの画像の記録が終了する度に、S21の処理を実行すればよい。但し、期間Δt及びインク排出量Dhの具体例は、これらに限定されない。
他の例として、期間Δtは、1パス分の画像の記録を実行するのに要する期間に相当する。この場合において、時刻tk-1は、1パス分の画像の記録が開始される時刻である。また、時刻tkは、1パス分の画像の記録が終了した時刻である。また、インク排出量Dh(tk-1)は、S19の開始から時刻tk-1までに排出を指示したインク量に相当する。さらに、インク排出量Dh(tk)は、S19の開始から時刻tkまでに排出を指示したインク量に相当する。すなわち、コントローラ130は、1パス分の画像の記録が終了する度に、S21の処理を実行してもよい。さらに他の例として、コントローラ130は、画像記録の区切りとは関係のない任意のタイミングで、S21の処理を実行してもよい。
また、コントローラ130は、EEPROM134に記憶された高さHc’、Hs’、粘度ρ、及び流路抵抗Rc、Rs、Rnと、直前に算出した流出量Qaとを式2に設定して、流出量Qcを算出する(S41)。
平衡状態の液室210、171は、共に大気圧に維持されている。この状態からヘッド21を通じてインクが排出されると、流出口174を通じて液室171からインクが流出する。さらに、ニードル181の内部空間及びインクバルブ室213を通じて液室210から液室171にインクが移動する。そして、流出量Qaが大きくなると液室210、171の水頭差が大きくなるので、流出量Qcは、流出量Qaが大きいほど大きくなる。
また、液室171は、ヘッド21を通じてインクが排出されることによって一時的に大気圧から減圧される。そして、液室171内の圧力と大気圧との圧力差は、液室210から液室171にインクが移動し、且つ大気連通室175を通じて液室171に空気が流入することによって解消される。そして、大気連通室175を通じて液室171に流入する空気の量は、流路抵抗Rsが大きいほど少なくなり、流路抵抗Rsが小さいほど大きくなる。そうすると、流出量Qa>0のときの流出量Qcは、液室171内を大気圧に戻すために、流路抵抗Rsが大きいほど大きくなり、流路抵抗Rsが小さいほど小さくなる。
また図10に戻って、コントローラ130は、S18でRAM133に記憶させた情報がローレベル信号を示し、S20でRAM133に記憶させた情報がハイレベル信号を示す(すなわち、S19の処理の前後で液面センサ155の出力が変化した)ことに基づいて(S71:L→H)、C_Emptyフラグに“ON”を設定する(S73)。液面センサ155の出力がローレベル信号からハイレベル信号に変化するのは、図12(B)に示されるように、S19の処理中に液室171の液面が境界位置Pに達したことに対応する。そして、これ以降は、カートリッジ200とタンク160との間でインクが移動しない。そこで図9に示されるように、コントローラ130は、C_Emptyフラグに“ON”が設定されたことに基づいて(S51:ON)、残量更新処理を終了する。
また、コントローラ130は、EEPROM134に記憶されたインク量Vcを、予め定められた所定値(=0)で上書きする(S74)。同様に、コントローラ130は、EEPROM134に記憶されたインク量Vsを、予め定められた所定値(=容積Vth-インク排出量Dh)で上書きする(S74)。残量更新処理で算出されるインク量Vc、Vsは誤差を含むので、S52の処理の繰り返し回数が増えるほど、インク量Vc、Vsに累積される誤差が大きくなる。そこで、コントローラ130は、液面センサ155の出力がローレベル信号からハイレベル信号に変化したタイミングで、インク量Vc、Vsに予め定められた値を設定して、累積した誤差をリセットする。
なお前述したように、インク排出量Dhは、直前のS19で1枚のシートに吐出されるインク量に相当する。一方、液面センサ155の出力が変化するのは、S19の処理の途中である。すなわち、S74で上書きされたインク量Vsは、液面センサ155の出力が変化した瞬間にタンク160に貯留されているインクの量とは僅かにズレを生じている。しかしながら、このズレは僅かなので、S74で上書きしたインク量Vsを、液面センサ155の出力が変化した時点のインク量Vsとして扱うものとする。
また、コントローラ130は、EEPROM134に記憶されたカウント値Nに、インク排出量Dhを設定する(S75)。すなわち、コントローラ130は、直前のS19で排出を指示したインク量に相当する値で、カウント値Nをカウントアップする。換言すれば、コントローラ130は、液面センサ155の出力がローレベル信号からハイレベル信号に変化したことに基づいて、カウント値Nの更新を開始する。
次に、コントローラ130は、誤差フラグをEEPROM134から読み出し、読み出した誤差フラグの設定値を判断する(S76)。次に、コントローラ130は、誤差フラグに“OFF”が設定されていると判断したことに基づいて(S76:OFF)、S75で更新したカウント値Nと、閾値Nth1とを比較する(S77)。そして、コントローラ130は、S75で更新したカウント値Nが閾値Nth1未満だと判断したことに基づいて(S77:No)、S79の処理を実行せずに、カウント処理を終了する。一方、コントローラ130は、S75で更新したカウント値Nが閾値Nth1以上だと判断したことに基づいて(S77:Yes)、S_Emptyフラグに“ON”を設定して(S79)、カウント処理を終了する。
一方、コントローラ130は、誤差フラグに“ON”が設定されていると判断したことに基づいて(S76:ON)、S75で更新したカウント値Nと、閾値Nth2とを比較する(S78)。そして、コントローラ130は、S75で更新したカウント値Nが閾値Nth2未満だと判断したことに基づいて(S78:No)、S79の処理を実行せずに、カウント処理を終了する。一方、コントローラ130は、S75で更新したカウント値Nが閾値Nth2以上だと判断したことに基づいて(S78:Yes)、S_Emptyフラグに“ON”を設定して(S79)、カウント処理を終了する。
また、コントローラ130は、S18、S20でRAM133に記憶させた情報が共にハイレベル信号を示すことに基づいて(S71:H→H)、EEPROM134に記憶されているインク量Vsを読み出す。そして、コントローラ130は、読み出したインク量Vsからインク排出量Dhを減じて、再びEEPROM134に記憶させる(S80)。また、コントローラ130は、EEPROM134に記憶されているカウント値Nを読み出す。そして、コントローラ130は、読み出したカウント値Nにインク排出量Dhを加算して、再びEEPROM134に記憶させる(S81)。すなわち、コントローラ130は、直前のS19で排出を指示したインク排出量Dhで、EEPROM134に記憶されたインク量Vs及びカウント値Nを更新する。次に、コントローラ130は、S81で更新したカウント値Nを用いて、前述したS76以降の処理を実行する。
すなわち、コントローラ130は、ヘッド21を通じてインクを排出させる度に、カートリッジ200毎にカウント処理を実行する。例えば、1つのカートリッジ200を対象として見ると、装着ケース150に装着されてからしばらくの間は残量更新処理が実行され(S71:L→L)、液面センサ155の出力が変化したタイミングでS73~S79の処理が1回だけ実行され(S71:L→H)、その後はタンク160内のインクがなくなるまでS80~S81、S76~S79の処理が実行されることになる(S71:H→H)。
そして、コントローラ130は、装着ケース150にカートリッジ200が装着された時点の誤差情報C、Sの設定値に基づいて(S34~S37)、閾値Nth1、Nth2の一方を選択する(S76)。そして、コントローラ130は、カウント値Nが選択した閾値に達したことに基づいて(S77:Yes/S78:Yes)、ヘッド21を通じたインクの排出を禁止する(S79)。カウント値Nが閾値Nth1に達したことは、カウントした排出量が第1液体量に達したことの一例である。カウント値Nが閾値Nth2に達したことは、カウントした排出量が第2液体量に達したことの一例である。なお、第1液体量は、装着ケース150にカートリッジ200に装着された時点のインク量Vc、Vsの和より少なく且つ第2液体量より多い。
[作用効果]
上述の説明によれば、例えば、プリンタ10から抜かれたカートリッジ200が他のプリンタ10に装着された場合において、当該他のプリンタ10は、ICチップ247のメモリに記憶されたインク量Vcに含まれる誤差の大きさを、誤差情報Cによって把握することができる。なお、液室210、171の間の水頭差が大きいほど、液室210から液室171へ移動するインクの量が多くなるので、算出したインク量Vcと液室210に実際に貯留されているインク量との差は、大きくなる傾向がある。そこで上記の実施形態のように、算出した高さHc、Hsの差に基づいて、誤差の大きさを判断するのが望ましい。
また、上述の説明によれば、プリンタ10は、高さHc、Hsの差が閾値高さ未満Hth未満になるまで(S56:No)、S52~S55の処理を繰り返し実行する。これにより、プリンタ10からカートリッジ200が抜かれる直前に記憶されたインク量Vc及び誤差情報Cを、当該カートリッジ200が装着された他のプリンタ10に利用させることができる。その結果、インク量Vc及び誤差情報Cを書き込んだプリンタ10から抜かれ、他のプリンタ10に装着された場合において、当該他のプリンタ10がインク量Vcに含まれる誤差の大きさを適切に把握することができる。
また、インク量Vcに含まれる誤差は、高さHc、Hsの差が大きいほど大きくなり、高さHc、Hsの差が小さいほど小さくなる傾向がある。そこで上記の実施形態のように、高さHc、Hsの差に基づいてS52の処理の実行頻度を変更することによって、リアルタイムな誤差情報Cの把握と、コントローラ130の処理負荷の軽減とを両立させることができる。
なお、誤差情報C、Sの具体例は、上述の例に限定されない。他の例として、誤差情報C、Sは、直前のS42で算出したインク量Vc、Vsのセットでもよい。この場合の誤差情報C、Sは、インク量Vc、Vsの差が大きいほど誤差が大きいことを示し、インク量Vc、Vsの差が小さいほど誤差が小さいことを示す。さらに他の例として、誤差情報C、Sは、直前のS42で算出した高さHc、Hsのセットでもよい。この場合の誤差情報C、Sは、高さHc、Hsの差が大きいほど誤差が大きいことを示し、高さHc、Hsの差が小さいほど誤差が小さいことを示す。
また、インク量Vcに含まれる誤差が大きい状態とは、インク量Vsに含まれる誤差が大きい状態と同義である。すなわち、誤差情報Sで示される誤差が大きい状態でカートリッジ200が交換された場合、新たなカートリッジ200のICチップ247のメモリに記憶されたインク量Vcが誤差を含んでいないとしても、EEPROM134に記憶されたインク量Vsは誤差を含むことになる。
そこで上述の説明によれば、プリンタ10は、誤差情報C、Sの少なくとも一方に“大”が設定されている場合に誤差報知情報をディスプレイ17に表示させる。これにより、ユーザは、カートリッジ200及びタンク160に実際に貯留されているインク量と、インク量Vc、Vsとに差があることを、適切に把握することができる。但し、誤差情報C、Sと誤差報知情報との関係は、上述の例に限定されない。
S44~S46の他の例として、コントローラ130は、高さHc、Hsの差が第1閾値高さ未満であることに基づいて、誤差情報C、Sに“小”を設定してもよい。また、コントローラ130は、高さHc、Hsの差が第1閾値高さ以上で且つ第2閾値高さ未満であることに基づいて、誤差情報C、Sに“中”を設定してもよい。さらに、コントローラ130は、高さHc、Hsの差が第2閾値高さ以上であることに基づいて、誤差情報C、Sに“大”を設定してもよい。なお、第2閾値高さは、第1閾値高さより大きい。第1閾値高さは第1誤差の一例であり、第2閾値高さは第2誤差の一例である。
またS53~S55の他の例として、コントローラ130は、装着ケース150にカートリッジ200が装着された時点の誤差情報C、Sの設定値に基づいて、以下の情報をディスプレイ17に表示させてもよい。すなわち、コントローラ130は、誤差情報C、Sの全てに“小”が設定されていることに基づいて、インク量Vc、Vsを示す残量報知情報をディスプレイ17に表示させてもよい。また、コントローラ130は、誤差情報C、Sの少なくとも1つに“中”が設定されていることに基づいて、補正したインク量Vc、Vsを示す残量報知情報と、残量報知情報が補正されていることを示す誤差報知情報とをディスプレイ17に表示させてもよい。さらに、コントローラ130は、誤差情報C、Sの少なくとも1つに“大”が設定されていることに基づいて、液室210、171に貯留されているインクの量が不明なことを示す誤差報知情報をディスプレイ17に表示させてもよい。
上述の説明によれば、プリンタ10は、誤差情報C、Sで示される誤差が小さい場合にインク量Vc、Vsをディスプレイ17を通じて報知し、誤差情報C、Sで示される誤差が大きい場合にインク量Vc、Vsが信頼できない値であることをディスプレイ17を通じて報知する。すなわち、ユーザは、このディスプレイ17に表示された情報によって、装着されたカートリッジ200及びタンク160の状態を適切に把握することができる。
なお、インク量Vc、Vsを補正する具体的な方法は特に限定されないが、例えば、以下の方法が考えられる。コントローラ130は、インク量Vcから予め定められた補正値を減じ、インク量Vsから補正値を加算してもよい。そして、コントローラ130は、誤差情報C、Sの少なくとも一方に“大”が設定されている場合に、誤差情報C、Sの両方に“大”が設定されていない場合より、補正値を大きくすればよい。また、コントローラ130は、誤差情報C、Sの少なくとも一方に“中”が設定されている場合に、誤差情報C、Sの両方に“中”が設定されている場合より、補正値を大きくすればよい。すなわち、コントローラ130は、誤差情報C、Sで示される誤差の向きに、誤差情報C、Sで示される誤差の大きさに応じた補正値で、インク量Vc、Vsを補正すればよい。
また、上述の説明によれば、プリンタ10は、誤差情報C、Sの両方に“小”が設定されている場合に閾値Nth1を選択し、誤差情報C、Sの少なくとも一方に“大”が設定されている場合に閾値Nth2を選択する。これにより、装着ケース150がカートリッジ200に装着されてからヘッド21を通じて排出可能なインク量は、誤差情報C、Sの少なくとも一方に“大”が設定されている場合に、誤差情報C、Sの両方に“小”が設定されている場合より少なくなる。その結果、ヘッド21を通じたインクの排出が禁止される前にタンク160の液面が流出口174に達して、ヘッド21に空気が供給されること(所謂、エアイン)が抑制される。
但し、エアインを抑制する具体的な方法は、上述の例に限定されない。他の例として、コントローラ130は、S74において、誤差フラグに“OFF”が設定されていることに基づいて、カウント値Nに第1初期値(例えば、0)を設定してもよい。一方、コントローラ130は、S74において、誤差フラグに“ON”が設定されていることに基づいて、カウント値Nに第2初期値(例えば、Dh)を設定してもよい。そして、コントローラ130は、S76~S78において、カウント値Nと閾値Nthとを比較すればよい。なお、第2初期値は、第1初期値より閾値Nthに近い値である。このように、カウント値N及び閾値Nthの一方或いは両方を調整することによって、ヘッド21から排出可能な液体の量を調整すればよい。
また、誤差情報C、Sの具体例としては、前述した”大”や”小”に限定されない。例えば、誤差情報C、Sは、誤差があるときにのみ、ICチップ247のメモリやEEPROM134に書き込まれてもよい。詳細には、図13(A)に示されるように、コントローラ130は、前述されたステップS34、S35に代えて、ステップS101、S102を実行してもよい。また、図13(B)に示されるように、コントローラ130は、前述されたステップS45、S46に代えて、ステップS103、S104を実行してもよい。
図13(A)に示されるように、コントローラ130は、接点152を通じてICチップ247のメモリから読み出したCTG情報に誤差情報Cが含まれているかを判断する(S101)。コントローラ130は、CTG情報に誤差情報Cが含まれていないと判断したことに基づいて(S101:No)、コントローラ130は、EEPROM134の所定領域に、誤差情報Sが記憶されているかを判断する(S102)。
コントローラ130は、EEPROM134の所定領域に、誤差情報Sが記憶されていないと判断したことに基づいて(S102:No)、誤差フラグに“OFF”を設定する(S36)。すなわち、コントローラ130は、CTG情報に誤差情報Cが含まれていないと判断し(S101:No)、且つ、EEPROM134の所定領域に、誤差情報Sが記憶されていないと判断したことに基づいて(S102:No)、誤差フラグに”OFF”を設定する(S36)。
コントローラ130は、CTG情報に誤差情報Cが含まれていると判断したことに基づいて(S101:Yes)、誤差フラグに”ON”を設定する(S37)。また、コントローラ130は、EEPROM134の所定領域に誤差情報Sが記憶されていると判断したことに基づいて(S120:Yes)、誤差フラグに“ON”を設定する(S37)。すなわち、コントローラ130は、CTG情報に誤差情報Cが含まれていると判断し(S101:Yes)、又は、EEPROM134の所定領域に、誤差情報Sが記憶されていると判断したことに基づいて(S120:Yes)、誤差フラグに”ON”を設定する(S37)。
また、図13(B)に示されるように、コントローラ130は、S42で算出した高さHc、Hsの差と閾値高さHthとを比較する(S44)。コントローラ130は、高さHc、Hsの差が閾値高さHth以上だと判断したことに基づいて(S44:Yes)、誤差情報CをICチップ247のメモリに書き込む。さらにコントローラ130は、高さHc、Hsの差が閾値高さHth以上だと判断したことに基づいて(S44:Yes)、誤差情報SをEEPROM134の所定領域に書き込む(S103)。一方、コントローラ130は、高さHc、Hsの差が閾値高さHth未満だと判断したことに基づいて(S44:No)、誤差情報CをICチップ247のメモリから消去する。さらにコントローラ130は、高さHc、Hsの差が閾値高さHth未満だと判断したことに基づいて(S44:No)、誤差情報SをEEPROM134の所定領域から消去する(S104)。なお、誤差情報C,SがICチップ247のメモリやEEPROM134に書き込まれていない場合には、消去する誤差情報C,Sがないので、コントローラ130は、消去動作を実行しない。
また、コントローラ130が、誤差情報C,Sを書き込むか否かの判断や、コントローラ130が、”大”及び”小”のいずれかを設定するための判断は、カートリッジ200に対する誤差情報Cにおける判断と、タンク160に対する誤差情報Sにおける判断とが、それぞれ別個に行われてもよい。つまり、誤差情報Cに対しては、高さHc、Hsの差が閾値高さHth1以上であるかが判断され、誤差情報Sに対しては、高さHc、Hsの差が閾値高さHth2以上であるかが判断されてもよい。閾値高さHth1は第1閾値誤差の一例である。閾値高さHth2は第2閾値誤差の一例である。
例えば、閾値高さHth1は、閾値高さHth2より大きな値である。カートリッジ200の液室210に貯留可能な最大インク量は、タンク160の液室171に貯留可能な最大インク量より多い。また、高さHc、Hsの差により生ずるインク量Vc、Vsに対する誤差は、液室210,171にそれぞれ貯留可能な最大インク量に対する割合が重要であることも想定される。これらを考慮して、閾値高さHth1と、閾値高さHth2とが異なる値であってもよい。
図14に示されるように、コントローラ130は、S42で算出した高さHc、Hsの差と閾値高さHth1とを比較する(S105)。コントローラ130は、高さHc、Hsの差が閾値高さHth1以上だと判断したことに基づいて(S105:Yes)、誤差情報CをICチップ247のメモリに書き込む(S106)。一方、コントローラ130は、高さHc、Hsの差が閾値高さHth1未満だと判断したことに基づいて(S105:No)、誤差情報CをICチップ247のメモリから消去する(S107)。
また、コントローラ130は、S42で算出した高さHc、Hsの差と閾値高さHth2とを比較する(S108)。コントローラ130は、高さHc、Hsの差が閾値高さHth2以上だと判断したことに基づいて(S108:Yes)、誤差情報SをEEPROM134の所定領域に書き込む(S109)。一方、コントローラ130は、高さHc、Hsの差が閾値高さHth2未満だと判断したことに基づいて(S108:No)、誤差情報SをEEPROM134の所定領域から消去する(S110)。
これにより、カートリッジ200の液室210に貯留可能な最大インク量に対する誤差の割合と、タンク160の液室171に貯留可能な最大インク量に対する誤差の割合と、をそれぞれ考慮して、コントローラ130は、液室210,171に対して独立して誤差の有無を判断することができる。
また、閾値高さHth1と、閾値高さHth2とは、高さHc、Hsの差に対するものでなくてもよい。例えば、図12(A)に示されるように、閾値高さHth1は、ある高さHと、現在の各高さHcとの差(ΔHc=Hc-H(第1誤差の一例)に対するものであってもよい。また、閾値高さHth2は、ある高さHと、現在の各高さHsとの差(ΔHs=H-Hs(第2誤差の一例))に対するものであってもよい。なお、高さHとは、高さHc、Hsと差がほぼ無くなった所定状態(すなわち液室210と液室171との間でインクの移動が無視できるほどに小さい状態)における高さである。
また、コントローラ130が、誤差情報C,Sを書き込むか否かの判断や、コントローラ130が、”大”及び”小”のいずれかを設定するための判断は、カートリッジ200が交換されたこと、カートリッジ200が交換されてからの経過時間が所定時間に到達したことをトリガーとして実行されてもよい。つまり、高さHc、Hsの差が、閾値高さHth1以上であるか否かが、コントローラ130によって判断されなくてもよい。
図15に示されるように、コントローラ130は、S33においてCTG情報を読み出してからの経過時間が所定時間に到達したかを判断する(S111)。所定時間は、例えば、次のように設定される。所定の温度及び気圧であって、所定の組成のインク(例えば、染料のブラック)が使用されるとする。図11(A)に示されるように、タンク160の液室171が空であり(Vs=0)、且つ装着されたカートリッジ200の液室210に最大インク量Vc0が貯留されている状態から、図12(A)に示されるように、高さHc、Hsの差がほぼ無くなった所定状態になるまで、の時間が、所定時間として設定されてもよい。例えば、温度及び気圧が高いほど、所定時間が短く設定される。インクの組成は、例えばインクの粘度に影響するので、インクの粘度が高いほど、所定時間が長く設定される。所定時間は、予め定められてEEPROM134に記憶されていてもよい。また、温度及び気圧や、インクの種類と対応した複数の所定時間が、テーブルとしてEEPROM134に格納されており、コントローラ130が、温度や気圧、インクの種類に応じて、当該テーブルから所定時間を選択してもよい。
コントローラ130は、経過時間が所定時間に到達していないと判断したことに基づいて(S111:No)、誤差情報CをICチップ247のメモリに書き込む(S112)。さらに、コントローラ130は、経過時間が所定時間に到達していないと判断したことに基づいて(S111:No)、誤差情報SをEEPROM134の所定領域に書き込む(S112)。一方、コントローラ130は、経過時間が所定時間に到達したと判断したことに基づいて(S111:Yes)、誤差情報CをICチップ247のメモリから消去する。また、コントローラ130は、経過時間が所定時間に到達したと判断したことに基づいて(S111:Yes)、誤差情報SをEEPROM134の所定領域から消去する(S113)。
なお、前述された実施形態では、コントローラ130が、液面センサ155が出力する信号に基づいて、アクチュエータ190の被検出部194が検出位置に位置しているか否かを検出する構成である。しかし、液室171におけるインクの液面が検出できれば、液面センサ155の構成は特に限定されない。例えば、コントローラ130が、液室171の後壁164にインクが接触しているか否かによって異なる反射率を有するプリズムを利用して、液室171におけるインクの液面を光学的に検出するためのセンサであってもよい。また、液面センサ155は、液室171内に挿入された電極棒であってもよい。
また、コントローラ130が、装着センサ154からローレベル信号を受信し、その後に装着センサ154からハイレベル信号を受信し、さらにその後に装着センサ154からローレベル信号を受信したことは、コントローラ130が、装着ケース150内にカートリッジが装着されたと判断したことの一例である。コントローラ130が、装着ケース150内にカートリッジ200が装着されたと判断する、他の例を以下に説明する。
例えば、コントローラ130が、カバーセンサ88からハイレベル信号を受信した後にローレベル信号を受信する。そして、コントローラ130は、ICチップ247のメモリから識別情報を読み出して、EEPROM134に記憶された交換前のカートリッジ200の識別情報と比較する。ICチップ247のメモリから読み出した識別情報と、EEPROM134に記憶された識別情報とが異なると判断したことに応じて、コントローラ130は、装着ケース150においてインクカートリッジ30が交換されたと判断してもよい。つまり、「コントローラ130は、ICチップ247のメモリから識別情報を読み出して、EEPROM134に記憶された交換前のカートリッジ200の識別情報と比較する。その結果、ICチップ247のメモリから読み出した識別情報と、EEPROM134に記憶された識別情報とが異なると判断した」ことが、コントローラ130が、装着ケース150内にカートリッジ200が装着されたと判断することの一例である。
また、例えば、コントローラ130が、カバーセンサ88からハイレベル信号を受信した後にローレベル信号を受信する。そして、コントローラ130は、ディスプレイ17を通じてユーザに、装着ケース150内に新たなカートリッジ200の装着をしたか、を示す確認画面を表示させる。コントローラ130は、ディスプレイ17に確認画面を表示させている一方で、操作パネル22を通じて、当該確認画面に対応する、入力を受信する。受信した当該入力が、装着ケース150内に新たなカートリッジ200の装着した、ことに対応していることに応じて、コントローラ130は、装着ケース150のインクカートリッジ30が交換されたと判断してもよい。つまり、「コントローラ130が、カバーセンサ88からハイレベル信号を受信した後にローレベル信号を受信する。そして、コントローラ130は、ディスプレイ17を通じてユーザに、装着ケース150内に新たなカートリッジ200の装着をしたか、を示す確認画面を表示させる。コントローラ130は、ディスプレイ17に確認画面を表示させている一方で、操作パネル22を通じて、当該確認画面に対応する、入力を受信する。受信した当該入力が、装着ケース150内に新たなカートリッジ200の装着した、ことに対応している」ことが、コントローラ130が、装着ケース150内にカートリッジ200が装着されたと判断することの一例である。
上記実施形態では、供給管230に設けられたインク供給口234と、ニードル181の開口183とが開放されて、供給管230のインクバルブ室213と、ニードル181の内部空間とが連通される例が説明された。インク供給口234は、カートリッジ200の後壁202に設けられてもよい。例えば、インク供給口234として、後壁202を厚み方向に貫通する貫通孔が後壁202に形成されてもよい。インク供給口234の内部空間は、第1流路の一例である。この変形例では、カートリッジ200が装着ケース150に装着される過程において、ニードル181がインク供給口234を通じてカートリッジ200の液室210に進入し、ニードル181の一端(開口183)が、カートリッジ200の液室210の内部に位置する状態となる。これにより、カートリッジ200の液室210と、ニードル181の内部空間とが連通される。すなわち、装着ケース150にカートリッジ200が装着された状態において、ニードル181の内部空間は、カートリッジ200の液室210とタンク160の液室171とを連通させる流路を形成する。
また、開口183が、タンク160の前壁162に設けられてもよい。例えば、開口183として、前壁162を厚み方向に貫通する貫通孔が前壁162に形成されてもよい。開口183の内部空間は、第1流路の一例である。この変形例では、カートリッジ200が装着ケース150に装着される過程において、供給管230が開口183を通じてタンク160の液室171に進入し、供給管230の他端(インク供給口234)が、タンク160の液室171の内部に位置する状態となる。これにより、カートリッジ200の液室210と、ニードル181の内部空間とが連通される。すなわち、装着ケース150にカートリッジ200が装着された状態において、インクバルブ室213は、カートリッジ200の液室210とタンク160の液室171とを連通させる流路を形成する。
また、ICチップ247は、接点152と接触して導通されるが、これにかえて、NFC(near field communication)やRFID(radio frequency identification)のような電波を用いて非接触でデータを読み書きする情報媒体とインタフェースとが採用されてもよい。
また、前述された実施形態では、ヘッド21を通じたインクの排出がシートへの画像記録として説明がされているが、ヘッド21を通じたインクの排出は、ヘッド21のノズル29から強制的にインクを排出させる所謂パージであってもよい。
また、前述された各実施形態では、インクが液体の一例として説明されているが、液体は、例えば、画像記録時にインクに先立って用紙などに吐出される前処理液でもよいし、ヘッド21を洗浄するための水でもよい。