以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
図1は、本発明の実施形態に係る画像形成装置100の構成を説明するブロック図である。
PC150は、例えば、パーソナルコンピュータで、このPC150は、ノート型であってもデスクトップ型であっても良く、或いは、シンクライアントであってもよい。また或いは、携帯電話やスマートフォンを含むモバイル端末であってもよい。PC150としては、任意の情報処理装置を採用することができる。PC150は、LAN(Local Area Network)等の通信インタフェースを介して画像形成装置100と接続されている。PC150と画像形成装置100は、ネットワークケーブルによって直接接続する形態の他、ネットワークハブを介して間接的に接続されても良い。また或いは、インターネットやイントラネット等を介して間接的に接続されてもよい。画像形成装置100とPC150の間を有線のネットワークケーブルで接続する他、無線によって接続してもよい。PC150で動作するアプリケーションは、印刷で使用する用紙のサイズや用紙種別といった印刷設定や、図形や文字を描画するコマンドを、同じくPC150上で動作するプリンタドライバに与える。これによりプリンタドライバは、その印刷設定や描画コマンドに基づいて印刷ジョブを作成し、その印刷ジョブを画像形成装置100に送信して印刷させる。
画像形成装置100は、操作部101、コントローラボード(制御部)102、電源ユニット103、ハードディスク装置(HDD)104、プリンタエンジン105を有する。また画像形成装置100には、それぞれ用紙を収容するオプションカセット111,112,113が設けられて。また、これらオプションカセット等の給紙段の他に、大量の用紙を収容できるデッキなどを更に接続してもよい。コントローラボード102は、各部に指示を出すことにより画像形成装置100全体の動作を制御している。このコントローラボード102の詳細は、図2を参照して詳しく後述する。
操作部101は、画像形成装置100に対するユーザの指示を受け付け、また画像形成装置100の状態をユーザに通知する。操作部101は、指示を受け付けるための上ボタン121、実行ボタン122、下ボタン123、状態を通知するための表示部124を備える。上ボタン121、下ボタン123は表示部124の画面でカーソルを上下方向に移動させて項目を選択するための操作ボタンである。実行ボタン122は、カーソルで指示されている項目を選択、或いは実行させるための操作ボタンである。尚、この操作部101にタッチパネル機能を設けることにより、表示部124に表示されている項目をユーザが直接タッチすることで、所望の機能や指示を入力するようにしても良い。また音声入力などによる操作指示を受け付ける手段等を設けても良い。
HDD104は、コントローラボード102のCPU201(図2)により実行されるプログラムを記憶しており、またPC150から受信した印刷ジョブ等を一時的に格納するのに使用される。更に、HDD104は、印刷ジョブに基づいてレンダリングした画像データをプリンタエンジン105で印刷する前に一時的に保持するのにも使用される。尚、HDD104は、例えばソリッドステートドライブ(SSD)等のストレージモジュールによって実現しても良い。
電源ユニット103は、商用のAC電源に接続され、コントローラボード102やプリンタエンジン105に電力を供給するための電源である。プリンタエンジン105は、コントローラボード102から指示された印刷設定に従って給紙段から用紙を給紙し、コントローラボード102から供給された画像データに従って、その用紙に画像を印刷する。プリンタエンジン105は、オプションカセット111〜113を制御でき、画像形成装置としては一体として動作する。これらの詳細は図3を参照して説明する。
USBメモリ130は、例えば印刷ジョブを格納するために使用される。この画像形成装置100のユーザは、印刷ジョブを保存しているUSBメモリ130を画像形成装置100に装着し、操作部101から指示を与えることにより、その保存されている印刷ジョブによる印刷処理を実行させる形態をとることもできる。この場合、操作部101で行われた印刷設定に基づいて画像形成装置100で印刷ジョブが生成される。尚、実施形態に係る画像形成装置100は、印刷機能に特化したプリンタに限られるものではなく、例えばスキャナ機能やFAX機能なども有する複合機であってもよい。
また、コントローラボード102とプリンタエンジン105とが別の筐体に分かれている構成を採ることもできる(所謂、プリンタサーバを伴う画像形成システムの構成)。またコントローラボード102の担う機能の一部をクラウドサービス上のサーバが担う構成でもよい。またPC150がコントローラボード102に相当する機能を担い、画像形成装置100はプリンタエンジン105の制御に特化している構成でもよい。
図2は、実施形態に係る画像形成装置100のコントローラボード102の構成を説明するブロック図である。尚、このコントローラボード102には、チップセット、バスブリッジ、クロックジェネレータ等のCPU周辺のハードウェアが多数含まれているが、説明が煩雑となるため、本図では省略して示している。
コントローラボード102には、SOC200、ROM202、不揮発性メモリ203、USBコントローラ204、ディスクコントローラ205、ネットワークコントローラ206、リセット回路208、RAM250が含まれる。更に、コントローラボード102には、電源監視H/W(ハードウェア)222、画像処理プロセッサ223、デバイスコントローラ224も含まれる。
SOC200はSystem−on−a−chip技術で実装される集積回路であり、CPU201とCPU221とを有する。SOC200に含まれるCPU201とCPU221は内部バスを通して、種々の情報を共有・送信することができる。CPU201はネットワークコントローラ206を介してデータを送受信したり、そのデータを処理したりするためのメインCPUである。一方、CPU221は、プリンタエンジン105をリアルタイムで制御するためのサブCPUである。尚、本実施形態では、2つのCPUに処理を分担させる構成で説明するが、必ずしもこの制約に縛られるものではなく、例えば1つのCPUによって実現したり、3つ以上のCPUによって実現する構成であっても良い。
CPU201は、SOC200に含まれる各モジュールを制御するための中央演算処理装置である。ROM202は、CPU201の初期プログラムを記憶している。ROM202には、画像形成装置100に電源投入した直後にCPU201によって読出されて実行される初期プログラム(ブートプログラム)が格納されている。この初期プログラムには、CPU201がHDD104からプログラムを読み出してRAM250に展開するのに必要な命令が含まれている。不揮発性メモリ203は、画像形成装置100の設定情報や、印刷に関連するカウンタ情報などを記憶している。不揮発性メモリ203は、画像形成装置100の電源が切断されても情報を保持し、再度電源が投入されるとCPU200は不揮発性メモリ203にアクセスして、電源断前の値を参照することができる。USBコントローラ204は、Universal Serial Busで接続されたデバイス(ここではUSBメモリ130)との通信を制御する。実施形態では、USBメモリ130に対するデータの入出力を制御している。別の形態としては、PC150と画像形成装置100をUSBケーブルで接続し、画像形成装置100がUSBコントローラ204で入出力を制御することで、PC150の周辺機器として動作することもできる。ディスクコントローラ205は、HDD104との間の入出力を制御する。ネットワークコントローラ206は、ネットワークケーブルを介してPC150との間でデータの入出力を行う。尚、ネットワークコントローラ206は、前述したように、有線によってPC150と接続するほか、無線によって接続する形態をとることもできる。リセット回路208は、コントローラボード102のハードウェア(H/W)をリセットするための回路である。
CPU221は、SOC200に含まれる各モジュールを制御するための中央演算処理装置である。電源監視H/W222は、この画像形成装置100の電源制御を監視している。CPU221が正常に動作できる場合、CPU221の指示に従い、リセット回路208を介して画像形成装置100全体にリセットを掛けることが可能である。また、CPU221に電源が供給されていない状態では、不図示の電源スイッチの入力に従ってコントローラボード102の電源を投入することができる。電源監視H/W222を、別のCPUによって動作する更に小規模なシステムによって実現しても良い。画像処理プロセッサ223は、リアルタイムでデジタル画像処理を行う。例えば、画像処理プロセッサ223は、印刷ジョブを解析して得られたDisplayList(中間データ)を、コントーン画像に変換する画像処理を行う。また、画像処理プロセッサ223はコントーン画像を基にプリンタエンジン150で印刷可能なハーフトーンで表現された画像データを生成するディザリング処理をするための画像処理を行う。また画像処理プロセッサ223は、画像データを面順次に並び変える処理も行う。そのほか、また画像プロセッサ223はコントーン画像に対して、ユーザにとって望ましい色味に調整する画像処理を行ってもよい。この画像処理プロセッサ223は、ASIC(application specific integrated circuit)によって実現できる。或いは、画像処理プロセッサ223は、FPGA(field−programmable gate array)によっても実現できる。尚、実施形態では、画像処理プロセッサ223によってリアルタイムデジタル画像処理を行う前提で説明する。これに対して、CPU201やCPU221でその一部或いは全部を担う構成で実現しても良い。デバイスコントローラ224は、プリンタエンジン105とのインタフェースを制御している。RAM250は、CPU201とCPU221のそれぞれからアクセス可能な主記憶メモリである。画像形成装置100の電源が投入されると、CPU201は、ROM202の初期プログラムをRAM250に展開する。そしてCPU201は、RAM250に展開した初期プログラムを実行してHDD104に格納されたCPU201とCPU221のための主プログラムをRAM250に展開する。そしてCPU201とCPU221はRAM250に展開されたそれぞれのプログラムを実行することにより、画像形成装置100としての機能を実現している。その他、RAM250は、初期プログラムや主プログラムを実行する際の一時的なワークメモリとしても用いられる。
尚、実施形態では、CPU201とCPU221でRAM250を共有する形態に基づいて説明をしているが、その他CPU201専用のRAMやCPU221専用のRAMを別に設ける形態で実現することもできる。また実施形態では、不揮発性メモリ203やUSBコントローラ204、ディスクコントローラ205、ネットワークコントローラ206をCPU201で制御する構成で説明しているが、この一部或いは全部をCPU221で制御する構成であっても良い。
図3は、実施形態に係る画像形成装置100のプリンタエンジン105の構成を説明する断面図である。図3(A)は画像形成装置100全体の断面図、図3(B)は画像形成ユニット303の断面図、そして図3(C)はドラム周辺を拡大して示す断面図である。尚、ここでは、プリンタエンジン105は、イエロー、マゼンタ、シアン、ブラックの4色のトナーによってカラー印刷できるプリンタエンジンとして説明している。しかし、ブラックトナー1色、或いは、レッドやブルー、グレイなどのトナーも併用して、表現できる色空間をより豊かにしたプリンタエンジン、或いは、クリアトナーを併用して印刷物の表面に質感を多彩に表現できるリンタエンジンであっても良い。
この画像形成装置100には、上述のオプションカセット111〜113に加えて、給紙カセット302が設けられており、これら給紙カセット302とオプションカセット111〜113は同等に扱われる。また給紙トレイ301は、用紙を手差しで給紙するための給紙トレイである。このプリンタエンジン105には、電子写真プロセスにより用紙上にトナーで画像を形成する画像形成ユニット303、定着ローラ308と加圧ローラ309を含み、用紙上のトナーを定着するための定着器ユニットとが含まれる。また、後述するメモリタグと通信するためのメモリタグインタフェース330a〜330d(図3(B))が含まれる。給紙カセット302やオプションカセット111〜113から給紙するときの用紙の搬送パスは、片面印刷であればP1、P2、P3の順である。また両面印刷であれば、P1、P2、P3の順に搬送され、P3の後にスイッチバックしてP6、P2、P3の順に搬送されて機外へ排出される。304は排紙トレイである。
次に図3(B)(C)を参照して画像形成ユニット303の構成について説明する。
トナーカートリッジ310a〜dは、それぞれイエロー、マゼンタ、シアン、ブラックのトナーカートリッジである。ここでa〜dは、イエロー、マゼンタ、シアン、ブラック用の転写ローラ、トナーカートリッジの構成及びメモリタグインタフェースの構成に対応している。従って、以下の説明では、イエローに対応する構成で説明するが、その他の色の構成に関しても同様にして実現されているため、それら他の色の構成に関する説明を省略する。
トナーカートリッジ310aは、帯電ローラ311aを含む帯電器と、現像ローラ311aを含む現像器と、感光ドラム312a、メモリタグ314a、トナー残量センサ315aとを有している。帯電器は、コントローラボード102から送信されたイエローの画像データに基づいて感光ドラム312aに静電潜像を形成し、現像器は、感光ドラム312上のイエローの画像を現像する。メモリタグ314aは、このカートリッジのトナー(消耗材)の使用実績などの情報を記憶している。尚、このメモリタグ314aは、シリアル通信で接続するフラッシュメモリ、或いは近距離無線通信で接続可能なマイコンでも実現できる。この場合、そのマイコンがコマンドを受け取った後、そのマイコンと接続されているフラッシュメモリに対して書き込みや読み込みが行われる。
感光ドラム312a上で現像されたイエローの画像は、一次転写ローラ307aにより中間転写ベルト306に転写される。他の色の画像も同様にして、各対応する転写ローラ307b〜307dにより転写ベルト306上に重畳して転写される。こうして中間転写ベルト306上で形成されたカラー画像は、不図示の二次転写ローラにより、給紙カセットなどから給紙された用紙に転写される。
尚、トナーカートリッジ310a〜dは、印刷制御のためのプリンタエンジン105とのインタフェースと、メモリタグ通信のためのプリンタエンジン105とのインタフェースがそれぞれ独立して実装されていても良い。また或いは、印刷制御のためのプリンタエンジン105とのインタフェースを介して、メモリタグと間接的に通信できるように構成されていても良い。
トナー残量センサ315aは、トナーカートリッジ310a内のトナーの残量を検知するためのセンサで、例えば光学センサや超音波センサによって実現できる。トナー残量センサ315aは、他の種々のセンサを用いて構成されても良い。
次に、印刷時のプリンタエンジン105の制御について概略を説明する。
プリンタエンジン105は、コントローラボード102からの指示に従って、コントローラボード102から送信された画像データに基づいて感光ドラム313a〜d上で画像を現像し、中間転写ベルト306に重畳して転写する。プリンタエンジン105は、給紙カセット302、111〜113のいずれかから用紙を給紙し、中間転写ベルト306に一次転写されたトナー画像を、P1を経由してP2を搬送中の用紙に二次転写する。そしてプリンタエンジン105は、そのトナー画像が転写された用紙を定着ローラ308と加圧ローラ309を有する定着器に搬送してトナーを用紙の表面に定着させる。そして最後にプリンタエンジン105は、トナー像を定着した用紙をP3を経由して排紙トレイ304へ排出する。またプリンタエンジン105は、各給紙カセットに設けられた用紙残量センサによって、各対応する給紙カセットに収容されている用紙の残量を検知できる。
図4は、実施形態に係る画像形成装置100のメインCPU201とサブCPU221が実行するそれぞれの主プログラムに含まれるソフトウェアモジュールの構成を説明するブロック図である。CPU201は、RAM250に展開されたメインプログラム400を実行し、CPU221は、RAM250に展開されたサブプログラム430を実行する。
メインプログラム400は、メインジョブ制御部401、印刷ジョブ受信部402、記憶装置制御部403、印刷ジョブ解析部404、ユーザ操作受付部405、消耗品ログ管理部406、印刷ジョブ生成部407を含む。メインジョブ制御部401は、印刷ジョブを実行するために必要な各ソフトウェアモジュールを制御し、各モジュールに対して必要な情報を通知するとともに、サブプログラム430との通信を行う。印刷ジョブ受信部402は、ネットワークコントローラ206或いは記憶装置制御部403、印刷ジョブ生成部407から印刷ジョブを受信し、記憶装置制御部403を介してHDD104に格納する。記憶装置制御部403は、USBコントローラ204及びディスクコントローラ205を制御し、USBメモリ130やHDD104とのデータ送受信制御を行う。印刷ジョブ解析部404は、印刷ジョブを解析して中間データを作成する。ユーザ操作受付部405は、操作部101を介したユーザの操作により、各給紙段の用紙サイズや用紙種別といった設定などを受け付ける。消耗品ログ管理部406は、カートリッジの使用実績を、後述する消耗品ログ情報や、消耗品ログ記録として記録する。印刷ジョブ生成部407は、消耗品ログ情報の内容に基づいて、消耗品ログを印刷する印刷ジョブを生成する。尚、その他に上記の各給紙段の用紙サイズや用紙種別といった設定情報などをレポートとして印刷するジョブを生成する機能などを有していても良い。
サブプログラム430は、サブジョブ制御部431、電源制御部432、画像処理制御部433、デバイス制御部434を含む。サブジョブ制御部431は、印刷ジョブを実行するために必要な各ソフトウェアモジュールを制御し、各モジュールに対して必要な情報を通知するとともに、メインプログラム400との通信を行う。電源制御部432は、電源監視H/W222を制御する。画像処理制御部433は、印刷用の画像データを生成するために画像処理プロセッサ223を制御する。デバイス制御部434は、印刷用の画像データに従って用紙に画像を印刷するためにプリンタエンジン105を制御する。
尚、実施形態では、サブプログラム430がデバイス制御部434を有しているが、プリンタエンジン105に更に専用のCPUを設け、プリンタエンジン105のデバイス制御部と通信して後述する処理を実施するようにしても良い。
図5は、実施形1に係る画像形成装置100におけるレポート印刷機能を実行するときに操作部101の表示部124に表示される画面の遷移を説明する図である。
画像形成装置100が起動すると、ユーザ操作受付部405は、表示部124にジョブ待ち画面500を表示する。このジョブ待ち画面500を表示中に、ユーザ操作受付部405が上ボタン121が押されたことを検知すると、表示部124の表示を設定メニュー画面530に遷移させる。またジョブ待ち画面500を表示中に、ユーザ操作受付部405が下ボタン123が押されたことを検知すると、表示部124の表示をユーティリティ画面510に遷移させる。更に、ジョブ待ち画面500を表示中に、ユーザ操作受付部405が上ボタン121と下ボタン123とが交互に10回されたことを検知すると、表示部124の表示をサービスモード画面551に遷移させる。
ユーティリティ画面510の表示開始時は、カーソルが「カウンタ確認」に位置している。この状態で下ボタン123が押されたことを検知すると、ユーティリティ画面510で示すように、ユーザ操作受付部405はその下の「消耗品確認」にカーソルを移動させる。そして、この状態でユーザ操作受付部405が実行ボタン122が押されたことを検知すると、表示部124の表示を消耗品確認画面511に遷移させる。この消耗品確認画面511の表示開始時は、「消耗品ログプリント」の位置にカーソルが位置している。この状態で実行ボタン122が押下されると消耗品ログプリント画面512に遷移する。この消耗品ログプリント画面512では、「<実行>」の行にカーソルが位置している。この状態で実行ボタン122が押されると、ユーザ操作受付部405は、印刷ジョブ生成部407に消耗品ログプリントの実行を指示するとともに、「実行しました」画面513に遷移する。このとき印刷ジョブ生成部407が消耗品ログプリントの印刷ジョブを生成し、印刷ジョブ解析部404が、消耗品ログプリントの印刷ジョブを解析し始めると、ユーザ操作受付部405は、表示部124の表示を「印刷中です」画面521に遷移させる。そして、印刷ジョブ解析部404が消耗品ログプリントの印刷ジョブの解析を完了し、デバイス制御部434がプリンタエンジン105を制御して消耗品ログの印刷を終了する。これによりユーザ操作受付部405は、表示部124の表示を消耗品ログプリント画面512に遷移させる。
また、サービスモード画面551の表示開始時は、カーソルが「消耗品ログ(詳細)」に位置している。この状態で実行ボタン122が押されると、ユーザ操作受付部405は、表示部124の表示を消耗品ログ(詳細)画面552に遷移させる。この消耗品ログ(詳細)画面552が表示されたときは、カーソルが「<実行>」の行に位置している。この状態で実行ボタン122が押されると、ユーザ操作受付部405は、印刷ジョブ生成部407に消耗品ログプリント(詳細)の実行を指示するとともに、「実行しました」画面533に遷移する。これにより印刷ジョブ生成部407が、消耗品ログ(詳細)プリントの印刷ジョブを生成し、印刷ジョブ解析部404が消耗品ログ(詳細)プリントの印刷ジョブを解析し始める。そしてユーザ操作受付部405は、表示部124の表示を「印刷中です」画面554に遷移させる。そして印刷ジョブ解析部404が消耗品ログ(詳細)プリントの印刷ジョブを解析を完了し、デバイス制御部434がプリンタエンジン105を制御して消耗品ログ(詳細)の印刷を終了する。これによりユーザ操作受付部405は、表示部124の表示を消耗品ログ(詳細)画面552に遷移させる。
尚、これら画面の遷移は、あくまでも一例を示すもので、メニュー階層や表示されるメッセージの文言の違い、画面を構成する画像などは本発明の本質的な問題とは関係がなく、適宜、任意の構成を適用しても良い。例えば、サービスモード画面551に、消耗品ログプリント機能を実行できる、例えば消耗品の項目を含ませても良い。
図6は、実施形態に係る画像形成装置100による消耗品ログの印刷例を説明する図である。実施形態では、前述したように、消耗品ログプリントと消耗品ログ(詳細)プリントの2種類の消耗品ログの印刷例がある。尚、この消耗品ログの印刷例はあくまでも一例であり、例えばいずれか1種類のみであっても、更に3種類以上のログ印刷が可能であっても良い。
図6(A)は、一般ユーザの指示による簡易版の消耗品ログの一例である、カートリッジの交換ログの印刷例を示す図である。図6(B)は、サービスマンの指示により印刷される詳細版の消耗品ログ(詳細)の一例である、カートリッジの交換ログの印刷例を示す図である。尚、ここでは複数色のトナーカートリッジを装着できる画像形成装置100での印刷例を示しているため、1ページ内にY,M、C、K各カートリッジの消耗品ログを印刷した例で示している。これに対して、モノクロエンジンの画像形成装置の場合は、1ページに、Kカートリッジの消耗品ログ情報のみを印刷する。また色ごとに1ページを割り付けるレイアウト等を用いても良い。
この消耗品ログプリントでは、1レコード当たりの情報量が抑えられるので、用紙を節約するために2カラムで印刷する。図6(C)は、消耗品ログプリントの一例を示す図である。図6(C)において、左から、カートリッジのシリアル番号、カートリッジのサイズ、使用開始情報、最新利用情報、そしてカートリッジの種別情報が含まれる。使用開始情報と最新利用情報には、その日時、そのカートリッジを用いて印刷したページの累積枚数であるページカウント、そして残量が含まれている。
ここでカートリッジのシリアル番号は、8桁の整数値で表わされるカートリッジ固有の番号である。カートリッジのサイズ情報で、「スタータ」はスターターカートリッジ、「標準」は標準サイズのカートリッジ、「ラージ」は大容量のカートリッジ、「不明」は容量サイズが不明のカートリッジであることを表わしている。カートリッジの残量は、カートリッジのトナーの残量、ドラム、現像器の寿命を基に計算した結果であり、100%は新品、0%は寿命に到達していて使用不可を表わす。カートリッジの種別は、「純正」は純正カートリッジ、「OEM」はOEMカートリッジ、「タグ無」はタグ無しカートリッジ、「コピータグ」はコピータグカートリッジを表わしている。
消耗品ログ(詳細)プリントでは、1レコードあたりの情報量が多いため、1カラムで印刷する。図6(D)は、消耗品ログ(詳細)プリントの一例を示す図である。ここでは使用開始情報と最新利用情報に対して、図6(C)に対して更に加えて、トナー、ドラム、現像器の寿命及び残量情報が印刷されている。
図7は、実施形態に係る画像形成装置100における消耗品ログ機能の関係を模式化して示す図である。
最初に消耗品ログ更新の流れを説明する。印刷ジョブ解析部404からの印刷指示に基づいて印刷処理が行われる。このとき721で、デバイス制御部414から消耗品の消費検知或いは消耗品の交換検知を行う。これによりメインジョブ制御部401は722で、消耗品ログ情報レコード追加及び更新の依頼を、消耗品ログ管理部406に通知する。そして消耗品ログ管理部406は723で、RAM205の消耗品ログ情報701〜704のレコードを追加、更新する。このとき同時に、エラータグが備わったカートリッジの累積使用回数や、タグの無いカートリッジの累積使用回数を、カートリッジ累積使用回数情報705に記録又は更新する。また消耗品ログ管理部406は724で、HDD104の消耗品ログ記録711〜714のレコードを追加・更新する。このとき同時に、エラータグの備わったカートリッジの累積使用回数や、タグの無いカートリッジの累積使用回数を、カートリッジ累積使用回数記録715に記録又は更新する。
消耗品ログ情報701〜704やカートリッジ累積使用回数情報705は、RAM205に保持されていて、高速にアクセス可能である半面、電源断時に情報が失われる。一方、消耗品ログ記録711〜714やカートリッジ累積使用回数715は、HDD104に保持されているため、電源断時にも保持される半面、アクセス速度は遅い。消耗品ログ管理部406は、このように二種類の記憶装置を併用して記憶することにより、アクセス速度と電源断後の情報の保持とを両立させている。尚、ここではHDD104に情報を保持しているが、例えば不揮発性メモリ203に保持してもよい。この場合は更に、RAM205をキャッシュメモリとして用いることで、不揮発性メモリ203の書き込み回数を抑制できる効果もある。
次に、消耗品ログプリント実行の流れを説明する。725で、ユーザからの消耗品ログのプリント指示をユーザ操作受付部405が受け取ると、ユーザ操作受付部405は、印刷ジョブ生成部407に対して、消耗品ログプリントの印刷ジョブの生成を指示する。これにより印刷ジョブ生成部407は727で、消耗品ログ管理部406に対して、消耗品ログ情報の取得を要求する。これにより消耗品ログ管理部406は728で、RAM205の消耗品ログ情報701〜704を取得して印刷ジョブ生成部407に通知する。これにより印刷ジョブ生成部407は印刷ジョブを生成し、729で消耗品ログプリントジョブとしてメインジョブ制御部401に送信する。こうしてメインジョブ制御部401は730で、印刷ジョブ受信部402に新たな印刷ジョブが来たことを通知する。そして印刷ジョブ受信部402は731で、印刷ジョブ解析部404に対して消耗品ログプリントジョブの解析処理を指示する。そしてこれ以後の印刷処理は、通常の印刷ジョブの場合と同等であるため、その説明を省略する。
このように、ユーザからの印刷指示に基づいて、印刷ジョブ生成部407が中心となって、消耗品ログプリントのための印刷ジョブの生成と印刷処理が行われる。
図8は、実施形態に係る画像形成装置100の消耗品ログ機能のクラスを説明する図である。図8では前述の図と共通する部分は同じ参照番号で示している。
メインジョブ制御部401は、コピータグのシリアル番号リスト851を有する。コピータグのシリアル番号リスト851は、市場に流通しているコピータグのシリアル番号のリストであり、静的な情報であっても、動的に更新可能な情報であってもよい。本実施形態では、メモリタグから情報の読み込みができ、かつ、トナー残量情報に矛盾が無く、リフィルされた形跡が無いカートリッジであっても、このリストに記載されているシリアル番号を持つカートリッジにはコピータグが装着されているものとみなす。
消耗品ログ管理部406は、消耗品ログ情報の取得関数、消耗品ログ情報の追加・更新関数、消耗品ログ記録のストアやロードを行う関数を備える。また消耗品ログ管理部406は、消耗品ログ情報701〜704や消耗品ログ記録711〜714、カートリッジ累積使用回数情報705、カートリッジ累積使用回数記録715を保持する。消耗品ログ情報701〜704、及び、消耗品ログ記録711〜714は、消耗品ログ構造811を継承する。消耗品ログ情報701〜704は、消耗品ログ情報を取得する関数、レコードを追加・更新する関数を備える。また消耗品ログ記録711〜714は、HDD104から消耗品ログに関する情報をロードしたり、HDD104にストアする関数を有する。これにより、消耗品ログ記録711〜714に保持されている情報が消耗品ログ情報701〜704に復元されたり、或いは、消耗品ログ情報701〜704に保持されている情報を消耗品ログ記録711〜714として記録することができる。
消耗品ログ構造811は、消耗品ログ情報701〜704及び消耗品ログ記録711〜714で共通の情報を管理するクラスであり、複数のレコード情報812を有する。1つのレコード情報には、発生日時、カートリッジのシリアル番号、カートリッジの累積印刷枚数を示すページカウントの情報を有する。このレコード情報は更に、カートリッジの残量、トナー残量、ドラム寿命、現像器の寿命等の情報も有する。更に、このレコードが追加された時のイベント種別821、備わっているメモリタグの種別を表すタグ種別822、カートリッジのサイズを示すサイズ種別823を有する。イベント種別821は、カートリッジの装着時に追加したレコードであるか、消費時に追加したレコードであるかを示す。タグ種別822は、純正タグ、OEMタグ、エラータグ、コピータグ、タグ無しのいずれかを含む。ここで純正タグは、画像形成装置のメーカが供給しているカートリッジに装着されたメモリタグを示す。OEMタグは、それ以外のOEMとして販売しているメーカが供給しているカートリッジに装着されたメモリタグを示す。エラータグは、トナーの残量情報と使用不可情報(トナーアウト情報)との間で矛盾が生じているメモリタグを示す。タグなしは、カートリッジにタグが装着されていない場合を示す。またコピータグは特殊なメモリタグで、純正メモリタグやOEMタグに保持されている情報をコピーして作成されたタグを示す。実施形態では、これらを識別して情報を収集することにより、調査に必要な情報を確実に得ることができる。サイズ種別823は、スタータサイズか、標準サイズであるか、大容量サイズであるかを示す。上述のカートリッジの分類は、あくまでも1つの例であり、更に異なる情報を有していてもよい。
カートリッジ累積使用回数情報705と、カートリッジ累積使用回数記録715は、累積使用回数構造831を継承する。カートリッジ累積使用回数情報705は、それぞれのカートリッジの累積使用回数を取得し、また更新する関数を備える。カートリッジ累積使用回数記録715は、HDD104からカートリッジ累積使用回数に関する情報をロードしたり、HDD104にストアする関数を有する。これにより、カートリッジ累積使用回数情報705をカートリッジ累積使用回数記録715に記録したり、カートリッジ累積使用回数記録715の累積使用回数に関する情報を、カートリッジ累積使用回数情報705に復元することができる。累積使用回数構造831は、この画像形成装置100で使用されたカートリッジの累積使用回数を管理するためのクラスである。実施形態では、エラータグカートリッジが使われた回数と、タグ無しカートリッジが使われた回数とを記録している。
デバイス制御部434は、給紙や印刷といった機能のほか、カートリッジの情報を取得する機能を有する。その他、印刷した際にその印刷条件に基づいて、カートリッジに含まれる各消耗部品の寿命や残量を更新する処理も行うが、その詳細については割愛する。
プリンタエンジン105は、デバイス制御部434からの指示に従って給紙や印刷等を実行する。また、カートリッジ情報の取得や寿命や残量などの更新機能も有する。トナーカートリッジ310a〜dは、カートリッジサイズ情報を有する。即ち、そのカートリッジがスタータサイズであるか、標準サイズであるか、大容量サイズであるかを情報として有する。尚、例えばカートリッジサイズは、印刷可能枚数で表現したり、或いは消耗材量という形で表現することもできる。またトナーカートリッジ310a〜dは、シリアル番号を取得する機能を有する。累積印刷枚数であるページカウントや、カートリッジ本体、トナー、ドラム、現像器といった部品の寿命や残量を取得したり、更新する機能を有する。またトナーアウトやトナーロー(トナー量が所定量以下)が発生しているかを示すフラグを取得したり、更新する機能を有する。ここでトナーアウトとは、そのカートリッジにおいて消耗材の残量が「0」になった場合にフラグをオンし、そのカートリッジでは印刷を継続できないことを示す。トナーローとは、消耗材の残量が一定量未満となった場合にフラグをオンし、そのカートリッジは交換準備が必要であることを示す。またトナーカートリッジ310a〜dは、メモリタグ314a〜dを有する。メモリタグ314a〜dは、トナーカートリッジのシリアル番号や、累積印刷枚数であるページカウント、カートリッジの寿命、トナー、ドラム、現像器の寿命や残量を示す情報を保持する。またトナーアウト情報、トナーローの情報も有する。トナーカートリッジ310a〜dは更に、トナー残量センサ315a〜dも有する。
図9は、実施形態に係る画像形成装置100のHDD104に保持される情報の形式を模式図として表わした図である。
カートリッジ累積使用回数記録715を含むヘッダ部分と、消耗品ログ記録711〜714を含むボディ部分を含んでいる。
図9(A)はヘッダ部分を示し、このヘッダ部分は、マジックナンバー901、カートリッジ各色のデータ数902、累積使用回数記録903とを有している。マジックナンバー901は、当該情報が正しく格納されているかを判断するための情報である。これに該当しない情報が記載されていた場合には未初期化であると判断する。また、このマジックナンバー901にバージョン情報を載せることで、将来機能拡張をした場合に旧バージョンの情報が記録されているのか、新バージョンの情報が記録されているのかを判別する情報として活用してもよい。ここではシンプルに「CRG−LOG」という文字列がマジックナンバーとして保持されているものとする。
ヘッダ部分に含まれるカートリッジ各色のデータ数902は、イエロー、マゼンダ、シアン、ブラックの4色分のレコード情報812の数である。またカートリッジ累積使用回数903は、この画像形成装置100でエラータグカートリッジが使用された回数の累計、及び、タグ無しカートリッジが使用された回数の累計を保持する。その他の領域は予約領域である。
図9(B)はボディ部分を示し、レコード情報812を意味するレコードの配列によって表現される。レコードは、レコードのイベントタイプ情報、カートリッジの寿命(残量)、トナー残量、ドラム寿命、現像器寿命を含む。またレコードは、そのレコードを追加した時の日時情報、タグ種別情報、サイズ情報、カートリッジのページカウント情報、カートリッジのシリアル番号情報も含む。尚、以下の説明では、プログラミングで用いる表現方法に従い、配列の先頭を0バイト目という表記を用いて、説明する。また、「0x」というprefixを用いて16進数であることを示す。
レコードの先頭0x0バイト目の最上位1ビット目は、イベントタイプ情報である。イベントタイプ情報は、「0x0」であれば装着時の情報であり、「0x1」であれば消費時の情報を意味する。レコードの先頭から0x0〜0x3バイト目の2〜7ビット目は、各種寿命や残量情報である。0バイト目はカートリッジの寿命を意味する。1バイト目はトナー残量、2バイト目はドラム寿命、3バイト目は現像器の寿命を意味する。これらの寿命や残量は、トナーカートリッジ310a〜dから取得した寿命や残量情報であり、パーセント単位で0〜100の値域によって表現する。レコードの先頭0x4〜0x7バイト目は日時情報である。ここでは1970年1月1日からの経過秒によって表現する。先頭から0x8バイト目の上位4ビットはタグ種別を表す。タグ種別は「0x0」は純正品カートリッジ、「0x1」はOEMカートリッジ、「0x7」はエラータグカートリッジ、「0x8」はコピータグカートリッジ、「0xf」はタグ無しカートリッジを示す。また先頭から0x8バイト目の下位4ビットはサイズ種別を示す。サイズ種別は「0」は標準サイズカートリッジ、「1」はスタータカートリッジ、「2」は大容量カートリッジを示す。更に、先頭から0x9〜0xBバイト目は、カートリッジのページカウント情報を示す。また先頭から0xC〜0xFバイト目はカートリッジのシリアル番号を示す。これらはトナーカートリッジ310a〜dから取得した値である。
図9(C)(D)は、上記情報のHDD104における具体的な配置例を示す図である。
図9(C)は、カラーの画像形成装置を想定し、ヘッダ部、イエローカートリッジのレコード、マゼンタカートリッジのレコード、シアンカートリッジのレコード、ブラックカートリッジのレコードの順に、それぞれ400レコードずつ格納した例を示す。図9(D)は、モノクロの画像形成装置を想定し、ヘッダ部とブラックカートリッジのレコードを1600件格納した例である。
これらの例は、あくまでも実現形態の一例を示したもので、各カートリッジの順列やデータの形式は任意のものを利用できる。例えば暗号化やスクランブル化を行い、一般ユーザがそのままでは見られない形として保持しても良く、或いは圧縮して保持する形態をとってもよい。また実施形態のように、データ数をヘッダ情報に含めることにより予めデータサイズを把握できるようにする以外にも、ヘッダ情報にデータ数を含めず、各カートリッジのレコード部分の先頭にデータ件数を保持する形態であってもよい。
また、トナー残量やドラム寿命、現像器寿命をパーセントで表現しているが、これを残りページ数などの別の単位系で表現して格納しても良い。また、カートリッジのシリアル番号として32ビットの整数を用いる他、文字列などを保持してもよい。
尚、実施形態では、画像形成装置の本体の記憶領域にこれら情報を保持する例で説明をしている。しかし、これに限定されることはなく、例えば、インターネット上のサーバーに、これら情報を保持する形態でも良く、或いは画像形成装置本体に接続された専用のハードウェアに記録をするようにしても良い。
[実施形態1]
以下、本発明の実施形態1を説明する。
まず前提条件として、ここでは、カートリッジ毎に、カートリッジの識別情報であるシリアル番号が付与されているものとする。尚、ここでいうシリアル番号は、十進数の数値に限られるものではなく、例えば、アルファベットや記号を含む文字列であってもよい。従来は、カートリッジから読み取ったカートリッジのシリアル番号が変化したことを契機に、新たなカートリッジが装着されたと判定していた。実施形態1では、これに加えて、カートリッジのシリアル番号の読取りに失敗した場合であっても、次回、そのカートリッジを外す時までに、そのカートリッジのシリアル番号の取得を試みる。そしてそのカートリッジのシリアル番号の取得に成功すると、そのカートリッジを、シリアル番号の読取りに失敗した時点からシリアル番号の取得に成功していたものとして扱う点に特徴がある。また、シリアル番号の読取りに成功した場合は、次回、そのカートリッジを外す時までに、そのカートリッジのシリアル番号の取得に失敗しても、新規カートリッジが装着されたとは見なさない点にも特徴がある。
以下、図10を参照して、実施形態1に係る具体的な効果を説明する。
図10は、本実施形態1に係る消耗品ログ情報の遷移の一例を示す図で、図10(A)は従来技術での結果、図10(B)が実施形態1を適用した結果を示す。以下、実施形態1を説明する上での共通条件として、シリアル番号が「1」のカートリッジを装着し、2回消費検知が行われた後、シリアル番号「2」のカートリッジを装着した場合で説明する。先に、図10(A)を参照して、従来技術を用いた場合の振舞について説明する。
正常ケースとして、1001は、一度もカートリッジからの情報の取得に失敗しない場合を示す。1002は、このときのレコードを示し、このときシリアル番号「1」のカートリッジが装着されたことを検知すると、シリアル番号「1」のカートリッジの装着に関するレコードが記録される。またシリアル番号「1」のカートリッジを消費したことを検知すると、シリアル番号「1」のカートリッジの消費に関するレコードが記録される。更に、シリアル番号「1」のカートリッジを再び消費したしたことを検知すると、先ほどのレコードを上書きする。そしてシリアル番号「2」のカートリッジが装着されたことを検知すると、シリアル番号「2」のカートリッジの装着に関するレコードが記録される。
次に、カートリッジ装着時に、カートリッジの情報の取得に失敗した場合を説明する。
1011は、カートリッジの装着時に、カートリッジ情報の読み取りエラーが発生した場合を示す。このときはシリアル番号が不明のカートリッジが装着されたものとし、1012で、シリアル番号が不明のカートリッジの装着に関するレコードが記録される。次にシリアル番号「1」のカートリッジを消費したことを検知すると、1012で、シリアル番号「1」のカートリッジの装着に関するレコードと、消費に関するレコードが記録される。更に、シリアル番号「1」のカートリッジを再び消費したことを検知すると、1012で、先ほどの消費に関するレコードを上書きする。そして、シリアル番号「2」のカートリッジが装着されたことを検知すると、シリアル番号「2」のカートリッジの装着に関するレコードが記録される。
次に、カートリッジのトナー消費時の初回に、カートリッジの情報の取得に失敗した場合を説明する。
1021は、カートリッジのトナー消費の初回検知時に、カートリッジ情報の読み取りエラーが発生した場合を示す。シリアル番号「1」のカートリッジが装着されたことを検知すると、1022で、シリアル番号「1」のカートリッジの装着に関するレコードが記録される。次にシリアル番号が不明のカートリッジのトナーが消費されたことを検知すると、シリアル番号が不明のカートリッジの装着に関するレコードと、その消費に関するレコードとが記録される。次にシリアル番号「1」のカートリッジのトナーが消費されたことを検知すると、1022で、シリアル番号「1」のカートリッジの装着に関するレコードと、その消費に関するレコードが記録される。そして、シリアル番号「2」のカートリッジが装着されたことを検知すると、シリアル番号「2」のカートリッジの装着に関するレコードが記録される。
次にカートリッジの消費で、次回の消費時にカートリッジ情報の取得に失敗した場合を説明する。
1031は、カートリッジのトナー消費の2回目で、カートリッジ情報の取得エラーが発生した場合を示す。まずシリアル番号「1」のカートリッジが装着されたことを検知すると、1032で、シリアル番号「1」のカートリッジの装着に関するレコードが記録される。そしてシリアル番号「1」のカートリッジのトナーを消費したことを検知すると、シリアル番号「1」のカートリッジのトナー消費に関するレコードが記録される。次にシリアル番号が不明のカートリッジのトナー消費を検知すると、1032で、シリアル番号が不明のカートリッジの装着に関するレコードと、そのトナー消費に関するレコードとが記録される。そして、シリアル番号「2」のカートリッジが装着されたことを検知すると、シリアル番号「2」のカートリッジの装着に関するレコードが記録される。
このように従来は、カートリッジから取得した情報だけに基づいてカートリッジを判定している。このため、カートリッジの情報の取得に失敗した後、カートリッジの情報の取得に成功すると、新たなカートリッジが装着されたと判定していた。このため、カートリッジの情報の取得に失敗したときに、リアル番号が不明の新たなレコードが追加されてしまう。その結果、カートリッジ情報の読み取りエラーが発生する度に無駄なレコードが生成されてしまい、メモリ領域が無駄な情報で占有されてしまうという課題があった。
次に、図10(B)を参照して、実施形態1の場合を説明する。
正常ケースとして、1051,1052は、一度もカートリッジからの情報の取得に失敗しない場合を示す。これは図10(A)の1001,1002の場合と同じであるため、その説明を省略する。
次に、カートリッジの装着時に、カートリッジ情報の取得に失敗した場合を説明する。1061は、カートリッジの装着時に読み取りエラーが発生した場合を示す。このときシリアル番号が不明のカートリッジを装着したことを検知し、1062で、シリアル番号が不明のカートリッジの装着に関するレコードが記録される。次に、シリアル番号「1」のカートリッジのトナーを消費したことを検知すると、前述のシリアル番号が不明のカートリッジの装着に関するレコードは、1062でシリアル番号「1」のカートリッジの装着に関するレコードで上書きされる。そして更に、シリアル番号「1」のカートリッジの消費に関するレコードが記録される。次に、シリアル番号「1」のカートリッジのトナーが再び消費されたことを検知すると、先ほどの消費に関するレコードを上書きする。そして、シリアル番号「2」のカートリッジが装着されたことを検知すると、シリアル番号「2」のカートリッジの装着に関するレコードが記録される。
このように、カートリッジの装着時に、カートリッジ情報の取得に失敗しても、シリアル番号が不明のカートリッジの装着に関するレコードを作成せずに、次にカートリッジのトナー消費を検知したときのシリアル番号のレコードとして記録される。
次に、カートリッジのトナー消費時、初回に、カートリッジ情報の取得に失敗した場合を説明する。1071は、カートリッジのトナー消費検知の初回に、そのカートリッジ情報の取得エラーが発生した場合を示す。まずシリアル番号「1」のカートリッジが装着されたことを検知すると、1072で、シリアル番号「1」のカートリッジの装着に関するレコードが記録される。次にシリアル番号が不明のカートリッジのトナーが消費されたことを検知した場合には、シリアル番号が不明のカートリッジが装着されていないため、レコードの変更は行われない。そして次にシリアル番号「1」のカートリッジのトナーを消費したことを検知すると、1072で、シリアル番号「1」のカートリッジの装着に関するレコードと、そのカートリッジの消費に関するレコードが記録される。そして、シリアル番号「2」のカートリッジが装着されたことを検知すると、シリアル番号「2」のカートリッジの装着に関するレコードが記録される。
このように、トナー消費検知時の初回に、カートリッジ情報の取得に失敗した場合は、レコードの変更は行わない。これによりシリアル番号が特定されたカートリッジの消費だけが更新される。
次に、カートリッジのトナー消費検知の次回に、カートリッジ情報の取得に失敗した場合を説明する。1081はカートリッジのトナー消費検知の2回目に、カートリッジの情報の読み取りエラーが発生した場合を示す。まずシリアル番号「1」のカートリッジが装着されたことを検知すると、シリアル番号「1」のカートリッジの装着に関するレコードが記録される。次にシリアル番号「1」のカートリッジのトナーの消費を検知すると、1082で、シリアル番号「1」のカートリッジの消費に関するレコードが記録される。そして次回、シリアル番号が不明のカートリッジのトナー消費を検知すると、シリアル番号が不明のカートリッジが装着されていないためレコードの更新は行わない。そしてシリアル番号「2」のカートリッジが装着されたことを検知すると、1082でシリアル番号「2」のカートリッジの装着に関するレコードが記録される。
この場合も、次回のトナー消費検知の際にカートリッジ情報の取得に失敗した場合は、レコードの変更は行わない。これにより、シリアル番号が特定されたカートリッジの消費だけが更新される。
尚、カートリッジのトナー消費の検知時に、カートリッジのシリアル番号を複数回読み取り、失敗が続いている間は、そのカートリッジのトナー消費に関するレコードを更新しない。そして、カートリッジ情報の取得に成功すると、その取得に成功したカートリッジ情報によって、それまでの情報が上書きされる。またカートリッジの装着時にシリアル番号の取得に失敗し、次のカートリッジのトナー消費の検知時に、シリアル番号の取得に失敗する場合も考えられる。その場合、カートリッジ情報の取得に成功すると、その取得に成功したシリアル番号のレコードが作成され、そのレコードに、そのカートリッジのトナー消費に関する情報が記録される。
実施形態1によれば、カートリッジを装着してから脱着するまでの間に、そのカートリッジのシリアル番号の取得に失敗しても新たなレコードを作成せず、シリアル番号の取得に成功した時点の情報で、レコードを補完できる。即ち、カートリッジ情報の偶発的な読み取り失敗によって、消耗品ログ情報として、不要なレコードが作成されて追加されるのを回避できる。
次に、図11〜図17を参照して、本発明の実施形態1を説明する。
図11は、実施形態1に係る画像形成装置100におけるイベント受付処理を説明するフローチャートである。尚、以下のフローチャートで、メインプログラム400に含まれるモジュール(各部)による処理はCPU201がHDD104にインストールされているプログラムをRAM250に展開し、CPU201がそのプログラムを実行することにより達成される。またサブプログラム430に含まれるモジュール(各部)による処理は、HDD104からRAM250に展開されたプログラムをCPU221が実行することにより達成される。尚、実際、メインジョブ制御部401はこれ以外にもイベント処理を行うことができるが、説明が煩雑となるため主要なものだけに限定して説明する。
先ずS1101でCPU201はメインジョブ制御部401として機能し、各種モジュールの初期化処理を行う。次にS1102に進みCPU201はメインジョブ制御部401として機能し、後述する消耗品の交換検知処理を行い、電源断中に消耗品の交換が行われていたかを検出する。
次にS1103に進みCPU201はメインジョブ制御部401として機能し、新たなイベントが生じるのを待つ。このイベントの受付の待機は、メッセージキューの仕組みを用いて実現する他、その他ポーリングなどで実現してもよい。ここで何らかのイベントの発生を検知すると以下の処理に進む。
まずCPU201は、印刷ジョブを受信したイベントを検知するとS1104に進み、印刷処理を実行してS1103に戻る。またCPU201は、ステータスの印刷指示のイベントを検知するとS1105に進み、ステータスの印刷処理を実行してS1103に進む。またCPU201は、画像形成装置100本体のカバーが閉じられたことを示すカバークローズのイベントを検知するとS1106に進み、消耗品の交換を検知する処理を実行する。そしてCPU201は、CPU221に対してキャリブレーションの開始を通知する。これによりS1111でCPU221はサブジョブ制御部431として機能し、キャリブレーション処理を実行する。そして、このキャリブレーション処理が終了するとCPU221は、CPU201に対してキャリブレーション処理の終了を通知する。これによりCPU201はS1107で、消耗品の消費検知処理を実行してS1103に進む。
またCPU201は、スリープモードへの移行イベントを検知するとCPU221にスリープモード(省電力モード)に移行するように通知する。これによりCPU221は、S1112でスリープモードに移行するための処理を実行する。
またCPU201は、スリープモードから復帰するイベントを検知するとCPU221にスリープモードから復帰するように通知する。これによりCPU221はS1113でスリープモードから復帰する処理を行う。そしてCPU221は、スリープモードからの復帰処理が終了するとCPU201に対して、スリープモードからの復帰処理が完了したことを通知する。これによりCPU201はS1108で、消耗品が交換されたかどうかを検知する処理を実行してS1103に処理を進める。
またCPU201は、画像形成装置100の電源断のイベントを検知するとS1109に処理を進め、消耗品の消費を検知する処理を行う。またCPU201は、CPU221に対して電源断が発生したことを通知する。これによりCPU221はS1114で電源断処理を実行する。
図12は、実施形態1に係る画像形成装置100のサブプログラム430が実行するイベント受付処理を説明するフローチャートである。尚、実際は、前述したように、メインジョブ制御部401との間でイベントの処理結果の通知を行う処理が行われるが、ここではサブプログラム430による処理に注目して説明する。
先ずS1201でCPU221はサブジョブ制御部431として機能し、各種モジュールの初期化処理を行う。次にS1202に進みCPU221はサブジョブ制御部431として機能し、新たなイベントを受付けるのを待つ。このイベントを受付るための待機は、メッセージキューの仕組みを用いて実現する他、その他ポーリングなどで実現してもよい。ここで何らかのイベントを受付けると以下のステップに進む。
CPU221は、印刷処理のイベントを検知するとS1203に進みデバイス制御部434として機能し、給紙処理を開始する。このときCPU221は、そのイベントで指定されている給紙段からプリンタエンジン105へ給紙するように制御する。次にS1204に進みCPU221はデバイス制御部434として機能し、画像処理制御部433に対して画像処理を実行するように通知する。そしてCPU221はデバイス制御部434として機能し、S1205で、画像処理が実施された画像データをプリンタエンジン105に出力して印刷画像を形成する印刷処理を実行する。
またCPU221は、キャリブレーションの開始イベントを検知するとS1206に進み、デバイス制御部434として機能してキャリブレーションを実行してS1202に進む。
またCPU221は、スリープモードに移行するイベントを検知するとS1207に進み、CPU221はデバイス制御部434として機能し、プリンタエンジン105を省電力モードへ移行させる。そしてCPU221は電源制御部432として機能しS1208で、コントローラボード102をスリープモードへ移行させる。
またCPU221は、スリープモードからの復帰イベントを検知するとS1209に進み、バイス制御部434として機能してプリンタエンジン105を通常電力モードへ移行させる。そしてS1210に進みCPU221は電源制御部432として機能し、コントローラボード102を通常電力モードへ移行する。
またCPU221は、電源断イベントを検知するとS1211に進み、デバイス制御部434として機能してプリンタエンジン105を電源断モードへ移行させる。そしてS1212に進み、CPU221は電源制御部432として機能し、コントローラボード102を電源断モードへ移行する。
図13は、実施形態1に係る画像形成装置100のメインプログラム400が主体で実行する印刷処理を説明するフローチャートである。
まずS1301でCPU201はメインジョブ制御部401として機能し、印刷ジョブを受け付ける。これによりCPU201はS1302でユーザ操作受付部405として機能し、印刷中を示す画面をポップアップ表示する。ここでは例えば図5に示す画面521を表示部124に表示する。またS1303でCPU201は印刷ジョブ解析部404として機能し、その印刷ジョブに含まれる印刷データを解析する。そしてS1304に進みCPU201は印刷ジョブ解析部404として機能し、その印刷データの1ページを解析する。そして1ページ分の解析が終了して中間データを作成するとS1305に進みCPU201はユーザ操作受付部405として機能し、前述の画面521を更新する。またCPU201は印刷ジョブ解析部404として機能し、CPU221に印刷処理の開始を通知する。これによりCPU221はサブジョブ制御部431として機能し、S1306で印刷処理を実行する。こうして1ページの印刷処理が完了したことがCPU221から通知されるとS1307に進み、CPU201はユーザ操作受付部405として機能し、印刷画面521を更新する。またCPU221はCPU201に対して1ページの印刷処理が終了したことを通知するとS1308に進み、CPU201はメインジョブ制御部401として機能し、消耗品の消費検知処理を実行する。
またCPU201は印刷ジョブ解析部404として機能し、1ページの解析が終わった後、S1309で印刷ジョブの最後のデータの処理が終了したかどうかを判定する。ここで印刷ジョブのデータ処理が終了していないときはS1304に進み、CPU201は印刷ジョブ解析部404として機能して、次のページの解析を行う。一方、S1309で印刷ジョブのデータの処理が終了したと判定するとS1310に進み、CPU201はメインジョブ制御部401として機能し、消耗品の消費検知処理を実行する。またこのときCPU201はユーザ操作受付部405として機能し、S1311で印刷中であることを示す画面を非表示にする。
図14は、実施形態1に係る画像形成装置100のメインプログラム400が主体で実行する消耗品ログプリント処理を説明するフローチャートである。尚、この消耗品ログプリント処理と消耗品ログ(詳細)プリントは、印刷するコマンドの情報量が異なるだけで基本的には同じ処理で実現されるため、ここでまとめて説明する。
まずS1401でCPU201は消耗品ログプリントの実行指示を受け取ると印刷ジョブ生成部407として機能して印刷ジョブを生成する。具体的には、印刷ジョブを保持するためのメモリを確保する。そしてS1402でCPU201は消耗品ログ管理部406として機能し、RAM205に保持されている消耗品ログ情報701〜704を取得する。ここでは、消耗品ログ情報に含まれる印刷対象の各レコードの情報を参照する。次にS1403に進みCPU201は、印刷ジョブにジョブ開始コマンドを追加する。この処理は、消耗品ログ情報に含まれる全てのレコードに対して実行される。
次にS1404に進みCPU201は印刷ジョブ生成部407として機能し、印刷ジョブにページ開始コマンドを追加する。このページ開始コマンドには、例えば印刷する用紙のサイズ情報が含まれる。また用紙の向き情報などが含まれていてもよい。次にS1405に進みCPU201は印刷ジョブ生成部407として機能し、印刷ジョブにヘッダ部分の描画コマンドを追加する。ここでは例えば、ステータスプリントのタイトル等の描画を行う。次にS1406に進みCPU201は印刷ジョブ生成部407として機能し、消耗品ログ情報に含まれる複数レコードの情報を参照し、印刷ジョブにコンテンツ部分の描画コマンドを追加する。例えば、ここで1ページに100レコードが描画可能であれば、100レコード分の情報を描画コマンドに変換して印刷ジョブに追加する。次にS1407に進みCPU201は印刷ジョブ生成部407として機能し、その印刷ジョブにフッタの描画コマンドを追加する。ここでは例えば、ページカウントを描画コマンドに変換して印刷ジョブに追加する。次にS1408に進みCPU201は印刷ジョブ生成部407として機能し、その印刷ジョブにページ終了コマンドを追加する。そしてS1409に進みCPU201は印刷ジョブ生成部407として機能し、全てのレコードに対する処理が終了したかどうかを判定する。ここまでで全てのレコードに対してコンテンツとして描画処理が行われていなければS1404に進み、再び新しいページを生成して、描画を繰り返す。そしてCPU201が、消耗品ログ情報に含まれる全てのレコードに対する処理が終了したと判定するとS1401に進みCPU201は印刷ジョブ生成部407として機能し、ジョブ終了コマンドを印刷ジョブに追加する。そしてCPU201はS1411でメインジョブ制御部401として機能し、印刷ジョブデータの受信処理を実行するとともに、S1412でユーザ操作受付部405として機能し、消耗品ログプリントの印刷ジョブを実行中であること示す画面を表示する。ここで表示される画面は、例えば図5の画面512或いは552で示すような画面である。
以上説明したように、メインプログラム400は、消耗品ログ情報の内容を基にした印刷ジョブを生成して、プリンタエンジン105で用紙に印刷することができる。
図15は、実施形態1に係る画像形成装置100のメインプログラム400が主体で実行する消耗品の交換検知処理を説明するフローチャートである。
先ずS1501でCPU201はメインジョブ制御部403として機能し、消耗品ログ更新フラグをFALSE(オフ)にする。そして、以下の処理を全カートリッジに装着可能な色に対して繰り返し行う。即ち、カラーの画像形成装置であれば4色分繰り返し、モノクロの画像形成装置であれば1回だけ繰り返す。ここでは対象となっている色を「対象色」と呼称する。次にS1502に進みCPU201は、図16に示すフローチャートに従って、対象色のカートリッジ情報を読み込む。
図16は、実施形態1に係る画像形成装置100のメインプログラム400とサブプログラム430とで実行するS1502のカートリッジ情報の読み込み処理を説明するフローチャートである。
まずS1601でCPU201はメインジョブ制御部403として機能し、カートリッジの装着状況を「未装着」とする。そしてCPU201はメインジョブ制御部403として機能し、デバイス制御部434に対して、対象色のカートリッジの装着状況とカートリッジの情報の取得を要求する。これによりCPU221はS1621でデバイス制御部434として機能し、対象色のカートリッジの装着状況を確認する。そして、その対象色のカートリッジが未装着であると判定すると、CPU201に、そのカートリッジが未装着であることを通知して、この処理を終了する。一方、その対象色のカートリッジが装着されていると判定したときはS1622に進み、CPU221は、対象色のカートリッジから各種情報の取得を試みる。ここで取得する情報は、図8のトナーカートリッジ310a〜dのシリアル番号、カートリッジの残量(寿命)、トナー残量、ドラム寿命、現像器寿命、トナーアウト情報、トナーロー情報である。こうしてS1622でCPU221は、カートリッジの情報を取得すると、それをCPU201に通知する。
これによりS1602に進みCPU201はメインジョブ制御部403として機能し、取得した情報に対応するカートリッジの装着状況を「装着」とする。ここでカートリッジの情報を取得する際、カートリッジの情報の読み取りエラーが発生したと判定した場合はS1603に進みCPU201はメインジョブ制御部403として機能し、対象色のカートリッジのシリアル番号にダミーコード(所定情報)を設定する。このダミーコードは、読み取りエラーが発生していたことを表わすコードであり、通常、カートリッジに設定されないシリアル番号を用いる。そしてS1604に進みCPU201は、そのカートリッジのタグ種別を「タグなし」として、この処理を終了する。
一方、カートリッジ情報の読み取りエラーがなく正常にカートリッジの情報を取得できたときはS1605に進みCPU201はメインジョブ制御部403として機能し、その取得した情報を対象色のカートリッジ情報として設定する。次にS1606に進みCPU201はメインジョブ制御部403として機能し、トナーアウト情報とトナー残量情報を確認する。ここでもし、トナーアウトが発生しているにも関わらずトナー残量が1%以上である場合、即ち、これら情報に矛盾が発生しているときは、そのカートリッジはリフィルされた可能性が高いカートリッジと判定してS1607に進む。S1607でCPU201はメインジョブ制御部403として機能し、そのカートリッジのタグ種別を「エラータグ」として、この処理を終了する。
一方、S1606でトナーアウトが発生していないか、或いは、トナーアウトが発生しているがトナー残量が1%未満であればS1608に進む。S1608でCPU201はメインジョブ制御部403として機能し、カートリッジ情報のシリアル番号が、図8のコピータグシリアル番号リスト851に含まれているか否か判定する。ここでCPU201は、そのシリアル番号がコピータグシリアル番号リスト851に含まれていると判定するとS1609に進みCPU201はメインジョブ制御部403として機能し、そのカートリッジのタグ種別を「コピータグ」として、この処理を終了する。
またS1608で、そのシリアル番号がコピータグシリアル番号リスト851に含まれていないと判定するとS1610に進みCPU201は、そのシリアル番号が純正用のものか、OEM用のものか判別する。ここでは例えば、シリアル番号の上位1ビットが「0」か「1」かで判別する。また或いは、シリアル番号のビット数の総和によって判別しても良い。ここで純正カートリッジ用のシリアル番号であると判定するとS1611に進みCPU201はメインジョブ制御部403として機能し、そのカートリッジのタグ種別を「純正タグ」と決定して、この処理を終了する。一方、S1612でCPU201が、OEMカートリッジ用のシリアル番号であると判定するとS1612に進み、そのカートリッジのタグ種別を「OEMタグ」と決定して、この処理を終了する。
尚、ここではシリアル番号に基づいて純正カートリッジか、OEMカートリッジかを判別した。これ以外にも、純正カートリッジか、OEMカートリッジかを識別する情報をメモリタグ内に保持しておき、それに基づいて判別するようにしても良い。
この処理により、対象色のカートリッジの装着状況、及びカートリッジが装着されていれば、その対象色カートリッジの情報を取得することができる。
次に図15に戻り、S1502でCPU201はメインジョブ制御部403として機能し、取得したカートリッジ情報に基づいて、そのカートリッジの装着状態を判定する。ここでカートリッジが装着されていると判定するとS1503に進みCPU201は、そのカートリッジ情報のシリアル番号を、対象色のカートリッジに対応する新シリアル番号とする。次にS1504に進みCPU201は、新シリアル番号と、前回の交換時に装着されていたシリアル番号である旧シリアル番号とを比較する。そして、これら新旧のシリアル番号が一致した場合は、そのままこの処理を終了する。
一方、新旧のシリアル番号が一致しない場合は、今回、そのカートリッジは交換されたものと判定してS1505に進む。S1505でCPU201は消耗品ログ管理部406として機能し、消耗品ログ情報を追加すべく、装着イベントのレコードを追加する。そしてS1506に進みCPU201は消耗品ログ管理部406として機能し、そのカートリッジ情報のタグ種別を、図16のフローチャートでセットされたタグ種別とする。そして、そのセットされたタグ種を判別し、タグ種別が「エラータグ」であればS1507に進みCPU201は消耗品ログ管理部406として機能し、エラータグのカートリッジの累積使用回数を1加算(+1する)してS1509に進む。またセットされたタグ種が「タグ無し」であればS1508に進みCPU201は消耗品ログ管理部406として機能し、タグ無しのカートリッジの累積使用回数を1加算(+1する)してS1509に進む。また、「エラータグ」、「タグ無し」以外のタグ種のカートリッジの場合はS1509に進む。そしてS1509でCPU201はメインジョブ制御部401として機能し、HDD104のログ記録を更新するために消耗品ログ記録更新フラグをTRUE(オン)にする。そしてS1510に進みCPU201は、対象色の新シリアル番号で、対象色の旧シリアル番号を更新する。以上の処理を未処理のカートリッジが無くなるまで繰り返す。
こうして全ての対象色のカートリッジに対して上記処理を実行し、消耗品ログ記録更新フラグがTRUE(オン)であると判定するとS1511に進む。S1511でCPU201は消耗品ログ管理部406として機能し、消耗品ログ情報701〜704を、HDD104の消耗品ログ記録711〜714に保存する。そしてS1512に進みCPU201は消耗品ログ管理部406として機能し、RAM205のカートリッジの累積使用回数情報705の内容を、HDD104のカートリッジ累積使用回数記録715に保存して、この処理を終了する。
以上説明した処理により、新たなカートリッジが装着されたときは、そのカートリッジのタグ種別を判別し、そのタグ種別に対応するカートリッジの累積使用回数を計数する。そして、RAMに保存されているカートリッジの情報を、不揮発の記憶装置に消耗品ログとして記録できる。
図17は、実施形態1に係る画像形成装置100のメインプログラム400が実行する消耗品の消費検知処理を説明するフローチャートである。
先ずS1701でCPU201はメインジョブ制御部403として機能し、消耗品ログ記録更新フラグをFALSE(オフ)にする。以下の処理を全装着可能な対象色に対して繰り返す。
S1702でCPU201はメインジョブ制御部403として機能し、対象色のカートリッジの情報をバックアップする。次にS1703に進みCPU201はメインジョブ制御部403として機能し、対象色のカートリッジ情報のタグ種別を確認する。そして、そのタグ種別が「タグなし」以外であると判定するとS1704に進み、CPU201はメインジョブ制御部403として機能し、図16のフローチャートで示す手順に従って対象色のカートリッジ情報を取得する。ここで対象色のカートリッジ情報の取得に成功した場合はS1706に進み、以後の処理を、読み込んだカートリッジ情報をもとに行う。一方、対象色のカートリッジ情報の取得に失敗した場合はS1705に進みCPU201は、先ほどバックアップを取った対象色のカートリッジ情報を復元してS1706に進む。即ち、カートリッジ情報の取得に失敗したときは、元のカートリッジの情報を採用する。
一方、S1703でタグ情報が「タグ無し」と判定した場合はS1710に進みCPU201はメインジョブ制御部403として機能し、図16に示すフローチャートに従って対象色のカートリッジ情報を取得する。そして対象色のカートリッジ情報の取得に成功するとS1711に進み、CPU201は消耗品ログ管理部406として機能し、「タグ無し」のカートリッジ累積回数を1だけ減算する。そして、CPU201は、そのカートリッジ情報のタグ種別が「エラータグ」かどうか判定し、「エラータグ」でなければS1714に処理を進める。一方、「エラータグ」であればS1713に進みCPU201は消耗品ログ管理部406として機能し、エラータグのカートリッジ累積使用回数を1加算してS1714に進む。S1714でCPU201は、その取得に成功したカートリッジ情報に基づいて、消耗品ログ情報内の装着時レコードを更新する。次にS1715に進みCPU201は、その取得に成功したカートリッジ情報に基づいて、消耗品ログ情報内の消費時レコードを更新してS1716に進む。S1716でCPU201はメインジョブ制御部として機能し、その取得に成功したカートリッジ情報のシリアル番号により、対象色の旧シリアル番号を更新する。次にS1717に進みCPU201はメインジョブ制御部として機能し、消耗品ログ記録更新フラグをTRUE(オン)にしてS1706に進む。 またS1710でCPU201は、対象色のカートリッジ情報の取得に失敗した場合はCPU201は、CPU221に対してセンサ値の取得を通知する。これによりS1712でCPU221はデバイス制御部434として機能し、対象色のカートリッジのトナーセンサからトナー残量を取得してCPU201に通知する。
こうしてS1706に進みCPU201はメインジョブ制御部として機能し、消耗品ログ情報の消費時レコードを更新する。即ち、そのカートリッジ情報に該当する消費時のレコードが存在していなければ、そのカートリッジ情報に基づいて新規レコードを生成する。一方、そのカートリッジ情報に該当する消費時レコードが存在していれば、そのレコードの各種情報を更新する。次にS1707に進みCPU201は、カートリッジの寿命が1%以上変化したか否かを判定する。ここで1%以上変化したと判定するとS1708に進み、CPU201は消耗品ログ記録更新フラグをTRUE(オン)にする。
以上説明した処理を、装着可能な全ての色数だけ繰り返し、全ての装着可能な色のカートリッジに対する処理を行ったらS1718に進みCPU201は、消耗品ログ記録更新フラグがTRUEかどうか判定する。ここで消耗品ログ記録更新フラグがTRUEと判定するとS1719に進みCPU201は消耗品ログ管理部として機能し、RAM205の消耗品ログでHDD104の消耗品ログ記録を更新する。次にS1720に進みCPU201は、RAM205のカートリッジ累積使用回数情報で、HDD104のカートリッジ累積使用回数記録を更新して、この処理を終了する。
以上説明したように実施形態1によれば、画像形成装置に装着されたカートリッジ(メモリタグ)との通信が、カートリッジの装着から着脱までの期間内で偶発的に失敗しても一度でも成功していれば、メモリタグが存在するものとして判定する。また画像形成装置に装着されたカートリッジ(メモリタグ)との通信が、装着から着脱までの期間内で一度も成功しなかった場合には、メモリタグが存在しなかったものと判定する。即ち、カートリッジの接点不良等に起因する偶発的な通信エラーと、カートリッジにメモリタグが存在しないことに起因する通信エラーとを区別できる。
[実施形態2]
次に本発明の実施形態2として、カートリッジのメモリタグの存在確認を、実施形態1とは異なるタイミングで行う例を説明する。尚、実施形態2に係る画像形成装置100のハードウェア構成は、前述の実施形態1に係る画像形成装置100の構成と同じであるため、その説明を省略する。
前述の実施形態1では、装着されたカートリッジの消耗材を消費したタイミングで、メモリタグの読み取りを再度チェックする例で説明した。即ち、印刷を行うことによって消耗部品が消費され、それを契機にカートリッジ(メモリタグ)との通信を実行していた。この場合、通信用のハードウェアが存在するのかどうか分からないため、例えばタイムアウトを設定する必要がある。即ち、一定時間応答がなければ、ハードウェアからの応答がないと判定する。その場合、通信を行う度に、毎回、タイムアウトとなる時間、待機する必要が生じる。従って、実施形態1のように、印刷ページ毎にカートリッジ(メモリタグ)との通信を試みると、画像形成装置の印刷パフォーマンスに悪影響を及ぼすおそれがある。例えばNページのデータであれば、N回の印刷処理のほかに、N回のカートリッジ(メモリタグ)からの応答待ちのためのタイムアウトが発生することになる。
このような状況を説明するのが図18である。
図18は、実施形態2に係るメモリタグの存在確認を行うタイミング例を示す図である。
図18(A)は、Nページのそれぞれでメモリタグの存在を確認する例を示す図である。
いま、プリンタエンジン105の印刷性能が80[ページ/分]の画像形成装置100において、カートリッジ(メモリタグ)との通信のタイムアウト時間を100msecに設定する。この場合、タイムアウトになることなくカートリッジ(メモリタグ)から即時応答がある場合は、1ページを750msecで処理できる。しかし、毎回、カートリッジ(メモリタグ)との通信でタイムアウトが発生すると、1ページの処理時間が850msecとなる。即ち、全体としては、約70.5[ページ/分]の印刷性能となり、プリンタエンジン105の印刷性能に対して約12%の性能低下となる。
そこで、カートリッジ(メモリタグ)との通信でタイムアウトが発生する回数に制約を持たせることで、その影響を小さくすることができる。具体的には、カートリッジ(メモリタグ)のタグ種別が「タグ無し」と判定した場合、対象色のカートリッジ毎に読み込み回数をカウントする。そして、そのカートリッジ(メモリタグ)での読み込み失敗の回数が閾値以上になると、そのカートリッジにはメモリタグは存在しないと判定して通信を行わないモードへ移行する。例えば、図17のS1710において、最初の5回までは対象色のカートリッジ情報を読み込み、6回目以降は、カートリッジ情報の取得処理を実行せずに読み込み失敗と見なす。
これを説明したのが図18(B)である。図18(B)の例では、最初の5回(ページ)までは対象色のカートリッジ情報を読み込み、6回(ページ)目以降は、カートリッジ情報の取得を行わないようにしている。
また、印刷以外のタイミングにおいて、カートリッジ(メモリタグ)のタグ存在を確認するためだけの通信を試みる形態をとり、印刷パフォーマンスへの影響を抑えることもできる。例えば、一般的に画像形成装置には、スリープモードなどの省電力モードを有することが多い。通常モードから省電力モードへ移行する条件としては、例えば一定時間以上印刷ジョブが投入されていない、或いは画像形成装置100が操作されていない、というものが適用されることが多い。
そこで、印刷ジョブによる印刷終了からスリープモードに移行するまでの時間内で、複数回、カートリッジとの通信を試みることができる。例えば、最終キーの入力からスリープモードに移行する時間よりも短い、カートリッジの確認時間が経過すると、カートリッジ情報の取得状態に移行する。このカートリッジ情報の取得状態では、タグ種別が「タグ無し」であるカートリッジに対してカートリッジ情報の取得を試みる。その後、スリープモードへの移行時間が経過すると、スリープモードに移行中の状態を経て画像形成装置100はスリープ状態へ移行する。
この状態を図18(C)に示す。これによって、画像形成装置の印刷パフォーマンスへ影響を与えないタイミングで、メモリタグの存在を確認できる。
その他、電源切断シーケンスやカートリッジ装着時に試みる或いは、消耗品ログプリントのタイミングで、メモリタグの存在を試みる等の別の形態をとることも可能である。
[実施形態3]
上述の実施形態1では、消耗品ログの出力手段として、印刷ジョブ生成部407による印刷処理を例に説明した。しかし、本発明の出力手段は印刷に限られるものではない。例えば、本発明の出力手段として操作部101の表示部124に表示しても良い。或いは、PC150で動作するウェブブラウザで表示可能なウェブページを生成してPC等の情報処理装置に提供する形態でも良い。その他、定期的に或いは任意のタイミングで、PC150に対して送信してもよいし、USBメモリ130に保存してもよい。この場合のデータフォーマットは、XML(Extensible Markup Language)形式を用いることができる。またデータフォーマットとしてJSON(JavaScript Object Notation)形式を用いても良い。更にデータフォーマットとしてCSV(comma−separated values)形式やTSV(Tab−separated values)形式を含む、何かしらのテキスト形式を用いても良い。更には独自のバイナリデータフォーマットなど、任意のデータフォーマットをデータフォーマットとして適用することができる。その他、電子メールなどによる送信を出力手段として用いることもできる。
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
本発明は上記実施形態に制限されるものではなく、本発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、本発明の範囲を公にするために、以下の請求項を添付する。