以下、本発明の実施形態について説明する。なお、以下に説明される実施形態は本発明の一例にすぎず、本発明の要旨を変更しない範囲で、本発明の実施形態を適宜変更できることは言うまでもない。また、後述する各処理の実行順序は、本発明の要旨を変更しない範囲で、適宜変更することができる。
図1に示される発注システム5は、プリンタ10と、一乃至複数のプリンタ10から情報を収集する情報収集サーバ40とを備える。プリンタ10と情報収集サーバ40とは、インターネットなどの通信回線6によって接続されている。プリンタ10と情報収集サーバ40とは、TCP/IPなどの通信プロトコルを用いて相互に通信可能である。また、情報収集サーバ40は、通信回線6を介して、発注を受け付ける発送サーバ50へ情報を送信可能である。情報収集サーバ40は、本発明の制御装置の一例である。プリンタ10は、画像記録装置の一例である。情報収集サーバ40は、コンピュータの一例である。
[プリンタ10の概要]
図2に示されるプリンタ10は、インク滴を吐出してシートに画像を記録するインクジェットプリンタである。プリンタ10は、ファクシミリ機能、スキャン機能、及びコピー機能などの機能を有する複合機であってもよい。
以下では、プリンタ10が使用可能に水平面に設置された使用姿勢を基準として上下方向7が定義され、プリンタ10の開口13が形成された面を前面として前後方向8が定義され、プリンタ10を前面から見て左右方向9が定義される。すなわち、使用姿勢において、上下方向7が鉛直方向に相当し、前後方向8及び左右方向9が水平方向に相当する。前後方向8及び左右方向9は、直交している。
プリンタ10は、給送ローラ23及び搬送ローラ25を駆動して、給送トレイ15に支持されたシートをプラテン26の位置まで搬送する。次に、プリンタ10は、タンク160からチューブ19を通じて供給されるインクを、ヘッド21にノズル29を通じて吐出させる。これにより、プラテン26に支持されたシートにインクが着弾して、シート上に画像が記録される。そして、プリンタ10は、排出ローラ27を駆動して、画像が記録されたシートを排出トレイ16に排出する。インクは、印刷剤の一例である。ヘッド21は、記録部の一例である。
より詳細には、ヘッド21は、搬送ローラ25によるシートの搬送向きと交差する主走査方向(左右方向9と平行)に沿って往復移動するキャリッジ20に搭載されている。キャリッジ20は、不図示のモータの駆動力が伝達されて、主走査方向(図3の紙面と垂直な方向)に沿って移動する。プリンタ10は、搬送ローラ25によるシートの搬送が停止されている間に、主走査方向に沿ってキャリッジ20を移動させつつ、ヘッド21にノズル29を通じてインクを吐出させる。これにより、ヘッド21に対面するシートの一部の領域(以下、「1パス」と表記)に画像が記録される。次に、プリンタ10は、次に画像が記録されるべき領域がヘッド21に対面するように、搬送ローラ25にシートを搬送させる。そして、これらの処理を交互に繰り返し実行させることによって、1枚のシートに画像が記録される。
[ディスプレイ28]
筐体14は、ディスプレイ28を有する。ディスプレイ28は、筐体14の前面に位置している。ディスプレイ28は、表示パネルの上にタッチセンサが配置された、所謂タッチパネルである。ただし、ディスプレイ28に代えて、或いはディスプレイ28とともに、表示パネル及び押しボタンが筐体14の前面に位置していてもよい。ディスプレイ28は、ユーザからの入力を受け付ける。
[カバー87]
図2に示されるように、筐体14の前面14Aで且つ左右方向9の右端部には、開口85が形成されている。筐体14は、さらにカバー87を備える。カバー87は、開口85を被覆する被覆位置(図2(A)に示される位置)と、開口85を開放する開放位置(図2(B)に示される位置)との間を回動可能である。カバー87は、例えば、上下方向7における筐体14の下端近傍において、左右方向9に沿う回動軸線周りに回動可能に、筐体14によって支持されている。そして、開口85の奥に広がる筐体14内部の収容空間86には、カートリッジ200が装着される装着ケース150が位置している。
[装着ケース150]
装着ケース150は、図4に示されるように、接点152と、ロッド153と、装着センサ32と、液面センサ33と、ロックピン156とを備えている。装着ケース150には、ブラック、シアン、マゼンタ、イエローの各色に対応する4つのカートリッジ200が収容可能である。すなわち、装着ケース150は、接点152、ロッド153、装着センサ32、液面センサ33は、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の前向きに通過する。装着ケース150に装着されたカートリッジ200は、装着済みカートリッジの一例である。
[接点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が大気に連通される。
[装着センサ32]
装着センサ32は、装着ケース150の天壁に位置している。装着センサ32は、カートリッジ200が装着ケース150に装着されているか否かを検出するためのセンサである。装着センサ32は、左右方向9に離間した発光部及び受光部を備える。装着ケース150にカートリッジ200が装着された状態において、カートリッジ200の後述する遮光リブ245は、装着センサ32の発光部及び受光部の間に位置する。換言すれば、装着センサ32の発光部及び受光部は、装着ケース150に装着されたカートリッジ200の遮光リブ245を挟んで、互いに対向した状態で位置している。
装着センサ32は、発光部から左右方向9に沿って照射された光が受光部で受光されたか否かに応じて、異なる信号(以下、「装着信号」と表記)を出力する。装着センサ32は、例えば、受光部で受光された光の受光強度が閾値強度未満であることに応じて、ローレベル信号をコントローラ130へ出力する。一方、装着センサ32は、受光部で受光された光の受光強度が閾値強度以上であることに応じて、ローレベル信号より信号強度の高いハイレベル信号をコントローラ130へ出力する。
[液面センサ33]
液面センサ33は、後述するアクチュエータ190の被検出部194が検出位置に位置しているか否かを検出するためのセンサである。液面センサ33は、左右方向9に離間した発光部及び受光部を備える。換言すれば、被検出部194が検出位置に位置するとき、液面センサ33の発光部及び受光部の間に、被検出部194が位置している。一方で、被検出部194が検出位置に位置していないとき、液面センサ33の発光部及び受光部の間に、被検出部194が位置していない。液面センサ33は、発光部から出力された光が受光部で受光されたか否かに応じて異なる信号(以下、「液面信号」と表記)を出力する。液面センサ33は、例えば、受光部で受光された光の受光強度が閾値強度未満であることに応じて、ローレベル信号をコントローラ130へ出力する。一方、液面センサ33は、受光部で受光された光の受光強度が閾値強度以上であることに応じて、ローレベル信号より信号強度の高いハイレベル信号をコントローラ130へ出力する。
[ロックピン156]
ロックピン156は、装着ケース150の内部空間の上端で且つ開口85付近において、左右方向9に沿って延びる棒状の部材である。ロックピン156の左右方向9の両端は、装着ケース150の一対の側壁に固定されている。ロックピン156は、4つのカートリッジ200が収容可能な4つの空間に亘って左右方向9に延びている。ロックピン156は、装着ケース150に装着されたカートリッジ200を、図6に示される装着位置に保持するためのものである。カートリッジ200は、装着ケース150に装着された状態で、ロックピン156に固定される。
[タンク160]
プリンタ10は、4つのカートリッジ200それぞれに対応して、4つのタンク160を備える。詳細には、マゼンタのインクが収容されるカートリッジ200に対応して、マゼンタのインクが収容されるタンク160と、シアンのインクが収容されるカートリッジ200に対応して、シアンのインクが収容されるタンク160と、イエローのインクが収容されるカートリッジ200に対応して、イエローのインクが収容されるタンク160と、ブラックのインクが収容されるカートリッジ200に対応して、ブラックのインクが収容されるタンク160と、を備える。4つのタンク160の構成は、概ね共通するため、以下では、1つのタンク160を説明する。タンク160は、容器の一例である。
タンク160は、装着ケース150の奥壁よりさらに後方に位置している。タンク160は、図4に示されるように、上壁161と、前壁162と、下壁163と、後壁164と、不図示の一対の側壁とで構成されている。なお、前壁162は、各々が前後方向8にずれた複数の壁によって構成される。タンク160の内部は、液室171が形成されている。液室171は、第2室の一例である。
タンク160を構成する壁のうち、少なくとも液面センサ33に対面する壁は、透光性を有している。これにより、液面センサ33が出力した光は、液面センサ33に対面する壁を透過することができる。後壁164の少なくとも一部は、上壁161、下壁163、及び側壁の端面に溶着されるフィルムでもよい。また、タンク160の側壁は、装着ケース150と共通でもよいし、装着ケース150とは独立していてもよい。さらに、左右方向9に隣接するタンク160の間は、不図示の隔壁によって仕切られている。
液室171は、流出口174を通じて不図示のインク流路に連通されている。流出口174の下端は、液室171の下端を画定する下壁163によって画定されている。流出口174は、ジョイント180(より詳細には、貫通孔184の下端)より下方に位置している。流出口174に連通された不図示のインク流路は、チューブ19に連通されている。これにより、液室171は、流出口174からインク流路及びチューブ19を通じて、ヘッド21と連通する。つまり、液室171に収容されたインクは、流出口174からインク流路及びチューブ19を通じて、ヘッド21へ供給される。流出口174に連通されたインク流路及びチューブ19は、一端(流出口174)が液室171に連通され、且つ他端89(図3参照)がヘッド21に連通されている。
液室171は、大気連通室175を通じて大気に連通されている。より詳細には、大気連通室175は、前壁162を貫通する貫通孔176を通じて液室171に連通されている。また、大気連通室175は、大気連通ポート177及び大気連通ポート177に接続された不図示のチューブを通じて、プリンタ10の外部に連通されている。すなわち、大気連通室175は、一端(貫通孔176)が液室171に連通され、且つ他端(大気連通ポート177)がプリンタ10の外部に連通されている。なお、大気連通室175は、大気連通ポート177及び不図示のチューブを通じて、大気に連通している。
[ジョイント180]
ジョイント180は、図4に示されるように、ニードル181と、ガイド182とを備えている。ニードル181は、内部に流路が形成された管である。ニードル181は、液室171を画定する前壁162から前方へ突出している。ニードル181の前端には、開口183が形成されている。また、ニードル181の内部空間は、前壁162を貫通する貫通孔184を通じて液室171に連通されている。ニードル181は、一端(開口183)がタンク160の外部に連通され、且つ他端(貫通孔184)が液室171に連通されている。ガイド182は、ニードル181の周囲に配置された円筒形状の部材である。ガイド182は、前壁162から前方に突出して、前端が開口している。
ニードル181の内部空間には、バルブ185と、コイルバネ186とが位置している。バルブ185は、ニードル181の内部空間において、閉塞位置と開放位置との間を、前後方向8に沿って移動可能である。バルブ185は、閉塞位置に位置すると開口183を閉塞する。またバルブ185は、開放位置に位置すると開口183を開放する。コイルバネ186は、バルブ185を開放位置から閉塞位置に移動させる向き、すなわち前後方向8に沿う前向きに付勢している。
[アクチュエータ190]
図4に示されるように、液室171には、アクチュエータ190が位置している。アクチュエータ190は、液室171内に配置された不図示の支持部材によって、矢印198、199の向きに沿って回動可能に支持されている。アクチュエータ190は、図4の実線で示される位置及び破線で示される位置の間を回動することができる。さらに、アクチュエータ190は、不図示のストッパ(例えば、液室171の内壁)によって、実線の位置より矢印198の向きへの回動が規制される。アクチュエータ190は、フロート191と、軸192と、アーム193と、被検出部194とを備える。
フロート191は、液室171に収容されるインクより比重が小さい材料で形成されている。軸192は、フロート191の右面及び左面から左右方向9に沿って突出している。軸192は、支持部材に形成された不図示の孔に挿入されている。これにより、アクチュエータ190は、軸192を中心として回動可能に支持部材によって支持される。アーム193は、フロート191から略上方へ延びている。被検出部194は、アーム193の先端部に位置している。すなわち、アーム193は、被検出部194と軸192との間に位置する。被検出部194は、上下方向7及び前後方向8それぞれに沿って延びる板状の部材である。被検出部194は、液面センサ33の発光部から出力された光を遮光する材料又は色で形成されている。
液室171内のインクの液面が基準位置P以上のとき、浮力によって矢印198の向きに回動されたアクチュエータ190は、ストッパによって図4の実線で示される検出位置に保持される。一方、インクの液面が基準位置P未満のとき、アクチュエータ190は、液面の降下に追従して矢印199の向きに回動する。これにより、アクチュエータ190の被検出部194は、検出位置とは異なる位置に移動する。被検出部194は、アクチュエータ190の一部であるため、当該被検出部194は、液室171に収容されたインクの量に対応する位置に移動する。
基準位置Pは、上下方向7において、ニードル181の軸中心と同じ高さであり、且つ後述するインク供給口234の中心と同じ高さである。しかしながら、基準位置Pは、上下方向7における流出口174より上方の位置であれば、前述の位置に限定されない。他の例として、基準位置Pは、ニードル181の内部空間の上端や下端の高さでもよいし、インク供給口234の上端や下端の高さでもよい。
液室171に収容されたインクの液面が基準位置P以上のとき、液面センサ33の発光部から出力された光が、検出位置に位置する被検出部194で遮られる。これにより、液面センサ33は、発光部からの光が受光部に到達しないので、ローレベル信号をコントローラ130へ出力する。一方、液室171に収容されたインクの液面が基準位置P未満のとき、液面センサ33は、発光部から出力された光が受光部に到達するので、ハイレベル信号をコントローラ130へ出力する。すなわち、コントローラ130は、液室171内のインクの液面が基準位置P以上か否かを、液面センサ33から出力される信号によって検出することができる。液面センサ33と、タンク160と、装着ケース150と、ヘッド21とは、記録ユニットの一例である。
[カートリッジ200]
カートリッジ200は、印刷剤の一例であるインクを内部に収容可能な液室210(図3参照)を有する容器である。液室210は、第1室の一例である。
液室210は、例えば、樹脂製の壁によって画定されている。カートリッジ200は、図5(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の内部空間には、図5(B)に示されるように、液室210、インクバルブ室213、及び大気バルブ室214が形成されている。液室210は、上部液室211と、下部液室212とを有する。上部液室211、下部液室212、及び大気バルブ室214は、筐体201の内部空間である。一方、インクバルブ室213は、供給管230の内部空間である。液室210は、インクを収容する。大気バルブ室214は、液室210とカートリッジ200の外部とを連通させる。
液室210の上部液室211及び下部液室212は、筐体201の内部空間を仕切る隔壁215によって、上下方向7に隔てられている。そして、上部液室211及び下部液室212は、隔壁215に形成された貫通孔216によって連通されている。また、上部液室211及び大気バルブ室214は、筐体201の内部空間を仕切る隔壁217によって隔てられている。そして、上部液室211及び大気バルブ室214は、隔壁217に形成された貫通孔218によって連通されている。さらに、インクバルブ室213は、貫通孔219を通じて下部液室212の下端に連通されている。
大気バルブ室214は、カートリッジ200の上部において、後壁202に形成された大気連通口221を通じてカートリッジ200の外部に連通されている。すなわち、大気バルブ室214は、一端(貫通孔218)が液室210(より詳細には、上部液室211)に連通され、且つ他端(大気連通口221)がカートリッジ200の外部に連通されている。なお、大気バルブ室214は、大気連通口221を通じて、大気に連通している。また、大気バルブ室214には、バルブ222と、コイルバネ223とが位置している。バルブ222は、閉塞位置と開放位置との間を、前後方向8に沿って移動可能である。バルブ222は、閉塞位置に位置すると、大気連通口221を閉塞する。また、バルブ222は、開放位置に位置すると大気連通口221を開放する。コイルバネ223は、バルブ222を開放位置から閉塞位置に移動させる向き、すなわち前後方向8に沿う後ろ向きに付勢している。
カートリッジ200が装着ケース150に装着される過程において、ロッド153が大気連通口221を通じて大気バルブ室214内に進入する。大気バルブ室214内に進入したロッド153は、閉塞位置のバルブ222をコイルバネ223の付勢力に抗して前後方向8における前向きに移動させる。そして、バルブ222が開放位置に移動することによって、上部液室211が大気に連通される。なお、大気連通口221を開放するための構成は、前述の例に限定されない。他の例として、大気連通口221を封止するフィルムをロッド153が突き破る構成でもよい。
供給管230は、筐体201の下部において、後壁202から前後方向8における後ろ向きに突出している。供給管230は、その後端が開口されている。すなわち、インクバルブ室213は、貫通孔219を通じて連通された液室210と、カートリッジ200の外部とを連通させる。インクバルブ室213は、一端(貫通孔219)が液室210(より詳細には下部液室212)と連通され、且つ他端(後述するインク供給口234)がカートリッジ200の外部と連通されている。また、インクバルブ室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の付勢力に抗して後ろ向きに移動させる。
これにより、図6に示されるように、インク供給口234及び開口183が開放されて、供給管230のインクバルブ室213と、ニードル181の内部空間とが連通される。すなわち、装着ケース150にカートリッジ200が装着された状態において、インクバルブ室213及びニードル181の内部空間は、カートリッジ200の液室210とタンク160の液室171とを連通させる流路を構成する。
また、装着ケース150にカートリッジ200が装着された状態において、液室210の一部と、液室171の一部とは、水平方向から見て互いに重なる。さらに、液室210の底部よりも液室171の底部の方が、下方に位置している。その結果、液室210に収容されたインクは、接続された供給管230及びジョイント180を通じて、液室210の水頭と液室171の水頭との差によってタンク160の液室171に流出する。
図5に示されるように、上壁204には、突起241が形成されている。突起241は、上壁204の外面から上方に突出し且つ前後方向8に沿って延びている。突起241は、ロック面242と、傾斜面243とを有する。ロック面242及び傾斜面243は、上壁204より上方に位置している。ロック面242は、前後方向8に沿って前方を向き且つ上下方向7及び左右方向9それぞれに沿って延びている(すなわち、上壁204と概ね直交する)。傾斜面243は、上方及び後方を向くように、上壁204に対して傾斜している。
ロック面242は、装着ケース150にカートリッジ200が装着された状態において、ロックピン156に当接される面である。傾斜面243は、カートリッジ200が装着ケース150に装着される過程において、ロックピン156をロック面242と当接する位置まで案内する面である。ロック面242とロックピン156とが当接した状態では、コイルバネ186、223、233の付勢力に抗して、カートリッジ200が図6に示される装着位置に保持される。
ロック面242より前方において上壁204から上方へと延びるようにして、平板状の部材が形成されている。この平板状の部材の上面は、カートリッジ200を装着ケース150から抜くする際に、ユーザが操作する操作部244である。カートリッジ200が装着ケース150に装着された状態で且つカバー87が開放位置に位置しているとき、操作部244は、ユーザに操作可能となる。操作部244が下方へ押されると、カートリッジ200が回動することによって、ロック面242がロックピン156より下方へ移動する。その結果、カートリッジ200が装着ケース150から抜くすることが可能となる。
図5に示されるように、上壁204の外面で且つ突起241より後方には、遮光リブ245が形成されている。遮光リブ245は、上壁204の外面から上方に突出し且つ前後方向8に沿って延びている。遮光リブ245は、装着センサ32の発光部から出力される光を遮光する材料又は色で形成されている。遮光リブ245は、装着ケース150にカートリッジ200が装着された状態において、装着センサ32の発光部から受光部に至る光路上に位置する。すなわち、装着センサ32は、装着ケース150にカートリッジ200が装着されていることに応じて、ローレベル信号をコントローラ130に出力する。一方、装着センサ32は、装着ケース150にカートリッジ200が装着されていないことに応じて、ハイレベル信号をコントローラ130に出力する。すなわち、コントローラ130は、装着ケース150にカートリッジ200が装着されているか否かを、装着センサ32から出力される信号によって検出することができる。
図5に示されるように、上壁204の外面で且つ前後方向8における遮光リブ245及び突起241の間には、ICチップ34が位置している。ICチップ34には、電極248が形成されている。また、ICチップ34は、不図示のメモリを備える。電極248は、ICチップ34のメモリと電気的に接続されている。電極248は、ICチップ34の上面において、接点152と導通可能に露出されている。すなわち、カートリッジ200が装着ケース150に装着された状態において、電極248は、接点152と導通する。コントローラ130は、接点152及び電極248を通じてICチップ34のメモリから情報を読み出し、接点152及び電極248を通じてICチップ34のメモリに情報を書き込むことができる。
ICチップ34のメモリは、カートリッジ200の種別情報、シリアルナンバー、及びカートリッジ残量値を記憶する。種別情報とは、カートリッジ200が小容量カートリッジであるか、又は、大容量カートリッジであるか、収容するインクの色などを示す情報である。シリアルナンバーは、カートリッジ200を個々に識別する情報である。カートリッジ残量値は、カートリッジ200が収容するインクの量を示す値である。なお、未使用のカートリッジ200では、カートリッジ残量値は、初期インク残量を示す初期残量値がメモリに記憶されている。
[コントローラ130]
プリンタ10は、コントローラ130を備える。コントローラ130は、図1に示されるように、CPU35、記憶部36、及び通信バス39を備えている。記憶部36は、プログラムやデータを記憶するROM37と、データを記憶するEEPROM51及びRAM52を有する。
ROM37は、OS(Operating Systemの略)プログラム37Aや、制御プログラム37Bや、通信プログラム37Cなどを記憶する。OSプログラム37Aは、他のプログラムの動作を制御するプログラムである。通信プログラム37Cは、情報収集サーバ40などの外部機器との通信を制御するプログラムである。制御プログラム37Bは、後述の印刷処理などを行うプログラムである。OSプログラム37A、制御プログラム37B、及び通信プログラム37Cは、CPU35によって、アドレスに記述された命令が処理されることによって実行される。以下では、OSプログラム37A、制御プログラム37B、及び通信プログラム37Cが実行されることによって処理される動作を、コントローラ130の動作として記載することがある。なお、コントローラ130は、OSプログラム37A、制御プログラム37B、及び通信プログラム37Cが実行する動作の一部または全部を実現するICを用いたハード回路を有していてもよい。
EEPROM51は、プリンタ10の装置情報を記憶する。装置情報は、プリンタ10のモデル名や、プリンタ10の識別情報を含む。プリンタ10の識別情報は、プリンタ10のMACアドレスやシリアルナンバーなどである。
また、EEPROM61は、第1排出値、第2排出値、初期カートリッジ残量値、初期タンク残量値、S_Emptyフラグ、C_Emptyフラグを記憶する。詳しくは、後述の印刷処理で説明する。
通信バス39には、ヘッド21や、通信インタフェース(以下、通信I/Fと記載)31や、装着センサ32や、液面センサ33や、接点152や、クロック30や、ディスプレイ28や、不図示のモータなどが接続されている。クロック30は、日時情報を出力する。通信I/F31は、通信回線6に接続されている。
コントローラ130は、通信バス39を通じて不図示のモータを駆動させることによって、給送ローラ23、搬送ローラ25、及び排出ローラ27を回転させる。また、コントローラ130は、通信バス39を通じてヘッド21の駆動素子に駆動信号を出力することによって、ヘッド21からインク滴を吐出させる。
また、コントローラ130は、装着ケース150にカートリッジ200が装着されているか否かを装着センサ32を通じて検出する。さらに、コントローラ130は、液室171内のインクの液面が基準位置P以上か否かを液面センサ33を通じて検出する。
[情報収集サーバ40]
情報収集サーバ40は、プリンタ10のベンダによってインターネット6に上に設置されてもよいし、当該ベンダとは異なる事業者によって設置されてもよい。情報収集サーバ40は、CPU41と、記憶部42と、通信I/F43と、通信バス44と、クロック48とを備える。CPU41、記憶部42、及び通信バス44は、コントローラ45を構成する。クロック48は、日時情報を出力する。通信I/F43は、通信回線6に接続されており、プリンタ10や発送サーバ50と通信を行う。
記憶部42は、プログラム記憶領域46と、データ記憶領域47とを有する。プログラム記憶領域46は、ハードディスクなどである。データ記憶領域47は、RAMやハードディスクなどである。記憶部42は、メモリの一例である。
データ記憶領域47は、後述の残量管理リスト(図13(A))及びカートリッジ管理リスト(B)を記憶する。
プログラム記憶領域46は、OSプログラム46Aや、制御プログラム46Bや、通信プログラム46Cなどのプログラムを記憶する。OSプログラム46Aは、他のプログラムの動作を制御する。制御プログラム46Bは、後述の発注処理などを実行する。通信プログラム46Cは、プリンタ10や発送サーバ50との通信を制御する。OSプログラム46A、制御プログラム46B、及び通信プログラム46Cは、ハードディスクからRAMにコピーされ、RAMにコピーされた命令をCPUが順に実行することによって実行される。以下では、OSプログラム46A、制御プログラム46B、及び通信プログラム46Cが実行されることによって処理される動作を、コントローラ45や情報収集サーバ40の動作として記載することがある。制御プログラム46Bは、プログラムの一例である。
[発送サーバ50]
発送サーバ50は、プリンタ10のベンダによってインターネット6上に設置されてもよいし、当該ベンダとは異なる事業者によって設置されてもよい。発送サーバ50は、情報収集サーバ40からの要求に応じて、プリンタ10のユーザにカートリッジ200を発送するサービスを提供する。
[発注システム5によるインクの管理]
発注システム5では、情報収集サーバ40がプリンタ10からインクの残量情報を含む管理情報を収集し、インクの残量が少なくなると、発送サーバ50に対してカートリッジ200の発注を行う。このように、インク残量の管理及びカートリッジ200の発注を情報収集サーバ40が行うことで、プリンタ10のユーザによるインク残量の管理及びカートリッジ200の購入の手間を省くことができ、便利である。
具体的には、プリンタ10のユーザが、インク残量の管理及びカートリッジ200の発注サービスを行っているメーカと契約を締結する。インク残量の管理及びカートリッジ200の発注サービスは、プリンタごとに契約されるサービスであり、契約時に、ユーザ情報や、契約対象のプリンタ10の識別情報が情報収集サーバ40に記憶される。ユーザ情報は、カートリッジ200の配送先のユーザの氏名、住所などの宛先に関する情報である。
ユーザとメーカとの間で契約が締結されると、情報収集サーバ40に、プリンタ10の識別情報とユーザ情報とが対応付けられて記憶される。以下、カートリッジ200の発注に関するプリンタ10、情報収集サーバ40、及び発送サーバ50の処理について、詳しく説明する。
[プリンタ10のコントローラ130が実行する処理]
図7〜図9に示されるフローチャートを参照して、プリンタ10のコントローラ130が実行する処理を説明する。なお、以下の各処理の実行順序は、本発明の要旨を変更しない範囲で、適宜変更することができる。
[印刷処理]
コントローラ130は、プリンタ10に印刷指示が入力されたことに応じて、図7に示される印刷処理を実行する。印刷指示の取得元は特に限定されないが、例えば、印刷指示に対応するユーザ操作を操作パネル22やディスプレイ28を通じて受け付けてもよいし、通信I/F34を通じて外部装置から受信してもよい。印刷指示には、画像を示す画像データが含まれる。当該画像データは、プリンタ10のRAM52に記憶される。
まず、コントローラ130は、EEPROM51が記憶しているS_Emptyフラグの値がONであるかOFFであるかを判断する(S11)。コントローラ130は、タンク160の液室171内のインクの液面が、タンク160からインクが流出する流出口174の上端に達する前にEEPROM51のS_Emptyフラグに「ON」を記憶させる。EEPROM51のS_Emptyフラグの値は、「ON」を記憶するまでは「OFF」を記憶している。なお、流出口174の上端にインクの液面が達すると、ヘッド21のノズルにエア(空気)が進入してしまう虞がある。ヘッド21のノズルに進入したエアがノズル内に滞留すると、ノズル内へのインクの進入が阻害されたり、ノズルからのインク滴の吐出が阻害されたりする虞が生じる。
すなわち、S_Emptyフラグは、ヘッド21のノズルにエアが進入することを防止するためのものである。コントローラ130は、後述のステップS14において、EEPROM51のS_EmptyフラグにOFFを記憶させ、ステップS55においてS_Emptyフラグに「ON」を記憶させる。具体的には、コントローラ130は、EEPROM51のS_EmptyフラグにONを記憶させる。フローチャートには示されていないが、コントローラ130は、EEPROM51のS_Emptyフラグが「ON」であることに応じて、ヘッド21からのインクの吐出を禁止し、EEPROM51のS_Emptyフラグが「OFF」であることに応じて、インクの吐出を許容する。
コントローラ130は、EEPROM51のS_Emptyフラグの値が「ON」であると判断すると(S11:ON)、装着センサ32から装着信号を所定の時間間隔で取得する。次に、コントローラ130は、取得した装着信号がローレベル信号(以下、「L」と記載)からハイレベル信号(以下、「H」と記載)に変化し、さらに、取得した装着信号が「H」から「L」に変化したか否かを判断する(S12)。すなわち、装着信号の変化により、カートリッジ200が装着されたか否かが判断される。以下、コントローラ130が、取得した装着信号が「L」から「H」に変化し、さらに取得した装着信号が「H」から「L」に変化したか否かを判断する、ことを、コントローラ130が、カートリッジ200が交換されたか否かを判断する、とする。また、コントローラ130が、取得した装着信号が「L」から「H」に変化し、さらに、取得した装着信号が「H」から「L」に変化したかを判断する(S12:Yes)ことを、コントローラ130が、カートリッジ200が装着されたと判断することとする。
コントローラ130は、カートリッジ200が装着されていないと判断すると(S12:No)、装着センサ32から装着信号の定期的な取得を継続する。コントローラ130は、カートリッジ200が装着されたと判断すると(S12:Yes)、第1更新処理(S13)を実行する。なお、コントローラ130が、カートリッジ200が装着されたか否かを判断する具体例として、ステップS12の処理を挙げたが、これに限られない。例えば、シリアルナンバーを用いてカートリッジ200が装着されたか否かが判断されてもよい。コントローラ130は、カートリッジ200のICチップ34のメモリからカートリッジ200のシリアルナンバーを読み出す。そして、コントローラ130は、読み出したシリアルナンバーと、EEPROM51が記憶しているシリアルナンバーとが一致するか否かを判断する。EEPROM51が記憶しているシリアルナンバーとは、装着ケース150に新しいカートリッジ200が装着される前に装着ケース150に装着されていたカートリッジ200のICチップ34のメモリが記憶しているシリアルナンバーである。この場合、コントローラが、カートリッジ200が装着されたと判断するときの具体例は、コントローラ130は、ICチップ34のメモリから読み出したシリアルナンバーと、EEPROM51が記憶しているシリアルナンバーとが一致しないと判断することである。
[第1更新処理]
図8(A)に示される第1更新処理は、コントローラ130が、EEPROM51に記憶された初期カートリッジ残量値及び初期タンク残量値と、カートリッジ200のICチップ34に記憶されたカートリッジ残量値とを更新する処理である。
まず、コントローラ130は、接点152を通じて、装着ケース150に装着されたカートリッジ200のICチップ34のメモリから、当該ICチップ34のメモリが記憶するカートリッジ残量値を読み出す(S31)。コントローラ130は、読み出したカートリッジ残量値を初期カートリッジ残量値としてEEPROM51に記憶させる(S32)。
また、コントローラ130は、タンク残量値をRAM52から読み出す(S33)。なお、電源オフなどによってRAM52にタンク残量値が記憶されていない場合、コントローラ130は、後述の第4更新処理と同様にして、タンク残量値を算出し、当該算出したタンク残量値をRAM52に記憶する。RAM52から読み出されるタンク残量値は、カートリッジ200が装着される直前にタンク160の液室171に貯留されていたインク残量を示す値である。換言すれば、タンク残量値は、カートリッジ200が抜かれた際にタンク160の液室171に貯留されていたインク残量を示す値である。コントローラ130は、RAM52から読み出したタンク残量値を初期タンク残量値としてEEPROM61に記憶させる(S33)。
コントローラ130は、初期カートリッジ残量値及び初期タンク残量値を加算し、インクの合計残量を示す合計残量値を算出する(S34)。コントローラ130は、算出した合計残量値から、新たなカートリッジ残量値及びタンク残量値を決定する(S35)。
具体的に説明すると、新たなカートリッジ200が装着ケース150に装着されると、カートリッジ200の液室210から、当該液室210に収容されていたインクの一部がタンク160の液室171へと流出する。カートリッジ200の液室210からタンク160の液室171へのインクの流出は、カートリッジ200の液室210に収容されたインクの水頭と、タンク160の液室171に収容されたインクの水頭との差がほぼ無くなると、停止する。新たなカートリッジ残量値及び新たなタンク残量値は、カートリッジ200の液室210に収容されたインクの水頭と、タンク160の液室171に収容されたインクの水頭との差がほぼ無くなった状態でのインク残量を示す。
カートリッジ残量値及びタンク残量値は、例えばコントローラ130が、EEPROM51やROM37が記憶する計算式に基づく算出をすることで決定してもよい。或いは、カートリッジ残量値及びタンク残量値は、例えばコントローラ130が、EEPROM51やROM37が記憶するテーブルに基づいて決定してもよい。具体的に説明すると、カートリッジ200の液室210の形状及びタンク160の液室171の形状は、設計によって予め決められる。したがって、インクの合計残量値が判れば、カートリッジ200に収容されたインクの水頭とタンク160に収容されたインクの水頭との差が無くなった状態におけるカートリッジ残量値及びタンク残量値も判る。EEPROM51やROM37は、合計残量値からカートリッジ残量値及びタンク残量値を計算する計算式を予め記憶している。或いは、EEPROM51やROM37は、合計残量値とカートリッジ残量値とタンク残量値との対応が示されたテーブルを予め記憶している。コントローラ130は、当該計算式やテーブルにより、新たなカートリッジ残量値及び新たなタンク残量値を決定する。
コントローラ130は、決定した新たなカートリッジ残量値をRAM52に記憶させるとともに、ICチップ34のメモリに記憶されたカートリッジ残量値更新する(S36)。また、コントローラ130は、決定した新たなタンク残量値をRAM51に記憶させ(S37)、第1更新処理を終了する。
コントローラ130は、図7に示されるように、第1更新処理が終了すると(S13)、EEPROM51のS_Emptyフラグに「OFF」を記憶させ、EEPROM51のC_Emptyフラグに「OFF」を記憶させ、EEPROM51のカートリッジ交換フラグに「ON」を記憶させ、第1排出値及び第2排出値をゼロにリセット(S14)して、ステップS11の処理を再び実行する。なお、C_Emptyフラグ、第1排出値、第2排出値、及びカートリッジ交換フラグについては後述する。
コントローラ130は、EEPROM51のS_Emptyフラグの値が「OFF」であると判断すると(S11:OFF)、液面センサ33からの信号(以下、液面信号と記載)を取得する(S15)。その後、コントローラ130は、RAM52が記憶する画像データに従って、シートに印刷を行う(S16)。画像がシートに印刷されることにより、インクがヘッド21を通じて排出される。インクが排出されたことにより、タンク160におけるインクの液面が下がる。コントローラ130は、印刷の実行後(S16)、液面センサ33から液面信号を取得する(S17)。次に、コントローラ130は、ステップS15で取得した液面信号とステップS17で取得した液面信号との判断をする(S18)。以下、コントローラ130が、液面センサ33から取得するローレベル信号を、「L」と記載することがある。また、コントローラ130が、液面センサ33から取得するハイレベル信号を、「H」と記載することがある。
コントローラ130は、ステップS15及びS17で取得した液面信号ががともに「L」であると判断すると(S18:L→L)、第2更新処理(S19)を実行する。ステップS18で、コントローラ130が、ステップS15及びS17で取得した液面信号がともに「L」であると判断した際は、タンク160の液室171内のインクは、以下の状態である。すなわち、印刷の実行(S16)前のタンク160の液室171に貯留されたインクの液面の位置が基準位置P以上(ステップS15で取得した液面信号が「L」)である。及び、印刷の実行(S16)後のタンク160の液室171に貯留されたインクの液面の位置が基準位置P以上(ステップS17で取得した液面信号が「L」)である。すなわち、印刷の実行(S16)後、コントローラ130がステップS17で取得した液面信号が「L」である際の、カートリッジ200の液室210には、インクが存在している。
[第2更新処理]
図8(B)に示される第2更新処理は、コントローラ130が、印刷やメンテナンスにおいてヘッド21を通じて排出されたインクの量を示す第1排出値から、新たなカートリッジ残量値及びタンク残量値を決定する処理である。第1排出値は、例えば、ヘッド21に吐出させるインク1滴の量に、当該インク1滴が吐出される回数を乗じた値である。コントローラ130は、ヘッド21にインクの吐出を指示するごとに、指示に応じた第1排出値をカウントする。コントローラ130は、カートリッジ200の装着後から現在までにヘッド21が吐出した量に相当する第1排出値をカウントする。すなわち、第1排出値は、カートリッジ200の装着後から現在までにヘッド21が吐出したインクの量の積算値である。この第1排出値は、EEPROM51が記憶している。
まず、コントローラ130は、初期カートリッジ残量値と初期タンク残量値とをEEPROM51から読み出す(S41)。次に、コントローラ130は、読み出した初期カートリッジ残量値と初期タンク残量値とを加算して合計残量値を算出する(S42)。コントローラ130は、算出した合計残量値から第1排出値を減算し、新たな合計残量値を算出する(S43)。その後、コントローラ130は、上述と同様に、計算式やテーブルを用いて新たなカートリッジ残量値及び新たなタンク残量値を決定する(S44)。
コントローラ130は、決定した新たなカートリッジ残量値をRAM52に記憶させるとともに、ICチップ34のメモリに記憶されたカートリッジ残量値を更新する(S45)。また、コントローラ130は、決定した新たなタンク残量値をRAM52に記憶させ(S46)、第2更新処理を終了する。
コントローラ130は、図7に示されるように、第2更新処理(S19)が終了すると、次ページの画像データがRAM52に記憶されているか否かを判断する(S22)。コントローラ130は、次ページの画像データがRAM52に記憶されていると判断すると(S22:Yes)、ステップS11の処理を再び実行する。コントローラ130は、次ページの画像データがRAM52に記憶されていないと判断すると(S22:No)、印刷処理を終了する。
なお、上述したカートリッジ残量値及びタンク残量値の決定方法は一例であり、他の方法によってカートリッジ残量値及びタンク残量値が決定されてもよい。
コントローラ130は、ステップS11の処理で、EEPROM51のS_Emptyフラグの値が「OFF」であると判断すると(S11:OFF)、再び、ステップS15からS18までの処理を実行する。コントローラ130は、ステップS15で取得した液面信号が「L」であり、且つステップS17で取得した液面信号が「H」であると判断すると(S18:L→H)、第3更新処理(S20)を実行する。ステップS18で、コントローラ130が、ステップS15で取得した液面信号が「L」であり、且つS17で取得した液面信号が「H」であると判断した際は、タンク160の液室171内のインクは、以下の状態である。すなわち、印刷の実行(S16)前のタンク160の液室171に貯留されたインクの液面の位置が基準位置P以上(ステップS15で取得した液面信号が「L」)である。及び、印刷の実行(S16)後のタンク160の液室171に貯留されたインクの液面の位置が基準位置P未満(ステップS17で取得した液面信号が「H」)である。すなわち、印刷の実行(S16)中に、カートリッジ200の液室210内にあったインクが存在しなくなったのである。換言すれば、印刷の実行(S16)中にカートリッジ200の液室210内にあったインクが使い切られたことを意味する。
[第3更新処理]
図8(C)に示される第3更新処理は、コントローラ130が、カートリッジ残量値を第1所定値に更新し、かつタンク残量値を第2所定値に更新する処理である。具体的に説明すると、印刷などによってヘッド21を通じてから排出されたインクの量を示す第1排出値は、誤差を含む。例えば、コントローラ130は、ヘッド21に、ある特定の量のインクの吐出を指示したとしても、実際にヘッド21から吐出されるインクの量と、ヘッド21に指示した特定の量、とに差が生じる場合がある。この差は、例えば、上記インクの吐出を指示した時の温度が原因で生じることがある。温度が低くなるほど、インクの粘度が高くなるため、ノズル29を通じてインクが排出されにくくなるためである。さらに、コントローラ130は、ヘッド21に繰り返し上記の指示を行うと、繰り返し実際にヘッド21を通じて排出されるインクの量と、特定の量を繰り返した量とで、差がより開くこともある。つまり、印刷がされる度に、算出される第1排出値が示す量と、実際にヘッド21を通じて排出された量とでは、誤差が積算される可能性がある。
カートリッジ残量値は、上記第1排出値に従って決定されるため、カートリッジ残量値が示すインク残量と、実際の液室210内のインク残量と、に誤差が発生する。また、タンク残量値は、上記第1排出値に従って決定されるため、タンク残量値が示すインク残量と、実際の液室171内のインク残量と、に誤差が発生する。したがって、印刷がされる度に決定されるカートリッジ残量値及びタンク残量値は、積算された誤差を含む。第3更新処理は、積算された誤差をリセットする処理である。
具体的に説明すると、コントローラ130は、ICチップ34のメモリに記憶された初期カートリッジ残量値を第1所定値で更新する(S47)。第1所定値は、例えば「ゼロ」である。また、コントローラ130は、初期タンク残量値を第2所定値としてEEPROM51に記憶させる(S48)。第2所定値は、基準位置Pにインクの液面がある場合にタンク160の液室171に貯留されているインクの量を示す値である。第1所定値及び第2所定値は、例えば、ROM132に予め記憶される。
次に、コントローラ130は、EEPROM51のC_Emptyフラグに「ON」を記憶させ(S49)、第3更新処理を終了する。すなわち、EEPROM51のC_Emptyフラグは、カートリッジ200に収容されたインクが使い切られると、「ON」を記憶される。
コントローラ130は、図7に示されるように、第3更新処理(S20)が終了すると、次ページの画像データがRAM52に記憶されているか否かを判断する(S22)。コントローラ130は、次ページの画像データがRAM52に記憶されていると判断すると(S22:Yes)、ステップS11の処理を再び実行する。コントローラ130は、次ページの画像データがRAM52に記憶されていないと判断すると(S22:No)、印刷処理を終了する。
コントローラ130は、ステップS11の処理で、S_Emptyフラグの値が「OFF」であると判断すると(S11:OFF)、再び、ステップS15からS18までの処理を実行する。コントローラ130は、ステップS15及びS17で取得した液面信号がともに「H」であると判断すると(S18:H→H)、第4更新処理(S21)を実行する。ステップS18で、コントローラ130が、ステップS15及びS17で取得した液面信号が共に「H」であると判断した際は、タンク160の液室171内のインクは、以下の状態である。すなわち、印刷の実行(S16)前のタンク160の液室171に貯留されたインクの液面の位置が基準位置P未満(ステップS15で取得した液面信号が「H」)である。及び、印刷の実行(S16)後のタンク160の液室171に貯留されたインクの液面の位置が基準位置P未満(ステップS17で取得した液面信号が「H」)である。すなわち、印刷の実行(S16)の前後で、コントローラ130が、カートリッジ200の液室210には、インクが存在していない。
[第4更新処理]
図8(D)に示される第4更新処理は、コントローラ130が、タンク残量値を算出し、算出したタンク残量値が示すタンク残量が、印刷を継続できる量であるか否かを判断する処理である。まず、コントローラ130は、第2所定値に更新された初期タンク残量値をEEPROM51から読み出す(S51)。コントローラ130は、読み出した初期タンク残量値から第2排出値を減算し、新たなタンク残量値を算出する(S52)。第2排出値は、第1排出値と同様に、例えば、ヘッド21に吐出させるインク1滴の量に、当該インク1滴が吐出される回数を乗じた値である。コントローラ130は、ヘッド21にインクの吐出を指示するごとに、指示に応じた第2排出値をカウントする。コントローラ130は、液面センサ33から取得した液面信号が「L」から「H」に変化した後から、現在までにヘッド21が排出したインクの量を示す第2排出値をカウントする。すなわち、第2排出値は、液面センサ33から取得した液面信号が「L」から「H」に変化した後から現在までにヘッド21が排出したインクの量の積算値である。この第2排出値は、EEPROM51が記憶している。
コントローラ130は、ステップS52で算出した新たなタンク残量値を、RAM52に記憶させる(S53)。また、コントローラ130は、カウントした第2排出値が閾値に到達したか否かを判断する(S54)。閾値は、ROM37やEEPROM51に予め記憶された値である。コントローラ130は、カウントした第2排出値が閾値に到達していないと判断すると(S54:No)、第4更新処理を終了する。一方、コントローラ130は、カウントした第2排出値が閾値に到達したと判断すると(S54:Yes)、EEPROM51のS_Emptyフラグに「ON」を記憶させ(S55)、第4更新処理を終了する。フローチャートには示されていないが、コントローラ130は、EEPROM51のS_Emptyフラグに「ON」が記憶されていると判断すると、印刷及びメンテナンスを含めて、ヘッド21を通じたインクの排出を禁止する。
閾値は、第2排出値が閾値に到達したときに、タンク160の液室171に貯留されたインクの液面が流出口174よりも若干上の位置になるような値とされる。詳しく説明すると、液面センサ33が検知する設計上の基準位置Pと、液面センサ33が実際に検知する基準位置Pとの間には、誤差がある場合がある。この誤差は、例えば、アクチュエータ190の動作の不具合等で発生したりする。閾値は、当該誤差が設計時に想定し得る最大の誤差であっても、第2排出値が閾値に到達したときに、タンク160の液室171に貯留されたインクの液面が流出口174に重ならないような値とされる。コントローラ130が、ヘッド21を通じたインクの排出を禁止することにより、ヘッド21にエアが混入することが抑制される。なお、閾値は、上述の誤差に加え、プリンタ10が傾斜した面に載置されることも考慮して、プリンタ10が所定の傾斜角度の面に載置されても、第2排出値が閾値に到達したときに、タンク160の液室171に貯留されたインクの液面が流出口174に重ならないような値とされてもよい。また、第2排出値は、第1排出値と同様に誤差を含む場合がある。閾値は、第2排出値が有する誤差が最大であっても、第2排出値が閾値に到達したときに、タンク160の液室171に貯留されたインクの液面が流出口174に重ならないような値とされてもよい。
コントローラ130は、図7に示されるように、第4更新処理(S21)が終了すると、次ページの画像データがRAM52に記憶されているか否かを判断する(S22)。コントローラ130は、次ページの画像データがRAM52に記憶されていると判断すると(S22:Yes)、ステップS11の処理を再び実行する。コントローラ130は、次ページの画像データがRAM52に記憶されていないと判断すると(S22:No)、印刷処理を終了する。
上述のように、コントローラ130は、ステップS16の印刷を実行する度に、印刷に使用したインクの量に応じてカートリッジ残量値及びタンク残量値を決定する。なお、上述では、コントローラ130が、1ページ分の印刷を実行する度にカートリッジ残量値及びタンク残量値を決定する例を説明した。これに代えて、コントローラ130は、カートリッジ残量値及びタンク残量値を、1パスの印刷を実行する度に決定してもよい。また、コントローラ130は、第2更新処理、第3更新処理、及び第4更新処理を、印刷だけでなく、メンテナンスなどのためにヘッド21を通じてインクが排出されるごとに実行する。
図9を参照して、プリンタ10が管理情報を生成して情報収集サーバ40へ送信する管理情報送信処理を説明する。なお、管理情報送信処理は、全ての処理が終了すると、最初の処理に戻って再び実行される。
プリンタ10のコントローラ130は、クロック30が出力する日時情報が、EEPROM51に記憶された所定の送信時刻になったか否かを判断する(S61)。コントローラ130は、クロック30が出力する日時情報が、所定の送信時刻になっていないと判断すると(S61:No)、管理情報送信処理を終了する。
コントローラ130は、クロック30が出力する日時情報が所定の送信時刻になったと判断すると(S61:Yes)、C_Emptyフラグの値をEEPROM51から読み出し、読み出したC_Emptyフラグの値が「ON」か否かを判断する(S62)。すなわち、ステップS62では、装着ケース150に装着されたカートリッジ200に収容されたインクが使い切られているか否かが判断される。
コントローラ130は、C_Emptyフラグの値が「OFF」であると判断すると(S62:No)、初期カートリッジ残量値、初期タンク残量値、及び初期充填値をEEPROM51から読み出す(S63)。なお、コントローラ130は、カートリッジ200のICチップ34からカートリッジ200の種別情報を読み出し、読み出した種別情報と対応する初期充填値をEEPROM51から読み出す。
また、コントローラ130は、、第1排出値をEEPROM51から読み出す(S64)。コントローラ130は、読み出した初期カートリッジ残量値と初期タンク残量値とを加算した値から、読み出した第1排出値を減算して合計残量値を算出する(S65)。
コントローラ130は、算出した合計残量値から、上述の第2更新処理と同様にして、新たなカートリッジ残量値及び新たなタンク残量値を決定する(S66)。コントローラ130は、決定した新たなカートリッジ残量値をRAM52及びICチップ34に記憶させる(S67)。また、コントローラ130は、決定した新たなタンク残量値をRAM52に記憶させる(S68)。
また、コントローラ130は、算出した合計残量値を、読み出した初期充填値で除し、かつ100を乗じて合計残量割合(%)を算出する(S69)。コントローラ130は、算出した合計残量割合が100%を超えるか否かを判断する。合計残量割合が100%を超える場合について、詳しく説明する。
タンク160の液室171にインクが残った状態で、初期充填量のインクを収容する新しいカートリッジ200が装着ケース150に装着されると、合計残量値は、初期充填値を超えた値になる。合計残量値が初期充填値を超えた値である場合、合計残量値を初期充填値で除し、かつ100を乗じて算出される合計残量割合は、100%を超える。すなわち、タンク160の液室171にインクが残った状態で、初期充填量のインクを収容する新しいカートリッジ200が装着ケース150に装着されると、タンク160の液室171に残っていたインクが使用されるまでは、算出される合計残量割合は、100%を超える。
コントローラ130は、算出した合計残量割合が100%を越えると判断すると(S70:Yes)、算出した合計残量割合を100%に変更する(S71)。一方、コントローラ130は、算出した合計残量割合が100%を越えないと判断すると(S70:No)、ステップS71の処理をスキップする。
100%を越えると、合計残量割合が100%に変更されるのは、100%を超える合計残量割合を送信することがないプリンタとの整合性を図るためである。100%を超える合計残量割合を送信することがないプリンタとは、タンク160を備えず、装着ケース150を備えるプリンタを意味する。タンク160を備えず、装着ケース150を備えるプリンタは、現在の残量をカートリッジ200の初期充填量で除して100を乗じた値を残量割合として送信する。すなわち、タンク160を備えず、装着ケース150を備えるプリンタは、100%以下となる残量割合を送信する。プリンタ10は、100%を超える合計残量割合を100%に変更するので、タンク160を備えず、装着ケース150を備えるプリンタとの整合性を図ることができる。すなわち、プリンタ10は、100%を超える残量割合を処理できない情報収集サーバ40に対しても、合計残量割合を送信して情報収集サーバ40に処理を行わせることができる。
一方、コントローラ130は、C_Emptyフラグの値が「ON」であると判断すると(S62:Yes)、第1所定値(ゼロ)であるカートリッジ残量値と、第2所定値であるタンク残量値と、初期充填値とをICチップ34及びEEPROM51から読み出す(S72)。また、コントローラ130は、第2排出値をEEPROM51から読み出す(S73)。コントローラ130は、読み出したタンク残量値から、読み出した第2排出値を減算し、新たなタンク残量値を算出する(S74)。コントローラ130は、算出した新たなタンク残量値をRAM52に記憶させる(S75)。
また、コントローラ130は、算出した新たなタンク残量値と、ステップS72で読み出したカートリッジ値とを加算し、合計残量値を算出する(S76)。コントローラ130は、算出した合計残量値を、ステップS72で読み出した初期充填値で除し、かつ100を乗じて、合計残量割合を算出する(S77)。合計残量値は、合計残量値の一例である。
コントローラ130は、ステップS69で算出した合計残量割合、または、ステップS71で100%に変更した合計残量割合、または、ステップS77で算出した合計残量割合をRAM52に記憶させる(S78)。
次に、コントローラ130は、C_Emptyフラグの値、カートリッジ残量値、タンク残量値、合計残量割合、装置情報、カートリッジ200の種別情報をICチップ34やRAM52やEEPROM51から読み出す(S79)。コントローラ130は、読み出したC_Emptyフラグの値と、カートリッジ残量値と、タンク残量値と、合計残量割合と、装置情報が示すプリンタ10のモデル名及び識別情報と、カートリッジ200の種別情報と、カートリッジ交換フラグと、を含む管理情報を生成する(S80)。コントローラ130は、生成した管理情報を情報収集サーバ40に送信する(S81)。コントローラ130は、管理情報を送信した後、カートリッジ交換フラグに「OFF」を設定し(S82)、管理情報送信処理を終了する。すなわち、ステップS14(図7)においてカートリッジ交換フラグに「ON」が設定された後に送信される管理情報には、「ON」を設定されたカートリッジ交換フラグが含まれ、「ON」を設定されたカートリッジ交換フラグを含む管理情報が送信された後、カートリッジ交換フラグは「OFF」に設定される。管理情報に含まれる合計残量割合は、指標値の一例である。
プリンタ10が送信した管理情報は、情報収集サーバ40によって受信される。管理情報を受信した情報収集サーバ40が実行する発注処理を、図10を参照して説明する。なお、発注処理は、全ての処理が終了すると、最初の処理に戻って再び実行される。
情報収集サーバ40のコントローラ45は、管理情報を受信したか否かを判断する(S91)。コントローラ45は、管理情報を受信していないと判断すると(S91:No)、発注処理を終了する。一方、コントローラ45は、管理情報を受信したと判断すると(S91:Yes)、管理情報に含まれるカートリッジ交換フラグの値が「ON」であるか否かを判断する。すなわち、ステップS92では、プリンタ10でカートリッジ200の交換が行われたか否かが判断される。情報収集サーバ40が管理情報を受信する処理(S91:Yes)は、第1取得処理の一例である。
コントローラ45は、カートリッジ交換フラグの値がONであると判断すると(S92:Yes)、発注フラグにOFFを設定する(S93)。発注フラグは、カートリッジ200が重複して発注されることを防止するためのフラグである。詳しくは後述する。一方、コントローラ45は、カートリッジ交換フラグの値がONでないと判断すると(S92:No)、ステップS93の処理をスキップする。
次に、コントローラ45は、受信した管理情報に含まれる識別情報に基づいて、管理情報を送信したプリンタ10が、カートリッジ200が装着される装着ケース150及びタンク160を有するタンク付プリンタであるか否かを判断する(S94)。なお、タンク付プリンタでないプリンタとは、装着ケース150を備え、タンク160を備えないプリンタを意味する。ステップS94の処理は、判断処理の一例である。
コントローラ45は、タンク付プリンタでないと判断すると(S94:No)、従来の方法に従ってカートリッジ200の発注を行い、発注処理を終了する。従来の方法の一例は、特開2017−47537に記載の方法であるが、当該方法に限られたものではない。一方、コントローラ45は、タンク付プリンタであると判断すると(S94:Yes)、受信した管理情報に含まれるC_Emptyフラグの値が「ON」であるか否かを判断する(S95)。すなわち、ステップS95では、カートリッジ200が収容するインクが使い切られているか否かが判断される。コントローラ45は、C_Emptyフラグの値が「ON」でないと判断すると(S95:No)、発注日時決定処理を実行する(S96)。
発注日時決定処理(S96)は、受信した管理情報に基づいて、カートリッジ200を発注する発注日時を決定する処理である。図11(A)を参照して、発注日時決定処理について説明する。ステップS96の発注日時決定処理は、決定処理の一例である。
まず、コントローラ45は、カートリッジ200の種別情報に基づいて、エンプティ時残量割合を取得する(S101)。エンプティ時残量割合は、カートリッジ200に収容されたインクが使い切られた直後の合計残量割合である。記憶部42には、カートリッジ200の種別情報とエンプティ時残量割合との対応が示されたテーブルが予め記憶される。コントローラ45は、管理情報に含まれる種別情報と対応するエンプティ時残量割合を記憶部42から読み出して取得する。なお、エンプティ時残量割合は、プリンタ10が送信する管理情報に含まれていてもよい。すなわち、プリンタ10は、ステップS81で、エンプティ時残量割合を含む管理情報を情報収集サーバ40に送信する。コントローラ45は、管理情報からエンプティ時残量割合を取得する。エンプティ時残量割合は所定情報の一例である。コントローラ45がエンプティ時残量割合を取得するステップS101の処理は、第2取得処理の一例である。
次に、コントローラ45は、取得した合計残量割合及びエンプティ時残量割合を、残量情報を取得した時にクロック48が出力した日時である取得日時と対応付けて、図13(A)に示される残量管理リストのレコードとして記憶部42に記憶する(S102)。残量リストは、各プリンタ10の各色のインクカートリッジ200ごとに作成される。各残量リストは、例えば、識別IDによって識別される。ステップS102の処理は、記憶処理の一例である。取得日時は、日付情報の一例である。なお、コントローラ45は、取得日時に代えて、時刻を含まない取得日と、合計残量割合及びエンプティ時残量割合とを対応付けて残量管理リストに記憶してもよい。
残量管理リストは、取得日時ごとのレコードと、複数の項目とを有する。複数の項目は、「取得日時」、「合計残量割合」、「カートリッジ残量値」、「タンク残量値」、「交換フラグ」、「交換回数」などを有する。なお、残量管理リストは、図示例以外の項目を有していてもよい。
項目「取得日時」は、管理情報を取得した日時である。項目「合計残量割合」は、管理情報に含まれる合計残量割合である。項目「合計残量」は、プリンタ10のカートリッジ200及びタンク160に収容されたインクの合計残量を示す値である。合計残量値は、合計残量割合とともに管理情報に含まれていてもよいし、管理情報に含まれる種別情報と合計残量割合とモデル名とからコントローラ45が算出してもよい。項目「カートリッジ残量値」は、管理情報に含まれるカートリッジ残量値である。項目「タンク残量値」は、管理情報に含まれるタンク残量値である。項目「発注フラグ」は、「ON」または「OFF」を示す値である。発注フラグは、新しいカートリッジ200が発注されると「ON」に設定され、プリンタ10においてカートリッジ200の交換が行われると、「OFF」が設定されるフラグである。項目「交換回数」は、プリンタ10において現在までに行われたカートリッジ200の交換回数を示す値である。
残量管理リストの各レコードは、プリンタ10がそれぞれ異なる日時に送信した合計残量割合を、取得日時と対応付けてそれぞれ記憶したものである。コントローラ45は、新たな管理情報を取得すると、残量管理リストに新たなレコードを追加する。
コントローラ45は、図11(A)に示されるように、同一のカートリッジ200について、100%未満の2つ以上のレコードが残量管理リストにあるか否かを判断する(S103)。コントローラ45は、2つ以上のレコードがないと判断すると(S103:No)、発注日時決定処理を終了する。一方、コントローラ45は、2つ以上のレコードがあると判断すると(S103:Yes)、日時と合計残量割合との1次関数を決定する(S104)。1次関数の決定について、図12(A)を参照して具体的に説明する。なお、図における横軸(x軸)は日時を示し、縦軸(y軸)は合計残量割合を示している。
コントローラ45は、合計残量割合が100%未満になった最初のレコードを残量管理リストの項目「合計残量割合」及び「取得日時」に基づいて決定する。コントローラ45は、決定したレコードの取得日時「T1」と合計残量割合「P1」とを残量管理リストから取得する。また、コントローラ45は、最も新しいレコードを残量管理リストの項目「取得日時」に基づいて決定する。コントローラ45は、決定したレコードの取得日時「T2」と合計残量割合「P2」とを残量管理リストから取得する。
コントローラ45は、傾きが((P2−P1)/T2−T1)で、点(T1,P1)または点(T2,P2)を通る直線を1次関数として決定する。なお、コントローラ45は、100%未満である任意の2つのレコードが示す点を通る直線を1次関数に決定してもよい。
図10に示されるように、コントローラ45は、1次関数を決定した後、CTGエンプティ日時及びインクエンプティ日時を決定する(S105)。なお、「CTG」は、「カートリッジ」を意味する。
コントローラ45は、決定したCTGエンプティ日時及びインクエンプティ日時から到着予定日時を推定する(S106)。コントローラ45は、推定した到着予定日時から、カートリッジ200を発注する日時である発注日時を決定する(S107)。CTGエンプティ日時は、カートリッジ200が収容するインクが使い切られる日時を意味する。インクエンプティ日時は、カートリッジ200及びタンク160が収容するインクが使い切られる日時を意味する。インクエンプティ日時は、第2所定日の一例である。CTGエンプティ日時は、第3所定日の一例である。到着予定日時は、第1所定日の一例である。発注日時は、発注日の一例である。なお、CTGエンプティ日時、インクエンプティ日時、到着予定日時、及び発注日時は、時刻まで含まない「日」であってもよい。
図12(A)を参照して、ステップS105、S106、及びS107について詳しく説明する。コントローラ45は、決定した1次関数に基づいて、合計残量割合がエンプティ時残量割合になる日時であるCTGエンプティ日時を決定する(S105)。すなわち、コントローラ45は、カートリッジ200が空になる日時を推定し、CTGエンプティ日時として決定する。次に、コントローラ45は、決定した1次関数に基づいて、合計残量割合がゼロになる日時であるインクエンプティ日時を決定する(S105)。すなわち、コントローラ45は、カートリッジ200及びタンク160が収容するインクが使い切られる日時を推定し、インクエンプティ日時として決定する。コントローラ45は、決定したCTGエンプティ日時とインクエンプティ日時との中間となる日時を、カートリッジ200がユーザの元に届く到着予定日時として推定し、記憶部42に記憶させる(S106)。
到着予定日時をCTGエンプティ日時とインクエンプティ日時との中間の日時にするのは、カートリッジ200がユーザの元に実際に届く日が、到着予定日時に対して前後しても、カートリッジ200が収容するインクが使い切られた後であって、かつ、カートリッジ200及びタンク160が収容するインクが使い切られる前に、新しいカートリッジ200がユーザの元に届くようにするためである。到着予定日時を推定するステップS106の処理は、推定処理の一例である。
なお、合計残量割合が100%未満になった最初のレコードと、最も新しいレコードとを用いて1次関数を決定するのは、CTGエンプティ日時及びインクエンプティ日時の推定の精度の低下を低減するためである。インクエンプティ日時及びCTGエンプティ日時の推定の精度の低下とは、推定したインクエンプティ日時とプリンタ10において実際にインクが無くなる日との差が大きくなること、及び、推定したCTGエンプティ日時とカートリッジ200が収容するインクが実際に使い切られる日との差が大きくなることを意味する。
詳しく説明すると、プリンタ10は、上述の通り合計残量割合が100%を超える場合に、合計残量割合を100%として情報収集サーバ40に送信する。したがって、情報収集サーバ40が合計残量割合を100%として記憶している場合は、プリンタ10では100%を超えている可能性がある。100%を超える合計残量割合を100%として1次関数を決定すると、インクエンプティ日時及びCTGエンプティ日時の推定の精度が低下するおそれが生じる。100%未満のレコードを用いて1次関数を決定することにより、インクエンプティ日時及びCTGエンプティ日時の推定の精度の低下を低減することができると考えられる。
また、上述したように、カートリッジ残量値が示すインク残量及びタンク残量値が示すインク残量は、カートリッジ200が実際に収容するインク残量及びタンク160が実際に収容するインク残量に対して誤差を含む。当該誤差は、ヘッド21でのインクの排出量が多くなるほど、大きくなる場合がある。したがって、合計残量割合が100%未満になった最初のレコードの合計残量割合は、当該レコードより後に送信されたレコードの合計残量割合よりも、誤差が小さい可能性が高いと考えられる。したがって、合計残量割合が100%未満になった最初のレコードを用いることにより、到着予定日の推定の精度の低下を低減することができると考えられる。
また、インクの使用量は日々変化するので、最も新しいレコードの合計残量値を用いた方が、古いレコードの合計残量値を用いるよりも、到着予定日の推定の精度の低下を低減することができると考えられる。
コントローラ45は、決定した到着予定日時から、配達期間(例えば3日間)だけ前の日時を、新しいカートリッジ200の発注日時として決定する(S107)。配達期間は、新しいカートリッジ200が発注されてから、情報収集サーバ40に記憶されたユーザ情報に含まれる住所に届くまでに必要と想定される期間であり、記憶部42に予め記憶される。配達期間は、第1所定期間の一例である。
図9(B)に示されるように、コントローラ45は、決定した到着予定日時を記憶部42に記憶させる。また、コントローラ45は、カートリッジ管理リスト(図13(B))に発注日時を記憶し(S109)、発注日時決定処理を終了する。なお、図9(A)に破線で示されたステップS108の処理は、第2実施形態及び第3実施形態において実行される処理であり、本実施形態では実行されない処理である。
図13(B)に示されるカートリッジ管理リストは、複数のプリンタ10をまとめて管理するためのリストであり、例えば、情報収集サーバ40の管理者がカートリッジ200の発注を管理または監視するために用いられる。
カートリッジ管理リストは、各プリンタ10の各色のカートリッジ200ごとに記憶されるレコードと、複数の項目とを有する。複数の項目は、「識別情報」、「モデル名」、「発注日時」、「交換フラグ」、「交換回数」、「エンプティ時残量割合」、「宛先」などである。なお、カートリッジ管理リストは、図示例以外の項目を有していてもよい。
項目「識別情報」は、各プリンタ10をそれぞれ個別に識別するものであり、例えば、MACアドレスやシリアルナンバーなどである。項目「モデル名」は、プリンタ10のモデル名を示す。項目「発注日時」は、ステップS107で決定した発注日時を示す。コントローラ45は、管理情報をプリンタ10から受信する度に発注日時を決定し、カートリッジ管理リストの項目「発注日時」を、決定した最新の発注日時で更新する。項目「発注フラグ」及び項目「交換回数」は、残量管理リストの項目「発注フラグ」及び項目「交換回数」と同じである。項目「エンプティ時残量割合」は、ステップS101で取得したエンプティ時残量割合を示す。項目「宛先」は、新しいカートリッジ200が届けられる宛名及び住所を示す。項目「宛先」に記憶された情報は、宛先情報の一例である。
発注日時を決定したコントローラ45は、図11(A)に示されるように、ステップS107で決定した発注日時に現在日時が達したか否かを判断する(S97)。コントローラ45は、現在日時が発注日時に達していないと判断すると(S97:No)、発注処理を終了する。一方、コントローラ45は、現在日時が発注日時に達したと判断すると(S97:Yes)、発注フラグの値が「OFF」であるか否かを判断する(S98)。すなわち、ステップS98では、新しいカートリッジ200が既に発注されているか否かが判断される。
コントローラ45は、発注フラグの値が「OFF」でないと判断すると(S98:No)、発注処理を終了する。すなわち、新しいカートリッジ200が既に発注されている場合、カートリッジ200の発注が再度行われることなく、発注処理が終了する。一方、コントローラ45は、発注フラグの値が「OFF」であると判断すると(S98:Yes)、発注指示を発送サーバ50に送信する(S99)。具体的には、コントローラ45は、10時や12時など、毎日の定刻に、発注日時になっているレコードがあるか否かを判断し、発注日時になっていると判断したレコードのカートリッジ200を対象に、発注指示を発送サーバ50宛てに送信する。発注指示には、品番など、カートリッジ200の種類を特定する情報(種別情報)、カートリッジ200を配達すべき宛先(即ち、宛名情報と住所情報)などが含まれる。発注指示を受信した発送サーバ50は、発注指示に含まれる宛先に、発注指示に含まれる品番(種別情報)が示すカートリッジ200の発送を手配する。情報収集サーバ40が発注指示を送信するステップS99の処理は、送信処理の一例である。
一方、コントローラ45は、C_Emptyフラグの値が「ON」であると判断すると、(S95:No)、ステップS96、S97の処理をスキップし、ステップS98、S99の処理を実行する。すなわち、カートリッジ200が収容するインクが使い切られている場合は、発注日時を決定することなく、すぐに新しいカートリッジ200が発注される。
発注指示の送信後、コントローラ45は、残量管理リスト及びカートリッジ管理リストの項目「発注フラグ」に「ON」を設定するとともに、項目「交換回数」の値をインクリメントし(S100)、発注処理を終了する。
[実施形態の効果]
本実施形態では、ヘッド21は、装着ケース150に装着されたカートリッジ200からタンク160に供給されたインクを用いて印刷を行う。そのため、カートリッジ200にはインクが残っていない状態となっても、タンク160にはインクが残っている状態である場合には、タンク160に残ったインクを用いてシートへの印刷が継続される。ここで、コントローラ130は、装着済みカートリッジ200にはインクが残っておらず、かつタンク160にはインクが残っている状態で新たなカートリッジ200が装着ケース150に装着されるように、新たなカートリッジ200の発注指示を送信する発注条件(発注日時)を決定する。発注日時が到来し、発注条件が満たされた後、発注指示が送信されることによって、新たなカートリッジ200がユーザの元に到着するので、ユーザは、装着済みカートリッジ200にはインクが残っておらず、かつタンク160にはインクが残っている状態で、カートリッジ200を交換することができる。その結果、カートリッジ交換時にはタンク160にインクが残っているため、カートリッジ200を交換するまでに印刷が行えなくなることを防ぐことができ、さらに、カートリッジ200の交換時には装着済みカートリッジ200にインクが残っていないため、カートリッジ200が交換されることに応じてインクが無駄になることを防ぐことができる。
また、本実施形態では、2つの合計残量割合と取得日時とを用いて1次関数を決定して到着予定日を算出するので、2次以上の関数を決定する場合や、標準偏差を用いて1次関数を決定する場合に比べ、到着予定日の算出に要するCPU35の演算回数が低減する。その結果、到着予定日の算出が容易になる。
また、本実施形態では、CTGエンプティ日時とインクエンプティ日時との中間の日時を到着予定日時に決定するので、新しいカートリッジ200がユーザの元に予想よりも早く届けられても、遅延して届けられても、カートリッジ200にはインクが残っておらず、かつタンク160にはインクが残っている状態のときに、新たなカートリッジ200がユーザの元に届き得る。
また、本実施形態では、新たな残量情報(合計残量割合)を取得する度に発注日時を算出するので、算出する発注日時の精度を上げることができる。その結果、装着済みカートリッジ200にはインクが残っておらず、かつタンク160にはインクが残っている状態のときに新たなカートリッジ200がユーザの元に届く可能性を高めることができる。
また、本実施形態では、プリンタ10が送信する合計残量割合は100%以下であるので、情報収集サーバ40は、タンク160を有さないプリンタから入力される残量割合も、タンク160を有するプリンタ10から入力される合計残量割合も、同様に扱うことができる。その結果、プリンタの種類ごとに情報収集サーバを用いなくともよく、一の情報収集サーバ40で、タンク160を有さないプリンタについてのカートリッジの発注も、タンク160を有するプリンタ10についてのカートリッジ200の発注も行うことができる。
また、本実施形態では、合計残量割合が100%未満になったレコードを用いて1次関数を決定しているので、インクエンプティ日時及びCTGエンプティ日時の推定の精度の低下を低減することができる。
また、本実施形態では、管理情報に含まれるC_Emptyフラグが「ON」であると、発注日時を決定することなく、新しいカートリッジ200が発注される。したがって、タンク160にはインクが残っている状態のときに新たなカートリッジ200がユーザの元に届く可能性を高めることができる。
また、本実施形態では、プリンタ10がタンク160を備えるタンク付きプリンタであるか否かを判断し、タンク付きプリンタであると判断すると、図9に示される発注処理を実行する。したがって、タンク160を有さないプリンタにおけるカートリッジの発注と、タンク160を有するプリンタ10におけるカートリッジ200の発注とを情報収集サーバ40に行わせることができる。
[第2実施形態]
第2実施形態では、ステップS104(図11(A))で決定した1次関数の傾きに応じて、発注日時を変更する例を説明する。
図11(A)に示されるように、コントローラ130は、発注日時を決定(S107)した後、発注日時決定処理を実行する(S108)。図11(B)を参照して詳しく説明する。
コントローラ130は、決定した1次関数の傾きの絶対値が閾値以上か否かを判断する(S111)。1次関数の傾きの絶対値は、プリンタ10におけるインクの消費速度に依存する。すなわち、インクの消費速度が速いほど、傾きの絶対値が大きくなり、インクの消費速度が遅いほど、傾きの絶対値は小さくなる。閾値は、記憶部42に予め記憶される。閾値は、第2閾値の一例である。
コントローラ45は、決定した1次関数の傾きの絶対値が閾値未満であると判断すると(S111:No)、発注日時変更処理を終了する。一方、コントローラ45は、決定した1次関数の傾きの絶対値が閾値以上であると判断すると(S111:Yes)、ステップS107で決定した発注日時を変更する(S112)。図14(A)を参照して詳しく説明する。
図14(A)には、傾きの絶対値が閾値以上である1次関数が示されている。コントローラ45は、ステップS107で決定した発注日時を、記憶部42に記憶された第1安全期間(例えば2日間)だけ前の日時に変更する(S112)。コントローラ45は、変更した発注日時を、カートリッジ管理リスト(図13(B))の項目「発注日時」に記憶する。即ち、発注日時を更新する。発注日時を変更するステップS112の処理は、変更処理の一例である。第1安全期間と配達期間とを足した期間は、第2所定期間の一例である。変更された発注日時は、発注日の一例である。
[第2実施形態の効果]
上述のように、決定した1次関数の傾きの絶対値が閾値以上であるということは、インクの消費速度が速いことを意味する。インクの消費速度が速いと、新しいカートリッジ200がユーザの元に届くまでにタンク160に収容されたインクが使い切られてしまうおそれが大きくなる。本実施形態では、決定した1次関数の傾きの絶対値が閾値以上である場合、ステップS107で決定した発注日時よりも第1安全期間だけ前の日時に新しいカートリッジ200が発注される。したがって、新しいカートリッジ200がユーザの元に届くまでにタンク160に収容されたインクが使い切られてしまうおそれを低減することができる。
[第3実施形態]
上述の第1実施形態では、決定した1次関数の傾きの絶対値によって、インクの消費速度を判断する例を説明した。第3実施形態では、ステップS105(図11(A))で決定したCTGエンプティ日時とインクエンプティ日時との間の期間の長さによって、インクの消費速度を判断して発注日時を変更する例を説明する。
図11(A)に示されるように、コントローラ130は、発注日時を決定(S107)した後、発注日時決定処理を実行する(S108)。図11(C)を参照して詳しく説明する。
図11(C)に示されるように、コントローラ45は、CTGエンプティ日時とインクエンプティ日時との間の期間を算出する(S113)。CTGエンプティ日時とインクエンプティ日時との間の期間は、プリンタ10におけるインクの消費速度に依存する。すなわち、インクの消費速度が速いほど、CTGエンプティ日時とインクエンプティ日時との間の期間が短くなり、インクの消費速度が遅いほど、CTGエンプティ日時とインクエンプティ日時との間の期間が長くなる。
コントローラ45は、算出した期間が、記憶部42に記憶された閾値未満か否かを判断する(S114)。コントローラ45は、算出した期間が閾値以上であると判断すると(S114:No)、ステップS115の処理をスキップして処理を終了する。一方、コントローラ45は、算出した期間が閾値未満であると判断すると(S114:Yes)、ステップS107(図11(A))で決定した発注日時を変更する(S115)。図14(B)を参照して詳しく説明する。閾値は、第1閾値の一例である。
図14(B)には、算出した期間が閾値未満である1次関数が示されている。コントローラ45は、ステップS107で決定した発注日時を、記憶部42に記憶された第1安全期間(例えば2日)だけ前の日時に変更する(S115)。コントローラ45は、変更した発注日時を、カートリッジ管理リスト(図13(B))の項目「発注日時」に記憶する。即ち、発注日時を更新する。発注日時を変更するステップS115の処理は、変更処理の一例である。第1安全期間と配達期間とを足した期間は、第2所定期間の一例である。変更された発注日時は、発注日の一例である。
[第3実施形態の効果]
上述のように、CTGエンプティ日時とインクエンプティ日時との間の期間が閾値未満であることは、インクの消費速度が速いことを意味する。インクの消費速度が速いと、新しいカートリッジ200がユーザの元に届くまでにタンク160に収容されたインクが使い切られてしまうおそれが大きくなる。本実施形態では、CTGエンプティ日時とインクエンプティ日時との間の期間が閾値期間未満であると、ステップS107で決定した発注日時よりも第1安全期間だけ前の日時に新しいカートリッジ200が発注される。したがって、新しいカートリッジ200がユーザの元に届くまでにタンク160に収容されたインクが使い切られてしまうおそれを低減することができる。
以上、本発明の具体例を詳細に説明したが、これらは例示に過ぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。上記の実施形態の変形例を以下に列挙する。
[変形例1]
上述の実施形態では、CTGエンプティ日時とインクエンプティ日時との中間の日時を到着予定日時に決定する例を説明した。本変形例では、到着予定日時を決定する他の例を、図12(B)を参照して説明する。
コントローラ45は、ステップS101(図11(A))で取得したエンプティ時残量割合に基づいて、判断の基準となる基準割合を決定する。例えば、コントローラ45は、エンプティ時残量割合の半分の値を基準割合に決定する。コントローラ45は、ステップS104(図11(A))で決定した1次関数に基づいて、合計残量割合が基準割合になる日時を到着予定日時に決定する。その後、コントローラ45は、上述の実施形態と同様に、決定した到着予定日時を記憶部42に記憶させるとともに、到着予定日時から配達期間だけ前の日時を発注日時に決定し、カートリッジ管理リスト(図13(B))の項目「発注日時」に記憶する。なお、基準割合は、エンプティ時残量割合から、記憶部42に記憶された所定値だけ小さい値に決定されてもよい。到着予定日時は、第1所定日の一例である。発注日時は、発注日の一例である。
[変形例1の効果]
エンプティ時残量割合に基づいて到着予定日時を決定しても、カートリッジ200にはインクが残っておらず、かつタンク160にはインクが残っている可能性が高い日時を到着予定日時に決定することができる。すなわち、カートリッジ200にはインクが残っておらず、かつタンク160にはインクが残っている日に新しいカートリッジ200が届くように、新しいカートリッジ200の発注を行うことができる。
[変形例2]
上述の第1実施形態では、CTGエンプティ日時とインクエンプティ日時とを決定して、到着予定日時を推定する例を説明した。本変形例では、CTGエンプティ日時を決定せずに到着予定日時を推定する例を、図15(A)を参照して説明する。
コントローラ45は、ステップS104(図11(A))で決定した1次関数に基づいて、合計残量割合がゼロにるインクエンプティ日時を決定する。コントローラ45は、決定したインクエンプティ日時から、記憶部42に記憶された第2安全期間だけ前の日時を到着予定日時と推定する。第2安全期間は、例えば、発注された新しいカートリッジ200が遅延してユーザの元に届けられる際の、遅延の最大期間とされる。到着予定日時は、第1所定日の一例である。
その後、コントローラ45は、上述の実施形態と同様に、推定した到着予定日時を記憶部42に記憶させるとともに、到着予定日時から配達期間だけ前の日時を発注日時に決定し、カートリッジ管理リスト(図13(B))の項目「発注日時」に記憶する。発注日時は、発注日の一例である。
[変形例2の効果]
第2安全期間は、発注された新しいカートリッジ200が遅延してユーザの元に届けられる際の、遅延の最大期間とされるので、発注された新しいカートリッジ200は、例え遅延してユーザの元に届けられたとしても、少なくともプリンタ10がインクを使い切るまでにはユーザの元に届けられる。したがって、ユーザが印刷を継続できないおそれが低減する。
[変形例3]
上述の第1実施形態では、CTGエンプティ日時とインクエンプティ日時とを決定して、到着予定日時を推定する例を説明した。本変形例では、インクエンプティ日時を決定せずに到着予定日時を推定する例を、図15(B)を参照して説明する。
コントローラ45は、ステップS104(図11(A))で決定した1次関数に基づいて、合計残量割合がエンプティ時残量割合になるCTGエンプティ日時を決定する。コントローラ45は、決定したCTGエンプティ日時から、記憶部42に記憶された第3安全期間(例えば2日間)だけ後の日時を到着予定日時に決定する。第3安全期間は、例えば、発注された新しいカートリッジ200が到着予定日よりも早い日時に届けられる際の、早くなる期間の最大値に等しい期間として決められる。到着予定日時は、第1所定日の一例である。
その後、コントローラ45は、上述の実施形態と同様に、決定した到着予定日時を記憶部42に記憶させるとともに、到着予定日時から配達期間だけ前の日時を発注日時に決定し、カートリッジ管理リスト(図13(B))の項目「発注日時」に記憶する。発注日時は、発注日の一例である。
[変形例3の効果]
第3安全期間は、発注された新しいカートリッジ200が到着予定日よりも早い日時に届けられる際の、早くなる期間の最大値に等しい期間として決められるので、発注された新しいカートリッジ200は、例え早くユーザの元に届けられたとしても、少なくともカートリッジ200に収容されたインクが使い切られた後にユーザの元に届けられる。したがって、インクが残ったカートリッジ200が新しいカートリッジ200に交換されてインクが無駄になるおそれが低減する。
[変形例4]
上述の第1実施形態では、合計残量割合と日時との1次関数を決定して到着予定日時及び発注日時を決定する例を説明した。本変形例では、カートリッジ残量割合から1次関数を決定して到着予定日時及び発注日時を決定する例を説明する。
プリンタ10のコントローラ130は、図9に示される管理情報送信処理に代えて、図16に示される管理情報送信処理を実行する。
図16に示される管理情報送信処理は、図8に示される各更新処理において決定したカートリッジ残量値を用いてカートリッジ残量割合を算出し、算出したカートリッジ残量割合を含む管理情報を情報収集サーバ40に送信する処理である。なお、以下では、第1実施形態と同様の処理については、第1実施形態と同じ符号を付して説明を省略する。また、本変形例で説明する処理以外の処理は、第1実施形態と同じである。
プリンタ10のコントローラ130は、第1実施形態と同様に、現在時刻が送信時刻になったと判断すると(S61:Yes)、第1実施形態のステップS62と同様に、C_Emptyフラグの値を判断する(S62)。コントローラ130は、C_Emptyフラグが「ON」であると判断すると(S62:Yes)、カートリッジ残量割合をゼロに決定する(S121)。
一方、コントローラ130は、C_Emptyフラグの値が「ON」でないと判断すると(S62:No)、第1実施形態と同様に、初期カートリッジ残量値、初期タンク残量値をRAM52やEEPROM51から読み出し、さらに、固定値CをEEPROM51から読み出す(S122)。固定値Cについては後述する。
次に、コントローラ130は、第1実施形態と同様に、ステップS64からS68までの処理を実行する。次に、コントローラ130は、ステップS66で決定した新たなカートリッジ残量値を、ステップS122で読み出した固定値Cで除し、さらに100を乗じて、カートリッジ残量割合(%)を算出する(S123)。
次に、コントローラ130は、算出したカートリッジ残量割合が100%を超えるか否かを判断する。カートリッジ残量割合が100%を超える場合について、詳しく説明する。
固定値Cは、S_Emptyフラグが「ON」である状態で、初期充填量のインクを貯留するカートリッジ200が装着ケース150に装着された場合において、カートリッジ200に収容されたインクの水頭と、タンク160に収容されたインクの水頭との差がほぼ無くなったときに、カートリッジ200に収容されているインクの量を示す値である。したがって、タンク160にインクが残った状態で、初期充填量のインクを収容する新しいカートリッジ200が装着ケース150に装着されると、カートリッジ残量値は、固定値Cを超えた値になる。カートリッジ残量値が固定値Cを超えた値であると、カートリッジ残量値を固定値Cで除し、かつ100を乗じて算出されるカートリッジ残量割合は、100%を超える。すなわち、タンク160にインクが残った状態で、初期充填量のインクを収容する新しいカートリッジ200が装着ケース150に装着されると、カートリッジ残量割合が100%を超える。
なお、固定値Cは、S_Emptyフラグが「ON」である状態で、初期充填量のインクを貯留するカートリッジ200が装着ケース150に装着された場合において算出される初期カートリッジ残量値(図8(A)のステップS34)と同一の値となる。
コントローラ130は、算出したカートリッジ残量割合が100%を越えると判断すると(S124:Yes)、算出したカートリッジ残量割合を100%に変更する(S125)。一方、コントローラ130は、算出したカートリッジ残量割合が100%を越えないと判断すると(S124:No)、ステップS125の処理をスキップする。
100%を越えるとカートリッジ残量割合が100%に変更されるのは、100%を超えるカートリッジ残量割合を送信することがないプリンタとの整合性を図るためである。100%を超えるカートリッジ残量割合を送信することがないプリンタとは、タンク160を備えず、装着ケース150を備えるプリンタを意味する。タンク160を備えず、装着ケース150を備えるプリンタは、現在の残量をカートリッジの初期充填量で除して100を乗じた値を残量割合として送信する。すなわち、タンク160を備えず、装着ケース150を備えるプリンタは、100%以下となる残量割合を送信する。プリンタ10は、100%を超えるカートリッジ残量割合を100%に変更するので、タンク160を備えず、装着ケース150を備えるプリンタとの整合性を図ることができる。すなわち、プリンタ10は、100%を超える残量割合を処理できない情報収集サーバ40に対しても、カートリッジ残量割合を送信して情報収集サーバ40に処理を行わせることができる。
コントローラ130は、ステップS123で算出したカートリッジ残量割合、または、ステップS125で100%に決定したカートリッジ残量割合、または、ステップS121で決定したカートリッジ残量割合(ゼロ)をRAM52に記憶させる(S126)。
次に、コントローラ130は、C_Emptyフラグの値、カートリッジ残量値、カートリッジ残量割合、装置情報、カートリッジの種別情報、及びカートリッジ交換フラグの値をRAM52やEEPROM51から読み出す(S127)。コントローラ130は、読み出したC_Emptyフラグの値と、カートリッジ残量値と、カートリッジ残量割合と、装置情報と、カートリッジ200の種別情報と、カートリッジ交換フラグとを含む管理情報を生成する(S128)。管理情報に含まれるカートリッジ残量割合は、指標値の一例である。
次に、コントローラ130は、第1実施形態と同様に、生成した管理情報を情報収集サーバ40に送信する(S81)。また、コントローラ130は、第1実施形態と同様に、カートリッジ交換フラグに「OFF」を設定し(S82)、管理情報送信処理を終了する。情報収集サーバ40が送信した管理情報は、第1実施形態と同様に、情報収集サーバ40に受信される。管理情報を受信した情報収集サーバ40のコントローラ45は、図10のステップS96の発注日時決定処理に代えて、図18(A)に示される発注日時決定処理を実行する。なお、図18(A)に示される発注日時決定処理において、第1実施形態で説明した発注日時決定処理(図11(A))と同一の処理については、第1実施形態と同一の符号を付して説明を省略する。
コントローラ45は、第1実施形態と同様にステップS102、S103の処理を実行する。なお、ステップS102において管理情報が記憶される残量管理リストには、項目「合計残量割合」、項目「合計残量」、及び項目「タンク残量値」に代えて、項目「カートリッジ残量割合」が設けられる。
コントローラ45は、同一のカートリッジ200について、100%未満の2つ以上のレコードが残量管理リストにあると判断すると(S103:Yes)、日時とカートリッジ残量割合との1次関数を決定する(S131)。
図19(A)を参照して具体的に説明する。なお、図において、横軸(x軸)は日時を示し、縦軸(y軸)はカートリッジ残量割合を示す。
コントローラ45は、カートリッジ残量割合が100%未満になった最初のレコードを残量管理リストの項目「カートリッジ残量割合」及び「取得日時」に基づいて決定する。コントローラ45は、決定したレコードの取得日時「T1」とカートリッジ残量割合「P1」とを残量管理リストから取得する。また、コントローラ45は、最も新しいレコードを残量管理リストの項目「取得日時」に基づいて決定する。コントローラ45は、決定したレコードの取得日時「T2」とカートリッジ残量割合「P2」とを残量管理リストから取得する。
コントローラ45は、傾きが(P2−P1)/(T2−T1)で、点(T1,P1)または点(T2,P2)を通る直線を1次関数として決定する(S131)。なお、コントローラ45は、100%未満である任意の2つのレコードが示す点を通る直線を1次関数に決定してもよい。
図18(A)に示されるように、コントローラ45は、1次関数を決定(S131)した後、CTGエンプティ日時を決定する(S132)。コントローラ45は、決定したCTGエンプティ日時から到着予定日時を推定し、推定した到着予定日時を記憶部42に記憶させる(S133)。また、コントローラ45は、推定した到着予定日時から、カートリッジ200を発注する日時である発注日時を決定する(S134)。図19(A)を参照して詳しく説明する。
コントローラ45は、決定した1次関数に基づいて、カートリッジ残量割合がゼロになる日時であるCTGエンプティ日時を決定する。すなわち、コントローラ45は、カートリッジ200が空になる日時をCTGエンプティ日時として決定する。次に、コントローラ45は、決定したCTGエンプティ日時から第3安全期間だけ後の日時を到着予定日時に推定する。第3安全期間は、例えば、発注された新しいカートリッジ200が到着予定日よりも早い日時に届けられる際の、早くなる期間の最大値に等しい期間として決められる。到着予定日時は、第1所定日の一例である。
その後、コントローラ45は、決定した到着予定日時から配達期間だけ前の日時を発注日時に決定し(S134)、カートリッジ管理リストの項目「発注日時」に記憶する。発注日時は、発注日の一例である。
[変形例4の効果]
本変形例では、コントローラ45は、取得日時とカートリッジ残量割合とを用いて1次関数を決定し、決定した1次関数から、カートリッジ200にはインクが残っておらず、かつタンク160にはインクが残っていると予想される到着予定日時を推定する。コントローラ45は、推定した到着予定日時から配達期間だけ前の発注日時を、発注指示を送信する日時として決定する。したがって、カートリッジ200にはインクが残っておらず、かつタンク160にはインクが残っている状態のときに、新たなカートリッジ200がユーザの元に届き得る。その結果、カートリッジ200を交換するまでに印刷を行えなくなることを防ぐことができ、かつ、インクが残ったカートリッジ200が新しいカートリッジ200に交換されてインクが無駄になることを防ぐことができる。
また、第3安全期間は、発注された新しいカートリッジ200が到着予定日よりも早い日時に届けられる際の、早くなる期間の最大値に等しい期間として決められるので、発注された新しいカートリッジ200は、例え早くユーザの元に届けられたとしても、少なくともカートリッジ200に収容されたインクが使い切られた後にユーザの元に届けられる。したがって、インクが残ったカートリッジ200が新しいカートリッジ200に交換されてインクが無駄になるおそれが低減する。
[変形例5]
上述の第1実施形態では、合計残量割合と日時との1次関数を決定して到着予定日時及び発注日時を決定する例を説明した。本変形例では、タンク残量割合から1次関数を決定して到着予定日時及び発注日時を決定する例を説明する。
プリンタ10のコントローラ130は、図9に示される管理情報送信処理に代えて、図17に示される管理情報生成処理を実行する。
プリンタ10のコントローラ130は、第1実施形態と同様に、現在時刻が送信時刻になったと判断すると(S61:Yes)、第1実施形態のステップS62と同様に、C_Emptyフラグの値を判断する(S62)。コントローラ130は、C_Emptyフラグが「ON」でないと判断すると(S62:No)、第1実施形態と同様に、初期カートリッジ残量値、初期タンク残量値をRAM52やEEPROM51から読み出し、さらに、固定値TをEEPROM51から読み出す(S141)。固定値Tについては後述する。
次に、コントローラ130は、第1実施形態と同様に、ステップS64からS68までの処理を実行する。次に、コントローラ130は、ステップS66で決定した新たなタンク残量値を、ステップS141で読み出した固定値Tで除し、さらに100を乗じて、タンク残量割合(%)を算出する(S142)。
次に、コントローラ130は、算出したタンク残量割合が100%を超えるか否かを判断する。タンク残量割合が100%を超える場合について、詳しく説明する。
固定値Tは、S_Emptyフラグが「ON」である状態で、初期充填量のインクを貯留するカートリッジ200が装着ケース150に装着された場合において、カートリッジ200に収容されたインクの水頭と、タンク160に収容されたインクの水頭との差が無くなったときに、タンク160に収容されているインクの量を示す値である。したがって、タンク160の液室171にインクが残った状態で、初期充填量のインクを収容する新しいカートリッジ200が装着ケース150に装着されると、タンク残量値は、固定値Tを超えた値になる。タンク残量値が固定値Tを超えた値であると、タンク残量値を固定値Tで除し、かつ100を乗じて算出されるタンク残量割合は、100%を超える。
なお、固定値Tは、S_Emptyフラグが「ON」である状態で、初期充填量のインクを貯留するカートリッジ200が装着ケース150に装着された場合において算出される初期タンク残量値(図8(A)のステップS34)と同一の値となる。
コントローラ130は、算出したタンク残量割合が100%を越えると判断すると(S143:Yes)、算出したタンク残量割合を100%に変更する(S144)。一方、コントローラ130は、算出したタンク残量割合が100%を越えないと判断すると(S143:No)、ステップS144の処理をスキップする。
100%を越えるとタンク残量割合が100%に変更されるのは、100%を超える残量割合を送信することがないプリンタとの整合性を図るためである。100%を超える残量割合を送信することがないプリンタとは、タンク160を備えず、装着ケース150を備えるプリンタを意味する。タンク160を備えず、装着ケース150を備えるプリンタは、現在の残量をカートリッジの初期充填量で除した値を残量割合として送信する。すなわち、タンク160を備えず、装着ケース150を備えるプリンタは、100%以下となる残量割合を送信する。プリンタ10は、100%を超えるタンク残量割合を100%に変更するので、タンク160を備えず、装着ケース150を備えるプリンタとの整合性を図ることができる。すなわち、プリンタ10は、100%を超える残量割合を処理できない情報収集サーバ40に対しても、タンク残量割合を送信して情報収集サーバ40に処理を行わせることができる。
一方、コントローラ130は、C_Emptyフラグが「ON」であると判断すると(S62:Yes)、第1実施形態と同様に、カートリッジ残量値(ゼロ)、タンク残量値(第2所定値)、及び固定値TをRAM52やEEPROM51から読み出す(S145)。その後、コントローラ130は、第1実施形態と同様に、ステップS73からS76までの処理を実行した後、上述のステップS142と同様の処理を実行してタンク残量割合を算出する(S146)。
コントローラ130は、ステップS142で算出したタンク残量割合、または、ステップS144で100%に決定したタンク残量割合、または、ステップS146で算出したタンク残量割合をRAM52に記憶させる(S147)。
次に、コントローラ130は、C_Emptyフラグの値、装置情報、カートリッジの種別情報、タンク残量割合、及びカートリッジ交換フラグの値をRAM52やEEPROM51から読み出す(S148)。コントローラ130は、読み出したC_Emptyフラグの値と、装置情報と、カートリッジ200の種別情報と、タンク残量割合と、カートリッジ交換フラグの値とを含む管理情報を生成する(S149)。管理情報に含まれるタンク残量割合は、指標値の一例である。
次に、コントローラ130は、第1実施形態と同様に、生成した管理情報を情報収集サーバ40に送信する(S81)。また、コントローラ130は、第1実施形態と同様に、カートリッジ交換フラグに「OFF」を設定し(S82)、管理情報送信処理を終了する。情報収集サーバ40が送信した管理情報は、第1実施形態と同様に、情報収集サーバ40に受信される。管理情報を受信した情報収集サーバ40のコントローラ45は、図10のステップS96の発注日時決定処理に代えて、図18(B)に示される発注日時決定処理を実行する。なお、図18(B)に示される発注日時決定処理において、第1実施形態で説明した発注日時決定処理(図11(A))と同一の処理については、第1実施形態と同一の符号を付して説明を省略する。
コントローラ45は、第1実施形態と同様にステップS101からステップS103までの処理を実行する。なお、ステップS102において管理情報が記憶される残量管理リストには、項目「合計残量割合」、項目「合計残量」、及び項目「カートリッジ残量値」に代えて、項目「タンク残量割合」が設けられる。
コントローラ45は、同一のカートリッジ200について、100%未満の2つ以上のレコードが残量管理リストにあると判断すると(S103:Yes)、日時とタンク残量割合との1次関数を決定する(S151)。
図19(B)を参照して具体的に説明する。図において、横軸(x軸)は日時を示し、縦軸(y軸)はカートリッジ残量割合を示す。
コントローラ45は、カートリッジ残量割合が100%未満になった最初のレコードを残量管理リストの項目「タンク残量割合」及び「取得日時」に基づいて決定する。コントローラ45は、決定したレコードの取得日時「T1」とタンク残量割合「P1」とを残量管理リストから取得する。また、コントローラ45は、最も新しいレコードを残量管理リストの項目「取得日時」に基づいて決定する。コントローラ45は、決定したレコードの取得日時「T2」とカートリッジ残量割合「P2」とを残量管理リストから取得する。
コントローラ45は、傾きが(P2−P1)/(T1−T2)で、点(T1,P1)または点(T2,P2)を通る直線を1次関数として決定する。なお、コントローラ45は、100%未満である任意の2つのレコードが示す点を通る直線を1次関数に決定してもよい。
図18(B)に示されるように、コントローラ45は、1次関数を決定(S151)した後、CTGエンプティ日時を決定する(S152)。コントローラ45は、決定したCTGエンプティ日時から到着予定日時を推定して記憶部42に記憶させる(S153)。また、コントローラ45は、推定した到着予定日時から、カートリッジ200を発注する日時である発注日時を決定する(S154)。図19(B)を参照して詳しく説明する。
コントローラ45は、決定した1次関数に基づいて、タンク残量割合がエンプティ時残量割合になる日時であるCTGエンプティ日時を決定する。エンプティ時残量割合は、カートリッジ200が空になったときにタンク160に残っているインクの残量を示す値である。すなわち、コントローラ45は、カートリッジ200が空になる日時を推定し、CTGエンプティ日時として決定する。次に、コントローラ45は、決定したCTGエンプティ日時から第3安全期間だけ後の日時を到着予定日時に決定する。第3安全期間は、例えば、発注された新しいカートリッジ200が到着予定日よりも早い日時に届けられる際の、早くなる期間の最大値に等しい期間として決められる。到着予定日時は、第1所定日の一例である。
その後、コントローラ45は、到着予定日時から配達期間だけ前の日時を発注日時に決定し、残量管理リストに記憶する(S155)。発注日時は、発注日の一例である。
[変形例5の効果]
本変形例では、コントローラ45は、取得日時とタンク残量割合とを用いて1次関数を決定し、決定した1次関数から、カートリッジ200にはインクが残っておらず、かつタンク160にはインクが残っていると予想される到着予定日時を推定する。コントローラ45は、推定した到着予定日時から配達期間だけ前の発注日時を、発注指示を送信する日時として決定する。したがって、カートリッジ200にはインクが残っておらず、かつタンク160にはインクが残っている状態のときに、新たなカートリッジ200がユーザの元に届き得る。その結果、カートリッジ200を交換するまでに印刷を行えなくなることが防止され、かつ、インクが残ったカートリッジ200が新しいカートリッジ200に交換されてインクが無駄になることが防止される。
また、第3安全期間は、発注された新しいカートリッジ200が到着予定日よりも早い日時に届けられる際の、早くなる期間の最大値に等しい期間として決められるので、発注された新しいカートリッジ200は、例え想定よりも早くユーザの元に届けられたとしても、少なくともカートリッジ200に収容されたインクが使い切られた後にユーザの元に届けられる。したがって、インクが残ったカートリッジ200が新しいカートリッジ200に交換されてインクが無駄になるおそれが低減する。
[変形例6]
上述の第1実施形態では、発注日時を決定し、現在時刻が発注日時に到達すると、発注指示が情報収集サーバ40から発送サーバ50に送信される例を説明した。本変形例では、合計残量割合が発注残量(図20(B))に到達すると、発注指示が情報収集サーバ40から発送サーバ50に送信される例を説明する。
本変形例では、情報収集サーバ40は、発注日時決定処理(図10のS96)に代えて、図20(A)に示される発注条件決定処理を実行する。なお、以下で説明する処理以外の処理は、第1実施形態で説明した処理と同じである。また、発注日時決定処理と同一の処理については、第1実施形態と同一の符号を付して説明を省略する。
情報収集サーバ40のコントローラ45は、第1実施形態で説明した発注日時決定処理と同様に、ステップS101からS104までの処理を実行する。次に、コントローラ45は、ステップS104で決定した1次関数の傾きの絶対値に、記憶部42に予め記憶された配達期間を乗じ、乗じて得た値にステップS102で取得したエンプティ時残量割合を加算して、発注残量割合を算出する(S161)。コントローラ45は、算出した発注残量を記憶部42に記憶し(S162)、発注条件決定処理を終了する。
コントローラ45は、発注日時決定処理の代わりに実行した発注条件決定処理の実行後、
図10に示される発注処理のステップS97に代えて、受信した管理情報に含まれる合計残量割合が記憶部42に記憶された発注残量割合以上か否かを判断する処理を実行する。
コントローラ45は、受信した管理情報に含まれる合計残量割合が発注残量割合以上であると判断すると、発注処理を終了する。一方、コントローラ45は、受信した管理情報に含まれる合計残量割合が発注残量割合未満であると判断すると、第1実施形態と同様に、ステップS98からS100までの処理を実行し、発注処理を終了する。
[変形例6の効果]
本変形例では、発注日時を特定することなく、発注指示を発送サーバ50に送信することができる。
[その他の変形例]
上述の実施形態では、送信時刻になると、管理情報がプリンタ10から情報収集サーバ40に送信される例を説明した。しかしながら、管理情報は、24時間ごとや48時間ごとなど、所定の時間間隔でプリンタ10から情報収集サーバ40に送信されてもよい。また、管理情報は、印刷が行われる度に、或いは、メンテナンスなども含めてインクがヘッド21を通じて排出される度にプリンタ10から情報収集サーバ40に送信されてもよい。或いは、情報収集サーバ40からプリンタ10へ管理情報の送信を要求するリクエスト情報が送信されたことを条件に、プリンタ10から情報収集サーバ40に管理情報が送信されてもよい。プリンタ10のコントローラ130は、ステップS61に代えて、EEPROM51に記憶された所定の時間(24時間や48時間)が経過したか否かを判断する処理、或いは、情報収集サーバ40からリクエスト情報が入力されたか否かを判断する処理を実行する。
また、上述の実施形態では、情報収集サーバ40がプリンタ10から情報を収集して発注指示を送信する例を説明した。しかしながら、情報収集サーバ40のコントローラ45が実行する処理を、プリンタ10のコントローラ130が実行してもよい。すなわち、プリンタ10のコントローラ130は、決定した合計残量割合やカートリッジ残量割合やタンク残量割合に基づいて、1次関数や到着予定日時や発注日時を決定し、発注指示を送信する。その場合、プリンタ10は、制御装置の一例である。ICチップ34のメモリ、ROM36、EEPROM51、及びRAM52は、メモリの一例である。コントローラ130は、コントローラの一例である。
また、上述の実施形態や変形例では、100%未満になった最初のレコードと、最も新しいレコードとを用いて1次関数に決定する例を説明した。しかしながら、3つ以上のレコードから1次関数が決定されてもよい。3つ以上のレコードにおいて、例えば標準偏差が求められ、1次関数が決定される。
また、上述の実施形態では、情報収集サーバ40が管理情報を受信する度に発注日時が決定され、カートリッジ管理リストの項目「発注日時」が更新される例を説明した。しかしながら、情報収集サーバ40のコントローラ45は、発注日時を1度決定した後は、発注指示を送信するまでは、発注日時の決定を再度行わない構成が採用されてもよい。
また、上述の実施形態や変形例では、合計残量割合やカートリッジ残量割合やタンク残量割合など、プリンタ10が割合を情報収集サーバ40に送信する例を説明した。しかしならが、プリンタ10は、合計残量値や、カートリッジ残量値や、タンク残量値を情報収集サーバ40に送信してもよい。
また、上述の実施形態や変形例では、算出した合計残量割合、カートリッジ残量割合、及びタンク残量割合が100%を超えると、合計残量割合、カートリッジ残量割合、及びタンク残量割合が100%に変更され、100%以下の合計残量割合や、カートリッジ残量割合や、タンク残量割合が情報収取サーバ40に送信される例を説明した。しかしながら、プリンタ10は、100%を超える合計残量割合や、カートリッジ残量割合や、タンク残量割合を情報収集サーバ40に送信してもよい。
また、上述の実施形態では、管理情報にC_Emptyフラグが含まれ、管理情報に含まれるC_Emptyフラグの値が「ON」であると、発注日時に到達したか否かが判断されることなく、発注指示が発送サーバ50に送信される例を説明した。しかしながら、管理情報にC_Emptyフラグが含まれておらず、現在日時が発注日時に到達したか否かのみによって発注指示を送信するか否かが判断されてもよい。
また、上述の実施形態や変形例では、インクを印刷剤の一例として説明した。しかしながら、印刷剤はインクに限らず、トナーであってもよい。
また、上述の実施形態や変形例では、水頭差によってカートリッジ200からタンク160にインクが流出する例を説明した。しかしながら、重力によって、カートリッジ200からタンクにインクが流出されてもよいし、ポンプなどの駆動源を用いてカートリッジ200からタンク160にインクが流出されてもよい。駆動源を用いる場合、タンク160は、例えばヘッド21に搭載される。
また、上述の実施形態や変形例では、プリンタ10と情報収集サーバ40とがインターネットなどの通信回線6によって接続されている例を説明した。しかしながら、プリンタ10と情報収集サーバ40とは、LANによって接続されていてもよい。なお、プリンタ10と情報収集サーバ40とがLANによって接続されている場合、プリンタ10の識別情報は、プリンタ10のIPアドレスであってもよい。