(57)【要約】【課題】  従来技術では、実際の故障原因は、故障した装置自身に対してサービスパーソンが診断処理を行うまで特定することができない場合がある。【解決手段】  発生したエラーの種別に対応する診断処理を実行して、該エラー発生の原因となった部品を特定する診断部を有する。エラーの種別を示すエラー情報とともに、前記診断部が特定した部品を示す診断情報を表示部に表示させる。【選択図】  図４
2019192965.tif 000002
【特許請求の範囲】
【請求項１】
エラーの発生を検知する検知手段と、
前記検知手段が検知したエラーの種別を特定する特定手段と、
前記特定手段が特定したエラーの種別に対応する診断処理を実行して、該エラーの発生の原因となった部品を特定する診断手段と、
前記特定手段が特定したエラーの種別を示すエラー情報と、前記診断手段が特定した部品を示す診断情報とを表示部に表示させる制御を行う表示制御手段と
を有することを特徴とする情報処理装置。
【請求項２】
前記診断情報は、エラー発生の原因となった部品が前記情報処理装置の本体に含まれる部品であるか、または、前記情報処理装置に着脱可能なオプション装置に含まれる部品であるかを識別するための識別情報をさらに含むことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記診断手段は、発生したエラーを解消するための対処方法をさらに特定し、
前記表示制御手段は、前記診断情報として、前記診断手段が特定した部品及び前記診断手段が特定した前記対処方法を含む情報を前記表示部に表示させる制御を行うことを特徴とする請求項１又は２のうちいずれか１項に記載の情報処理装置。
【請求項４】
前記対処方法は、交換が必要であることを示す情報、故障の可能性が高いことを示す情報、清掃が必要であることを示す情報、又は、調整が必要であることを示す情報の少なくともいずれかを含むことを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記表示制御手段は、表示対象となる診断情報の数が所定の数以上である場合には、前記表示対象となる複数の診断情報に替えて、診断情報の数が所定件数以上であることを示す診断情報を前記表示部に表示させる制御を行うことを特徴とする請求項１から４のうちいずれか１項に記載の情報処理装置。
【請求項６】
前記表示制御手段は、表示対象となる診断情報の数が所定の数以上である場合には、前記エラー情報を前記表示部に表示させ、かつ、前記診断情報を前記表示部に表示させない制御を行うことを特徴とする請求項１から４のうちいずれか１項に記載の情報処理装置。
【請求項７】
前記診断情報は、エラー発生の原因となった部品を含む部品群であるユニットを示すユニット識別情報、及び、該部品群を構成する一又は複数のサブユニットのうちエラーの発生の原因となった部品を含むサブユニットを示すサブユニット識別情報を含むことを特徴とする請求項１から６のうちいずれか１項に記載の情報処理装置。
【請求項８】
前記特定手段が特定したエラーの種別を示す前記エラー情報と、前記診断手段が特定した部品を示す前記診断情報とを関連付けて記憶する記憶手段と、
ユーザが所定の権限を有するかを判定する判定手段と
を有し、
前記表示制御手段は、前記判定手段が、ユーザが前記所定の権限を有すると判定した場合に、前記記憶手段に記憶された前記エラー情報と前記診断情報を前記表示部に表示させることを特徴とする請求項１から７のうちいずれか１項に記載の情報処理装置。
【請求項９】
前記特定手段が特定したエラーの種別を示す前記エラー情報と、前記診断手段が特定した部品を示す前記診断情報とを、ネットワークを介してサーバ装置に送信する送信手段を有することを特徴とする請求項１から８のうちいずれか１項に記載の情報処理装置。
【請求項１０】
前記診断手段は、発生したエラーが所定の種別のエラーでない場合には、発生したエラーの種別に対応付けられた診断処理を実行することにより該エラーの発生の原因となった部品を特定し、発生した前記エラーが前記所定の種別のエラーである場合には、診断処理を実行せず、前記所定の種別のエラーに対応付けられた所定の部品を示す情報を該エラー発生の原因となった部品として特定することを特徴とする請求項１から９のうちいずれか１項に記載の情報処理装置。
【請求項１１】
印刷処理を行う印刷処理部と、
画像の読み取り処理を行う読取処理部と、
を有し、
前記検知手段は、前記印刷処理部におけるエラーの発生を検知する第１の検知手段、及び、前記読取処理部におけるエラーの発生を検知する第２の検知手段を含み、
前記特定手段は、前記第１の検知手段が検知したエラーの種別を特定する第１の特定手段、及び、前記第２の検知手段が検知したエラーの種別を特定する第２の特定手段を含み、
前記診断手段は、前記第１の特定手段が特定したエラーの種別に対応する診断処理を実行して該エラー発生の原因となった前記印刷処理部の部品を特定する第１の診断手段、及び、前記第２の特定手段が特定したエラーの種別に対応する診断処理を実行して該エラーの発生の原因となった前記読取処理部の部品を特定する第２の診断手段を含むことを特徴とする請求項１から１０のいずれか１項に記載の情報処理装置。
【請求項１２】
情報処理装置の制御方法であって、
エラーの発生を検知する検知ステップと、
前記検知ステップにおいて検知したエラーの種別を特定する特定ステップと、
前記特定ステップにおいて特定したエラーの種別に対応する診断処理を実行して、該エラーの発生の原因となった部品を特定する診断ステップと、
前記特定ステップにおいて特定したエラーの種別を示すエラー情報と、前記診断ステップにおいて特定した部品を示す診断情報とを表示部に表示させる制御を行う表示制御ステップと
を有することを特徴とする制御方法。
【請求項１３】
コンピュータに、
エラーの発生を検知する検知手順と、
前記検知手順において検知したエラーの種別を特定する特定手順と、
前記特定手順において特定したエラーの種別に対応する診断処理を実行して、該エラーの発生の原因となった部品を特定する診断手順と、
前記特定手順において特定したエラーの種別を示すエラー情報と、前記診断手順において特定した部品を示す診断情報とを表示部に表示させる制御を行う表示制御手順と
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
情報処理装置において発生したエラーの原因を特定する情報処理装置に関する。
【背景技術】
【０００２】
近年、複合機を始めとする情報処理装置は複雑化しており、ハードウェア又はソフトウェアの様々な部品が搭載されて機能を実現している。
【０００３】
ある部品に問題が発生した場合には発生したエラーに応じたエラーコードを表示することで、サービスパーソン（保守サービス提供者）やユーザがエラーコードに応じた対処方法を特定し、エラー復旧のための対処を実施している。
【０００４】
特許文献１には、ハンディターミナルなどの故障診断装置に、サービスパーソンが修理対象の写真処理機の機種コードと故障コードを入力することが開示されている。特許文献１に記載のシステムは、故障診断装置に装着されたメモリカードに記憶された故障対処マップから、入力した故障コードに対する対処方法の候補を読み出して表示する。
【０００５】
また特許文献２には、複合機から故障通知を受信すると、複合機から取得した状態情報と所定の故障原因診断モデルとに基づいて、故障の原因を特定する情報処理装置が開示されている。情報処理装置は、故障の原因を特定する故障原因診断の結果として故障からの復旧に必要な処置、部品をカスタマーエンジニアが確認可能に出力する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平６−１６２２１８号公報
【特許文献２】特開２０１７−１７６１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１及び２に記載の従来技術では、故障した装置とは別の情報処理装置が、あらかじめ保持された故障と原因の対応情報に基づいて、故障原因の候補を特定する。従来技術では、実際の故障原因は、故障した装置自身に対してサービスパーソンが診断処理を行うまで特定することができない場合があった。
【０００８】
例えば、特許文献１では、ハンディターミナルは、修理対象機器の機種コードと故障コードに基づいて、故障に対する対処方法を特定する。しかし同じ故障コードが出力される場合であっても、断線が故障原因であったり、断線はしていないがソフトエラーにより通信が行えなくなっていることが故障原因であったりする。従って、サービスパーソンが修理対象機器に対して導通テストや通信テストを行うまで、実際の故障原因が特定できない場合がある。
【０００９】
特許文献２に記載のシステムも同様に、修理対象機器とは異なる情報処理装置が故障原因を特定するため、サービスパーソンが修理対象機器に対して導通テストや通信テストを行うまで、実際の故障原因が特定できない場合がある。
【課題を解決するための手段】
【００１０】
本発明の実施形態に係る情報処理装置は、以下の構成を有する。すなわち、エラーの発生を検知する検知手段と、前記検知手段が検知したエラーの種別を特定する特定手段と、前記特定手段が特定したエラーの種別に対応する診断処理を実行して、該エラーの発生の原因となった部品を特定する診断手段と、前記特定手段が特定したエラーの種別を示すエラー情報と、前記診断手段が特定した部品を示す診断情報とを表示部に表示させる制御を行う表示制御手段とを有する。
【発明の効果】
【００１１】
上記の構成によれば、情報処理装置内でエラーが発生した際に、当該情報処理装置が故障診断を実行してエラーの発生要因となったハードウェアの故障個所を特定する。そして情報処理装置は、故障個所に対応したエラー復旧のための対処方法をユーザに提示する。
【００１２】
上記の構成によれば、エラーが発生した情報処理装置自身が故障診断テストを実行するので、より実際の故障原因である可能性の高い診断結果を出力することができる。
【図面の簡単な説明】
【００１３】
【図１】第１の実施形態におけるシステム構成図。
【図２】複合機１２０のハードウェア構成図。
【図３】各コントローラユニットのハードウェア構成図。
【図４】各コントローラユニットのソフトウェア構成図。
【図５】ユニットコードの例を示す図。
【図６】第１の実施形態におけるユニットコード表示処理の手順を示すフロー図。
【図７】エラーコード及びユニットコードの表示例を示す図。
【図８】第１の実施形態における印刷処理の手順を示すフロー図。
【図９】第１の実施形態における診断処理の手順を示すフロー図。
【図１０】第２の実施形態における診断処理の手順を示すフロー図。
【発明を実施するための形態】
【００１４】
以下、本発明を実施するための形態について図面を用いて説明する。
【００１５】
（第１の実施形態）
＜システム構成＞
本実施形態に係るシステムの構成について図１を用いて説明する。ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）１００には、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）１１０、複合機１２０が接続されている。さらに本実施形態において、複合機１２０は、ネットワーク１４０を介してサーバ１３０と通信することができる。図１の例では、複合機１２０がＬＡＮ１００を介してネットワーク１４０に接続する例を示したがこれに限らない。例えば複合機１２０は直接ネットワーク１４０に接続し、ＰＣ１１０及びサーバ１３０と通信を行うこととしてもよい。通信接続形態は有線または無線を問わない。
【００１６】
ＰＣ１１０は、ＬＡＮ１００を介して複合機１２０に印刷指示を送信する。ＰＣ１１０にかえて、携帯端末などの情報処理装置が印刷指示を送信することとしてもよい。複合機１２０は複数種類の機能、例えばコピーやＦＡＸ等を実現する機器である。また内部にそれらの機能の実行時の履歴を保持する機能、およびエラーやアラート等が発生したことを保持する機能を具備している。本実施形態では、複合機１２０を例に説明するが、複合機１２０の代わりにＳＦＰ（Ｓｉｎｇｌｅ  Ｆｕｎｃｔｉｏｎ  Ｐｒｉｎｔｅｒ）を用いることとしてもよい。あるいは、画像形成装置（複合機やＳＦＰなど）以外の情報処理装置であってもよい。
【００１７】
複合機１２０は、発生したエラーの種別を示すエラーコード、及び、複合機１２０による診断結果を示す診断情報であるユニットコードを表示する。ユニットコードは、複合機１２０において発生したエラーの原因や、エラーが発生したユニットを示す情報である。
【００１８】
さらに、複合機１２０は、エラーコード及びユニットコードをサーバ１３０に送信する。サーバ１３０は、例えばサービスパーソンが所属するサービスセンタからアクセス可能である。複合機１２０は、自身の動作履歴をログとしてサーバ１３０に定期的あるいは所定のイベントが発生した場合に送信する。サービスパーソンは、サーバ１３０にアクセスすることによって、複合機１２０において発生したエラーの種別や、エラーが発生したユニット、及び、エラーの発生原因などを確認することができる。
【００１９】
あるいは、サーバ１３０は、複合機１２０の管理者によって用意され、複合機１２０と同じＬＡＮ１００に接続されたサーバであってもよい。
【００２０】
＜複合機１２０のハードウェア構成＞
次に、本実施形態に係る複合機１２０の構成について、図２を用いて説明する。コントローラユニット２０１は、複合機１２０の動作に係る情報処理制御を統括するコントローラである。コントローラユニット２０１は、操作部２０６、プリンタコントローラユニット２０２、及び、スキャナコントローラユニット２０３を制御する。
【００２１】
プリンタコントローラユニット２０２は、画像出力デバイスであるプリンタ２０４を制御する。プリンタコントローラユニット２０２とプリンタ２０４は、印刷処理を行う印刷処理部を構成する。また、スキャナコントローラユニット２０３は、画像入力デバイスであるスキャナ２０５を制御する。スキャナコントローラユニット２０３とスキャナ２０５は画像の読み取り処理を行う読取処理部を構成する。
【００２２】
複合機１２０のコントローラユニット２０１、及び、プリンタコントローラユニット２０２のハードウェア構成について、図３を用いて説明する。
【００２３】
コントローラユニット２０１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０１を有し、ＣＰＵ３０１は、ＲＯＭ３０２に格納されているブートプログラムによりＯＳ（Ｏｐｅｒａｔｉｏｎ  Ｓｙｓｔｅｍ）を起動する。コントローラユニット２０１はＣＰＵ３０１のみならず複数のプロセッサを有することとしてもよい。
【００２４】
ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）３０２は、ＣＰＵ３０１が実行する制御プログラムを格納する。ＲＯＭ３０２は、例えば、ｅＭＭＣ（ｅｍｂｅｄｄｅｄ  ＭｕｌｔｉＭｅｄｉａ  Ｃａｒｄ）などのフラッシュメモリとそのコントローラを含む。
【００２５】
ＣＰＵ３０１は、ＯＳ上で、ＲＯＭ３０２またはＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）３０４に格納されているアプリケーションプログラムを実行し、これによって各種処理を実行する。このＣＰＵ３０１の作業領域としてはＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３０３が用いられる。また、ＲＡＭ３０３は、作業領域を提供するとともに、画像データを一時記憶するための画像メモリ領域を提供する。ＲＯＭ３０２またはＨＤＤ３０４は、上記アプリケーションプログラムや画像データ、各種設定値を格納する。なお、ＨＤＤ３０４は必須の構成ではなく、複合機１２０がＨＤＤ３０４を含まないこととしてもよい。
【００２６】
操作部Ｉ／Ｆ３０６は、タッチパネルを有する操作部２０６とＣＰＵ３０１とのインタフェースである。操作部Ｉ／Ｆ３０６は、操作部２０６に表示すべき画像データを操作部２０６に対して出力する。本実施形態では、操作部２０６が表示部の役割を兼ねる例について説明するが、操作部と表示部を別体として構成することとしてもよい。また、操作部Ｉ／Ｆ３０６は、操作部２０６によってユーザにより入力された情報をＣＰＵ３０１に送出する。
【００２７】
デバイスコントローラＩ／Ｆ３０８は、スキャナコントローラユニット２０３及びプリンタコントローラユニット２０２と、ＣＰＵ３０１とのインタフェースである。
【００２８】
通信制御部３０５は、ＬＡＮ１００に接続され、ＬＡＮ１００を介してＬＡＮ１００上の各装置やネットワーク１４０上の各装置との間の通信に関する通信制御を行う。
【００２９】
画像処理部３０７は、プリンタ２０４への出力画像処理やスキャナ２０５からの入力画像処理、画像回転、画像圧縮、解像度変換、色空間変換、階調変換などの処理を行う。
【００３０】
プリンタコントローラユニット２０２は、例えば電子写真方式のプリンタエンジンを有するプリンタ２０４と接続される。ＣＰＵ３１０は、プリンタ２０４に印刷を実行させる制御を行う。プリンタ２０４は、コントローラユニット２０１からプリンタコントローラユニット２０２が受信した画像データを、ＣＰＵ３１０の制御に従って印刷する。ＣＰＵ３１０は、ＲＯＭ３１１に格納されているプログラムを実行し、ＲＡＭ３１２をワークメモリとして利用して、プリンタ２０４を制御する。
【００３１】
スキャナコントローラユニット２０３は、画像を光学的に読み取って画像データを生成するスキャナ２０５と接続される。ＣＰＵ３１３は、スキャナ２０５を制御して、スキャナ２０５が取得した画像データを、デバイスコントローラＩ／Ｆ３０８を介してコントローラユニット２０１に入力する。
【００３２】
＜ファームウェア構成＞
次に本実施形態に係る複合機１２０上で動作するファームウェア４００、ファームウェア４１０、及び、ファームウェア４２０のソフトウェア構成について、図４を用いて説明する。
【００３３】
ファームウェア４００は、複合機１２０の各構成を統括的に制御するためのファームウェアである。ファームウェア４００は、ＲＯＭ３０２、ＲＡＭ３０３、ＨＤＤ３０４のうち少なくともいずれかの記憶手段に記憶され、ＣＰＵ３０１によって実行される。
【００３４】
ファームウェア４１０は、プリントコントローラユニットを動作させるためのファームウェアである。ファームウェア４１０は、ＲＯＭ３１１、ＲＡＭ３１２のうち少なくともいずれかの記憶手段に記憶され、ＣＰＵ３１０によって実行される。
【００３５】
ファームウェア４２０は、スキャナコントローラユニット２０３を動作させるためのファームウェアである。ファームウェア４２０は、ＲＯＭ３１４、ＲＡＭ３１５のうち少なくともいずれかの記憶手段に記憶され、ＣＰＵ３１３によって実行される。
【００３６】
＜ファームウェア４００の構成＞
まずファームウェア４００の構成について説明する。制御モジュール４０１は、通信制御部３０５を介して受信された印刷指示を受信すると、画像処理モジュール４０３に画像データの生成を要求する。画像処理モジュール４０３は、受信された印刷指示に従って画像データを生成する。この画像データは、プリンタ２０４が印刷処理を実行可能なデータ形式に従った画像データである。制御モジュール４０１は、生成された画像データを、Ｉ／Ｆ制御モジュール４０７を介してプリンタコントローラユニット２０２に送信する制御を行う。
【００３７】
また制御モジュール４０１は、操作部制御モジュール４０２からスキャン実行指示を受け付けると、Ｉ／Ｆ制御モジュール４０７を介してスキャナコントローラユニット２０３にスキャン処理（画像読取処理）の実行を指示する。
【００３８】
また、制御モジュール４０１は、スキャナコントローラユニット２０３から受信されたスキャンデータを、Ｉ／Ｆ制御モジュール４０７を介して取得する。
【００３９】
制御モジュール４０１は、他のモジュールからの問い合わせに応じて、ジョブに関するデータを返却したり、イベント購読要求を受け付けてジョブ状態変化のタイミングなどでイベントを伝達したりすることができる。例えば、ジョブの開始、一時停止、又は、終了のタイミングでイベントを伝達することが可能である。
【００４０】
操作部制御モジュール４０２は、操作部２０６から操作部Ｉ／Ｆ３０６を介して、コピーやスキャン等のジョブ実行を指示するユーザ操作を受け付け、制御モジュール４０１に通知を行う。
【００４１】
Ｉ／Ｆ制御モジュール４０７は、制御モジュール４０１から処理対象の画像データや制御内容を受け付け、受け付けた内容をプリンタコントローラユニット２０２やスキャナコントローラユニット２０３に通知する。また、Ｉ／Ｆ制御モジュール４０７は、プリンタコントローラユニット２０２やスキャナコントローラユニット２０３から、プリンタ２０４、スキャナ２０５を構成する部品の使用情報やセンサ値、エラー情報等を受信する。
【００４２】
状態管理モジュール４０８は、複合機１２０の状態を管理しているモジュールであり、例えば複合機１２０に接続されたプリンタ２０４やスキャナ２０５からコントローラユニット２０１に通知されたエラーコードやアラームコードを管理する役割を持つ。
【００４３】
ここで、エラーコードは、複合機１２０において発生したエラーの種別を示す識別情報である。エラーコードは、例えば、Ｅ００００００―１１１１などの文字や数字の列で通知される。
【００４４】
例えば、プリンタ２０４に含まれる定着器の温度が所定の温度を超えてしまった場合には、高温エラーを示すエラーコードがコントローラユニット２０１に通知される。また例えば、スキャナコントローラユニット２０３内のＲＯＭ３１４に対するデータの書き込みに失敗した場合には、書き込みエラーを示すエラーコードがコントローラユニット２０１に通知される。
【００４５】
アラームコードは、複合機１２０においてエラーは発生していないものの、将来エラーの発生を引き起こすような事象が発生している場合に、当該事象の種別を示す識別情報である。アラームコードもエラーコードと同様に、Ａ１２−３４５６などの文字や数字の列で通知される。例えば、トナー残量が閾値を下回り、トナー切れが近づいていると判断された場合に、トナー無しアラートを示すアラームコードがコントローラユニット２０１に通知される。
【００４６】
状態管理モジュール４０８は、通知されたエラーやアラームに関する情報を状態管理Ｄａｔａ  Ｂａｓｅ４０９（以下、「状態管理ＤＢ」と記載する）へ記録する。また状態管理モジュール４０８は、後述する診断モジュール４０６、診断モジュール４１５、又は、診断モジュール４２５により診断された診断結果を示すユニットコードも状態管理ＤＢ４０９へ記録する。本実施形態では状態管理モジュール４０８は、エラーの種別を示すエラーコードと、当該エラーの原因を示すユニットコードとを関連付けて状態管理ＤＢに記憶する制御を行う。ユニットコードについては、図５を用いて後述する。
【００４７】
検知モジュール４０４は、コントローラユニット２０１におけるエラーの発生を検知する。検知モジュール４０４は、例えばセンサを用いて、コントローラユニット２０１の異常状態を検知する。
【００４８】
特定モジュール４０５は、検知モジュール４０４が検知したエラーの種別を特定する。特定モジュール４０５は、発生したエラーの種別を判別して、エラー情報（エラーコード）を出力する。
【００４９】
診断モジュール４０６は、コントローラユニット２０１においてエラーが発生した場合に、特定モジュール４０５が特定したエラー種別に対応する診断処理を実行する。エラー種別と当該種別のエラーが発生したときに実行すべき診断処理を示す診断処理情報は、ＲＯＭ３０２またはＨＤＤ３０４に予め記憶されている。診断モジュール４０６は、エラー発生が発生すると、当該エラーのエラーコードと、診断処理情報とに基づいて、実行すべき診断処理の内容を決定する。診断モジュール４０６は、診断処理を実行することにより、エラーを引き起こした部品、及び、エラーを解消するための処置（対処方法）を特定する。そして、診断モジュール４０６は、診断結果に基づいてユニットコードを生成する。ユニットコードについては、図５を用いて後述する。制御モジュール４０１は、操作部制御モジュール４０２を制御して、生成されたユニットコードを操作部２０６の表示部に表示させる。
【００５０】
＜ファームウェア４１０の構成＞
ファームウェア４１０は、プリンタコントローラユニット２０２の各構成を統括的に制御するためのファームウェアである。制御モジュール４１１は、コントローラユニット２０１からＩ／Ｆ制御モジュール４１２を介して受信した印刷指示に従って印刷処理を実行する。制御モジュール４１１は印刷処理においてエラーが発生すると、診断モジュール４１５に対して診断処理の実行を依頼する。
【００５１】
検知モジュール４１３（第１の検知手段）は、プリンタコントローラユニット２０２及びプリンタ２０４におけるエラーの発生を検知する。検知モジュール４１３は、例えばセンサを用いて、プリンタコントローラユニット２０２又はプリンタ２０４の異常状態を検知する。
【００５２】
特定モジュール４１４（第１の特定手段）は、検知モジュール４１３が検知したエラーの種別を特定する。特定モジュール４１４は、発生したエラーの種別を判別して、エラー情報（エラーコード）を出力する。
【００５３】
診断モジュール４１５は、プリンタコントローラユニット２０２においてエラーが発生した場合に、発生したエラー種別に対応する診断処理を実行する。エラー種別と当該種別のエラーが発生したときに実行すべき診断処理を示す診断処理情報は、ＲＯＭ３１１に予め記憶されている。診断モジュール４１５は、エラー発生が発生すると、当該エラーのエラーコードと、診断処理情報とに基づいて、実行すべき診断処理の内容を決定する。診断モジュール４１５は、診断処理を実行することにより、エラーを引き起こした故個所、及び、エラーを解消するための処置（対処方法）を特定する。そして、診断モジュール４１５は、診断結果に基づいてユニットコードを生成する。生成されたユニットコードは、制御モジュール４１１、Ｉ／Ｆ制御モジュール４１２、及び、ＩＦ制御モジュール４０７を介して制御モジュール４０１に通知される。制御モジュール４０１は、操作部制御モジュール４０２を制御して、エラーコードとユニットコードを操作部２０６の表示部に表示させる制御を行う。
【００５４】
＜ファームウェア４２０の構成＞
ファームウェア４２０は、スキャナコントローラユニット２０３の各構成を統括的に制御するためのファームウェアである。制御モジュール４２１は、Ｉ／Ｆ制御モジュール４２２を介して受信したスキャン指示に従ってスキャン処理を実行する。制御モジュール４２１はスキャン処理においてエラーが発生すると、診断モジュール４２５に対して診断処理の実行を依頼する。
【００５５】
検知モジュール４２３（第２の検知手段）は、スキャナコントローラユニット２０３及びスキャナ２０５におけるエラーの発生を検知する。検知モジュール４２３は、例えばセンサを用いて、スキャナコントローラユニット２０３又はスキャナ２０５の異常状態を検知する。
【００５６】
特定モジュール４２４（第２の特定手段）は、検知モジュール４２３が検知したエラーの種別を特定する。特定モジュール４２４は、発生したエラーの種別を判別して、エラー情報（エラーコード）を出力する。
【００５７】
診断モジュール４２５は、スキャナコントローラユニット２０３においてエラーが発生した場合に、発生したエラー種別に対応する診断処理を実行する。エラー種別と当該種別のエラーが発生したときに実行すべき診断処理を示す診断処理情報は、ＲＯＭ３１４に予め記憶されている。診断モジュール４２５は、エラー発生が発生すると、当該エラーのエラーコードと、診断処理情報とに基づいて、実行すべき診断処理の内容を決定する。診断モジュール４２５は、診断処理を実行することにより、エラーを引き起こした個所（部品）、及び、エラーを解消するための処置（対処方法）を特定する。そして、診断モジュール４２５は、診断結果に基づいてユニットコードを生成する。生成されたユニットコードは、制御モジュール４２１、Ｉ／Ｆ制御モジュール４２２、及び、Ｉ／Ｆ制御モジュール４０７を介して制御モジュール４０１に通知される。制御モジュール４０１は、操作部制御モジュール４０２を制御して、生成されたユニットコードを操作部２０６の表示部に表示させる。
【００５８】
本実施形態では、診断モジュール４０６、診断モジュール４１５、及び、診断モジュール４２５がそれぞれユニットコードを生成して出力する例について説明したが、これに限らない。例えば、各診断モジュールがユニットコードを生成するのではなく、ファームウェア４００に不図示のユニットコード生成モジュールを設けて、ユニットコード生成モジュールが統一的にユニットコードを生成することとしてもよい。診断モジュール４０６、診断モジュール４１５、及び、診断モジュール４２５は、ユニットコード生成モジュールに診断結果を通知する。通知された診断結果に基づいて、ユニットコード生成モジュールがユニットコードを生成して出力することとしてもよい。
【００５９】
＜ユニットコードの説明＞
次に、ユニットコードについて図５を用いて説明する。ユニットコードとは、診断処理の実行により特定された個所（部品）や、エラーを解消するための処置方法（対処方法）を示す識別情報である。エラーコードが発生したエラーの種類を示すエラー情報であるのに対し、ユニットコードは、当該エラーが発生した原因とその解消方法を示す診断情報である。
【００６０】
ユニットコード５０１は、例えば数字や文字の列で表される。ユニットコード５０１は、ユニット識別情報５０２、サブユニット識別情報５０３、部品識別情報５０４、処置識別情報５０５、及び、発生区分情報５０６を含む。ユニットコード５０１の前又は後ろ等に、当該コードがユニットコードであることを示す「Ｕ」などの文字を付すこととしてもよい。
【００６１】
ユニット識別情報５０２は、複合機１２０においてエラー発生の原因となった部品を含む部品群から構成されるユニットを示す。ここで、ユニット及び後述のサブユニットは、部品交換される単位を意味する。すなわち、ユニットに含まれる複数の部品のうち一部の部品が原因でエラーが発生した場合に、当該一部の部品を含むユニット全体が交換される。あるいは、後述するサブユニットに含まれる複数の部品のうち一部の部品が原因でエラーが発生した場合に、当該一部の部品を含むサブユニット全体が交換される。ただし、特定の部品については、ユニット単位で部品交換がなされないこととしてもよい。すなわち特定の部品が原因でエラーが発生した場合には、当該特定の部品のみについて部品交換がなされることとしてもよい。
【００６２】
ユニットとは、例えば、コントローラユニット２０１、ＨＤＤ３０４、プリンタ２０４内の定着ユニット、ドラムユニット、現像ユニット、ＩＴＢユニット、及び、トナーカートリッジなどである。
【００６３】
サブユニット識別情報５０３は、ユニット識別情報５０２が示すユニットを構成する一又は複数のサブユニットのうち、エラー発生の原因となった部品を含むサブユニットを示す。例えば、ユニット識別情報５０２がエラー発生の原因となったユニットとしてドラムユニットを示す場合、サブユニット識別情報５０３は、エラー発生の原因となったユニットとしてシアン、マゼンタ、イエロー、及び、ブラックのいずれかのドラムユニットを示す。
【００６４】
このように、本実施形態に係るユニットコード５０１は、エラー発生の原因となった部品を含む部品群であるユニットを示すユニット識別情報５０２を含む。さらに、ユニットコード５０１は、当該部品群を構成する一又は複数のサブユニットのうちエラーの発生の原因となった部品を含むサブユニットを示すサブユニット識別情報５０３を含む。サブユニット識別情報５０３の表示は必須ではなく、表示しないこととしてもよい。
【００６５】
部品識別情報５０４は、ユニット識別情報５０２が示すユニットに含まれる複数の部品のうち、エラー発生の原因となった部品を示す。例えば、ユニット識別情報５０２がエラー発生の原因となったユニットとしてメイン駆動ユニットを示す場合、サブユニット識別情報５０３は、エラー発生の原因となったユニットとして例えば、以下の部品のいずれかを示すことができる。すなわち、ＢＫドラムモータ、ＣＬドラムモータ、現像モータＹ、現像モータＭ、現像モータＣ、及び、現像モータＫなどの部品のうちいずれかを示すことができる。
【００６６】
サブユニット識別情報５０３は、部品交換の単位としてのサブユニットを表すのに対し、部品識別情報５０４は、交換の単位であるか否かに関わらず、特定の部品を表す点で異なる。
【００６７】
処置識別情報５０５は、エラーが発生したユニットや部品に対して必要な処置を示す情報である。処置識別情報５０５は、発生したエラーを解消するための対処方法を示す。例えば、必要な対処方法として、「交換が必要」、「故障の可能性が高いので確認が必要」、「清掃が必要」、及び、「調整が必要」などが含まれる。処置識別情報５０５により、故障が確定しており交換が必要なのか、あるいは、故障の可能性があるという診断にとどまるのかなどをサービスパーソン又はユーザは見分けることができる。
【００６８】
このように、制御モジュール４０１は、操作部制御モジュール４０２を制御して、診断情報として、診断モジュール４１５が特定した部品、及び、特定した対処方法を含む情報を表示部に表示させる制御を行う。
【００６９】
発生区分情報５０６は発生区分を表し、エラー発生の原因となったユニットがどこに搭載されているかを特定するために用いる情報である。例えば、エラー発生の原因となったユニットが、複合機１２０の本体を構成するユニットなのか、または、フィニッシャ、パンチャ、スタッカ等の複合機１２０のオプション装置を構成するユニットなのかを示す情報である。オプション装置とは、複合機１２０に着脱可能な装置である。複合機１２０は、オプション装置なしに動作可能である。オプション装置は、例えばフィニッシャ、パンチャ、スタッカ等、印刷された成果物に対する後処理を行う装置である。複合機１２０にオプション装置を装着することにより、複合機１２０の機能を拡張することができる。
【００７０】
＜印刷エラー時のユニットコード表示フロー＞
次に複合機１２０における、ユニットコードの表示処理について図６を用いて説明する。図６では、複合機１２０が印刷処理を実行している最中にプリンタ２０４でエラーが発生し故障診断が実行される例について説明する。本フローチャートで示す手順はコントローラユニット２０１の、ＲＡＭ３０３、ＲＯＭ３０２、ＨＤＤ３０４の少なくともいずれかの記憶手段に記憶されたプログラムを、ＣＰＵ３０１が実行することにより実現される。
【００７１】
制御モジュール４０１は、操作部Ｉ／Ｆ３０６からの印刷指示を受信する（Ｓ６０１）と、画像処理モジュール４０３に対して画像データの生成を指示する。
【００７２】
画像処理モジュール４０３は、ＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）などで記述された画像データに基づいて、プリンタ２０４が解釈可能な形式の画像データへの変換処理を実行する（Ｓ６０２）。
【００７３】
制御モジュール４０１は、画像処理モジュール４０３が生成した画像データの印刷処理をＩ／Ｆ制御モジュール４０７に依頼する。Ｉ／Ｆ制御モジュール４０７は、プリンタコントローラユニット２０２へ画像の印刷処理を依頼する。プリンタコントローラユニット２０２は、プリンタ２０４を制御して、依頼された印刷処理を実行する（Ｓ６０３）。プリンタコントローラユニット２０２による印刷制御処理については図８を用いて後述する。
【００７４】
制御モジュール４０１は、処理結果として印刷処理が正常に終了したことを示す正常終了情報、又は、正常に終了しなかったことを示すエラー情報をプリンタコントローラユニット２０２から受信する。エラー情報は、エラーコードの形式で通知される。エラーコードは、発生したエラーの種別を示す情報である。
【００７５】
制御モジュール４０１は、受信した情報に基づいて、印刷処理においてエラーが発生したか否かを判定する（Ｓ６０４）。本実施形態において制御モジュール４０１は、正常終了情報を受信した場合には、印刷処理が正常終了したと判定する。一方制御モジュール４０１は、エラー情報としてのエラーコードを受信した場合には、印刷処理においてエラーが発生したと判定する。
【００７６】
または、プリンタコントローラユニット２０２からの正常終了情報の通知処理は省略してもよい。制御モジュール４０１は、所定時間内にエラー情報が通知されなかったことを以て、印刷処理が正常終了したと判定することとしてもよい。
【００７７】
制御モジュール４０１が、印刷処理が正常終了したと判定した場合（ステップＳ６０４においてＮＯ）、エラーコード及びユニットコードは表示せずに処理を終了する。
【００７８】
一方制御モジュール４０１が、印刷処理においてエラーが発生したと判定した場合（ステップＳ６０４においてＹＥＳ）、制御モジュール４０１は当該エラーに対応するユニットコードを取得済であるか判定する（Ｓ６０５）。
【００７９】
本実施形態においてユニットコードは、プリンタコントローラユニット２０２内の診断モジュール４１５が生成して、コントローラユニット２０１内の制御モジュール４０１に通知される。診断モジュール４１５は、エラーが発生すると、エラーの発生の原因となった部品と処置方法を特定するための診断処理を実行し、診断結果としてユニットコード５０１を制御モジュール４０１に出力する。
【００８０】
ユニットコードは、エラー発生の原因として一つの部品が検出される毎に、一つのユニットコードが出力される。例えば、診断の結果、複数の部品が故障している（交換が必要）と診断された場合には、複数のユニットコード５０１が制御モジュールに出力される。また本実施形態では、診断の結果、複数の部品が故障している可能性があると診断された場合にも、複数のユニットコード５０１が制御モジュールに出力される。部品が故障している（交換が必要）なのか、部品が故障している可能性があるのかは、ユニットコードの処置識別情報５０５を確認することによりユーザ又はサービスパーソンが判別することができる。
【００８１】
なお、診断モジュール４１５は、診断処理の実行中であることを示す情報を制御モジュール４０１に通知することとしてもよい。
【００８２】
また、エラーが発生時に診断モジュール４１５が自動的に診断処理を開始するのではなく、エラー情報を受信した制御モジュール４０１が診断処理の開始を指示したことに従い、診断モジュール４１５が診断処理を開始することとしてもよい。
【００８３】
図６の説明に戻る。制御モジュール４０１は、発生したエラーに対応するユニットコードが取得されていないと判断した場合（Ｓ６０５でＮＯ）には、ステップＳ６０５の処理を繰り返す。なお、エラー発生を検知してから所定時間が経過してもユニットコードが取得されない場合には、診断不能あるいは診断に失敗したことを示すユニットコードを生成して操作部２０６に表示することとしてもよい。また、ステップＳ６０５の処理を所定回数繰り返してもユニットコードが取得されない場合にも同様に、診断不能又は診断失敗であったことを示すユニットコードを操作部２０６に表示してもよい。
【００８４】
制御モジュール４０１は、発生したエラーに対応するユニットコードが取得された場合（Ｓ６０５でＹＥＳ）、状態管理モジュール４０８を制御して、状態管理ＤＢ４０９に以下の情報を記録させる（Ｓ６０６）。すなわち、状態管理ＤＢ４０９は、制御モジュール４０１の指示に従って、日付や複合機１２０のデバイスシリアルＮｏと、発生したエラーのエラーコードと、取得したユニットコードを関連づけて記録する。エラーコードとユニットコードを記録することにより、エラー発生の状況や原因を事後的に解析したり、記録した内容をサーバ１３０に通知して、サービスセンタにエラーの解消のための対応を依頼したりすることができる。
【００８５】
続いて、制御モジュール４０１は操作部制御モジュール４０２を制御し、取得したエラーコードとユニットコードを操作部２０６の表示部に表示させる（Ｓ６０７）。エラーコードとユニットコードを表示部に表示した例を図７（ａ）に示す。
【００８６】
なお、表示対象となるユニットコードの数が閾値以上の場合には、表示対象のユニットコードの数が所定の数以上であること、あるいは、エラーの原因を特定できないことを示すユニットコードをステップＳ６０７において操作部に表示させることとしてもよい。表示対象のユニットコードの数が閾値（所定の数）以上であることを示すユニットコードは例えば、ユニット識別情報５０２をＸＸＸＸで表すなど、特定の文字列とすることができる。
【００８７】
表示対象のユニットコードの数が所定の数以上であることを示すユニットコードは、診断モジュール４１５が生成して制御モジュール４０１に通知する。制御モジュール４０１は、操作部制御モジュール４０２に、受信したユニットコードに対応するメッセージを表示させる制御を行う。操作部制御モジュール４０２は、制御モジュール４０１が表示対象となるユニットコードの数が所定の数以上であることを示すユニットコードを取得した場合に、ユニットコードをそのまま表示部に表示させてもよい。あるいは、図７（ｃ）に示すように、制御モジュール４０１は、ユニットコードを解析して、エラー発生の原因となったユニットが特定できないことを示すメッセージなどを生成してさらに表示部に表示させることとしてもよい。あるいは、制御モジュール４０１は、エラー発生の原因として、複数のユニットの故障が検出されたことを示すメッセージを表示部に表示させることとしてもよい。
【００８８】
あるいは、制御モジュール４０１は、診断モジュール４１５から一つのエラーに対して所定数以上のユニットコードを取得した場合に、ユニットが特定できないことを示すユニットコードを制御モジュール４０１が生成して表示部に表示させることとしてもよい。
【００８９】
以上のようにして、制御モジュール４０１は、印刷処理中にエラーが発生した場合に、エラーの要因となったユニットを示すユニットコードを取得して表示部に表示させることができる。
【００９０】
さらに、取得したユニットコードを状態管理ＤＢ４０９に記憶させることにより、エラーが発生した直後でなくても、サービスパーソンが複合機１２０をサービスモードで動作させて、事後的にユニットコードを確認することができる。サービスモードとは、所定の権限を有するユーザのみが操作可能な設定画面を表示させるモードである。
【００９１】
例えば、制御モジュール４０１の制御により、ユーザが所定の権限を有するかを判定し、ユーザが所定の権限を有すると判断した場合に、サービスモードで複合機１２０を動作させることができる。複合機１２０は、サービスモードで動作している場合に、状態管理ＤＢ４０９に記憶されたエラーコードとユニットコードを表示部に表示させることができる。
【００９２】
例えば、制御モジュール４０１は、ユーザの識別情報とパスワードの組み合わせを用いた認証に成功した場合に、ユーザが所定の権限を有すると判定することができる。あるいは、サービスパーソンのみが知りうる所定の操作が複合機１２０に対してなされた場合に、ユーザが所定の権限を有すると判定することができる。
【００９３】
サービスモードでは、複合機１２０の設定の調整や、動作履歴などを確認することが可能である。上述の通り、エラーコードとユニットコードが関連付けて記憶されるため、サービスパーソンは、発生したエラーの種別とその原因が関連付けられた状態で動作履歴を確認することができる。
【００９４】
あるいは、複合機１２０の動作履歴（ログ）をサーバ１３０に定期的に送信する機能が有効である場合には、記憶したユニットコードをサーバ１３０に送信することとしてもよい。サーバ１３０のオペレータは、サーバ１３０に送信された動作履歴を確認して、複合機１２０を管理することができる。ユニットコードはログの定期送信と同じタイミングでサーバ１３０に送信してもよいし、エラーが発生したタイミングでサーバ１３０に送信してもよい。
【００９５】
またあるいは、サーバ１３０によって複合機１２０を管理する機能の有効無効にかかわらず、エラー発生に応じてユニットコードをサーバ１３０に送信することとしてもよい。ユニットコードに加えて、当該ユニットコードに関連付けて状態管理ＤＢ４０９に記憶されているエラーコードをネットワークを介してサーバ１３０に送信することとしてもよい。
【００９６】
図６では、印刷処理中にエラーが発生した例について説明したが、スキャン処理中にエラーが発生した場合にも同様にして、制御モジュール４０１はユニットコードを表示部に表示させることができる。すなわち、スキャナコントローラユニット２０３のファームウェア４２０に含まれる診断モジュール４２５が診断処理を実行し、診断結果をユニットコードとして制御モジュール４０１に出力する。制御モジュール４０１はステップＳ６０５からＳ６１０の処理を実行して、ユニットコードの表示制御を行うことができる。
【００９７】
＜印刷処理フロー＞
次に、プリンタコントローラユニット２０２内の診断処理フローについて図８を用いて説明する。なお図８のフローチャートで示す手順は、プリンタコントローラユニット２０２において、ＲＡＭ３１２、ＲＯＭ３１１のいずれかの記憶手段に記憶され、ＣＰＵ３１０により実行される。
【００９８】
プリンタコントローラユニット２０２がコントローラユニット２０１から印刷処理の実行命令を受信（Ｓ８０１）すると、制御モジュール４１１がプリンタ２０４に対して印刷処理を依頼する（Ｓ８０２）。
【００９９】
印刷処理においてエラーが発生した場合（ステップＳ８０３においてＹＥＳ）、制御モジュール４１１は、発生したエラーに対応するエラー情報（エラーコード）をコントローラユニット２０１に出力する（Ｓ８０４）。印刷処理が正常に行われた場合（ステップＳ８０３においてＮＯ）には、制御モジュール４１１は、印刷処理を終了する。
【０１００】
さらに制御モジュール４１１は、診断モジュール４１５に対して診断処理の実行を依頼する（Ｓ８０５）。診断処理の詳細については図９を用いて後述する。
【０１０１】
診断処理が終了すると、制御モジュール４１１は診断結果をＩ／Ｆ制御モジュール４０７を介しコントローラユニット２０１へ通知し、画像印刷処理のフローを終了する（Ｓ８０６）。
【０１０２】
以上、印刷処理を実行中にエラーが発生した場合に診断処理を行う例について説明したがこれに限らない。スキャナ２０５及びスキャナコントローラユニット２０３によってスキャン処理が実行されている間にエラーが発生した場合にも同様に、診断モジュール４２５による診断が開始される。そして、診断結果に対応するユニットコードがスキャナコントローラユニット２０３からコントローラユニット２０１に出力される。
【０１０３】
＜診断処理フロー＞
次に診断モジュール４１５による診断処理フローについて図９を用いて説明する。なお図９のフローチャートに示す手順は、プリンタコントローラユニット２０２において、ＲＡＭ３１２、ＲＯＭ３１１のいずれかの記憶手段に記憶され、ＣＰＵ３１０により実行される。
【０１０４】
診断モジュール４１５は、ステップＳ８０５において診断処理が開始されると、ステップＳ８０４において出力したエラーコードに対応付けられた診断プログラムを特定する（Ｓ９０１）。実行すべき診断プログラム（診断処理の内容）は、例えば、エラーコードごとに予めＲＯＭ３１１等に記憶しておくことができる。
【０１０５】
次に診断モジュール４１５は、コントローラユニット２０１に対して診断処理を開始したことを通知する（Ｓ９０２）。
【０１０６】
続いて診断モジュール４１５は、ステップＳ９０１において特定した診断プログラムを用いて、診断処理を開始する（Ｓ９０３）。同じエラーコードが出力される場合であっても、エラーが発生した原因の候補は複数存在する場合がある。ステップＳ９０３の診断処理は、これら複数の候補のうちから、エラー発生の原因となった事象又は部品を特定するための処理である。
【０１０７】
エラーコードは、発生した事象に対応付けられた識別情報である。例えば、スキャナコントローラユニット２０３の回路基盤において電源エラーが発生した場合には、電源エラーを示すエラーコードがコントローラユニット２０１に通知される。
【０１０８】
電源エラーが発生する原因として、断線していたり、ソフトウェアに問題が発生していたりするなど、複数の原因が考えられる。そこで、診断モジュール４１５は、書き込みエラー発生時に実行すべき導通テスト等を行うことにより、複数の原因の候補のうちから実際の原因を特定する（Ｓ９０４）。
【０１０９】
診断モジュール４１５は、エラー発生の原因を必ずしも１つに絞り込む必要はない。例えば、複合的な要因によりエラーが発生している場合には、複数の原因が特定される。また、診断モジュール４１５は、診断の結果、エラー発生の原因である可能性がある複数の候補を検出することができる。本実施形態では、一つの原因に対して、一つのユニットコードが対応する例について説明する。
【０１１０】
診断モジュール４１５は、ステップＳ９１５において、診断処理（エラー原因の特定）が正常に行われたか（成功したか）を判定する。診断処理が不成功となる場合の例として、例えば診断処理中に複合機１２０の本体カバーが開けられたため、診断処理が中断された場合などが該当する。診断処理中はユーザが本体カバーの開閉を行われないようにするための警告メッセージを表示部に表示させることとしてもよい。
【０１１１】
原因の特定処理が正常に終了しなかったと判定した場合（Ｓ９１５でＮＯ）には、診断処理モジュールは、診断処理が成功しなかったことを示すユニットコードを出力して（Ｓ９１６）処理を終了する。診断処理が成功しなかったことを示すユニットコードとは、例えば、ユニット識別情報５０２をＸＸＸＸで表し、処置識別情報５０５をＣで表すなど、特定の文字列とすることができる。
【０１１２】
一方、原因の特定に成功したと判定した場合（Ｓ９１５においてＹｅｓ）、診断モジュール４１５は、特定した原因の件数が所定の範囲内であるかを判定する（Ｓ９０５）。ステップＳ９０５の処理は、表示対象となるユニットコードの数が所定の範囲内であるかを判定する処理に相当する。所定の範囲内の件数とは、本実施形態では、０より多く、閾値未満の件数である。本実施形態では一つの原因に一つのユニットコードが対応する例について説明するが、これに限らない。複数の原因が検出されたが、同じユニットの内の部品の故障が原因である場合には、複数の原因に対し一つのユニットコードが表示されることとしてもよい。
【０１１３】
原因の件数が所定の範囲内であると判定した場合には、診断モジュール４１５は、特定した一又は複数の原因のうちから、未選択の原因を選択する（Ｓ９０６）。
【０１１４】
つぎに、診断モジュール４１５は、選択した原因について、エラーを復旧するための処置方法を決定する（Ｓ９０７）。処置方法とは、例えば、「交換が必要」、「清掃が必要」、及び、「調整が必要」などである。ここで特定された処置方法は、図５に示したユニットコードの処置識別情報５０５に反映される。
【０１１５】
さらに、診断モジュール４１５は、上記の処置を実行すべき対象となるユニットを特定する（Ｓ９０８）。すなわち、交換が必要なユニット、清掃が必要なユニット、あるいは、調整が必要なユニットを特定する。ここで特定されたユニットは、図５のユニット識別情報５０２、サブユニット識別情報５０３、及び、部品識別情報５０４等に反映される。
【０１１６】
診断モジュール４１５は、ステップＳ９０３からステップＳ９０８における診断の結果に基づいてユニットコードを生成する（Ｓ９０９）。
【０１１７】
診断モジュール４１５は、ステップＳ９０４において特定した一又は複数の原因のすべてについてユニットコードを生成したかを判定する（Ｓ９１０）。
【０１１８】
ユニットコードを生成していない原因がある場合には、ステップＳ９０６以降の処理を繰り返す。一方、すべての原因についてユニットコードを生成した場合（Ｓ９１０でＹＥＳ）には、生成したユニットコードを制御モジュール４１１に出力して処理を終了する（Ｓ９１１）。
【０１１９】
また、ステップＳ９０５において特定した原因の件数が所定の範囲外であると判定した場合には、診断モジュール４１５はステップＳ９１２の処理を実行する。ステップＳ９１２では、特定した原因の件数が０件（すなわち、原因が特定されなかった）であるかを判定する。
【０１２０】
原因が特定されなかった場合（Ｓ９１２でＹＥＳ）、診断モジュール４１５は、原因を特定できなかったことを示すユニットコードを出力する（Ｓ９１３）。原因が特定できない場合とは、例えば、エラー発生個所が診断対象外のユニット（例えば、フィニッシャーなど）である場合などが該当する。エラー発生の原因となったユニットが特定できないことを示すユニットコードは例えば、ユニット識別情報５０２をＸＸＸＸで表し、処置識別情報５０５をＡで表すなど、特定の文字列とすることができる。
【０１２１】
また、特定した原因の件数が０件ではない場合（Ｓ９１２でＮＯ）、診断モジュール４１５は、原因の候補の数が閾値以上であることを示すユニットコードを出力する（Ｓ９１４）。すなわち、表示対象となる診断情報の数が所定の数以上である場合には、表示対象となる複数の診断情報に替えて、診断情報の数が所定件数以上であることを示す診断情報を表示部に表示させる。診断情報の数が所定件数以上であることを示すユニットコードは例えば、ユニット識別情報５０２をＸＸＸＸで表し、処置識別情報５０５をＢで表すなど、特定の文字列とすることができる。原因の候補の数が閾値以上である場合には、特定したすべての原因の候補についてユニットコードを出力しても、ユーザやサービスパーソンによる故障原因の特定に貢献しない可能性がある。そこで、そのような場合には、原因が特定できなかったことを示すユニットコードを出力する。あるいは、図７（ｂ）に示すように、表示対象となるユニットコードの数が所定の数以上である場合には、エラーコードを表示部に表示させ、かつ、ユニットコードを表示部に表示させないようにしてもよい。ただし、これに限らず、特定した原因の数が閾値以上である場合に、それぞれの原因に対応するユニットコードを生成して出力することとしてもよい。
【０１２２】
以上のようにして、診断モジュール４１５は、ユニットコードを出力することができる。なお本実施形態ではプリンタコントローラユニット２０２にて診断処理を場合の例について説明したがこれに限らない。エラー発生個所がスキャナコントローラユニット２０３、スキャナ２０５、あるいは、コントローラユニット２０１である場合も各ユニットの診断モジュールにて同様の診断処理を実行可能である。
【０１２３】
本実施形態によれば、複合機１２０においてエラーが発生した際に、複合機１２０自身が故障診断を実行してエラーの発生要因となったハードウェアの故障個所を特定する。そして複合機１２０は、故障個所に対応したエラー復旧のための対処方法をユーザに提示する。
【０１２４】
エラー情報（エラーコード）を表示するだけでは、発生したエラーの内容は特定できるものの、当該エラーが何に起因するのかを特定することができなかった。従って、サービスパーソンが手作業で診断を行い、エラーの原因を特定するという手間が発生していた。
【０１２５】
上記の構成によれば、エラーが発生した複合機１２０自身が故障診断テストを実行するので、サービスパーソンが手作業で診断を行う手間を省くことができる。
【０１２６】
また、複合機１２０自身が診断を行うので、複合機１２０以外の装置が複合機１２０から情報を取得して診断する場合と比べてより詳細な診断を行うことができる。従って、実際の故障原因である可能性の高い診断結果を出力することができる。
【０１２７】
従来、サービスパーソンは、故障の発生の連絡を受けると、出動してまず故障診断処理を行い、診断結果に基づいて、交換すべき部品を特定する。場合によっては必要な部品をサービスセンタに取りに戻り再出動するため、サービスパーソンの出動回数が増えたり、故障状態の解消に時間がかかったりしてしまっていた。また、出動回数を減らすためには、サービスパーソンは多くの種類の交換部品を予め所持して出動する必要があった。
【０１２８】
本実施形態によれば、上述の通り、ユニットコードは状態管理ＤＢに４０６に保存され、サーバ１３０に送信可能である。ユニットコードは、交換が必要なユニットを示す情報を含むため、サービスパーソンは、エラー修復に必要な部品を予め用意して出動することができる。従って、サービスパーソンの出動回数を低減させることができる。
【０１２９】
（第２の実施形態）
本実施形態では、発生したエラーに１対１で対応するユニットコードが存在する場合の例について説明する。
【０１３０】
ハードウェア、及び、ファームウェアの構成は第１の実施形態において説明した内容と同様であるため、説明を省略する。また、コントローラユニット２０１が実行する処理フローについても第１の実施形態において図６を用いて説明した内容と同様であるため、説明を省略する。また、プリンタコントローラユニット２０２による印刷制御処理についても第１の実施形態において図８を用いて説明した内容と同様であるため、説明を省略する。
【０１３１】
本実施形態に係る診断モジュール４１５が実行する診断処理フローについて、図１０を用いて説明する。図１０に示す各手順は、プリンタコントローラユニット２０２において、ＲＡＭ３１２、ＲＯＭ３１１のいずれかの記憶手段に記憶され、ＣＰＵ３１０により実行される。
【０１３２】
診断モジュール４１５は、制御モジュール４１１から診断処理の実行を指示されると、まず、発生したエラーに対応するエラーコードに一対一対応するユニットコードが存在するかを判定する（Ｓ１３０１）。エラーコードに一対一対応するユニットコードが存在する場合とは、発生したエラーコードが所定のエラーコードであり、当該エラーコードの発生を以てエラー箇所の特定と対処方法の特定が可能な場合である。ＲＯＭ３１１、あるいは、ＨＤＤ３０４は、当該所定のエラーコードに対応付けて、所定のエラー箇所と所定の対処方法を示すユニットコードを記憶する。
【０１３３】
所定のエラーコードに一対一対応するユニットコードはあらかじめ定義しておき、プログラム内にハードコーディングするか、対応関係のテーブルを内部的に保持される。
【０１３４】
診断モジュール４１５は、発生したエラーコードに予め対応付けられたユニットコードが存在しないと判定した場合（Ｓ１３０１においてＮＯ）、ステップＳ９０１からＳ９１４の処理を実行する。
【０１３５】
一方診断モジュール４１５は、発生したエラーコードに予め対応付けられた所定のユニットコードが存在すると判定した場合（Ｓ１３０１においてＹＥＳ）、当該ユニットコードを出力して（Ｓ１３０２）処理を終了する。
【０１３６】
このようにして、診断モジュール４１５は、発生したエラーが所定の種別のエラーでない場合には、発生したエラーの種別に対応付けられた診断処理を実行することにより該エラー発生の原因となった部品を特定する。また、発生したエラーが所定の種別のエラーである場合には、診断処理を実行せず、所定の種別のエラーに対応付けられた所定の部品を示す情報を該エラー発生の原因となった部品として特定する。
【０１３７】
本実施形態によれば、発生したエラーコードについて、一意にユニットコードが特定できる場合においては、導通テストなどの診断処理を実行せずに、ユニットコードを生成することが可能となる。その結果、時間がかかる可能性のある診断処理を実行することなく、ユニットコードの出力を行うことが可能となる。
【０１３８】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【０１３９】
１２０  複合機
２０１  コントローラユニット
２０２  プリンタコントローラユニット
２０３  スキャナコントローラユニット
４０１  制御モジュール
４０４  検知モジュール
４０５  特定モジュール
４０６  診断モジュール
４０２  操作部制御モジュール
４１３  検知モジュール
４１４  特定モジュール
４１５  診断モジュール
４２３  検知モジュール
４２４  特定モジュール
４２５  診断モジュール
【図１】
2019192965.tif 000003
【図２】
2019192965.tif 000004
【図３】
2019192965.tif 000005
【図４】
2019192965.tif 000006
【図５】
2019192965.tif 000007
【図６】
2019192965.tif 000008
【図７】
2019192965.tif 000009
【図８】
2019192965.tif 000010
【図９】
2019192965.tif 000011
【図１０】
2019192965.tif 000012