(57)【要約】【課題】車両における複数の異常の発生順序を正しく容易に把握可能にする。【解決手段】車載ＥＣＵにおいて、診断対象毎に設けられた各異常検出部２１は、自身の診断対象が異常判定条件を満たして該診断対象に異常が発生していると判定した回数が異常確定閾値に達すると、異常であると確定判定し、また、診断対象が正常判定条件を満たしていると判定した回数が正常確定閾値に達すると、正常であると確定判定し、また、異常が発生していると判定したが未だ異常とも正常とも確定判定していない期間中は自身の異常判定実行中フラグをオンする。更に、各異常検出部（例えば２１ｂ）は、自身の診断対象に異常が発生していると最初に判定した時（２）に、それの識別情報（Ｐ０１３０）を異常発生部位情報として記憶部に記憶し、上記フラグがオンになっている他の異常検出部（例えば２１ａ）の診断対象の識別情報（Ｐ０１３５）も異常関連情報として記憶部に記憶する。【選択図】図８
2011163769.tif 000002
【特許請求の範囲】
【請求項１】
車両における複数の診断対象毎に、その診断対象の異常を検出するための異常検出部を備えると共に、
前記各異常検出部は、
診断対象が異常判定条件を満たしているか否かにより、該診断対象に異常が発生しているか否かを判定する異常発生判定手段と、
前記異常発生判定手段により異常が発生していると判定された回数である異常判定回数が、異常確定閾値に達すると、前記診断対象が異常であると確定判定する異常確定判定手段と、
前記診断対象が正常判定条件を満たしているか否かを判定すると共に、前記正常判定条件を満たしていると判定した回数が正常確定閾値に達すると、前記診断対象が正常であると確定判定する正常確定判定手段と、
前記異常発生判定手段により異常が発生していると判定されたが、前記異常確定判定手段及び前記正常確定判定手段の何れにも確定判定されていない状態である異常判定実行中であるか否かを判定して、その判定結果を示す状態情報を生成する状態情報生成手段と、
を備えており、
更に、前記各異常検出部は、
前記異常発生判定手段によって自身の診断対象に異常が発生していると最初に判定された時である初回異常判定時に、自身の診断対象の識別情報を、異常発生部位情報として記憶部に記憶すると共に、他の異常検出部のうちで、前記状態情報が前記異常判定実行中を示している異常検出部を特定し、その特定した他の異常検出部の診断対象の識別情報を、異常関連情報として、前記記憶部に、前記異常発生部位情報としての自身の診断対象の識別情報と対応付けて記憶すること、
を特徴とする故障診断用情報収集装置。
【請求項２】
請求項１に記載の故障診断用情報収集装置において、
前記各異常検出部は、
前記異常確定判定手段によって自身の診断対象が異常であると確定判定された時である異常確定時にも、他の異常検出部のうちで、前記状態情報が前記異常判定実行中を示している異常検出部を特定し、その特定した他の異常検出部の診断対象の識別情報を、異常関連情報の１つである異常確定時の異常関連情報として、前記記憶部に、前記異常発生部位情報としての自身の診断対象の識別情報と対応付けて記憶すること、
を特徴とする故障診断用情報収集装置。
【請求項３】
請求項１又は請求項２に記載の故障診断用情報収集装置において、
前記各異常検出部は、
前記特定した他の異常検出部から、その異常検出部における前記異常判定回数の前記異常確定閾値に対する割合を示す異常判定度合いを取得し、その異常判定度合いを、前記特定した他の異常検出部の診断対象の識別情報と一緒に、前記異常関連情報として前記記憶部に記憶すること、
を特徴とする故障診断用情報収集装置。
【請求項４】
請求項１ないし請求項３の何れか１項に記載の故障診断用情報収集装置において、
前記各異常検出部の診断対象の各々について、それと関連性がある他の診断対象を示す関連性情報を記憶した関連性情報記憶手段を備え、
前記各異常検出部は、
他の異常検出部のうちで、前記状態情報が前記異常判定実行中を示している異常検出部を特定する際に、前記関連性情報を参照して、自身の診断対象と関連性がある他の診断対象である関連診断対象を検出し、その関連診断対象に対応した異常検出部のみについて、前記状態情報が前記異常判定実行中を示しているか否かを判定すること、
を特徴とする故障診断用情報収集装置。
【請求項５】
請求項４に記載の故障診断用情報収集装置において、
前記関連性情報には、前記関連性がある他の診断対象の関連性の高さを示す関連度情報も含まれており、
前記各異常検出部は、
前記関連診断対象が複数ある場合、前記関連度情報に基づいて、自身の診断対象に対する前記各関連診断対象の関連性の高さ順を把握し、前記各関連診断対象に対応した異常検出部のうち、自身の診断対象との関連性が高い関連診断対象に対応した異常検出部についてほど、早い順番で、前記状態情報が前記異常判定実行中を示しているか否かの判定を行うこと、
を特徴とする故障診断用情報収集装置。
【請求項６】
請求項１ないし請求項５の何れか１項に記載の故障診断用情報収集装置において、
前記各異常検出部は、
自身の診断対象が、前記異常確定判定手段により異常であると確定判定されることなく、前記正常確定判定手段により正常であると確定判定されたなら、自身が前記記憶部に記憶した情報を該記憶部から消去すること、
を特徴とする故障診断用情報収集装置。
【請求項７】
請求項１ないし請求項３の何れか１項に記載の故障診断用情報収集装置において、
前記状態情報が前記異常判定実行中を示している異常検出部を特定可能な識別子が記録される異常判定実行中リストを備え、
前記各異常検出部は、
当該異常検出部の前記状態情報が前記異常判定実行中を示すものになると、前記異常判定実行中リストに、当該異常検出部を特定可能な識別子を記録し、当該異常検出部の前記状態情報が前記異常判定実行中でないことを示すものになると、前記異常判定実行中リストから、当該異常検出部を特定可能な識別子を消去する異常判定実行中リスト更新手段を備え、
更に、前記各異常検出部は、
他の異常検出部のうちで、前記状態情報が前記異常判定実行中を示している異常検出部を特定する際に、前記異常判定実行中リストを参照して、該異常判定実行中リストに記録されている前記識別子により、前記状態情報が前記異常判定実行中を示している異常検出部を特定すること、
を特徴とする故障診断用情報収集装置。
【請求項８】
請求項７に記載の故障診断用情報収集装置において、
前記各異常検出部は、
自身の診断対象が、前記異常確定判定手段により異常であると確定判定されることなく、前記正常確定判定手段により正常であると確定判定されたなら、自身が前記記憶部に記憶した情報を該記憶部から消去すること、
を特徴とする故障診断用情報収集装置。
【請求項９】
請求項１ないし請求項８の何れか１項に記載の故障診断用情報収集装置において、
前記異常検出部は、前記車両に搭載されて互いに通信する複数の電子制御ユニットの各々に１つ以上ずつ設けられ、
前記各電子制御ユニットは、
他の電子制御ユニットと通信するための通信手段と、
前記状態情報が前記異常判定実行中を示している異常検出部を有した他の電子制御ユニットを示すユニット識別子が記録されるユニットリストと、
当該電子制御ユニットに設けられている全ての異常検出部の前記状態情報が前記異常判定実行中でないことを示している状態から、当該電子制御ユニットに設けられている少なくとも１つの異常検出部の前記状態情報が前記異常判定実行中を示している状態に変化すると、当該電子制御ユニットのユニット識別子を、他の電子制御ユニットへ前記通信手段を介して送信するユニット識別子送信手段と、
他の電子制御ユニットの前記ユニット識別子送信手段によって送信されたユニット識別子が前記通信手段により受信されると、その受信されたユニット識別子を前記ユニットリストに記録する識別子記録手段と、
当該電子制御ユニットに設けられている少なくとも１つの異常検出部の前記状態情報が前記異常判定実行中を示している状態から、当該電子制御ユニットに設けられている全ての異常検出部の前記状態情報が前記異常判定実行中でないことを示している状態に変化すると、当該電子制御ユニットのユニット識別子の消去を要求する消去要求を、他の電子制御ユニットへ前記通信手段を介して送信する消去要求送信手段と、
他の電子制御ユニットの前記消去要求送信手段によって送信された消去要求が前記通信手段により受信されると、その消去要求が示すユニット識別子を前記ユニットリストから消去する識別子消去手段と、を備えており、
前記各異常検出部は、
他の異常検出部のうちで、前記状態情報が前記異常判定実行中を示している異常検出部を特定する際に、自身が設けられた電子制御ユニットの前記ユニットリストを参照し、該ユニットリストにユニット識別子があれば、そのユニット識別子が示す他の電子制御ユニットに対して、自身が前記記憶部に前記異常関連情報として記憶すべき情報を要求する異常関連情報要求を、自身が設けられた電子制御ユニットの前記通信手段を介して送信すると共に、その送信した異常関連情報要求に対して前記他の電子制御ユニットから送信された情報が、自身が設けられた電子制御ユニットの前記通信手段によって受信されると、その受信された情報を前記異常関連情報として前記記憶部に記憶し、
更に、前記各電子制御ユニットは、
他の電子制御ユニットから送信された前記異常関連情報要求が前記通信手段により受信されると、当該電子制御ユニットにおいて、前記状態情報が前記異常判定実行中を示している異常検出部を特定すると共に、その特定した異常検出部についての情報であって、前記異常関連情報として前記記憶部に記憶されるべき情報を取得し、その取得した情報を、前記異常関連情報要求の送信元である電子制御ユニットへ、前記通信手段を介して送信する異常関連情報送信手段、を備えていること、
を特徴とする故障診断用情報収集装置。
【請求項１０】
請求項１ないし請求項９の何れか１項に記載の故障診断用情報収集装置において、
他の装置から、前記記憶部に記憶された情報を要求する出力要求を受けると、前記記憶部に記憶されている情報を前記他の装置に出力する応答手段を備えていること、
を特徴とする故障診断用情報収集装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車両（自動車）における故障診断に関するものである。
【背景技術】
【０００２】
車両に搭載される電子制御ユニット（以下、ＥＣＵともいう）として、自己故障診断を実行し、故障（異常）を検出した時に、その故障内容を示す異常情報（いわゆるＤＴＣ：Ｄｉａｇｎｏｓｔｉｃ  Ｔｒｏｕｂｌｅ  Ｃｏｄｅ )と、その時の年月日時刻（時刻情報）とを記憶手段に保存するものがある（例えば、特許文献１参照）。
【０００３】
そして、この種のＥＣＵでは、診断対象に異常が発生しているか否かを判定する判定処理を、例えば定期的に行うと共に、その判定処理により異常が発生していると判定された回数が所定の異常確定閾値に達したなら、その時点で始めて診断対象が異常であると確定判定し（つまり、その時点で異常を検出したこととなり）、異常情報を記憶するようになっている。これは、誤検出を防止するためである。
【０００４】
また、ある診断対象の異常がきっかけとなって、他の診断対象の異常が検出される可能性がある。例えば、エンジンの排気中の酸素濃度（あるいは空燃比）を検出する酸素センサを、ヒータで適切な温度に加熱しつつ、その酸素センサの出力信号に基づいてエンジンへの燃料噴射量を制御する、といったＥＣＵの場合、ヒータに異常が生じたとすると、酸素センサの出力信号も異常な電圧値となるため、ヒータを診断対象とする異常検出処理によってヒータの異常が検出されるだけでなく、酸素センサを診断対象とする異常検出処理によって酸素センサの異常も検出されることとなる。
【０００５】
ここで、特許文献１の技術によれば、ある診断対象について、異常と確定判定された時に、異常情報と共に時刻情報（異常確定時の時刻情報）が記憶されるため、複数の診断対象について異常が検出された場合には、異常情報と共に記憶された時刻情報により、それら診断対象が異常と確定判定された順序は知ることができる。
【０００６】
しかし、一般に、異常が発生してから異常と確定判定されるまでの時間は、診断対象毎に異なるため、ある診断対象Ａの異常が原因で他の診断対象Ｂの異常が生じた場合に、本当は診断対象Ａの異常の方が早く発生しているのに、他の診断対象Ｂの異常の方が早く異常と確定判定される、といった異常検出順序の逆転が生じる場合がある。
【０００７】
そして、特許文献１の技術では、異常確定時の時刻情報を記憶するだけなので、こうした逆転現象が起きていることを知ることができない。つまり、複数の異常が検出された場合に、その原因（即ち、発端となった異常）を容易に見つけることができないという問題がある。
【０００８】
そこで、特許文献２では、異常確定時の時刻情報以外に、異常が発生していないと判定している状態から異常が発生していると判定した状態に転じた時の時刻情報（異常判定開始時の時刻情報）も記憶することで、複数の異常が検出された場合に、その異常判定開始時の時刻情報を見比べることにより、各異常の発生順序を知ることができるようにして、異常の原因を推定しやすくしている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開平７−１８１１１２号公報
【特許文献２】特開２００８−３０４３６７号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかし、上記特許文献２の技術でも、未だ下記の問題がある。
ここでは、ある診断対象Ａの異常ａが原因で他の診断対象Ｂの異常ｂが生じた場合を例に挙げて説明する。
【００１１】
まず、２つの異常ａ，ｂの関連を分析するためには、その２つの異常ａ，ｂについて、異常判定開始時の時刻情報を見比べる必要がある。しかし、それら各異常ａ，ｂに関する異常情報や時刻情報には、互いの関連を示す情報は無い。このため、異常ａ，ｂのうちの何れか一方の時刻情報を読み出しても、もう一方の異常と関連があることは判らず、原因を推定することができない。尚、異常ａ，ｂのうちの何れか一方の時刻情報しか読み出せない場合としては、例えば、一方の情報が外部ツールによってクリアされたとか、一方の情報が別の異常に関する情報によって上書きされたとか、一方の情報が他のＥＣＵに存在していたが、そのＥＣＵが交換されたとか、様々な場合が考えられる。
【００１２】
また、特許文献２では、最新の異常判定開始時の時刻情報で古い異常判定開始時の時刻情報を上書きするため、診断対象Ａが、異常が発生していると判定されてから異常であると確定判定されるまでの間に、「異常が発生していると判定される異常状態から、異常が発生していると判定されない非異常状態に戻り、再び異常状態になる」といった状態変化を少なくとも１回以上した場合（以下、こういう場合を、異常がふらついた場合という）には、その診断対象Ａについての異常判定開始時の時刻情報がどんどん更新されることとなる。そして、このような場合には、診断対象Ａの異常ａが原因で診断対象Ｂの異常ｂが生じたにも拘わらず、最終的に記憶される診断対象Ａについての異常判定開始時の時刻情報が、診断対象Ｂについての異常判定開始時の時刻情報よりも後の時刻を示すものになってしまう可能性があり、そのようになると、異常判定開始時の時刻情報は、異常ａ，ｂの発生順序を正しく表せないことになってしまう。
【００１３】
本発明は、こうした問題に鑑みてなされたものであり、車両における複数の異常の発生順序を正しく容易に把握できるようにして故障診断の容易性を向上させることを目的としている。
【課題を解決するための手段】
【００１４】
請求項１の故障診断用情報収集装置は、車両における複数の診断対象毎に、その診断対象の異常を検出するための異常検出部を備えている。
そして、その各異常検出部は、診断対象が異常判定条件を満たしているか否かにより、該診断対象に異常が発生しているか否かを判定する異常発生判定手段と、その異常発生判定手段により異常が発生していると判定された回数である異常判定回数が、異常確定閾値に達すると、診断対象が異常であると確定判定する異常確定判定手段と、診断対象が正常判定条件を満たしているか否かを判定すると共に、正常判定条件を満たしていると判定した回数が正常確定閾値に達すると、診断対象が正常であると確定判定する正常確定判定手段と、異常発生判定手段により異常が発生していると判定されたが、異常確定判定手段及び正常確定判定手段の何れにも確定判定されていない（即ち、異常であるとも正常であるとも未だ確定判定されていない）状態である異常判定実行中であるか否かを判定して、その判定結果を示す状態情報を生成する状態情報生成手段と、を備えている。
【００１５】
そして更に、各異常検出部は、前記異常発生判定手段（自身の異常発生判定手段）によって自身の診断対象に異常が発生していると最初に判定された時である初回異常判定時に、自身の診断対象の識別情報を、異常発生部位情報として記憶部に記憶すると共に、他の異常検出部のうちで、前記状態情報が異常判定実行中を示している異常検出部を特定し、その特定した他の異常検出部の診断対象の識別情報を、異常関連情報として、前記記憶部に、前記異常発生部位情報としての自身の診断対象の識別情報と対応付けて記憶する。
【００１６】
つまり、この故障診断用情報収集装置では、何れかの診断対象（ここではＸとする）について、異常が発生していると最初に判定した時（初回異常判定時）に、その診断対象Ｘの識別情報ＩＤｘを、異常発生部位情報として記憶部に記憶すると共に、その時点よりも前に異常が発生していると判定したが未だ異常であるとも正常であるとも確定判定していない他の診断対象（ここではＹとする）があれば、その診断対象Ｙの識別情報ＩＤｙを、診断対象Ｘの異常関連情報として、記憶部に、異常発生部位情報としての識別情報ＩＤｘと対応付けて記憶するようになっている。
【００１７】
そして、このような故障診断用情報収集装置によれば、下記（ａ）〜（ｃ）の効果が得られる。
（ａ）記憶部に異常発生部位情報と対応付けて記憶されている異常関連情報だけを見ることにより、その異常発生部位情報が示す診断対象の初回異常判定時において既に異常が発生していると判定されていた他の診断対象を知ることができ、該他の診断対象が、異常発生部位情報が示す診断対象の異常を引き起こした原因ではないかと推定することができる。
【００１８】
（ｂ）また、時刻情報がなくても異常の発生順序が分かる。異常発生部位情報と対応付けて記憶される異常関連情報が示す診断対象の異常は、その異常発生部位情報が示す診断対象の異常よりも前に発生していた、ということになるからである。
【００１９】
（ｃ）ある診断対象の初回異常判定時に記憶した異常関連情報は更新しないため、ある診断対象Ａの異常ａが発生してから他の診断対象Ｂの異常ｂが発生した場合に、先に発生した異常ａがふらついたとしても、診断対象Ｂを示す異常発生部位情報と対応付けて記憶される異常関連情報により、診断対象Ｂの異常ｂよりも前に診断対象Ａの異常ａが発生していたことを知ることができ、異常ｂの原因が異常ａであると推定することができる。
【００２０】
そして、以上の効果により、車両における複数の異常の発生順序を正しく容易に把握できるようになり故障診断の容易性が向上する。
尚、異常確定判定手段が異常確定閾値に達したか否かを判定する異常判定回数は、例えば、異常発生判定手段により異常が発生していると判定された連続回数であっても良いし、累積回数（つまり、異常が発生していると判定されてから一旦異常が発生していないと判定されても判定回数をリセットせずに累積して計数した回数）であっても良い。また、異常発生判定手段による判定の実施間隔は、一定時間であっても、一定時間でなくても、何れでも良い。そして、こうしたことは、正常確定判定手段についても同様である。つまり、正常確定判定手段が正常確定閾値に達したか否かを判定する回数は、正常判定条件を満たしていると判定した連続回数であっても良いし、累積回数であっても良い。また、正常判定条件を満たしているか否かの判定を実施する間隔は、一定時間であっても、一定時間でなくても、何れでも良い。
【００２１】
次に、請求項２の故障診断用情報収集装置では、請求項１の故障診断用情報収集装置において、各異常検出部は、前記異常確定判定手段（自身の異常確定判定手段）によって自身の診断対象が異常であると確定判定された時である異常確定時にも、他の異常検出部のうちで、前記状態情報が異常判定実行中を示している異常検出部を特定し、その特定した他の異常検出部の診断対象の識別情報を、異常関連情報の１つである異常確定時の異常関連情報として、前記記憶部に、前記異常発生部位情報としての自身の診断対象の識別情報と対応付けて記憶する。
【００２２】
つまり、この故障診断用情報収集装置では、何れかの診断対象（ここではＸとする）について、異常であると確定判定した時（異常確定時）にも、その時点より前に異常が発生していると判定したが未だ異常であるとも正常であるとも確定判定していない他の診断対象（ここではＹとする）があれば、その診断対象Ｙの識別情報ＩＤｙを、診断対象Ｘの異常関連情報（特に異常確定時の異常関連情報）として、記憶部に、異常発生部位情報としての診断対象Ｘの識別情報ＩＤｘと対応付けて記憶するようになっている。
【００２３】
そして、このような故障診断用情報収集装置によれば、故障の分析を行うための情報として、より多くの情報（異常確定時の異常関連情報）を提供することができ、有利である。例えば、ある診断対象Ｘについて、初回異常判定時の異常関連情報と、異常確定時の異常関連情報との、両方が記憶されおり、且つ、その両方の異常関連情報が示す診断対象が同じであれば、その異常関連情報が示す診断対象Ｙが、診断対象Ｘよりも先に異常になったが、診断対象Ｘの異常確定時には未だ異常とも正常とも確定判定されていなかった、という状況を把握することができるようになる。
【００２４】
次に、請求項３の故障診断用情報収集装置では、請求項１，２の故障診断用情報収集装置において、各異常検出部は、前記特定した他の異常検出部（状態情報が異常判定実行中を示している異常検出部）から、その異常検出部における異常判定回数の異常確定閾値に対する割合を示す異常判定度合いを取得し、その異常判定度合いを、前記特定した他の異常検出部の診断対象の識別情報と一緒に、異常関連情報として前記記憶部に記憶する。
【００２５】
そして、このような故障診断用情報収集装置によれば、ある診断対象Ｘについての異常関連情報として、例えば、診断対象Ｙの識別情報ＩＤｙが記憶されていたとすると、その識別情報ＩＤｙと一緒に記憶されている異常判定度合いを見ることにより、診断対象Ｘについての異常関連情報が記憶された時点において、他の診断対象Ｙの診断がどの程度まで進んでいたか（換言すれば、診断対象Ｙが異常確定に至るまでのどの程度の段階になっていたかということであり、診断対象Ｙが異常と確定判定されそうだった度合い）、を知ることができる。そして、診断対象Ｙが異常と確定判定されそうだった度合いが分かるため、その診断対象Ｙの異常が診断対象Ｘの異常を引き起こした原因であったかどうか、という判断が行い易くなる。
【００２６】
尚、請求項１に従属する請求項３の装置ならば、各異常検出部は、初回異常判定時に、上記異常判定度合いを記憶するための動作を行うこととなり、請求項２に従属する請求項３の装置ならば、各異常検出部は、初回異常判定時と異常確定時とに、上記異常判定度合いを記憶するための動作を行うこととなる。
【００２７】
次に、請求項４の故障診断用情報収集装置では、請求項１〜３の故障診断用情報収集装置において、関連性情報記憶手段が備えられており、その関連性情報記憶手段には、各異常検出部の診断対象の各々について、それと関連性がある他の診断対象を示す関連性情報が記憶されている。そして、各異常検出部は、他の異常検出部のうちで、前記状態情報が異常判定実行中を示している異常検出部を特定する際に、前記関連性情報を参照して、自身の診断対象と関連性がある他の診断対象である関連診断対象を検出し、その関連診断対象に対応した異常検出部のみについて、前記状態情報が異常判定実行中を示しているか否かを判定する。
【００２８】
尚、ある診断対象Ｘと関連性がある他の診断対象（関連診断対象）とは、それに異常が生じると診断対象Ｘも異常と判定される可能性がある診断対象であって、診断対象Ｘの異常原因になる可能性がある診断対象のことである。
【００２９】
この構成によれば、状態情報が異常判定実行中を示している異常検出部を特定するための処理負荷を低減することができる。
また、ある診断対象Ｘについての異常関連情報として、その診断対象Ｘと関連性がある診断対象に関する情報のみ、記憶部に記憶することとなる。よって、記憶部の記憶容量を有効に利用できる。
【００３０】
更に、異常原因の可能性がある診断対象に関する情報だけを異常関連情報として記憶することができるため、異常原因の解析を効率良く行うことができるようになる。
次に、請求項５の故障診断用情報収集装置では、請求項４の故障診断用情報収集装置において、前記関連性情報には、前記関連性がある他の診断対象の関連性の高さを示す関連度情報も含まれている。そして、各異常検出部は、関連診断対象が複数ある場合、前記関連度情報に基づいて、自身の診断対象に対する各関連診断対象の関連性の高さ順を把握し、各関連診断対象に対応した異常検出部のうち、自身の診断対象との関連性が高い関連診断対象に対応した異常検出部についてほど、早い順番で、前記状態情報が異常判定実行中を示しているか否かの判定を行う。
【００３１】
この構成によれば、ある診断対象Ｘについての異常関連情報を記憶しようとする場合に、その診断対象Ｘとの関連性が高い診断対象に対応した異常検出部についてほど先に、状態情報が異常判定実行中を示しているか否かの判定が行われる。このため、その診断対象Ｘについての異常関連情報としては、その診断対象Ｘとの関連性が高い診断対象に関する情報が優先して先に、記憶部に記憶されるようにすることができる。
【００３２】
よって、記憶部において、１つの異常発生部位情報に対して記憶可能な異常関連情報の数が有限である場合に、その異常関連情報の記憶領域を有効に利用することができる。異常原因になり易い診断対象についての情報が優先して、異常関連情報として記憶されることとなるからである。
【００３３】
次に、請求項６の故障診断用情報収集装置では、請求項１〜５の故障診断用情報収集装置において、各異常検出部は、自身の診断対象が、自身の異常確定判定手段により異常であると確定判定されることなく、自身の正常確定判定手段により正常であると確定判定されたなら、自身が記憶部に記憶した情報（異常発生部位情報や異常関連情報）を該記憶部から消去する。
【００３４】
この構成によれば、正常と確定判定した診断対象についての過去情報は記憶しないこととなるため、記憶部を無駄なく利用できるようになる。
次に、請求項７の故障診断用情報収集装置では、請求項１〜３の故障診断用情報収集装置において、異常判定実行中リストが備えられており、その異常判定実行中リストには、前記状態情報が異常判定実行中を示している異常検出部を特定可能な識別子が記録される。
【００３５】
そして、各異常検出部は、当該異常検出部の前記状態情報が異常判定実行中を示すものになると、異常判定実行中リストに、当該異常検出部を特定可能な識別子を記録し、当該異常検出部の前記状態情報が異常判定実行中でないことを示すものになると、異常判定実行中リストから、当該異常検出部を特定可能な識別子を消去する異常判定実行中リスト更新手段を備えている。
【００３６】
そして更に、各異常検出部は、他の異常検出部のうちで、前記状態情報が異常判定実行中を示している異常検出部を特定する際に、異常判定実行中リストを参照して、該異常判定実行中リストに記録されている識別子により、前記状態情報が異常判定実行中を示している異常検出部を特定する。
【００３７】
この構成によれば、各異常検出部が、他の異常検出部のうちで、前記状態情報が異常判定実行中を示している異常検出部を特定する際に、他の異常検出部の状態情報を取得して該状態情報が異常判定実行中を示しているか否かを判定する、といった処理を行う必要がない。よって、状態情報が異常判定実行中を示している他の異常検出部を特定するための処理負荷を低減することができる。
【００３８】
また、このことから、各異常検出部が記憶部に記憶する異常関連情報の同時性も確保し易くなる。
具体例を挙げて説明すると、例えば、ある診断対象Ｙ，Ｚの異常検出部の状態情報ＳＴｙ，ＳＴｚが異常判定実行中になっている時に、他の診断対象Ｘについて、異常が発生していると最初に判定されたとすると、本来ならば、診断対象Ｘの異常関連情報として、診断対象Ｙの識別情報ＩＤｙと、診断対象Ｚの識別情報ＩＤｚとの、両方が記憶されるはずである。ところが、もし、診断対象Ｘの異常検出部にて、他の異常検出部の状態情報を把握するのに時間がかかり、その診断対象Ｘの異常検出部が、診断対象Ｙの識別情報ＩＤｙを異常関連情報として記憶してから、状態情報ＳＴｚが異常判定実行中になっていることを検知する前に、診断対象Ｚが異常あるいは正常と確定判定されて、状態情報ＳＴｚが異常判定実行中を示すものではなくなったとすると、診断対象Ｘの異常関連情報としては、診断対象Ｚの識別情報ＩＤｚが記憶されず、異常関連情報の同時性が崩れてしまう。
【００３９】
これに対し、請求項７の構成によれば、各異常検出部において、状態情報が異常判定実行中を示している他の異常検出部を特定するのに要する時間を短縮できるため、こうした不具合を回避し易くなる。
【００４０】
次に、請求項８の故障診断用情報収集装置では、請求項７の故障診断用情報収集装置において、各異常検出部は、自身の診断対象が、自身の異常確定判定手段により異常であると確定判定されることなく、自身の正常確定判定手段により正常であると確定判定されたなら、自身が記憶部に記憶した情報を該記憶部から消去する。
【００４１】
この構成によれば、請求項６の故障診断用情報収集装置について述べた効果と同じ効果が得られる。
ところで、本発明の故障診断用情報収集装置は、１つの電子制御ユニットに適用しても良いし、複数の電子制御ユニットに適用しても良い。
【００４２】
そして、後者の場合には、各電子制御ユニットが、他の電子制御ユニットと通信するための通信手段を有し、各異常検出部は、他の電子制御ユニットに設けられている異常検出部について、状態情報が異常判定実行中を示しているか否かを判定したり、他の電子制御ユニットに設けられている異常検出部から異常関連情報として記憶すべき情報を取得する場合には、その通信手段を介して、他の電子制御ユニットと情報のやり取りをすれば良い。
【００４３】
また特に、本発明の故障診断用情報収集装置を複数の電子制御ユニットに適用する場合には、請求項９のように構成すると良い。
即ち、請求項９の故障診断用情報収集装置では、請求項１〜８の故障診断用情報収集装置において、異常検出部は、車両に搭載されて互いに通信する複数の電子制御ユニットの各々に、１つ以上ずつ設けられている。
【００４４】
また、各電子制御ユニットは、他の電子制御ユニットと通信するための通信手段と、前記状態情報が異常判定実行中を示している異常検出部を有した他の電子制御ユニットを示すユニット識別子が記録されるユニットリストと、当該電子制御ユニットに設けられている全ての異常検出部の前記状態情報が異常判定実行中でないことを示している状態から、当該電子制御ユニットに設けられている少なくとも１つの異常検出部の前記状態情報が異常判定実行中を示している状態に変化すると、当該電子制御ユニットのユニット識別子を、他の電子制御ユニットへ前記通信手段を介して送信するユニット識別子送信手段と、他の電子制御ユニットのユニット識別子送信手段によって送信されたユニット識別子が前記通信手段により受信されると、その受信されたユニット識別子をユニットリストに記録する識別子記録手段と、当該電子制御ユニットに設けられている少なくとも１つの異常検出部の前記状態情報が異常判定実行中を示している状態から、当該電子制御ユニットに設けられている全ての異常検出部の前記状態情報が異常判定実行中でないことを示している状態に変化すると、当該電子制御ユニットのユニット識別子の消去を要求する消去要求を、他の電子制御ユニットへ前記通信手段を介して送信する消去要求送信手段と、他の電子制御ユニットの消去要求送信手段によって送信された消去要求が前記通信手段により受信されると、その消去要求が示すユニット識別子をユニットリストから消去する識別子消去手段と、を備えている。
【００４５】
そして、各電子制御ユニットに備えられた上記各手段により、各電子制御ユニットのユニットリストには、状態情報が異常判定実行中を示している異常検出部を有した他の電子制御ユニットのユニット識別子が記録されることとなる。
【００４６】
また、各異常検出部は、他の異常検出部のうちで、前記状態情報が異常判定実行中を示している異常検出部を特定する際に、自身が設けられた電子制御ユニットのユニットリストを参照し、該ユニットリストにユニット識別子があれば、そのユニット識別子が示す他の電子制御ユニットに対して、自身が前記記憶部に異常関連情報として記憶すべき情報を要求する異常関連情報要求を、自身が設けられた電子制御ユニットの通信手段を介して送信する。そして、その送信した異常関連情報要求に対して他の電子制御ユニットから送信された情報（尚、その情報は、次に説明する異常関連情報送信手段によって送信されるものである）が、自身が設けられた電子制御ユニットの通信手段によって受信されると、その受信された情報を異常関連情報として前記記憶部に記憶する。
【００４７】
更に、各電子制御ユニットは、異常関連情報送信手段を備えており、その異常関連情報送信手段は、他の電子制御ユニットから送信された前記異常関連情報要求が当該電子制御ユニットの通信手段により受信されると、当該電子制御ユニットにおいて、前記状態情報が異常判定実行中を示している異常検出部を特定すると共に、その特定した異常検出部についての情報であって、異常関連情報として前記記憶部に記憶されるべき情報を取得し、その取得した情報を、前記異常関連情報要求の送信元である電子制御ユニットへ、当該電子制御ユニットの通信手段を介して送信する。
【００４８】
このような構成によれば、各異常検出部は、自身が設けられている電子制御ユニット以外の他の電子制御ユニットから、その電子制御ユニットに設けられている異常検出部の状態情報を通信により取得して、その状態情報が異常判定実行中を示しているか否か判定する、といった手順を踏まなくても、他の電子制御ユニットから、異常関連情報として記憶すべき他の異常検出部に関する情報を取得することができる。よって、各異常検出部が、異常関連情報を記憶部に記憶するのに要する所要時間を短くすることができる。
【００４９】
また、ユニットリストへのユニット識別子の記録及び消去が、動的に行われる構成であるため、電子制御ユニットの数が増減したり、電子制御ユニットが入れ替わったりしても、故障診断用情報収集装置としては設計変更無しに対応することができる。
【００５０】
尚、記憶部は、電子制御ユニット毎に設けられていても良いし、１つの記憶部を複数の電子制御ユニットで共用する構成でも良い。後者の場合には、複数の電子制御ユニットが接続されるネットワーク上に、共用される記憶部としての記憶装置を、各電子制御ユニットからアクセス可能に設ければ良い。
【００５１】
一方、記憶部に記憶された情報を読み出す手法としては、次のようなものが考えられる。
例えば、記憶部としての記憶媒体を、当該故障診断用情報収集装置が設けられた電子制御ユニットから取り出し、その記憶媒体から情報を読み出す、という手法が考えられる。
【００５２】
但し、この手法では、記憶媒体を物理的に取り出す作業が必要となってしまう。
そこで、請求項１０の故障診断用情報収集装置では、請求項１〜９の故障診断用情報収集装置において、応答手段が備えられており、その応答手段は、他の装置から、前記記憶部に記憶された情報を要求する出力要求を受けると、前記記憶部に記憶されている情報を前記他の装置に出力する。
【００５３】
この構成によれば、記憶部に記憶された情報を簡単に読み出すことができる。また、記憶部から読み出した情報を前記他の装置の表示画面等に表示させることもできる。
【図面の簡単な説明】
【００５４】
【図１】第１実施形態のＥＣＵ（電子制御ユニット）を表す構成図である。
【図２】明細書中で使用する用語の説明図である。
【図３】記憶装置の異常関連情報記憶領域を説明する説明図である。
【図４】異常検出処理を表すフローチャートである。
【図５】異常発生時の異常関連情報記憶処理を表すフローチャートである。
【図６】異常確定時の異常関連情報記憶処理を表すフローチャートである。
【図７】正常確定時の異常関連情報消去処理を表すフローチャートである。
【図８】作用の具体例のうちの例１を説明する説明図である。
【図９】作用の具体例のうちの例２を説明する説明図である。
【図１０】作用の具体例のうちの例３を説明する説明図である。
【図１１】出力処理を表すフローチャートである。
【図１２】スキャンツールの表示装置に表示される内容を説明する説明図である。
【図１３】Ｏ２センサの関連性テーブルを説明する説明図である。
【図１４】異常判定実行中リスト更新処理を表すフローチャートである。
【図１５】図５，図６における一部の処理に代えて行われる処理を表すフローチャートである。
【図１６】第４実施形態の車載ネットワークを表す構成図である。
【図１７】第５実施形態の車載ネットワークを表す構成図である。
【図１８】各ＥＣＵにおいて、ＥＣＵリストを更新するために行われる処理を表すフローチャートである。
【図１９】図１５の処理に加えて行われる処理を表すフローチャートである。
【図２０】異常関連情報送信処理を表すフローチャートである。
【発明を実施するための形態】
【００５５】
以下に、本発明の実施形態の一例について説明する。
［第１実施形態］
まず図１は、本発明の故障診断用情報収集装置が適用された第１実施形態のＥＣＵ（電子制御ユニット）１１を表す構成図である。
【００５６】
ＥＣＵ１１は、車両に搭載されて、例えば、その車両のエンジンを制御するものである。そして、ＥＣＵ１１には、制御対象を制御するための処理や異常を検出するための処理等を含む各種処理を行う処理装置として、ＣＰＵ、ＲＯＭ、及びＲＡＭ等（図示省略）からなる周知のマイコン１２が備えられており、更に、記憶装置２２も備えられている。
【００５７】
記憶装置２２は、データの書き換えが可能なフラッシュＲＯＭやＥＥＰＲＯＭ等の不揮発性メモリであるが、例えば、車載バッテリの電力を元にした電源が常時供給されるＲＡＭ（いわゆるバックアップＲＡＭやスタンバイＲＡＭと呼ばれるもの）でも良い。また、記憶装置２２は、マイコン１２の外部に限らず、マイコン１２の内部に設けられていても良い。
【００５８】
ここで、ＥＣＵ１１は、複数の診断対象毎に、その診断対象の異常を検出するための異常検出部２１ａ，２１ｂ，２１ｃ，…を備えている。尚、異常検出部２１ａ，２１ｂ，２１ｃ，…の各々を特に区別しない場合には、それの符号として「２１」を用いる。
【００５９】
そして、各異常検出部２１は、診断対象が異常判定条件を満たしているか否かにより、該診断対象に異常が発生しているか否かを判定する異常発生判定手段３１と、異常発生判定手段３１により異常が発生していると判定された回数である異常判定回数が、異常確定閾値に達すると、診断対象が異常であると確定判定する異常確定判定手段３２と、診断対象が正常判定条件を満たしているか否かを判定すると共に、正常判定条件を満たしていると判定した回数が正常確定閾値に達すると、診断対象が正常であると確定判定する正常確定判定手段３３と、異常発生判定手段３１により異常が発生していると判定されたが、異常確定判定手段３２及び正常確定判定手段３３の何れにも確定判定されていない状態である異常判定実行中であるか否かを判定して、その判定結果を示す異常判定実行中フラグ（状態情報に相当）を生成する状態情報生成手段３４と、を備えている。また、各異常検出部２１は、後述する図５，図６の処理に相当する異常関連情報記憶処理３５も行う。
【００６０】
尚、各異常検出部２１は、実際には、マイコン１２を構成するＣＰＵがＲＯＭ内のプログラムを実行することで実現される機能のブロックである。
一方、ＥＣＵ１１には、車両の整備者等が車両を診断するために用いる診断装置であるスキャンツール１３が、車両内の通信線１５を介して接続可能になっている。そのスキャンツール１３は、異常に関する情報をＥＣＵ１１から収集して表示する異常情報表示装置でもある。
【００６１】
次に、本明細書中で使用する用語について、図２を用い説明する。
「異常発生」とは、診断対象についての異常判定条件が成立していない状態から、異常判定条件が成立した状態に転じた時点のことであり、その異常判定条件の成立継続時間（異常判定条件が成立している継続時間）を計測し始める時点のことである。
【００６２】
「異常確定」とは、異常判定条件の成立継続時間が、確実に診断対象が異常であると考えられる所定の異常確定閾値に達した時点のことである。
「正常確定」とは、診断対象についての正常判定条件が成立して、その正常判定条件の成立継続時間（正常判定条件が成立している継続時間）が、確実に診断対象が正常であると考えられる所定の正常確定閾値に達した時点のことである。
【００６３】
「正常復帰」とは、異常発生後に、異常確定に至ることなく正常判定条件が成立したことである。
「異常判定実行中」とは、異常発生から異常確定または正常確定までの期間のことである。つまり、異常判定条件が成立したが未だ異常確定にも正常確定にも至っていない期間のことである。
【００６４】
「異常判定実行中フラグ」とは、前述したように異常判定実行中であるか否かを示すフラグである。そして、その異常判定実行中フラグがオン（ＯＮ）であることが、異常判定実行中であることを示し、異常判定実行中フラグがオフ（ＯＦＦ）であることが、異常判定実行中ではないことを示している。
【００６５】
「最初の異常発生」とは、異常判定実行中フラグがオフからオンに遷移する時のことである。
「異常判定度合い」とは、異常判定条件の成立継続時間の、異常確定閾値に対する割合を、パーセンテージで表した値のことである。
【００６６】
「異常のふらつき（あるいは単に、ふらつき）」とは、最初の異常発生後、異常判定条件が断続的に成立するため、異常確定に至らない現象のことである。つまり、前述した「異常がふらついた場合」のことである。
【００６７】
尚、本実施形態では、異常判定条件が成立しているか否かを一定時間毎に判定して、異常判定条件が成立していると判定すると、異常判定条件の成立継続時間を計測するためのカウンタ（以下、異常カウンタという）をカウントアップさせるようになっている（図２の１段目参照）。このため、「異常確定」は、異常判定条件が成立していると判定した連続回数が異常確定閾値に達した時点、であるとも言える。また、「異常判定度合い」は、異常カウンタの値の異常確定閾値に対する割合を示すものであるとも言え、更に換言すれば、異常判定条件が成立していると判定した連続回数の異常確定閾値に対する割合を示すものであるとも言える。
【００６８】
また同様に、本実施形態では、正常判定条件が成立しているか否かを一定時間毎に判定して、正常判定条件が成立していると判定すると、正常判定条件の成立継続時間を計測するためのカウンタ（以下、正常カウンタという）をカウントアップさせるようになっている（図２の２段目参照）。このため、「正常確定」は、正常判定条件が成立していると判定した連続回数が正常確定閾値に達した時点、であるとも言える。
【００６９】
次に、記憶装置２２の記憶領域について、図３を用い説明する。
図３に示すように、記憶装置２２には、異常関連情報記憶領域２２ａが設けられている。そして、その異常関連情報記憶領域２２ａは、Ｍ個の異常毎記憶領域２３に分けられている。更に、その異常毎記憶領域２３の各々は、異常発生部位情報を１つ記憶可能な第１領域２３ａと、異常発生時の異常関連情報をＸ個記憶可能な第２領域２３ｂと、異常確定時の異常関連情報をＹ個記憶可能な第３領域２３ｃとを有している。尚、Ｍ個のＭと、Ｘ個のＸと、Ｙ個のＹとの各々は、１以上の整数である。また、このような異常関連情報記憶領域２２ａに記憶される情報については後述する。
【００７０】
更に、図示は省略しているが、記憶装置２２には、各異常検出部２１の異常判定実行中フラグを、どの異常検出部２１のものかを識別可能に記憶する異常診断状態記憶領域や、異常であると確定判定された診断対象に関する情報を記憶するための異常確定情報記憶領域も、設けられている。
【００７１】
次に、各異常検出部２１が行う処理について説明する。尚、各異常検出部２１が行う処理は、実際には、マイコン１２のＣＰＵが、診断対象の各々について行う処理である。
各異常検出部２１は、自身の診断対象について、図４の異常検出処理を一定時間毎に実行する（換言すれば、マイコン１２のＣＰＵが、診断対象の各々について、図４の異常検出処理を一定時間毎に実行する）。尚、その一定時間は、各異常検出部２１で同一であっても良いし、異なっていても良い。
【００７２】
図４に示すように、異常検出部２１は、異常検出処理を開始すると、まずＳ１１０にて、自身の診断対象について異常判定条件が成立しているか否か（換言すれば、診断対象が異常判定条件を満たしているか否か）を判定し、異常判定条件が成立していれば、診断対象に異常が発生していると判断して、Ｓ１１５に進み、自身についての前述した異常判定実行中フラグがオフか否かを判定する。
【００７３】
そして、異常判定実行中フラグがオフでなければ（即ちオンであれば）、そのままＳ１２５に移行するが、異常判定実行中フラグがオフならば、上記Ｓ１１０にて診断対象に異常が発生していると最初に判定された時（最初の異常発生時であり初回異常判定時）であると判断して、Ｓ１２０に進み、後述の図５に示す異常発生時の異常関連情報記憶処理を行った後、Ｓ１２５に進む。尚、異常判定実行中フラグは、前述した記憶装置２２の異常診断状態記憶領域に、異常検出部２１の各々について記憶されている。
【００７４】
Ｓ１２５では、異常確定条件が成立したか否かを判定する。具体的には、Ｓ１１０で異常判定条件が成立している（異常が発生している）と判定した連続回数を、異常カウンタをカウントアップさせることで計測すると共に、その異常カウンタの値が、自身の診断対象について設定されている異常確定閾値以上になったか（異常確定閾値に達したか）否かを判定し、その異常カウンタの値が異常確定閾値以上になったならば、異常確定条件が成立したと判定する。
【００７５】
そして、このＳ１２５にて、異常確定条件が成立していないと判定した場合には、Ｓ１３０に進み、自身の異常判定実行中フラグをオンに設定する書き込み処理を行った後、当該異常検出処理を終了する。
【００７６】
また、上記Ｓ１２５にて、異常確定条件が成立したと判定した場合には、診断対象が異常であると確定判定し、この場合には、Ｓ１３５に移行して、自身の異常判定実行中フラグをオフに設定する書き込み処理を行う。
【００７７】
そして、次のＳ１４０にて、異常確定時の異常情報を、前述した記憶装置２２の異常確定情報記憶領域に記憶する。その異常確定時の異常情報としては、自身の診断対象の識別情報（即ち、異常であると確定判定した診断対象の識別情報）を記憶するが、それに加えて、例えば、その時の時刻情報等を記憶しても良い。そして更に、次のＳ１４５にて、後述の図６に示す異常確定時の異常関連情報記憶処理を行い、その後、当該異常検出処理を終了する。
【００７８】
一方、上記Ｓ１１０にて、自身の診断対象について異常判定条件が成立していないと判定した場合には、Ｓ１５０に移行する。尚、図示を省略しているが、Ｓ１１０で異常判定条件が成立していないと判定されると、前述の異常カウンタが０にクリアされる。また、この例では、Ｓ１１０で「異常判定条件が成立していない」と判定されることが、「正常判定条件が成立している（診断対象が正常判定条件を満たしている）」と判定することに相当している。
【００７９】
そして、Ｓ１５０では、正常確定条件が成立したか否かを判定する。具体的には、Ｓ１１０で異常判定条件が成立していない（即ち正常判定条件が成立している）と判定した連続回数を、正常カウンタをカウントアップさせることで計測すると共に、その正常カウンタの値が、自身の診断対象について設定されている正常確定閾値以上になったか（正常確定閾値に達したか）否かを判定し、その正常カウンタの値が正常確定閾値以上になったならば、正常確定条件が成立したと判定する。尚、図示を省略しているが、Ｓ１１０で異常判定条件が成立している（即ち正常判定条件が成立していない）と判定されると、正常カウンタは０にクリアされる。
【００８０】
このＳ１５０にて正常確定条件が成立していないと判定した場合には、そのまま当該異常検出処理を終了するが、上記Ｓ１５０にて正常確定条件が成立したと判定した場合には、診断対象が正常であると確定判定し、この場合には、Ｓ１５５に移行して、自身の異常判定実行中フラグをオフに設定する書き込み処理を行う。そして、次のＳ１６０にて、後述の図７に示す正常確定時の異常関連情報消去処理を行い、その後、当該異常検出処理を終了する。
【００８１】
尚、例えば、診断対象が、エンジンの排気中の酸素濃度を検出する酸素センサ（以下、Ｏ２センサという）であるとすると、Ｓ１１０で判定する異常判定条件としては、「Ｏ２センサの出力値が、所定のハイ側閾値ＶｔｈＨを超えてから、そのハイ側閾値ＶｔｈＨよりも低いロー側閾値ＶｔｈＬを未だ下回っていない」といった条件が考えられる。
【００８２】
また、異常判定条件と正常判定条件とが別々に設けられるのであれば、Ｓ１１０とＳ１５０との間に、図示しないステップ（ここではＳ１４７とする）を追加し、上記Ｓ１１０で異常判定条件が成立していないと判定した場合に、そのＳ１４７に移行して、正常判定条件が成立しているか否かを判定し、正常判定条件が成立していなければ、そのまま当該異常検出処理を終了し、正常判定条件が成立していていれば、Ｓ１５０に進むように変更すれば良い。そして、この場合、例えば、診断対象がＯ２センサであるとすると、Ｓ１１０で判定する異常判定条件としては、「Ｏ２センサの出力値が、異常と考えられる異常判定範囲に入っている」といった条件が考えられ、Ｓ１４７で判定する正常判定条件としては、「Ｏ２センサの出力値が、異常判定範囲とは別の範囲であって、正常と考えられる正常判定範囲に入っている」といった条件が考えられる。
【００８３】
次に、図５は、図４のＳ１２０で実行される異常発生時の異常関連情報記憶処理を表すフローチャートである。
図５に示すように、異常発生時の異常関連情報記憶処理では、まずＳ２１０にて、記憶装置２２の異常関連情報記憶領域２２ａ（図３参照）に、異常発生部位情報として、自身の診断対象の識別情報が記憶されているか否かを判定し、自身の診断対象の識別情報が既に記憶されていれば、そのまま当該異常発生時の異常関連情報記憶処理を終了するが、自身の診断対象の識別情報が記憶されていなければ、Ｓ２２０に進む。
【００８４】
Ｓ２２０では、記憶装置２２の異常関連情報記憶領域２２ａに空きがあるか否かを判定する。詳しくは、異常関連情報記憶領域２２ａにおけるＭ個の異常毎記憶領域２３のうち、異常発生部位情報を記憶するための第１領域２３ａが空いている異常毎記憶領域２３があるか否かを判定する。
【００８５】
そして、異常関連情報記憶領域２２ａに空きがなければ、そのまま当該異常発生時の異常関連情報記憶処理を終了するが、異常関連情報記憶領域２２ａに空きがあれば、Ｓ２３０に進む。
【００８６】
Ｓ２３０では、自身の診断対象の識別情報を、記憶装置２２の異常関連情報記憶領域２２ａに、異常発生部位情報として記憶する。詳しくは、異常関連情報記憶領域２２ａにおいて、第１領域２３ａが空いている異常毎記憶領域２３の、その第１領域２３ａに、自身の診断対象の識別情報を異常発生部位情報として記憶する。
【００８７】
次に、Ｓ２４０進み、異常関連情報記憶領域２２ａにおいて、自身の診断対象の識別情報が第１領域２３ａに記憶された異常毎記憶領域２３の、第２領域２３ｂに記憶されている異常発生時の異常関連情報の数（以下、異常発生時の異常関連情報記憶数という）が、上限数（Ｘ個）未満であるか否かを判定する。つまり、その第２領域２３ｂに空きがあるか否かを判定する。
【００８８】
そして、このＳ２４０にて異常発生時の異常関連情報記憶数が上限数未満であると判定した場合には、Ｓ２５０に進み、自身以外の他の異常検出部２１のうち、後述するＳ２６０及びＳ２７０の処理によって異常判定実行中フラグのオン／オフ状態を未だ判断していない異常検出部２１（以下、検索未完了の異常検出部２１という）があるか否かを判定し、検索未完了の異常検出部２１があれば、Ｓ２６０に進む。
【００８９】
Ｓ２６０では、検索未完了の異常検出部２１の１つについて、その異常検出部２１の異常判定実行中フラグを記憶装置２２の異常診断状態記憶領域から取得し、次の２７０にて、その取得した異常判定実行中フラグがオンであるか否かを判定する。そして、異常判定実行中フラグがオンでなければ、Ｓ２４０に戻る。
【００９０】
また、上記Ｓ２７０にて、異常判定実行中フラグがオンであると判定した場合には、Ｓ２８０に進んで、そのオンである異常判定実行中フラグに対応した異常検出部２１の診断対象の識別情報（即ち、異常判定実行中の状態になっている他の異常検出部２１の診断対象の識別情報）と、その異常検出部２１における異常判定度合いとを、自身の診断対象の識別情報が第１領域２３ａに記憶された異常毎記憶領域２３の第２領域２３ｂに、１個の異常発生時の異常関連情報として記憶する。そして、その後、Ｓ２４０に戻る。
【００９１】
尚、各異常検出部２１は、他の異常検出部２１から、異常関連情報として記憶すべき情報の提供を要求されると、自身の診断対象の識別情報と異常判定度合いとを、その要求元の異常検出部２１に対して提供するようになっている。また、異常検出部２１同士での要求と情報のやり取りは、例えばマイコン１２内のＲＡＭを介して行われる。このため、上記Ｓ２８０では、Ｓ２７０で異常判定実行中フラグがオンであると判定した異常検出部２１に対して、異常関連情報として記憶すべき情報を要求することにより、その記憶すべき情報（診断対象の識別情報及び異常判定度合い）を取得する。また、各異常判定部２１の診断対象の識別情報を記述したマップが、例えばマイコン１２内のＲＯＭや記憶装置２２に格納されているのであれば、上記Ｓ２８０では、そのマップから、Ｓ２７０で異常判定実行中フラグがオンであると判定した異常検出部２１の診断対象の識別情報を取得することができる。
【００９２】
一方、上記Ｓ２４０にて異常発生時の異常関連情報記憶数が上限数未満ではないと判定した場合（即ち、目的の第２領域２３ｂが一杯で異常関連情報を追加して記憶できない場合）、あるいは、上記Ｓ２５０にて、検索未完了の異常検出部２１がないと判定した場合には、Ｓ２９０に移行する。
【００９３】
そして、Ｓ２９０では、記憶状態フラグをオンにし、その後、当該異常発生時の異常関連情報記憶処理を終了する。尚、記憶状態フラグは、記憶装置２２の異常関連情報記憶領域２２ａに消去可能な情報を記憶したことを示すフラグである。また、その記憶状態フラグは、例えば記憶装置２２の他の領域に、異常検出部２１の各々について記憶される。
【００９４】
つまり、各異常検出部２１は、自身の診断対象に異常が発生していると最初に判定した時に（Ｓ１１０：ＹＥＳ→Ｓ１１５：ＹＥＳ）、異常発生時の異常関連情報記憶処理を行い（Ｓ１２０）、その異常発生時の異常関連情報記憶処理にて、自身の診断対象の識別情報を、記憶装置２２の異常関連情報記憶領域２２ａに、異常発生部位情報として記憶すると共に（Ｓ２３０）、他の異常検出部２１のうちで、異常判定実行中フラグがオンになっている異常検出部２１を特定して、その特定した他の異常検出部２１の診断対象の識別情報と、該他の異常検出部２１におけるその時点での異常判定度合いとを、異常関連情報として、記憶装置２２の異常関連情報記憶領域２２ａに、異常発生部位情報としての自身の診断対象の識別情報と対応付けて記憶するようになっている（Ｓ２４０〜Ｓ２８０）。
【００９５】
次に、図６は、図４のＳ１４５で実行される異常確定時の異常関連情報記憶処理を表すフローチャートである。
図６に示すように、異常確定時の異常関連情報記憶処理では、まずＳ３１０にて、自身の（当該異常検出部２１の）記憶状態フラグがオンであるか否かを判定する。そして、記憶状態フラグがオンでなければ（即ちオフであれば）、そのまま当該異常確定時の異常関連情報記憶処理を終了するが、記憶状態フラグがオンであれば、Ｓ３２０に進む。尚、当該異常確定時の異常関連情報記憶処理は、異常発生の後に実行されるため、前述した図５のＳ２１０でＹＥＳと判定されるかＳ２２０でＮＯと判定された場合以外は、図５のＳ２９０で記憶状態フラグがオンに設定されており、当該異常確定時の異常関連情報記憶処理の処理では、Ｓ３２０に進むこととなる。
【００９６】
そして、Ｓ３２０では、異常関連情報記憶領域２２ａにおいて、自身の診断対象の識別情報が第１領域２３ａに記憶された異常毎記憶領域２３の、第３領域２３ｃに記憶されている異常確定時の異常関連情報の数（以下、異常確定時の異常関連情報記憶数という）が、上限数（Ｙ個）未満であるか否かを判定する。つまり、その第３領域２３ｃに空きがあるか否かを判定する。
【００９７】
そして、このＳ３２０にて異常確定時の異常関連情報記憶数が上限数未満であると判定した場合には、Ｓ３３０に進み、自身以外の他の異常検出部２１のうち、後述するＳ３４０及びＳ３５０の処理によって異常判定実行中フラグのオン／オフ状態を未だ判断していない検索未完了の異常検出部２１があるか否かを判定し、検索未完了の異常検出部２１があれば、Ｓ３４０に進む。
【００９８】
Ｓ３４０では、検索未完了の異常検出部２１の１つについて、その異常検出部２１の異常判定実行中フラグを記憶装置２２の異常診断状態記憶領域から取得し、次の３５０にて、その取得した異常判定実行中フラグがオンであるか否かを判定する。そして、異常判定実行中フラグがオンでなければ、Ｓ３２０に戻る。
【００９９】
また、上記Ｓ３５０にて、異常判定実行中フラグがオンであると判定した場合には、Ｓ３６０に進んで、そのオンである異常判定実行中フラグに対応した異常検出部２１の診断対象の識別情報（即ち、異常判定実行中の状態になっている他の異常検出部２１の診断対象の識別情報）と、その異常検出部２１における異常判定度合いとを、自身の診断対象の識別情報が第１領域２３ａに記憶された異常毎記憶領域２３の第３領域２３ｃに、１個の異常確定時の異常関連情報として記憶する。そして、その後、Ｓ３２０に戻る。尚、Ｓ３６０では、異常確定時の異常関連情報として記憶すべき情報（識別情報及び異常判定度合い）を、前述した図５のＳ２８０と同じ手順で取得する。
【０１００】
一方、上記Ｓ３２０にて異常確定時の異常関連情報記憶数が上限数未満ではないと判定した場合（即ち、目的の第３領域２３ｃが一杯で異常関連情報を追加して記憶できない場合）、あるいは、上記Ｓ３３０にて、検索未完了の異常検出部２１がないと判定した場合には、Ｓ３７０に移行する。そして、Ｓ３７０では、自身の記憶状態フラグをオフにし、その後、当該異常確定時の異常関連情報記憶処理を終了する。
【０１０１】
つまり、各異常検出部２１は、自身の診断対象が異常であると確定判定した時に（Ｓ１２５：ＹＥＳ）、異常確定時の異常関連情報記憶処理を行い（Ｓ１４０）、その異常確定時の異常関連情報記憶処理においても、他の異常検出部２１のうちで、異常判定実行中フラグがオンになっている異常検出部２１を特定して、その特定した他の異常検出部２１の診断対象の識別情報と、該他の異常検出部２１におけるその時点での異常判定度合いとを、異常関連情報（特に異常確定時の異常関連情報）として、記憶装置２２の異常関連情報記憶領域２２ａに、異常発生部位情報としての自身の診断対象の識別情報と対応付けて記憶するようになっている（Ｓ３２０〜Ｓ３６０）。
【０１０２】
次に、図７は、図４のＳ１６０で実行される正常確定時の異常関連情報消去処理を表すフローチャートである。
図７に示すように、正常確定時の異常関連情報消去処理では、Ｓ４１０にて、自身の（当該異常検出部２１の）記憶状態フラグがオンであるか否かを判定する。そして、記憶状態フラグがオンでなければ（即ちオフであれば）、そのまま当該正常確定時の異常関連情報消去処理を終了するが、記憶状態フラグがオンであれば、Ｓ４２０に進む。
【０１０３】
尚、記憶状態フラグは、図５のＳ２９０でオンされ、図６のＳ３７０でオフされるため、図７におけるＳ４２０以降の処理は、診断対象に異常が発生したと判定したものの、異常であると確定判定することなく正常であると確定判定した場合に、実行されることとなる。よって、例えば、異常と確定判定した後に、正常と確定判定したとしても、Ｓ４２０以降の処理は実行されない。
【０１０４】
まずＳ４２０では、図５のＳ２３０で記憶装置２２の異常関連情報記憶領域２２ａに記憶した異常部位情報（自身の診断対象の識別情報）を消去する。詳しくは、自身の診断対象の識別情報が記憶されている異常毎記憶領域２３の第１領域２３ａをクリアする。
【０１０５】
そして、次のＳ４３０では、上記Ｓ４２０で第１領域２３ａをクリアした異常毎記憶領域２３の、第２領域２３ｂをクリアする。このため、図５のＳ２８０で記憶装置２２の異常関連情報記憶領域２２ａに記憶した異常発生時の異常関連情報があれば、その異常発生時の異常関連情報を消去することとなる。
【０１０６】
そして、次のＳ４４０では、自身の記憶状態フラグをオフにし、その後、当該正常確定時の異常関連情報消去処理を終了する。
つまり、各異常検出部２１は、自身の診断対象が異常であると確定判定することなく、正常であると確定判定したならば、自身が記憶装置２２の異常関連情報記憶領域２２ａに記憶した情報（異常部位情報及び異常発生時の異常関連情報）を消去している（Ｓ４２０，Ｓ４３０）。
【０１０７】
次に、各異常検出部２１が図４の異常検出処理（図５〜図７の各処理を含む）を行うことによる作用について、図８〜図１０の具体例を挙げて説明する。
尚、図８〜図１０においては、診断対象として、Ｏ２センサと、そのＯ２センサを加熱するＯ２ヒータとの、２つを例に挙げている。また、図８〜図１０において、Ｏ２ヒータ異常カウンタとは、Ｏ２ヒータを診断対象とする異常検出部２１（ここでは２１ａとする）がカウントアップさせる異常カウンタであって、Ｏ２ヒータについての異常判定条件の成立継続時間（成立連続回数）を計測するためのカウンタである。同様に、Ｏ２センサ異常カウンタとは、Ｏ２センサを診断対象とする異常検出部２１（ここでは２１ｂとする）がカウントアップさせる異常カウンタであって、Ｏ２センサについての異常判定条件の成立継続時間（成立連続回数）を計測するためのカウンタである。また、図８〜図１０において、パーセント（％）表示の数値は、異常判定度合いである。また、図８〜図１０において、下段の点線で囲んだ枠内は、記憶装置２２の異常関連情報記憶領域２２ａに記憶された情報（異常発生部位情報、異常発生時の異常関連情報、異常確定時の異常関連情報）を示しているが、その点線枠内における「ＮＵＬＬ」とは、情報が何も書き込まれていないことを示している。そして、Ｏ２センサの識別情報は「Ｐ０１３０」であり、Ｏ２ヒータの識別情報は「Ｐ０１３５」である。
【０１０８】
まず、図８は、例１を示す図であって、Ｏ２ヒータの異常が、Ｏ２センサに影響して、Ｏ２センサの異常を引き起こした場合に、Ｏ２センサの異常原因であるＯ２ヒータの異常が解消されて、Ｏ２ヒータが正常であると確定判定された場合を示している。
【０１０９】
図８においては、（１）の時点で、Ｏ２ヒータに異常が発生し、その異常の発生がＯ２ヒータの異常検出部２１ａにより検知される（Ｓ１１０：ＹＥＳ）。
すると、Ｏ２ヒータの異常検出部２１ａは、異常発生時の異常関連情報記憶処理（図５）を行うこととなり（Ｓ１２０）、Ｏ２ヒータの識別情報である「Ｐ０１３５」を、異常発生部位情報として、記憶装置２２の異常関連情報記憶領域２２ａに記憶する（Ｓ２３０）。そして更に、Ｏ２ヒータの異常検出部２１ａは、Ｏ２センサの異常検出部２１ｂの異常判定実行中フラグを参照することとなるが（Ｓ２６０，Ｓ２７０）、この時点において、Ｏ２センサは、まだＯ２ヒータの異常に影響されておらず正常なため、その異常検出部２１ｂの異常判定実行中フラグはオフである。よって、Ｏ２ヒータの異常検出部２１ａは、異常関連情報を記憶せずに、Ｏ２ヒータの識別情報（「Ｐ０１３５」）だけを異常関連情報記憶領域２２ａに記憶することとなる。また、Ｏ２ヒータの異常検出部２１ａは、この時に、当該異常検出部２１ａの異常判定実行中フラグ（Ｏ２ヒータについての異常判定実行中フラグ）を、オフからオンに反転させることとなる（Ｓ１３０）。
【０１１０】
その後、（２）の時点で、Ｏ２センサがＯ２ヒータの影響を受けて異常な状態になり、そのことがＯ２センサの異常検出部２１ｂにより検知されると（Ｓ１１０：ＹＥＳ）、その異常検出部２１ｂは、異常発生時の異常関連情報記憶処理（図５）を行うこととなり（Ｓ１２０）、Ｏ２センサの識別情報である「Ｐ０１３０」を、異常発生部位情報として異常関連情報記憶領域２２ａに記憶する（Ｓ２３０）。そして更に、Ｏ２センサの異常検出部２１ｂは、Ｏ２ヒータの異常検出部２１ａの異常判定実行中フラグを参照することとなるが（Ｓ２６０，Ｓ２７０）、この時点において、その異常検出部２１ａの異常判定実行中フラグは既にオンである。よって、Ｏ２センサの異常検出部２１ｂは、Ｏ２センサの識別情報（「Ｐ０１３０」）を異常発生部位情報として記憶するだけでなく、Ｏ２ヒータの識別情報（「Ｐ０１３５」）と、その時点での異常検出部２１ａにおける異常判定度合い（この例では２５％）とを、異常発生部位情報としての「Ｐ０１３０」に対応する異常発生時の異常関連情報として、異常関連情報記憶領域２２ａに記憶することとなる（Ｓ２８０）。また、Ｏ２センサの異常検出部２１ｂは、この時に、当該異常検出部２１ｂの異常判定実行中フラグ（Ｏ２センサについての異常判定実行中フラグ）を、オフからオンに反転させることとなる（Ｓ１３０）。
【０１１１】
その後、（３）の時点で、Ｏ２センサ異常カウンタの値が、Ｏ２センサに対して設定されている異常確定閾値に達すると、Ｏ２センサの異常検出部２１ｂは、Ｏ２センサが異常であると確定判定し（Ｓ１２５：ＹＥＳ）、当該異常検出部２１ｂの異常判定実行中フラグを、オンからオフに反転させる（Ｓ１３５）と共に、異常確定時の異常関連情報記憶処理（図６）を行うこととなる（Ｓ１４５）。そして、Ｏ２センサの異常検出部２１ｂは、Ｏ２ヒータの異常検出部２１ａの異常判定実行中フラグを参照することとなる（Ｓ３４０，Ｓ３５０）。
【０１１２】
ここで、その時点において、Ｏ２ヒータは、正常復帰しているが未だ正常であると確定判定はされていないため、そのＯ２ヒータの異常検出部２１ａの異常判定実行中フラグはオンのままである。よって、Ｏ２センサの異常検出部２１ｂは、Ｏ２ヒータの識別情報（「Ｐ０１３５」）と、その時点での異常検出部２１ａにおける異常判定度合い（この例では０％）とを、異常発生部位情報としての「Ｐ０１３０」に対応する異常確定時の異常関連情報として、異常関連情報記憶領域２２ａに記憶することとなる（Ｓ３６０）。
【０１１３】
その後、（４）の時点で、Ｏ２ヒータの異常検出部２１ａが、Ｏ２ヒータが正常であると確定判定すると（Ｓ１５０：ＹＥＳ）、当該異常検出部２１ａの異常判定実行中フラグを、オンからオフに反転させる（Ｓ１５５）と共に、正常確定時の異常関連情報消去処理（図７）を行うこととなる（Ｓ１６０）。すると、Ｏ２ヒータの異常検出部２１ａは、自身が異常関連情報記憶領域２２ａに記憶した異常発生部位情報と、その異常発生部位情報に対応する異常発生時の異常関連情報とを、消去する処理を行うこととなる（Ｓ４２０，Ｓ４３０）。
【０１１４】
次に、図９は、例２を示す図であり、図８と同様に、Ｏ２ヒータの異常がＯ２センサの異常を引き起こした場合であるが、Ｏ２センサの異常原因であるＯ２ヒータの異常が、ふらついた場合を示している。
【０１１５】
図９において、（１）の時点から（２）の時点までの動作は、図８と同じであるため説明を省略する。但し、図９では、（２）の時点において、Ｏ２ヒータの異常検出部２１ａにおける異常判定度合いが４０％になっているため、Ｏ２センサの異常検出部２１ｂは、その４０％を、Ｏ２ヒータの識別情報（「Ｐ０１３５」）と一緒に、異常発生部位情報としての「Ｐ０１３０」に対応する異常発生時の異常関連情報として、異常関連情報記憶領域２２ａに記憶することとなる。
【０１１６】
そして、図９においては、（２）の時点の後、Ｏ２ヒータの異常がふらつき、（３）の時点で、Ｏ２ヒータ異常カウンタの値が異常確定閾値に達する。
すると、その（３）の時点で、Ｏ２ヒータの異常検出部２１ａは、Ｏ２ヒータが異常であると確定判定し（Ｓ１２５：ＹＥＳ）、当該異常検出部２１ａの異常判定実行中フラグを、オンからオフに反転させる（Ｓ１３５）と共に、異常確定時の異常関連情報記憶処理（図６）を行うこととなる（Ｓ１４５）。そして、Ｏ２ヒータの異常検出部２１ａは、Ｏ２センサの異常検出部２１ｂの異常判定実行中フラグを参照することとなり（Ｓ３４０，Ｓ３５０）、その異常検出部２１ｂの異常判定実行中フラグは既にオンである。よって、Ｏ２ヒータの異常検出部２１ａは、Ｏ２センサの識別情報（「Ｐ０１３０」）と、その時点での異常検出部２１ｂにおける異常判定度合い（この例では８０％）とを、異常発生部位情報としての「Ｐ０１３５」に対応する異常確定時の異常関連情報として、異常関連情報記憶領域２２ａに記憶することとなる（Ｓ３６０）。
【０１１７】
その後、（４）の時点で、Ｏ２センサ異常カウンタの値が異常確定閾値に達すると、Ｏ２センサの異常検出部２１ｂは、Ｏ２センサが異常であると確定判定し（Ｓ１２５：ＹＥＳ）、当該異常検出部２１ｂの異常判定実行中フラグを、オンからオフに反転させる（Ｓ１３５）と共に、異常確定時の異常関連情報記憶処理（図６）を行うこととなる（Ｓ１４５）。そして、Ｏ２センサの異常検出部２１ｂは、Ｏ２ヒータの異常検出部２１ａの異常判定実行中フラグを参照するが（Ｓ３４０，Ｓ３５０）、この時点において、Ｏ２ヒータの異常検出部２１ａの異常判定実行中フラグはオフである。よって、Ｏ２センサの異常検出部２１ｂは、Ｏ２ヒータの識別情報（「Ｐ０１３５」）を異常確定時の異常関連情報として記憶しない（Ｓ３５０：ＮＯ）。
【０１１８】
次に、図１０は、例３を示す図であり、図８と同様に、Ｏ２ヒータの異常がＯ２センサの異常を引き起こした場合であるが、両診断対象の異常確定の順番が、異常発生の順番とは逆になった場合を示している。
【０１１９】
図１０において、（１）の時点から（２）の時点までの動作は、図８と同じであるため説明を省略する。但し、図１０では、（２）の時点において、Ｏ２ヒータの異常検出部２１ａにおける異常判定度合いが３５％になっているため、Ｏ２センサの異常検出部２１ｂは、その３５％を、Ｏ２ヒータの識別情報（「Ｐ０１３５」）と一緒に、異常発生部位情報としての「Ｐ０１３０」に対応する異常発生時の異常関連情報として、異常関連情報記憶領域２２ａに記憶することとなる。
【０１２０】
そして、図１０においては、（３）の時点で、Ｏ２センサ異常カウンタの値が異常確定閾値に達する。
すると、その（３）の時点で、Ｏ２センサの異常検出部２１ｂは、Ｏ２センサが異常であると確定判定し（Ｓ１２５：ＹＥＳ）、当該異常検出部２１ｂの異常判定実行中フラグを、オンからオフに反転させる（Ｓ１３５）と共に、異常確定時の異常関連情報記憶処理（図６）を行うこととなる（Ｓ１４５）。そして、Ｏ２センサの異常検出部２１ｂは、Ｏ２ヒータの異常検出部２１ａの異常判定実行中フラグを参照することとなる（Ｓ３４０，Ｓ３５０）。
【０１２１】
ここで、その時点において、Ｏ２ヒータは、未だ異常であると確定判定されておらず、そのＯ２ヒータの異常検出部２１ａの異常判定実行中フラグはオンのままであり、また、異常検出部２１ａにおける異常判定度合いは７０％である。よって、Ｏ２センサの異常検出部２１ｂは、Ｏ２ヒータの識別情報（「Ｐ０１３５」）と、その異常検出部２１ａにおける異常判定度合いである７０％とを、異常発生部位情報としての「Ｐ０１３０」に対応する異常確定時の異常関連情報として、異常関連情報記憶領域２２ａに記憶することとなる（Ｓ３６０）。
【０１２２】
その後、（４）の時点で、Ｏ２ヒータ異常カウンタの値が異常確定閾値に達すると、Ｏ２ヒータの異常検出部２１ａは、Ｏ２ヒータが異常であると確定判定し（Ｓ１２５：ＹＥＳ）、当該異常検出部２１ａの異常判定実行中フラグを、オンからオフに反転させる（Ｓ１３５）と共に、異常確定時の異常関連情報記憶処理（図６）を行うこととなる（Ｓ１４５）。そして、Ｏ２ヒータの異常検出部２１ａは、Ｏ２センサの異常検出部２１ｂの異常判定実行中フラグを参照するが（Ｓ３４０，Ｓ３５０）、この時点において、Ｏ２センサの異常検出部２１ｂの異常判定実行中フラグは既にオフである。よって、Ｏ２ヒータの異常検出部２１ａは、Ｏ２センサの識別情報（「Ｐ０１３０」）を異常確定時の異常関連情報として記憶しない（Ｓ３５０：ＮＯ）。
【０１２３】
次に、ＥＣＵ１において、マイコン１２のＣＰＵが、各異常検出部２１としての機能を実現するための処理とは別に行う出力処理について、図１１を用い説明する。尚、その出力処理は、記憶装置２２に記憶した異常に関する情報を、スキャンツール１３からの要求に応じて出力するための処理であり、例えば一定時間毎に実行される。
【０１２４】
図１１に示すように、出力処理では、まずＳ５１０にて、スキャンツール１３からの異常情報出力要求を受信したか否かを判定し、異常情報出力要求を受信していなければ、そのまま当該出力処理を終了するが、異常情報出力要求を受信したならば、Ｓ５２０に進む。
【０１２５】
そして、Ｓ５２０では、異常と確定判定された診断対象について、その診断対象の識別情報と、その診断対象に関する異常関連情報とを、スキャンツール１３に送信する。
具体的には、まず、記憶装置２２の異常確定情報記憶領域に、何れかの診断対象の識別情報が記憶されているか否かを判定し、記憶されている識別情報（即ち、図４のＳ１４０にて、異常確定時の異常情報として記憶された識別情報であり、何れかの異常検出部２１によって異常と確定判定された診断対象の識別情報）があれば、記憶装置２２の異常関連情報記憶領域２２ａにおけるＭ個の異常毎記憶領域２３のうち、異常と確定判定された診断対象の識別情報と同じものが異常発生部位情報として記憶されている（つまり、第１領域２３ａに記憶されている）異常毎記憶領域２３（以下、送信対象の異常毎記憶領域２３という）を探す。
【０１２６】
そして、送信対象の異常毎記憶領域２３があれば、その異常毎記憶領域２３の第１〜第３領域２３ａ〜２３ｃに記憶されている情報を１つのデータ群として、スキャンツール１３へ送信する。このため、異常と確定判定された診断対象の識別情報と、その診断対象に異常が発生していると最初に判定された時に記憶された異常関連情報（異常発生時の異常関連情報）と、その診断対象が異常と確定判定された時に記憶された異常関連情報（異常確定時の異常関連情報）とが、セットでスキャンツール１３へ送信されることとなる。
【０１２７】
また、送信対象の異常毎記憶領域２３が複数あった場合には、異常と確定判定された順番が早い診断対象の識別情報を異常発生部位情報として記憶している異常毎記憶領域２３の情報ほど、早い順番でスキャンツール１３へ送信する。
【０１２８】
そして、このＳ５２０の処理により、スキャンツール１３への情報の送信が完了すると、当該出力処理が終了する。
一方、スキャンツール１３は、使用者により所定の操作が行われると、ＥＣＵ１１に対して、上記異常情報出力要求を送信し、そのＥＣＵ１１から上記Ｓ５２０の処理で送信される情報を受信する。
【０１２９】
そして、スキャンツール１３は、そのＥＣＵ１１から受信した情報の内容を、例えば図１２のように、自身の表示装置に表示する。
尚、図１２において、（Ａ）は、図８に示した例１の場合の表示内容を示し、（Ｂ）は、図９に示した例２の場合の表示内容を示し、（Ｃ）は、図１０に示した例３の場合の表示内容を示している。つまり、（Ａ）は、図８における下段の点線枠内のうちの（４）の情報に基づく表示内容であり、（Ｂ）は、図９における下段の点線枠内のうちの（４）の情報に基づく表示内容であり、（Ｃ）は、図１０における下段の点線枠内のうちの（４）の情報に基づく表示内容である。
【０１３０】
図１２に示すように、スキャンツール１３は、異常と確定判定された診断対象の識別情報が示す診断対象（つまり、異常と確定判定された診断対象）の名前を、「検出した異常」として表示し、異常発生時の異常関連情報が示す診断対象の名前を、「異常発生時の他の異常」として表示し、異常確定時の異常関連情報が示す診断対象の名前を、「異常確定時の他の異常」として表示する。また、この例において、スキャンツール１３は、「検出した異常」の名称を、異常と確定判定されたもの順に、左から右へと表示している。また、異常判定度合いを「進捗度」として表示している。
【０１３１】
そして、スキャンツール１３の使用者（車両の整備者等）は、例えば図１２（Ａ）の表示内容により、異常と確定判定されたのがＯ２センサのみであるが、Ｏ２ヒータにも異常が発生したこと、及び、そのＯ２ヒータの異常がＯ２センサに異常が生じる前に発生していたこと、が分かる。これにより、Ｏ２ヒータにも異常があるだろうと推定でき、そのＯ２ヒータの異常がＯ２センサの異常を引き起こした原因ではないかと推定できる。
【０１３２】
また、例えば図１２（Ｂ）の表示内容によっても、Ｏ２センサの異常発生前にＯ２ヒータに異常が発生していたことが分かる。よって、Ｏ２ヒータの異常が図９のようにふらついても、Ｏ２ヒータの異常がＯ２センサの異常より先に発生していたことが分かり、そのＯ２ヒータの異常がＯ２センサの異常原因ではないかと推定できる。そして、こうした効果は、図９において、Ｏ２ヒータが異常と確定判定されるのが、Ｏ２センサが異常と確定判定された時よりも後になったとしても、同様に得られる。
【０１３３】
また、例えば図１２（Ｃ）の表示内容によっても、Ｏ２センサの異常発生前にＯ２ヒータに異常が発生していたことが分かる。更に、Ｏ２センサの異常発生時と異常確定時との両方の時において、Ｏ２ヒータに異常が生じていたことが分かるため、Ｏ２ヒータは、Ｏ２センサよりも先に異常になったが、Ｏ２センサの異常確定時には未だ異常とも正常とも確定判定されておらず、Ｏ２センサよりも後で異常と確定判定された、という状況を把握することができる。
【０１３４】
尚、ＥＣＵ１１は、スキャンツール１３からの上記異常情報出力要求を受けた場合、あるいは、その異常情報出力要求とは別の出力要求を受けた場合に、異常と確定判定された診断対象についてという限定無しに、異常関連情報記憶領域２２ａにおける異常毎記憶領域２３の各々に記憶されている情報をスキャンツール１３へ送信し、スキャンツール１３では、その受信した情報の内容を表示するようにしても良い。
【０１３５】
以上のようにＥＣＵ１１では、各異常検出部２１が、自身の診断対象に異常が発生していると最初に判定した時（初回異常判定時）に、自身の診断対象の識別情報を異常発生部位情報として記憶装置２２の異常関連情報記憶領域２２ａに記憶すると共に、異常判定実行中フラグがオンになっている他の異常検出部２１を特定し、その特定した他の異常検出部２１の診断対象の識別情報を、異常関連情報（特に異常発生時の異常関連情報）として、異常関連情報記憶領域２２ａに、異常発生部位情報としての自身の診断対象の識別情報と対応付けて記憶する。
【０１３６】
このため、何れかの診断対象Ｘについて、異常が発生していると最初に判定された時に、その診断対象Ｘの識別情報ＩＤｘが異常発生部位情報として異常関連情報記憶領域２２ａに記憶されると共に、その時点よりも前に異常が発生したが未だ異常であるとも正常であるとも確定判定されていない他の診断対象Ｙがあれば、その診断対象Ｙの識別情報ＩＤｙが、診断対象Ｘの異常発生時の異常関連情報として、異常関連情報記憶領域２２ａに、異常発生部位情報としての識別情報ＩＤｘと対応付けて記憶されることとなる。
【０１３７】
よって、前述した（ａ）〜（ｃ）の効果が得られる。そして、車両における複数の異常の発生順序を正しく容易に把握できるようになり、故障診断の容易性が向上する。尚、記憶装置２２の異常関連情報記憶領域２２ａが、前述した記憶部に相当するものである。
【０１３８】
また、各異常検出部２１は、自身の診断対象が異常であると確定判定した時（異常確定時）にも、異常判定実行中フラグがオンになっている他の異常検出部２１を特定し、その特定した他の異常検出部２１の診断対象の識別情報を、異常関連情報（特に異常確定時の異常関連情報）として、異常関連情報記憶領域２２ａに、異常発生部位情報としての自身の診断対象の識別情報と対応付けて記憶する。
【０１３９】
このため、何れかの診断対象Ｘについて異常と確定判定された時にも、その時点より前に異常が発生したが未だ異常であるとも正常であるとも確定判定されていない他の診断対象Ｙがあれば、その診断対象Ｙの識別情報ＩＤｙが、診断対象Ｘの異常確定時の異常関連情報として、異常関連情報記憶領域２２ａに、異常発生部位情報としての診断対象Ｘの識別情報ＩＤｘと対応付けて記憶されることとなる。
【０１４０】
よって、例えば、ある診断対象Ｘについて、異常発生時の異常関連情報と、異常確定時の異常関連情報との、両方として、同じ診断対象Ｙの識別情報ＩＤｙが記憶されていたならば、その診断対象Ｙが、診断対象Ｘよりも先に異常になったが、診断対象Ｘの異常確定時には未だ異常とも正常とも確定判定されていなかった、という状況を把握することができるようになる。
【０１４１】
更に、各異常検出部２１は、異常判定実行中フラグがオンになっている他の異常検出部２１から異常判定度合いを取得し、その異常判定度合いも異常関連情報として異常関連情報記憶領域２２ａに記憶する。
【０１４２】
このため、例えば前述したように、Ｏ２センサについての異常関連情報として、Ｏ２ヒータの識別情報が記憶されていたとすると、その識別情報と一緒に記憶されている異常判定度合いを見ることにより、Ｏ２センサの異常発生時や異常確定時において、Ｏ２ヒータの診断がどの程度まで進んでいたか（Ｏ２ヒータが異常と確定判定されそうだった度合い）を知ることができ有利である。
【０１４３】
また、各異常検出部２１は、自身の診断対象に異常が発生したと判定したものの、異常であると確定判定することなく正常であると確定判定した場合に、図７の処理を行って、自身が異常関連情報記憶領域２２ａに記憶した情報を消去する。
【０１４４】
このため、正常と確定判定した診断対象についての過去情報は異常関連情報記憶領域２２ａに残さないこととなり、その異常関連情報記憶領域２２ａを無駄なく利用できる。
また、ＥＣＵ１１では、マイコン１２のＣＰＵが図１１の出力処理を行うため、車両の整備者等は、異常関連情報記憶領域２２ａに記憶された情報を簡単に読み出すことができる。
【０１４５】
尚、本実施形態では、図４のＳ１１０の処理が異常発生判定手段に相当し、図４のＳ１２５の処理が異常確定判定手段に相当し、図４のＳ１１０，Ｓ１５０の処理が正常確定判定手段に相当し、図４のＳ１３０，Ｓ１３５，Ｓ１５５の処理が状態情報生成手段に相当している。また、図１１の出力処理が応答手段に相当している。
［第２実施形態］
第２実施形態では、第１実施形態のＥＣＵ１１に対して以下の点が異なる。
【０１４６】
まず、記憶装置２２の特定の記憶領域（関連性情報記憶手段に相当）には、各異常検出部２１の診断対象の各々について、それと関連性がある他の診断対象（以下、関連診断対象ともいう）がどれであるかを示す関連性テーブル群（関連性情報に相当）が記憶されている。
【０１４７】
その関連性テーブル群は、診断対象の１つずつについて、それの関連診断対象を記録した個別の関連性テーブルの集まりである。そして、その各関連性テーブルには、関連診断対象だけでなく、その関連診断対象の関連性の高さを示すインデックス（関連度情報）も含まれている。
【０１４８】
例えば、図１３は、Ｏ２センサの関連性テーブルであるが、それには、Ｏ２センサの関連診断対象として、Ｏ２ヒータ、ノックセンサ、エアフロセンサが記録されており、更に、その各関連診断対象には、Ｏ２センサとの関連性が高いものほど、数値の小さいインデックスが付けられている。尚、図１３において、インデックスは、［］で囲んだ数値で示されている。また、既述したように、ある診断対象Ｘの関連診断対象とは、それに異常が生じると診断対象Ｘも異常と判定される可能性がある診断対象であって、診断対象Ｘの異常原因になる可能性がある診断対象のことである。例えば、ノックセンサ又はエアフロセンサに異常が生じると、エンジンの各気筒に対する点火時期又は燃料噴射量が変わるため、排気中の酸素濃度が変わり、Ｏ２センサの出力値にも影響が出る。
【０１４９】
次に、各異常検出部２１は、図５のＳ２５０〜Ｓ２７０と、図６のＳ３３０〜Ｓ３５０との各々において、関連性テーブル群のうち、自身の診断対象についての関連性テーブルを参照することで、自身の診断対象の関連診断対象を検出し、その関連診断対象に対応した異常検出部２１のみを対象にして、異常判定実行中フラグがオンであるか否かを判定する。更に、そのとき、各異常検出部２１は、関連性テーブルに含まれる上記インデックスに基づいて、自身の診断対象に対する各関連診断対象の関連性の高さ順を把握し、自身の診断対象との関連性が高い関連診断対象に対応した異常検出部２１についてほど、早い順番で、異常判定実行中フラグがオンか否かの判定を行う。つまり、付けられたインデックスの値が小さいもの順に、異常判定実行中フラグがオンか否かを判定する。
【０１５０】
以上の構成によれば、異常判定実行中フラグがオンである異常検出部２１を特定するための処理負荷を低減することができる。
また、ある診断対象Ｘについての異常関連情報として、その診断対象Ｘと関連性がある診断対象に関する情報のみ、異常関連情報記憶領域２２ａに記憶することとなるため、その異常関連情報記憶領域２２ａの記憶容量を有効に利用できる。そして、異常原因の可能性がある診断対象に関する情報だけを異常関連情報として記憶することができるため、異常原因の解析を効率良く行うことができるようになる。
【０１５１】
更に、ある診断対象Ｘについての異常関連情報を記憶しようとする場合に、その診断対象Ｘとの関連性が高い診断対象に対応した異常検出部２１についてほど先に、異常判定実行中フラグがオンか否かの判定が行われるため、その診断対象Ｘについての異常関連情報としては、その診断対象Ｘとの関連性が高い診断対象に関する情報が優先して先に、異常関連情報記憶領域２２ａに記憶される。
【０１５２】
よって、異常関連情報記憶領域２２ａにおいて、異常関連情報を記憶するために用意された異常毎記憶領域２３における第２領域２３ｂ及び第３領域２３ｃには、異常発生部位情報が示す診断対象の異常原因になり易い診断対象についての情報が優先して、異常関連情報として記憶されることとなる。このため有限な第２領域２３ｂ及び第３領域２３ｃを有効に利用することができる。
［第３実施形態］
第３実施形態では、第１実施形態のＥＣＵ１１に対して以下の点が異なる。
【０１５３】
まず、ＥＣＵ１１には、異常判定実行中フラグがオンになっている異常検出部２１を特定可能な識別子が記録される異常判定実行中リストが備えられている。
尚、本実施形態では、異常検出部２１の識別子として、その異常検出部２１の診断対象の識別情報を用いている。異常検出部２１とそれの診断対象とは、一対一に対応しているからである。また、異常判定実行中リストの記憶場所は、例えば、記憶装置２２でも良いし、記憶装置２２とは別の書き換え可能な不揮発性メモリや、マイコン１２の内部又は外部のバックアップＲＡＭ等でも良い。
【０１５４】
次に、各異常検出部２１は、図４の異常検出処理に続いて、図１４の異常判定実行中リスト更新処理を行うようになっている。
図１４に示すように、異常判定実行中リスト更新処理では、まずＳ６１０にて、直前に行った異常検出処理（図４）で、自身の異常判定実行中フラグをオフからオンに反転させたか否かを判定する。
【０１５５】
そして、異常判定実行中フラグをオフからオンに反転させたならば、Ｓ６２０に進んで、異常判定実行中リストに、自身の診断対象の識別情報（以下、識別情報のことをＩＤともいう）を記録し、その後、当該異常判定実行中リスト更新処理を終了する。
【０１５６】
また、上記Ｓ６１０にて、異常判定実行中フラグをオフからオンに反転させていないと判定した場合には、Ｓ６３０に移行し、直前に行った異常検出処理（図４）で、自身の異常判定実行中フラグをオンからオフに反転させたか否かを判定する。
【０１５７】
そして、異常判定実行中フラグをオンからオフに反転させていなければ、そのまま当該異常判定実行中リスト更新処理を終了するが、異常判定実行中フラグをオンからオフに反転させたならば、Ｓ６４０に進んで、異常判定実行中リストから、自身の診断対象の識別情報（ＩＤ）を削除し、その後、当該異常判定実行中リスト更新処理を終了する。
【０１５８】
このような異常判定実行中リスト更新処理を各異常検出部２１が行うことにより、異常判定実行中リストには、異常判定実行中フラグがオンになっている異常検出部２１の識別子として、その異常検出部２１の診断対象の識別情報（ＩＤ）が、リアルタイムに記録されることとなる。
【０１５９】
更に、各異常検出部２１は、図５のＳ２５０〜Ｓ２８０に代えて、図１５に示す処理を実行するようになっている。
図１５に示すように、各異常検出部２１は、図５のＳ２４０で異常発生時の異常関連情報記憶数が上限数未満であると判定した場合に、Ｓ７１０に進んで、異常判定実行中リストにＩＤが記録されているか否かを判定し、ＩＤが記録されていなければ、そのまま図５のＳ２９０へ移行する。
【０１６０】
また、上記Ｓ７１０にて、異常判定実行中リストにＩＤが記録されていると判定した場合には、Ｓ７２０に進む。
Ｓ７２０では、異常判定実行中リストに記録されているＩＤのなかから、今回の当該図１５の処理を始めてから未だ選択していないものを１つ選択し、その選択したＩＤに対応した異常検出部２１（詳しくは、そのＩＤが示す診断対象に対応した異常検出部２１）から、異常発生時の異常関連情報として記憶すべき情報（診断対象の識別情報及び異常判定度合い）を、図５のＳ２８０と同じ手順で取得する。そして、その取得した情報を、異常関連情報記憶領域２２ａのうち、自身の診断対象の識別情報が第１領域２３ａに記憶された異常毎記憶領域２３の第２領域２３ｂに、１個の異常発生時の異常関連情報として記憶する。尚、異常関連情報として記憶する情報のうち、診断対象の識別情報については、上記選択したＩＤに対応した異常検出部２１から取得するのではなく、選択したＩＤ自体を、異常関連情報として記憶しても良い。
【０１６１】
そして、次のＳ７３０にて、上記Ｓ７２０で未だ選択していないＩＤがあるか否かを判定し、未選択のＩＤがあれば、図５のＳ２４０に戻り、未選択のＩＤがなければ、図５のＳ２９０に移行する。
【０１６２】
また、図１５において（）内に示しているように、各異常検出部２１は、図６のＳ３３０〜Ｓ３６０に代えても、図１５に示す処理を実行する。
即ち、各異常検出部２１は、図６のＳ３２０で異常確定時の異常関連情報記憶数が上限数未満であると判定した場合に、Ｓ７１０に進んで、異常判定実行中リストにＩＤが記録されているか否かを判定し、ＩＤが記録されていなければ、そのまま図６のＳ３７０へ移行する。
【０１６３】
また、上記Ｓ７１０にて、異常判定実行中リストにＩＤが記録されていると判定した場合には、Ｓ７２０に進む。そして、Ｓ７２０では、異常判定実行中リストに記録されているＩＤのなかから、今回の当該図１５の処理を始めてから未だ選択していないものを１つ選択し、その選択したＩＤに対応した異常検出部２１から、異常確定時の異常関連情報として記憶すべき情報（診断対象の識別情報及び異常判定度合い）を取得する。そして、その取得した情報を、異常関連情報記憶領域２２ａのうち、自身の診断対象の識別情報が第１領域２３ａに記憶された異常毎記憶領域２３の第３領域２３ｃに、１個の異常確定時の異常関連情報として記憶する。尚、前述したように、異常関連情報として記憶すべき情報のうち、診断対象の識別情報については、異常判定実行中リストから選択したＩＤを、異常関連情報として記憶しても良い。
【０１６４】
そして、次のＳ７３０にて、上記Ｓ７２０で未だ選択していないＩＤがあるか否かを判定し、未選択のＩＤがあれば、図６のＳ３２０に戻り、未選択のＩＤがなければ、図６のＳ３７０に移行する。
【０１６５】
つまり、各異常検出部２１は、異常判定実行中フラグがオンになっている他の異常検出部２１を特定する際に、異常判定実行中リストを参照して、その異常判定実行中リストに記録されているＩＤにより、異常判定実行中フラグがオンになっている異常検出部２１を特定するようになっている。
【０１６６】
以上のような第３実施形態によれば、各異常検出部２１は、異常関連情報を記憶しようとするときに、異常判定実行中リストを参照するだけで、異常判定実行中フラグがオンになっている他の異常検出部２１を特定することができる。よって、他の異常検出部２１の異常判定実行中フラグを１つずつチェックする処理（図５におけるＳ２５０〜Ｓ２７０、図６におけるＳ３３０〜Ｓ３５０）を行う必要がなく、処理負荷を低減することができる。特に、異常検出部２１の数が多い場合に有効である。また、請求項７の装置に関して述べたように、記憶される異常関連情報の同時性も確保し易くなる。
【０１６７】
尚、本第３実施形態では、図１４の処理が異常判定実行中リスト更新手段に相当している。
一方、本第３実施形態に対しても、第２実施形態の手法を適用することができる。
【０１６８】
即ち、第２実施形態で述べた関連性テーブル群をＥＣＵ１１に設ける。
そして、各異常検出部２１は、図１５のＳ７１０において、自身の診断対象についての関連性テーブルを参照することにより自身の診断対象の関連診断対象を検出し、その関連診断対象のＩＤについてのみ、異常判定実行中リストに記録されているか否かを判定する。更に、図１５のＳ７２０で異常判定実行中リストからＩＤを選択する際には、関連診断対象のＩＤだけを選択対象とする。また更に、そのＳ７２０で異常判定実行中リストから関連診断対象のＩＤを選択する際には、関連性テーブルに含まれる前述のインデックスに基づいて、自身の診断対象に対する各関連診断対象の関連性の高さ順を把握し、自身の診断対象との関連性が高い関連診断対象のＩＤほど、早い順番で選択するように構成しても良い。
［第４実施形態］
第４実施形態は、車両に搭載されて互いに通信する複数のＥＣＵからなる車載ネットワーク（車載通信システム）に対して、本発明を適用したものである。
【０１６９】
図１６に示すように、第４実施形態の車載ネットワークは、車両内の通信線１５を介して接続された複数（この例では３つ）のＥＣＵ１〜３から構成されている。
例えば、ＥＣＵ１は、車両のエンジンを制御するＥＣＵであり、ＥＣＵ２は、トランスミッションを制御するＥＣＵであり、ＥＣＵ３は、他の制御対象を制御するＥＣＵである。そして、各ＥＣＵ１〜３は、互いに通信して制御データ等の各種情報の授受を行う。このため、各ＥＣＵ１〜３には、通信線１５を介して他の装置と通信するためのデータ送受信部２５（通信手段に相当）が設けられている。
【０１７０】
また、各ＥＣＵ１〜３は、制御対象に関する制御内容以外については、前述した何れかの実施形態のＥＣＵ１１と同様の構成及び機能を備えたものである。つまり、各ＥＣＵ１〜３には、１つ以上の異常検出部２１と、記憶装置２２（図１６では図示省略）も備えられている。尚、データ送受信部２５は、図１では図示を省略したが、前述したＥＣＵ１１にも設けられているものである。また、本実施形態においても、通信線１５にはスキャンツール１３が接続可能になっている。
【０１７１】
そして、各ＥＣＵ１〜３の各異常検出部２１は、異常発生時あるいは異常確定時の異常関連情報を記憶しようとする際（即ち、図５のＳ２４０でＹＥＳの場合、あるいは、図６のＳ３２０でＹＥＳの場合）に、自身が備えられたＥＣＵ（以下、自ＥＣＵという）の他の異常検出部２１については、前述した何れかの実施形態と同じ手法により、異常判定実行中フラグがオンになっている異常検出部２１を特定して、その異常検出部２１から、異常関連情報として記憶すべき情報（診断対象の識別情報及び異常判定度合い）を取得する。
【０１７２】
また、各ＥＣＵ１〜３の各異常検出部２１は、異常発生時あるいは異常確定時の異常関連情報を記憶しようとする際に、自ＥＣＵ以外のＥＣＵ（以下、他ＥＣＵという）に備えられている他の異常検出部２１については、例えば、以下の手順で、異常判定実行中フラグがオンになっている異常検出部２１を特定すると共に、その特定した異常検出部２１から、異常関連情報として記憶すべき情報を取得する。
【０１７３】
まず、異常検出部２１（ここでは、異常検出部２１ｃとする）は、データ送受信部２５及び通信線１５を介した通信により、他ＥＣＵに対して、そのＥＣＵに備えられている各異常検出部２１の異常判定実行中フラグと診断対象の識別情報及び異常判定度合いとを要求する要求メッセージを送信する。
【０１７４】
その要求メッセージを受信したＥＣＵは、自身に備えられている各異常検出部２１の異常判定実行中フラグと診断対象の識別情報及び異常判定度合いとを、上記要求メッセージの送信元のＥＣＵへ送信する。
【０１７５】
要求メッセージの送信元である異常検出部２１ａは、他ＥＣＵから送信されて来た各異常判定実行中フラグのオン／オフを判定し、オンである異常判定実行中フラグがあれば、そのオンである異常判定実行中フラグと一緒に送られて来た診断対象の識別情報と異常判定度合いとを、異常関連情報として記憶する。
【０１７６】
ところで、このような手順では、各異常検出部２１は、他ＥＣＵの全てから、そのＥＣＵに備えられている全ての異常検出部２１の異常判定実行中フラグを通信により取得して、そのフラグのオン／オフを判定する、といった手順を踏むこととなり、異常関連情報として記憶すべき情報を取得するための処理負荷が非常に大きくなる。また、通信データ量も多くなりがちである。そこで次に、こうした点を改善した第５実施形態について説明する。
［第５実施形態］
図１７に示す第５実施形態の車載ネットワークは、第４実施形態と比較すると、各ＥＣＵ１〜３が、前述した第３実施形態のＥＣＵ１１と同様の構成及び機能を備えたものであり、更に、各ＥＣＵ１〜３には、異常状態記憶部２７が備えられている。
【０１７７】
そして、異常状態記憶部２７には、異常判定実行中リスト２８と、ＥＣＵリスト２９とが格納されている。尚、異常状態記憶部２７は、例えば、データの書き換えが可能な不揮発性メモリやバックアップＲＡＭからなる。また、異常状態記憶部２７は、記憶装置２２における一部の記憶領域でも良い。
【０１７８】
異常判定実行中リスト２８は、第３実施形態で説明したものである。このため、異常判定実行中リスト２８には、その異常判定実行中リスト２８が設けられている自ＥＣＵにおいて、異常判定実行中フラグがオンになっている異常検出部２１の診断対象のＩＤが記録される。
【０１７９】
また、ＥＣＵリスト２９は、ＥＣＵの識別子であるＥＣＵＩＤ（ユニット識別子に相当）のうち、異常判定実行中フラグがオンになっている異常検出部２１を有した他ＥＣＵのＥＣＵＩＤが記録されるリスト（ユニットリストに相当）である。
【０１８０】
そして更に、各ＥＣＵ１〜３では、それに備えられたマイコン１２のＣＰＵが、図１８（Ａ），（Ｂ）の各処理を一定時間毎に行う。
まず、図１８（Ａ）は、他ＥＣＵに対して、そのＥＣＵにおけるＥＣＵリスト２９を更新させるための、ＥＣＵリスト更新依頼処理を表すフローチャートである。
【０１８１】
図１８（Ａ）に示すように、マイコン１２のＣＰＵは、ＥＣＵリスト更新依頼処理を開始すると、まずＳ８１０にて、ＩＤ未記録状態の（つまり、ＩＤが記録されていない状態の）異常判定実行中リスト２８に、診断対象のＩＤを記録したか否かを判定する。尚、異常判定実行中リスト２８へのＩＤの記録は、前述した図１４の処理（Ｓ６２０）によって行われるものである。
【０１８２】
そして、上記Ｓ８１０で肯定判定（ＹＥＳと判定）した場合には、Ｓ８２０に進み、自ＥＣＵのＥＣＵＩＤを、他ＥＣＵの全てに送信（ブロードキャスト）し、その後、Ｓ８３０に進む。尚、ここで送信されるＥＣＵＩＤには、送信先のＥＣＵにおけるＥＣＵリスト２９への記録要求を意味する情報も含まれている。また、上記Ｓ８１０で否定判定（ＮＯと判定）した場合には、Ｓ８２０をスキップしてＳ８３０に進む。
【０１８３】
よって、自ＥＣＵに設けられている全ての異常検出部２１の異常判定実行中フラグがオフになっている状態から、自ＥＣＵに設けられている少なくとも１つの異常検出部２１の異常判定実行中フラグがオンになった状態に変化すると、自ＥＣＵのＥＣＵＩＤを他ＥＣＵへ送信することとなる。尚、ＥＣＵ間の通信は、各ＥＣＵに設けられたデータ送受信部２５と通信線１５を介して行われる。
【０１８４】
Ｓ８３０では、ＩＤ記録状態の（つまり、ＩＤが記録されていた状態の）異常判定実行中リスト２８から、ＩＤが全て削除されたか否かを判定する。
そして、上記Ｓ８３０で肯定判定した場合には、Ｓ８４０に進み、自ＥＣＵのＥＣＵＩＤの消去を要求するＩＤ消去要求を、他ＥＣＵの全てに送信（ブロードキャスト）し、その後、当該ＥＣＵリスト更新依頼処理を終了する。また、上記Ｓ８３０で否定判定した場合には、Ｓ８４０をスキップして、当該ＥＣＵリスト更新依頼処理を終了する。
【０１８５】
よって、自ＥＣＵに設けられている少なくとも１つの異常検出部２１の異常判定実行中フラグがオンになっている状態から、自ＥＣＵに設けられている全ての異常検出部２１の異常判定実行中フラグがオフになった状態に変化すると、自ＥＣＵのＥＣＵＩＤの消去を要求するＩＤ消去要求を他ＥＣＵへ送信することとなる。
【０１８６】
次に、図１８（Ｂ）は、自ＥＣＵにおけるＥＣＵリスト２９を更新するための、ＥＣＵリスト更新処理を表すフローチャートである。
図１８（Ｂ）に示すように、マイコン１２のＣＰＵは、ＥＣＵリスト更新処理を開始すると、まずＳ８５０にて、他ＥＣＵからのＥＣＵＩＤを受信したか否かを判定する。尚、ここで受信の有無を判定するＥＣＵＩＤは、他ＥＣＵにおいて、図１８（Ａ）のＳ８２０の処理により送信されたものである。
【０１８７】
そして、他ＥＣＵからのＥＣＵＩＤを受信していなければ、そのままＳ８７０に移行するが、他ＥＣＵからのＥＣＵＩＤを受信したならば、Ｓ８６０に進んで、その受信したＥＣＵＩＤを、自ＥＣＵのＥＣＵリスト２９に記録し、その後、Ｓ８７０に進む。
【０１８８】
Ｓ８７０では、他ＥＣＵからのＩＤ消去要求を受信したか否かを判定する。尚、ここで受信の有無を判定するＩＤ消去要求は、他ＥＣＵにおいて、図１８（Ａ）のＳ８４０の処理により送信されたものである。
【０１８９】
そして、他ＥＣＵからのＩＤ消去要求を受信していなければ、そのまま当該ＥＣＵリスト更新処理を終了するが、他ＥＣＵからのＩＤ消去要求を受信したならば、Ｓ８８０に進んで、その受信したＩＤ消去要求が示すＥＣＵＩＤを、自ＥＣＵのＥＣＵリスト２９から消去する。そして、その後、当該ＥＣＵリスト更新処理を終了する。
【０１９０】
このような図１８（Ａ），（Ｂ）の処理が各ＥＣＵ１〜３で行われることにより、各ＥＣＵ１〜３のＥＣＵリスト２９には、異常判定実行中フラグがオンになっている異常検出部２１を有した他ＥＣＵのＥＣＵＩＤがリアルタイムに記録されることとなる。
【０１９１】
更に、各ＥＣＵ１〜３における各異常検出部２１は、図５のＳ２５０〜Ｓ２８０に代わる図１５の処理（即ち、異常発生時の異常関連情報を記憶しようとする際に行う処理）において、Ｓ７１０とＳ７３０との何れかでＮＯと判定した場合に、図１９に示す処理を行い、その図１９の処理を終えたら、図５のＳ２９０に移行する。
【０１９２】
即ち、図１５におけるＳ７１０とＳ７３０との何れかでＮＯと判定した場合には、図１９のＳ９１０に進んで、自ＥＣＵのＥＣＵリスト２９にＥＣＵＩＤが記録されているか否かを判定する。
【０１９３】
そして、ＥＣＵＩＤが記録されていなければ、そのまま図５のＳ２９０に移行するが、ＥＣＵＩＤが記録されていれば、Ｓ９２０に進み、その記録されていたＥＣＵＩＤが示す他ＥＣＵに対して、異常関連情報要求を送信する。そして、その後、Ｓ９３０に進む。
【０１９４】
尚、後述するように、各ＥＣＵ１〜３は、他ＥＣＵからの上記異常関連情報要求を受信すると、自ＥＣＵにおいて、異常判定実行中フラグがオンになっている異常検出部２１から、異常関連情報として記憶されるべき情報（その異常検出部２１の診断対象の識別情報と異常判定度合い）を取得し、その取得した情報を、異常関連情報要求の送信元であるＥＣＵへ送信する。
【０１９５】
そこで、Ｓ９３０では、上記Ｓ９２０で送信した異常関連情報要求に応答して他ＥＣＵから異常関連情報が送られて来るまで待ち、他ＥＣＵからの異常関連情報を受信したならば、Ｓ９４０に進む。尚、ある制限時間以内に異常関連情報を受信できなければ、例えば、異常関連情報要求の再送信を行うか、あるいは、そのまま当該図１９の処理を終えて図５のＳ２９０に移行する。
【０１９６】
そして、Ｓ９４０では、受信した異常関連情報を、異常関連情報記憶領域２２ａのうち、自身の診断対象の識別情報が第１領域２３ａに記憶された異常毎記憶領域２３の第２領域２３ｂに、異常発生時の異常関連情報として記憶する。
【０１９７】
尚、ＥＣＵリスト２９に複数のＥＣＵＩＤが記録されていた場合には、例えば、そのＥＣＵＩＤの１つずつについてＳ９２０〜Ｓ９４０の処理を行う。また、Ｓ９４０での記憶処理によって、異常発生時の異常関連情報記憶数が上限数に達したなら、たとえ異常関連情報要求を送信していない他ＥＣＵが残っていたり、他ＥＣＵから受信したが未記憶の異常関連情報が残っていても、仕方がないので、当該図１９の処理を終えて図５のＳ２９０へ移行する。
【０１９８】
同様に、各ＥＣＵ１〜３における各異常検出部２１は、図６のＳ３３０〜Ｓ３６０に代わる図１５の処理（即ち、異常確定時の異常関連情報を記憶しようとする際に行う処理）において、Ｓ７１０とＳ７３０との何れかでＮＯと判定した場合にも、図１９に示す処理を行い、その図１９の処理を終えたら、該図１９の（）内に示しているように、図６のＳ３７０へ移行する。但し、この場合の図１９におけるＳ９４０では、他ＥＣＵから受信した異常関連情報を、異常関連情報記憶領域２２ａのうち、自身の診断対象の識別情報が第１領域２３ａに記憶された異常毎記憶領域２３の第３領域２３ｃに、異常確定時の異常関連情報として記憶する。
【０１９９】
また、各ＥＣＵ１〜３では、それに備えられたマイコン１２のＣＰＵが、前述した異常関連情報要求に応答するための処理として、図２０の異常関連情報送信処理を一定時間毎に行う。
【０２００】
図２０に示すように、マイコン１２のＣＰＵは、異常関連情報送信処理を開始すると、まずＳ１０１０にて、他ＥＣＵからの異常関連情報要求を受信したか否かを判定する。尚、ここで受信の有無を判定する異常関連情報要求は、他ＥＣＵの何れかの異常検出部２１が図１９のＳ９２０の処理を行うことで該他ＥＣＵから送信されるものである。
【０２０１】
そして、他ＥＣＵからの異常関連情報要求を受信していなければ、そのまま当該異常関連情報送信処理を終了するが、異常関連情報要求を受信したならば、Ｓ１０２０に進む。
Ｓ１０２０では、自ＥＣＵの異常判定実行中リスト２８にＩＤ（即ち、自ＥＣＵにおいて、異常判定実行中フラグがオンになっている異常検出部２１の診断対象の識別情報）が記録されているか否かを判定し、ＩＤが記録されていなければ、そのまま当該異常関連情報送信処理を終了するが、異常判定実行中リスト２８にＩＤが記録されていれば、Ｓ１０３０に進む。尚、他ＥＣＵからの異常関連情報要求を受ける場合、正常ならば、自ＥＣＵの異常判定実行中リスト２８に少なくとも１つはＩＤが記録されているはずであるため、Ｓ１０２０の判定は念のための確認処理である。
【０２０２】
Ｓ１０３０では、異常判定実行中リスト２８に記録されているＩＤに対応した異常検出部２１から、異常関連情報として記憶すべき情報（診断対象の識別情報及び異常判定度合い）を、図５のＳ２８０や図１５の７２０と同じ手順で取得する。そして、その取得した情報を、異常関連情報要求の送信元のＥＣＵ（要求元のＥＣＵ）へ送信し、その後、当該異常関連情報送信処理を終了する。尚、異常関連情報として送信する情報のうち、診断対象の識別情報については、異常検出部２１から取得するのではなく、異常判定実行中リスト２８に記録されていたＩＤ自体を送信しても良い。
【０２０３】
以上のような第５実施形態によれば、各ＥＣＵの各異常検出部２１は、他ＥＣＵの全てから、そのＥＣＵに備えられている全ての異常検出部２１の異常判定実行中フラグを通信により取得して、そのフラグのオン／オフを判定する、といった手順を踏まなくても、他ＥＣＵから、異常関連情報として記憶すべき情報を取得することができる。よって、各異常検出部２１が異常関連情報の記憶に要する所要時間を短くすることができる。
【０２０４】
また、ＥＣＵリスト２９にＥＣＵＩＤが記録されている他ＥＣＵのみに異常関連情報要求を通信することと、そのＥＣＵからは、異常判定実行中フラグがオンになっている異常検出部２１についての情報であって、異常関連情報として記憶すべき情報だけが送信されるため、通信データ量を抑制することができる。
【０２０５】
また更に、ＥＣＵリスト２９へのＥＣＵＩＤの記録及び消去が、動的に行われる構成であるため、車載ネットワークを構成するＥＣＵの数が増減したり、ＥＣＵが入れ替わったりしても、設計変更無しに対応することができる。
【０２０６】
尚、本実施形態では、図１８（Ａ）のＳ８１０，Ｓ８２０の処理がユニット識別子送信手段に相当し、図１８（Ｂ）のＳ８５０，Ｓ８６０の処理が識別子記録手段に相当し、図１８（Ａ）のＳ８３０，Ｓ８４０の処理が消去要求送信手段に相当し、図１８（Ｂ）のＳ８７０，Ｓ８８０の処理が識別子消去手段に相当している。また、図２０の処理が異常関連情報送信手段に相当している。
【０２０７】
以上、本発明の一実施形態について説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲において、種々なる態様で実施し得ることは勿論である。
【０２０８】
例えば、異常関連情報として、それを記憶した時の時刻情報も異常関連情報記憶領域２２ａに記憶するように構成しても良い。また、異常関連情報として、異常判定度合いを記憶しない構成でも良い。
【０２０９】
また、図７の処理を行わない構成でも良い。そのように構成すれば、ある診断対象に異常が発生したが異常確定に至ることなく該診断対象が正常復帰して正常と確定判定された場合にも、その診断対象に異常が発生した履歴と異常関連情報とが異常関連情報記憶領域２２ａに残ることとなる。つまり、一度でも異常が発生したことがあれば、異常確定に至らなくても、異常発生部位情報と異常関連情報が残ることとなる。更に、その変形の場合に、図５におけるＳ２１０の判定を削除して、ある診断対象の正常確定後の最初の異常発生時毎に、その診断対象についての異常発生部位情報及び異常関連情報が更新して記憶されるようにすることもできる。
【０２１０】
また、図４のＳ１２５で判定する異常確定条件としては、異常判定条件が成立していると判定した連続回数ではなく、累積回数が異常確定閾値に達した、という条件でも良い。同様に、図４のＳ１５０で判定する正常確定条件としては、正常判定条件が成立していると判定した累積回数が正常確定閾値に達した、という条件でも良い。また、異常判定条件と正常判定条件との成立／非成立を判定する間隔が一定時間でない構成でも良い。
【０２１１】
また、異常検出部２１はハードウェア回路によって構成しても良い。
【符号の説明】
【０２１２】
１，２，３，１１…ＥＣＵ（電子制御ユニット）、１２…マイコン、１３…スキャンツール、１５…通信線、２１（２１ａ，２１ｂ，２１ｃ）…異常検出部、２２…記憶装置、２２ａ…異常関連情報記憶領域、２３…異常毎記憶領域、２３ａ…第１領域、２３ｂ…第２領域、２３ｃ…第３領域、２５…データ送受信部、２７…異常状態記憶部、２８…異常判定実行中リスト、２９…ＥＣＵリスト
【図１】
2011163769.tif 000003
【図２】
2011163769.tif 000004
【図４】
2011163769.tif 000005
【図５】
2011163769.tif 000006
【図６】
2011163769.tif 000007
【図７】
2011163769.tif 000008
【図８】
2011163769.tif 000009
【図９】
2011163769.tif 000010
【図１０】
2011163769.tif 000011
【図１１】
2011163769.tif 000012
【図１２】
2011163769.tif 000013
【図１３】
2011163769.tif 000014
【図１４】
2011163769.tif 000015
【図１５】
2011163769.tif 000016
【図１６】
2011163769.tif 000017
【図１７】
2011163769.tif 000018
【図１８】
2011163769.tif 000019
【図１９】
2011163769.tif 000020
【図２０】
2011163769.tif 000021
【図３】
2011163769.tif 000022