(57)【特許請求の範囲】
【請求項１】
計算機システムが実行するデータ解析支援方法であって、
前記計算機システムは、演算装置と、前記演算装置に接続される記憶装置と、前記演算装置に接続されるインタフェースと、前記インタフェースに接続される入力装置と、前記インタフェースに接続される表示装置と、を備え、
前記記憶装置は、前記演算装置によって実行され、各々が互いに通信をして協調したシミュレーションを行う第１シミュレータプログラム及び第２シミュレータプログラムを保持し、
前記データ解析支援方法は、
第１時間を設定し、前記第１時間の始点及び終点を、それぞれ、前記シミュレーションの第１実行開始時刻及び第１実行終了時刻として設定し、前記第１時間の始点及び終点を、それぞれ、前記第１シミュレータプログラムに基づくトレースデータの第１出力開始時刻及び第１出力終了時刻として設定し、前記第１実行開始時刻から前記第１実行終了時刻までの前記第１シミュレータプログラム及び前記第２シミュレータプログラムによるシミュレーションを実行し、前記第１出力開始時刻から前記第１出力終了時刻までの、前記第１時間内の時刻と当該時刻に対応する前記第１シミュレータプログラム内の少なくとも一つの変数の値との複数の組からなるトレースデータを前記表示装置に表示する第１手順と、
前記入力装置から前記第１時間内の時刻の指定を受けると、前記第１時間に含まれ、前記第１時間より短く、かつ、前記指定された時刻を含む第２時間を設定し、前記第２時間の始点及び終点を、それぞれ、前記シミュレーションの第２実行開始時刻及び第２実行終了時刻として設定し、前記第２時間の始点及び終点を、それぞれ、前記第２シミュレータプログラムに基づく前記トレースデータの第２出力開始時刻及び第２出力終了時刻として設定し、前記第２実行開始時刻から前記第２実行終了時刻までの前記第１シミュレータプログラム及び前記第２シミュレータプログラムによるシミュレーションを実行し、前記第２出力開始時刻から前記第２出力終了時刻までの、前記第２時間内の時刻と当該時刻に対応する前記第２シミュレータプログラム内の少なくとも一つの変数の値との複数の組からなるトレースデータを前記表示装置に表示する第２手順と、を含むことを特徴とするデータ解析支援方法。
【請求項２】
前記第２シミュレータプログラムに基づく前記トレースデータに含まれる前記時刻の間隔は、前記第１シミュレータプログラムに基づく前記トレースデータに含まれる前記時刻の間隔より狭く、
前記第１手順は、前記第１シミュレータプログラムに基づく前記トレースデータを、前記時刻に対する前記変数の値がプロットされた第１グラフとして表示する手順を含み、
前記第２手順は、前記第１グラフが表示された画面上に、前記第１グラフより時間分解能が高くなるように、前記第２シミュレータプログラムに基づく前記トレースデータを、前記時刻に対する前記変数の値がプロットされた第２グラフとして表示する手順を含むことを特徴とする請求項１に記載のデータ解析支援方法。
【請求項３】
前記第２手順は、前記第１シミュレータプログラムに基づくトレースデータに含まれる変数の値に対応する時刻と、前記第２シミュレータプログラムに基づくトレースデータに含まれる変数の値に対応する時刻とが一致するか否かを判定し、一致する場合に、前記時刻と、前記時刻に対応する前記第１シミュレータプログラムに基づくトレースデータに含まれる変数の値と、前記時刻に対応する前記第２シミュレータプログラムに基づくトレースデータに含まれる変数の値と、を対応付けて出力する手順を含むことを特徴とする請求項１に記載のデータ解析支援方法。
【請求項４】
前記第１シミュレータプログラム及び前記第２シミュレータプログラムの一方は、機械装置の動作をシミュレートするプログラムであり、もう一方は、前記機械装置を制御する電子機器の動作をシミュレートするプログラムであることを特徴とする請求項１に記載のデータ解析支援方法。
【請求項５】
計算機システムにおいて実行されるデータ解析支援プログラムであって、
前記計算機システムは、演算装置と、前記演算装置に接続される記憶装置と、前記演算装置に接続されるインタフェースと、前記インタフェースに接続される入力装置と、前記インタフェースに接続される表示装置と、を備え、
前記記憶装置は、前記データ解析支援プログラムと、前記演算装置によって実行され、各々が互いに通信をして協調したシミュレーションを行う第１シミュレータプログラム及び第２シミュレータプログラムを保持し、
前記データ解析支援プログラムは、
第１時間を設定し、前記第１時間の始点及び終点を、それぞれ、前記シミュレーションの第１実行開始時刻及び第１実行終了時刻として設定し、前記第１時間の始点及び終点を、それぞれ、前記第１シミュレータプログラムに基づくトレースデータの第１出力開始時刻及び第１出力終了時刻として設定し、前記第１実行開始時刻から前記第１実行終了時刻までの前記第１シミュレータプログラム及び前記第２シミュレータプログラムによるシミュレーションを実行させ、前記第１出力開始時刻から前記第１出力終了時刻までの、前記第１時間内の時刻と当該時刻に対応する前記第１シミュレータプログラム内の少なくとも一つの変数の値との複数の組からなるトレースデータを前記表示装置に表示する第１手順と、
前記入力装置から前記第１時間内の時刻の指定を受けると、前記第１時間に含まれ、前記第１時間より短く、かつ、前記指定された時刻を含む第２時間を設定し、前記第２時間の始点及び終点を、それぞれ、前記シミュレーションの第２実行開始時刻及び第２実行終了時刻として設定し、前記第２時間の始点及び終点を、それぞれ、前記第２シミュレータプログラムに基づく前記トレースデータの第２出力開始時刻及び第２出力終了時刻として設定し、前記第２実行開始時刻から前記第２実行終了時刻までの前記第１シミュレータプログラム及び前記第２シミュレータプログラムによるシミュレーションを実行させ、前記第２出力開始時刻から前記第２出力終了時刻までの、前記第２時間内の時刻と当該時刻に対応する前記第２シミュレータプログラム内の少なくとも一つの変数の値との複数の組からなるトレースデータを前記表示装置に表示する第２手順と、を前記演算装置に実行させることを特徴とするデータ解析支援プログラム。
【請求項６】
前記第２シミュレータプログラムに基づく前記トレースデータに含まれる前記時刻の間隔は、前記第１シミュレータプログラムに基づく前記トレースデータに含まれる前記時刻の間隔より狭く、
前記第１手順は、前記第１シミュレータプログラムに基づく前記トレースデータを、前記時刻に対する前記変数の値がプロットされた第１グラフとして表示させる手順を含み、
前記第２手順は、前記第１グラフが表示された画面上に、前記第１グラフより時間分解能が高くなるように、前記第２シミュレータプログラムに基づく前記トレースデータを、前記時刻に対する前記変数の値がプロットされた第２グラフとして表示させる手順を含むことを特徴とする請求項５に記載のデータ解析支援プログラム。
【請求項７】
演算装置と、前記演算装置に接続される記憶装置と、前記演算装置に接続されるインタフェースと、前記インタフェースに接続される入力装置と、前記インタフェースに接続される表示装置と、を備えるデータ解析支援システムであって、
前記記憶装置は、前記演算装置によって実行され、各々が互いに通信をして協調したシミュレーションを行う第１シミュレータプログラム及び第２シミュレータプログラムを保持し、
前記演算装置は、
第１時間を設定し、前記第１時間の始点及び終点を、それぞれ、前記シミュレーションの第１実行開始時刻及び第１実行終了時刻として設定し、前記第１時間の始点及び終点を、それぞれ、前記第１シミュレータプログラムに基づくトレースデータの第１出力開始時刻及び第１出力終了時刻として設定し、前記第１実行開始時刻から前記第１実行終了時刻までの前記第１シミュレータプログラム及び前記第２シミュレータプログラムによるシミュレーションを実行し、前記第１出力開始時刻から前記第１出力終了時刻までの、前記第１時間内の時刻と当該時刻に対応する前記第１シミュレータプログラム内の少なくとも一つの変数の値との複数の組からなるトレースデータを前記表示装置に表示する第１手順と、
前記入力装置から前記第１時間内の時刻の指定を受けると、前記第１時間に含まれ、前記第１時間より短く、かつ、前記指定された時刻を含む第２時間を設定し、前記第２時間の始点及び終点を、それぞれ、前記シミュレーションの第２実行開始時刻及び第２実行終了時刻として設定し、前記第２時間の始点及び終点を、それぞれ、前記第２シミュレータプログラムに基づく前記トレースデータの第２出力開始時刻及び第２出力終了時刻として設定し、前記第２実行開始時刻から前記第２実行終了時刻までの前記第１シミュレータプログラム及び前記第２シミュレータプログラムによるシミュレーションを実行し、前記第２出力開始時刻から前記第２出力終了時刻までの、前記第２時間内の時刻と当該時刻に対応する前記第２シミュレータプログラム内の少なくとも一つの変数の値との複数の組からなるトレースデータを前記表示装置に表示する第２手順と、を実行することを特徴とするデータ解析支援システム。
【請求項８】
前記第２シミュレータプログラムに基づく前記トレースデータに含まれる前記時刻の間隔は、前記第１シミュレータプログラムに基づく前記トレースデータに含まれる前記時刻の間隔より狭く、
前記第１手順は、前記第１シミュレータプログラムに基づく前記トレースデータを、前記時刻に対する前記変数の値がプロットされた第１グラフとして表示する手順を含み、
前記第２手順は、前記第１グラフが表示された画面上に、前記第１グラフより時間分解能が高くなるように、前記第２シミュレータプログラムに基づく前記トレースデータを、前記時刻に対する前記変数の値がプロットされた第２グラフとして表示する手順を含むことを特徴とする請求項７に記載のデータ解析支援システム。
【請求項９】
前記第２手順は、前記第１シミュレータプログラムに基づくトレースデータに含まれる変数の値に対応する時刻と、前記第２シミュレータプログラムに基づくトレースデータに含まれる変数の値に対応する時刻とが一致するか否かを判定し、一致する場合に、前記時刻と、前記時刻に対応する前記第１シミュレータプログラムに基づくトレースデータに含まれる変数の値と、前記時刻に対応する前記第２シミュレータプログラムに基づくトレースデータに含まれる変数の値と、を対応付けて出力する手順を含むことを特徴とする請求項７に記載のデータ解析支援システム。
【請求項１０】
前記第１シミュレータプログラム及び前記第２シミュレータプログラムの一方は、機械装置の動作をシミュレートするプログラムであり、もう一方は、前記機械装置を制御する電子機器の動作をシミュレートするプログラムであることを特徴とする請求項７に記載のデータ解析支援システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コントローラ部品と、コントローラ部品によって制御されるメカ部品と、によって構成された組込み制御システムのデバッグ解析に用いられるデータ解析支援技術に関する。
【背景技術】
【０００２】
組込みシステムとは、制御対象を構成するメカ（機械装置）と、メカから受け取った物理量を元に制御演算を行い、メカに制御値を出力するコントローラと、コントローラ上で動作するソフトウェアと、によって構成されるシステムである。例えば自動車の組込みシステムとは、制御対象である自動車エンジンと自動車エンジンを制御するマイコン等の電子機器とその上で動作するソフトウェアを指す。組込みシステムに含まれるソフトウェアの挙動は制御対象のメカとコントローラの構成に強く依存するため、メカ、コントローラ、ソフトウェアを併せた挙動の解析が必要である。
【０００３】
従来は、実機を用いた検証環境によってシステム動作時のソフトウェアの挙動検証を行ってきた。実機を用いた従来の検証環境の例を図１６に示す。図１６の例では、検証のために、コントローラ実機２１０と、メカ部品の動作をシミュレートするリアルタイムメカシミュレータ２２０と、が用いられる。この場合、各要素／部品の実機が必要となるため、個々の部品の動作確認後、部品の組み立て時の開発最終段階になってから検証を着手せざるを得なかった。したがって、開発の最終段階でソフトウェアの不具合及び性能不足が判明した後に設計への手戻りが生じることによって、開発期間の遅延が多発しており、開発効率の悪化が問題となってきた。
【０００４】
更に、ソフトウェアの検証解析において、車両速度及びエンジン回転数といったメカの挙動とＣＡＮ（Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）バス内の制御信号といったコントローラの挙動をそれぞれ独立して観測していた。図１６の例では、コントローラ実機２１０の挙動をコントローラ部品データ解析支援装置２３０が、リアルタイムメカシミュレータ２２０の挙動をメカ部品データ解析支援装置２４０が、それぞれ観測する。このため、メカの挙動で異常箇所が検出された場合に、その異常個所に対応したコントローラの挙動を見つけるのに手間がかかり、検証時に発見されたソフトウェア不具合の原因の解明が困難であった。
【０００５】
この問題を解決するため、設計時点でのメカ・コントローラ・ソフトウェアを協調させたシミュレーションによるデバッグ解析手法が用いられ始めている。公知の技術として、特許文献１がある。特許文献１には、「メカモデルとコントローラモデルがシミュレーションされ、必要であればトリガイベントに対応して、メカモデルとコントローラモデルの実行を一時停止し、トリガの時点で、メカモデルパラメータ、コントローラモデルパラメータ、またはコントローラモデルのプログラムコードを変更することなく、メカモデルパラメータおよび／またはコントローラモデルパラメータのステータスを表示する」技術が記載されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−２６５４１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記特許文献１の技術では、メカモデルの任意のイベントが発生した場合に、そのイベントが発生した時刻をコントローラモデルの挙動に対応付けて表示する。あるいはその逆に、コントローラモデルの任意のイベントが発生した場合に、そのイベントが発生した時刻をメカモデルの挙動に対応付けて表示することが可能である。
【０００８】
しかし、上記特許文献１の技術では、メカモデルの任意の指定した箇所に対して、その箇所に対応したコントローラモデルの状態しか表示できないため、例えば、その指定箇所の前後近傍のコントローラモデルの挙動を表示することができず、メカとコントローラの詳細な連携解析が困難であった。
【課題を解決するための手段】
【０００９】
本発明の代表的な一例を示せば次のとおりである。すなわち、計算機システムが実行するデータ解析支援方法であって、前記計算機システムは、演算装置と、前記演算装置に接続される記憶装置と、前記演算装置に接続されるインタフェースと、前記インタフェースに接続される入力装置と、前記インタフェースに接続される表示装置と、を備え、前記記憶装置は、前記演算装置によって実行され、各々が互いに通信をして協調したシミュレーションを行う第１シミュレータプログラム及び第２シミュレータプログラムを保持し、前記データ解析支援方法は、第１時間を設定し、前記第１時間の始点及び終点を、それぞれ、前記シミュレーションの第１実行開始時刻及び第１実行終了時刻として設定し、前記第１時間の始点及び終点を、それぞれ、前記第１シミュレータプログラムに基づくトレースデータの第１出力開始時刻及び第１出力終了時刻として設定し、前記第１実行開始時刻から前記第１実行終了時刻までの前記第１シミュレータプログラム及び前記第２シミュレータプログラムによるシミュレーションを実行し、前記第１出力開始時刻から前記第１出力終了時刻までの、前記第１時間内の時刻と当該時刻に対応する前記第１シミュレータプログラム内の少なくとも一つの変数の値との複数の組からなるトレースデータを前記表示装置に表示する第１手順と、前記入力装置から前記第１時間内の時刻の指定を受けると、前記第１時間に含まれ、前記第１時間より短く、かつ、前記指定された時刻を含む第２時間を設定し、前記第２時間の始点及び終点を、それぞれ、前記シミュレーションの第２実行開始時刻及び第２実行終了時刻として設定し、前記第２時間の始点及び終点を、それぞれ、前記第２シミュレータプログラムに基づく前記トレースデータの第２出力開始時刻及び第２出力終了時刻として設定し、前記第２実行開始時刻から前記第２実行終了時刻までの前記第１シミュレータプログラム及び前記第２シミュレータプログラムによるシミュレーションを実行し、前記第２出力開始時刻から前記第２出力終了時刻までの、前記第２時間内の時刻と当該時刻に対応する前記第２シミュレータプログラム内の少なくとも一つの変数の値との複数の組からなるトレースデータを前記表示装置に表示する第２手順と、を含むことを特徴とする。
【発明の効果】
【００１０】
メカモデルとコントローラモデルの両挙動を連携表示させることで、効率的にソフトウェアのデバッグが可能となり、工数の大きな下流工程での開発工数の軽減が可能となる。また実装不具合による手戻りを抑制することができる。さらに、シミュレーションの実行時間を削減することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の第１の実施形態におけるデバッグ解析システムのツール環境構成の例を説明する機能ブロック図である。
【図２】本発明の第１の実施形態におけるシミュレーション実行を説明するフローチャートである。
【図３】本発明の第１の実施形態のデバッグ解析システムにおけるユーザインタフェースの例を示す説明図である。
【図４】本発明の第１の実施形態において表示されるトレースデータの例を示す説明図である。
【図５】本発明の第１の実施形態において構成されるデバッグ解析システムの詳細を例示する説明図である。
【図６Ａ】本発明の第１の実施形態におけるコントローラシミュレータのデータ処理を示すフローチャートである。
【図６Ｂ】本発明の第１の実施形態におけるメカシミュレータのデータ処理を示すフローチャートである。
【図６Ｃ】本発明の第１の実施形態におけるデータ解析支援装置のデータ処理を示すフローチャートである。
【図７】本発明の第２の実施形態におけるデバッグ解析システムのツール環境構成の例を説明する機能ブロック図である。
【図８】本発明の第２の実施形態のデバッグ解析システムにおけるユーザインタフェースの例を示す説明図である。
【図９】本発明の第２の実施形態において表示されるトレースデータの例を示す説明図である。
【図１０】本発明の第２の実施形態において構成されるデバッグ解析システムの詳細を例示する説明図である。
【図１１Ａ】本発明の第２の実施形態におけるコントローラシミュレータのデータ処理を示すフローチャートである。
【図１１Ｂ】本発明の第２の実施形態におけるメカシミュレータのデータ処理を示すフローチャートである。
【図１２】本発明の第３の実施形態におけるデバッグ解析システムのツール環境構成の例を説明する機能ブロック図である。
【図１３】本発明の第３の実施形態において構成されるデバッグ解析システムの詳細を例示する説明図である。
【図１４】本発明の第３の実施形態におけるトレースデータ連携処理装置のデータ処理を示すフローチャートである。
【図１５】本発明の第１の実施形態のデバッグ解析システムを動作するために使用されるハードウェア構成の例を示すブロック図である。
【図１６】実機を用いた従来の検証環境の例を説明する機能ブロック図である。
【発明を実施するための形態】
【００１２】
以下、図面を用いて本発明の実施形態を説明する。
【００１３】
＜第１の実施形態＞
本発明の第１の実施形態では、ユーザーがメカ部品トレースデータに対して任意の点又は領域を指定することによって、指定された点の近傍又はその点を含む所定の領域におけるコントローラ部品トレースデータを拡大表示するデバッグ解析システムの例を説明する。
【００１４】
図１は、本発明の第１の実施形態におけるデバッグ解析システム１０のツール環境構成の例を説明する機能ブロック図である。
【００１５】
本実施例のデバッグ解析システム１０は、コントローラシミュレータ１１０、メカシミュレータ１２０及びデータ解析支援装置１３０を有する。
【００１６】
コントローラシミュレータ１１０は、メカ部品（例えば自動車のエンジンのような機械装置）を制御するコントローラ部品（例えばマイコン等を含む電子機器）の動作をシミュレートするために用いられる。コントローラシミュレータ１１０は、データ解析支援装置１３０からのデータ設定要求を受け取り、コントローラ部品の内部パラメータを変更する。また、コントローラシミュレータ１１０は、予め定義されたシミュレーション条件に従いコントローラ部品の挙動をシミュレートし、さらに予め定義されたデータ出力条件に従いコントローラ部品トレースデータ１５０（図５参照）を出力する。出力されるコントローラ部品トレースデータ１５０は、時刻と、その時刻におけるコントローラシミュレータ１１０内部の少なくとも一つの変数の値と、の複数の組を含む。
【００１７】
メカシミュレータ１２０は、データ解析支援装置１３０からのデータ設定要求を受け取り、メカ部品の内部パラメータを変更する。また、メカシミュレータ１２０は、予め定義されたシミュレーション条件に従ってメカ部品の挙動をシミュレートする。さらに、メカシミュレータ１２０は、トレースデータ連携処理部１２１を有する。トレースデータ連携処理部１２１は、コントローラ部品トレースデータ１５０を受け取り、コントローラ部品トレースデータ１５０とメカ部品のトレースデータとの連携処理を行い、予め定義されたデータ出力条件に従ってコントローラ部品及びメカ部品のトレースデータを出力する。
【００１８】
出力されるトレースデータは、時刻と、その時刻におけるコントローラシミュレータ１１０内部の少なくとも一つの変数の値と、その時刻におけるメカシミュレータ１２０内部の少なくとも一つの変数の値と、の複数の組を含む。ただし、後述するように、ここで出力されるコントローラシミュレータ１１０内部の変数の値は、その前にコントローラシミュレータ１１０からメカシミュレータ１２０に送信されたものである。このため、コントローラシミュレータ１１０がトレースデータを出力しない条件下では、メカシミュレータ１２０はコントローラシミュレータ１１０内部の変数の値を出力しない。
【００１９】
データ解析支援装置１３０は、データ設定処理部１３１及びデータ表示処理部１３２を有する。データ設定処理部１３１は、ユーザーからの各種データ設定要求を受け取り、その要求をコントローラシミュレータ１１０及びメカシミュレータ１２０へ通知する。データ表示処理部１３２は、メカシミュレータ１２０から出力されたコントローラ部品及びメカ部品のトレースデータを受け取り、データの表示処理を行い、ユーザーへ情報提示する。
【００２０】
図１５は、本発明の第１の実施形態のデバッグ解析システム１０を動作するために使用されるハードウェア構成の例を示すブロック図である。
【００２１】
デバッグ解析システム１０を動作する計算機１では、少なくとも１つ以上の中央演算処理装置２を備えており、また主記憶装置３及び外部インタフェース４も備えている。さらに外部インタフェース４は、入力装置４０、表示装置５０及び補助記憶装置６０といった周辺機器とバス接続されており、外部インタフェース４を介して計算機１と周辺装置との間でデータが入出力される。なお、入力装置４０の一例はマウスのようなポインティングデバイス及びキーボードのような文字入力デバイスであり、表示装置５０の一例は画像表示装置であり、補助記憶装置６０の一例はハードディスクドライブである。
【００２２】
デバッグ解析システム１０は、主記憶装置３又は補助記憶装置６０に常時格納されており、システムを動作させる際には外部インタフェース４を通じて中央演算処理装置２へと呼び出される。すなわち、コントローラシミュレータ１１０、メカシミュレータ１２０及びデータ解析支援装置１３０が実行する処理は、実際には、主記憶装置３又は補助記憶装置６０に格納されたプログラム（例えば、それぞれ、コントローラシミュレータプログラム、メカシミュレータプログラム及びデータ解析支援プログラム）に従って中央演算処理装置２が実行する。トレースデータ連携処理部１２１は、メカシミュレータプログラムのサブプログラムとして提供されてもよい。
【００２３】
図２は、本発明の第１の実施形態におけるシミュレーション実行を説明するフローチャートである。
【００２４】
ステップ（Ｓ）１０００では、データ設定処理部１３１がコントローラ部品のトレース条件を設定する。ステップ１１００では、データ設定処理部１３１がメカ部品のトレース条件を設定する。ステップ１２００では、データ設定処理部１３１がコントローラ部品又はメカ部品のトレースデータの出力方向を設定する。ステップ１３００では、データ設定処理部１３１がシミュレーション条件を設定する。なお、これらの設定は、例えば、ユーザーが入力装置４０を操作して入力した値をデータ設定処理部１３１が各シミュレータに通知することによって実行される。ステップ１０００からステップ１３００は、どのような順序で実行されてもよい。設定される条件の詳細については後述する（図３参照）。
【００２５】
ステップ１０００からステップ１３００までの条件設定が行われた後に、ステップ１４００でコントローラシミュレータ１１０及びメカシミュレータ１２０によるシミュレーションの実行が開始される。
【００２６】
ステップ１４００でシミュレーション実行が開始された後、ステップ１５００では、データ解析支援装置１３０がコントローラ部品又はメカ部品のトレースデータ出力の有無を判定する。トレースデータ出力がある場合にはステップ１６００でデータ表示処理部１３２がトレース対象であるデータを表示し、トレースデータ出力がない場合にはステップ１７００へ処理が進む。
【００２７】
ステップ１７００では、データ解析支援装置１３０がシミュレーション実行終了命令の有無及びシミュレーション実行終了条件が満たされるか否かを判定する。シミュレーション実行終了命令は、ユーザーによって入力装置４０から入力される。シミュレーション実行終了条件は、例えば、ユーザーによってシミュレーション条件として設定されたシミュレーション終了時刻であり、シミュレータ内部の時刻がシミュレーション終了時刻と一致した場合にシミュレーション実行終了条件が満たされると判定される。
【００２８】
シミュレーション実行終了命令があったか、又はシミュレーション実行終了条件が満たされる場合、ステップ１８００でシミュレーション実行が終了し、処理が終了する。シミュレーション終了命令がなく、かつ、シミュレーション実行終了条件も満たされない場合、ステップ１５００へ処理が戻る。
【００２９】
図３は、本発明の第１の実施形態のデバッグ解析システム１０におけるユーザインタフェースの例を示す説明図である。
【００３０】
具体的には、図３に例示する表示装置５０には、入力装置４０を介して、データ設定処理部１３１がステップ１０００からステップ１３００までのデータ出力条件設定要求及びステップ１４００のシミュレーション実行制御要求を受け取るためのユーザインタフェースが示されている。
【００３１】
表示装置５０には、シミュレーション実行制御部５０１、シミュレーション開始時刻設定部５０２及びシミュレーション終了時刻設定部５０３が表示される。
【００３２】
シミュレーション実行制御部５０１は、ユーザーがシミュレーション実行の開始及び終了を命令するために使用される。図３に例示されたシミュレーション実行制御部５０１は、それぞれ「スタート」及び「エンド」の表示に対応する二つのラジオボタンを含む。図３の例では「エンド」に対応するラジオボタンが選択されている。これは、シミュレーションの実行が既に終了したか、又はまだ開始されていないことを意味する。ユーザーが入力装置４０を操作して「スタート」に対応するラジオボタンを選択すると、コントローラシミュレータ１１０及びメカシミュレータ１２０によるシミュレーションの実行が開始される（図２のステップ１４００）。シミュレーションが実行されているときにユーザーが「エンド」に対応するラジオボタンを選択すると、データ解析支援装置１３０はシミュレーション実行終了命令があったと判定する（図２のステップ１７００）。
【００３３】
シミュレーション開始時刻設定部５０２及びシミュレーション終了時刻設定部５０３は、図２のステップ１３００においてユーザーがシミュレーション条件を設定するために使用される。図３に例示されたシミュレーション開始時刻設定部５０２及びシミュレーション終了時刻設定部５０３は、それぞれ、シミュレーションの開始時刻及び終了時刻の表示を含む。ユーザーが入力装置４０を操作してこれらの時刻を入力することによって、シミュレーション条件が設定される。
【００３４】
図３の例では、シミュレーション開始時刻設定部５０２及びシミュレーション終了時刻設定部５０３にそれぞれ「０．０００」及び「１０．０００」が表示されている。これは、時刻０秒から時刻１０秒までのシミュレーションを実行するように、ユーザーがシミュレーション条件を設定したことを意味する。
【００３５】
なお、これらの時刻は、実時刻ではなく、コントローラシミュレータ１１０又はメカシミュレータ１２０の内部の時刻（すなわちシミュレーション時刻）である。以下の説明においても同様である。
【００３６】
さらに、表示装置５０には、コントローラ部品トレースデータ出力設定部５０４、コントローラ部品トレース開始時刻設定部５０５、コントローラ部品トレース終了時刻設定部５０６、及びコントローラ部品トレース対象データ設定部５０７が表示される。これらは、図２のステップ１０００においてユーザーがコントローラ部品トレース条件を設定するために使用される。
【００３７】
ここで、「シミュレーション条件」及び「トレース条件」について説明する。
【００３８】
シミュレーション条件は、シミュレーションを実行する条件である。具体的には、シミュレーション条件は、少なくともシミュレーションの開始時刻及び終了時刻を含む。図３には示されていないが、シミュレーション条件は、上記以外の条件（例えば、シミュレーション開始時点のシミュレータ内部のパラメータの初期値等）をさらに含んでもよい。
【００３９】
一方、トレース条件は、シミュレーション結果の記録及び表示に関する条件である。各シミュレータは、シミュレーション結果として種々の値を出力することができるが、トレース条件は、どの期間のどの値を記録し、それをユーザーに対して表示するかを指定するものである。トレース条件の具体例は後述する。コントローラシミュレータ１１０及びメカシミュレータ１２０に関するトレース条件を、それぞれコントローラ部品トレース条件及びメカ部品トレース条件と記載する。また、各シミュレータがトレース条件に従って記録及び表示するデータをトレースデータと記載する。
【００４０】
表示装置５０には、さらに、メカ部品トレースデータ出力設定部５０８、メカ部品トレース開始時刻設定部５０９、メカ部品トレース終了時刻設定部５１０、及びメカ部品トレース対象データ設定部５１１が表示される。これらは、図２のステップ１１００においてユーザーがメカ部品トレース条件を設定するために使用される。
【００４１】
図３に例示されたコントローラ部品トレースデータ出力設定部５０４及びメカ部品トレースデータ出力設定部５０８の各々は、「オン」及び「オフ」の表示に対応する二つのラジオボタンを含む。ユーザーは、入力装置４０を操作してこれらのラジオボタンを選択することによって、各シミュレータにトレースデータを出力させるか否かを設定することができる。図３の例では、コントローラ部品トレースデータ出力設定部５０４において「オフ」に対応するラジオボタンが、メカ部品トレースデータ出力設定部５０８において「オン」に対応するラジオボタンがそれぞれ選択されている。これらは、コントローラシミュレータ１１０がトレースデータを出力せず、メカシミュレータ１２０がトレースデータを出力するように設定されていることを示す。
【００４２】
図３に例示されたコントローラ部品トレース開始時刻設定部５０５及びコントローラ部品トレース終了時刻設定部５０６は、それぞれ、コントローラシミュレータ１１０によるトレースの開始時刻及び終了時刻の表示を含む。ユーザーが入力装置４０を操作してこれらの時刻を入力することによって、コントローラシミュレータ１１０によるトレースの開始時刻及び終了時刻が設定される。
【００４３】
図３に例示されたコントローラ部品トレース対象データ設定部５０７は、それぞれ「関数番号」及び「タスク番号」に対応する二つのチェックボックスを含む。ユーザーは、入力装置４０を操作してこれらのチェックボックスを選択することによって、コントローラシミュレータ１１０に出力させるトレースデータを設定することができる。図３の例ではコントローラシミュレータ１１０がトレースデータとして出力できる値として関数番号及びタスク番号を挙げたが、コントローラシミュレータ１１０内部の変数の値である限り、上記以外の値がトレースデータとして出力されてもよい。
【００４４】
図３の例ではコントローラ部品トレースデータ出力設定部５０４において「オフ」が選択されているため、コントローラシミュレータ１１０はトレースデータを出力しない。このため、コントローラ部品トレース開始時刻設定部５０５及びコントローラ部品トレース終了時刻設定部５０６ではいずれも時刻「０．０００」が設定され、コントローラ部品トレース対象データ設定部５０７ではいずれのチェックボックスも選択されていない。
【００４５】
図３に例示されたメカ部品トレース開始時刻設定部５０９及びメカ部品トレース終了時刻設定部５１０は、それぞれ、メカシミュレータ１２０によるトレースの開始時刻及び終了時刻の表示を含む。ユーザーが入力装置４０を操作してこれらの時刻を入力することによって、メカシミュレータ１２０によるトレースの開始時刻及び終了時刻が設定される。
【００４６】
図３に例示されたメカ部品トレース対象データ設定部５１１は、それぞれ「エンジン回転数」及び「燃料噴射量」に対応する二つのチェックボックスを含む。ユーザーは、入力装置４０を操作してこれらのチェックボックスを選択することによって、メカシミュレータ１２０に出力させるトレースデータを設定することができる。図３の例ではメカシミュレータ１２０がトレースデータとして出力できる値としてエンジン回転数及び燃料噴射量を挙げたが、メカシミュレータ１２０内部の変数の値である限り、上記以外の値がトレースデータとして出力されてもよい。
【００４７】
図３の例では、メカ部品トレースデータ出力設定部５０８において「オン」が選択され、メカ部品トレース開始時刻設定部５０９及びメカ部品トレース終了時刻設定部５１０においてそれぞれ「０．０００」及び「１０．０００」が設定され、メカ部品トレース対象データ設定部５１１において「エンジン回転数」が選択されている。これは、メカシミュレータ１２０が、時刻「０．０００」（秒）から「１０．０００」（秒）までの変数「燃料噴射量」の値をトレースデータとして出力するように設定されていることを示す。
【００４８】
表示装置５０には、さらに、トレースデータ出力方向設定部５１２が表示される。これは、図２のステップ１２００においてユーザーがトレースデータ出力方向を設定するために使用される。図３に例示するトレースデータ出力方向設定部５１２は、「コントローラ部品⇒メカシミュレータ」、「メカ部品⇒コントローラシミュレータ」及び「コントローラ部品／メカ部品⇒挙動連携処理装置」のそれぞれの表示に対応するラジオボタンを含む。ユーザーは、入力装置４０を操作してこれらのラジオボタンを選択することによって、トレースデータの出力方向を設定することができる。第１の実施形態では、「コントローラ部品⇒メカシミュレータ」が選択される。トレースデータの出力方向の詳細については後述する。挙動連携処理装置（すなわちトレースデータ連携処理装置１４０）については、本発明の第３の実施形態において説明する。
【００４９】
次に、図３に示されているトレース条件、シミュレーション条件下において、データ設定処理部１３１がシミュレーション実行制御部５０１にてシミュレーション実行開始要求を受け取った（すなわち、ユーザーが「スタート」を選択した）場合について説明する。
【００５０】
図４は、本発明の第１の実施形態において表示されるトレースデータの例を示す説明図である。
【００５１】
図３に示す条件下でシミュレーション実行（以下の説明において、このシミュレーションを１回目のシミュレーションとも記載する）が終了した後、データ表示処理部１３２は、図４に示すように、メカ部品トレースデータ表示部５１４に０秒から１０秒までのエンジン回転数変化（太実線）５１５を表示する。このとき、データ設定処理部１３１は、以下に説明するように、表示されたエンジン回転数変化５１５をもとに、コントローラ部品のトレース条件及びシミュレーション条件の設定変更要求を受け取ることができる。
【００５２】
なお、この時点で、コントローラ部品トレースデータ表示部５１３には何も表示されていない。
【００５３】
ユーザーは、入力装置４０を操作してヘアーカーソル（細破線）５１６を上下左右に移動させることによって、シミュレーション時刻当たりのエンジン回転数変化を表す波形５１５上の任意のポイントを指定することができる（図４の「１．ユーザーによるポイント指定」（ステップ９０００）に相当）。データ設定処理部１３１は、このポイントの指定を前述の設定変更要求として受け取る。そして、データ設定処理部１３１は、受け取った設定変更要求に従って、斜線で示されるコントローラ部品のトレース対象領域のデータを取得するためのトレースデータ出力条件、及び、シミュレータ内部の時刻がトレース対象領域から外れたときにシミュレーション実行を自動的に終了するためのシミュレーション条件を設定する。
【００５４】
図４の例では、ヘアーカーソル５１６によって、シミュレーション時刻５．０５秒におけるエンジン回転数が指定されている。この場合、斜線で示されるコントローラ部品のトレース対象領域５１７は、シミュレーション時刻５．００秒から５．１０秒までの範囲に相当する。トレース対象領域５１７は、ユーザーによって指定されたシミュレーション時刻（図４では５．０５秒）を含み、かつ、１回目のシミュレーションによるトレースデータが取得された時間（図４では０．００秒から１０．００秒まで）内に含まれるように設定される。例えば、データ設定処理部１３１が、ユーザーによって指定された時刻を含む所定の範囲（図４の例では指定された時刻−０．０５秒から＋０．０５秒の範囲）をトレース対象領域５１７として設定してもよいし、ユーザーがトレース対象領域５１７自体を指定してもよい。ユーザーが指定する場合は、図３に示すユーザインタフェースを使用することができる。
【００５５】
その後、コントローラ部品トレース対象データ設定部５０７は、ユーザーからの指定に従って、関数番号をトレースデータとして出力する条件を設定する。
【００５６】
これらの設定の結果、図３の表示は次のように変更される。すなわち、コントローラ部品トレースデータ出力設定部５０４において「オン」が選択される。シミュレーション開始時刻設定部５０２、コントローラ部品トレース開始時刻設定部５０５及びメカ部品トレース開始時刻設定部５０９に「５．０００」が表示される。シミュレーション終了時刻設定部５０３、コントローラ部品トレース終了時刻設定部５０６及びメカ部品トレース終了時刻設定部５１０に「５．１００」が表示される。コントローラ部品トレース対象データ設定部５０７において「関数番号」が選択される。
【００５７】
その後、シミュレーション実行制御部５０１がシミュレーション実行開始要求を受け取り、上記のように設定された条件に基づくシミュレーションが実行される。このとき実行されるシミュレーションを、以下の説明において２回目のシミュレーションとも記載する。図４に示す「２．シミュレーション実行」（ステップ９１００）は、この２回目のシミュレーションを意味する。２回目のシミュレーション実行終了後、データ表示処理部１３２は、コントローラ部品トレースデータ表示部５１３に、トレース対象領域における関数番号変化（太破線）５１８を表示する（図４の「３．指定ポイント近傍のトレースデータ表示」（ステップ９２００）に相当）。
【００５８】
このとき、メカ部品トレースデータ表示部５１４には、シミュレーション時刻が０．００秒から１０．００秒までの間のエンジン回転数変化が表示されるのに対して、コントローラ部品トレースデータ表示部５１３には、シミュレーション時刻が５．００秒から５．１０秒までの間の関数番号変化が表示される。このように、メカ部品トレースデータが表示されるシミュレーション時刻の範囲の一部に対応するコントローラ部品トレースデータが、時間軸方向に拡大して表示される。
【００５９】
例えば、１回目のシミュレーションによって表示されたエンジン回転数５１５に異常が発見された場合、その異常はコントローラ部品の不具合（より具体的には、コントローラ部品にインストールされたソフトウェア）に起因する可能性がある。ユーザーは、その異常の原因となった可能性があるコントローラ部品の挙動を観測するため、エンジン回転数の異常が観測されたシミュレーション時刻を指定し、さらに、その時刻の近傍における関数番号を出力するように指定することができる。その場合、指定された時刻を含むトレース対象領域における時刻ごとの関数番号５１８がコントローラ部品トレースデータ表示部５１３に表示される。ユーザーは、各時刻において処理されている関数番号を参照することによって、コントローラ部品のデバッグを行うことができる。
【００６０】
しかし、仮に、関数番号５１８をエンジン回転数５１５と同じ時間スケールで表示すると、ユーザーが関数番号の変化を観測することは困難である。これは、関数番号が一般的にエンジン回転数よりずっと短い時間間隔で変化するためである。例えば、エンジン回転数の観測は数ミリ秒ごとに行えば十分であるのに対して、コントローラ部品のＣＰＵの命令サイクルが数十メガヘルツ程度であれば、複数のＣＰＵ命令が実行される関数単位では、関数番号は数マイクロ秒ごとに変化する。このように、両者を表示するための適正な時間スケールには１０００倍程度又はそれ以上の差が生じる場合がある。
【００６１】
本実施形態では、それぞれのトレースデータを観測に適した時間スケールで表示するために、関数番号５１８の時間分解能がエンジン回転数５１５のそれより高くなるように表示される。言い換えると、エンジン回転数５１５が表示される時刻の間隔より短い間隔の時刻ごとの関数番号５１８が表示される。例えば、コントローラシミュレータ１１０がコントローラ部品トレースデータとして数マイクロ秒ごとの関数番号を出力し、メカシミュレータ１２０がメカ部品トレースデータとして数ミリ秒ごとのエンジン回転数を出力し、表示装置５０がトレース対象領域の関数番号を時間軸方向に拡大して表示してもよい。図４の例では、メカ部品トレースデータ表示部５１４の時間軸における０．００秒から１０．００秒までの１０秒間と、コントローラ部品トレースデータ表示部５１３の時間軸における５．００秒から５．１０秒までの０．１秒間とが同じ長さになるように表示される。これによって、ユーザーがコントローラ部品の挙動を容易に観測することができる。
【００６２】
また、上記のように時間スケールが大きく異なるため、単位時間当たりのコントローラ部品トレースデータの量は、メカ部品トレースデータのそれよりずっと多くなる。このため、仮にメカ部品トレースデータと同じ時間範囲（例えば０．００秒から１０．００秒までの間）のコントローラ部品トレースデータを出力する場合、膨大なデータを処理する必要が生じ、その処理のために多くの時間を要することになる。しかし、本実施形態では、トレース対象領域のみについてコントローラ部品トレースデータを表示することによって、表示のために必要なデータ量を制限することができる。
【００６３】
また、コントローラ部品のトレースデータを出力しない場合と比較して、それを出力する２回目のコントローラ部品のシミュレーション実行速度は低下する。しかし、上記のようにトレース対象領域として指定されたごく短い時間についてのみトレースデータを出力することによって、シミュレーション実行速度の低下を抑制することができる。
【００６４】
なお、図４の例では、コントローラ部品トレースデータ表示部５１３に関数番号が表示される。これは、各時刻においてどの関数が処理されているかを特定することによって、各時刻におけるコントローラシミュレータ１１０の挙動（すなわちそれによってシミュレートされたコントローラ部品の挙動）を特定することができるためである。しかし、この表示は一例であり、関数番号以外の値（例えば各時刻において実行されているプログラムのアドレス等）が表示されてもよい。ユーザーは、コントローラ部品トレース対象データ設定部５０７を介して、コントローラ部品のデバッグに有用な任意の値が表示されるように設定することができる。
【００６５】
また、図４の例では、メカ部品トレースデータ表示部５１４にエンジン回転数が表示されるが、これも一例に過ぎず、実際には種々の値（例えば自動車の走行速度等）が表示され得る。表示される変数の値が異なっても、一般には上記のような時間スケールの関係が成立する場合が多く、その場合には本実施形態は有効である。ただし、変数の選択次第では、時間スケールの関係が逆転する場合がある。そのような場合については後述する（第２の実施形態参照）。
【００６６】
図５は、本発明の第１の実施形態において構成されるデバッグ解析システム１０の詳細を例示する説明図である。
【００６７】
コントローラシミュレータ１１０は、コントローラ部品のトレース条件とシミュレーション条件を受け取るコントローラ部品トレース条件設定部１１２、及び、コントローラ部品シミュレーション条件設定部１１３を有する。コントローラシミュレータ１１０は、さらに、コントローラ部品トレースデータ１５０を外部出力するコントローラ部品トレースデータ出力制御部１１４を有する。
【００６８】
メカシミュレータ１２０は、それぞれメカ部品のトレース条件及びシミュレーション条件を受け取るメカ部品トレース条件設定部１２２及びメカ部品シミュレーション条件設定部１２３を有する。さらに、メカシミュレータ１２０は、トレースデータ連携処理部１２１を有する。トレースデータ連携処理部１２１は、コントローラ部品トレースデータ入力制御部１２５、コントローラ部品／メカ部品トレースデータ同期制御部１２６及びコントローラ部品／メカ部品トレースデータ出力制御部１２７を有する。コントローラ部品トレースデータ入力制御部１２５がコントローラ部品のトレース対象データを受け取る。そして、コントローラ部品／メカ部品トレースデータ同期制御部１２６が各部品のトレースデータの同期をとる。最後に、コントローラ部品／メカ部品トレースデータ出力制御部１２７がトレースデータを出力する。
【００６９】
データ解析支援装置１３０のデータ設定処理部１３１は、入力装置４０からユーザーの操作入力を受け取る入力制御部１３６、入力データから各種条件を判定するトレース条件判定部１３３、シミュレーション条件判定部１３４及びトレースデータ表示条件判定部１３５を有する。また、データ解析支援装置１３０のデータ表示処理部１３２は、トレースデータを表示装置５０に出力するトレースデータ表示制御部１３７、及びメカシミュレータ１２０から出力されたトレースデータを受け取るトレースデータ入力制御部１３８を有する。
【００７０】
１回目のシミュレーションでは、図３に示すような条件が入力制御部１３６に入力され、トレース条件判定部１３３、シミュレーション条件判定部１３４及びトレースデータ表示条件判定部１３５はどのような条件が入力されたかを判定し、各条件がコントローラ部品トレース条件設定部１１２、コントローラ部品シミュレーション条件設定部１１３、メカ部品トレース条件設定部１２２及びメカ部品シミュレーション条件設定部１２３に設定される（図２のステップ１０００〜ステップ１３００）。その後、コントローラシミュレータ１１０及びメカシミュレータ１２０は、設定された条件に従ってシミュレーションの実行を開始する（図２のステップ１４００）。
【００７１】
メカ部品はコントローラ部品から受信した制御信号に従って動作し、コントローラ部品はメカ部品から受信した信号を制御に反映させる。このため、コントローラシミュレータ１１０及びメカシミュレータ１２０は、相互にデータを通信しながらシミュレーションを実行する。しかし、トレースデータとしては、図５には明示されていないが、ユーザーによってトレース対象データとして指定されたエンジン回転数のみがメカシミュレータ１２０から出力される。すなわち、１回目のシミュレーションではコントローラ部品トレースデータ１５０は出力されない。この場合、図２のステップ１５００ではメカ部品トレースデータが出力されたと判定され、トレースデータ表示制御部１３７によってエンジン回転数がメカ部品トレースデータ表示部５１４に表示される（図２のステップ１６００）。
【００７２】
その後、シミュレーション条件として設定されたシミュレーション終了時刻が到来すると、シミュレーションの実行が終了する（図２のステップ１７００及びステップ１８００）。
【００７３】
２回目のシミュレーションでは、図４を参照して説明したように変更された条件が入力制御部１３６に入力され、各シミュレータに設定される（図２のステップ１０００〜ステップ１３００）。その後、コントローラシミュレータ１１０及びメカシミュレータ１２０は、設定された条件に従ってシミュレーションの実行を開始する（図２のステップ１４００）。このとき、コントローラシミュレータ１１０は、ユーザーによる設定に従って、関数番号をコントローラ部品トレースデータ１５０として出力する。
【００７４】
コントローラ部品トレースデータ１５０は、メカシミュレータ１２０内のトレースデータ連携処理部１２１のコントローラ部品トレースデータ入力制御部１２５に入力される。既に説明したようにコントローラ部品トレースデータとメカ部品トレースデータの時間スケールが異なるため、コントローラ部品／メカ部品トレースデータ同期制御部１２６が時刻情報に基づいて両者を対応付け、コントローラ部品／メカ部品トレースデータ出力制御部１２７が両者をトレースデータ入力制御部１３８に出力する。
【００７５】
この場合、図２のステップ１５００ではコントローラ部品トレースデータ及びメカ部品トレースデータが出力されたと判定され、トレースデータ表示制御部１３７によって関数番号及びエンジン回転数がそれぞれコントローラ部品トレースデータ表示部５１３及びメカ部品トレースデータ表示部５１４に表示される（図２のステップ１６００）。その結果、図４に示すようなトレースデータが表示される。
【００７６】
なお、図３のトレースデータ出力方向設定部５１２において選択された「コントローラ部品⇒メカシミュレータ」は、上記のように、コントローラシミュレータ１１０から出力されたコントローラ部品トレースデータ１５０がメカシミュレータ１２０に入力されることを意味する。上記以外の方向については後述する（第２実施形態及び第３実施形態参照）。
【００７７】
次に、図６Ａ〜図６Ｃを参照して、本実施形態のデバッグ解析システム１０がトレースデータを出力する処理について説明する。なお、本実施形態の各シミュレータが実行するシミュレーション処理自体は従来の技術によって実現できるため、その詳細な説明は省略する。
【００７８】
図６Ａは、本発明の第１の実施形態におけるコントローラシミュレータ１１０のデータ処理を示すフローチャートである。
【００７９】
ステップ２０００において、コントローラシミュレータ１１０は、コントローラ部品のトレース条件が一致しているか否かを判定する。トレース条件としてトレース開始時刻及び終了時刻が設定されている場合、現在のシミュレーション時刻がトレース開始時刻から終了時刻までの時間に含まれるか否かが判定される。トレース条件が一致している場合、コントローラシミュレータ１１０は、ステップ２１００においてコントローラ部品のシミュレーション時刻を出力し、ステップ２２００においてコントローラ部品のトレースデータを出力した後、処理を終了する。トレース条件が一致していない場合、コントローラシミュレータ１１０は、ステップ２１００及びステップ２２００を実行せずに処理を終了する。
【００８０】
１回目のシミュレーションでは、コントローラシミュレータ１１０がコントローラ部品トレースデータを出力しないように設定され、トレース条件として設定されている開始時刻及び終了時刻はいずれも「０．０００」である。このため、ステップ２０００では常にトレース条件が一致しないと判定され、ステップ２１００及びステップ２２００は実行されない。
【００８１】
２回目のシミュレーションでは、トレース条件として設定されている開始時刻及び終了時刻はそれぞれ「５．０００」及び「５．１００」である。このため、コントローラ部品のシミュレーション時刻が５．０００秒から５．１００秒までの間のいずれかである場合に、ステップ２０００でトレース条件が一致すると判定され、コントローラシミュレータ１１０のコントローラ部品トレースデータ出力制御部１１４が、シミュレーション時刻と、その時刻に対応するコントローラ部品トレースデータ（図４の例では関数番号）とを出力する（ステップ２１００及びステップ２２００）。
【００８２】
図６Ｂは、本発明の第１の実施形態におけるメカシミュレータ１２０のデータ処理を示すフローチャートである。
【００８３】
メカシミュレータ１２０は、ステップ３０００において、メカ部品のシミュレーション時刻を取得し、ステップ３１００において、コントローラ部品のトレースデータ出力の有無を判定する。トレースデータ出力が有る場合は、ステップ３２００へ処理が進む。一方、トレースデータ出力が無い場合は、ステップ３９００へ処理が進み、メカシミュレータ１２０は、メカ部品のシミュレーション時刻を出力し、ステップ３９５０において、メカ部品のトレースデータのみを出力する。
【００８４】
ステップ３１００で、コントローラ部品のトレースデータ出力が有ると判定された場合、メカシミュレータ１２０は、ステップ３２００において、コントローラ部品のシミュレーション時刻を取得する。その後、ステップ３３００において、メカシミュレータ１２０は、コントローラ部品のトレースデータを取得する。そして、ステップ３４００において、メカシミュレータ１２０は、取得したメカ部品のシミュレーション時刻とコントローラ部品のシミュレーション時刻とが一致するか否かを判定する。シミュレーション時刻が一致した場合は、ステップ３５００へ処理が進むが、一致しなかった場合は、ステップ３７００へ進み、コントローラ部品のシミュレーション時刻を取得し、ステップ３８００において、コントローラ部品のトレースデータのみを出力する。
【００８５】
シミュレーション時刻が一致した場合メカシミュレータ１２０は、ステップ３５００においてシミュレーション時刻を出力し、ステップ３６００においてコントローラ部品及びメカ部品のトレースデータを出力して処理が終了する。
【００８６】
１回目のシミュレーションでは、コントローラシミュレータ１１０がコントローラ部品トレースデータ１５０を出力しない。このため、メカシミュレータ１２０は、ステップ３０００においてメカ部品のシミュレーション時刻を取得した後、ステップ３２００からステップ３８００を実行せずに、そのシミュレーション時刻と、それに対応するメカ部品トレースデータ（すなわちエンジン回転数）を出力する（ステップ３９００及びステップ３９５０）。
【００８７】
２回目のシミュレーションでは、コントローラシミュレータ１１０がコントローラ部品トレースデータ１５０を出力する。このため、メカシミュレータ１２０は、ステップ３０００においてメカ部品のシミュレーション時刻を取得した後、ステップ３２００においてコントローラ部品トレースデータ１５０に含まれるコントローラ部品のトレース時刻を取得する。
【００８８】
既に説明したように、本実施形態では、コントローラ部品トレースデータの時間分解能がメカ部品トレースデータのそれより高い。このため、あるシミュレーション時刻における関数番号が出力されても、その時刻におけるエンジン回転数は出力されない場合がある。このため、メカシミュレータ１２０は、ステップ３２００において、コントローラ部品のシミュレーション時刻を取得し、その後ステップ３３００において、そのシミュレーション時刻に対応するコントローラ部品トレースデータ（すなわち関数番号）を取得し、ステップ３４００において、その時刻に対応するメカ部品トレースデータが出力されるか否かを判定する。
【００８９】
コントローラ部品のシミュレーション時刻に対応するメカ部品トレースデータが出力されないと判定された場合、メカシミュレータ１２０は、コントローラ部品のシミュレーション時刻と、その時刻に対応するコントローラ部品トレースデータを出力する（ステップ３７００及び３８００）。
【００９０】
コントローラ部品のシミュレーション時刻に対応するメカ部品トレースデータが出力されると判定された場合、メカシミュレータ１２０は、そのシミュレーション時刻、その時刻に対応するコントローラ部品トレースデータ（すなわち関数番号）、及びその時刻に対応するメカ部品トレースデータ（すなわちエンジン回転数）を出力する（ステップ３５００及びステップ３６００）。これによって、同一の時刻に対応するコントローラ部品トレースデータ及びメカ部品トレースデータが対応付けられる。
【００９１】
図６Ｃは、本発明の第１の実施形態におけるデータ解析支援装置１３０のデータ処理を示すフローチャートである。
【００９２】
データ解析支援装置１３０は、ステップ４０００において、メカシミュレータ１２０から出力されたシミュレーション時刻を取得し、ステップ４１００において、メカシミュレータ１２０から出力されたコントローラ部品及びメカ部品のトレースデータを（メカ部品のトレースデータのみが出力された場合はメカ部品のトレースデータを）取得する。なお、ステップ４０００において取得される時刻及びステップ４１００において取得されるトレースデータは、それぞれ、図６Ｂのステップ３５００及びステップ３６００において出力されたものである。
【００９３】
そして、データ解析支援装置１３０は、ステップ４２００において、取得したトレースデータを表示装置５０に表示する（図４参照）。
【００９４】
以上の第１の実施形態によれば、コントローラ部品トレースデータとメカ部品トレースデータの時間スケールが異なる場合であっても、表示のために必要なデータ量を制限し、シミュレーションの実行速度の低下を抑制しながら、必要な時間範囲において、十分な時間分解能を有するトレースデータを表示することができる。コントローラ部品トレースデータとメカ部品トレースデータとを連携して表示することによって、効率的にソフトウェアのデバッグを行い、工数の大きな下流工程での開発工数を軽減し、実装不具合による手戻りを抑制することができる。
【００９５】
＜第２の実施形態＞
本発明の第２の実施形態では、ユーザーがコントローラ部品トレースデータ１５０に対して任意の点又は領域を指定することによって、指定された点の近傍又はその点を含む所定の領域におけるメカ部品のトレースデータを拡大表示するデバッグ解析システムの例を説明する。
【００９６】
図７は、本発明の第２の実施形態におけるデバッグ解析システム２０のツール環境構成の例を説明する機能ブロック図である。
【００９７】
図７のデバッグ解析システム２０のうち、既に説明した図１に示された同一の符号を付された構成と同一の機能を有する部分については、説明を省略する。
【００９８】
コントローラシミュレータ１１０は、トレースデータ連携処理部１１１を有する。トレースデータ連携処理部１１１は、メカ部品トレースデータ１６０（図１０参照）を受け取り、メカ部品トレースデータ１６０とコントローラ部品のトレースデータとの連携処理を行い、予め定義されたデータ出力条件に従いコントローラ部品及びメカ部品のトレースデータを出力する。メカシミュレータ１２０は、予め定義されたデータ出力条件に従ってメカ部品トレースデータ１６０を出力する。本実施形態のデバッグ解析システム２０におけるシミュレート実行のフローチャートは、図２で示されるフローチャートと同一となるため、説明を省略する。
【００９９】
なお、本実施形態のデバッグ解析システム２０のハードウェア構成は、第１の実施形態と同様であるため（図１５参照）、説明を省略する。第１の実施形態の場合と同様、第２の実施形態のコントローラシミュレータ１１０、メカシミュレータ１２０及びデータ解析支援装置１３０が実行する処理は、実際には、主記憶装置３又は補助記憶装置６０に格納されたプログラムに従って中央演算処理装置２が実行する。トレースデータ連携処理部１１１は、コントローラシミュレータ１１０を実現するプログラムのサブプログラムとして提供されてもよい。
【０１００】
図８は、本発明の第２の実施形態のデバッグ解析システム１０におけるユーザインタフェースの例を示す説明図である。
【０１０１】
図８に示すユーザインタフェースは、第１の実施形態において使用されるものと同じであるが（図３参照）、図８の例では、ユーザーによって図３と異なる設定がなされている。すなわち、コントローラ部品トレースデータ出力設定部５０４において「オン」が、メカ部品トレースデータ出力設定部において「オフ」が、トレースデータ出力方向設定部５１２において「メカ部品⇒コントローラシミュレータ」が、それぞれ選択されている。シミュレーション終了時刻設定部５０３、コントローラ部品トレース終了時刻設定部５０６及びメカ部品トレース終了時刻設定部５１０において、それぞれ「０．１００」、「０．１００」及び「０．０００」が設定されている。コントローラ部品トレース対象データ設定部５０７において「タスク番号」が選択され、メカ部品トレース対象データ設定部５１１では何も選択されていない。
【０１０２】
図８で示されるトレース条件及びシミュレーション条件下において、データ設定処理部１３１がシミュレーション実行制御部５０１にてシミュレーション実行開始要求を受け取った場合について、図９を参照して説明する。
【０１０３】
図９は、本発明の第２の実施形態において表示されるトレースデータの例を示す説明図である。
【０１０４】
図８の条件下でシミュレーション（すなわち、第２の実施形態における１回目のシミュレーション）の実行が終了した後、データ表示処理部１３２は、図９に示すように、コントローラ部品トレースデータ表示部５１３に０秒から０．１秒までのタスク番号変化（太実線）５１９を表示する。このとき、データ設定処理部１３１は、表示されたタスク番号のデータをもとに、メカ部品のトレース条件及びシミュレーション条件の設定変更要求を受け取ることができる。
【０１０５】
第１の実施形態と同様、ユーザーは、入力装置４０を操作してヘアーカーソル（細破線）５２０を上下左右に移動させることによって、シミュレーション時刻当たりのタスク番号変化を表す波形５１９上の任意のポイントを指定することができる。データ設定処理部１３１は、このポイントの指定を前述の設定変更要求として受け取る（ステップ９３００）。そして、データ設定処理部１３１は、受け取った設定変更要求に従って、斜線で示されるメカ部品のトレース対象領域５２１のデータを取得するためのトレースデータ出力条件、及び、シミュレータ内部の時刻がトレース対象領域から外れたときにシミュレーション実行を自動的に終了するためのシミュレーション条件を設定する。
【０１０６】
図９の例では、ヘアーカーソル５２０によって、シミュレーション時刻０．０３５秒におけるタスク番号が指定されている。この場合、斜線で示されるメカ部品のトレース対象領域５２１は、シミュレーション時刻０．０３０秒から０．０４０秒までの範囲である。トレース対象領域５２１は、ユーザーによって指定されたシミュレーション時刻（図９では０．０３５秒）を含むように設定される。第１の実施形態と同様、トレース対象領域５２１はデータ設定処理部１３１によって自動的に設定されてもよいし、ユーザーによって指定されてもよい。ユーザーが指定する場合は、図９に示すユーザインタフェースを使用することができる。
【０１０７】
その後、メカ部品トレース対象データ設定部５１１は、ユーザーからの指定に従って、燃料噴射量をトレースデータとして出力する条件を設定する。
【０１０８】
これらの設定の結果、図８の表示は次のように変更される。すなわち、メカ部品トレースデータ出力設定部５０８において「オン」が選択される。シミュレーション開始時刻設定部５０２、コントローラ部品トレース開始時刻設定部５０５及びメカ部品トレース開始時刻設定部５０９に「０．０３０」が表示される。シミュレーション終了時刻設定部５０３、コントローラ部品トレース終了時刻設定部５０６及びメカ部品トレース終了時刻設定部５１０に「０．０４０」が表示される。メカ部品トレース対象データ設定部５１１において「燃料噴射量」が選択される。
【０１０９】
その後、シミュレーション実行制御部５０１がシミュレーション実行開始要求を受け取り、上記のように設定された条件に基づくシミュレーション（すなわち、第２の実施形態における２回目のシミュレーション）が実行される（ステップ９４００）。２回目のシミュレーション実行終了後、データ表示処理部１３２は、メカ部品トレース対象データ表示部５１４に、トレース対象領域における燃料噴射量変化（太破線）５２２を表示する。
【０１１０】
このとき、コントローラ部品トレースデータ表示部５１３には、シミュレーション時刻が０．０００秒から０．１００秒までの間のタスク番号変化５１９が表示されるのに対して、メカ部品トレースデータ表示部５１４には、シミュレーション時刻が０．０３０秒から０．０４０秒までの間の燃料噴射量変化５２２が表示される。このように、コントローラ部品トレースデータが表示されるシミュレーション時刻の範囲の一部に対応するメカ部品トレースデータが拡大表示される。
【０１１１】
第１の実施形態では、コントローラ部品トレースデータ（関数番号）の時間分解能がメカ部品トレースデータ（エンジン回転数）のそれより高かった。第２の実施形態ではこの関係が逆転し、メカ部品トレースデータ（燃料噴射量）の時間分解能がコントローラ部品トレースデータ（タスク番号）のそれより高くなる。すなわち、第２の実施形態では、図９に示すように、トレース対象領域の燃料噴射量が時間軸方向に拡大して表示される。これによって、ユーザーがメカ部品の挙動を容易に観測することができる。
【０１１２】
また、第１の実施形態の場合と同様、トレース対象領域のみについてメカ部品トレースデータを表示することによって、表示のために必要なデータ量を制限することができる。さらに、第１の実施形態と同様、トレースデータを出力することによるメカ部品のシミュレーション実行速度低下を抑制することができる。
【０１１３】
なお、タスク番号及び燃料噴射量はトレースデータの一例に過ぎない。実際には、第１の実施形態の場合と同様、種々の変数の値をトレースデータとして選択することができる。
【０１１４】
図１０は、本発明の第２の実施形態において構成されるデバッグ解析システム２０の詳細を例示する説明図である。
【０１１５】
図１０に示されたデバッグ解析システム２０の詳細のうち、既に説明した図５に示された同一の符号を付された構成と、同一の機能を有する部分については、説明を省略する。
【０１１６】
コントローラシミュレータ１１０が有するトレースデータ連携処理部１１１は、メカ部品トレースデータ入力制御部１１５、コントローラ部品／メカ部品トレースデータ同期制御部１１６及びコントローラ部品／メカ部品トレースデータ出力制御部１１７を有する。メカ部品トレースデータ入力制御部１１５がメカ部品トレースデータ１６０を受け取る。そして、コントローラ部品／メカ部品トレースデータ同期制御部１１６が各部品のトレースデータの同期をとる。最後に、コントローラ部品／メカ部品トレースデータ出力制御部１１７がコントローラ部品とメカ部品のトレースデータを出力する。メカシミュレータ１２０は、メカ部品トレースデータ１６０を外部出力するメカ部品トレースデータ出力制御部１２４を有する。
【０１１７】
１回目のシミュレーションでは、図８に示すような条件が入力制御部１３６に入力され、各シミュレータに設定される（図２のステップ１０００〜ステップ１３００）。その後、コントローラシミュレータ１１０及びメカシミュレータ１２０は、設定された条件に従ってシミュレーションの実行を開始する（図２のステップ１４００）。
【０１１８】
図１０では省略されているが、１回目のシミュレーションでは、トレースデータとしてタスク番号のみがコントローラシミュレータ１１０から出力される。すなわち、１回目のシミュレーションではメカ部品トレースデータ１６０は出力されない。この場合、図２のステップ１５００ではコントローラ部品トレースデータが出力されたと判定され、トレースデータ表示制御部１３７によってタスク番号がコントローラ部品トレースデータ表示部５１３に表示される（図２のステップ１６００）。
【０１１９】
その後、シミュレーション条件として設定されたシミュレーション終了時刻が到来すると、シミュレーションの実行が終了する（図２のステップ１７００及びステップ１８００）。
【０１２０】
２回目のシミュレーションでは、図９を参照して説明したように変更された条件が入力制御部１３６に入力され、各シミュレータに設定される（図２のステップ１０００〜ステップ１３００）。その後、コントローラシミュレータ１１０及びメカシミュレータ１２０は、設定された条件に従ってシミュレーションの実行を開始する（図２のステップ１４００）。このとき、メカシミュレータ１２０は、燃料噴射量をメカ部品トレースデータ１６０として出力する。
【０１２１】
メカ部品トレースデータ１６０は、コントローラシミュレータ１１０内のトレースデータ連携処理部１１１のメカ部品トレースデータ入力制御部１１５に入力される。コントローラ部品トレースデータとメカ部品トレースデータの時間スケールが異なるため、コントローラ部品／メカ部品トレースデータ同期制御部１１６が時刻情報に基づいて両者を対応付け、コントローラ部品／メカ部品トレースデータ出力制御部１１７が両者をトレースデータ入力制御部１３８に出力する。
【０１２２】
この場合、図２のステップ１５００ではコントローラ部品トレースデータ及びメカ部品トレースデータが出力されたと判定され、トレースデータ表示制御部１３７によってタスク番号及び燃料噴射量がそれぞれコントローラ部品トレースデータ表示部５１３及びメカ部品トレースデータ表示部５１４に表示される（図２のステップ１６００）。その結果、図９に示すようなトレースデータが表示される。
【０１２３】
なお、図３のトレースデータ出力方向設定部５１２において選択された「メカ部品⇒コントローラシミュレータ」は、上記のように、メカシミュレータ１２０から出力されたメカ部品トレースデータ１６０がコントローラシミュレータ１１０に入力されることを意味する。
【０１２４】
図１１Ａは、本発明の第２の実施形態におけるコントローラシミュレータ１１０のデータ処理を示すフローチャートである。
【０１２５】
コントローラシミュレータ１１０は、ステップ５０００において、コントローラ部品のシミュレーション時刻を取得し、ステップ５１００において、メカ部品のトレースデータ出力の有無を判定する。トレースデータ出力が有る場合は、ステップ５２００へ処理が進む。一方、トレースデータ出力が無い場合は、ステップ５９００へ処理が進み、コントローラシミュレータ１１０は、コントローラ部品のシミュレーション時刻を出力し、ステップ５９５０において、コントローラ部品のトレースデータのみ出力する。
【０１２６】
ステップ５１００で、メカ部品のトレースデータ出力が有ると判定された場合、コントローラシミュレータ１１０は、ステップ５２００において、メカ部品のシミュレーション時刻を取得する。その後、ステップ５３００において、コントローラシミュレータ１１０は、メカ部品のトレースデータを取得する。そして、ステップ５４００において、コントローラシミュレータ１１０は、取得したコントローラ部品のシミュレーション時刻とメカ部品のシミュレーション時刻とが一致するか否かを判定する。シミュレーション時刻が一致した場合は、ステップ５５００へ処理が進むが、一致しなかった場合は、ステップ５７００へ進み、メカ部品のシミュレーション時刻を取得し、ステップ５８００において、メカ部品のトレースデータのみを出力する。
【０１２７】
シミュレーション時刻が一致した場合、コントローラシミュレータ１１０は、ステップ５５００においてシミュレーション時刻を出力し、ステップ５６００においてコントローラ部品及びメカ部品のトレースデータ（又はそれらのうち一方）を出力して処理が終了する。
【０１２８】
１回目のシミュレーションでは、メカシミュレータ１２０がメカ部品トレースデータ１６０を出力しない。このため、コントローラシミュレータ１１０は、ステップ５０００においてコントローラ部品のシミュレーション時刻を取得した後、ステップ５２００からステップ５８００を実行せずに、そのシミュレーション時刻と、それに対応するコントローラ部品トレースデータ（すなわちタスク番号）を出力する（ステップ５９００及びステップ５９５０）。
【０１２９】
２回目のシミュレーションでは、メカシミュレータ１２０がメカ部品トレースデータ１６０を出力する。このため、コントローラシミュレータ１１０は、ステップ５０００においてコントローラ部品のシミュレーション時刻を取得した後、ステップ５２００においてメカ部品トレースデータ１６０に含まれるメカ部品のシミュレーション時刻を取得する。
【０１３０】
次に、コントローラシミュレータ１１０は、ステップ５３００において、そのシミュレーション時刻に対応するメカ部品トレースデータ（すなわち燃料噴射量）を取得し、ステップ５４００において、コントローラシミュレータ１１０は、取得したメカ部品のシミュレーション時刻に対応するコントローラ部品トレースデータが出力されるか否かを判定する。これは、コントローラ部品トレースデータとメカ部品トレースデータとの関係が逆転していることを除いて、図６Ｂのステップ３４００と同様である。
【０１３１】
その時刻に対応するコントローラ部品トレースデータが出力されないと判定された場合、コントローラシミュレータ１１０は、メカ部品のシミュレーション時刻と、その時刻に対応するメカ部品トレースデータを出力する（ステップ５７００及び５８００）。
【０１３２】
その時刻に対応するコントローラ部品トレースデータが出力されると判定された場合、コントローラシミュレータ１１０は、そのシミュレーション時刻、その時刻に対応するメカ部品トレースデータ（すなわち燃料噴射量）、及びその時刻に対応するコントローラ部品トレースデータ（すなわちタスク番号）を出力する（ステップ５５００及びステップ５６００）。
【０１３３】
図１１Ｂは、本発明の第２の実施形態におけるメカシミュレータ１２０のデータ処理を示すフローチャートである。
【０１３４】
ステップ６０００において、メカシミュレータ１２０は、メカ部品のトレース条件が一致しているか否かを判定する。この判定は、図６Ａのステップ２０００におけるコントローラ部品のトレース条件の判定と同様に行われる。トレース条件が一致している場合、メカシミュレータ１２０は、ステップ６１００においてメカ部品のシミュレーション時刻を出力し、ステップ６２００においてメカ部品のトレースデータを出力した後、処理を終了する。トレース条件が一致していない場合、メカシミュレータ１２０は、ステップ６１００及びステップ６２００を実行せずに処理を終了する。
【０１３５】
１回目のシミュレーションでは、メカシミュレータ１２０がメカ部品トレースデータを出力しないように設定されているため、ステップ６０００では常にトレース条件が一致しないと判定され、ステップ６１００及びステップ６２００は実行されない。
【０１３６】
２回目のシミュレーションでは、トレース条件として設定されている開始時刻及び終了時刻はそれぞれ「０．０３０」及び「０．０４０」である。このため、メカ部品のシミュレーション時刻が０．０３０秒から０．０４０秒までの間のいずれかである場合に、ステップ６０００でトレース条件が一致すると判定され、メカシミュレータ１２０のメカ部品トレースデータ出力制御部１２４が、シミュレーション時刻と、その時刻に対応するメカ部品トレースデータ（図９の例では燃料噴射量）とを出力する（ステップ６１００及びステップ６２００）。
【０１３７】
本実施形態のデータ解析支援装置１３０が実行する処理は、第１の実施形態と同様であるため、説明を省略する（図６Ｃ参照）。
【０１３８】
以上の第２の実施形態によれば、メカ部品トレースデータをコントローラ部品トレースデータより高い時間分解能で表示する必要がある場合であっても、表示のために必要なデータ量を制限し、シミュレーションの実行速度の低下を抑制しながら、必要な時間範囲において、十分な時間分解能を有するトレースデータを表示することができる。
【０１３９】
なお、第１の実施形態では、メカシミュレータ１２０はトレースデータ連携処理部１２１を有するが、コントローラシミュレータ１１０はトレースデータ連携処理部１１１を有しない。一方、第２の実施形態では、コントローラシミュレータ１１０はトレースデータ連携処理部１１１を有するが、メカシミュレータ１２０はトレースデータ連携処理部１２１を有しない。しかし、これらの実施形態の変形例として、コントローラシミュレータ１１０がトレースデータ連携処理部１１１を有し、かつ、メカシミュレータ１２０がトレースデータ連携処理部１２１を有する構成もあり得る。このような構成においては、ユーザーが必要に応じて（具体的には、選択したトレースデータの時間スケールに応じて）いずれのトレースデータ連携処理部を使用するかを選択することができる。
【０１４０】
例えば、第１の実施形態のように、コントローラ部品トレースデータとして関数番号を、メカ部品トレースデータとしてエンジン回転数を選択した場合、ユーザーは、トレースデータ出力方向設定部５１２において「コントローラ部品⇒メカシミュレータ」を選択する。この場合、トレースデータ連携処理部１２１が動作して、第１の実施形態において説明した処理が実行されるが、トレースデータ連携処理部１１１は動作しない。
【０１４１】
一方、第２の実施形態のように、コントローラ部品トレースデータとしてタスク番号を、メカ部品トレースデータとして燃料噴射量を選択した場合、ユーザーは、トレースデータ出力方向設定部５１２において「メカ部品⇒コントローラシミュレータ」を選択する。この場合、トレースデータ連携処理部１１１が動作して、第２の実施形態において説明した処理が実行されるが、トレースデータ連携処理部１２１は動作しない。
【０１４２】
＜第３の実施形態＞
本発明の第３の実施形態では、コントローラ部品とメカ部品のトレースデータを連携する処理を独立して実施する装置を備えたデバッグ解析システム３０の例を説明する。
【０１４３】
図１２は、本発明の第３の実施形態におけるデバッグ解析システム３０のツール環境構成の例を説明する機能ブロック図である。
【０１４４】
本実施例のデバッグ解析システム３０は、コントローラシミュレータ１１０、メカシミュレータ１２０、データ解析支援装置１３０及びトレースデータ連携処理装置１４０を有する。
【０１４５】
図１２のデバッグ解析システム３０のうち、既に説明した図１または図５に示された同一の符号を付された構成と同一の機能を有する部分については、説明を省略する。
【０１４６】
トレースデータ連携処理装置１４０は、コントローラシミュレータ１１０及びメカシミュレータ１２０からコントローラ部品トレースデータ１５０及びメカ部品トレースデータ１６０を受け取り、トレースデータを連携表示するために処理し、データ解析支援装置１３０へ出力する。
【０１４７】
なお、本実施形態のデバッグ解析システム３０のハードウェア構成は、第１の実施形態と同様であるため（図１５参照）、説明を省略する。第１の実施形態の場合と同様、第２の実施形態のコントローラシミュレータ１１０、メカシミュレータ１２０、データ解析支援装置１３０及びトレースデータ連携処理装置１４０が実行する処理は、実際には、主記憶装置３又は補助記憶装置６０に格納されたプログラムに従って中央演算処理装置２が実行する。
【０１４８】
本実施形態のデバッグ解析システム３０におけるシミュレート実行のフローチャートは、図２に示したものと同一であるため、説明を省略する。
【０１４９】
本実施形態のデバッグ解析システム３０において使用されるユーザインタフェースは、図３又は図８に示したものと同一であるため、説明を省略する。ただし、本実施形態では、トレースデータ出力方向設定部５１２において「コントローラ部品／メカ部品⇒挙動連携処理装置」が選択される。
【０１５０】
図１３は、本発明の第３の実施形態において構成されるデバッグ解析システム３０の詳細を例示する説明図である。
【０１５１】
図１３のシステム構成のうち、既に説明した図５または図１０に示された同一の符号を付された構成と、同一の機能を有する部分については説明を省略する。
【０１５２】
トレースデータ連携処理装置１４０は、コントローラ部品／メカ部品トレースデータ入力制御部１４１、コントローラ部品／メカ部品トレースデータ同期制御部１４２及びコントローラ部品／メカ部品トレースデータ出力制御部１４３を有する。コントローラ部品／メカ部品トレースデータ入力制御部１４１は、コントローラ部品トレースデータ１５０及びメカ部品トレースデータ１６０を受け取る。コントローラ部品／メカ部品トレースデータ同期制御部１４２は、各部品のシミュレーション時刻情報を用いて、入力されたトレースデータの同期処理を行う。そして、コントローラ部品／メカ部品トレースデータ出力制御部１４３は、各部品のトレースデータを出力する。
【０１５３】
本実施例におけるデバッグ解析システム３０では、各シミュレータがコントローラ部品トレースデータ１５０及びメカ部品トレースデータ１６０を外部へ出力する。そのため、トレースデータとして出力されるデータ量が増大する場合などに備えて、トレースデータを保存するために十分な記憶領域を確保する必要がある。
【０１５４】
本実施形態におけるコントローラシミュレータ１１０及びメカシミュレータ１２０のデータ処理を説明するフローチャートは、それぞれ、既に説明した図６Ａ及び図１１Ｂに示されたフローチャートと同一であるため、説明を省略する。
【０１５５】
図１４は、本発明の第３の実施形態におけるトレースデータ連携処理装置１４０のデータ処理を示すフローチャートである。
【０１５６】
トレースデータ連携処理装置１４０は、ステップ８０００においてメカ部品のシミュレーション時刻を取得し、ステップ８１００においてそのシミュレーション時刻に対応するメカ部品のトレースデータを取得し、ステップ８２００においてコントローラ部品のシミュレーション時刻を取得する。ステップ８３００において、トレースデータ連携処理装置１４０は、各部品のシミュレーション時刻が一致しているか否かを判定する。この判定は、図６Ｂのステップ３３００と同様に実行される。シミュレーション時刻が一致している場合、トレースデータ連携処理装置１４０は、ステップ８４００においてコントローラ部品のトレースデータを取得した後、ステップ８５００においてコントローラ部品及びメカ部品のトレースデータを出力する。シミュレーション時刻が一致していない場合、ステップ８２００に処理が戻る。
【０１５７】
以上の第３の実施形態によれば、コントローラ部品トレースデータとメカ部品トレースデータの時間スケールの関係にかかわらず、同一の処理によってトレースデータの出力を同期させることができる。更に、本実施形態のトレースデータ連携処理装置１４０は、コントローラシミュレータ及びメカシミュレータの外部に独立して実装可能であるため、既存のメカシミュレータ及びコントローラシミュレータを改変することなく、容易に本発明のデバッグ解析システムを実現することができる。
【符号の説明】
【０１５８】
１０、２０、３０  デバッグ解析システム
１１０  コントローラシミュレータ
１１１  トレースデータ連携処理部
１２０  メカシミュレータ
１２１  トレースデータ連携処理部
１３０  データ解析支援装置
１４０  トレースデータ連携処理装置
１５０  コントローラ部品トレースデータ
１６０  メカ部品トレースデータ
【図１】
0005610146.tif 000002
【図２】
0005610146.tif 000003
【図３】
0005610146.tif 000004
【図４】
0005610146.tif 000005
【図５】
0005610146.tif 000006
【図６Ａ】
0005610146.tif 000007
【図６Ｂ】
0005610146.tif 000008
【図６Ｃ】
0005610146.tif 000009
【図７】
0005610146.tif 000010
【図８】
0005610146.tif 000011
【図９】
0005610146.tif 000012
【図１０】
0005610146.tif 000013
【図１１Ａ】
0005610146.tif 000014
【図１１Ｂ】
0005610146.tif 000015
【図１２】
0005610146.tif 000016
【図１３】
0005610146.tif 000017
【図１４】
0005610146.tif 000018
【図１５】
0005610146.tif 000019
【図１６】
0005610146.tif 000020