(57)【特許請求の範囲】
【請求項１】
印刷実行部に関係する処理を実行する制御装置のためのコンピュータプログラムであって、
複数の日時のそれぞれにおいて、前記印刷実行部で使用される印刷剤の現在の残量に関係する現在値を取得する取得部と、
前記複数の日時に取得される複数個の前記現在値を利用して、Ｎ１個（前記Ｎ１は２以上の整数）の変化値を算出する変化値算出部であって、前記変化値は、単位時間当たりの前記印刷剤の残量の変化に関係する値である、前記変化値算出部と、
前記Ｎ１個の変化値の中から、単位時間当たりの前記印刷剤の残量の変化が最も大きい第１の最大変化値を特定する特定部と、
前記第１の最大変化値を利用して、前記印刷剤の将来の残量に関係する第１の将来値を算出する第１の予測処理を実行する予測処理実行部と、
前記第１の予測処理が実行される場合に、前記第１の将来値を利用した出力処理を実行する出力処理実行部と、
として、前記制御装置を機能させるコンピュータプログラム。
【請求項２】
前記第１の将来値は、前記印刷実行部が前記印刷剤を利用した印刷を実行不可能になると予測される日に関係する値である、請求項１に記載のコンピュータプログラム。
【請求項３】
前記変化値算出部は、前記複数個の現在値を利用して、前記Ｎ１個の変化値を含むＭ個（前記Ｍは前記Ｎ１より大きい整数）の変化値を算出し、
前記特定部は、
前記Ｍ個の変化値の中から、単位時間当たりの前記印刷剤の残量の変化が所定値よりも大きい１個以上の変化値を除外することによって、前記Ｎ１個の変化値を特定し、
特定済みの前記Ｎ１個の変化値の中から前記第１の最大変化値を特定する、請求項１又は２に記載のコンピュータプログラム。
【請求項４】
前記予測処理実行部は、前記複数個の現在値のうち、最新の日時に取得された最新現在値が、前記印刷剤の残量が基準値以下であることを示す場合に、前記第１の予測処理を実行する、請求項１〜３のいずれか一項に記載のコンピュータプログラム。
【請求項５】
前記予測処理実行部は、さらに、前記最新現在値が、前記印刷剤の残量が前記基準値よりも大きいことを示す場合に、前記最新現在値と、前記複数個の現在値のうち、最古の日時に取得された最古現在値と、を利用して、１個の前記変化値を算出し、前記１個の変化値を利用して、前記印刷剤の将来の残量に関係する第２の将来値を算出する第２の予測処理を実行し、
前記出力処理実行部は、さらに、前記第２の予測処理が実行される場合に、前記第２の将来値を利用した前記出力処理を実行する、請求項４に記載のコンピュータプログラム。
【請求項６】
前記コンピュータプログラムは、さらに、
前記複数個の現在値を利用して、単位時間当たりの前記印刷剤の残量の変化のばらつきに関係するばらつき値を算出するばらつき算出部として、前記制御装置を機能させ、
前記予測処理実行部は、
前記ばらつき値が、前記ばらつきが閾値以上であることを示す場合に、前記第１の予測処理を実行し、
前記ばらつき値が、前記ばらつきが閾値未満であることを示す場合に、前記第１の予測処理を実行しない、請求項１から４のいずれか一項に記載のコンピュータプログラム。
【請求項７】
前記予測処理実行部は、さらに、前記ばらつき値が、前記ばらつきが前記閾値未満であることを示す場合に、前記複数個の現在値のうち、最新の日時に取得された最新現在値と、前記複数個の現在値のうち、最古の日時に取得された最古現在値と、を利用して、１個の前記変化値を算出し、前記１個の変化値を利用して、前記印刷剤の将来の残量に関係する第２の将来値を算出する第２の予測処理を実行し、
前記出力処理実行部は、さらに、前記第２の予測処理が実行される場合に、前記第２の将来値を利用した前記出力処理を実行する、請求項６に記載のコンピュータプログラム。
【請求項８】
前記変化値算出部は、第１の所定期間に対応する前記Ｎ１個の変化値を算出し、
前記変化値算出部は、さらに、前記複数個の現在値を利用して、前記第１の所定期間とは異なる第２の所定期間に対応するＮ２個の前記変化値を算出し、
前記特定部は、さらに、前記Ｎ２個の変化値の中から、単位時間当たりの前記印刷剤の残量の変化が最も大きい第２の最大変化値を特定し、
前記予測処理実行部は、前記第１の最大変化値と前記第２の最大変化値とを利用して、前記第１の将来値を算出する前記第１の予測処理を実行する、請求項１から７のいずれか一項に記載のコンピュータプログラム。
【請求項９】
前記出力処理は、前記印刷剤を発注するための発注情報を出力するための処理を含む、請求項１から８のいずれか一項に記載のコンピュータプログラム。
【請求項１０】
前記取得部は、ネットワークを介して、前記印刷実行部から前記現在値を取得する、請求項１から９のいずれか一項に記載のコンピュータプログラム。
【請求項１１】
印刷実行部に関係する処理を実行する制御装置であって、
複数の日時のそれぞれにおいて、前記印刷実行部で使用される印刷剤の現在の残量に関係する現在値を取得する取得部と、
前記複数の日時に取得される複数個の前記現在値を利用して、Ｎ１個（前記Ｎ１は２以上の整数）の変化値を算出する変化値算出部であって、前記変化値は、単位時間当たりの前記印刷剤の残量の変化に関係する値である、前記変化値算出部と、
前記Ｎ１個の変化値の中から、単位時間当たりの前記印刷剤の残量の変化が最も大きい第１の最大変化値を特定する特定部と、
前記第１の最大変化値を利用して、前記印刷剤の将来の残量に関係する第１の将来値を算出する第１の予測処理を実行する予測処理実行部と、
前記第１の予測処理が実行される場合に、前記第１の将来値を利用した出力処理を実行する出力処理実行部と、
を備える、制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書では、印刷実行部に関係する処理を実行する制御装置に関する技術を開示する。
【背景技術】
【０００２】
特許文献１には、プリンタが印字不可能になる日を推測するための技術が開示されている。具体的には、プリンタは、３日毎に現像剤の残量を測定して、残量と現像剤の使用日数とを記憶する。そして、プリンタは、記憶済みの複数個の残量を利用して、現像剤の将来の残量を予測するための直線を算出し、印字不可能な残量に対応する当該直線上の日を特定する。特に、印字不可能な日を予測するための２種類の直線が開示されている。第１種の直線は、複数個の残量のうちの現像剤の使用開始日における残量を示す点と、最新の残量を示す点と、の２点を通る直線である。第２種の直線は、複数個の残量を示す全ての点の近似直線である。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−１５４７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
印字枚数が多い期間もあれば少ない期間もある。即ち、単位時間当たりの現像剤の使用量は変化する。例えば、ある程度多くの残量があっても、単位時間当たりの現像剤の使用量が大きければ、現像剤が早期になくなる。上記の技術では、単位時間当たりの現像剤の使用量の変化が考慮されずに、印字不可能な日が予測される。このために、単位時間当たりの現像剤の使用量が大きい期間が将来に発生すれば、予測される日よりも早く、印字不可能な残量になる可能性がある。
【０００５】
本明細書では、印刷剤の将来の残量に関係する将来値を適切に算出するための技術を提供する。
【課題を解決するための手段】
【０００６】
本明細書は、印刷実行部に関係する処理を実行する制御装置のためのコンピュータプログラムを開示する。コンピュータプログラムは、複数の日時のそれぞれにおいて、前記印刷実行部で使用される印刷剤の現在の残量に関係する現在値を取得する取得部と、前記複数の日時に取得される複数個の前記現在値を利用して、Ｎ１個（前記Ｎ１は２以上の整数）の変化値を算出する変化値算出部であって、前記変化値は、単位時間当たりの前記印刷剤の残量の変化に関係する値である、前記変化値算出部と、前記Ｎ１個の変化値の中から、単位時間当たりの前記印刷剤の残量の変化が最も大きい第１の最大変化値を特定する特定部と、前記第１の最大変化値を利用して、前記印刷剤の将来の残量に関係する第１の将来値を算出する第１の予測処理を実行する予測処理実行部と、前記第１の予測処理が実行される場合に、前記第１の将来値を利用した出力処理を実行する出力処理実行部と、として、前記制御装置を機能させる。
【０００７】
上記の構成によれば、制御装置は、Ｎ１個の変化値のうちの第１の最大変化値を利用して、第１の将来値を算出する。即ち、制御装置は、印刷実行部における過去の大きな変化値が将来に発生する可能性を考慮して、第１の将来値を算出することができる。従って、制御装置は、印刷剤の将来の残量に関係する将来値を適切に算出することができる。
【０００８】
上記のコンピュータプログラムを格納するコンピュータ読取可能記憶媒体も新規で有用である。また、制御装置そのもの、及び、制御装置の制御方法も、新規で有用である。
【図面の簡単な説明】
【０００９】
【図１】通信システムの構成を示す。
【図２】発注処理のフローチャートを示す。
【図３】第１〜第３実施例の特定処理のフローチャートと、第１実施例の具体的なケースを表わすグラフと、を示す。
【図４】第２実施例の具体的なケースを表わすグラフを示す。
【図５】第３実施例の具体的なケースを表わすグラフを示す。
【図６】第４実施例の特定処理のフローチャートと、第４実施例の具体的なケースを表わすグラフと、を示す。
【発明を実施するための形態】
【００１０】
（第１実施例）
（通信システム２の構成：図１）
図１に示されるように、通信システム２は、管理サーバ１０と、プリンタ１００と、サービスサーバ５００と、を備える。各装置１０、１００、５００は、インターネット６を介して、相互に通信可能である。
【００１１】
（プリンタ１００の構成）
プリンタ１００は、少なくとも印刷機能を実行可能な装置である。プリンタ１００は、プリンタ１００の本体に対して着脱可能なカートリッジ（不図示）に収容されている印刷剤（例えば、トナー、インク等）を利用して、印刷を実行する。プリンタ１００にはシリアル番号ＳＮ１が割り当てられている。シリアル番号ＳＮ１は、プリンタ１００のモデル名ＭＮ１と同じモデル名を有する複数個のプリンタが製造される際に、プリンタ１００のベンダによって割り当てられるユニークな文字列である。
【００１２】
また、プリンタ１００は、プリンタ１００に取り付けられているカートリッジに収容されている印刷剤の現在の残量を示す現在残量Ｒ１と、カートリッジの交換回数ＣＮ１と、をメモリ（不図示）に格納する。プリンタ１００は、新しいカートリッジが取り付けられると、メモリ内の現在残量Ｒ１を１００％に更新する。そして、プリンタ１００は、印刷が実行される毎に、現在残量Ｒ１を更新する。具体的には、プリンタ１００は、印刷されるべき画像を表わす画像データを取得する場合に、取得済みの画像データを利用して、画像の印刷に必要な印刷剤の使用量を推測する。そして、プリンタ１００は、画像の印刷が実行されると、現在残量Ｒ１から推測済みの使用量を減算して、現在残量Ｒ１を更新する。なお、変形例では、プリンタ１００は、カートリッジ内の印刷剤の残量を計測するセンサを備えていてもよく、当該センサが印刷剤の残量を計測する毎に、現在残量Ｒ１を更新してもよい。
【００１３】
また、プリンタ１００は、カートリッジが交換される毎に、メモリ内の交換回数ＣＮ１を更新する。具体的には、プリンタ１００は、プリンタ１００が出荷されてから初めてカートリッジが取り付けられる場合に、「０」を示す交換回数ＣＮ１を格納し、その後、カートリッジが交換される毎に、交換回数ＣＮ１をインクリメントする。
【００１４】
（管理サーバ１０の構成）
管理サーバ１０は、プリンタ１００を含む複数個のプリンタを管理するためのサーバである。管理サーバ１０は、プリンタ１００のベンダによってインターネット６上に設置される。
【００１５】
管理サーバ１０は、ネットワークインターフェイス１２と、制御部２０と、を備える。各部１２，２０は、バス線（符号省略）に接続されている。なお、以下では、インターフェースのことを「Ｉ／Ｆ」と記載する。制御部２０は、ＣＰＵ２２と、メモリ２４と、を備える。ＣＰＵ２２は、メモリ２４に格納されているプログラム２６に従って、様々な処理を実行する。メモリ２４は、揮発性メモリ、不揮発性メモリ等によって構成される。
【００１６】
メモリ２４は、上記のプログラム２６の他に、複数個の登録情報ＲＩ１〜ＲＩ３を格納する。ＣＰＵ２２は、プリンタ１００からプリンタ１００のシリアル番号ＳＮ１を含む登録指示を取得すると、シリアル番号ＳＮ１をメモリ２４に登録する。そして、ＣＰＵ２２は、シリアル番号ＳＮ１に関連付けて登録情報ＲＩ１をメモリ２４に格納する。登録情報ＲＩ１は、プリンタ１００のユーザの住所を示す住所情報ＡＩ１と、印刷材の残量の履歴を示す履歴情報ＨＩ１と、交換テーブルＣＴ１と、最大傾き値ＧＶ１と、を含む。なお、ＣＰＵ２２は、プリンタ１００とは異なる各プリンタから登録指示を取得すると、プリンタ１００の場合と同様に、登録情報ＲＩ２、ＲＩ３等をメモリ２４に格納する。
【００１７】
ＣＰＵ２２は、シリアル番号ＳＮ１がメモリ２４に登録された後に、プリンタ１００で住所情報ＡＩ１を入力する入力操作がユーザによって実行される場合に、プリンタ１００から住所情報ＡＩ１を取得して、シリアル番号ＳＮ１に関連付けて住所情報ＡＩ１をメモリ２４に登録する。
【００１８】
ＣＰＵ２２は、所定の周期（例えば１日毎）でプリンタ１００から使用情報を取得する。使用情報は、シリアル番号ＳＮ１と、モデル名ＭＮ１と、印刷材の現在の残量Ｒ１と、交換回数ＣＮ１と、を含む。ＣＰＵ２２は、プリンタ１００から使用情報を取得する毎に、当該使用情報が取得された日付と、当該使用情報に含まれる残量Ｒ１と、を関連付けて履歴情報ＨＩ１に追加する。これにより、複数の日付における複数個の残量を含む履歴情報ＨＩ１が格納される。なお、ＣＰＵ２２は、プリンタ１００でカートリッジが交換される毎に、現在の履歴情報ＨＩ１を消去する。具体的には、ＣＰＵ２２は、取得済みの使用情報に含まれる交換回数ＣＮ１が交換テーブルＣＴ１に登録済みでない場合に、プリンタ１００でカートリッジが交換されたと判断して、履歴情報ＨＩ１を消去する。その後、ＣＰＵ２２は、当該使用情報が取得された日付と、当該使用情報に含まれる残量と、を新たな履歴情報ＨＩ１として記憶する。即ち、履歴情報ＨＩ１は、プリンタ１００に現在取り付けられているカートリッジに関する情報のみを含む。なお、変形例では、ＣＰＵ２２は、プリンタ１００でカートリッジが交換されても、履歴情報ＨＩ１を消去しなくてもよい。即ち、履歴情報ＨＩ１は、プリンタ１００に現在取り付けられているカートリッジに関する情報のみならず、プリンタ１００に過去取り付けられていたカートリッジに関する情報を含んでいてもよい。
【００１９】
交換テーブルＣＴ１では、交換回数と発注フラグとが関連付けられている。ＣＰＵ２２は、プリンタ１００から使用情報を取得する毎に、当該使用情報に含まれる交換回数が交換テーブルＣＴ１に登録済みであるのか否かを判断する。ＣＰＵ２２は、交換回数が登録済みでないと判断する場合には、当該交換回数と発注フラグ「０」とを関連付けて交換テーブルＣＴ１に新たに登録する、一方、ＣＰＵ２２は、交換回数が登録済みであると判断する場合には、当該交換回数を新たに登録しない。発注フラグ「０」は、当該発注フラグに関連付けられている交換回数に対応するカートリッジがプリンタ１００に取り付けられている状況下において、新たなカートリッジをプリンタ１００のユーザに発送するための発注情報がサービスサーバ５００に未だ供給されていないことを意味する。また、発注フラグ「１」は、発注情報がサービスサーバ５００に既に供給されたことを意味する。
【００２０】
また、最大傾き値ＧＶ１は、履歴情報ＨＩ１を利用して算出される複数個の傾き値の中で最も大きい傾き値を示す。各傾き値は、２個の日付（例えば４／３と４／４）における２個の残量から算出される１日当たりの残量の変化を示す。最大傾き値ＧＶ１の初期値は０％である。最大傾き値ＧＶ１は、プリンタ１００でカートリッジが交換される毎に、初期値に変更される。即ち、最大傾き値ＧＶ１は、プリンタ１００に現在取り付けられているカートリッジの残量の履歴のみから算出される。なお、変形例では、最大傾き値ＧＶ１は、プリンタ１００でカートリッジが交換されても初期化されなくてもよい。この場合、最大傾き値ＧＶ１は、プリンタ１００に現在取り付けられているカートリッジの残量の履歴と、プリンタ１００に過去取り付けられていたカートリッジの残量の履歴と、の双方から算出される。
【００２１】
（サービスサーバ５００の構成）
サービスサーバ５００は、カートリッジの発送サービスを提供するサーバである。サービスサーバ５００は、管理サーバ１０のベンダによってインターネット６上に設置されてもよいし、当該ベンダとは異なる事業者によって設置されてもよい。サービスサーバ５００は、管理サーバ１０から発注情報を取得すると、発注情報に含まれる住所情報によって示される住所を宛先として、カートリッジを発送する。
【００２２】
（発注処理：図２）
図２を参照して、管理サーバ１０のＣＰＵ２２がプログラム２６に従って実行する発注処理の内容を説明する。発注処理は、管理サーバ１０の電源がＯＮされることをトリガとして開始される。
【００２３】
Ｓ１０では、ＣＰＵ２２は、ネットワークＩ／Ｆ１２を介して、プリンタ（例えばプリンタ１００）から使用情報を取得することを監視する。使用情報は、１日毎にプリンタから取得される。ＣＰＵ２２は、使用情報を取得する場合（Ｓ１０でＹＥＳ）に、使用情報に含まれるシリアル番号（例えば「ＳＮ１」）に関連付けられている登録情報（例えば「ＲＩ１」）を特定して、Ｓ１２に進む。以下では、プリンタ１００に対応する登録情報ＲＩ１が特定される場合を例として、説明を続ける。
【００２４】
Ｓ１２では、ＣＰＵ２２は、本日の日付と、Ｓ１０で取得された使用情報に含まれる残量と、を関連付けて、登録情報ＲＩ１に含まれる履歴情報ＨＩ１に追加し、傾き値を算出する。具体的には、ＣＰＵ２２は、まず、履歴情報ＨＩ１の中から、最新の日付（即ち本日の日付）における残量と、前回の日付（即ち前日の日付）における残量と、を特定する。そして、ＣＰＵ２２は、特定済みの残量の差を算出することにより、１日当たりの残量の変化を示す傾き値を算出する。
【００２５】
Ｓ１８では、ＣＰＵ２２は、算出済みの傾き値が所定値（例えば１０％）以下であるのか否かを判断する。ＣＰＵ２２は、算出済みの傾き値が所定値以下であると判断する場合（Ｓ１８でＹＥＳ）に、Ｓ２０に進み、算出済みの傾き値が所定値より大きい場合（Ｓ１８でＮＯ）に、Ｓ２０、Ｓ２２の処理をスキップして、Ｓ３０に進む。
【００２６】
Ｓ２０では、ＣＰＵ２２は、算出済みの傾き値がメモリ２４に格納されている最大傾き値ＧＶ１より大きいのか否かを判断する。ＣＰＵ２２は、算出済みの傾き値が最大傾き値ＧＶ１より大きいと判断する場合（Ｓ２０でＹＥＳ）に、Ｓ２２に進み、算出済みの傾き値が最大傾き値ＧＶ１以下である場合（Ｓ２０でＮＯ）に、Ｓ２２の処理をスキップして、Ｓ３０に進む。
【００２７】
Ｓ２２では、ＣＰＵ２２は、メモリ２４に格納されている最大傾き値ＧＶ１を算出済みの傾き値に更新する。換言すれば、ＣＰＵ２２は、履歴情報ＨＩ１を利用して算出される複数個の傾き値の中から、１日当たりの残量の変化が最も大きい傾き値を特定し、当該傾き値を最大傾き値ＧＶ１としてメモリ２４に格納する。
【００２８】
特に、Ｓ１８の処理が実行されることにより、ＣＰＵ２２は、所定値より大きい傾き値が最大傾き値ＧＶ１として記憶されるのを防止することができる。例えば、所定値より大きい傾き値は、ユーザが大量の印刷を実行する等の特別な状況が発生した期間における残量の変化を示す。Ｓ１８の処理が実行されるので、このような特別な状況に影響されることなく予測日を算出することができ、予測日の精度を向上させることができる。なお、変形例では、Ｓ１８の処理が実行されなくてよい。
【００２９】
Ｓ３０では、ＣＰＵ２２は、登録情報ＲＩ１に含まれる交換テーブルＣＴ１から、Ｓ１０で取得された使用情報に含まれる交換回数に関連付けられている発注フラグを特定し、当該発注フラグが「０」を示すのか否かを判断する。ＣＰＵ２２は、発注フラグが「０」を示すと判断する場合（Ｓ３０でＹＥＳ）、即ち、カートリッジが未だに発送されていない場合に、Ｓ５０に進み、発注フラグが「１」を示す場合（Ｓ３０でＮＯ）、即ち、カートリッジが発送済みである場合に、Ｓ３０以降の処理をスキップして、Ｓ１０に戻る。なお、第１実施例では、Ｓ４０、Ｓ６０の処理が実行されない。
【００３０】
Ｓ５０では、ＣＰＵ２２は、図３に示される特定処理を実行する。図３のＳ５２では、ＣＰＵ２２は、履歴情報ＨＩ１に含まれる複数の日付のうちの最新の日付（即ち本日の日付）における残量によって表される点を通過し、かつ、最大傾き値ＧＶ１によって示される傾きを有する直線を、予測直線として算出する。
【００３１】
図２のＳ７０では、ＣＰＵ２２は、Ｓ５２で算出された予測直線上の残量０％に対応する点によって示される日付を、カートリッジ内の印刷剤の残量が０％になると予測される予測日として算出する。即ち、予測日は、プリンタ１００がカートリッジ内の印刷剤を利用した印刷を実行不可能になると予測される日である。
【００３２】
Ｓ８０では、ＣＰＵ２２は、本日から予測日までの期間が１０日以内であるのか否かを判断する。なお、変形例では、１０日とは異なる期間が利用されてもよい。ＣＰＵ２２は、本日から予測日までの期間が１０日以内であると判断する場合（Ｓ８０でＹＥＳ）に、Ｓ８２に進み、本日から予測日までの期間が１０日より大きい場合（Ｓ８０でＮＯ）に、以降の処理をスキップして、Ｓ１０に戻る。
【００３３】
Ｓ８２では、ＣＰＵ２２は、登録情報ＲＩ１に含まれる住所情報ＡＩ１と、カートリッジ情報と、を含む発注情報を、サービスサーバ５００に供給する。カートリッジ情報は、Ｓ１０で取得された使用情報に含まれるモデル名によって示されるモデルのプリンタ１００に適合するカートリッジの種類を示す情報（例えばカートリッジの型番）である。これにより、サービスサーバ５００は、住所情報ＡＩ１によって示されるユーザの住所を宛先として、カートリッジ情報によって示されるカートリッジを発送する。
【００３４】
Ｓ８４では、ＣＰＵ２２は、Ｓ３０で特定された発注フラグを「０」から「１」に変更する。Ｓ８４の処理が終了すると、Ｓ１０に戻る。
【００３５】
（第１実施例における具体的なケース；図３）
図３に示すグラフＧ１は、横軸が日付を示すと共に縦軸が残量を示すグラフである。グラフ内の各点は、履歴情報ＨＩ１に含まれる各日付の各残量を示す。以降の図４〜６のグラフも同様である。グラフＧ１では、最大傾き値ＧＶ１は、最新の日付Ｄ３における残量と、その１日前の日付Ｄ２における残量と、を利用して算出される値ＧＤ１を示す。即ち、日付Ｄ２から日付Ｄ３までの１日間の印刷剤の使用量が、他の期間における印刷剤の使用量よりも多いことを意味する。
【００３６】
本ケースでは、ＣＰＵ２２は、日付Ｄ３に使用情報を取得すると、最新の日付Ｄ３における残量を示す点を通過し、かつ、最大傾き値ＧＶ１である値ＧＤ１によって示される傾きを有する予測直線ＰＳ１を算出する（Ｓ５２）。ＣＰＵ２２は、予測直線ＰＳ１上の残量０％に対応する点によって示される日付を、予測日ＰＤ１として算出する（Ｓ７０）。そして、ＣＰＵ２２は、最新の日付Ｄ３から予測日ＰＤ１までの期間が５日なので（Ｓ８０でＹＥＳ）、発注情報をサービスサーバ５００に供給する（Ｓ８２）。
【００３７】
例えば、予測直線ＰＳ１の代わりに、図３に示す直線ＳＴ１を利用して、予測日を算出する比較例が想定される。直線ＳＴ１は、履歴情報ＨＩ１に含まれる最古の日付Ｄ１における最古の残量を示す点と、最新の日付Ｄ３における最新の残量を示す点と、を通過する直線である。この直線の傾きは、最古の日付から最新の日付までの期間における１日当たりの残量の変化の平均値を示す。この場合、最新の日付Ｄ３から予測日までの期間が１２日なので（Ｓ８０でＮＯ）、カートリッジは発送されない。例えば、最新の日付Ｄ３より後の各日において、傾き値ＧＤ１によって示される変化量で印刷が実行される可能性がある。仮に、このような状況が発生すると、１２日より短い期間で印刷剤の残量が０％となってしまう。この場合、比較例の構成では、ユーザは、カートリッジ内の印刷剤の残量が０％になっても、新しいカートリッジを受け取れない虞がある。
【００３８】
これに対し、本実施例では、予測直線ＰＳ１が最大傾き値ＧＶ１によって示される傾きを有するので、予測日ＰＤ１は、上記の状況が将来に発生する可能性が考慮された値である。そして、最新の日付Ｄ３から予測日ＰＤ１までの期間が５日なので（Ｓ８０でＹＥＳ）、カートリッジが発送される。従って、仮に、上記の状況が将来に発生したとしても、カートリッジ内の印刷剤の残量が０％になる前に、ユーザは、新しいカートリッジを受け取ることができる。このように、管理サーバ１０は、予測日を適切に算出して、印刷剤の残量が０％になる前に新しいカートリッジをユーザに提供することができる。
【００３９】
（対応関係）
管理サーバ１０が、「制御装置」の一例である。インターネット６が、「ネットワーク」の一例である。Ｓ１０の使用情報に含まれる残量、Ｓ１２で算出される傾き値、最大傾き値ＧＶ１が、それぞれ、「現在値」、「変化値」、「第１の最大変化値」の一例である。予測日ＰＤ１が、「第１の将来値」の一例である。Ｓ８２の処理が、「出力処理」の一例である。Ｓ１２で算出される複数個の傾き値、Ｓ１８でＹＥＳと判断される２個以上の傾き値が、それぞれ、「Ｍ個の変化値」、「Ｎ１個の変化値」の一例である。Ｓ５０及びＳ７０の処理が、「第１の予測処理」の一例である。
【００４０】
（第２実施例）
本実施例では、図２のＳ４０、Ｓ６０の処理が実行される点を除き、第１実施例と同様の処理が実行される。
【００４１】
Ｓ４０では、ＣＰＵ２２は、Ｓ１０で取得された使用情報に含まれる残量が基準値（例えば２０％）以下であるか否かを判断する。ＣＰＵ２２は、残量が基準値以下であると判断する場合（Ｓ４０でＹＥＳ）に、Ｓ５０に進み、残量が基準値より大きいと判断する場合（Ｓ４０でＮＯ）に、Ｓ５０の処理を実行せず、Ｓ６０に進む。
【００４２】
Ｓ６０では、ＣＰＵ２２は、履歴情報ＨＩ１に含まれる複数の日付の中の最古の日付における最古の残量を示す点と、最新の日付における最新の残量を示す点と、を通過する直線を、予測直線として算出する。この予測直線の傾きは、最古の日付から最新の日付までの期間における１日当たりの印刷剤の残量の変化の平均値を示す。
【００４３】
（第２実施例における具体的なケース；図４）
図４に示されるように、グラフＧ２では、最大傾き値ＧＶ１は、日付Ｄ３における残量と、１日前の日付Ｄ２における残量と、を利用して算出される値ＧＤ１を示す。
【００４４】
本ケースでは、日付Ｄ４以前に取得される使用情報には、基準値より大きい残量が含まれる。このため、ＣＰＵ２２は、日付Ｄ４以前の日付では、Ｓ４０でＮＯと判断し、Ｓ６０の処理によって予測直線を算出する。例えば、ＣＰＵ２２は、日付Ｄ３において、日付Ｄ３における残量を示す点と、最古の日付Ｄ１における残量を示す点と、を通過する予測直線ＰＳ２を算出する（Ｓ６０）。ＣＰＵ２２は、予測直線ＰＳ２上の残量０％に対応する点によって示される日付を、予測日ＰＤ２として算出する（Ｓ７０）。ＣＰＵ２２は、日付Ｄ３から予測日ＰＤ２までの期間が１２日あるので（Ｓ８０でＮＯ）、発注情報を供給しない。これにより、カートリッジは発送されない。
【００４５】
一方、日付Ｄ４より後に取得される使用情報には、基準値以下の残量が含まれる。このため、ＣＰＵ２２は、例えば、日付Ｄ４より後の日付Ｄ５では、Ｓ４０でＹＥＳと判断して、Ｓ５０の処理によって予測直線ＰＳ３を算出する。予測直線ＰＳ３は、最大傾き値ＧＶ１（即ち傾き値ＧＤ１）によって示される傾きを有する。ＣＰＵ２２は、日付Ｄ５から予測直線ＰＳ３を利用して算出される予測日ＰＤ３までの期間が４日なので（Ｓ８０でＹＥＳ）、発注情報をサービスサーバ５００に供給する（Ｓ８２）。
【００４６】
日付Ｄ３では、残量が基準値より大きく、比較的に多くの印刷剤がカートリッジ内に残っている。このような状況において、仮に、ＣＰＵ２２が、Ｓ４０、Ｓ６０の処理を実行せずに、Ｓ５０の処理を実行して、最大傾き値ＧＶ１によって示される傾きを有する直線ＳＴ２を利用して予測日を算出すると、Ｓ８０でＹＥＳと判断され、カートリッジが発送される。この場合、の印刷剤がカートリッジ内に十分に残っているにも関わらず、ユーザがカートリッジを受け取ることになり、ユーザが不快に感じ得る。
【００４７】
これに対し、本実施例では、日付Ｄ３において、直線ＳＴ１の傾きより緩やかな傾きを有する予測直線ＰＳ２を利用して予測日を算出するので、Ｓ８０でＮＯと判断され、カートリッジが発送されない。従って、印刷剤がカートリッジ内に十分に残っている状況で、ユーザがカートリッジを受け取ることを防止することができる。
【００４８】
（対応関係）
日付Ｄ３における残量、日付Ｄ１における残量が、それぞれ、「最新現在値」、「最古現在値」の一例である。予測直線ＰＳ２の傾きを示す傾き値が、「１個の変化値」の一例である。予測日ＰＤ２、予測日ＰＤ３が、それぞれ、「第１の将来値」、「第２の将来値」の一例である。Ｓ６０及びＳ７０の処理が、「第２の予測処理」の一例である。
【００４９】
（第３実施例）
本実施例では、図２のＳ１２に続いてＳ１４の処理が実行される点と、Ｓ４０、Ｓ６０の処理が実行される点と、を除き、第１実施例と同様の処理が実行される。
【００５０】
Ｓ１４では、ＣＰＵ２２は、履歴情報ＨＩ１を利用して、１日当たりの印刷剤の残量の変化のばらつきを示すばらつき値を算出する。具体的には、ＣＰＵ２２は、履歴情報ＨＩ１に含まれる複数個の残量の中から、連続する２個の日付（例えば、４／３と４／４）における２個の残量の全ての組合せを特定し、全ての組合せのそれぞれについて、傾き値を算出する。そして、ＣＰＵ２２は、算出済みの複数個の傾き値の標準偏差をばらつき値として算出する。
【００５１】
なお、変形例では、ＣＰＵ２２は、各日付における残量と、各日付の前日の日付における残量と、から算出される１日当たりの印刷剤の残量の変化を、各日付における傾き値として算出してもよい。そして、ＣＰＵ２２は、例えば所定期間として７日間を採用する場合に、７日間の中心に当たる日（例えば当該７日間のうちの４日目の日）における傾き値と、当該７日間における７個の傾き値の平均値と、の差の絶対値を、当該７日間における傾き値の変動を示す変動値として算出する。そして、ＣＰＵ２２は、所定期間毎（例えば７日間毎）の変動値の平均値をばらつき値として採用してもよい。
【００５２】
Ｓ４０では、ＣＰＵ２２は、Ｓ１４で算出されるばらつき値が閾値以上であるのか否かを判断する。ＣＰＵ２２は、ばらつき値が閾値以上であると判断する場合（Ｓ４０でＹＥＳ）に、Ｓ５０に進み、ばらつき値が閾値未満であると判断する場合（Ｓ４０でＮＯ）に、Ｓ５０の処理を実行せず、Ｓ６０に進む。Ｓ６０の処理は、第２実施例と同様である。
【００５３】
（第３実施例における具体的なケース；図５）
図５に示されるように、グラフＧ３では、最大傾き値ＧＶ１は、日付Ｄ７における残量と、その１日前の日付Ｄ６における残量と、を利用して算出される傾き値ＧＤ２である。
【００５４】
本ケースでは、日付Ｄ６以前の期間と比べて、日付Ｄ６から日付Ｄ７までの期間における印刷剤の使用量がかなり多い。そのため、日付Ｄ６以前の期間における印刷剤の使用状況が安定しているので、グラフＧ３に対応する履歴情報ＨＩ１を利用して算出されるばらつき値は閾値未満である。このため、ＣＰＵ２２は、Ｓ１４で算出されるばらつき値が閾値未満であるので（Ｓ４０でＮＯ）、Ｓ６０の処理によって予測直線ＰＳ４を算出する。予測直線ＰＳ４は、最新の日付Ｄ７における残量を示す点と、最古の日付Ｄ１における残量を示す点と、を通過する。そして、ＣＰＵ２２は、日付Ｄ７から予測日ＰＤ４までの期間が１２日間なので（Ｓ８０でＮＯ）、発注情報を供給しない。これにより、カートリッジは発送されない。
【００５５】
上記のように、日付Ｄ６から日付Ｄ７までの期間において、印刷剤が多量に使用される。このような特別な状況において、仮に、ＣＰＵ２２が、Ｓ１４、Ｓ４０、Ｓ６０の処理を実行せず、Ｓ５０の処理を実行して、最大傾き値ＧＶ１（即ち傾き値ＧＤ２）によって示される傾きを有する直線ＳＴ３を利用して予測日を算出すると、日付Ｄ７から予測日までの期間が４日間になり、カートリッジが発送されてしまう。しかしながら、このような特別な状況が将来に発生する可能性は低いので、カートリッジが早く発送され過ぎて、ユーザに不快感を与え得る。
【００５６】
これに対して、本実施例では、直線ＳＴ２の傾きより緩やかな傾きを有する予測直線ＰＳ４を利用して予測日を算出するので、Ｓ８０でＮＯと判断され、カートリッジが発送されない。従って、カートリッジが早く発送され過ぎることを防止することができる。
【００５７】
（対応関係）
日付Ｄ７における残量、日付Ｄ１における残量が、それぞれ、「最新現在値」、「最古現在値」の一例である。予測直線ＰＳ４の傾きを示す傾き値が、「１個の変化値」の一例である。Ｓ６０及びＳ７０の処理が、「第２の予測処理」の一例である。
【００５８】
（第４実施例）
第４実施例では、管理サーバ１０のメモリ２４は、最大傾き値ＧＶ１の代わりに、最大傾きテーブルＧＴ１を格納する（図１参照）。最大傾きテーブルＧＴ１は、一週間のうちの各曜日における最大傾き値を格納するためのテーブルである。例えば、月曜日における傾き値は、月曜日に取得された残量と、月曜日の前日の日曜日に取得された残量と、から算出される。そして、複数の月曜日における複数個の傾き値の中で最も大きい傾き値が、月曜日における最大傾き値である。
【００５９】
本実施例では、図２のＳ１８からＳ２２の処理の代わりに、Ｓ１６、Ｓ１７の処理が実行される点と、Ｓ５０の特定処理として図６のＳ５４が実行される点と、を除き、第１実施例と同様の処理が実行される。
【００６０】
Ｓ１６では、ＣＰＵ２２は、最大傾きテーブルＧＴ１の中から履歴情報ＨＩ１の中の最新の日付（即ち本日）の曜日における最大傾き値を特定し、Ｓ１２で算出された傾き値が特定済みの最大傾き値より大きいのか否かを判断する。ＣＰＵ２２は、算出済みの傾き値が特定済みの最大傾き値より大きいと判断する場合（Ｓ１６でＹＥＳ）に、Ｓ１７に進み、算出済みの傾き値が特定済みの最大傾き値以下であると判断する場合（Ｓ１６でＮＯ）に、Ｓ１７をスキップして、Ｓ３０に進む。
【００６１】
Ｓ１７では、ＣＰＵ２２は、最大傾きテーブルＧＴ１の中の本日の曜日における最大傾き値を算出済みの傾き値に更新する。
【００６２】
図６のＳ５４では、ＣＰＵ２２は、最大傾きテーブルＧＴ１を利用して、本日における残量を示す点を通過する予測折れ線グラフを算出する。予測折れ線グラフは、各曜日の各最大傾き値を有する。
【００６３】
図２のＳ７０では、ＣＰＵ２２は、Ｓ５４で算出された予測折れ線グラフ上の残量０％に対応する点によって示される日付を、予測日として算出する。
【００６４】
（第４実施例における具体的なケース；図６）
図６に示されるように、ＣＰＵ２２は、水曜日である日付Ｄ５に使用情報を取得すると、日付Ｄ５を通過する予測折れ線グラフＰＰ１を算出する（Ｓ５４）。具体的には、ＣＰＵ２２は、まず、最大傾きテーブルＧＴ１から木曜日における最大傾き値を特定し、使用情報に含まれる残量から特定済みの最大傾き値が減算された残量を示す点をプロットする。次いで、ＣＰＵ２２は、最大傾きテーブルＧＴ１から金曜日における最大傾き値を特定し、直前にプロットされた残量から特定済みの最大傾き値が減算された残量を示す点をプロットする。ＣＰＵ２２は、これを繰り返すことによって、予測折れ線グラフＰＰ１を算出し、次いで、グラフＰＰ１上の残量０％に対応する点によって示される日付を予測日ＰＤ５として算出する（Ｓ７０）。そして、ＣＰＵ２２は、最新の日付Ｄ５から予測日ＰＤ５までの期間が５日なので（Ｓ８０でＹＥＳ）、発注情報をサービスサーバ５００に供給する（Ｓ８２）。
【００６５】
本実施例でも、第１実施例と同様に、管理サーバ１０は、予測日を適切に算出することができる。特に、管理サーバ１０は、各曜日の最大傾き値を利用して予測日を算出するので、予測日を正確に算出し得る。
【００６６】
（対応関係）
例えば日曜日からその翌日の月曜日までの期間、例えば月曜日からその翌日の火曜日までの期間、最大傾きテーブルＧＴ１の月曜日における最大傾き値、最大傾きテーブルＧＴ１の火曜日における最大傾き値が、それぞれ、「第１の所定期間」、「第２の所定期間」、「第１の最大変化値」、「第２の最大変化値」の一例である。
【００６７】
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には以上に例示した具体例を様々に変形、変更したものが含まれる。上記の実施例の変形例を以下に列挙する。
【００６８】
（変形例１）
管理サーバ１０が設けられなくてもよい。この場合、プリンタ１００の制御部が、図２の発注処理を実行してもよい。この場合、プリンタ１００の制御部、プリンタ１００の印刷エンジンが、それぞれ、「制御装置」、「印刷実行部」の一例である。
【００６９】
（変形例２）
プリンタ１００は、現在の残量Ｒ１の代わりに、カートリッジが取り付けられてから現在までの期間における当該カートリッジ内の印刷剤の使用量を格納してもよい。この場合、管理サーバ１０は、プリンタ１００から格納済みの使用量を含む使用情報を取得し、使用量を利用して、図２の発注処理を実行してもよい。本変形例では、使用情報に含まれる使用量が、「現在値」の一例である。
【００７０】
（変形例３）
ＣＰＵ２２は、図２のＳ１２からＳ２２の処理を実行しなくてもよい。この場合、ＣＰＵ２２は、Ｓ３０の後であってＳ５０の前に、履歴情報ＨＩ１に含まれる複数個の残量を利用して、複数個の傾き値を算出し、複数個の傾き値の中から最も大きい最大傾き値を特定してもよい。
【００７１】
（変形例４）
メモリ２４は、履歴情報ＨＩ１の代わりに、最新の日付における１個の残量のみを格納してもよい。この場合、ＣＰＵ２２は、新たな使用情報を取得する際に、Ｓ１２において、メモリ２４内の残量（即ち前回に取得された使用情報に含まれる残量）と、取得済みの使用情報に含まれる残量と、を利用して、１日当たりの残量の変化を示す傾き値を算出してもよい。そして、ＣＰＵ２２は、傾き値を算出した後に、メモリ２４内の残量を取得済みの使用情報に含まれる残量に更新してもよい。本変形例では、メモリ２４に記憶されるべき情報量を低減させることができる。
【００７２】
（変形例５）
ＣＰＵ２２は、図２のＳ７０以降の処理を実行しなくてもよい。この場合、ＣＰＵ２２は、最新の日付から所定日数（例えば３日間）が経過した日付における予測直線上の残量を特定し、特定済みの残量を外部装置（例えばプリンタ１００）の表示部に表示させるために、特定済みの残量を示す情報をプリンタ１００に供給してもよい。本変形例では、特定済みの残量、残量を示す情報の供給が、それぞれ、「第１の将来値」、「出力処理」の一例である。
【００７３】
（変形例６）
ＣＰＵ２２は、図２のＳ８０、Ｓ８２の処理を実行しなくてもよい。この場合、ＣＰＵ２２は、外部装置（例えばプリンタ１００の表示部）に予測日を表示させるために、予測日を示す情報をプリンタ１００に供給してもよい。本変形例では、予測日を示す情報の供給が、「出力処理」の一例である。
【００７４】
（変形例７）
最大傾きテーブルＧＴ１は、各曜日における最大傾き値を格納する代わりに、平日における最大傾き値と、休日における最大傾き値と、を格納してもよい。その他の処理は、第４実施例と同様である。本変形例では、平日の期間、休日の期間、平日における最大傾き値、休日における最大傾き値が、それぞれ、「第１の所定期間」、「第２の所定期間」、「第１の最大変化値」、「第２の最大変化値」の一例である。
【００７５】
（変形例８）
ＣＰＵ２２は、第２実施例のＳ４０の判断と第３実施例のＳ４０の判断を組み合わせて、Ｓ５０の処理及びＳ６０の処理のいずれを実行するかを判断してもよい。一例では、ＣＰＵ２２は、残量が基準値以下であり、かつ、ばらつき値が閾値以上である場合に、Ｓ５０の処理を実行し、それ以外の場合に、Ｓ６０の処理を実行してもよい。また、他の例では、残量が基準値以下の場合、又は、残量が基準値より大きく、かつ、ばらつき値が閾値以上である場合に、Ｓ５０の処理を実行し、それ以外の場合に、Ｓ６０の処理を実行してもよい。
【００７６】
（変形例９）
ＣＰＵ２２は、Ｓ６０において、履歴情報ＨＩ１に含まれる複数の日時における複数個の残量を利用して、近似直線を算出し、当該近似直線を予測直線として特定してもよい。近似直線を算出する方法は、例えば、最小二乗法である。
【００７７】
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【符号の説明】
【００７８】
２：通信システム、６：インターネット、１０：管理サーバ、１２：ネットワークＩ／Ｆ、２０：制御部、２２：ＣＰＵ、２４：メモリ、２６：プログラム、１００：プリンタ、５００：サービスサーバ
【図１】
0006708012.tif 000002
【図２】
0006708012.tif 000003
【図３】
0006708012.tif 000004
【図４】
0006708012.tif 000005
【図５】
0006708012.tif 000006
【図６】
0006708012.tif 000007