(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0027】
以下、本発明の実施の形態について、図面を用いて詳細に説明する。なお、以下で説明する実施の形態は、いずれも包括的または具体的な例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序などは、一例であり、本発明を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、独立請求項に記載されていない構成要素については、任意の構成要素として説明される。
【0028】
(実施の形態)
[1−1.印刷システムの構成]
本発明の実施の形態に係るプリンタ100およびサーバ200は、
図1に示すような印刷システム1を構成している。
【0029】
図1は、実施の形態に係る印刷システム全体の概要を説明するための図である。印刷システム1では、ユーザが使用しているプリンタ100(例えば、インクジェットプリンタ)にインク400がセットされていない、または、プリンタ100にセットされているインク400の残量が所定量未満である場合に、当該ユーザが住んでいる住宅10にインク400を自動的に配送する。
【0030】
図1に示すように、印刷システム1は、プリンタ100と、外部機器としてのサーバ200と、端末装置300とのそれぞれがネットワークを介して接続されることにより構成されている。プリンタ100と端末装置300との間では、無線接続または有線接続が直接確立されてもよいし、ルータを介して無線接続または有線接続が確立されてもよいし、無線接続および有線接続にかかわらずインターネットを介して通信接続が確立されてもよい。プリンタ100およびサーバ200の間、並びに、端末装置300およびサーバ200の間では、無線接続および有線接続にかかわらずネットワークを介して通信接続が確立される。ネットワークは、インターネットのような汎用のネットワークであってもよいし、専用のネットワークであってもよい。また、ネットワークは、ローカルネットワークであってもよい。
【0031】
図1の例では、プリンタ100および端末装置300は、ユーザが住んでいる住宅10に配置されており、サーバ200は、印刷システム1の運営会社30に配置されている。プリンタ100は、最初に利用される場合には、インク400がセットされていないため、インク400の要求をサーバ200に対して行う。また、プリンタ100は、インクの残量が所定量未満である場合も同様に、インク400の要求をサーバ200に対して行う。サーバ200は、インク400の要求を受けた場合、物流システム50に当該プリンタ100を使用しているユーザが住んでいる住宅10に、当該プリンタ100に対応するインク400を配送するように指示する。
【0032】
印刷システム1は、さらに、カード会社20、インク工場40および物流システム50を含んでいてもよい。カード会社20は、ユーザがプリンタ100の利用料金の運営会社30への支払いを仲介する会社である。カード会社20は、例えば、クレジットカードを取り扱っている会社である。インク工場40は、プリンタ100に設置するインクの生産を行っている工場である。インク工場40は、具体的には、インクが充填されたインク400を生産している。物流システム50は、インク工場40で生産されたインク400を各ユーザの住宅10に配送するためのシステムである。物流システム50は、運営会社30からのインク400の発注に従って、インク工場40から予め倉庫に移動させていたインク400を発注先の住宅10に配送する。なお、物流システム50は、住宅10にインク400を配送したときに、住宅10にて空になったインク400があれば回収してもよい。また、物流システム50は、倉庫の在庫状況に応じて、インク工場40にインク400の生産を依頼する。
【0033】
[1−2.プリンタの構成]
プリンタ100のハードウェア構成について
図2を用いて説明する。
【0034】
図2は、プリンタのハードウェア構成の一例を示すブロック図である。
【0035】
図2に示すように、プリンタ100は、プロセッサ101、メモリ102、駆動モータ103、プリンタヘッド104、通信I/F105およびUSB I/F106を備える。
【0036】
プロセッサ101は、メモリ102などに記憶された制御プログラムを実行するプロセッサである。
【0037】
メモリ102は、制御プログラムなどを保持する不揮発性の記憶領域である。
【0038】
駆動モータ103は、紙送りのため、プリンタヘッド104を所定の位置まで移動させるために用いられるモータである。
【0039】
プリンタヘッド104は、インクを所定量だけ吹き出すヘッドである。
【0040】
通信I/F105は、ネットワークを介して他の装置との間でデータを送受信するネットワークインタフェースである。通信I/F105は、例えば、IEEE802.11a、b、g、n規格に適合した無線LAN(Local Area Network)インタフェースである。また、通信I/F105は、例えば、Ethernet規格に適合した有線LANインタフェースであってもよい。また、通信I/F105は、例えば、Bluetooth(登録商標)規格に適合した無線通信インタフェースであってもよい。
【0041】
USB I/F106は、USB(Universal Serial Bus)規格に適合したインタフェースである。
【0042】
[1−3.サーバの構成]
サーバ200のハードウェア構成について
図3を用いて説明する。
【0043】
図3は、サーバのハードウェア構成の一例を示すブロック図である。
【0044】
図3に示すように、サーバ200は、プロセッサ201、メモリ202、ストレージ203および通信I/F204を備える。
【0045】
プロセッサ201は、ストレージ203などに記憶された制御プログラムを実行するプロセッサである。
【0046】
メモリ202は、プロセッサ201が制御プログラムを実行するときに使用するワークエリアとして用いられる揮発性の記憶領域である。
【0047】
ストレージ203は、制御プログラム、各種データを保持する不揮発性の記憶領域である。
【0048】
通信I/F204は、例えば、有線LANインタフェースである。
【0049】
[1−4.印刷システムの機能構成]
次に、印刷システム1の機能構成について
図4を用いて説明する。
【0050】
図4は、印刷システムの機能構成の一例を示すブロック図である。
【0051】
まず、プリンタ100の機能構成について説明する。
【0052】
プリンタ100は、機能構成として、取得部111と、制御部112と、印刷部113と、通信部114と、記憶部115とを備える。
【0053】
取得部111は、印刷指示を取得する。取得部111は、例えば、端末装置300から印刷指示を取得する。取得部111は、例えば、プロセッサ101、メモリ102、通信I/F105、USB I/F106などにより実現される。
【0054】
制御部112は、サーバ200との通信の状態に基づいて、印刷量を決定する。具体的には、制御部112は、記憶部115に記憶されている第1印刷情報としてのプリントマージンと、サーバ200から取得した第2印刷情報とのいずれか一方に基づいて印刷量を決定する。第2印刷情報は、印刷可能か否かを示す印刷可否情報を含む。
【0055】
なお、通信の状態とは、サーバ200との接続が確立した状態または接続が確立していない状態を示す。また、通信の状態とは、印刷可能情報をサーバ200から受信した状態または受信していない状態を示す。ここで、印刷可能情報とは、印刷可否情報に含まれ、印刷可能であることを示している情報である。また、印刷可否情報は、印刷不可情報を含む場合がある。つまり、印刷可否情報は、印刷可能情報を含む場合、印刷可能であることを示し、印刷不可情報を含む場合、印刷不可であることを示す。
【0056】
また、プリントマージンとは、取得部111が印刷指示を取得した時において、サーバからプリンタ100が印刷可否情報を取得していない場合でも、プリンタ100が印刷できる枚数を示す第1所定値を含む。つまり、制御部112は、通信部114が印刷許可情報を取得するまでの間、プリントマージンに基づいて印刷量を決定する。
【0057】
制御部112は、印刷の回数に基づいて第1所定値を更新値に更新する。更新値は、第1所定値から印刷の回数を減じた値である。つまり、制御部112は、印刷部113が印刷を実行した時に、印刷を実行した枚数の分だけ、記憶部115が保持しているプリントマージンの値から減ずる。制御部112は、サーバ200からの要求に基づいて、更新値をサーバ200に送信する。
【0058】
制御部112は、通信部114により第2所定値を含む印刷可否情報が取得された場合、更新値を第2所定値に更新する。つまり、制御部112は、通信部114がサーバ200から受信したプリントマージンを更新するための第2所定値に、保持しているプリントマージンの値を更新する。
【0059】
制御部112は、第1所定値が所定値以上であると決定する。具体的には、制御部112は、取得部111が印刷指示を取得したときに記憶部115により保持されているプリントマージンの値が1以上であるか否かの判定を行う。なお、当該決定は、印刷の実行毎に行われてもよい。つまり、制御部112は、印刷を所定の枚数(本実施の形態では1枚)行う度に、上記の判定を行ってもよい。所定の枚数は、例えば、1枚、2枚、3枚などであってもよいし、4枚以上であってもよい。また、制御部112は、印刷指示による枚数の印刷を行う度に、上記の判定を行ってもよい。
【0060】
制御部112は、例えば、プロセッサ101、メモリ102などにより実現される。
【0061】
印刷部113は、印刷指示と、印刷量とに基づいて印刷を実行する。つまり、印刷部113は、プリントマージンに基づいて、印刷指示による印刷を実行する。印刷部113は、具体的には、制御部112がプリントマージンの第1所定値が所定値以上と決定した場合に、当該決定に基づいて印刷する。例えば、印刷部113は、プリントマージンの値が1以上であると制御部が判定した場合、印刷指示による印刷を実行する。また、印刷部113は、通信部114が受信した印刷可否情報が印刷可能を示す印刷可能情報を含んでいれば印刷を実行し、印刷可否情報が印刷不可を示す印刷不可情報を含んでいれば印刷を実行しない。具体的には、印刷部113は、印刷可否情報としてのプリントマージンを更新するための第2所定値が1以上であれば制御部112がプリントマージンの値が1以上であると判定するため、印刷を実行する。一方で、印刷部113は、印刷可否情報としての第2所定値が0であれば、制御部112がプリントマージンの値が1以上でないと判定するため、印刷を実行しない。
【0062】
つまり、印刷可否情報は、更新値が所定値以上であれば印刷可能情報を含み、更新値が所定値未満であれば印刷不可情報を含む。具体的には、印刷可否情報は、第2所定値が1以上であれば印刷可能を示し、当該第2所定値が0であれば印刷不可を示す。
【0063】
印刷部113は、例えば、プロセッサ101、メモリ102、駆動モータ103、プリンタヘッド104などにより実現される。
【0064】
ここで、記憶部115は、プリントマージンの初期値として0を保持している。よって、プリンタ100は、プリントマージンの値が更新されない限り、印刷を実行できない。
【0065】
通信部114は、サーバ200と通信を行い、サーバ200から印刷可否情報を受信する。通信部114は、サーバ200から印刷可否情報として第2所定値を受信する。つまり、通信部114は、サーバ200から第2所定値を含む印刷可否情報を取得する。通信部114は、例えば、プロセッサ101、メモリ102、通信I/F105、USB I/F106により実現される。
【0066】
記憶部115は、プリントマージンを記憶する。つまり、プリントマージンの値は、0以上の整数である。
【0067】
また、記憶部115は、プリンタ100の図示しない電源プラグから電力の供給を受けている間、プリントマージンの値を一時的に保持している。つまり、記憶部115は、電源プラグから電力の供給を受けていない間は、プリントマージンの値を0にしてもよい。
【0068】
次に、サーバ200の機能構成について説明する。
【0069】
サーバ200は、機能構成として、受信部211と、送信部212と、カウント部213と、判定部214とを備える。サーバ200は、さらに、記憶部215を備えてもよい。
【0070】
受信部211は、プリンタ100において実行された印刷のステータスを示す印刷情報を受信する。印刷情報とは、例えば、印刷履歴、プリンタパラメータ、インクパラメータなどを含む。受信部211は、例えば、プロセッサ201、メモリ202、ストレージ203、通信I/F204などにより実現される。
【0071】
カウント部213は、受信部211が受信した印刷情報に基づいて、プリンタ100による印刷の枚数をカウントする。カウント部213は、例えば、印刷情報が印刷指示ごとのステータスを示している場合には、各印刷指示において当該プリンタ100での印刷の枚数を合算することにより印刷の枚数をカウントする。カウント部213は、印刷情報が1枚ごとのステータスを示している場合には、ステータスの数をカウントすることにより印刷の枚数をカウントする。カウント部213は、例えば、プロセッサ201、メモリ202、ストレージ203などにより実現される。
【0072】
判定部214は、カウント部213によりカウントされた印刷の枚数がプリンタ100に対応づけられた印刷可能枚数未満であるか否かを判定する。判定部214は、例えば、プロセッサ201、メモリ202、ストレージ203などにより実現される。
【0073】
送信部212は、判定部214による判定の結果、カウント部213によりカウントされた印刷の枚数が印刷可能枚数未満である場合、プリントマージンを更新するための第2所定値として1以上の値を印刷可否情報として送信する。送信部212は、例えば、プロセッサ201、メモリ202、ストレージ203、通信I/F204などにより実現される。
【0074】
記憶部215は、受信部211がプリンタ100から受信した印刷情報を記憶する。
【0075】
端末装置300は、ユーザからの入力を受け付けて、プリンタ100の初期設定を行ったり、プリンタ100への印刷指示を出力したりする情報端末である。端末装置300は、例えば、デスクトップPC、ラップトップPC、タブレット端末、スマートフォンなどの情報端末である。
【0076】
[1−5.動作]
次に、印刷システム1の動作について、
図5〜
図10を用いて説明する。
【0077】
まず、プリンタ100の初期設定が行われる場合の印刷システム1を構成する各装置の動作について説明する。
【0078】
図5は、印刷システムにおけるプリンタの初期設定に係る動作を説明するためのシーケンス図である。
【0079】
まず、端末装置300では、ユーザからユーザの個人情報が入力される(S101)。例えば、ユーザは、端末装置300で起動したウェブブラウザ上において、サーバ200にアクセスし、サーバ200から提供された、個人情報の入力を受け付ける入力フォームに従って、個人情報を入力する。端末装置300において入力された個人情報は、端末装置300からサーバ200に送信される。個人情報は、例えば、住所、電話番号、メールアドレス、クレジットカード番号などである。
【0080】
サーバ200では、端末装置300から送信された個人情報を受信部211が受信し、受信した個人情報を記憶部215に記憶する(S111)。記憶部215に記憶された個人情報は、例えば、
図6に示すように、ID、パスワード、住所、電話番号、メールアドレス、クレジットカード番号、プリンタのシリアルナンバなどで構成される。ここで、IDおよびパスワードは、ユーザにより端末装置300から入力されたものであってもよいし、サーバ200が生成したものであってもよい。また、プリンタのシリアルナンバとしては、後述するステップS112で比較して一致したと判定されたプリンタのシリアルナンバが対応づけられる。ユーザにより端末装置300から入力されてもよいし、プリンタ100に入力されてもよい。なお、
図6は、サーバの記憶部に記憶されている個人情報の一例を示す図である。
【0081】
次に、端末装置300では、プリンタ100において契約プランを選択することを促すメッセージを表示し(S102)、プリンタ100に契約プランを選択させる表示を行う旨の指示を送信する。
【0082】
プリンタ100は、端末装置300からユーザにより契約プランを選択したことを示す入力を受け付ければ(S121)、図示しないディスプレイにプリンタ100のシリアルナンバを表示する(S122)。そして、プリンタ100は、選択された契約プランを示す情報(契約プラン情報)と、プリンタ100のシリアルナンバを示す情報(シリアルナンバ情報)とをサーバ200に送信する(S123)。ここで、サーバ200は、プリンタ100から取得した、契約プラン情報と、シリアルナンバ情報とを対応づけた、
図7に示すようなプリンタ情報を生成してもよい。プリンタ情報は、後述するステップS114で比較して一致したと判定したインクのシリアルナンバをさらに対応づけた情報としてもよい。なお、
図7は、サーバの記憶部に記憶されているプリンタ情報の一例を示す図である。
【0083】
一方で、端末装置300は、プリンタ100のシリアルナンバの入力を受け付ける入力フォームを表示し、ユーザからシリアルナンバの入力を受け付ける(S103)。端末装置300は、受け付けたシリアルナンバを示す情報をサーバ200に送信する。
【0084】
サーバ200は、プリンタ100から受信した情報が示すシリアルナンバと、端末装置300から受信した情報が示すシリアルナンバとを比較し、一致していれば(S112)、インクの出荷指示を物流システム50に送信する(S113)。インクの出荷指示には、例えば、ユーザの住所、プリンタ100の機種などが含まれる。これにより、物流システム50は、インクの出荷指示に従って、当該ユーザの住所に、プリンタ100の機種に対応するインクを配送する。
【0085】
次に、プリンタ100は、配送されたインクがセットされたことを検出すれば(S124)、セットされたインクのシリアルナンバを読み取って、読み取ったインクのシリアルナンバをサーバ200に通知する(S125)。
【0086】
サーバ200は、物流システム50により配送されたインクのシリアルナンバと、プリンタ100から通知されたインクのシリアルナンバとを比較し(S114)、シリアルナンバが一致していれば印刷管理処理を開始する(S115)。
【0087】
次に、プリンタ100が使用される場合の印刷システム1を構成する各装置の動作について説明する。
【0088】
図8は、印刷システムにおけるプリンタの通常使用時における印刷処理の動作を説明するためのシーケンス図である。
【0089】
まず、ユーザが端末装置300からプリンタ100に対して印刷指示を送信させることにより印刷処理が開始される(S131)。
【0090】
プリンタ100では、取得部111が端末装置300から送信された印刷指示を取得した場合、制御部112が、取得部111が印刷指示を取得したときに記憶部115により保持されているプリントマージンの値が1以上であるか否かの判定を行う(S141)。
【0091】
そして、プリンタ100は、判定の結果、プリントマージンの値が1以上である場合に、印刷を実行する(S142)。また、プリンタ100では、判定の結果、プリントマージンの値が1より小さい場合に、印刷を実行しない。つまり、プリンタ100は、プリントマージンの値が0である場合、印刷できない。なお、プリンタ100において行われる印刷処理の詳細については、後述する。また、プリンタ100は、印刷を実行した後で、プリントマージンを更新するための第2所定値の取得要求、クロックの取得要求、印刷履歴、プリンタパラメータおよびインクパラメータをサーバ200に送信する(S143)。
【0092】
第2所定値の取得要求とは、例えば、第2所定値の送信を、プリンタ100がサーバ200に要求するための情報である。第2所定値は、サーバ200がプリンタ100の印刷枚数、契約プラン、通信失敗に関する情報、通信品質などに応じて決定する値である。
【0093】
クロックの取得要求とは、例えば、サーバ200が保持している正確な時刻の送信を、サーバ200に要求するための情報である。プリンタ100は、サーバ200からクロックを取得することで、プリンタ100が保持している時刻を、サーバ200から取得した正確な時刻に更新できる。
【0094】
印刷履歴は、例えば、
図9に示すように、プリンタ100において印刷が実行されたときの、当該印刷が行われた印刷時刻、当該印刷に使用された用紙サイズ、当該印刷の枚数(枚数情報)、当該印刷がカラー印刷であったか白黒印刷であったかを示すカラー/白黒、当該印刷が成功したか失敗したかを示す印刷成功/失敗などである。つまり、印刷履歴は、プリンタ100において実行された印刷のステータスを示す印刷情報である。なお、
図9は、印刷履歴の一例を示す図である。
【0095】
プリンタパラメータは、例えば、プリンタ100が接続されているネットワークのISP(Internet Servece Provider)、当該ネットワークの速度、当該ネットワークとの接続の失敗回数または失敗している時間を示す失敗情報などである。
【0096】
インクパラメータは、プリンタ100にセットされているインクの残量を示す情報である。インクパラメータは、例えば、
図10に示すように、プリンタ100にセットされているインクの各色の残量をパーセンテージで示す情報である。なお、
図10は、インクパラメータの一例を示す図であり、プリンタ100が対応しているインクの色によって異なる。
【0097】
つまり、プリンタ100の通信部114は、ネットワークを介するサーバとの通信が失敗したことを示す失敗情報をサーバ200に送信してもよい。また、通信部114は、1回の印刷指示による印刷の枚数を示す枚数情報をサーバ200に送信してもよい。また、通信部114は、ネットワークを提供しているISPを識別する識別情報をサーバ200に送信してもよい。
【0098】
図8の説明に戻り、サーバ200は、第2所定値の取得要求、クロックの取得要求、印刷履歴、プリンタパラメータおよびインクパラメータを受信し、受信した印刷履歴、プリンタパラメータおよびインクパラメータを記憶する(S151)。
【0099】
そして、サーバ200は、第2所定値およびクロックをプリンタ100に送信する(S152)。
【0100】
プリンタ100は、記憶部115が保持しているプリントマージンの値を、受信した第2所定値に更新し、受信したクロックの値に、保持している時刻を更新することで、プリンタ100が保持している時刻をサーバ200が保持している時刻に同期させる(S144)。
【0101】
次に、プリンタ100における印刷処理の動作の詳細について説明する。
【0102】
図11は、プリンタにおける印刷処理の動作を示すフローチャートである。
【0103】
プリンタ100の取得部111は、印刷指示を取得したか否かを判定する(S161)。プリンタ100の取得部111は、印刷指示を取得するまで当該処理を繰り返す。
【0104】
プリンタ100は、取得部111が印刷指示を取得した場合(S161でYes)、制御部112は、記憶部115が保持しているプリントマージンの値が1以上であるか否かを判定する(S162)。
【0105】
プリンタ100の印刷部113は、記憶部115が保持しているプリントマージンの値が1以上であると制御部112が判定した場合(S162でYes)、1枚の印刷を実行する(S163)。
【0106】
プリンタ100の制御部112は、1枚の印刷が実行されたため、プリントマージンの値を1減らす(S164)。
【0107】
プリンタ100の制御部112は、印刷指示における残りの枚数が1以上であるか否かを判定する(S165)。プリンタ100は、印刷指示における残りの枚数が1以上であると制御部112が判定した場合(S165でYes)、ステップS162に戻り、当該印刷指示による次のページの印刷について、次のステップS162〜S164の処理を繰り返す。
【0108】
プリンタ100は、印刷指示における残りの枚数が0であると制御部112が判定した場合(S165でNo)、印刷処理を終了する。
【0109】
また、プリンタ100は、プリントマージンの値が1以上でない、つまり、プリントマージンの値が0であると制御部112が判定した場合(S162でNo)においても、印刷処理を終了する。つまり、プリンタ100は、印刷指示による印刷が途中であっても印刷処理を終了する。
【0110】
上述したように、プリンタ100は、通信接続が行われていない場合において、印刷を実行した枚数をカウントし、記憶しておく。そして、プリンタ100は、通信接続が確立した後に、プリンタ100のユーザが契約している契約プランの当月における印刷可能枚数から、記憶した、通信接続が行われていない場合において印刷を実行した枚数を減算する。なお、プリンタ100は、通信接続が確立されている場合には、印刷が実行される度に上記印刷可能枚数から印刷を実行した枚数を減算してもよいし、定期的にカウントした枚数を記憶しておき、記憶した枚数を上記印刷可能枚数から減算してもよい。
【0111】
例えば、ユーザAの印刷可能枚数の残りが10枚であり、プリントマージンが5枚である場合に、ユーザAは、端末装置300を用いて、通信接続が確立する前に3枚の印刷指示を行ったとする。この場合、プリンタ100は、3枚の印刷を5枚のプリントマージンを消費することにより行うため、プリントマージンの残りは2枚となる。この時、プリンタ100は、印刷を3枚行ったことを記憶しておく。そして、プリンタ100は、通信接続が確立された場合、10枚の印刷可能枚数から印刷を行った3枚を減じて7枚とすると共に、プリントマージンの値を更新して元の値の5枚に戻す。
【0112】
次に、プリンタ100におけるサーバ200との通信処理について説明する。
【0113】
図12は、プリンタにおける通信処理の動作を示すフローチャートである。
【0114】
プリンタ100は、所定のタイミングであるか否かを判定する(S171)。所定のタイミングとは、例えば、所定の時間(例えば、1時間)毎、印刷が1枚実行された後、記憶部115が保持しているプリントマージンの値が0になったとき、インク400がセットされたとき、時刻を失った(例えば、電源プラグが抜かれた)とき、プリンタ100にエラーが発生しているときである。
【0115】
プリンタ100は、所定のタイミングであると判定した場合(S171でYes)、サーバ200と通信を行うことで、次のステップS172〜S174を行う。具体的には、プリンタ100は、サーバ200と通信を行うことで、
図8の動作のうちステップS143、S144の処理を行う。
【0116】
プリンタ100は、ステップS172〜S174の通信処理が全て成功したか否かを判定する(S176)。なお、プリンタ100は、ステップS172〜S174の通信処理が全て成功したか否かを判定しなくてもよく、個別に判定してもよい。
【0117】
プリンタ100は、通信が全て成功したと判定した場合(S176でYes)、通信処理成功であることを記憶する(S177)。具体的には、プリンタ100は、このタイミングで行われた通信処理が成功したことを記憶する。
【0118】
また、プリンタ100は、通信処理が全て成功していないと判定した場合(S176でNo)、通信処理失敗であることを記憶する(S178)。具体的には、プリンタ100は、このタイミングで行われた通信処理が失敗したことを記憶する。ここで、記憶された情報は、上述した失敗情報として保持される。
【0119】
なお、プリンタ100は、ステップS176でYesの場合、通信処理成功を記憶しなくてもよく、ステップS176でNoの場合の通信処理失敗を記憶していればよい。
【0120】
プリンタ100は、主電源がオフにされるまでS171〜S178の動作を繰り返す(S179)。
【0121】
プリンタ100では、
図11に示す印刷処理と、
図12に示す通信処理とが並行して行われる。このため、プリンタ100では、印刷処理が行われることでプリンタ100の記憶部115が保持しているプリントマージンの値が減ったとしても、次の通信処理が行われることで、プリントマージンの値が、取得した第2所定値に更新される。つまり、後述する所定の値をプリンタ100がサーバ200から受信している間においては、印刷処理で減ったプリントマージンの値は、通信処理により所定の値まで増えることになる。
【0122】
次に、サーバ200におけるプリンタ100との通信処理について説明する。
【0123】
図13は、サーバにおける通信処理の動作を示すフローチャートである。
【0124】
サーバ200は、受信部211が印刷情報を受信したか否かを判定する(S181)。印刷情報とは、具体的には、印刷履歴を示す情報である。サーバ200は、受信部211が印刷情報を受信するまでステップS181を繰り返す。
【0125】
サーバ200のカウント部213は、受信部211が印刷情報を受信したと判定すれば(S181でYes)、受信した印刷情報に基づいて、プリンタ100で印刷される印刷枚数をカウントする(S182)。
【0126】
サーバ200の判定部214は、カウント部213によりカウントされた印刷の枚数が、予め定められた印刷可能枚数未満であるか否かを判定する(S183)。予め定められた印刷可能枚数とは、プリンタ100に対応づけられており、契約プランにより定められた枚数である。具体的には、予め定められた印刷可能枚数とは、所定の期間において印刷可能な枚数であり、例えば、プランAの場合、
図7に示すように1ヶ月で1000枚であり、プランBの場合、1ヶ月で2000枚であり、プランCの場合、1ヶ月で4000枚である。
【0127】
サーバ200の送信部212は、判定部214による判定の結果、カウント部213によりカウントされた1ヶ月間の印刷の枚数が、予め定められた印刷可能枚数未満である場合(S183でYes)、第2所定値として1以上の値を送信する(S184)。つまり、この場合、送信部212は、印刷可能であることを示す印刷可否情報をプリンタ100に送信する。なお、ステップS184のサーバ200における1以上の値である第2所定値を送信する処理の詳細については、後述する。
【0128】
サーバ200の送信部212は、判定部214による判定の結果、カウント部213によりカウントされた1ヶ月間の印刷の枚数が、予め定められた印刷可能枚数以上である場合(S183でNo)、第2所定値として0を送信する(S185)。つまり、この場合、送信部212は、印刷不可であることを示す印刷可否情報をプリンタ100に送信する。
【0129】
これらの構成により、予め定められた印刷可能枚数の上限内で、プリントマージン値を適切に設定してユーザに印刷させることができる。
【0130】
次に、サーバ200における1以上の値である第2所定値を送信する処理について説明する。
【0131】
図14は、サーバにおける1以上の値である第2所定値を送信する処理を示すフローチャートである。
【0132】
サーバ200の判定部214は、当月における予め定められた印刷可能枚数からカウント部213によりカウントされた当月における印刷枚数(累積)を減算した値である印刷可能残枚数の値が所定の値以上であるか否かを判定する(S191)。所定の値は、サーバ200により決定される値であって、プリンタ100から受信した印刷履歴およびプリンタパラメータや、契約プランなどに応じて決定される値である。
【0133】
所定の値は、失敗情報に基づいて設定される。具体的には、所定の値は、サーバ200において、サーバ200がプリンタ100から受信した失敗情報に基づいて、大きく設定される値であってもよい。つまり、サーバ200は、プリンタ100がサーバ200との通信を失敗した回数、当該通信が失敗している時間が大きいほど、所定の値を大きい値に決定する。
【0134】
このため、プリンタ100がサーバ200との間で通信接続を確立できるまでの時間に応じた値にプリントマージンが更新されるため、通信が切断された場合であっても印刷を継続できる。また、プリントマージンの値が印刷の上限値として設定されるため、プリンタがサーバから印刷可能を示す印刷可否情報を取得することなく、プリンタが必要以上に印刷を実行することを低減できる。
【0135】
また、所定の値は、サーバ200において、サーバ200がプリンタ100から受信した枚数情報が示す印刷の枚数が多いほど、大きく設定される値であってもよい。つまり、サーバ200は、プリンタ100から受信した印刷履歴に含まれる枚数情報が示す印刷の枚数が多いほど、大きい値に決定してもよい。一般的に1回の印刷指示による印刷の枚数が多いほど、単位時間当たりの印刷の枚数が多くなるため、失敗情報に基づく場合と同様の効果がいえる。
【0136】
また、所定の値は、サーバ200において、サーバ200がプリンタ100から受信した識別情報が示すISPが提供しているネットワークの品質が悪いほど、大きく設定される値であってもよい。つまり、サーバ200は、プリンタ100から受信した識別情報が示すISPが提供しているネットワークの品質が悪いほど、大きい値に決定してもよい。なお、サーバ200は、予めISP毎に当該ISPのネットワークの品質を示す情報を保持しており、当該情報を参照することにより所定の値を決定してもよい。一般的にISP毎にネットワークの品質が決まり、ネットワークの品質が悪いほど再接続時に多くの時間を要するため、失敗情報に基づく場合と同様の効果がいえる。
【0137】
また、ネットワークの品質は、ISPで判断することに限らずに、通信が切断されている状態において、通信接続の確立を試みた時点から、通信接続が確立されるまでの間の時間(接続時間)の長さに応じて判断されてもよい。つまり、ネットワークの品質は、接続時間の長さが長いほど品質が悪いと判断されてもよい。
【0138】
また、所定の値は、プリンタ100に対応づけられた契約プランの印刷可能枚数が多いほど、大きく設定される値であってもよい。つまり、サーバ200は、プリンタ100に対応づけられた契約プランの印刷可能枚数が多いほど、大きい値に決定してもよい。一般的に印刷可能枚数が多いほど、印刷の頻度が多いと考えられるため、単位時間当たりの印刷の枚数が多くなる傾向にあるため、失敗情報に基づく場合と同様の効果がいえる。なお、この場合の印刷可能枚数は、印刷可能枚数の残量であってもよい。つまり、前の月に印刷しきれなかった分の印刷可能枚数が次の月に繰り越されるキャリーオーバーがされる契約であっても、キャリーオーバー分だけ加算された印刷可能枚数に応じて、所定の値が決定されてもよい。
【0139】
また、所定の値は、印刷可能枚数とは別の契約で定められる値としてもよい。つまり、当該プリンタ100に対応する所定の値が、例えば、「10」に設定される契約プランがあってもよいし、「20」に設定される契約プランがあってもよいし、「50」に設定される契約プランがあってもよい。
【0140】
なお、サーバ200は、失敗情報、枚数情報、ISPおよび印刷可能枚数の少なくとも2以上の組み合わせによって、所定の値を決定してもよい。つまり、サーバ200は、失敗情報、枚数情報、ISPおよび印刷可能枚数のそれぞれに応じて係数を決定し、2以上の組み合わせに係る係数を所定の基準値に乗算することで所定の値を決定してもよい。
【0141】
サーバ200の送信部212は、残量が所定の値以上であると判定部214が判定した場合(S191でYes)、所定の値をプリンタ100に送信する。送信部212は、例えば、所定の値が「10」である場合には、「10」をプリンタ100に送信する。この場合、プリンタ100は、第2所定値として「10」を受信するので、プリントマージンを「10」に更新する。つまり、プリンタ100は、サーバ200から印刷可否情報を取得できない場合であっても10枚分の印刷を実行できる。
【0142】
サーバ200の送信部212は、残量が所定の値未満であると判定部214が判定した場合(S191でNo)、残量と同じ値をプリンタ100に送信する。例えば、所定の値が「10」であり、印刷可能枚数の残量が「9」となった場合、ステップS191でNoと判定されるため、送信部212は、「9」をプリンタ100に送信する。この場合、プリンタ100は、第2所定値として「9」を受信するので、プリントマージンを「9」に更新する。つまり、プリンタ100は、印刷可能枚数の残量が所定の値よりも小さい場合には、プリントマージンが当該残量と同じ値になるように設定される。
【0143】
このように、第2所定値は、ユーザの契約による印刷可能な枚数の残量が所定の値以上の場合、当該所定の値に設定され、当該残量が当該所定の値未満の場合、当該残量と同じ値に設定される。このため、プリンタ100において印刷可能枚数よりも多い枚数が印刷されてしまうことを抑制できる。
【0144】
[1−6.効果等]
実施の形態に係るプリンタ100によれば、記憶部115により保持されているプリントマージンの値に応じて、印刷部113が印刷を実行することができる。このため、サーバ200から印刷許可を受けて印刷を行うプリンタ100において、時間を要さずに印刷を実行できる。
【0145】
また、制御部112は、印刷部113が印刷を実行した時に、印刷を実行した枚数の分だけプリントマージンの値を減ずる。このため、プリンタ100は、プリントマージンの値が0になれば、印刷の実行を停止させることができる。よって、プリンタ100がサーバ200から印刷可能を示す印刷可否情報を取得していないのに、プリンタ100が必要以上に印刷を実行することを低減できる。
【0146】
また、制御部112は、印刷を1枚行う度に、判定を行う。このため、プリンタ100は、プリントマージンの値を上限として印刷を実行できる。
【0147】
また、制御部112は、通信部114が第2所定値をサーバ200から取得した時に、プリントマージンの値を第2所定値に更新する。つまり、プリンタ100は、プリントマージンの値をサーバ200において設定された値に更新できるため、サーバ200との通信接続が確立されれば、減少されたプリントマージンの値を元の値に戻すことができる。
【0148】
また、実施の形態に係るサーバ200によれば、送信した第2所定値に、プリントマージンの値をプリンタ100に対して更新させることができるため、プリンタ100の印刷の可否の制御と、サーバ200から印刷可否情報をプリンタ100が取得しなくてもプリンタ100に印刷を実行させることができる制御とを容易に行うことができる。
【0149】
[1−7.変形例1]
上記実施の形態では、記憶部115は、初期値として0を保持しているとしたが、これに限らずに、1以上の値を保持していてもよい。つまり、記憶部115は、通信部114がサーバ200との間で一度も通信を行っていなくても、プリントマージンの値を1以上の値として保持していてもよい。このため、ネットワークの品質が悪い環境下であっても、時間を要することなく、プリンタ100の最初の印刷を実行することができる。よって、容易に印刷を実行できる。
【0150】
[1−8.変形例2]
上記実施の形態に係るプリンタ100の構成に限らずに、
図15に示すような、プリントマージンの他に、ユーザの契約終了時刻を記憶する記憶部115aを備えるプリンタ100aを採用してもよい。なお、記憶部115aは、例えば、メモリ102などにより実現される。
図15は、変形例2に係るプリンタの機能構成の一例を示すブロック図である。
【0151】
この場合、制御部112は、さらに、記憶部115aに記憶されている契約終了時刻が経過したと判定した場合、プリントマージンの値を0にする。
【0152】
図16は、変形例2に係るプリンタの時刻管理処理の一例を示すフローチャートである。
【0153】
プリンタ100の制御部112は、記憶部115aに記憶されている契約終了時刻が経過したか否かを判定する(S201)。
【0154】
プリンタ100の制御部112は、契約時刻が経過したと判定すれば(S201でYes)、保持しているプリントマージンの値を0に更新する(S202)。一方で、プリンタ100の制御部112は、契約時刻が経過していないと判定すれば(S201でNo)、ステップS201を繰り返す。
【0155】
このため、プリンタ100aでは、契約期間が終了した後に、印刷が実行されることを抑制できる。
【0156】
(その他の実施の形態)
以上、本発明の実施の形態に係るプリンタについて説明したが、本発明は、この実施の形態に限定されるものではない。
【0157】
上記実施の形態にでは、プリンタ100は、インクジェットプリンタとしたが、レーザプリンタであってもよい。この場合、インクカートリッジの代わりにトナーカートリッジが配送される。
【0158】
また、上記の各装置は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクドライブ、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムとして構成されても良い。RAMまたはハードディスクドライブには、コンピュータプログラムが記憶されている。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
【0159】
さらに、上記の各装置を構成する構成要素の一部または全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしても良い。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、例えば、マイクロプロセッサ、ROM、RAMなどを含んで構成されるコンピュータシステムを含む。この場合、ROMには、コンピュータプログラムが記憶されている。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、システムLSIは、その機能を達成する。
【0160】
さらにまた、上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能なICカードまたは単体のモジュールから構成されているとしても良い。ICカードまたはモジュールは、マイクロプロセッサ、ROM、RAMなどから構成されるコンピュータシステムである。ICカードまたはモジュールは、上記の超多機能LSIを含むとしても良い。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、ICカードまたはモジュールは、その機能を達成する。このICカードまたはこのモジュールは、耐タンパ性を有するとしても良い。
【0161】
また、本発明は、上記に示す方法であるとしても良い。また、本発明は、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしても良いし、上記コンピュータプログラムからなるデジタル信号であるとしても良い。
【0162】
さらに、本発明は、上記コンピュータプログラムまたは上記デジタル信号をコンピュータ読み取り可能な非一時的な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD−ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu−ray(登録商標) Disc)、半導体メモリなどに記録したものとしても良い。また、これらの非一時的な記録媒体に記録されている上記デジタル信号であるとしても良い。
【0163】
また、本発明は、上記コンピュータプログラムまたは上記デジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしても良い。
【0164】
また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、上記メモリは、上記コンピュータプログラムを記憶しており、上記マイクロプロセッサは、上記コンピュータプログラムに従って動作するとしても良い。
【0165】
また、上記プログラムまたは上記デジタル信号を上記非一時的な記録媒体に記録して移送することにより、または上記プログラムまたは上記デジタル信号を上記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしても良い。
【0166】
さらに、上記実施の形態及び上記変形例をそれぞれ組み合わせるとしても良い。