以下、本発明の実施形態について説明する。なお、以下に説明される実施形態は本発明の一例にすぎず、本発明の要旨を変更しない範囲で、本発明の実施形態を適宜変更できることは言うまでもない。また、プリンタ10が使用可能に水平面に設置された使用姿勢を基準として上下方向7が定義され、プリンタ10の開口13が形成された面を前面として前後方向8が定義され、プリンタ10を前面から見て左右方向9が定義される。本実施形態では、使用姿勢において、上下方向7が鉛直方向に相当し、前後方向8及び左右方向9が水平方向に相当する。前後方向8及び左右方向9は、直交している。
[プリンタ10の概要]
本実施形態に係るプリンタ10は、インクジェット記録方式でシートに画像を記録する液体排出装置の一例である。プリンタ10は、概ね直方体形状の筐体14を有している。また、プリンタ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枚のシートに画像が記録される。
なお、本実施形態においては、画像記録におけるヘッド21のノズル29からのインクの排出が「吐出」と称され、他方、パージにおけるヘッド21のノズル29からのインクの排出が「吐出」と称されないが、「吐出」は「排出」に含まれる概念である。
本実施形態では、給送トレイ15は筐体14に対して着脱可能に構成されている。プリンタ10は、トレイセンサ19を有する。トレイセンサ19は、例えば給送トレイ15が接離するスイッチ等の機械式センサであってもよいし、給送トレイ15の位置によって光が遮断或いは透過される光学式センサであってもよい。トレイセンサ19は、給送トレイ15の位置に応じた信号をコントローラ130に出力する。より詳細には、トレイセンサ19は、給送トレイ15が筐体14取り付けられていることに応じて、ローレベル信号をコントローラ130へ出力する。一方、トレイセンサ19は、給送トレイ15が筐体14から取り外されていることに応じて、ローレベル信号より信号強度の高いハイレベル信号をコントローラ130へ出力する。ローレベル信号及びハイレベル信号は、第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へ出力する。
ローレベル信号及びハイレベル信号は、第1信号の一例である。
[装着ケース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信号の一例である。
[液面センサ155]
液面センサ155は、後述するアクチュエータ190の被検出部194が検出位置に位置しているか否かを検出するためのセンサである。液面センサ155は、左右方向9に離間した発光部及び受光部を備える。換言すれば、液面センサ155の発光部及び受光部は、検出位置に位置した被検出部194を挟んで、互いに対向した状態で位置している。液面センサ155は、発光部から出力された光が受光部で受光されたか否かに応じて異なる信号(図中では、「液面信号」と表記する。)を出力する。液面センサ155は、例えば、受光部で受光された光の受光強度が閾値強度未満であることに応じて、ローレベル信号をコントローラ130へ出力する。一方、液面センサ155は、受光部で受光された光の受光強度が閾値強度以上であることに応じて、ローレベル信号より信号強度の高いハイレベル信号をコントローラ130へ出力する。
[ロックピン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、流路抵抗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が記憶され、第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と、通信インタフェース95(通信I/F95)が接続されている。ディスプレイ17は、液晶ディスプレイ、有機ELディスプレイ等であり、各種情報を表示する表示面を備える。ディスプレイ17は、報知機の一例である。但し、報知機の具体例はディスプレイ17に限定されず、スピーカ、LEDランプ、或いはこれらの組み合わせでもよい。操作パネル22は、ユーザによる操作に応じた操作信号をコントローラ130に出力する。操作パネル22は、例えば、押ボタンを有していてもよいし、ディスプレイ17に重畳されたタッチセンサを有していてもよい。通信インタフェース95は、通信ネットワーク等を通じて外部装置と通信可能なインタフェースである。通信インタフェース95の具体的な通信手段は特に限定されないが、例えば、Wi−Fi(登録商標)を採用することができる。通信インタフェース95は、USBケーブルを着脱可能なUSBインタフェースであってもよい。通信インタフェース95は、外部装置から受信した情報に応じた受信信号をコントローラ130に出力する。操作パネル22は、ユーザインタフェースの一例である。操作信号は、第1信号の一例である。受信信号は、第1信号の一例である。
さらに、ASIC135には、接点152と、トレイセンサ19と、カバーセンサ88と、装着センサ154と、液面センサ155とが電気的に接続されている。コントローラ130は、装着ケース150に装着されたカートリッジ200のIC基板247のメモリに、接点152を通じてアクセスする。コントローラ130は、給送トレイ15の着脱をトレイセンサ19を通じて検出する。コントローラ130は、カバー87の位置をカバーセンサ88を通じて検出する。また、コントローラ130は、カートリッジ200の挿抜を装着センサ154を通じて検出する。さらに、コントローラ130は、液室171内のインクの液面が所定位置P以上か否かを液面センサ155を通じて検出する。
ROM132には、後述するカートリッジ装着処理及び残量更新処理においてコントローラ130が実行する判定に用いられる閾値時間Th1、Th2が記憶されている。閾値時間Th1は、第1所定時間の一例である。閾値時間Th2は、第2所定時間の一例である。
EEPROM134は、装着ケース150に装着される4つのカートリッジ200それぞれに対応付けて、換言すれば、カートリッジ200と連通されるタンク160それぞれに対応付けて、各種情報を記憶している。各種情報とは、例えば、液体量の一例であるインク量Vc、Vsと、最大インク量Vc0と、高さHc、Hsと、流路抵抗Rc、Rs、Rnと、関数Fc、Fsと、関数F1、F2と、閾値Vhと、C_Emptyフラグと、S_Emptyフラグと、第1初回フラグと、第2初回フラグと、カウント値Nとを含む。
なお、最大インク量Vc0、インク量Vc、高さHc、流路抵抗Rc、及び関数Fcは、カートリッジ200が装着ケース150に装着された状態で、接点152を通じてICチップ247のメモリからコントローラ130によって読み出される情報である。また、流路抵抗Rc、Rn及び関数Fsは、EEPROM134に代えて、ROM132に記憶されていてもよい。
インク量Vcは、カートリッジ200の液室210に貯留されているインクの量を示す。インク量Vsは、タンク160の液室171に貯留されているインクの量を示す。インク量Vc、Vsは、例えば、後述する式3、4によって算出される。また、インク量Vsは、関数F1又は関数F2によって算出される。インク量Vcは、関数F1又は関数F2によって算出されたインク量Vsと、総量Vtとによって算出される。
高さHcは、カートリッジ200に貯留されているインクの液面と基準位置との上下方向の高さを示す。高さHsは、タンク160に貯留されているインクの液面と基準位置との上下方向の高さを示す。一例として、基準位置は、ニードル181の内部空間の中心を通り水平方向(より詳細には、前後方向8)に沿って延びる仮想線の位置でもよい。他の例として、基準位置は、境界位置Pと同じ位置でもよい。高さHc、Hsは、例えば、式5、6によって算出される。
流路抵抗Rcは、大気バルブ室214を通過する空気が受ける抵抗の大きさを示す。より詳細には、流路抵抗Rcは、大気連通口221から貫通孔218に至る流路に位置する半透膜を空気が通過する際の抵抗を示す。流路抵抗Rsは、大気連通室175を通過する空気が受ける抵抗の大きさを示す。より詳細には、流路抵抗Rsは、大気連通ポート177から貫通孔176に至る流路に位置する半透膜を空気が通過する際の抵抗を示す。流路抵抗Raは、連通されたインクバルブ室213及びニードル181の内部空間を通過するインクが受ける抵抗の大きさを示す。より詳細には、流路抵抗Raは、インクバルブ室213を通過するインクが受ける抵抗の大きさ、ニードル181の内部空間を通過するインクが受ける抵抗の大きさの一方或いは両方を示す。
関数Fcは、インク量Vc及び高さHcの対応関係を示す。カートリッジ200の液室210の水平断面積Dcが上下方向7において変化する場合、関数Fcは、インク量Vc及び高さHcを変数として、カートリッジ200の設計時に予め決定される。一方、上下方向7における水平断面積Dcが一定の場合、関数Fc=Vc/Dcとなる。なお、関数Fcに代えて、対応するインク量Vc及び高さHcの複数のセットを含むテーブルが用いられてもよい。
関数Fsは、インク量Vs及び高さHsの対応関係を示す。タンク160の液室171の水平断面積Dsが上下方向7において変化する場合、関数Fsは、インク量Vs及び高さHsを変数として、タンク160の設計時に予め決定される。一方、上下方向7における水平断面積Dsが一定の場合、関数Fs=Vs/Dsとなる。なお、関数Fsに代えて、対応するインク量Vs及び高さHsの複数のセットを含むテーブルが用いられてもよい。
関数F1及び関数F2は、インクの総量Vtと、インク量Vsとの対応関係を示す情報である。カートリッジ200の液室210内のインクと、タンク160の液室171内のインクとは、それぞれのインクの液面の上下方向7の位置が一致した状態で平衡になる。つまり、平衡状態では、液室210と液室171との間でのインクの移動が停止する。平衡状態におけるインクの総量Vtとインク量Vsとの関係は、実測値を関数で近似することができる。
例えば、総量Vtに対するインク量Vsの関係は、2つの関数F1及び関数F2によって近似的に表すことができる。関数F1は、総量Vtが閾値Vh以上であるときのインク量Vsとの関係を示しており、例えば、Vs=a×Vt+b(a,bは定数)で表される。関数F2は、総量Vtが閾値Vh未満であるときのインク量Vsとの関係を示しており、例えば、Vs=c×Vt+d(c,dは定数)で表される。
閾値Vhは、カートリッジ200の液室210の上部液室211に貯留されたインクの液面が、隔壁215の上面215U又は下面215Lと接触するときの総量Vtに相当する値である。したがって、カートリッジ200の液室210において、インクの液面が隔壁215より上方にあるときには、すなわち総量Vtが閾値Vh以上であるときには、関数F1によってインク量Vsが算出される。カートリッジ200の液室210において、インクの液面が隔壁215に接触しているか、或いは隔壁215より下方にあるときには、すなわち総量Vtが閾値Vh未満であるときには、関数F2によってインク量Vsが算出される。インク量Vcは、総量Vtとインク量Vsとの差として算出される。
カウント値Nは、液面センサ155から出力される信号がローレベル信号からハイレベル信号に変化した後に、ヘッド21に排出を指示したインク排出量Dh(すなわち、駆動信号で示されるインク量)に相当する値で、閾値Nthに近づく向きに更新される値である。カウント値Nは、初期値を“0”としてカウントアップされる値である。また、閾値Nthは、流出口174の上端と境界位置Pとの間の液室171の容積Vthに相当する。但し、カウント値Nは、容積Vthに相当する値を初期値として、カウントダウンされる値でもよい。この場合の閾値Nthは、0となる。
カウント値TNは、装着センサ154から出力される信号がハイレベル信号からローレベル信号に変化した後に、ヘッド21に排出を指示したインク排出量Dh(すなわち、駆動信号で示されるインク量)に相当する値であり、初期値を“0”としてカウントアップされる値である。
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を通じたインクの排出を禁止しなければならない状態である。
第1初回フラグは、コントローラ130が、カートリッジ装着処理にて算出期間の決定に用いられる情報である。第1初回フラグには、カートリッジ装着処理における算出期間の決定が1回目であることに対応する値“ON”、或いは2回目以降であることに対応する値“OFF”が設定される。第2初回フラグは、コントローラ130が、残量更新処理にて算出期間の決定に用いられる情報である。第2初回フラグには、残量更新処理算出期間の決定が1回目であることに対応する値“ON”、或いは2回目以降であることに対応する値“OFF”が設定される。
[プリンタ10の動作]
図7〜図10を参照して、本実施形態に係るプリンタ10の動作を説明する。図7〜図10に示される各処理は、コントローラ130のCPU131によって実行される。なお、以下の各処理は、ROM132に記憶されているプログラムをCPU131が読み出して実行してもよいし、コントローラ130に搭載されたハードウェア回路によって実現されてもよい。また、以下の各処理の実行順序は、本発明の要旨を変更しない範囲で、適宜変更することができる。
[カートリッジ装着処理]
コントローラ130は、カバーセンサ88からハイレベル信号を受信したことに応じて、図7に示されるカートリッジ装着処理を実行する。カートリッジ装着処理は、コントローラ130が、カバー87が開かれたことに応じて、カートリッジ200の装着を待機し、さらにコントローラ130が、EEPROM134に記憶されたインク量Vc、Vs及び高さHc、Hsを更新する処理である。なお、コントローラ130は、4つのカートリッジ200のそれぞれに対して、カートリッジ装着処理を独立して実行する。カートリッジ200毎のカートリッジ装着処理は共通するので、1つのカートリッジ200に対応するカートリッジ装着処理のみを説明する。また、以下の説明では、図11(A)に示されるように、タンク160内にインクが貯留されていない状態の装着ケース150に、新品(すなわち、最大インク量Vc0のインクが貯留された)カートリッジ200が装着された場合を前提とする。
まず、コントローラ130は、装着センサ154が出力する信号を受信する(S11)。次に、コントローラ130は、装着センサ154から受信した信号がハイレベル信号及びローレベル信号のどちらであるかを判定する(S12)。そして、コントローラ130は、装着センサ154が出力する信号が、ローレベル信号からハイレベル信号に変化し、再びハイレベル信号からローレベル信号に変化するまで(S12:No)、所定の時間間隔でS11、S12の処理を繰り返し実行する。換言すれば、コントローラ130は、カートリッジ200が装着ケース150から抜き出され、新たにカートリッジ200が装着ケース150に装着されるまで、S11、S12の処理を繰り返し実行する。
そして、コントローラ130は、装着センサ154からローレベル信号を受信し、その後に装着センサ154からハイレベル信号を受信し、さらにその後に装着センサ154からローレベル信号を受信したことに応じて(S12:Yes)、S13以降の処理を実行する。まず、コントローラ130は、接点152を通じてICチップ247のメモリからCTG情報を読み出し、読み出したCTG情報をEEPROM134に記憶させる(S13)。詳しくは、コントローラ130は、接点152を通じてICチップ247のメモリから、最大インク量Vc0、粘度ρ、インク量Vc、高さHc、流路抵抗Rc、及び関数Fcを読み出して、EEPROM134に記憶させる(S13)。また、コントローラ130は、C_Emptyフラグに初期値“OFF”を設定し、S_Emptyフラグに初期値“OFF”を設定し、カウント値Nに初期値“0”を設定する(S14)。
続いて、コントローラ130は、現在の時刻を経過時間T1の開始時刻としてRAM133に記憶させて、経過時間T1の計測を開始する(S15)。
次に、コントローラ130は、第1初回フラグの設定値に“ON”を設定する(S16)。
次に、コントローラ130は、EEPROM134に記憶されている現在のインク量Vsを交換後インク量Vs1としてEEPROM134に記憶させ、カートリッジ200のICチップ247のメモリに記憶されているインク量Vcを、交換後インク量Vc1としてEEPROM134に記憶させる(S17)。
続いて、コントローラ130は、コントローラ130が信号を受信したか否か、及び、特定動作を開始するか否かを判定する(S18)。詳しくは、コントローラ130は、カバーセンサ88からハイレベル信号又はローレベル信号を受信したか否かを判定する。コントローラ130は、装着センサ154からハイレベル信号又はローレベル信号を受信したか否かを判定する。コントローラ130は、トレイセンサ19からハイレベル信号又はローレベル信号を受信したか否かを判定する。コントローラ130は、操作パネル22から操作信号を受信したか否かを判定する。コントローラ130は、通信インタフェース95から受信信号を受信したか否かを判定する。コントローラ130は、パージ処理を開始するか否かを判定する。コントローラ130は、スリープ状態への移行を開始するか否かを判定する。
コントローラ130は、上記のいずれかの信号を受信したと判定したこと、又は、パージ処理を開始すると判定したこと、又は、スリープ状態への移行を開始すると判定したことに応じて(S18:Yes)、S19以降の処理を実行する。詳しくは、コントローラ130は、カバーセンサ88からハイレベル信号又はローレベル信号を受信したと判定したことに応じて(S18:Yes)、S19以降の処理を実行する。コントローラ130は、装着センサ154からハイレベル信号又はローレベル信号を受信したと判定したことに応じて(S18:Yes)、S19以降の処理を実行する。コントローラ130は、トレイセンサ19からハイレベル信号又はローレベル信号を受信したと判定したことに応じて(S18:Yes)、S19以降の処理を実行する。コントローラ130は、操作パネル22から操作信号を受信したと判定したことに応じて(S18:Yes)、S19以降の処理を実行する。コントローラ130は、通信インタフェース95から受信信号を受信したと判定したことに応じて(S18:Yes)、S19以降の処理を実行する。コントローラ130は、パージ処理を開始すると判定したことに応じて(S18:Yes)、S19以降の処理を実行する。コントローラ130は、スリープ状態への移行を開始すると判定したことに応じて(S18:Yes)、S19以降の処理を実行する。
コントローラ130は、第1初回フラグの設定値について判定する(S19)。コントローラ130は、第1初回フラグの設定値が“ON”であると判定したことに応じて(S19:ON)、S15でRAM133に記憶させた経過時間T1の開始時刻と現在の時刻とから、経過時間T1を算出し、算出した経過時間T1を算出期間Δtとして決定し、RAM133に記憶させる(S20)。ここで、経過時間T1は、S12にてYesと判定されてから、S18にて初めてYesと判定されるまでの時間である。決定された算出期間Δtは、第1期間Δt1の一例である。
コントローラ130は、第1初回フラグの設定値が“OFF”であると判定したことに応じて(S19:OFF)、後述するS27でRAM133に記憶させる経過時間T2の開始時刻と現在の時刻とから、経過時間T2を算出し、算出した経過時間T2を算出期間Δtとして決定し、RAM133に記憶させる(S21)。ここで、経過時間T2は、S18にてYesと判定されてから、次にS18でYesと判定されるまでの時間である。決定された算出期間Δtは、第2期間Δt2の一例である。
また、コントローラ130は、S20及びS21にて、算出期間Δtの開始時刻を時刻tk−1、終了時刻を時刻tkとして決定し、RAM133に記憶させる(S20,S21)。時刻tk−1は、経過時間T1の開始時刻又は経過時間T2の開始時刻である。時刻tkは、現在の時刻、すなわちS19の処理を実行した時刻である。
続いて、コントローラ130は、流出量Qa、Qc、インク量Vc、Vs、及び高さHc、Hsを、下記の式1〜式6を用いて算出する(S22、S23)。
まず、流出量Qaは、流出口174を通じて液室171から算出期間Δtの間に流出するインクの量を示す。コントローラ130は、式1を用いて、流出量Qaを算出する(S22)。算出期間Δtの間にシートへの画像の記録(S46)やパージ処理等、ヘッド21を通じたインクの排出が行われていない場合には、Qa=0となる。
次に、流出量Qcは、連通されたニードル181の内部空間及びインクバルブ室213を通じて、算出期間Δtの間に液室210から液室171に流出するインクの量を示す。コントローラ130は、EEPROM134に記憶された高さHc、Hsを、時刻tk−1における高さHc’、Hs’として読み出す。また、コントローラ130は、粘度ρ、流路抵抗Rc、Rs、RnをEEPROM134から読み出す。そして、コントローラ130は、EEPROM134から読み出した情報と、重力加速度gと、直前に算出した流出量Qa(ヘッド21を通じたインクの排出が行われていない場合には、Qa=0)とを式2に代入して、流出量Qcを算出する(S22)。
流出量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を算出する(S23)。すなわち、コントローラ130は、時刻tk−1におけるインク量Vc’から、算出期間Δtの間に液室210から液室171に流出したインクの流出量Qcを減じて、時刻tkにおけるインク量Vcを算出する。
またS23において、コントローラ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を算出する。
またS23において、コントローラ130は、EEPROM134に記憶された関数Fcを読み出す。そして、コントローラ130は、式5で示されるように、式3で算出したインク量Vcを関数Fcに代入して、時刻tkにおける高さHcを特定する。さらにS23において、コントローラ130は、式4で算出したインク量Vsと容積Vthとを比較する。そして、コントローラ130は、式4で算出したインク量Vsが容積Vth以下(すなわち、図11(A)に示されるように、液室171の液面が境界位置P以下)だと判定したことに応じて、式6で示されるように時刻tkにおける高さHs=0と特定する。一方、コントローラ130は、インク量Vsが容積Vthより多い(すなわち、図11(B)及び図12(A)に示されるように、液室171の液面が境界位置Pより高い)と判定したことに応じて、EEPROM134から関数Fsを読み出す。そして、コントローラ130は、式6で示されるように、式4で算出したインク量Vsを関数Fsに代入して、時刻tkにおける高さHsを特定する(S23)。
次に、コントローラ130は、S23で算出したインク量Vc、Vs及び高さHc、HsをEEPROM134に記憶させる(S24)。より詳細には、コントローラ130は、EEPROM134に記憶されているインク量Vc、Vs及び高さHc、Hsを、直前のS23で算出したインク量Vc、Vs及び高さHc、Hsで上書きする。
また、コントローラ130は、S23で算出したインク量Vc及び高さHcを、接点152を通じてICチップ247のメモリに記憶させる(S25)。より詳細には、コントローラ130は、ICチップ247のメモリの第2領域に記憶されているインク量Vc及び高さHcを、直前のS23で算出したインク量Vc及び高さHcで上書きする。
そして、コントローラ130は、インク残量画面をディスプレイ17に表示させる(S26)。インク残量画面は、算出したインク量Vc及びインク量Vsの双方をユーザに報知するための画面である。図13に、インク残量画面の例を示す。図示例のインク残量画面は、マゼンタ、シアン、イエロー、及びブラックの各カートリッジ200のインク量Vcを示すオブジェクト274M、274C、274Y、274Bを有する。これらオブジェクトの縦方向71の大きさが、各色のインク量Vcを示している。インク残量画面は、マゼンタ、シアン、イエロー、及びブラックの各タンク160のインク残量Vsを示すオブジェクト275M、275C、275Y、275Bを有する。これらオブジェクトの縦方向71の大きさが、各色のインク量Vsを示している。オブジェクト274Mの縦方向71の大きさと、オブジェクト275Mの縦方向71の大きさの和が、マゼンタのインク残量VcとVsとの和、すなわちマゼンタのインクの総量Vtを示している。シアン、イエロー、及びブラックについても同様である。
次に、コントローラ130は、現在の時刻を経過時間T2の開始時刻としてRAM133に記憶させて、経過時間T2の計測を開始する(S27)。
続いて、コントローラ130は、第1初回フラグの設定値に“OFF”を設定する(S28)。
次に、コントローラ130は、直前のS23で算出した高さHc、Hsの差と閾値高さHthとを比較する(S29)。閾値高さHthは、液室210、171の間において、実質的にインクが移動しないと考えられる水頭差を示す。閾値高さHthは、例えば、0である。液室210、171の間において、実質的にインクが移動しない状態を、平衡状態とする。すなわち、この平衡状態では、液室210、171の水頭差が実質的に0である。コントローラ130は、高さHc、Hsの差が閾値高さHth以上だと判定したことに応じて(S29:No)、S18以降の処理を再び実行する。コントローラ130は、高さHc、Hsの差が閾値高さHth未満だと判定したことに応じて(S29:Yes)、カートリッジ装着処理を終了する。
コントローラ130は、S18にて、いずれの信号も受信しておらず、且つ、パージ処理を開始せず、且つ、スリープ状態への移行を開始しないと判定したことに応じて(S18:No)、上記経過時間T1が閾値時間Th1を越えたか否かを判定する(S30)。経過時間T1は、S15でRAM133に記憶させた経過時間T1の開始時刻と現在の時刻との差の時間である。コントローラ130は、経過時間T1が閾値時間Th1を越えていないと判定したことに応じて(S30:No)、S18の処理を再び実行する。
コントローラ130は、経過時間T1が閾値時間Th1を越えたと判定したことに応じて(S30:Yes)、カートリッジ200からタンク160へのインクの流入が完了した状態のインク量Vc、Vs、液面高さHc、Hsを算出する(S31)。
まず、コントローラ130は、S17でEEPROM134に記憶させた交換後インク量Vc1とVs1との和を、交換後の総量Vt1として算出する(Vt1=Vc1+Vs1)。次に、コントローラ130は、算出した総量Vtと、EEPROM134から読み出した関数F1又は関数F2に基づいて、液室210から液室171へのインクの移動が終了したときのインク量Vc及びインク量Vsを算出する。カートリッジが交換されると、新たなカートリッジ200の液室210に貯留されているインクが、インクニードル181を通じてタンク160の液室171に流入する。その結果、液室210のインク量Vcは減少し、また、液室171のインク量Vsは増加する。そして、カートリッジ200の液室210と、タンク160の液室171とは、それぞれの液面の上下方向7の位置が一致した状態で平衡になる。
コントローラ130は、算出した総量Vtが閾値Vh以上であるかを判定する。例えば、新品のカートリッジ200が装着ケース150に装着されると、総量Vtは閾値Vh以上である。コントローラ130は、総量Vtが閾値Vh以上であれば、関数F1を用いて、総量Vtからインク量Vsを算出する。すなわち、コントローラ130は、関数F1が示すVs=a×Vt+bに従って、インク量Vsを算出する。そして、コントローラ130は、算出したインク量Vsを現在の総量Vtから減じて、インク量Vcを算出する。すなわち、コントローラ130は、Vc=Vt−Vsに従って、インク量Vcを算出する。続いて、コントローラ130は、算出したインク量Vc、Vsと、EEPROM134から読み出した関数Fc,Fsとに基づいて、S23と同様の処理により、高さHc、Hsを決定する。
次に、コントローラ130は、S31で算出したインク量Vc、Vs及び高さHc、HsをEEPROM134に記憶させる(S32)。より詳細には、コントローラ130は、EEPROM134に記憶されているインク量Vc、Vs及び高さHc、Hsを、直前のS31で算出したインク量Vc、Vs及び高さHc、Hsで上書きする。
また、コントローラ130は、S31で算出したインク量Vc及び高さHcを、接点152を通じてICチップ247のメモリに記憶させる(S33)。より詳細には、コントローラ130は、ICチップ247のメモリの第2領域に記憶されているインク量Vc及び高さHcを、直前のS31で算出したインク量Vc及び高さHcで上書きする。
続いて、コントローラ130は、インク残量画面をディスプレイ17に表示させる(S34)。インク残量画面は、S26でディスプレイ17に表示させるインク残量画面と同様であってよい。そして、コントローラ130は、カートリッジ装着処理を終了する。
[画像記録処理]
コントローラ130は、プリンタ10に記録指示が入力されたことに応じて、図8に示される画像記録処理を実行する。記録指示は、画像データで示される画像をシートに記録する記録処理をプリンタ10に実行させるための排出指示の一例である。記録指示の取得方法は特に限定されないが、例えば、記録指示に対応するユーザ操作を操作パネル22を通じて受け付けてもよいし、不図示の通信インタフェースを通じて外部装置から受信してもよい。
まず、コントローラ130は、4つのS_Emptyフラグそれぞれの設定値を判定する(S41)。そして、コントローラ130は、4つのS_Emptyフラグの少なくとも1つに“ON”が設定されていると判定したことに応じて(S41:ON)、S_Empty報知画面をディスプレイ17に表示させる(S42)。S_Empty報知画面は、対応するタンク160がインクエンプティ状態になったことを、ユーザに報知するための画面である。S_Empty報知画面は、例えば、インクエンプティ状態のタンク160に貯留されているインクの色及びインク量Vc、Vsを示す情報を含んでもよい。
続いて、コントローラ130は、“ON”が設定されたS_Emptyフラグに対応するカートリッジ200それぞれに対して、上述したカートリッジ装着処理を実行する(S43)。そして、コントローラ130は、S_Emptyフラグに“OFF”が設定された後(S14)、カートリッジ装着処理と平行して、S41以降の処理を再び実行する。そして、コントローラ130は、4つのS_Emptyフラグの全てに“OFF”が設定されていることに応じて(S41:OFF)、現時点で4つの液面センサ155それぞれから出力されている信号を受信する(S44)。さらにS44において、コントローラ130は、液面センサ155から受信した信号がハイレベル信号及びローレベル信号のどちらかを示す情報を、RAM133に記憶させる。
そして、コントローラ130は、記録指示に含まれる画像データで示される画像をシートに記録する(S45)。より詳細には、コントローラ130は、給送トレイ15上のシートを給送ローラ23及び搬送ローラ25に搬送させ、ヘッド21にインクを吐出させ、画像が記録されたシートを排出ローラ27に排出トレイ16へ排出させる。すなわち、コントローラ130は、4つのS_Emptyフラグの全てに“OFF”が設定されているときにインクの吐出を許可する。一方、コントローラ130は、4つのS_Emptyフラグの少なくとも1つに“ON”が設定されているときにインクの吐出を禁止する。
次に、コントローラ130は、記録指示に従ってシートに画像を記録したことに応じて、現時点で4つの液面センサ155それぞれから出力されている信号を受信する(S46)。S46において、S44と同様に、コントローラ130は、液面センサ155から受信した信号がハイレベル信号及びローレベル信号のどちらかを示す情報を、RAM133に記憶させる。
続いて、コントローラ130は、現在の時刻を経過時間T3の開始時刻としてRAM133に記憶させて、経過時間T3の計測を開始する(S47)。また、コントローラ130は、2ページ目以降のシートへの画像記録(S45)を行った場合には、第3タイマの再スタート又は開始時刻の記憶(S47)を実行せず、経過時間T3の計測を継続する。
そして、コントローラ130は、カウント処理を実行する(S48)。カウント処理は、S44、S46で液面センサ155から受信した信号に基づいて、カウント値N、C_Emptyフラグ、及びS_Emptyフラグを更新する処理である。カウント処理の詳細は、図9を参照して後述する。
次に、コントローラ130は、記録指示で示された全ての画像をシートに記録するまで(S49:Yes)、S41〜S48の処理を繰り返し実行する。そして、コントローラ130は、記録指示で示される全ての画像をシートに記録したことに応じて(S49:No)、残量更新処理を実行する(S50)。残量更新処理は、コントローラ130が、ヘッド21からインクが吐出されたことに応じて、EEPROM134に記憶されたインク量Vc、Vs及び高さHc、Hsを更新する処理である。残量更新処理の詳細は、図10を参照して後述する。コントローラ130は、残量更新処理と並行して或いは残量更新処理が終了したことに応じて、S51以降の処理を実行する。
コントローラ130は、4つのS_Emptyフラグそれぞれの設定値及び4つのC_Emptyフラグそれぞれの設定値を判定する(S51、S52)。
コントローラ130は、4つのS_Emptyフラグの少なくとも1つに“ON”が設定されていることに応じて(S51:ON)、S_Empty報知画面をディスプレイ17に表示させる(S53)。また、コントローラ130は、4つのS_Emptyフラグの全てに“OFF”が設定されており、且つ4つのC_Emptyフラグの少なくとも1つに“ON”が設定されていることに応じて(S51:OFF&S52:ON)、C_Empty報知画面をディスプレイ17に表示させる(S54)。S53、S54の処理は、報知機を作動させることの一例である。
S53で表示されるS_Empty報知画面は、S42と同様であってもよい。また、C_Empty報知画面は、“ON”が設定されたC_Emptyフラグに対応するカートリッジ200がカートリッジエンプティ状態になったことを、ユーザに報知するための画面である。C_Empty報知画面は、例えば、カートリッジエンプティ状態のカートリッジ200に貯留されているインクの色及びインク量Vc、Vsを示す情報を含んでもよい。一方、コントローラ130は、4つのS_Emptyフラグ及び4つのC_Emptyフラグの全てに“OFF”が設定されていることに応じて(S52:OFF)、S53、S54の処理を実行せずに、画像記録処理を終了する。
なお、排出指示の具体例は記録指示に限定されず、ノズル29のメンテナンスを指示するメンテナンス指示等であってもよい。コントローラ130は、例えばメンテナンス指示を受信したことに応じて、図8と同様の処理を実行する。メンテナンス指示を受信した場合の前述の処理との相違点は、以下の通りである。まず、コントローラ130は、S45において、不図示のメンテナンス機構を駆動させて、ノズル29を通じてインクを排出させる。また、コントローラ130は、カウント処理を実行した後にS49の処理を実行することなく、S50以降の処理を実行する。
[カウント処理]
次に図9を参照して、S48でコントローラ130が実行するカウント処理の詳細を説明する。なお、コントローラ130は、4つのカートリッジ200のそれぞれに対して、カウント処理を独立して実行する。カートリッジ200毎のカウント処理は共通するので、1つのカートリッジ200に対応するカウント処理のみを説明する。
まず、コントローラ130は、S44、S46でRAM133に記憶させた液面センサ155の信号を示す情報を比較する(S61)。すなわち、コントローラ130は、カウント処理(S48)を実行する直前のS45の処理を実行する前と後とで、4つの液面センサ155それぞれの信号が変化したか否かを判定する。
コントローラ130は、S44、S46でRAM133に記憶させた情報が共にローレベル信号を示す(すなわち、S45の処理の前後で液面センサ155の信号出力が変化していない)ことに応じて(S61:L→L)、カウント値TNを更新する(S62)。すなわち、コントローラ130は、直前のS45で排出を指示したインク量に相当する値で、カウント値TNをカウントアップする。そして、コントローラ130は、カウント処理を終了する。
コントローラ130は、S44でRAM133に記憶させた情報がローレベル信号を示し、S46でRAM133に記憶させた情報がハイレベル信号を示す(すなわち、S45の処理の前後で液面センサ155の信号出力が変化した)ことに応じて(S61:L→H)、C_Emptyフラグに“ON”を設定する(S63)。
また、コントローラ130は、EEPROM134に記憶されたインク量Vcを、予め定められた所定値(=0)で上書きする(S64)。同様に、コントローラ130は、EEPROM134に記憶されたインク量Vsを、予め定められた所定値(=容積Vth−インク排出量Dh)で上書きする(S64)。第1、残量更新処理で算出されるインク量Vc、Vsは誤差を含むので、算出の繰り返し回数が増えるほど、インク量Vc、Vsに累積される誤差が大きくなる。そこで、コントローラ130は、液面センサ155の出力がローレベル信号からハイレベル信号に変化したタイミングで、インク量Vc、Vsに予め定められた値を代入して、累積した誤差をリセットする。
なお前述したように、インク排出量Dhは、直前のS45で1枚のシートに吐出されるインク量に相当する。一方、液面センサ155の信号出力が変化するのは、S45の処理の途中である。すなわち、S64で上書きされたインク量Vsは、液面センサ155の信号出力が変化した瞬間にタンク160に貯留されているインクの量とは僅かにズレを生じている。しかしながら、このズレは僅かなので、S64で上書きしたインク量Vsを、液面センサ155の信号出力が変化した時点のインク量Vsとして扱うものとする。
また、コントローラ130は、EEPROM134に記憶されたカウント値Nに、インク排出量Dhを代入する(S65)。すなわち、コントローラ130は、直前のS45で排出を指示したインク量に相当する値で、カウント値Nのカウントアップを開始する。換言すれば、コントローラ130は、液面センサ155の出力がローレベル信号からハイレベル信号に変化したことに応じて、カウント値Nの更新を開始する。
次に、コントローラ130は、S65で更新したカウント値Nと、閾値Nthとを比較する(S66)。そして、コントローラ130は、S65で更新したカウント値Nが閾値Nth未満だと判定したことに応じて(S66:No)、カウント処理を終了する。一方、コントローラ130は、S65で更新したカウント値Nが閾値Nth以上だと判定したことに応じて(S66:Yes)、S_Emptyフラグに“ON”を設定して(S67)、カウント処理を終了する。
また、コントローラ130は、S44、S46でRAM133に記憶させた情報が共にハイレベル信号を示すことに応じて(S61:H→H)、EEPROM134に記憶されているインク量Vsを読み出す。そして、コントローラ130は、読み出したインク量Vsからインク排出量Dhを減じて、再びEEPROM134に記憶させる(S68)。また、コントローラ130は、EEPROM134に記憶されているカウント値Nを読み出す。そして、コントローラ130は、読み出したカウント値Nにインク排出量Dhを加算して、再びEEPROM134に記憶させる(S69)。すなわち、コントローラ130は、直前のS45で排出を指示したインク排出量Dhで、EEPROM134に記憶されたインク量Vs及びカウント値Nを更新する。
次に、コントローラ130は、S69で更新したカウント値Nと、閾値Nthとを比較する(S66)。そして、コントローラ130は、S69で更新したカウント値Nが閾値Nth未満だと判定したことに応じて(S66:No)、カウント処理を終了する。一方、コントローラ130は、S69で更新したカウント値Nが閾値Nth以上だと判定したことに応じて(S66:Yes)、S_Emptyフラグに“ON”を設定して(S67)、カウント処理を終了する。
[残量更新処理]
次に図10を参照して、コントローラ130がS50で実行する残量更新処理の詳細を説明する。なお、コントローラ130は、4つのカートリッジ200のそれぞれに対して、残量更新処理を独立して実行する。カートリッジ200毎の残量更新処理は共通するので、1つのカートリッジ200に対応する残量更新処理のみを説明する。
まず、コントローラ130は、C_Emptyフラグの設定値について判定する(S71)。コントローラ130は、C_Emptyフラグの設定値が“ON”であると判定したことに応じて(S71:ON)、残量更新処理を終了する。C_Emptyに“ON”が設定されるのは(S63)、液面センサ155の出力がローレベル信号からハイレベル信号に変化した場合である(S:51:L→H)。このとき、タンク160の液室171の液面が、図12(B)に示されるように、S45の処理中に境界位置Pに達している。そして、これ以降は、カートリッジ200とタンク160との間でインクが移動しないため、インク量Vcを更新する必要がない。そこで図10に示されるように、コントローラ130は、C_Emptyフラグに“ON”が設定されていることに応じて(S71:ON)、残量更新処理を終了する。なお、インク量Vsは、C_Emptyフラグに“ON”が設定された後、カウント処理のS68で更新される。
コントローラ130は、C_Emptyフラグの設定値が“OFF”であると判定したことに応じて(S71:OFF)、算出期間Δtを決定する(S72)。詳しくは、コントローラ130は、S45で1ページ目のシートの画像記録のためにヘッド21からのインクの排出が開始されてから、全ページのシートの画像記録が終了するまで(S49:No)の期間を、算出期間Δtとして決定し、RAM133に記憶させる(S72)。また、コントローラ130は、算出期間Δtの開始時刻を時刻tk−1、終了時刻を時刻tkとして決定し、RAM133に記憶させる。時刻tk−1は、S45で1ページ目のシートの画像記録のためにヘッド21からのインクの排出を開始した時刻である。時刻tkは、全ページのシートの画像記録が終了した(S49:No)時刻であり、S72の処理を実行した時刻である。決定された算出期間Δtは、排出期間Δthの一例である。
次に、コントローラ130は、流出量Qa、Qc、インク量Vc、Vs、及び高さHc、Hsを、上述の式1〜式6を用いて算出する(S73、S74)。まず、コントローラ130は、式1を用いて、算出期間Δtの間の流出量Qaを算出する(S73)。インク排出量Dh(tk−1)は、今回の画像記録処理のS45の開始までに排出を指示したインク量に相当する。なお、時刻tk−1は、S45で1ページ目のシートへの画像記録のためにヘッド21からのインクの排出を開始した時刻であり、時刻tk−1では未だインクの排出を行っていないので、インク排出量Dh(tk−1)はゼロである。インク排出量Dh(tk)は、今回の画像記録処理の全ページの画像記録が終了したときまでに排出を指示したインク量に相当する。
次に、コントローラ130は、式2を用いて、算出期間Δtの間の液室210から液室171へのインクの流出量Qcを算出する。コントローラ130は、EEPROM134に記憶された高さHc、Hsを、時刻tk−1における高さHc’、Hs’として読み出す。また、コントローラ130は、粘度ρ、流路抵抗Rc、Rs、RnをEEPROM134から読み出す。そして、コントローラ130は、EEPROM134から読み出した情報と、重力加速度gと、直前に算出した流出量Qaとを式2に代入して、流出量Qcを算出する(S73)。
次に、コントローラ130は、EEPROM134に記憶されたインク量Vcを、時刻tk−1におけるインク量Vc’として読み出す。そして、コントローラ130は、EEPROM134から読み出したインク量Vc’と、直前に算出した流出量Qcとを式3に代入して、時刻tkにおけるインク量Vcを算出する(S74)。すなわち、コントローラ130は、時刻tk−1におけるインク量Vc’から、算出期間Δtの間に液室210から液室171に流出したインクの流出量Qcを減じて、時刻tkにおけるインク量Vcを算出する。
またS74において、コントローラ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を算出する。
またS74において、コントローラ130は、EEPROM134に記憶された関数Fcを読み出す。そして、コントローラ130は、式5で示されるように、式3で算出したインク量Vcを関数Fcに代入して、時刻tkにおける高さHcを特定する。さらにS74において、コントローラ130は、EEPROM134から関数Fsを読み出す。そして、コントローラ130は、式6で示されるように、式4で算出したインク量Vsを関数Fsに代入して、時刻tkにおける高さHsを特定する(S74)。
次に、コントローラ130は、S74で算出したインク量Vc、Vs及び高さHc、HsをEEPROM134に記憶させる(S75)。より詳細には、コントローラ130は、EEPROM134に記憶されているインク量Vc、Vs及び高さHc、Hsを、直前のS74で算出したインク量Vc、Vs及び高さHc、Hsで上書きする。
また、コントローラ130は、S74で算出したインク量Vc及び高さHcを、接点152を通じてICチップ247のメモリに記憶させる(S76)。より詳細には、コントローラ130は、ICチップ247のメモリの第2領域に記憶されているインク量Vc及び高さHcを、直前のS74で算出したインク量Vc及び高さHcで上書きする。
続いて、コントローラ130は、インク残量画面をディスプレイ17に表示させる(S77)。インク残量画面は、S26でディスプレイ17に表示させるインク残量画面と同様であってよい。
次に、コントローラ130は、現在の時刻を経過時間T4の開始時刻としてRAM133に記憶させて、経過時間T4の計測を開始する(S78)。
続いて、コントローラ130は、第2初回フラグの設定値に“ON”を設定する(S79)。
次に、コントローラ130は、直前のS74で算出した高さHc、Hsの差と閾値高さHthとを比較する(S80)。コントローラ130は、高さHc、Hsの差が閾値高さHth以上だと判定したことに応じて(S80:No)、S81以降の処理を実行する。コントローラ130は、高さHc、Hsの差が閾値高さHth未満だと判定したことに応じて(S80:Yes)、残量更新処理を終了する。
コントローラ130は、コントローラ130が信号を受信したか否か、及び、特定動作を開始するか否かを判定する(S81)。詳しくは、コントローラ130は、カバーセンサ88からハイレベル信号又はローレベル信号を受信したか否かを判定する。コントローラ130は、装着センサ154からハイレベル信号又はローレベル信号を受信したか否かを判定する。コントローラ130は、トレイセンサ19からハイレベル信号又はローレベル信号を受信したか否かを判定する。コントローラ130は、操作パネル22から操作信号を受信したか否かを判定する。コントローラ130は、通信インタフェース95から受信信号を受信したか否かを判定する。コントローラ130は、パージ処理を開始するか否かを判定する。コントローラ130は、スリープ状態への移行を開始するか否かを判定する。
コントローラ130は、上記のいずれかの信号を受信したと判定したこと、又は、パージ処理を開始すると判定したこと、又は、スリープ状態への移行を開始すると判定したことに応じて(S81:Yes)、S82以降の処理を実行する。詳しくは、コントローラ130は、カバーセンサ88からハイレベル信号又はローレベル信号を受信したと判定したことに応じて(S81:Yes)、S82以降の処理を実行する。コントローラ130は、装着センサ154からハイレベル信号又はローレベル信号を受信したと判定したことに応じて(S81:Yes)、S82以降の処理を実行する。コントローラ130は、トレイセンサ19からハイレベル信号又はローレベル信号を受信したと判定したことに応じて(S81:Yes)、S82以降の処理を実行する。コントローラ130は、操作パネル22から操作信号を受信したと判定したことに応じて(S81:Yes)、S82以降の処理を実行する。コントローラ130は、通信インタフェース95から受信信号を受信したと判定したことに応じて(S81:Yes)、S82以降の処理を実行する。コントローラ130は、パージ処理を開始すると判定したことに応じて(S81:Yes)、S82以降の処理を実行する。コントローラ130は、スリープ状態への移行を開始すると判定したことに応じて(S81:Yes)、S82以降の処理を実行する。
コントローラ130は、第2初回フラグの設定値について判定する(S82)。コントローラ130は、第2初回フラグの設定値が“ON”であると判定したことに応じて(S82:ON)、S78でRAM133に記憶させた経過時間T4の開始時刻と現在の時刻とから、経過時間T4を算出し、算出した経過時間T4を算出期間Δtとして決定し、RAM133に記憶させる(S83)。ここで、経過時間T4は、S40でNoと判定されてから、S81にて初めてYesと判定されるまでの時間である。決定された算出期間Δtは、排出後第1期間Δth1の一例である。
コントローラ130は、第2初回フラグの設定値が“OFF”であると判定したことに応じて(S82:OFF)、後述するS90でRAM133に記憶させる経過時間T5の開始時刻と現在の時刻とから、経過時間T5を算出し、算出した経過時間T5を算出期間Δtとして決定し、RAM133に記憶させる(S84)。ここで、経過時間T5は、S81にてYesと判定されてから、次にS81でYesと判定されるまでの時間である。決定された算出期間Δtは、排出後第2期間Δth2の一例である。
また、コントローラ130は、S83及びS84にて、算出期間Δtの開始時刻を時刻tk−1、終了時刻を時刻tkとして決定し、RAM133に記憶させる(S83,S84)。時刻tk−1は、経過時間T4の開始時刻又は経過時間T5の開始時刻である。時刻tkは、現在の時刻、すなわちS82の処理を実行した時刻である。
次に、コントローラ130は、流出量Qa、Qc、インク量Vc、Vs、及び高さHc、Hsを、上述の式1〜式6を用いて算出する(S85、S86)。まず、コントローラ130は、式1を用いて、算出期間Δtの間の流出量Qaを算出する(S85)。算出期間Δtの間にシートへの画像の記録(S46)やパージ処理等、ヘッド21を通じたインクの排出が行われていない場合には、Qa=0となる。
次に、コントローラ130は、式2を用いて、算出期間Δtの間の液室210から液室171へのインクの流出量Qcを算出する。コントローラ130は、EEPROM134に記憶された高さHc、Hsを、時刻tk−1における高さHc’、Hs’として読み出す。また、コントローラ130は、粘度ρ、流路抵抗Rc、Rs、RnをEEPROM134から読み出す。そして、コントローラ130は、EEPROM134から読み出した情報と、重力加速度gと、直前に算出した流出量Qa(ヘッド21を通じたインクの排出が行われていない場合には、Qa=0)とを式2に代入して、流出量Qcを算出する(S85)。
次に、コントローラ130は、EEPROM134に記憶されたインク量Vcを、時刻tk−1におけるインク量Vc’として読み出す。そして、コントローラ130は、EEPROM134から読み出したインク量Vc’と、直前に算出した流出量Qcとを式3に代入して、時刻tkにおけるインク量Vcを算出する(S86)。すなわち、コントローラ130は、時刻tk−1におけるインク量Vc’から、算出期間Δtの間に液室210から液室171に流出したインクの流出量Qcを減じて、時刻tkにおけるインク量Vcを算出する。
またS86において、コントローラ130は、EEPROM134に記憶された関数Fcを読み出す。そして、コントローラ130は、式5で示されるように、式3で直前に算出したインク量Vcを関数Fcに代入して、時刻tkにおける高さHcを特定する。さらにS74において、コントローラ130は、EEPROM134から関数Fsを読み出す。そして、コントローラ130は、式6で示されるように、式4で算出したインク量Vsを関数Fsに代入して、時刻tkにおける高さHsを特定する(S86)。
次に、コントローラ130は、S86で算出したインク量Vc、Vs及び高さHc、HsをEEPROM134に記憶させる(S87)。より詳細には、コントローラ130は、EEPROM134に記憶されているインク量Vc、Vs及び高さHc、Hsを、直前のS74で算出したインク量Vc、Vs及び高さHc、Hsで上書きする。
また、コントローラ130は、S86で算出したインク量Vc及び高さHcを、接点152を通じてICチップ247のメモリに記憶させる(S88)。より詳細には、コントローラ130は、ICチップ247のメモリの第2領域に記憶されているインク量Vc及び高さHcを、直前のS86で算出したインク量Vc及び高さHcで上書きする。
続いて、コントローラ130は、インク残量画面をディスプレイ17に表示させる(S89)。インク残量画面は、S26でディスプレイ17に表示させるインク残量画面と同様であってよい。
次に、コントローラ130は、現在の時刻を経過時間T5の開始時刻としてRAM133に記憶させて、経過時間T5の計測を開始する(S90)。
続いて、コントローラ130は、第2初回フラグの設定値に“OFF”を設定する(S91)。
次に、コントローラ130は、直前のS86で算出した高さHc、Hsの差と閾値高さHthとを比較する(S92)。コントローラ130は、高さHc、Hsの差が閾値高さHth以上だと判定したことに応じて(S92:No)、S81以降の処理を再び実行する。コントローラ130は、高さHc、Hsの差が閾値高さHth未満だと判定したことに応じて(S92:Yes)、残量更新処理を終了する。
コントローラ130は、S81にて、いずれの信号も受信しておらず、且つ、パージ処理を開始せず、且つ、スリープ状態への移行を開始しないと判定したことに応じて(S81:No)、上記経過時間T3が、閾値時間Th2を越えたか否かを判定する(S93)。経過時間T3は、S47でRAM133に記憶させた経過時間T3の開始時刻と現在の時刻との差の時間である。コントローラ130は、経過時間T3が閾値時間Th2を越えていないと判定したことに応じて(S93:No)、S81の処理を再び実行する。
コントローラ130は、経過時間T3が閾値時間Th2を越えたと判定したことに応じて(S93:Yes)、カートリッジ200からタンク160へのインクの流入が完了した状態のインク量Vc、Vs、液面高さHc、Hsを算出する(S94)。
まず、コントローラ130は、S17でEEPROM134に記憶させた交換後インク量Vc1とVs1との和を、交換後総量Vt1として算出する(Vt1=Vc1+Vs1)。次に、コントローラ130は、交換後総量Vt1から、カウント値TNに相当するインク量を差し引いた値として、現在の総量Vtを算出する(Vt=Vt1−TN)。そして、コントローラ130は、算出した総量Vtと、EEPROM134から読み出した関数F1又は関数F2に基づいて、液室210から液室171へのインクの移動が終了したときのインク量Vc及びインク量Vsを算出する。
コントローラ130は、算出した総量Vtが閾値Vh以上であるかを判定する。コントローラ130は、総量Vtが閾値Vh以上であれば、関数F1を用いて、総量Vtからインク量Vsを算出する。すなわち、コントローラ130は、関数F1が示すVs=a×Vt+bに従って、インク量Vsを算出する。コントローラ130は、総量Vtが閾値Vh未満であれば、関数F2を用いて、総量Vtからインク量Vsを算出する。すなわち、コントローラ130は、Vc=Vt−Vsに従って、インク量Vcを算出する。そして、コントローラ130は、算出したインク量Vsを現在の総量Vtから減じて、インク量Vcを算出する。続いて、コントローラ130は、算出したインク量Vc、Vsと、EEPROM134から読み出した関数Fc,Fsとに基づいて、S23と同様の処理により、高さHc、Hsを決定する。
次に、コントローラ130は、S94で算出したインク量Vc、Vs及び高さHc、HsをEEPROM134に記憶させる(S95)。より詳細には、コントローラ130は、EEPROM134に記憶されているインク量Vc、Vs及び高さHc、Hsを、直前のS31で算出したインク量Vc、Vs及び高さHc、Hsで上書きする。
また、コントローラ130は、S94で算出したインク量Vc及び高さHcを、接点152を通じてICチップ247のメモリに記憶させる(S96)。より詳細には、コントローラ130は、ICチップ247のメモリの第2領域に記憶されているインク量Vc及び高さHcを、直前のS94で算出したインク量Vc及び高さHcで上書きする。
続いて、コントローラ130は、インク残量画面をディスプレイ17に表示させる(S97)。インク残量画面は、S26でディスプレイ17に表示させるインク残量画面と同様であってよい。そして、コントローラ130は、残量更新処理を終了する。
[作用効果]
上記実施形態によれば、装着センサ154からの信号がハイレベル信号からローレベル信号へ変化した後、コントローラ130が第1信号を受信又は特定動作を開始することに基づいて、インク量Vc、Vs、液面高さHc,Hsの決定の処理が行われる。つまり、ユーザから何らかの操作を受け付けたり、プリンタ10が動作したりするときに、インク量の決定処理が行われる。そして、決定された液面高さHc,Hsの差が閾値高さHth以上であることに応じて、ユーザからの操作やプリンタ動作を待機し、再びインク量Vc、Vsの決定の処理が行われる。従って、処理負荷の上昇を抑制しつつ、インク量Vc、Vsを個別に把握することができる。
また、上記実施形態によれば、ヘッド21からインクの排出を行った後、液面高さHc,Hsの差が閾値高さHth以上である場合には、コントローラ130が第1信号を受信又は特定動作を開始することに基づいて、インク量Vc、Vs、液面高さHc,Hsの決定の処理が行われる。そして、決定された液面高さHc,Hsの差が閾値高さHth以上であることに応じて、ユーザからの操作やプリンタ動作を待機し、再びインク量Vc、Vsの決定の処理が行われる。従って、処理負荷の上昇を抑制しつつ、インク量Vc、Vsを個別に把握することができる。
[変形例]
上記実施形態では、S18及びS81の判定に用いる信号(第1信号)の例として、カバーセンサ88が出力する信号、装着センサ154が出力する信号、トレイセンサ19が出力する信号、操作パネル22が出力する信号、及び通信インタフェース95が出力する信号が例示されたが、コントローラ130が受信する他の信号を用いてもよい。また、上記実施形態では、S18及びS81の判定に用いる特定動作の例として、パージ処理の開始と、スリープ状態への移行の開始が例示されたが、コントローラ130が実行する他の動作を用いてもよい。
上記実施形態では、コントローラ130は、装着センサ154からローレベル信号を受信し、その後に装着センサ154からハイレベル信号を受信し、さらにその後に装着センサ154からローレベル信号を受信したことに応じて(S12:Yes)、S13に示す処理を実行した。コントローラ130がS13に示す処理を実行するのは、装着ケース150内にカートリッジ200が存在しない装着ケース150内に、カートリッジ200が装着されたことを契機としている。つまり、コントローラ130は、装着ケース150内にカートリッジ200が装着されたと判定したことに応じて、S13に示す処理を実行すればよい。なお、コントローラ130が、装着センサ154からローレベル信号を受信し、その後に装着センサ154からハイレベル信号を受信し、さらにその後に装着センサ154からローレベル信号を受信したことは、コントローラ130が、装着ケース150内にカートリッジが装着されたと判定したことの一例である。コントローラ130が、装着ケース150内にカートリッジ200が装着されたと判定する、他の例を以下に説明する。
例えば、コントローラ130が、カバーセンサ88からハイレベル信号を受信した後にローレベル信号を受信する。そして、コントローラ130は、IC基板247のメモリから識別情報を読み出して、EEPROM134に記憶された交換前のカートリッジ200の識別情報と比較する。IC基板247のメモリから読み出した識別情報と、EEPROM134に記憶された識別情報とが異なると判定したことに応じて、コントローラ130は、S17に示す処理を実行してもよい。つまり、「コントローラ130は、IC基板247のメモリから識別情報を読み出して、EEPROM134に記憶された交換前のカートリッジ200の識別情報と比較する。その結果、IC基板247のメモリから読み出した識別情報と、EEPROM134に記憶された識別情報とが異なると判定した」ことが、コントローラ130が、装着ケース150内にカートリッジ200が装着されたと判定することの一例である。
また、例えば、コントローラ130が、カバーセンサ88からハイレベル信号を受信した後にローレベル信号を受信する。そして、コントローラ130は、ディスプレイ17を通じてユーザに、装着ケース150内に新たなカートリッジ200の装着をしたか、を示す確認画面を表示させる。コントローラ130は、ディスプレイ17に確認画面を表示させている一方で、操作パネル22を通じて、当該確認画面に対応する、入力を受信する。受信した当該入力が、装着ケース150内に新たなカートリッジ200の装着した、ことに対応していることに応じて、コントローラ130は、S17に示す処理を実行する。つまり、「コントローラ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とを連通させる流路を形成する。
また、上記実施形態では、コントローラ130は、S_Emptyフラグが”ON”であれば、ヘッド21を通じたインクの排出を禁止するが、ヘッド21を通じたインクの排出は必ずしも禁止される必要はなく、コントローラ130は、S_Emptyフラグが”ON”であれば、S_Empty報知画面をディスプレイ17に表示させるのみであってもよい。
また、IC基板247は、接点152と接触して導通されるが、これにかえて、NFC(near field communication)やRFID(radio frequency identification)のような電波を用いて非接触でデータを読み書きする情報媒体とインターフェースとが採用されてもよい。
また、上記実施形態では、インクが液体の一例として説明されているが、液体は、例えば、画像記録時にインクに先立って用紙などに吐出される前処理液でもよいし、ヘッド21を洗浄するための水でもよい。