(57)【特許請求の範囲】
【請求項１】
故障車両から故障コードを取得するステップと、
故障発生時に各故障コードが車両に記録される確率を故障パターンごとに表す管理テーブルと、前記故障車両から取得した故障コードとに基づいて、前記故障車両で発生している確率の高い故障パターンを推定するステップと、
推定した故障パターンを出力するステップとを有し、
前記管理テーブルは、故障パターンごとにコンピュータシミュレーションを行って、各故障パターンの発生時に制御装置で検出される故障コードと、該故障コードが記録される確率とを車両に搭載される複数の制御装置ごとに演算することで作成され、
前記コンピュータシミュレーションを行うソフトウェアは、車両に搭載された前記複数の制御装置と、該複数の制御装置を接続する通信網とを模擬した仮想ネットワークを構築し、
前記仮想ネットーク内のフレームデータの通信状態をシミュレーションすると共に、前記仮想ネットワークに模擬的に故障を生じさせて、前記複数の制御装置が検出する故障コードをモニタするものであり、
前記通信状態のシミュレーションを前記フレームデータの通信タイミングごとに行うことを特徴とする故障パターン推定方法。
【請求項２】
実際に車両に搭載された複数の制御装置で識別される通信網の状態として、正常である第１の状態と、エラーの発生を検出した第２の状態と、エラーを連続して検出して前記複数の制御装置をバスから論理的に切り離した第３の状態とを有するが、
前記ソフトウェアによって構築される前記仮想ネットワークでは、前記第２の状態を省略したことを特徴とする請求項１記載の故障パターン推定方法。
【請求項３】
前記故障パターンを推定するステップは、故障パターンに採点値を付加して前記故障車両で発生している確率が高い故障パターンを推定するステップであり、前記故障車両から取得した故障コードが含まれない故障パターンの採点値を、前記故障車両から取得した故障コードが含まれる故障パターンの採点値よりも低くして、前記故障車両から取得した故障コードが含まれない故障パターンの順位を下げることを特徴とする請求項１又は２記載の故障パターン推定方法。
【請求項４】
前記故障パターンを推定するステップは、故障パターンに採点値を付加して前記故障車両で発生している確率が高い故障パターンを推定するステップであり、前記故障車両から取得することができなかった故障コードの含まれる故障パターンの採点値を、前記故障車両から取得することができた故障コードの含まれる故障パターンの採点値よりも低くして、前記故障車両から取得することができなかった故障コードの含まれる故障パターンの順位を下げることを特徴とする請求項１又は２記載の故障パターン推定方法。
【請求項５】
故障パターンごとに、故障発生時に各故障コードが車両に記録される確率を表す管理テーブルと、故障車両から取得した故障コードとに基づいて、前記故障車両で発生している確率の高い故障パターンを推定する推定手段と、
推定した故障パターンを出力する出力手段とを有し、
前記管理テーブルは、故障パターンごとにコンピュータシミュレーションを行って、各故障パターンの発生時に制御装置で検出される故障コードと、該故障コードが記録される確率とを車両に搭載される複数の制御装置ごとに演算することで作成され、
前記コンピュータシミュレーションを行うソフトウェアは、車両に搭載された前記複数の制御装置と、該複数の制御装置を接続する通信網とを模擬した仮想ネットワークを構築し、
前記仮想ネットーク内のフレームデータの通信状態をシミュレーションすると共に、前記仮想ネットワークに模擬的に故障を生じさせて、前記複数の制御装置が検出する故障コードをモニタするものであり、
前記通信状態のシミュレーションを前記フレームデータの通信タイミングごとに行うことを特徴とする故障パターン推定装置。
【請求項６】
コンピュータを、
故障パターンごとに、故障発生時に各故障コードが車両に記録される確率を表す管理テーブルと、故障車両から取得した故障コードとに基づいて、前記故障車両で発生している確率の高い故障パターンを推定する手段と、
推定した故障パターンを出力する手段として機能させ、
前記管理テーブルは、故障パターンごとにコンピュータシミュレーションを行って、各故障パターンの発生時に制御装置で検出される故障コードと、該故障コードが記録される確率とを車両に搭載される複数の制御装置ごとに演算することで作成され、
前記コンピュータシミュレーションを行うソフトウェアは、車両に搭載された前記複数の制御装置と、該複数の制御装置を接続する通信網とを模擬した仮想ネットワークを構築し、
前記仮想ネットーク内のフレームデータの通信状態をシミュレーションすると共に、前記仮想ネットワークに模擬的に故障を生じさせて、前記複数の制御装置が検出する故障コードをモニタするものであり、
前記通信状態のシミュレーションを前記フレームデータの通信タイミングごとに行うことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車載ＬＡＮの断線箇所を精度よく推定する技術に関する。
【背景技術】
【０００２】
車両が故障した場合、各ＥＣＵは故障診断を行い、診断結果をダイアグコードとしてメモリに記憶する。修理作業者は、車両ダイアグコネクタに故障診断ツールを接続して前述メモリに格納されたダイアグコードを取得する。修理作業者は、取得したダイアグコードをもとに、ダイアグコードと故障箇所とを対応付けた表（以下、故障引き当て表という）を参照して故障箇所を特定し、特定した故障箇所の修理を行う。
【０００３】
故障引き当て表には、車載ＬＡＮの断線する可能性のある１つ１つの箇所に対して、各ＥＣＵがどのようなダイアグコードを出力するのかを記録している。
故障引き当て表は、テストベンチで実際の車両に故障を発生させ、各ＥＣＵが記憶するダイアグコードを取得して作成する。このため、車載ＬＡＮの規模が大きくなると故障モード数の増加、大掛かりな評価設備の設置、専門知識を有する複数の作業者の配置、処理時間の長大化、人為的なミスによって誤ったダイアグコードを取得する等、複数の問題が生じる。
【０００４】
近年では、コンピュータ関連技術の向上に伴い、コンピュータを用いたシミュレーションにより複数の車載電装品間での連携動作を試験するシステムも提案されている（例えば、特許文献１参照）。
【０００５】
【特許文献１】特開２００５−１８１１１３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、故障箇所を１箇所に特定するのは非常に難しく、故障の可能性があると判定できる箇所を数箇所検出するのが一般的である。
例えば、車載ＬＡＮ等の通信線は複数のＥＣＵで共有するため、一箇所の故障であっても故障の影響は複数箇所にまたがる。このため、各ＥＣＵが様々なダイアグコードを出力し、故障箇所の特定が難しくなる。
また、特許文献１の開示技術は、車載電装品間での連携動作を試験するシステムであって、車載ＬＡＮの故障箇所を推定するようなシステムの開示ではない。
【０００７】
本発明は上記事情に鑑みてなされたものであり、車載ＬＡＮで発生している可能性の高い故障パターンを、高い精度で推定することができる故障パターン推定方法、故障パターン推定装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
かかる目的を達成するために本発明の故障パターン推定方法は、故障車両から故障コードを取得するステップと、故障発生時に各故障コードが車両に記録される確率を故障パターンごとに表す管理テーブルと、前記故障車両から取得した故障コードとに基づいて、前記故障車両で発生している確率の高い故障パターンを推定するステップと、推定した故障パターンを出力するステップとを有し、前記管理テーブルは、故障パターンごとにコンピュータシミュレーションを行って、各故障パターンの発生時に制御装置で検出される故障コードと、該故障コードが記録される確率とを車両に搭載される複数の制御装置ごとに演算することで作成され、前記コンピュータシミュレーションを行うソフトウェアは、車両に搭載された前記複数の制御装置と、該複数の制御装置を接続する通信網とを模擬した仮想ネットワークを構築し、前記仮想ネットーク内のフレームデータの通信状態をシミュレーションすると共に、前記仮想ネットワークに模擬的に故障を生じさせて、前記複数の制御装置が検出する故障コードをモニタするものであり、前記通信状態のシミュレーションを前記フレームデータの通信タイミングごとに行うことを特徴とする。
本発明によれば、車載ＬＡＮで発生している可能性の高い故障パターンを、管理テーブルを用いて高い精度で推定することができる。
また、故障パターンごとにコンピュータシミュレーションを行うことで管理テーブルが作成されるので、管理テーブルの作成を短時間で、しかも容易に作成することができる。
また、通信状態のシミュレートをフレームデータの通信タイミングごとに行うことで精度のよいモニタ結果を得ることができる。
【００１１】
上記故障パターン推定方法において、実際に車両に搭載された複数の制御装置で識別される通信網の状態として、正常である第１の状態と、エラーの発生を検出した第２の状態と、エラーを連続して検出して前記複数の制御装置をバスから論理的に切り離した第３の状態とを有するが、前記ソフトウェアによって構築される前記仮想ネットワークでは、前記第２の状態を省略したことを特徴としている。
従って、データの送信許可、停止に関わる状態だけをモニタすることができる。
【００１２】
上記故障パターン推定方法において、前記故障パターンを推定するステップは、故障パターンに採点値を付加して前記故障車両で発生している確率が高い故障パターンを推定するステップであり、前記故障車両から取得した故障コードが含まれない故障パターンの採点値を、前記故障車両から取得した故障コードが含まれる故障パターンの採点値よりも低くして、前記故障車両から取得した故障コードが含まれない故障パターンの順位を下げることを特徴とする。
したがって、故障車両から取得した故障コードが含まれない故障パターンの順位を下げることで、故障車両で発生している確率が高い故障パターンを推定する精度を高めることができる。
また、上記故障パターン推定方法において、前記故障パターンを推定するステップは、故障パターンに採点値を付加して前記故障車両で発生している確率が高い故障パターンを推定するステップであり、前記故障車両から取得することができなかった故障コードの含まれる故障パターンの採点値を、前記故障車両から取得することができた故障コードの含まれる故障パターンの採点値よりも低くして、前記故障車両から取得することができなかった故障コードの含まれる故障パターンの順位を下げることを特徴とする。
したがって、故障車両から取得することができなかった故障コードの含まれる故障パターンの順位を下げることで、故障車両で発生している確率が高い故障パターンを推定する精度を高めることができる。
【００１３】
本発明の故障パターン推定装置は、故障パターンごとに、故障発生時に各故障コードが車両に記録される確率を表す管理テーブルと、故障車両から取得した故障コードとに基づいて、前記故障車両で発生している確率の高い故障パターンを推定する推定手段と、推定した故障パターンを出力する出力手段とを有し、前記管理テーブルは、故障パターンごとにコンピュータシミュレーションを行って、各故障パターンの発生時に制御装置で検出される故障コードと、該故障コードが記録される確率とを車両に搭載される複数の制御装置ごとに演算することで作成され、前記コンピュータシミュレーションを行うソフトウェアは、車両に搭載された前記複数の制御装置と、該複数の制御装置を接続する通信網とを模擬した仮想ネットワークを構築し、前記仮想ネットーク内のフレームデータの通信状態をシミュレーションすると共に、前記仮想ネットワークに模擬的に故障を生じさせて、前記複数の制御装置が検出する故障コードをモニタするものであり、前記通信状態のシミュレーションを前記フレームデータの通信タイミングごとに行うことを特徴とする。
【００１４】
本発明のプログラムは、コンピュータを、故障パターンごとに、故障発生時に各故障コードが車両に記録される確率を表す管理テーブルと、故障車両から取得した故障コードとに基づいて、前記故障車両で発生している確率の高い故障パターンを推定する手段と、推定した故障パターンを出力する手段として機能させ、前記管理テーブルは、故障パターンごとにコンピュータシミュレーションを行って、各故障パターンの発生時に制御装置で検出される故障コードと、該故障コードが記録される確率とを車両に搭載される複数の制御装置ごとに演算することで作成され、前記コンピュータシミュレーションを行うソフトウェアは、車両に搭載された前記複数の制御装置と、該複数の制御装置を接続する通信網とを模擬した仮想ネットワークを構築し、前記仮想ネットーク内のフレームデータの通信状態をシミュレーションすると共に、前記仮想ネットワークに模擬的に故障を生じさせて、前記複数の制御装置が検出する故障コードをモニタするものであり、前記通信状態のシミュレーションを前記フレームデータの通信タイミングごとに行うことを特徴とする。
【発明の効果】
【００１５】
本発明によれば、車載ＬＡＮで発生している可能性の高い故障パターンを、高い精度で推定することができる。
【発明を実施するための最良の形態】
【００１６】
添付図面を参照しながら本発明の好適な実施例を説明する。
【実施例】
【００１７】
本実施例は、２つの工程を有している。第１の工程は、車両に搭載された複数のＥＣＵ（Electronic Control Unit：制御装置）が故障発生時にメモリに記録するダイアグコード（故障コード）を、故障パターンごとに記録した故障引き当て表（管理テーブル）を作成する工程である。第２の工程は、故障診断ツール等を使用して故障車両からダイアグコードを取得し、取得したダイアグコードと、故障引き当て表とに基づいて、故障車両で発生している確率の高い故障パターンを推定する工程である。推定した故障パターンは、発生確率の高い順に表示部に表示させる。
【００１８】
まず、第１の工程について詳細に説明する。なお、第１の工程及び第２の工程は、コンピュータ装置１によるソフトウェア処理で実施される。
図１は、ソフトウェア制御によって実現されるコンピュータ装置１の処理機能を、機能ごとにブロックで表している。仮想ＬＡＮシミュレーション部２０、結果解析部３０がソフトウェア制御によって実現される。
【００１９】
まず、仮想ＬＡＮシミュレーション部２０に、車両に搭載された複数のＥＣＵと、複数のＥＣＵ間を接続する車載ＬＡＮとを模擬した仮想ネットワークを構築させる。
車載ＬＡＮを構築するために必要なデータには、ＬＡＮの配策、車載ＬＡＮで通信される通信データの形式、通信ダイアグ仕様等が挙げられる。これらのデータは、インターフェース部１０の操作部１１から入力される。
ＬＡＮの配策とは、車両に搭載された複数のＥＣＵがネットワーク上にどのように配置されているかを示す情報である。また、ＥＣＵは故障（断線）が発生したときにどのような故障が発生したかを診断する自己診断機能を有しているが、通信ダイアグ仕様は、ＥＣＵの具備している自己診断機能の仕様を定めたものである。
仮想ＬＡＮ２１が構築されるためには、仮想バスの設定２２と、仮想ＥＣＵの設定２３が必要である。仮想バスの設定２２には、シミュレーションで使用する通信プロトコル（本実施例ではＣＡＮ（Controller Area Network）プロトコルを用いている）の設定が含まれ、仮想ＥＣＵの設定２３には、故障時の自己診断機能である通信ダイアグと、各ＥＣＵのＣＡＮフレームデータの送受信機能の設定とが含まれる。
【００２０】
以上のデータが入力され、仮想ＬＡＮが仮想ＬＡＮシミュレーション部２０に構築されると、実際のシミュレーションに必要なシミュレーションパラメータを入力して、シミュレーションの条件を設定する。
シミュレーションパラメータには、仮想ＬＡＮ通信時間Ｔ、シミュレーション回数Ｍ、エラー発生確率Ｘ、時間分解能Ｓ等がある。
仮想ＬＡＮ通信時間Ｔは、仮想ＬＡＮ上で故障を発生させてシミュレーションを行う時間の設定である。シミュレーション回数は、シミュレーションを行う回数であり、仮想ＬＡＮ上で発生する故障パターンの個数をＮ（Ｎは任意の自然数）、シミュレーション回数をＭ（Ｍは任意の自然数）とすると、仮想ＬＡＮシミュレーション部２０は、Ｍ×Ｎ回のシミュレーションを繰り返す。
エラー発生確率Ｘは、仮想ＬＡＮ上に仮想的にエラー（断線の影響によって発生するノイズ）を発生させる確率である。図１に示す故障モデルとして設定され、仮想ＬＡＮに任意の確率でエラーを発生させる。また、時間分解能Ｓは、シミュレーションを行って、その結果をモニタする時間単位であり、本実施例では、ＥＣＵがフレームデータを連続して送信することが可能な最小時間間隔に合わせてシミュレーションを行い、ＥＣＵが記録するダイアグコードをモニタしている。
なお、ダイアグコードの検出はＥＣＵごとに行われるが、ダイアグコードの記録はＥＣＵごとに行ってもよいし、ダイアグレコーダやマスタＥＣＵにまとめて記録するようにしてもよい。
【００２１】
仮想ＬＡＮシミュレーション部２０でシミュレーションする故障モードは、ＣＡＮ通信線片側断線モードと、ＣＡＮ通信線完全断線モードとの２つである。
本実施例では、ＥＣＵ間の通信プロトコルにＣＡＮを用いており、仮想ＬＡＮは２本の通信線で接続されている。２本の通信線のうちの１本が断線するＣＡＮ通信線片側断線モードでは、片側断線をした通信線を支線とするＥＣＵは、ＣＡＮフレームデータの送受信が不可になる。また、仮想ＬＡＮシミュレーション部２０は、片側断線をした通信線上にて伝送されるＣＡＮフレームを、無作為にエラーフレームに変化させる。
また、ＣＡＮ通信線完全断線モードでは、完全断線をした通信線を支線とするＥＣＵは、ＣＡＮフレームデータの送受信が不可になる。また、完全断線した通信線に接続されている全ＥＣＵは送受信が不可になる。
【００２２】
本実施例は、シミュレーションを簡素化して、シミュレーション時間の短縮を図るための工夫を施した。すなわち、ＣＡＮプロトコルを、仮想ＬＡＮシミュレーション部２０には完全には再現せず、ダイアグ評価に必要な機能だけを再現するようにした。
＜ＣＡＮフレームの簡素化＞
図２（Ａ）に、ＣＡＮプロトコルで実際に送受信されるＣＡＮフレームの構成を示し、図２（Ｂ）に、仮想ＬＡＮ上でのシミュレーションに用いられるＣＡＮフレームの構成を示す。
図２（Ａ）に示すＣＡＮプロトコルで実際に送受信されるＣＡＮフレームは、ＩＤ（Identification）と、ＤＬＣ（Data Length Code）と、実データとを含む。しかし、故障診断では、ＣＡＮフレームデータの送受信の有無が判断条件に使用されるので、ＣＡＮフレーム長、実データは無視することができる。
そこで、ＣＡＮフレームのフレーム長を固定して、ＩＤのみが記録された図２（Ｂ）に示すＣＡＮフレームを使用する。
＜シミュレーションの時間概念＞
ＣＡＮフレームの簡素化により、ビット単位でデータを表現する必要がないので、シミュレーション上の時間分解能を低く設定する。
ビット毎にＣＡＮフレームを再現した場合には、時間分解能は、通信速度５００Ｋｂｐｓで２μｓが必要であったが、通信速度５００Ｋｂｐｓのときに最短フレーム長は約１００μｓであるので、時間分解能はその半分の５０μｓに設定すれば動作上問題とはならない。
すなわち、ＥＣＵがデータを送信する間隔に合わせて、ＥＣＵが記録するダイアグコードをモニタすれば、精度の良いモニタ結果を得ることができる。
＜エラーステータスの簡素化＞
ダイアグ評価では、ＣＡＮフレームの送受信の有無を判断条件に故障診断を行うため、送信許可、送信停止に関わるエラーアクティブ、バスオフだけをエラーステータスとして定義している。エラーアクティブ状態とは、正常に通信を行うことができる状態であり、バスオフ状態とは、ＥＣＵを通信ＬＡＮから完全に切り離した状態である。
実際に車両で行われるＣＡＮプロトコルには、この他にエラーパッシブという状態がある。エラーバッシブ状態とはＬＡＮに異常が発生しているが、通信を停止させる状態ではない。
【００２３】
図３に、故障引き当て表の一例を示す。
故障引き当て表には、故障パターンごとに、故障パターンが発生したときにＥＣＵに記憶されるダイアグコードの発生確率が記録されている。
図３に示す故障引き当て表には、各ＥＣＵが出力するダイアグコードが記録されている。また、故障パターンと、故障の発生時に各ＥＣＵに記憶されるダイアグコードの発生確率が記録されている。
例えば、図３に示す例では、故障パターン１の発生時に、ＥＣＵ＿Ａは、ダイアグコード［Ｕ０１００］を８０％の確率で記憶し、ダイアグコード［Ｕ０１０１］を９０％の確率で記憶することを示している。同様に、ＥＣＵ＿Ｂは、故障パターン１の発生時にダイアグコード［Ｕ０２００］を８０％の確率で記憶し、ダイアグコード［Ｕ０２０１］を１００％の確率で記憶することを示している。また、ＥＣＵ＿Ｃは故障パターン２の発生時にダイアグコード［Ｕ０３００］を１００％の確率で記憶し、ダイアグコード［Ｕ０３０１］を０％の確率で記憶し、ダイアグコード［Ｕ０３０２］を１００％の確率で記憶することを示している。
【００２４】
図４には、故障引き当て表の作成の概略を示す。故障パターンごとに擬似的にＬＡＮに故障を発生させ、そのとき各ＥＣＵで記録されるダイアグコードと、そのダイアグコードの発生確率とを記録していく。
例えば、１つの故障パターンについて１００回のシミュレーションを行ったとする。図３に示す故障引き当て表のダイアグコード［Ｕ０１００］の故障パターン１での発生確率は８０％であるので、ＥＣＵ＿Ａは、１００回のシミュレーションで８０回［Ｕ０１００］のダイアグコードを記録したことを示している。
図２に示すログ解析機能部３１は、仮想ＬＡＮシミュレーション部２０からシミュレーションの結果（ログ）を取得して解析し、図３に示す故障引き当て表を作成する。作成した故障引き当て表は、インターフェース部１０の表示部１２に表示させる。
【００２５】
図５に示すフローチャートを参照しながら故障引き当て表の作成手順を説明する。
まず、仮想ＬＡＮシミュレーション部２０に、シミュレーションを行う仮想ＬＡＮの構成を認識させるためのデータである仮想ＬＡＮ形成情報を入力する（ステップＳ１）。仮想ＬＡＮ形成情報には、ＬＡＮの配策、通信データ、通信ダイアグ仕様などが含まれる。これらの情報の入力により、仮想ＬＡＮシミュレーション部２０に仮想ＬＡＮが形成される（ステップＳ２）。
【００２６】
次に、仮想ＬＡＮシミュレーション部２０は、形成した仮想ＬＡＮで、故障が発生する可能性のある箇所を抽出し、抽出した故障の発生箇所から故障パターン数Ｎを算出する（ステップＳ３）。故障パターン数Ｎは、仮想ＬＡＮの１箇所で故障が発生する場合と、複数箇所が同時に故障する場合とを足し合わせた数Ｎとなる。
【００２７】
次に、仮想ＬＡＮシミュレーション部２０は、シミュレーションパラメータを入力する（ステップＳ４）。シミュレーションパラメータには、仮想ＬＡＮ通信時間Ｔ、シミュレーション回数Ｍ、エラー発生確率Ｘ、時間分解能Ｓなどが挙げられる。これらのパラメータは、ユーザによって設定されるパラメータである。
【００２８】
次に、仮想ＬＡＮシミュレーション部２０は、仮想ＬＡＮ上で擬似的に故障を発生させて、シミュレーションを行う。故障パターン数がＮ個で、シミュレーション回数をＭ回とすると、全ての故障パターンについてＮ×Ｍ回シミュレーションを行う（ステップＳ５）。
仮想ＬＡＮシミュレーション部２０は、Ｎ×Ｍ回のシミュレーションを実行すると（ステップＳ６／ＹＥＳ）、シミュレーションのログを解析して、故障引き当て表を作成する（ステップＳ７）。
【００２９】
次に、図６に示すフローチャートを参照しながら、仮想ＬＡＮシミュレーション部２０によるシミュレーションの手順（上述したステップＳ５の詳細）を説明する。
仮想ＬＡＮシミュレーション部２０によるシミュレーションが開始されると、まず、ユーザにより設定された仮想ＬＡＮ通信時間Ｔを計測するタイマｔを０にリセットし、通信時間の計測を開始する（ステップＳ１１）。
次に、仮想ＬＡＮシミュレーション部２０は、ユーザにより設定されたエラー発生確率Ｘで仮想ＬＡＮにエラーが発生するように変数の設定を行う（ステップＳ１２）。
【００３０】
次に、仮想ＬＡＮシミュレーション部２０は、仮想ＬＡＮの状態を判定する。仮想ＬＡＮの状態がデータ送信可能なアイドル状態ではなかった場合には（ステップＳ１３／ＮＯ）、ＣＡＮフレームを送信するＥＣＵは、データの送信を停止し、ＣＡＮフレームを受信するＥＣＵは、データの受信を停止する（ステップＳ１４）。また、仮想ＬＡＮの状態がデータ送信可能なアイドル状態であった場合（ステップＳ１３／ＹＥＳ）、仮想ＬＡＮシミュレーション部２０は、送信要求のあるＥＣＵがあるか否かを判定する（ステップＳ１５）。
送信要求のあるＥＣＵがなかった場合（ステップＳ１５／ＮＯ）、仮想ＬＡＮシミュレーション部２０は、ステップＳ２３のエラーステータス判定処理に移行する。
また、送信要求のあるＥＣＵがあり（ステップＳ１５／ＹＥＳ）、さらに送信要求のあるＥＣＵが複数ある場合には、アービトレーション（調停）によって送信を行うＥＣＵを決定する（ステップＳ１６）。送信要求のあるＥＣＵが１つの場合には、そのＥＣＵがそのまま送信を行うＥＣＵに設定される。
【００３１】
ＣＡＮフレームの送信を行う送信ＥＣＵに設定されたＥＣＵ（以下、簡単に送信ＥＣＵという）は、ＣＡＮフレームを仮想ＬＡＮ上の他のＥＣＵ（以下、受信ＥＣＵという）に送信する（ステップＳ１７）。受信ＥＣＵは、ＣＡＮフレームの受信処理を行う（ステップＳ１８）。受信ＥＣＵは、ＣＡＮフレームの受信を完了したか否かを判定し（ステップＳ１９）、ＣＡＮフレームの受信を完了すると（ステップＳ１９／ＹＥＳ）、受信完了を示すＡＣＫ（ACKnowledgement）を送信ＥＣＵに返す。
ＡＣＫを送信した受信ＥＣＵは、受信インターバルカウンタをゼロクリアする（ステップＳ２１）。また、送信ＥＣＵは、全ての受信ＥＣＵからＡＣＫを受信すると、ＣＡＮフレームデータの送信を停止し、送信インターバルカウンタをゼロクリアする（ステップＳ２２）。
【００３２】
次に、仮想ＬＡＮシミュレーション部２０は、エラーステータスの判定を行う（ステップＳ２３）。エラーステータスの判定処理については別途フローチャートを用いて説明する。さらに、仮想ＬＡＮシミュレーション部２０は、通信ダイアグの判定処理を行う（ステップＳ２４）。この通信ダイアグの判定処理についても別途フローチャートを用いて説明する。
以上の処理を終了すると、仮想ＬＡＮシミュレーション部２０は、仮想ＬＡＮ通信時間Ｔを計測するタイマｔのカウント値を参照する（ステップＳ２５）。タイマｔのカウント値がユーザによって設定された時間Ｔ（ｔ＝Ｔ）となっていない場合には（ステップＳ２５／ＮＯ）、ステップＳ１１に戻ってバス状態の判定から繰り返し行う。
また、タイマｔのカウント値がユーザによって設定された時間Ｔ（ｔ＝Ｔ）となっている場合には（ステップＳ２５／ＹＥＳ）、この仮想ＬＡＮでのシミュレーションを終了する。
【００３３】
次に、図７に示すフローチャートを参照しながら、仮想ＬＡＮに発生したエラーの状態を判定する処理（エラーステータス判定処理）の手順について説明する。
仮想ＬＡＮシミュレーション部２０は、エラーが発生したときに、各ＥＣＵがどのような状態になっているかを判定する。
ＥＣＵの状態がエラーアクティブである場合には（ステップＳ３１／ＹＥＳ）、送信エラーカウンタを参照する（ステップＳ３２）。エラーアクティブの状態とは、ＣＡＮフレームの送受信が正常に行われている状態を示している。また送信エラーカウンタとは、送信エラーが発生するごとにカウントアップされるカウンタである。送信エラーカウンタのカウント値が２５６以上であった場合には（ステップＳ３２／ＹＥＳ）、ＥＣＵのエラーステータスをバスオフに設定する（ステップＳ３３）。また、送信エラーカウンタのカウント値が２５６よりも小さい場合には（ステップＳ３２／ＮＯ）、このまま処理を終了する。
【００３４】
また、仮想ＬＡＮシミュレーション部２０は、ＥＣＵのエラーステータスがエラーアクティブではなく、バスオフ状態である場合には（ステップＳ３１／ＮＯ）、バスオフ状態からの復帰が可能であるか否かを判定する（ステップＳ３４）。バスオフからの復帰が可能である場合には（ステップＳ３４／ＹＥＳ）、ＥＣＵのエラーステータスをエラーアクティグに変更する（ステップＳ３５）。また、バスオフからの復帰が可能ではない場合には（ステップＳ３４／ＮＯ）、この処理を終了する。
【００３５】
次に、図８に示すフローチャートを参照しながらＥＣＵに記録するダイアグコードの判定処理について説明する。
まず、仮想ＬＡＮシミュレーション部２０は、受信インターバルカウンタがしきい値を超えているか否かを判定する（ステップＳ４１）。受信インターバルカウンタは、ＣＡＮフレームの受信途絶を判定するためのカウンタである。ＣＡＮフレームの受信があれば、この受信インターバルカウンタはゼロクリアされる。また、ＣＡＮフレームの受信がなければ受信インターバルカウンタがカウントアップされ、カウント値がしきい値を超えると、仮想ＬＡＮシミュレーション部２０は、該当するダイアグコードを記録する。
受信インターバルカウンタのカウント値がしきい値を超えている場合には（ステップＳ４１／ＹＥＳ）、仮想ＬＡＮシミュレーション部２０は、受信が途絶したことを示すダイアグコード（受信途絶ダイアグコード）を記録する（ステップＳ４２）。
【００３６】
次に、仮想ＬＡＮシミュレーション部２０は、送信インターバルカウンタがしきい値を超えているか否かを判定する（ステップＳ４３）。送信インターバルカウンタは、ＣＡＮフレームの送信途絶を判定するためのカウンタである。
ＣＡＮフレームの送信動作を開始すると、送信インターバルカウンタもカウントアップされる。ＣＡＮフレームデータの送信が完了すると、送信インターバルカウンタはゼロクリアされる。受信側のＥＣＵにＡＣＫが返され、ＣＡＮフレームデータの送信が完了しなければ、送信インターバルカウンタのカウントアップは続く。
送信インターバルカウンタのカウント値がしきい値を超えている場合には（ステップＳ４３／ＹＥＳ）、仮想ＬＡＮシミュレーション部２０は、送信が途絶したことを示すダイアグコード（送信途絶ダイアグコード）を記録する（ステップＳ４４）。
【００３７】
次に、仮想ＬＡＮシミュレーション部２０は、バスオフが発生したか否かを判定する（ステップＳ４５）。エラーの状態を示すエラーステータスフラグの状態を判定し、バスオフが発生していると判定すると（ステップＳ４５／ＹＥＳ）、バスオフの発生を示すダイアグコード（バスオフ判定ダイアグコード）を記録する（ステップＳ４６）。
【００３８】
以上、説明したように本実施例は、ダイアグ評価作業をコンピュータで行うことができる。このため、ダイアグ評価にかかる時間を短縮することができる。また、実車などの大掛かりな評価設備が不要となり、実車測定車が不要となる。
【００３９】
次に作成した引き当て表を用いて実際の車両で起こった故障箇所を推定する第２の工程について説明する。
第２の工程では、まず、故障が発生した車両から故障診断ツールを用いてダイアグコードを取得する。故障が発生し、販売店などに入庫された車両から故障診断ツールを用いてダイアグコードを取得する。
【００４０】
次に、故障診断ツールを用いて取得したダイアグコードをコンピュータ装置１に入力して、車両から取得したダイアグコードと、故障引き当て表とを用いて故障箇所の推定を行う。図９には、ソフトウェア制御によって実現されるコンピュータ装置１の処理機能を、機能ごとにブロックで表している。ソフトウェア制御によって、故障引き当てロジック部４０がコンピュータ装置１に構築される。
故障引き当てロジック部４０の故障箇所の推定にはパターンマッチング法が用いられる。パターンマッチング法では、車両から取得したダイアグコードに基づいて故障パターンごとに評価点を付加し、故障パターンごとの順位付けを行う。評価点の付加は、図１０に示す採点表を用いて行われる。
図１０に示す採点表は、６つの分類に分けられている。
分類Ａは、故障箇所を特定する実際の車両（以下、実車という）からダイアグコードを取得することができ、さらに故障引き当て表のダイアグコード発生確率が１００％である場合であり、この場合、採点値として［＋１．０］を付与する。
分類Ｂは、実車からダイアグコードを取得することができ、さらに故障引き当て表のダイアグコード発生確率が００．１％〜９９．９%である場合であり、この場合、採点値として［＋０．５］を付与する。
分類Ｃは、実車からダイアグコードを取得することができず、さらに故障引き当て表のダイアグコード発生確率が０％の場合であり、この場合、採点値として［０．０］を付与する。
分類Ｄは、実車からダイアグコードを取得することができず、さらに故障引き当て表のダイアグコード発生確率が００．１％〜９９．９%である場合であり、この場合、採点値として［０．０］を付与する。
分類Ｅは、実車からダイアグコードを取得することができず、さらに故障引き当て表のダイアグコード発生確率が１００％である場合であり、この場合、採点値として［−０．５］を付与する。
分類Ｆは、実車からダイアグコードを取得することができ、さらに故障引き当て表のダイアグコード発生確率が０％である場合であり、この場合、採点値として［−１．０］を付与する。
【００４１】
次に、車両から取得したダイアグコードと、故障引き当て表とを用いて故障箇所の推定を行う方法について、図１１を参照しながら具体的に説明する。
故障引き当てロジック部４０は、故障診断ツールから取得したダイアグコードと、故障引き当て表のデータとを入力して、パターンマッチング法により故障箇所を推定する。
故障パターンごとに、故障診断ツールから取得したダイアグコードが記録された故障引き当て表の箇所を検出し、採点表を参照して点数を付与する。
故障引き当てロジック部４０は、まず、図１１に示すように故障引き当て表を検索して、故障車両から取得したダイアグコード（以下、処理対象ダイアグコードと呼ぶ）を検出する。故障引き当て表から処理対象ダイアグコードを検出すると、処理対象ダイアグコードの発生確率を故障パターンごとに取得する。次に、採点表を参照して、各故障パターンで処理対象ダイアグコードが記録されたときの採点値を得る。
例えば、故障パターン１が発生した場合にＥＣＵ＿Ａがダイアグコード［Ｕ０１００］を記憶する確率は８０％であるので、採点表から［０．５］点が付与される。
また、故障パターン２が発生した場合にＥＣＵ＿Ａがダイアグコード［Ｕ０１００］を記憶する確率は１００％であるので、採点表から［１．０］点が付与される。
なお、車両から故障診断ツールを用いて取得することができなかったダイアグコードで、故障引き当て表での発生確率が１００％のダイアグコード（すなわち、分類Ｅ）には、［−０．５］点が付与される。また、車両から故障診断ツールを用いて取得したダイアグコードが、故障引き当て表での発生確率が０％であった場合（すなわち、分類Ｆ）には、［−１．０］点が付与される。
【００４２】
ダイアグコードごとに点数を付与すると、故障引き当てロジック部４０は故障パターンごとにダイアグコードに付与された点数を加算する。加算した合計点を故障パターンの評価点とする。
故障箇所推定ソフトウェアは、故障パターンごとの評価点を算出すると、点数の高い順に故障パターンを並べ、推定結果として表示部１２に表示させる。
【００４３】
図１２には、表示部１２に表示される表示の一例を示す。図１２に示す表示例では、仮想ＬＡＮの構成と、故障が発生している可能性があると判定された候補（故障箇所候補）の上位３つとが表示される。
【００４４】
図１３に示すフローチャートを参照しながら故障引き当てロジック部４０の処理手順を説明する。
故障引き当てロジック部４０は、入力データとして、故障診断ツールを用いて故障車両から取得したダイアグコードと、故障引き当て表とを入力する（ステップＳ５１）。
次に、故障引き当てロジック部４０は、故障車両から取得した処理対象ダイアグコードと、故障引き当て表とから故障パターンを推定する。まず、図１１に示すように故障引き当て表を検索して、故障車両から取得した処理対象ダイアグコードを検出する（ステップＳ５２）。故障引き当て表から処理対象ダイアグコードを検出すると、処理対象ダイアグコードの発生確率を故障パターンごとに取得する（ステップＳ５３）。次に、採点表を参照して、各故障パターンで処理対象ダイアグコードが記録されたときの採点値を得る（ステップＳ５４）。
なお、車両から故障診断ツールを用いて取得することができなかったダイアグコードで、故障引き当て表での発生確率が１００％のダイアグコード（すなわち、分類Ｅ）には、［−０．５］点が付与される。また、車両から故障診断ツールを用いて取得したダイアグコードが、故障引き当て表での発生確率が０％であった場合（すなわち、分類Ｆ）には、［−１．０］点が付与される。
以上の処理を故障車両から取得したすべてのダイアグコードについて繰り返し行う（ステップＳ５５）。故障車両から取得した全てのダイアグコードに対して処理が終了すると（ステップＳ５５／ＹＥＳ）、故障引き当てロジック部４０は、故障パターンごとにダイアグコードに付与された点数を加算する（ステップＳ５６）。加算した合計点を故障パターンの評価点とする。そして、故障引き当てロジック部４０は、評価点の高い上位３つの故障パターンを検出する（ステップＳ５７）。検出した故障パターンは、表示部１２に表示させる。
【００４５】
以上説明したように本実施例は、故障箇所の推定をコンピュータ装置のみを用いて行うことができる。すべてコンピュータによる処理のため、故障箇所の推定を数時間で行うことができる。
また、コンピュータ装置により故障の発生した部位を絞り込むことができるので、故障箇所の特定のための時間を短縮することができる。
さらに故障部位を精度よく絞り込むことができるので、正常なＥＣＵを交換してしまう等の問題の発生を低減することができる。
【００４６】
図１４を参照しながらコンピュータ装置１のハードウェア構成を説明する。
コンピュータ装置１は、ＣＰＵ５１、ＲＯＭ５２、ＲＡＭ５３、ＮＶＲＡＭ（Non Volatile RAM）５４、入出力部５５等を有している。ＣＰＵ５１は、ＲＯＭ５２に格納したプログラムを読み込んで、このプログラムに従った演算を行う。すなわち、ＲＯＭ５２に格納されたシミュレーションプログラムをＣＰＵ５１が読み込むことで、図１に示す仮想ＬＡＮシミュレーション部２０や結果解析部３０、図９に示す故障引き当てロジック部４０が構成される。また、ＲＡＭ３３には、演算結果のデータが書き込まれ、ＮＶＲＡＭ３４は、ＲＡＭ３３に書き込まれていたデータで、電源オフ時に保存の必要なデータが書き込まれる。
【００４７】
上述した実施例は本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。
【図面の簡単な説明】
【００４８】
【図１】ソフトウェア処理によってコンピュータ装置に実現される機能ブロックを示す図であり、特に、故障引き当て表作成時の機能ブロックを示す図である。
【図２】（Ａ）はＣＡＮプロトコルで実際に送受信されるＣＡＮフレームの構成を示し、（Ｂ）は仮想ＬＡＮ上でのシミュレーションに用いられるＣＡＮフレームの構成を示す図である。
【図３】故障引き当て表の一例を示す図である。
【図４】故障引き当て表の作成概略を示す図である。
【図５】故障引き当て表作成のための手順を示すフローチャートである。
【図６】仮想ＬＡＮでのシミュレーションの手順を示すフローチャートである。
【図７】エラーステータス判定処理の手順を示すフローチャートである。
【図８】ダイアグコードの判定手順を示すフローチャートである。
【図９】ソフトウェア処理によってコンピュータ装置に実現される機能ブロックを示す図であり、特に、故障パターンの推定時の機能ブロックを示す図である。
【図１０】採点表の一例を示す図である。
【図１１】故障パターンの推定方法を説明するための図である。
【図１２】推定した故障パターンの表示例を示す図である。
【図１３】故障引き当てロジック部の処理手順を示すフローチャートである。
【図１４】コンピュータ装置のハードウェア構成を示す図である。
【符号の説明】
【００４９】
１  コンピュータ装置
１０  インターフェース部
１１  操作部
１２  表示部
２０  仮想ＬＡＮシミュレーション部
３０  結果解析部
４０  故障引き当てロジック部
５１  ＣＰＵ
５２  ＲＯＭ
５３  ＲＡＭ
５４  ＮＶＲＡＭ
５５  入出力部
【図１】
0004695638.tif 000002
【図２】
0004695638.tif 000003
【図３】
0004695638.tif 000004
【図４】
0004695638.tif 000005
【図５】
0004695638.tif 000006
【図６】
0004695638.tif 000007
【図７】
0004695638.tif 000008
【図８】
0004695638.tif 000009
【図９】
0004695638.tif 000010
【図１０】
0004695638.tif 000011
【図１１】
0004695638.tif 000012
【図１２】
0004695638.tif 000013
【図１３】
0004695638.tif 000014
【図１４】
0004695638.tif 000015