以下、本発明の実施形態について説明する。なお、以下に説明される実施形態は本発明の一例にすぎず、本発明の要旨を変更しない範囲で、本発明の実施形態を適宜変更できることは言うまでもない。また、プリンタ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枚のシートに画像が記録される。
[カバー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、流路抵抗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とが接続されている。ディスプレイ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と、流路抵抗Rc、Rs、Rnと、関数Fc、Fsと、C_Emptyフラグと、S_Emptyフラグと、カウント値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によって算出される。
高さ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となる。第1対応情報は、関数の形式に限定されず、対応するインク量Vc及び高さHcの複数のセットを含むテーブルの形式であってもよい。
関数Fsは、インク量Vs及び高さHsの対応関係を示す情報である。タンク160の液室171の水平断面積Dsが上下方向7において変化する場合、関数Fsは、インク量Vs及び高さHsを変数として、タンク160の設計時に予め決定される。一方、上下方向7における水平断面積Dsが一定の場合、関数Fs=Vs/Dsとなる。なお、第2対応情報は、関数の形式に限定されず、対応するインク量Vc及び高さHcの複数のセットを含むテーブルの形式であってもよい。
カウント値Nは、液面センサ155から出力される信号がローレベル信号からハイレベル信号に変化した後に、ヘッド21に排出を指示したインク排出量Dh(すなわち、駆動信号で示されるインク量)に相当する値で、閾値Nthに近づく向きに更新される値である。カウント値Nは、初期値を“0”としてカウントアップされる値である。また、閾値Nthは、流出口174の上端と境界位置Pとの間の液室171の容積Vthに相当する。但し、カウント値Nは、容積Vthに相当する値を初期値として、カウントダウンされる値でもよい。この場合の閾値Nthは、0となる。
C_Emptyフラグは、カートリッジ200がカートリッジエンプティ状態か否かを示す情報である。C_Emptyフラグには、カートリッジエンプティ状態であることに対応する値“ON”、或いはカートリッジエンプティ状態でないことに対応する値“OFF”が設定される。カートリッジエンプティ状態とは、カートリッジ200(より詳細には、液室210)にインクが実質的に貯留されていない状態である。換言すれば、カートリッジエンプティ状態とは、連通された液室210から液室171にインクが移動しない状態である。さらに換言すれば、カートリッジエンプティ状態とは、当該カートリッジ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を示す情報を含んでもよい。なお、ステップS12において、コントローラ130は、4つのC_Emptyフラグの少なくとも1つに“ON”が設定されていると判断したことに応じて、C_Empty報知画面を、S_Empty報知画面と合わせてディスプレイ17に表示させてもよい。C_Empty報知画面が、第1報知の一例である。
また、コントローラ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から抜き出され、新たにカートリッジ200が装着ケース150に装着されるまで、S13、S14の処理を繰り返し実行する。
そして、コントローラ130は、装着センサ154からローレベル信号を取得し、その後に装着センサ154からハイレベル信号を取得し、さらにその後に装着センサ154からローレベル信号を取得したことに応じて(S14:Yes)、時間の計測を開始するとともに、S15〜S17の処理を実行する。まず、コントローラ130は、接点152を通じてICチップ247のメモリからCTG情報を読み出し、読み出したCTG情報をEEPROM134に記憶させる(S15)。
また、コントローラ130は、Empty報知解除処理を実行する(S16)。Empty報知解除処理は、ディスプレイ17に表示されたC_Empty報知画面及びS_Empty報知画面を消去する処理である。Empty報知解除処理の詳細は、図10を参照して後述する
また、コントローラ130は、Empty報知解除処理と並行して残量更新処理を実行する(S17)。残量更新処理は、EEPROM134に記憶されたインク量Vc、Vs及び高さHc、Hsを更新する処理である。残量更新処理の詳細は、図8を参照して後述する。また詳細は後述するが、コントローラ130は、Empty報知解除処理及び残量更新処理と並行して、或いはEmpty報知解除処理及び残量更新処理が終了したことに応じて、S11以降の処理を再び実行する。そして、コントローラ130は、4つのS_Emptyフラグの全てに“OFF”が設定されていることに応じて(S11:OFF)、現時点で4つの液面センサ155それぞれから出力されている信号を取得する(S18)。さらにS18において、コントローラ130は、液面センサ155から取得した信号がハイレベル信号及びローレベル信号のどちらかを示す情報を、RAM133に記憶させる(S18)。
そして、コントローラ130は、記録指示に含まれる画像データで示される画像をシートに記録する(S19)。より詳細には、コントローラ130は、給送トレイ15上のシートを給送ローラ23及び搬送ローラ25に搬送させ、ヘッド21にインクを吐出させ、画像が記録されたシートを排出ローラ27に排出トレイ16へ排出させる。すなわち、コントローラ130は、4つのS_Emptyフラグの全てに“OFF”が設定されているときにヘッド21を通じたインクの排出を許可する。一方、コントローラ130は、4つのS_Emptyフラグの少なくとも1つに“ON”が設定されているときにヘッド21を通じたインクの排出を禁止する。
次に、コントローラ130は、記録指示に従ってシートに画像を記録したことに応じて、現時点で4つの液面センサ155それぞれから出力されている信号を取得する(S20)。さらに、S18と同様に、コントローラ130は、液面センサ155から取得した信号がハイレベル信号及びローレベル信号のどちらかを示す情報を、RAM133に記憶させる(S20)。そして、コントローラ130は、カウント処理を実行する(S21)。カウント処理は、S18、S20で液面センサ155から取得した信号に基づいて、カウント値N、C_Emptyフラグ、及びS_Emptyフラグを更新する処理である。カウント処理の詳細は、図9を参照して後述する。
次に、コントローラ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、S26の処理は、報知機を作動させることの一例である。
S25で表示されるS_Empty報知画面は、S12と同様であってもよい。また、C_Empty報知画面は、”ON”が設定されたC_Emptyフラグに対応するカートリッジ200がカートリッジエンプティ状態になったことを、ユーザに報知するための画面である。C_Empty報知画面は、例えば、カートリッジエンプティ状態のカートリッジ200に貯留されているインクの色及びインク量Vc、Vsを示す情報を含んでもよい。一方、コントローラ130は、4つのS_Emptyフラグ及び4つのC_Emptyフラグの全てに“OFF”が設定されていることに応じて(S24:OFF)、S25、S26の処理を実行せずに、画像記録処理を終了する。
なお、排出指示の具体例は記録指示に限定されず、ノズル29のメンテナンスを指示するメンテナンス指示等であってもよい。コントローラ130は、例えばメンテナンス指示を取得したことに応じて、図7と同様の処理を実行する。メンテナンス指示を取得した場合の前述の処理との相違点は、以下の通りである。まず、コントローラ130は、S19において、不図示のメンテナンス機構を駆動させて、ノズル29を通じてインクを排出させる。また、コントローラ130は、カウント処理を実行した後にS22の処理を実行することなく、S23以降の処理を実行する。
[残量更新処理]
次に図8を参照して、S17でコントローラ130が実行する残量更新処理の詳細を説明する。なお、以下の説明では、図11(A)に示されるように、タンク160内にインクが貯留されていない状態の装着ケース150に、新品(すなわち、最大インク量Vc0のインクが貯留された)カートリッジ200が装着された場合を前提とする。また、残量更新処理は、S14で新たにカートリッジ200の装着を検出した時刻tk−1から期間Δtが経過した時刻tkに実行されるものとする。すなわち、この場合の期間Δt=tk−tk−1である。
コントローラ130は、流出量Qa、Qc、インク量Vc、Vs、及び高さHc、Hsを、下記の式1〜式6を用いて算出する(S31、S32)。
まず、流出量Qaは、流出口174を通じて液室171から期間Δtの間に流出するインクの量を示す。S12〜S17の実行時点でヘッド21を通じてインクが排出されていないので、インク排出量Dh(tk−1)、Dh(tk)は、いずれも0となる。すなわち、コントローラ130は、式1を用いて、流出量Qa=0を算出する(S31)。
次に、流出量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を算出する(S31)。
流出量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を算出する(S32)。すなわち、コントローラ130は、時刻tk−1におけるインク量Vc’から、期間Δtの間に液室210から液室171に流出したインクの流出量Qcを減じて、時刻tkにおけるインク量Vcを算出する。
またS32において、コントローラ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を算出する。
またS32において、コントローラ130は、EEPROM134に記憶された関数Fcを読み出す。そして、コントローラ130は、式5で示されるように直前に算出したインク量Vcを関数Fcに代入して、時刻tkにおける高さHcを特定する。さらにS32において、コントローラ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を特定する(S32)。
次に、コントローラ130は、S32で算出したインク量Vc、Vs及び高さHc、Hs(残量情報)をEEPROM134に記憶させる(S33)。より詳細には、コントローラ130は、EEPROM134に記憶されているインク量Vc、Vs及び高さHc、Hsを、直前のS32で算出したインク量Vc、Vs及び高さHc、Hsで上書きする。また、コントローラ130は、S33で算出したインク量Vc及び高さHc(残量情報)を、接点152を通じてICチップ247のメモリに記憶させる(S34)。より詳細には、コントローラ130は、ICチップ247のメモリの第2領域に記憶されているインク量Vc及び高さHcを、直前のS33で算出したインク量Vc及び高さHcで上書きする。
なお、コントローラ130は、S34の処理に先立って、カバーセンサ88から出力されている信号を取得し、取得した信号がハイレベル信号かローレベル信号かを判断してもよい。そして、コントローラ130は、カバーセンサ88からハイレベル信号を取得したことに応じて、S35の処理を実行してもよい。一方、コントローラ130は、カバーセンサ88からローレベル信号を取得したことに応じて、S34の処理を実行せずに、S35以降の処理を実行してもよい。
次に、コントローラ130は、直前のS33で算出した高さHc、Hsの差と閾値高さHthとを比較する(S35)。閾値高さHthは、液室210及び液室171の間において、実質的にインクが移動しないと考えられる水頭差を示す。閾値高さHthは、例えば、0である。液室210及び液室171の間において、実質的にインクが移動しない状態を、平衡状態とする。すなわち、この平衡状態では、液室210及び液室171の水頭差が実質的に0である。
次に、コントローラ130は、高さHc、Hsの差が閾値高さHth以上だと判断したことに応じて(S35:No)、装着センサ154が出力する信号を取得する(S36)。次に、コントローラ130は、装着センサ154から取得した信号がハイレベル信号及びローレベル信号のどちらであるかを判断する(S37)。そして、コントローラ130は、装着センサ154が出力する信号がローレベル信号からハイレベル信号に変化するまで(S37:Yes)、或いは直前にS31〜S34の処理を実行してから期間Δtが経過するまで(S38:Yes)、期間Δtより短い所定の時間間隔でS36、S37の処理を繰り返し実行する。
次に、コントローラ130は、装着センサ154の出力が変化しないうちに期間Δtが経過したことに応じて(S37:No&S38:Yes)、S31以降の処理を再び実行する。換言すれば、コントローラ130は、直前にS31〜S34の処理を実行してから期間Δtが経過するまでの間、次のS31〜S34の処理の実行を待機する。S31〜S38の処理が繰り返し実行されることによって、図11(A)〜図12(A)に示されるように、高さHc、Hsの差が徐々に小さくなる。そして、コントローラ130は、高さHc、Hsの差が閾値高さHth未満だと判断したことに応じて(S35:Yes)、残量更新処理を終了する。すなわち、4つのカートリッジ200それぞれに対応する残量更新処理は、別々のタイミングで終了する可能性がある。
ここで、コントローラ130は、S38における期間Δtを可変にしてもよい。より詳細には、コントローラ130は、S38における期間Δtを、直前のS32で算出した高さHc、Hsの差が大きいほど短くし、直前のS32で算出した高さHc、Hsの差が小さいほど長くしてもよい。すなわち、コントローラ130は、繰り返し実行するS31〜S34の処理の間隔(換言すれば、インク量Vc、Vs及び高さHc、Hsの更新間隔)を、高さHc、Hsの差が大きいほど短くし、高さHc、Hsの差が小さいほど長くしてもよい。
一方、コントローラ130は、期間Δtが経過する前に装着センサ154の出力がローレベル信号からハイレベル信号に変化したと判断したことに応じて(S38:No&S37:Yes)、S31〜S38の処理に代えて、S39〜S41の処理を実行する。装着センサ154の出力がローレベル信号からハイレベル信号に変化するのは、装着ケース150からカートリッジ200が抜かれたことに対応する。すなわち、S31〜S34の処理は、装着ケース150にカートリッジ200が装着されている間に繰り返し実行され、装着ケース150からカートリッジ200が抜かれたことに応じて停止される。
そして、コントローラ130は、装着センサ154の出力が再びハイレベル信号からローレベル信号に変化するまで(S40:No)、装着センサ154が出力する信号を所定の時間間隔で繰り返し取得する(S39)。そして、コントローラ130は、装着センサ154の出力がハイレベル信号からローレベル信号に変化したことに応じて(S40:Yes)、S41〜S41の処理を実行すると共に、再びS31以降の処理を実行する。S36、S37、S39、S40,S41の処理は、図7のS13、S14、S15の処理に対応する。
一例として、コントローラ130は、S17で開始した残量更新処理が終了したことに応じて、S11以降の処理を実行してもよい。この場合は、図12(A)に示されるように、液室210及び液室171の液面が揃った状態で、ヘッド21を通じたインクの排出が開始される。他の例として、コントローラ130は、S17で開始した残量更新処理と並行して、S11以降の処理を実行してもよい。この場合は、図11(B)に示されるように、カートリッジ200及びタンク160の間に水頭差が生じた状態で、ヘッド21を通じたインクの排出が開始される。
[カウント処理]
次に図9を参照して、S21でコントローラ130が実行するカウント処理の詳細を説明する。なお、コントローラ130は、4つのカートリッジ200のそれぞれに対して、カウント処理を独立して実行する。カートリッジ200毎のカウント処理は共通するので、1つのカートリッジ200に対応するカウント処理のみを説明する。
まず、コントローラ130は、S18、S20でRAM133に記憶させた液面センサ155の信号を示す情報を比較する(S51)。すなわち、コントローラ130は、カウント処理(S21)を実行する直前のS19の処理を実行する前と後とで、4つの液面センサ155それぞれの信号が変化したか否かを判断する。
コントローラ130は、S18、S20でRAM133に記憶させた情報が共にローレベル信号を示す(すなわち、S19の処理の前後で液面センサ155の出力が変化していない)ことに応じて(S51:L→L)、残量更新処理を実行する(S52)。一方、S17で残量更新処理が開始され且つ平衡状態になる前にS19の処理が実行された場合は、S17で開始された残量更新処理が継続して実行されているので、S52で改めて残量更新処理を開始する必要がない。S52における残量更新処理は、流出量Qa≠0である点で前述の説明と相違する。以下、前述の説明との共通点の詳細な説明を省略し、相違点を中心に説明する。
まず、コントローラ130は、S19の開始時刻tk−1から終了時刻tkまでのインク排出量Dhを式1に代入して、流出量Qaを算出する(S32)。この場合の期間Δtは、1枚のシートに画像を記録するのに要する期間に相当する。また、この場合のインク排出量Dhは、1枚のシートに吐出されるべきインクの総排出量に相当する。すなわち、コントローラ130は、1枚のシートの画像記録を実行する度に、S32〜S35の処理を実行すればよい。但し、期間Δt及びインク排出量Dhの具体例は、これらに限定されない。
他の例として、期間Δtは、1パス分の画像の記録を実行するのに要する期間に相当する。この場合において、時刻tk−1は、1パス分の画像の記録が開始される時刻である。また、時刻tkは、1パス分の画像の記録が終了した時刻である。また、インク排出量Dh(tk−1)は、S19の開始から時刻tk−1までに排出を指示したインク量に相当する。さらに、インク排出量Dh(tk)は、S19の開始から時刻tkまでに排出を指示したインク量に相当する。すなわち、コントローラ130は、1パス分の画像の記録が終了する度に、S32〜S35の処理を実行してもよい。さらに他の例として、コントローラ130は、画像記録の区切りとは関係のない任意のタイミングで、S32〜S35の処理を実行してもよい。
また、コントローラ130は、EEPROM134に記憶された高さHc’、Hs’、粘度ρ、及び流路抵抗Rc、Rs、Rnと、直前に算出した流出量Qaとを式2に代入して、流出量Qcを算出する(S32)。
平衡状態の液室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が小さいほど小さくなる。
また図9に戻って、コントローラ130は、S18でRAM133に記憶させた情報がローレベル信号を示し、S20でRAM133に記憶させた情報がハイレベル信号を示す(すなわち、S19の処理の前後で液面センサ155の出力が変化した)ことに応じて(S51:L→H)、C_Emptyフラグに“ON”を代入する(S53)。液面センサ155の出力がローレベル信号からハイレベル信号に変化するのは、図12(B)に示されるように、S19の処理中に液室171の液面が境界位置Pに達したことに対応する。そして、これ以降は、カートリッジ200とタンク160との間でインクが移動しない。
また、コントローラ130は、EEPROM134に記憶されたインク量Vcを、予め定められた所定値(=0)で上書きする(S54)。同様に、コントローラ130は、EEPROM134に記憶されたインク量Vsを、予め定められた所定値(=容積Vth−インク排出量Dh)で上書きする(S54)。残量更新処理で算出されるインク量Vc、Vsは誤差を含むので、S32〜S35の処理の繰り返し回数が増えるほど、インク量Vc、Vsに累積される誤差が大きくなる。そこで、コントローラ130は、液面センサ155の出力がローレベル信号からハイレベル信号に変化したタイミングで、インク量Vc、Vsに予め定められた値を代入して、累積した誤差をリセットする。
また、後述されるEmpty解除処理において、ディスプレイ17にインク量Vsが不定であることを示す記号「?」が表示されている場合には、コントローラ130は、インク量Vsを所定値に上書きしたことに応じて、ディスプレイ17から記号「?」の表示を消去する。
なお前述したように、インク排出量Dhは、直前のS19で1枚のシートに吐出されるインク量に相当する。一方、液面センサ155の出力が変化するのは、S19の処理の途中である。すなわち、S54で上書きされたインク量Vsは、液面センサ155の出力が変化した瞬間にタンク160に貯留されているインクの量とは僅かにズレを生じている。しかしながら、このズレは僅かなので、S54で上書きしたインク量Vsを、液面センサ155の出力が変化した時点のインク量Vsとして扱うものとする。
また、コントローラ130は、EEPROM134に記憶されたカウント値Nに、インク排出量Dhを代入する(S55)。すなわち、コントローラ130は、直前のS19で排出を指示したインク量に相当する値で、カウント値Nをカウントアップする。換言すれば、コントローラ130は、液面センサ155の出力がローレベル信号からハイレベル信号に変化したことに応じて、カウント値Nの更新を開始する。
次に、コントローラ130は、S55で更新したカウント値Nと、閾値Nthとを比較する(S56)。そして、コントローラ130は、S55で更新したカウント値Nが閾値Nth未満だと判断したことに応じて(S56:No)、S57の処理を実行せずに、カウント処理を終了する。一方、コントローラ130は、S55で更新したカウント値Nが閾値Nth以上だと判断したことに応じて(S56:Yes)、S_Emptyフラグに“ON”を代入する(S57)。そして、コントローラ130は、S_Emptyフラグに“ON”が設定されていることに応じてヘッド21を通じたインクの排出を禁止して、カウント処理を終了する。
また、コントローラ130は、S18、S20でRAM133に記憶させた情報が共にハイレベル信号を示すことに応じて(S51:H→H)、EEPROM134に記憶されているカウント値Nを読み出す。そして、コントローラ130は、読み出したカウント値Nにインク排出量Dhを加算して、再びEEPROM134に記憶させる(S58)。次に、コントローラ130は、S58で更新したカウント値Nを用いて、前述したS56以降の処理を実行する。
すなわち、コントローラ130は、ヘッド21を通じてインクを排出させる度に、カートリッジ200毎にカウント処理を実行する。例えば、1つのカートリッジ200を対象として見ると、装着ケース150に装着されてからしばらくの間は残量更新処理が実行され(S51:L→L)、液面センサ155の出力が変化したタイミングでS53〜S57の処理が1回だけ実行され(S51:L→H)、その後はタンク160内のインクがなくなるまでS58、S56〜S57の処理が実行されることになる(S51:H→H)。
[Empty解除処理]
次に図7、図10を参照して、S16でコントローラ130が実行するEmpty解除処理の詳細を説明する。なお、コントローラ130は、4つのカートリッジ200のそれぞれに対して、S13〜S17の処理を、独立して実行する。カートリッジ200毎のEmpty解除処理は共通するので、1つのカートリッジ200に対応するEmpty解除処理のみを説明する。
カウント処理において、コントローラ130は、S55で更新したカウント値Nが閾値Nth以上だと判断したことに応じて(S56:Yes)、S_Emptyフラグに“ON”を代入し(S57)、ヘッド21を通じたインクの排出を禁止する。画像記録処理において、コントローラ130は、S_Emptyフラグに“ON”が設定されていると判断したことに応じて(S11:ON)、S_Empty報知画面をディスプレイ17に表示させる(S12)。
前述された状態(つまり、コントローラ130がヘッド21を通じたインクの排出を禁止し且つS_Empty報知画面をディスプレイ17に表示させている状態)において、図13(A)に示されるように、カートリッジ200は、タンク160へインクが流出しない状態、すなわち、Vc=0である。また、タンク160は、インクの液面が境界位置Pより下方であって、流出口174の上端付近の位置に達している。したがって、ユーザは、エンプティになったカートリッジ200を新品の或いは十分にインクが貯留されているカートリッジ200に交換して、ヘッド21を通じたインクの排出の禁止が解除されなければ、画像記録を行うことができない。
ユーザがカートリッジ200を交換している過程において、コントローラ130は、装着センサ154からローレベル信号を取得し、その後に装着センサ154からハイレベル信号を取得し、さらにその後に装着センサ154からローレベル信号を取得する(S14:Yes)。具体的には、カートリッジ200が装着ケース150から抜去される過程では、コントローラ130は、装着センサ154からローレベル信号を取得し、その後に装着センサ154からハイレベル信号を取得する。次に、カートリッジ200が装着ケース150に挿入される過程では、装着センサ154からハイレベル信号を取得し、その後に装着センサ154からローレベル信号を取得する。そして、コントローラ130は、接点152を通じてICチップ247のメモリからCTG情報を読み出し、読み出したCTG情報をEEPROM134に記憶させる(S15)。
Empty解除処理において、まず、コントローラ130は、S15において、接点152を通じてICチップ247のメモリから読み出してEEPROM134に記憶させたCTG情報に基づいて、流出量Vcsを算出する(S61)。流出量Vcsは、交換されたカートリッジ200の液室210から液室171タンク160へインクが流出して、高さHc、Hsがほぼ同等になるまでに、液室210から液室171へ流出されるインクの総量である。
流出量Vcsは、例えば、次のように算出される。カートリッジ200が交換される前のカートリッジ200の液室210のインク量Vc、及びカートリッジ200が交換される前のタンク160の液室171のインク量Vsは、前述された式3及び式4からそれぞれ算出される。仮に、カートリッジ200が新品に交換されると、カートリッジ200のICチップ247のメモリから最大インク量Vc0が読み出される。新品のカートリッジ200の液室210及びタンク160液室171の双方に貯留されたインクの総量Vtは、次の通りである。
Vt=Vs+Vc0
ここで、簡略的に、カートリッジ200の液室210の断面積Sc、並びにタンク160の液室171の断面積Ssが、上下方向7において一定であると仮定する。そして、断面積Scと断面積Ssとの合計断面積をStとする。また、高さHc、Hsが、同じ高さHtになるとする。そうすると、インクの総量Vtについて、次の式が成立する。なお、断面積Sc及び断面積Ssは、EEPROM134又はICチップ247のメモリのいずれかに記憶されているものとする。
Vt=St×Ht
上記2式から高さHtについて、次の式が求められる。
Ht=(Vs+Vc0)/St
そして、高さHtのときの液室171のインク量Vs”と、カートリッジ200が交換される直前の液室171のインク量Vsとの差が、カートリッジ200からタンク160へ流出する流出量Vcsである。
Vcs=Vs”−Vs
次に、コントローラ130は、S61で算出した流出量Vcsと、閾値Vthとを比較する(S62)。閾値Vthは、例えば容積Vthと同じ値でもよい。閾値Vthは、閾値の一例である。
そして、コントローラ130は、S61で算出した流出量Vcsが閾値Vth以上だと判断したことに応じて(S62:Yes)、S_Emptyフラグ及びC_Emptyフラグにそれぞれ“OFF”を代入する(S63)。また、コントローラ130は、EEPROM134に記憶されているカウント値Nを、EEPROM134の別の記憶領域又はICチップ247のメモリに記憶させ、現在のカウント値Nをリセットする(S63)。すなわち、コントローラ130は、カウント値Nを”0”に更新する。そして、コントローラ130は、4つのS_Emptyフラグの全てに“OFF”が設定されていることに応じて、ヘッド21を通じたインクの排出を許可する。そして、コントローラ130は、S_Empty報知画面及びC_Empty報知画面をディスプレイ17から消去する(S64)。
続いて、コントローラ130は、装着センサ154からローレベル信号を取得し、その後に装着センサ154からハイレベル信号を取得し、さらにその後に装着センサ154からローレベル信号を取得した後(S14)に経過した時間と、時間Tとを比較する(S65)。例えば、時間Tは、図13(A)に示されるように、液室171におけるインクの液面が、流出口174の上端付近の位置にある状態から、交換されたカートリッジ200からタンク160へインクが流出することによって、境界位置Pに到達するのに必要な時間である。また、例えば、時間Tは、液室210に容積Vthに相当するインクが貯留されているときに、容積Vthに相当するすべてのインクが液室171へ流出するために要する時間として設定されていてもよい。また、例えば、時間Tは、ICチップ247のメモリから読み出されたインク量Vcに基づいて、可変に算出されてもよい。時間Tは、待機時間の一例である。
そして、コントローラ130は、経過した時間が時間Tを超えていれば(S65:Yes)、液面センサ155の信号を取得する(S66)。図13(B)に示されるように、液室210から液室171へインクが流入して、液室171におけるインクの液面が境界位置Pに到達したとする。このとき、液面センサ155の出力が、ハイレベル信号からローレベル信号に変化する。コントローラ130は、液面センサ155からローレベル信号を取得したことに応じて(S66:Yes)、Empty解除処理を終了する。
また、コントローラ130は、液面センサ155からローレベル信号を取得していないことに応じて(S66:No)、S_Emptyフラグ及びC_Emptyフラグにそれぞれ“ON”を代入する(S67)。例えば、カートリッジ200のICチップ247のメモリに記憶されているインク量Vcと、実際に液室210に貯留されているインク量とが合致していないとする。液室210に殆どインクが貯留されていない場合には、経過した時間が時間Tを超えても、液面センサ155の出力はローレベル信号のままである。そのような場合には、S_Emptyフラグ及びC_Emptyフラグが再び“ON”にされる。また、コントローラ130は、リセットしたカウント値Nを、EEPROM134又はICチップ247のメモリに記憶させていた元のカウント値Nに更新する(S67)。そして、コントローラ130は、ディスプレイ17にS_Empty報知画面及びC_Empty報知画面を表示する(S68)。また、コントローラ130は、ディスプレイ17に、インク量Vsが不定であることを表示する(S69)。インク量Vsが不定であることは、例えば、ディスプレイ17に表示されているインク量Vsを示す表示、例えば、数値やインデックスに記号「?」を付加することである。記号「?」は、第2報知の一例である。そして、コントローラ130は、Empty解除処理を終了する。
また、コントローラ130は、S61で算出した流出量Vcsが閾値Vth未満だと判断したことに応じて(S62:No)、ディスプレイ17に、インク量Vsが不定であることを表示する(S70)。すなわち、記号「?」を表示する。
続いて、コントローラ130は、装着センサ154からローレベル信号を取得し、その後に装着センサ154からハイレベル信号を取得し、さらにその後に装着センサ154からローレベル信号を取得した後(S14)に経過した時間と、時間Tとを比較する(S71)。そして、コントローラ130は、経過した時間が時間Tを超えたと判断したことに応じて(S71:Yes)、液面センサ155の信号を取得する(S72)。
流出量Vcsが閾値Vth未満であっても、液室210から液室171へインクが流入して、液室171におけるインクの液面が境界位置Pに到達すると、液面センサ155の出力が、ハイレベル信号からローレベル信号に変化する。したがって、コントローラ130は、液面センサ155からローレベル信号を受信したことに応じて(S72:Yes)、S_Emptyフラグ及びC_Emptyフラグにそれぞれ“OFF”を代入する(S73)。また、コントローラ130は、EEPROM134に記憶されているカウント値Nをリセットする(S73)。すなわち、コントローラ130は、カウント値Nを”0”に更新する。そして、コントローラ130は、4つのS_Emptyフラグの全てに“OFF”が設定されていることに応じて、ヘッド21を通じたインクの排出を許可する。そして、コントローラ130は、S_Empty報知画面及びC_Empty報知画面をディスプレイ17から消去して(S74)、Empty解除処理を終了する。
[作用効果]
上述の説明によれば、プリンタ10は、カートリッジ200が交換されてから、ICチップ247に記憶されているインク量Vcに基づいて液室210から液室171へ流出する流出量Vcsを算出する。そして、プリンタ10は、算出した流出量Vcsが閾値Vth以上であることに応じて、C_Empty報知画面をディスプレイ17から消去する。これにより、液面センサ155の出力がハイレベル信号からローレベル信号になる前に、C_Empty報知画面をディスプレイ17から消去できる。
上述の説明によれば、プリンタ10は、C_Empty報知画面をディスプレイ17から消去しており、カートリッジ200が交換されてから経過した時間が時間Tを超えるかを判定する。そして、プリンタ10は、時間Tを超えるまでに、液面センサ155の出力が変化しないことに応じて、C_Empty報知画面をディスプレイ17に再表示する。これにより、ICチップ247のメモリに書き込まれたインク量Vcが正確でなく、液室210にインクが殆ど貯留されていない状態であり、液室210から液室171へインクが殆ど流出しないときには、C_Empty報知画面をディスプレイ17に再報知させることができる。
また、上述の説明によれば、プリンタ10は、時間Tを超えるまでに、液面センサ155の出力が変化しないことに応じて、インク量Vsが不定であることを示す記号「?」を表示する。これにより、インク量Vsが正確でないことをユーザに報知できる。
また、上述の説明によれば、プリンタ10は、液面センサ155の出力が変化したことに応じて、インク量Vc=0に更新し、またインク量Vs=Vth−Dhに更新する。これにより、算出されたインク量Vc及びインク量Vsが、実際に液室210及び液室171にそれぞれ貯留されたインクの各量に対して誤差を含むものであったり、インク量Vsが不定であったりしても、液面センサ155が出力する信号が変化したタイミングにおいて、誤差を含むインク量Vc及びインク量Vsを修正できる。
また、上述の説明によれば、プリンタ10は、ヘッド21にインクを排出させたことに伴って液室210、171の液面の高さに差が生じたとしても、式1〜式4に従ってインク量Vc、Vsを個別に算出することができる。また、プリンタ10は、式2で高さHc、Hsを考慮して流出量Qcを算出するので、排出指示を取得した時点で既に液室210、171の液面が揃っていない場合でも、流出量Qcを適切に算出することができる。その結果、インク量Vc、Vsを適切に算出することができる。
また、上述の説明によれば、装着ケース150にカートリッジ200が装着された時点で、液室210、171の液面の高さが異なっているとしても、液室210、171の液面が揃うまでの期間中において、プリンタ10は、式1〜式4に従ってインク量Vc、Vsを個別に算出することができる。但し、装着ケース150からカートリッジ200が抜かれるとインクの移動もなくなるので、プリンタ10は、装着センサ154からハイレベル信号が出力されたことに応じて、高さHc、Hsが閾値高さHth未満か否かに拘わらず、S32〜S35の処理を停止するのが望ましい。
また、上述の説明によれば、プリンタ10は、期間Δtが経過する度にS32〜S35の処理を繰り返し実行する。その結果、液室210、171の液面が揃うまでの期間中において、プリンタ10は、インク量Vc、Vsをリアルタイムに把握することができる。なお、流出量Qcは、高さHc、Hsの差が大きいほど大きくなり、高さHc、Hsの差が小さいほど小さくなる。そこで上述の説明のように、高さHc、Hsの差に応じてS32〜S35の実行頻度を変更することによって、リアルタイムなインク量Vc、Vsの把握と、コントローラ130の処理負荷の軽減とを両立させることができる。
また、上述の説明によれば、プリンタ10は、装着ケース150にカートリッジ200が装着されたタイミングで、最大インク量Vc0、粘度ρ、流路抵抗Rc、関数Fcを、ICチップ247のメモリから読み出す。そして、プリンタ10は、読み出した最大インク量Vc0、粘度ρ、流路抵抗Rc、関数Fcを用いて、流出量Qa、Qc、インク量Vc、Vs、及び高さHc、Hsを算出する。これにより、プリンタ10は、CTG情報がカートリッジ200毎に異なる場合であっても、S32、S33で適切な値を算出することができる。
また、上述の説明によれば、プリンタ10は、S32で算出したインク量Vc及び高さHcをICチップ247のメモリに書き込む。これにより、装着ケース150から抜かれたカートリッジ200が他のプリンタ10に装着された場合において、当該他のプリンタ10がカートリッジ200に貯留されたインクの量を適切に把握することができる。但し、装着ケース150からカートリッジ200が抜かれるのは、カバー87が露出位置に配置されている場合だけである。そこで上述の説明のように、プリンタ10は、カバーセンサ88からハイレベル信号が出力されている場合にのみICチップ247のメモリのインク量Vc及び高さHcを更新する。これによって、ICチップ247のメモリへのアクセス回数を削減することができる。
[変形例]
上述の説明では、C_Emptyフラグが液面センサ155の出力に応じて更新されるが、タンク160には液面センサ155が設けられていなくてもよい。例えば、プリンタ10は、カートリッジ200の最大量Vc0からタンク160に最初に流入するインク量Vsが算出できる。したがって、プリンタ10は、そのインク量Vsから、ヘッド21が排出するインク量を排出量Dhをカウントダウンしてインク量Vsを更新する。そして、プリンタ10は、インク量Vsが閾値Vth未満になったことに応じて、C_Emptyフラグが”ON”に更新してもよい。
また、上述の説明では、S_Empty報知画面がディスプレイ17に表示され、ヘッド21を通じたインクの排出が禁止されている状態で、カートリッジ200が交換される態様が説明されている。しかし、これに限らない。例えば、S_Empty報知画面がディスプレイ17に表示されておらず、ヘッド21を通じたインクの排出が許可されている状態で、カートリッジ200が交換されても、前述と同様の作用効果が奏される。
また、上述の説明では、プリンタ10は、液室171におけるインクの液面が境界位置Pに到達したときにC_Empty報知画面が報知されるように構成されている。しかし、これに限らない。例えば、プリンタ10は、液室171におけるインクの液面が境界位置Pより下方に到達したときにC_Empty報知画面が報知するように構成されてもよい。
また、上述の説明では、インクを液体の一例として説明した。しかしながら、液体は、例えば、画像記録時にインクに先立って用紙などに吐出される前処理液でもよいし、ヘッド21を洗浄するための水でもよい。