(57)【要約】【課題】モデルベース開発を行うにあたって、制御モデルや電子制御装置に実装された制御プログラムの異常の有無を簡易に検査することのできる制御プログラムの検査方法、及び該制御プログラムの検査に用いる検査装置及び検査プログラムを提供する。【解決手段】自動コード生成部１２は、モデル格納部１０に格納されている制御モデルから例えばＣ言語で記述された制御プログラムを自動生成する。この生成された制御プログラムは電子制御装置（ＥＣＵ）２１に実装される。同期部２６は、対応情報作成部１６により作成されて対応情報格納部１８に格納されている対応情報に基づき、制御モデルのシミュレーションの実行範囲と電子制御装置２１に実装されている制御プログラムの実行範囲とのそれぞれ対応する実行範囲にこれらを関連付けする。それら関連付けされた実行範囲の実行結果は、比較部２７によって逐次比較される。【選択図】        図２
2005202925.tif 000002
【特許請求の範囲】
【請求項１】
制御仕様が記述された制御モデルから作成されるとともに電子制御装置に実装された制御プログラムを検査する制御プログラムの検査方法において、
前記制御モデルのシミュレーションを実行するシミュレーション手段の実行範囲と前記実装された制御プログラムの実行をモニタするプログラム実行管理手段の実行範囲とを関連付けする同期手段を用い、それら関連付けされた実行範囲の実行結果に基づいて前記制御モデル及び前記実装された制御プログラムの少なくとも一方の異常の有無を検査する
ことを特徴とする制御プログラムの検査方法。
【請求項２】
前記同期手段による実行範囲の関連付けが、前記制御プログラムの作成に際して取得される前記制御モデルと該制御モデルから作成される制御プログラムとの対応関係を表す対応情報に基づいて行われる
請求項１に記載の制御プログラムの検査方法。
【請求項３】
前記対応情報は、前記制御モデルと前記実装された制御プログラムとの互いに対応する位置の関係を表す情報である実行位置対応情報を含み、
前記同期手段による実行範囲の関連付けは、前記制御モデル及び前記実装された制御プログラムのいずれか一方に対して検査開始箇所及び検査終了箇所が設定されることに基づき、他方に対しても前記実行位置対応情報に基づきその対応する検査開始箇所及び検査終了箇所が設定されることによって行われる
請求項２に記載の制御プログラムの検査方法。
【請求項４】
前記対応情報は、前記制御モデルと前記実装された制御プログラムとの互いに対応する位置の関係を表す情報である実行位置対応情報を含み、
前記同期手段による実行範囲の関連付けは、前記制御モデル及び前記実装された制御プログラムのいずれか一方に対して検査開始箇所及び検査終了箇所、並びにそれら制御モデルのシミュレーションあるいは制御プログラムの実行にかかる処理の中間監視ポイントである１乃至複数の中間監視箇所が設定されることに基づき、他方に対しても前記実行位置対応情報に基づきその対応する検査開始箇所及び検査終了箇所、並びに中間監視箇所が設定されることによって行われる
請求項２に記載の制御プログラムの検査方法。
【請求項５】
前記検査開始箇所及び前記検査終了箇所が、それぞれ前記制御モデルを構成する各機能ブロック毎に設定可能とされる
請求項３または４に記載の制御プログラムの検査方法。
【請求項６】
前記制御モデル及び前記実装された制御プログラムにそれぞれ設定される前記検査開始箇所及び前記検査終了箇所が、前記制御モデルのシミュレーションの実行及び前記制御プログラムの実行のそれぞれの停止箇所として設定可能とされる
請求項３〜５のいずれか一項に記載の制御プログラムの検査方法。
【請求項７】
請求項３〜６のいずれか一項に記載の制御プログラムの検査方法において、
前記制御モデル及び前記実装された制御プログラムのそれぞれに設定された各検査開始箇所において入力される変数値、及び同各検査開始箇所において保持されている前記制御モデルのシミュレーションによって演算される変数値、及び前記制御プログラムの実行によって演算される変数値の少なくとも一つが変更可能とされる
ことを特徴とする制御プログラムの検査方法。
【請求項８】
請求項３〜６のいずれか一項に記載の制御プログラムの検査方法において、
前記制御モデルのシミュレーションの実行及び前記制御プログラムの実行がそれぞれ前記設定された検査開始箇所に到達する都度、前記対応情報に基づき該検査開始箇所において入力される変数値、及び同検査開始箇所において保持されている前記制御モデルのシミュレーションによって演算される変数値、及び前記制御プログラムの実行によって演算される変数値の少なくとも一つを前記同期手段を通じて変更して双方の実行条件を揃える
ことを特徴とする制御プログラムの検査方法。
【請求項９】
請求項３〜８のいずれか一項に記載の制御プログラムの検査方法において、
前記検査終了箇所において保持されている前記制御モデルのシミュレーションによって演算される変数値と前記検査終了箇所において保持されている前記制御プログラムの実行によって演算される変数値とがそれぞれ出力可能とされる
ことを特徴とする制御プログラムの検査方法。
【請求項１０】
請求項３〜８のいずれか一項に記載の制御プログラムの検査方法において、
前記制御モデルのシミュレーションの実行及び前記制御プログラムの実行がそれぞれ前記設定された検査終了箇所に到達する都度、前記検査終了箇所において保持されている前記制御モデルのシミュレーションによって演算される変数値と前記検査終了箇所において保持されている前記制御プログラムの実行によって演算される変数値とが前記同期手段を通じてそれぞれ出力される
ことを特徴とする制御プログラムの検査方法。
【請求項１１】
前記対応情報は、前記制御モデルと前記実装された制御プログラムとの互いに対応する位置の関係を表す情報である実行位置対応情報を含み、
前記同期手段による実行範囲の関連付けは、前記制御モデル及び前記実装された制御プログラムのいずれか一方に対してそれら制御モデルのシミュレーションあるいは制御プログラムの実行にかかる処理の中間監視ポイントである１乃至複数の中間監視箇所が設定されることに基づき、他方に対しても前記実行位置対応情報に基づきその対応する１乃至複数の中間監視箇所が設定されることによって行われる
請求項２に記載の制御プログラムの検査方法。
【請求項１２】
請求項４または１１に記載の制御プログラムの検査方法において、
前記１乃至複数の中間監視箇所において保持されている前記制御モデルのシミュレーションによって演算される変数値と前記１乃至複数の中間監視箇所において保持されている前記制御プログラムの実行によって演算される変数値とがそれぞれ出力可能とされる
ことを特徴とする制御プログラムの検査方法。
【請求項１３】
請求項４または１１に記載の制御プログラムの検査方法において、
前記制御モデルのシミュレーションの実行及び前記制御プログラムの実行がそれぞれ前記設定された１乃至複数の中間監視箇所に到達する都度、前記１乃至複数の中間監視箇所において保持されている前記制御モデルのシミュレーションによって演算される変数値と前記１乃至複数の中間監視箇所において保持されている前記制御プログラムの実行によって演算される変数値とが前記同期手段を通じてそれぞれ出力される
ことを特徴とする制御プログラムの検査方法。
【請求項１４】
請求項３〜１０のいずれか一項に記載の制御プログラムの検査方法において、
前記異常の有無の検査が、前記同期手段により関連付けされた実行範囲の実行結果を比較する比較手段によって行われる
ことを特徴とする制御プログラムの検査方法。
【請求項１５】
前記対応情報は、前記制御モデルの処理にかかる変数値と前記実装された制御プログラムの処理にかかる変数値との対応関係を表す変数対応情報を含み、
前記比較手段による比較が、前記制御モデル及び前記実装された制御プログラムのそれぞれに設定された各検査終了箇所において保持されている前記制御モデルのシミュレーションによって演算される変数値と前記制御プログラムの実行によって演算される変数値との前記変数対応情報に基づく比較として行われる
請求項１４に記載の制御プログラムの検査方法。
【請求項１６】
請求項４または請求項１１〜１３のいずれか一項に記載の制御プログラムの検査方法において、
前記異常の有無の検査が、前記同期手段により関連付けされた実行範囲の実行結果を比較する比較手段によって行われる
ことを特徴とする制御プログラムの検査方法。
【請求項１７】
前記対応情報は、前記制御モデルの処理にかかる変数値と前記実装された制御プログラムの処理にかかる変数値との対応関係を表す変数対応情報を含み、
前記比較手段による比較が、前記制御モデル及び前記実装された制御プログラムのそれぞれに設定された各中間監視箇所において保持されている前記制御モデルのシミュレーションによって演算される変数値と前記制御プログラムの実行によって演算される変数値との前記変数対応情報に基づく比較として行われる
請求項１６に記載の制御プログラムの検査方法。
【請求項１８】
前記制御モデルのシミュレーションによって演算される変数値と前記制御プログラムの実行によって演算される変数値との比較による異常の有無の検査が、前記制御モデルのシミュレーションによって演算される変数値と前記制御プログラムの実行によって演算される変数値との差が許容範囲内にないか否かに基づいて行われる
請求項１５または１７に記載の制御プログラムの検査方法。
【請求項１９】
請求項１４〜１８のいずれか一項に記載の制御プログラムの検査方法において、
前記比較手段により異常がある旨の判断がなされたとき、前記制御モデルのシミュレーションの実行位置と前記制御プログラムの実行位置とを前記検査の結果として出力する
ことを特徴とする制御プログラムの検査方法。
【請求項２０】
請求項１４〜１９のいずれか一項に記載の制御プログラムの検査方法において、
前記比較手段による異常の有無の検査の結果をデータの蓄積に用いられる記憶手段及びデータの可視表示に用いられる表示手段の少なくとも一方に出力する
ことを特徴とする制御プログラムの検査方法。
【請求項２１】
制御仕様が記述された制御モデルから作成されるとともに電子制御装置に実装された制御プログラムを検査する制御プログラムの検査装置において、
前記制御モデルのシミュレーションを実行するシミュレーション手段の実行範囲と前記実装された制御プログラムの実行をモニタするプログラム実行管理手段の実行範囲とを関連付けする同期手段を備え、該同期手段により関連付けされる実行範囲の実行結果に基づいて前記制御モデル及び前記実装された制御プログラムの少なくとも一方の異常の有無を検査する
ことを特徴とする制御プログラムの検査装置。
【請求項２２】
前記同期手段は、前記制御プログラムの作成に際して取得される前記制御モデルと該制御モデルから作成される制御プログラムとの対応関係を表す対応情報に基づいて前記実行範囲の関連付けを行う
請求項２１に記載の制御プログラムの検査装置。
【請求項２３】
前記対応情報は、前記制御モデルと前記実装された制御プログラムとの互いに対応する位置の関係を表す情報である実行位置対応情報を含み、
前記同期手段は、前記制御モデル及び前記実装された制御プログラムのいずれか一方に対して検査開始箇所及び検査終了箇所が設定されることに基づき、他方に対しても前記実行位置対応情報に基づきその対応する検査開始箇所及び検査終了箇所を設定することによって前記関連付けを行う
請求項２２に記載の制御プログラムの検査装置。
【請求項２４】
前記対応情報は、前記制御モデルと前記実装された制御プログラムとの互いに対応する位置の関係を表す情報である実行位置対応情報を含み、
前記同期手段は、前記制御モデル及び前記実装された制御プログラムのいずれか一方に対して検査開始箇所及び検査終了箇所、並びにそれら制御モデルのシミュレーションあるいは制御プログラムの実行にかかる処理の中間監視ポイントである１乃至複数の中間監視箇所が設定されることに基づき、他方に対しても前記実行位置対応情報に基づきその対応する検査開始箇所及び検査終了箇所、並びに中間監視箇所を設定することによって前記関連付けを行う
請求項２２に記載の制御プログラムの検査装置。
【請求項２５】
前記検査開始箇所及び前記検査終了箇所が、それぞれ前記制御モデルを構成する各機能ブロック毎に設定可能とされる
請求項２３または２４に記載の制御プログラムの検査装置。
【請求項２６】
前記制御モデル及び前記実装された制御プログラムにそれぞれ設定される前記検査開始箇所及び前記検査終了箇所が、前記制御モデルのシミュレーションの実行及び前記制御プログラムの実行のそれぞれの停止箇所として設定可能とされる
請求項２３〜２５のいずれか一項に記載の制御プログラムの検査装置。
【請求項２７】
請求項２３〜２６のいずれか一項に記載の制御プログラムの検査装置において、
前記制御モデル及び前記実装された制御プログラムのそれぞれに設定される各検査開始箇所において入力される変数値、及び同各検査開始箇所において、保持されている前記制御モデルのシミュレーションによって演算される変数値、及び前記制御プログラムの実行によって演算される変数値の少なくとも一つが変更可能とされる
ことを特徴とする制御プログラムの検査装置。
【請求項２８】
請求項２３〜２６のいずれか一項に記載の制御プログラムの検査装置において、
前記同期手段は、前記制御モデルのシミュレーションの実行及び前記制御プログラムの実行がそれぞれ前記設定された検査開始箇所に到達する度に、その都度、前記対応情報に基づき該検査開始箇所において入力される変数値、及び同検査開始箇所において保持されている前記制御モデルのシミュレーションによって演算される変数値、及び前記制御プログラムの実行によって演算される変数値の少なくとも一つの変更を指示して双方の実行条件を揃える
ことを特徴とする制御プログラムの検査装置。
【請求項２９】
請求項２３〜２８のいずれか一項に記載の制御プログラムの検査装置において、
前記検査終了箇所において保持されている前記制御モデルのシミュレーションによって演算される変数値と前記検査終了箇所において保持されている前記制御プログラムの実行によって演算される変数値とをそれぞれ出力可能とする手段をさらに備える
ことを特徴とする制御プログラムの検査装置。
【請求項３０】
請求項２３〜２８のいずれか一項に記載の制御プログラムの検査装置において、
前記同期手段は、前記制御モデルのシミュレーションの実行及び前記制御プログラムの実行がそれぞれ前記設定された前記検査終了箇所に到達する都度、前記検査終了箇所において保持されている前記制御モデルのシミュレーションによって演算される変数値と前記検査終了箇所において保持されている前記制御プログラムの実行によって演算される変数値とをそれぞれ出力するように構成されてなる
ことを特徴とする制御プログラムの検査装置。
【請求項３１】
前記対応情報は、前記制御モデルと前記実装された制御プログラムとの互いに対応する位置の関係を表す情報である実行位置対応情報を含み、
前記同期手段は、前記制御モデル及び前記実装された制御プログラムのいずれか一方に対してそれら制御モデルのシミュレーションあるいは制御プログラムの実行にかかる処理の中間監視ポイントである１乃至複数の中間監視箇所が設定されることに基づき、他方に対しても前記実行位置対応情報に基づきその対応する中間監視箇所を設定することによって前記関連付けを行う
請求項２２に記載の制御プログラムの検査装置。
【請求項３２】
請求項２４または３１に記載の制御プログラムの検査装置において、
前記１乃至複数の中間監視箇所において保持されている前記制御モデルのシミュレーションによって演算される変数値と前記１乃至複数の中間監視箇所において保持されている前記制御プログラムの実行によって演算される変数値とをそれぞれ出力可能とする手段をさらに備える
ことを特徴とする制御プログラムの検査装置。
【請求項３３】
請求項２４または３１に記載の制御プログラムの検査装置において、
前記同期手段は、前記制御モデルのシミュレーションの実行及び前記制御プログラムの実行がそれぞれ前記設定された１乃至複数の中間監視箇所に到達する都度、前記１乃至複数の中間監視箇所において保持されている前記制御モデルのシミュレーションによって演算される変数値と前記１乃至複数の中間監視箇所において保持されている前記制御プログラムの実行によって演算される変数値とをそれぞれ出力するように構成されてなる
ことを特徴とする制御プログラムの検査装置。
【請求項３４】
請求項２３〜３０のいずれか一項に記載の制御プログラムの検査装置において、
前記同期手段により関連付けされる実行範囲の実行結果を比較することで前記異常の有無の検査を行う比較手段をさらに備える
ことを特徴とする制御プログラムの検査装置。
【請求項３５】
前記対応情報は、前記制御モデルの処理にかかる変数値と前記実装された制御プログラムの処理にかかる変数値との対応関係を表す変数対応情報を含み、
前記比較手段による比較が、前記制御モデル及び前記実装された制御プログラムのそれぞれに設定された各検査終了箇所において保持されている前記制御モデルのシミュレーションによって演算される変数値と前記制御プログラムの実行によって演算される変数値との前記変数対応情報に基づく比較として行われる
請求項３４に記載の制御プログラムの検査装置。
【請求項３６】
請求項２４または請求項３１〜３３のいずれか一項に記載の制御プログラムの検査装置において、
前記同期手段により関連付けされる実行範囲の実行結果を比較することで前記異常の有無の検査を行う比較手段をさらに備える
ことを特徴とする制御プログラムの検査装置。
【請求項３７】
前記対応情報は、前記制御モデルの処理にかかる変数値と前記実装された制御プログラムの処理にかかる変数値との対応関係を表す変数対応情報を含み、
前記比較手段による比較が、前記制御モデル及び前記実装された制御プログラムのそれぞれに設定された各中間監視箇所において保持されている前記制御モデルのシミュレーションによって演算される変数値と前記制御プログラムの実行によって演算される変数値との前記変数対応情報に基づく比較として行われる
請求項３６に記載の制御プログラムの検査装置。
【請求項３８】
前記制御モデルのシミュレーションによって演算される変数値と前記制御プログラムの実行によって演算される変数値との比較による異常の有無の検査が、前記制御モデルのシミュレーションによって演算される変数値と前記制御プログラムの実行によって演算される変数値との差が許容範囲内にないか否かに基づいて行われる
請求項３５または３７に記載の制御プログラムの検査装置。
【請求項３９】
請求項３４〜３８のいずれか一項に記載の制御プログラムの検査装置において、
前記比較手段により異常がある旨の判断がなされたとき、前記制御モデルのシミュレーションの実行位置と前記制御プログラムの実行位置とを前記検査の結果として出力する手段をさらに備える
ことを特徴とする制御プログラムの検査装置。
【請求項４０】
請求項３４〜３９のいずれか一項に記載の制御プログラムの検査装置において、
前記比較手段による異常の有無の検査の結果を蓄積記憶する記憶手段及び同検査の結果を可視表示する表示手段の少なくとも一方をさらに備える
ことを特徴とする制御プログラムの検査装置。
【請求項４１】
制御仕様が記述された制御モデルから作成されるとともに電子制御装置に実装された制御プログラムを検査する検査プログラムであって、
コンピュータを通じて実行されて前記制御モデル及び前記制御プログラムの少なくとも一方の異常の有無を検査する手段として、
ａ．前記制御モデルのシミュレーションを実行するシミュレーション手段の実行範囲と前記実装された制御プログラムの実行をモニタするプログラム実行管理手段の実行範囲とを関連付けする手段、
ｂ．前記シミュレーション手段及び前記プログラム実行管理手段に対してそれぞれシミュレーションの実行及び制御プログラムのモニタを指示する手段、
ｃ．前記関連付けされる制御モデルのシミュレーションの実行範囲と前記制御プログラムの実行範囲との各実行結果とを比較することで前記異常の有無を検査する手段、
を含むことを特徴とする制御プログラムの検査プログラム。
【請求項４２】
前記関連付けする手段は、前記制御プログラムの作成に際して取得される前記制御モデルと該制御モデルから作成される制御プログラムとの対応関係を表す対応情報に基づいて前記関連付けを行い、前記異常の有無を検査する手段は、同対応情報に基づいて前記比較を行う
請求項４１に記載の制御プログラムの検査プログラム。
【請求項４３】
制御仕様が記述された制御モデルから作成されるとともに電子制御装置に実装された制御プログラムを検査する検査プログラムであって、
コンピュータを通じて実行されて前記制御モデル及び前記制御プログラムの少なくとも一方の異常の有無を検査する手段として、
ａ．前記制御モデルのシミュレーションを実行するシミュレーション手段の実行範囲と前記実装された制御プログラムの実行をモニタするプログラム実行管理手段の実行範囲とを関連付けする手段、
ｂ．前記シミュレーション手段及び前記プログラム実行管理手段に対してそれぞれシミュレーションの実行及び制御プログラムのモニタを指示する手段、
ｃ．前記関連付けされる制御モデルのシミュレーションの実行範囲と前記制御プログラムの実行範囲との各実行結果をそれぞれ出力する手段、
を含むことを特徴とする制御プログラムの検査プログラム。
【請求項４４】
前記関連付けする手段は、前記制御プログラムの作成に際して取得される前記制御モデルと該制御モデルから作成される制御プログラムとの対応関係を表す対応情報に基づいて前記関連付けを行い、前記各実行結果を出力する手段は、同対応情報に基づいて前記実行結果の出力を行う
請求項４３に記載の制御プログラムの検査プログラム。
【請求項４５】
請求項４２または４４に記載の制御プログラムの検査プログラムにおいて、
前記対応情報は、前記制御モデルと前記制御プログラムとの互いに対応する位置の関係を表す情報である実行位置対応情報を含み、
前記関連付けする手段は、前記制御モデル及び前記実装された制御プログラムのいずれか一方に対して検査開始箇所及び検査終了箇所が設定されることに基づき、他方に対しても前記実行位置対応情報に基づきその対応する検査開始箇所及び検査終了箇所を設定することによって前記関連付けを行うものであって、且つ、前記制御モデル及び前記制御プログラムの少なくとも一方の異常の有無の検査を行う手段として、
ｄ．前記制御モデルのシミュレーションの実行と前記制御プログラムの実行とのそれぞれについての前記設定された検査開始箇所及び検査終了箇所への到達を検出する手段、
をさらに含むことを特徴とする制御プログラムの検査プログラム。
【請求項４６】
前記対応情報は、前記制御モデルの処理にかかる変数値と前記実装された制御プログラムの処理にかかる変数値との対応関係を表す変数対応情報を含み、
前記制御モデル及び前記制御プログラムの少なくとも一方の異常の有無を検査する手段は、少なくとも前記制御モデル及び前記実装された制御プログラムのそれぞれに設定された各検査終了箇所において保持されている前記制御モデルのシミュレーションによって演算される変数値と前記制御プログラムの実行によって演算される変数値とを前記変数対応情報に基づき比較することによって前記異常の有無の検査を行う
請求項４５に記載の制御プログラムの検査プログラム。
【請求項４７】
請求項４２または４４に記載の制御プログラムの検査プログラムにおいて、
前記対応情報は、前記制御モデルと前記制御プログラムとの互いに対応する位置の関係を表す情報である実行位置対応情報を含み、
前記関連付けする手段は、前記制御モデル及び前記実装された制御プログラムのいずれか一方に対してそれら制御モデルのシミュレーションあるいは制御プログラムの実行にかかる処理の中間監視ポイントである１乃至複数の中間監視箇所が設定されることに基づき、他方に対しても前記実行位置対応情報に基づきその対応する１乃至複数の中間監視箇所を設定することによって前記関連付けを行うものであって、且つ、前記制御モデル及び前記制御プログラムの少なくとも一方の異常の有無の検査を行う手段として、
ｄ．前記制御モデルのシミュレーションの実行と前記制御プログラムの実行とのそれぞれについての前記設定された１乃至複数の中間監視箇所への到達を検出する手段、
をさらに含むことを特徴とする制御プログラムの検査プログラム。
【請求項４８】
前記対応情報は、前記制御モデルの処理にかかる変数値と前記実装された制御プログラムの処理にかかる変数値との対応関係を表す変数対応情報を含み、
前記制御モデル及び前記制御プログラムの少なくとも一方の異常の有無を検査する手段は、少なくとも前記制御モデル及び前記実装された制御プログラムのそれぞれに設定された各中間監視箇所において保持されている前記制御モデルのシミュレーションによって演算される変数値と前記制御プログラムの実行によって演算される変数値とを前記変数対応情報に基づき比較することによって前記異常の有無の検査を行う
請求項４７に記載の制御プログラムの検査プログラム。
【請求項４９】
制御要求仕様が要求仕様記述言語にて記述された制御モデルから作成される制御プログラムを検査する検査プログラムであって、
コンピュータを通じて実行されて前記制御モデル及び前記制御プログラムの少なくとも一方の異常の有無を検査する手段として、前記制御モデルのシミュレーションを実行するシミュレーション手段との間で、そのシミュレーションの実行範囲と同制御モデルから自動生成される制御プログラムの実行範囲とを関連付けする手段を備える
ことを特徴とする制御プログラムの検査プログラム。
【請求項５０】
制御要求仕様が要求仕様記述言語にて記述された制御モデルから作成されて電子制御装置に実装された制御プログラムを検査する検査プログラムであって、
コンピュータを通じて実行されて前記制御モデル及び前記制御プログラムの少なくとも一方の異常の有無の検査を行う手段として、前記電子制御装置とのデータ授受を通じて同電子制御装置に実装された制御プログラムの動作を管理するプログラム実行管理手段との間で、前記実装された制御プログラムを実行する電子制御装置の実行範囲と前記制御モデルのシミュレーション実行範囲とを関連付けする手段を備える
ことを特徴とする制御プログラムの検査プログラム。
【請求項５１】
前記関連付けする手段は、前記制御モデルから前記制御プログラムを作成する際に取得されるそれら制御モデルと制御プログラムとの対応関係を表す対応情報に基づいて前記関連付けを行う
請求項４９または５０に記載の制御プログラムの検査プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、制御モデルをもとに作成されるとともに電子制御装置に実装された制御プログラムの検査方法及び該制御プログラムの検査に用いられる検査装置及び検査プログラムに関する。
【背景技術】
【０００２】
例えば車載エンジン等を制御する制御プログラムの開発には通常、
（ア）設計（制御）仕様（制御モデル）に基づいて制御プログラムを作成（コーディング）する工程。
（イ）該作成した制御プログラムの異常の有無を検査、修正（デバッグ）する工程。
（ウ）該デバッグした制御プログラムを用いて実際の車両にてデバッグ、適合（実車チェック）する工程。
（エ）この実車チェックの結果に基づいて更に制御プログラムを修正する工程。
等々が含まれる。
【０００３】
また近年は、こうした制御プログラムの開発において、その要求仕様を記述する制御モデルからプログラム言語にて記述された制御プログラムを自動的に生成する工程を有するモデルベース開発も行われている。このモデルベース開発では、制御モデルをコンピュータ上でシミュレーションすることで、その制御モデルの動作等の妥当性が検証される。また、制御モデルの構築自体は、制御プログラムの作成よりも簡易に行うことができるため、こうしたモデルベース開発を採用することで、制御プログラム開発の効率化を図ることも可能となる。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、上記制御プログラムを自動生成または人間によってプログラミング（ハンドコーディング）する場合、制御プログラムと制御モデルをデバッグする方法として、例えばパーソナルコンピュータによるシミュレーション上での動作のみでなく、電子制御装置上でも確実に動作することを確認することが重要である。このため、上記自動生成もしくは人間によってプログラミング（ハンドコーディング）された制御プログラムを電子制御装置に実装した状態でもデバッグが行われる。そしてこの際、上記制御プログラムは、例えば既存のＲＴＯＳ（Ｒｅａｌ  Ｔｉｍｅ  Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）等に組み込まれて上記電子制御装置が有する巨大な制御プログラムの一部として実装されることも多い。そのため、制御モデル及び制御プログラムのいずれか一方のデバッグ作業で何らかの問題が発見されたときには、その問題の箇所と対応する箇所を他方において特定することが極めて困難となる。
【０００５】
この発明は、こうした実情に鑑みてなされたものであり、モデルベース開発を行うにあたって、制御モデルや電子制御装置に実装された制御プログラムの異常の有無を簡易に検査することのできる制御プログラムの検査方法、及び該制御プログラムの検査に用いる検査装置及び検査プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
こうした目的を達成すべく、請求項１に記載の制御プログラムの検査方法あるいは請求項２１に記載の制御プログラムの検査装置では、制御モデルのシミュレーションを実行するシミュレーション手段の実行範囲と前記実装された制御プログラムの実行をモニタするプログラム実行管理手段の実行範囲とを関連付けする同期手段を用い、それら関連付けされた実行範囲毎の実行結果に基づいて前記制御モデル及び前記実装された制御プログラムの少なくとも一方の異常の有無を検査するようにした。
【０００７】
ここで、上記プログラム実行管理手段は、同期手段と電子制御装置との間で行われるデータの授受、例えば上記電子制御装置に実装された制御プログラムの実行によって演算される変数値や同制御プログラムの実行位置等のデータの授受を通じてその動作を管理するものである。したがって、このプログラム実行管理手段は、例えば上記電子制御装置に対して制御プログラムの実行や停止等の指示を出したり、あるいは同電子制御装置による制御プログラムの実行をモニタ（監視）したりすることも可能である。このため、上記構成のように、このプログラム実行管理手段と上記同期手段とを用いて、電子制御装置に実装された制御プログラムの実行範囲と制御モデルのシミュレーションの実行範囲とをそれぞれ関連付けることで、それら実行範囲での実行結果に基づきこれら制御プログラムや制御モデルの異常の有無の検査を簡易に行うことができるようになる。
【０００８】
また、請求項２に記載の制御プログラムの検査方法あるいは請求項２２に記載の制御プログラムの検査装置では、前記同期手段による実行範囲の関連付けが、前記制御プログラムの作成に際して取得される前記制御モデルと該制御モデルから作成される制御プログラムとの対応関係を表す対応情報に基づいて行われるようにした。
【０００９】
制御モデルから制御プログラムを作成する際、それら制御モデルと制御プログラムとの対応関係を表す対応情報の取得が可能となる。この対応情報を用いることで、上記制御モデルのシミュレーションの実行結果と制御プログラムの実行結果とをより適切に関連付けることができるようになる。
【００１０】
また、請求項３に記載の制御プログラムの検査方法あるいは請求項２３に記載の制御プログラムの検査装置では、前記対応情報は、前記制御モデルと前記実装された制御プログラムとの互いに対応する位置の関係を表す情報である実行位置対応情報を含み、前記同期手段による実行範囲の関連付けは、前記制御モデル及び前記実装された制御プログラムのいずれか一方に対して検査開始箇所及び検査終了箇所が設定されることに基づき、他方に対しても前記実行位置対応情報に基づきその対応する検査開始箇所及び検査終了箇所が設定されることによって行われるようにした。
【００１１】
制御モデルから制御プログラムを作成する際、上記対応情報の一つとして、それら制御モデルと制御プログラムとの互いに対応する位置の関係を表す情報である実行位置対応情報の取得が可能となる。そして、その実行位置対応情報に基づき、制御モデルや制御プログラムの異常の有無の検査を行う区間、すなわち検査開始箇所及び検査終了箇所を、それら制御モデルと制御プログラムとにそれぞれ対応するかたちで設定することで、たとえ検査対象となる制御プログラムが電子制御装置の有する巨大な制御プログラムの一部として実装される場合であれ、その検査対象領域（検査区間）を容易に検出することができるようになる。これにより、上記検査対象となる制御プログラムの検査についてもこれをより容易に行うことができるようになる。また、上記方法あるいは装置によれば、例えばユーザ自身が外部から制御モデル及び電子制御装置に実装された制御プログラムのうちのいずれか一方を任意に選択し、その一方に検査区間を設定することで、他方にもその検査区間に対応する検査区間が自動的に設定されるため、従来困難とされていたそれら制御モデル及び制御プログラム間の対応箇所の特定も容易且つ的確になされるようになる。
【００１２】
また、請求項４に記載の制御プログラムの検査方法あるいは請求項２４に記載の制御プログラムの検査装置では、前記対応情報は、前記制御モデルと前記実装された制御プログラムとの互いに対応する位置の関係を表す情報である実行位置対応情報を含み、前記同期手段による実行範囲の関連付けは、前記制御モデル及び前記実装された制御プログラムのいずれか一方に対して検査開始箇所及び検査終了箇所、並びにそれら制御モデルのシミュレーションあるいは制御プログラムの実行にかかる処理の中間監視ポイントである１乃至複数の中間監視箇所が設定されることに基づき、他方に対しても前記実行位置対応情報に基づきその対応する検査開始箇所及び検査終了箇所、並びに中間監視箇所が設定されることによって行われるようにした。
【００１３】
この場合も、制御モデルから制御プログラムを作成する際、上記対応情報の一つとして、それら制御モデルと制御プログラムとの互いに対応する位置の関係を表す情報である実行位置対応情報の取得が可能となる。そしてここでは、その実行位置対応情報に基づき、上記検査開始箇所及び検査終了箇所に加えて、上記中間監視箇所を併せて設定可能としたことにより、制御プログラムの検査箇所の選定にかかる自由度も大きく向上されるようになる。すなわち、制御プログラムの検査を所望する任意の中間監視ポイントに対応して該中間監視箇所を設定することで、より木目の細かい検査が可能になるとともに、上記請求項３に記載の制御プログラムの検査方法あるいは請求項２３に記載の制御プログラムの検査装置に比べてその利便性もさらに向上されるようになる。
【００１４】
また、請求項５に記載の制御プログラムの検査方法あるいは請求項２５に記載の制御プログラムの検査装置では、特に前記検査開始箇所及び前記検査終了箇所についてこれを、それぞれ前記制御モデルを構成する各機能ブロック毎に設定可能とした。
【００１５】
このように、前記検査開始箇所及び検査終了箇所を前記制御モデルを構成する機能ブロック毎に設定可能とすることで、特に品質条件が厳しい機能のみの検査や、従来の機能ブロックに新たに追加した機能ブロックのみの検査を行うことができるようになる。なお、制御モデルの全体を検査したい場合には、前記検査開始箇所及び検査終了箇所を当該制御モデルの全体に設定するようにしてもよい。
【００１６】
また、請求項６に記載の制御プログラムの検査方法あるいは請求項２６に記載の制御プログラムの検査装置では、前記制御モデル及び前記実装された制御プログラムにそれぞれ設定される前記検査開始箇所及び前記検査終了箇所を、前記制御モデルのシミュレーションの実行及び前記制御プログラムの実行のそれぞれの停止箇所として設定可能とした。
【００１７】
このように、上記実行位置対応情報に基づき、制御モデルと電子制御装置に実装された制御プログラムとの互いに対応する位置に停止箇所（ブレークポイント）を設定することで、制御モデルのシミュレーションの実行及び制御プログラムの実行をその停止箇所で簡易に同期（関連付け）させることができるようになる。なお、この同期は、例えばシミュレーション実行中の制御モデル及び処理実行中の制御プログラムのうちの上記停止箇所に先に到達した一方が、他方がその停止箇所に到達するまで待機することによって実現される。
【００１８】
また、請求項７に記載の制御プログラムの検査方法あるいは請求項２７に記載の制御プログラムの検査装置では、前記制御モデル及び前記実装された制御プログラムのそれぞれに設定された各検査開始箇所において入力される変数値、及び同各検査開始箇所において保持されている前記制御モデルのシミュレーションによって演算される変数値、及び前記制御プログラムの実行によって演算される変数値の少なくとも一つを変更可能とした。
【００１９】
このように、それぞれの検査開始箇所において入力される変数値、及び同各検査開始箇所において保持されている前記制御モデルのシミュレーションによって演算される変数値、及び前記制御プログラムの実行によって演算される変数値の少なくとも一つを変更可能とすることで、制御モデルのシミュレーションの実行と制御プログラムの実行との双方についての当該検査の開始条件を揃えることができ、ひいては制御プログラムや制御モデルの異常の有無の検査をより適切に行うことができるようになる。
【００２０】
またこの際、請求項８に記載の制御プログラムの検査方法あるいは請求項２８に記載の制御プログラムの検査装置のように、前記制御モデルのシミュレーションの実行及び前記制御プログラムの実行がそれぞれ前記設定された検査開始箇所に到達する都度、前記対応情報に基づき該検査開始箇所において入力される変数値、及び同検査開始箇所において保持されている前記制御モデルのシミュレーションによって演算される変数値、及び前記制御プログラムの実行によって演算される変数値の少なくとも一つを前記同期手段を通じて変更して双方の実行条件を揃えるようにすることで、当該検査の開始条件を自動的に揃えることができ、ひいては制御プログラムや制御モデルの異常の有無の検査をより簡易に行うことができるようになる。また例えば、上記対応情報に基づき制御モデル及び電子制御装置に実装された制御プログラムのうちのいずれか一方の変数値を変更したり、入力データファイル等から取り込んだデータ（変数値）で双方の変数値を変更したりして、それら双方の変数値を合わせることも可能となる。
【００２１】
また、請求項９に記載の制御プログラムの検査方法あるいは請求項２９に記載の制御プログラムの検査装置では、前記検査終了箇所において保持されている前記制御モデルのシミュレーションによって演算される変数値と前記検査終了箇所において保持されている前記制御プログラムの実行によって演算される変数値とをそれぞれ出力可能とした。
【００２２】
このように、検査終了箇所において制御モデルのシミュレーションの実行と制御プログラムの実行とによってそれぞれ演算された変数値（実行結果）を出力可能とすることで、上記制御プログラムや制御モデルの異常の有無の検査をより簡易に行うことができるようになる。例えば、記憶装置にデータ（それぞれの変数値）を蓄積したり、表示装置にそれぞれの変数値を可視表示させたりすることで、ユーザ自身が双方の変数値を比較して制御プログラムや制御モデルの異常の有無の検査を行うことが可能となる。また、上記請求項６〜８のいずれか一項に記載の方法や請求項２６〜２８のいずれか一項に記載の装置と併用することで、上記検査開始箇所において制御モデルと制御プログラムとの双方の実行位置や変数値をより容易に揃えることができるようになり、これにより上記検査終了箇所において出力される双方の変数値の関連付けをより適切なものとすることが可能となる。
【００２３】
またこの際、請求項１０に記載の制御プログラムの検査方法あるいは請求項３０に記載の制御プログラムの検査装置のように、前記制御モデルのシミュレーションの実行及び前記制御プログラムの実行がそれぞれ前記設定された検査終了箇所に到達する都度、前記検査終了箇所において保持されている前記制御モデルのシミュレーションによって演算される変数値と前記検査終了箇所において保持されている前記制御プログラムの実行によって演算される変数値とを前記同期手段を通じてそれぞれ出力することで、上記検査終了箇所において制御モデルのシミュレーションの実行と制御プログラムの実行とによってそれぞれ演算された変数値（実行結果）を自動的に出力することができ、ひいては制御プログラムや制御モデルの異常の有無の検査をより効率的に行うことができるようになる。また、例えばユーザ自身が外部から制御モデル及び電子制御装置に実装された制御プログラムのうちのいずれか一方の変数（値）を任意に選択することで、上記対応情報に基づき、それに対応する他方の変数（値）を自動的に出力データファイル等に出力することも可能となる。
【００２４】
一方、上記請求項２に記載の制御プログラムの検査方法あるいは請求項２２に記載の制御プログラムの検査装置において、請求項１１に記載の制御プログラムの検査方法あるいは請求項３１に記載の制御プログラムの検査装置のように、前記対応情報は、前記制御モデルと前記実装された制御プログラムとの互いに対応する位置の関係を表す情報である実行位置対応情報を含み、前記同期手段による実行範囲の関連付けは、前記制御モデル及び前記実装された制御プログラムのいずれか一方に対してそれら制御モデルのシミュレーションあるいは制御プログラムの実行にかかる処理の中間監視ポイントである１乃至複数の中間監視箇所が設定されることに基づき、他方に対しても前記実行位置対応情報に基づきその対応する１乃至複数の中間監視箇所が設定されることによって行われるようにすることもできる。
【００２５】
この場合も上記請求項３または４に記載の制御プログラムの検査方法、あるいは請求項２３または２４に記載の制御プログラムの検査装置と同様、制御モデルから制御プログラムを作成する際、上記対応情報の一つとして、それら制御モデルと制御プログラムとの互いに対応する位置の関係を表す情報である実行位置対応情報の取得が可能となる。そして、その実行位置対応情報に基づき、制御モデルや制御プログラムの異常の有無の検査を行うポイント、すなわち上記１乃至複数の中間監視箇所を、それら制御モデルと制御プログラムとにそれぞれ対応するかたちで設定することで、たとえ検査対象となる制御プログラムが電子制御装置の有する巨大な制御プログラムの一部として実装される場合であれ、その検査対象ポイントを容易に検出することができるようになる。これにより、上記検査対象となる制御プログラムの検査についてもこれをより容易且つ簡便に行うことができるようになる。また、上記方法あるいは装置によっても、例えばユーザ自身が外部から制御モデル及び電子制御装置に実装された制御プログラムのうちのいずれか一方を任意に選択し、その一方に中間監視箇所を設定することで、他方にもその中間監視箇所に対応する中間監視箇所が自動的に設定されるため、従来困難とされていたそれら制御モデル及び制御プログラム間の対応箇所の特定も容易且つ的確になされるようになる。
【００２６】
また、先の請求項４〜１０に記載の制御プログラムの検査方法、あるいは請求項２４〜３０に記載の制御プログラムの検査装置も含めて、これら請求項１１に記載の制御プログラムの検査方法あるいは請求項３１に記載の制御プログラムの検査装置のように１乃至複数の中間監視箇所の設定が可能となる場合には、請求項１２に記載の制御プログラムの検査方法あるいは請求項３２に記載の制御プログラムの検査装置のように、前記１乃至複数の中間監視箇所において保持されている前記制御モデルのシミュレーションによって演算される変数値と前記１乃至複数の中間監視箇所において保持されている前記制御プログラムの実行によって演算される変数値とについてもこれらをそれぞれ出力可能とすることが望ましい。
【００２７】
このように、中間監視箇所において制御モデルのシミュレーションの実行と制御プログラムの実行とによってそれぞれ演算された変数値（実行結果）を出力可能とすることで、上記制御プログラムや制御モデルの異常の有無の検査をより簡易に行うことができるようになる。すなわちこの場合も、例えば記憶装置にデータ（それぞれの変数値）を蓄積したり、表示装置にそれぞれの変数値を可視表示させたりすることで、ユーザ自身が双方の変数値を比較して制御プログラムや制御モデルの異常の有無の検査を行うことが可能となる。なお、上記制御プログラムが電子制御装置に実装されている場合、前述したＲＴＯＳ（Ｒｅａｌ  Ｔｉｍｅ  Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）の特性上、制御プログラムの方が制御モデルよりも先に検査区間に到達して待機状態となるなど、該制御プログラムの実行が一旦停止されると、これに伴い演算処理も停止されて、初期化等の復帰処理が実行されてしまう懸念もある。この点、中間監視箇所において制御モデルのシミュレーションの実行と制御プログラムの実行とによってそれぞれ演算された変数値（実行結果）、特に制御プログラムの実行によって演算された変数値（実行結果）を、例えば記憶装置にその都度出力して蓄積することのできる同方法あるいは装置によれば、たとえ制御プログラムの方が制御モデルよりも先に検査区間、すなわち中間監視箇所に到達したとしても、該中間監視箇所において制御プログラムの実行を停止（待機）させる必要がなくなることから、こうした懸念も解消され、より円滑な検査の実行が可能となる。
【００２８】
また、同じく請求項４〜１１のいずれかに記載の制御プログラムの検査方法、あるいは請求項２４〜３１に記載の制御プログラムの検査装置において、請求項１３に記載の制御プログラムの検査方法、あるいは請求項３３に記載の制御プログラムの検査装置のように、前記制御モデルのシミュレーションの実行及び前記制御プログラムの実行がそれぞれ前記設定された１乃至複数の中間監視箇所に到達する都度、前記１乃至複数の中間監視箇所において保持されている前記制御モデルのシミュレーションによって演算される変数値と前記１乃至複数の中間監視箇所において保持されている前記制御プログラムの実行によって演算される変数値とを前記同期手段を通じてそれぞれ出力するようにすれば、上記中間監視箇所において制御モデルのシミュレーションの実行と制御プログラムの実行とによってそれぞれ演算された変数値（実行結果）を自動的に出力することができ、ひいては制御プログラムや制御モデルの異常の有無の検査をより効率的に行うことができるようになる。また、例えばユーザ自身が外部から制御モデル及び電子制御装置に実装された制御プログラムのうちのいずれか一方の変数（値）を任意に選択することで、上記対応情報に基づき、それに対応する他方の変数（値）を自動的に出力データファイル等に出力することも可能となる。そしてこの場合も、たとえ制御プログラムの方が制御モデルよりも先に中間監視箇所に到達したとしても、該中間監視箇所において制御プログラムの実行を停止（待機）させる必要はない。
【００２９】
また、上記請求項３〜１０のいずれかに記載の制御プログラムの検査方法、あるいは請求項２３〜３０に記載の制御プログラムの検査装置において、請求項１４に記載の制御プログラムの検査方法、あるいは請求項３４に記載の制御プログラムの検査装置では、前記異常の有無の検査が、前記同期手段により関連付けされた前記各実行範囲毎の実行結果を比較する比較手段によって行われるようにした。
【００３０】
上記比較手段を用いて制御モデルのシミュレーションの上記実行結果と電子制御装置に実装された制御プログラムの上記実行結果とを比較することで、それら実行結果の適否が自動的に判断されるようになる。したがって、ユーザ自身がそれら実行結果の比較を行う必要がなくなり、ひいては制御プログラムや制御モデルの異常の有無の検査をより効率的に行うことができるようになる。
【００３１】
また、これら請求項１４に記載の制御プログラムの検査方法あるいは請求項３４に記載の制御プログラムの検査装置において、請求項１５に記載の制御プログラムの検査方法あるいは請求項３５に記載の制御プログラムの検査装置では、前記対応情報は、前記制御モデルの処理にかかる変数値と前記実装された制御プログラムの処理にかかる変数値との対応関係を表す変数対応情報を含み、前記比較手段による比較が、前記制御モデル及び前記実装された制御プログラムのそれぞれに設定された各検査終了箇所において保持されている前記制御モデルのシミュレーションによって演算される変数値と前記制御プログラムの実行によって演算される変数値との前記変数対応情報に基づく比較として行われるようにした。
【００３２】
制御モデルはコンピュータ上でのシミュレーションであるため変数値は理論値となるが、電子制御装置に実装された制御プログラムは、複数の処理が重なることや、制御プログラムと組み込みあわせるＯＳ（ＲＴＯＳ）の処理機能上の問題により、制御モデルの対応する処理によって演算される変数値と異なるものとなることがある。この点、上記方法あるいは装置によれば、それぞれの検査終了箇所において保持されている制御モデルのシミュレーションによって演算される変数値と制御プログラムによって演算される変数値とを、制御モデルから制御プログラムを作成する際に取得される変数対応情報に基づき上記比較手段に比較させることによって、そのような変数値の不一致にかかる異常を的確に検出することができるようになる。
【００３３】
一方、上記請求項４〜１３のいずれかに記載の制御プログラムの検査方法、あるいは請求項２４〜３３に記載の制御プログラムの検査装置、すなわち実行位置対応情報に基づく前記同期手段による実行範囲の関連付けが１乃至複数の中間監視箇所を含めて行われるものにおいても、請求項１６に記載の制御プログラムの検査方法、あるいは請求項３６に記載の制御プログラムの検査装置では、前記異常の有無の検査が、前記同期手段により関連付けされた前記各実行範囲毎の実行結果を比較する比較手段によって行われるようにしている。
【００３４】
すなわちこの場合も、上記比較手段を用いて制御モデルのシミュレーションの上記実行結果と電子制御装置に実装された制御プログラムの上記実行結果とを比較することで、それら実行結果の適否が自動的に判断されるようになる。したがって、ユーザ自身がそれら実行結果の比較を行う必要がなくなり、ひいては制御プログラムや制御モデルの異常の有無の検査をより効率的に行うことができるようになる。
【００３５】
また、これら請求項１６に記載の制御プログラムの検査方法あるいは請求項３６に記載の制御プログラムの検査装置において、請求項１７に記載の制御プログラムの検査方法あるいは請求項３７に記載の制御プログラムの検査装置では、前記対応情報は、前記制御モデルの処理にかかる変数値と前記実装された制御プログラムの処理にかかる変数値との対応関係を表す変数対応情報を含み、前記比較手段による比較が、前記制御モデル及び前記実装された制御プログラムのそれぞれに設定された各中間監視箇所において保持されている前記制御モデルのシミュレーションによって演算される変数値と前記制御プログラムの実行によって演算される変数値との前記変数対応情報に基づく比較として行われるようにした。
【００３６】
上述のように、制御モデルはコンピュータ上でのシミュレーションであるため変数値は理論値となるが、電子制御装置に実装された制御プログラムは、複数の処理が重なることや、制御プログラムと組み込みあわせるＯＳ（ＲＴＯＳ）の処理機能上の問題により、制御モデルの対応する処理によって演算される変数値と異なるものとなることがある。この点、上記方法あるいは装置によれば、１乃至複数の中間監視箇所において保持されている制御モデルのシミュレーションによって演算される変数値と制御プログラムによって演算される変数値とを、制御モデルから制御プログラムを作成する際に取得される変数対応情報に基づき上記比較手段に比較させることによって、そのような変数値の不一致にかかる異常を的確に検出することができるようになる。
【００３７】
なお、上記請求項１５または１７に記載の制御プログラムの検査方法、あるいは請求項３５または３７に記載の制御プログラムの検査装置のようなこうした変数値の比較による異常の有無の検査は、請求項１８に記載の制御プログラムの検査方法あるいは請求項３８に記載の制御プログラムの検査装置のように、前記制御モデルのシミュレーションによって演算される変数値と前記制御プログラムの実行によって演算される変数値との差が許容範囲内にないか否かに基づいて行うようにしてもよい。
【００３８】
すなわち、制御モデルの実行にかかるシミュレーション手段の演算精度と制御プログラムの実行にかかる電子制御装置の演算精度とが双方で異なること等に起因して、演算された変数値がわずかながら一致しない場合がある。このような場合、制御モデル及び制御プログラムは共に正常であり、変数値が不一致でも正常と判定されることが望ましい。この点、上記方法あるいは装置のように、双方の変数値の差が許容範囲内にないか否かに基いて検査を行うこととすれば、制御プログラムや制御モデルの異常の有無の検査をより適切に行うことができるようになる。
【００３９】
また、上記請求項１４〜１８のいずれかに記載の制御プログラムの検査方法、あるいは請求項３４〜３８に記載の制御プログラムの検査装置において、請求項１９に記載の制御プログラムの検査方法あるいは請求項３９に記載の制御プログラムの検査装置では、前記比較手段により異常がある旨の判断がなされたとき、前記制御モデルのシミュレーションの実行位置と前記制御プログラムの実行位置とを前記検査の結果として出力するようにした。
【００４０】
こうした方法あるいは装置によれば、制御プログラムや制御モデルにおいて異常が検出された箇所を、ユーザ自身が容易に把握することができるようになる。
そして、上記請求項１４〜１９のいずれかに記載の制御プログラムの検査方法、あるいは請求項３４〜３９に記載の制御プログラムの検査装置において、請求項２０に記載の制御プログラムの検査方法あるいは請求項４０に記載の制御プログラムの検査装置では、前記比較手段による異常の有無の検査の結果をデータの蓄積に用いられる記憶手段及びデータの可視表示に用いられる表示手段の少なくとも一方に出力するようにした。
【００４１】
このように、上記検査の結果を記憶手段に蓄積することとすれば、それら検査結果（データ）の管理が容易となり、ひいてはデータ管理の効率化が図られるようになる。すなわち、例えばそれら蓄積されたデータに対してグラフ化等の処理を施すことで、その全体的な傾向を把握することも容易となり、制御モデルや制御プログラム開発の短縮化にも貢献できるようになる。また、上記検査の結果を表示手段に可視表示させることとすれば、当該検査の結果をユーザ自身が簡易に把握することができるようになる。
【００４２】
他方、請求項４１に記載の制御プログラムの検査プログラムでは、コンピュータを通じて実行されて制御モデル及び制御プログラムの少なくとも一方の異常の有無を検査する手段として、ａ．前記制御モデルのシミュレーションを実行するシミュレーション手段の実行範囲と前記実装された制御プログラムの実行をモニタするプログラム実行管理手段の実行範囲とを関連付けする手段、ｂ．前記シミュレーション手段及び前記プログラム実行管理手段に対してそれぞれシミュレーションの実行及び制御プログラムのモニタを指示する手段、ｃ．前記関連付けされる制御モデルのシミュレーションの実行範囲と前記制御プログラムの実行範囲との各実行結果とを比較することで前記異常の有無を検査する手段、を含むようにした。
【００４３】
このような検査プログラムによれば、制御モデルのシミュレーションの上記実行結果と電子制御装置に実装された制御プログラムの上記実行結果とをそれぞれ対応する実行範囲毎に関連付けてそれらを比較することができ、制御プログラムや制御モデルの異常の有無の検査を簡易に行うことができるようになる。
【００４４】
また、請求項４２に記載の制御プログラムの検査プログラムでは、前記関連付けする手段は、前記制御プログラムの作成に際して取得される前記制御モデルと該制御モデルから作成される制御プログラムとの対応関係を表す対応情報に基づいて前記関連付けを行い、前記異常の有無を検査する手段は、同対応情報に基づいて前記比較を行うようにした。
【００４５】
制御モデルから制御プログラムを作成する際、それら制御モデルと制御プログラムとの対応関係を表す対応情報の取得が可能となる。この対応情報を用いることで、上記制御モデルのシミュレーションの実行結果と制御プログラムの実行結果とをより適切に関連付けることができるようになる。
【００４６】
一方、請求項４３に記載の制御プログラムの検査プログラムでは、コンピュータを通じて実行されて制御モデル及び制御プログラムの少なくとも一方の異常の有無を検査する手段として、ａ．前記制御モデルのシミュレーションを実行するシミュレーション手段の実行範囲と前記実装された制御プログラムの実行をモニタするプログラム実行管理手段の実行範囲とを関連付けする手段、ｂ．前記シミュレーション手段及び前記プログラム実行管理手段に対してそれぞれシミュレーションの実行及び制御プログラムのモニタを指示する手段、ｃ．前記関連付けされる制御モデルのシミュレーションの実行範囲と前記制御プログラムの実行範囲との各実行結果とをそれぞれ出力する手段、を含むようにした。
【００４７】
このような検査プログラムによれば、制御モデルのシミュレーションの上記実行結果と電子制御装置に実装された制御プログラムの上記実行結果とをそれぞれ対応する実行範囲毎に関連付けてそれらを出力することができ、これによっても制御プログラムや制御モデルの異常の有無の検査を簡易に行うことができるようになる。すなわち、上記請求項４１に記載の検査プログラムのように、必ずしもプログラム上で「比較」を行わずとも、上記各実行結果をそれぞれ対応する実行範囲毎に関連付けてそれらを「出力」することで、同制御プログラムや制御モデルの異常の有無を検査することはできる。
【００４８】
また、この請求項４３に記載の制御プログラムの検査プログラムにおいて、請求項４４に記載の検査プログラムでは、前記関連付けする手段は、前記制御プログラムの作成に際して取得される前記制御モデルと該制御モデルから作成される制御プログラムとの対応関係を表す対応情報に基づいて前記関連付けを行い、前記各実行結果を出力する手段は、同対応情報に基づいて前記実行結果の出力を行うようにした。
【００４９】
上述のように、制御モデルから制御プログラムを作成する際、それら制御モデルと制御プログラムとの対応関係を表す対応情報の取得が可能となる。そしてこの場合も、この取得される対応情報を用いることで、上記制御モデルのシミュレーションの実行結果と制御プログラムの実行結果とをより適切に関連付けることができるようになる。
【００５０】
また、上記請求項４２または４４に記載の制御プログラムの検査プログラムにおいて、請求項４５に記載の検査プログラムでは、前記対応情報は、前記制御モデルと前記制御プログラムとの互いに対応する位置の関係を表す情報である実行位置対応情報を含み、前記関連付けする手段は、前記制御モデル及び前記実装された制御プログラムのいずれか一方に対して検査開始箇所及び検査終了箇所が設定されることに基づき、他方に対しても前記実行位置対応情報に基づきその対応する検査開始箇所及び検査終了箇所を設定することによって前記関連付けを行うものであって、且つ、前記制御モデル及び前記制御プログラムの少なくとも一方の異常の有無の検査を行う手段として、ｄ．前記制御モデルのシミュレーションの実行と前記制御プログラムの実行とのそれぞれについての前記設定された検査開始箇所及び検査終了箇所への到達を検出する手段、をさらに含むようにした。
【００５１】
上記検査プログラムによれば、制御モデルから制御プログラムを作成する際に取得される実行位置対応情報に基づき、制御モデルや制御プログラムの異常の有無の検査を行う区間、すなわち検査開始箇所及び検査終了箇所を、それら制御モデルと制御プログラムとにそれぞれ対応するかたちで設定することで、たとえ検査対象となる制御プログラムが電子制御装置の有する巨大な制御プログラムの一部として実装される場合であれ、その制御プログラムの検査をより容易に行うことができるようになる。また、上記検査プログラムによれば、例えばユーザ自身が外部から制御モデル及び電子制御装置に実装された制御プログラムのうちのいずれか一方を任意に選択し、その一方に検査区間を設定することで、他方にもその検査区間に対応する検査区間を自動的に設定することが可能となる。
【００５２】
また、この請求項４５に記載の制御プログラムの検査プログラムにおいて、請求項４６に記載の検査プログラムでは、前記対応情報は、前記制御モデルの処理にかかる変数値と前記実装された制御プログラムの処理にかかる変数値との対応関係を表す変数対応情報を含み、前記制御モデル及び前記制御プログラムの少なくとも一方の異常の有無を検査する手段は、少なくとも前記制御モデル及び前記実装された制御プログラムのそれぞれに設定された各検査終了箇所において保持されている前記制御モデルのシミュレーションによって演算される変数値と前記制御プログラムの実行によって演算される変数値とを前記変数対応情報に基づき比較することによって前記異常の有無の検査を行うものとした。
【００５３】
上述のように、制御モデルはコンピュータ上でのシミュレーションであるため変数値は理論値となるが、電子制御装置に実装された制御プログラムは、複数の処理が重なることや、制御プログラムと組み込みあわせるＯＳ（ＲＴＯＳ）の処理機能上の問題により、制御モデルの対応する処理によって演算される変数値と異なるものとなることがある。この点、上記検査プログラムのよれば、それぞれの検査終了箇所において保持されている制御モデルのシミュレーションによって演算される変数値と制御プログラムによって演算される変数値とを、制御モデルから制御プログラムを作成する際に取得される変数対応情報に基づき比較させることによって、そのような変数値の不一致にかかる異常を好適に検出することができるようになる。
【００５４】
一方、上記請求項４２または４４に記載の制御プログラムの検査プログラムにおいて、請求項４７に記載の検査プログラムでは、前記対応情報は、前記制御モデルと前記制御プログラムとの互いに対応する位置の関係を表す情報である実行位置対応情報を含み、前記関連付けする手段は、前記制御モデル及び前記実装された制御プログラムのいずれか一方に対してそれら制御モデルのシミュレーションあるいは制御プログラムの実行にかかる処理の中間監視ポイントである１乃至複数の中間監視箇所が設定されることに基づき、他方に対しても前記実行位置対応情報に基づきその対応する１乃至複数の中間監視箇所を設定することによって前記関連付けを行うものであって、且つ、前記制御モデル及び前記制御プログラムの少なくとも一方の異常の有無の検査を行う手段として、ｄ．前記制御モデルのシミュレーションの実行と前記制御プログラムの実行とのそれぞれについての前記設定された１乃至複数の中間監視箇所への到達を検出する手段、をさらに含むようにした。
【００５５】
上記検査プログラムによれば、制御モデルから制御プログラムを作成する際に取得される実行位置対応情報に基づき、制御モデルや制御プログラムの異常の有無の検査を行うポイント、すなわち中間監視箇所を、それら制御モデルと制御プログラムとにそれぞれ対応するかたちで設定することで、たとえ検査対象となる制御プログラムが電子制御装置の有する巨大な制御プログラムの一部として実装される場合であれ、その制御プログラムの検査をより容易に行うことができるようになる。また、上記検査プログラムによれば、例えばユーザ自身が外部から制御モデル及び電子制御装置に実装された制御プログラムのうちのいずれか一方を任意に選択し、その一方に中間監視箇所を設定することで、他方にもその中間監視箇所に対応する中間監視箇所を自動的に設定することが可能となる。
【００５６】
また、この請求項４７に記載の制御プログラムの検査プログラムにおいて、請求項４８に記載の検査プログラムでは、前記対応情報は、前記制御モデルの処理にかかる変数値と前記実装された制御プログラムの処理にかかる変数値との対応関係を表す変数対応情報を含み、前記制御モデル及び前記制御プログラムの少なくとも一方の異常の有無を検査する手段は、少なくとも前記制御モデル及び前記実装された制御プログラムのそれぞれに設定された各中間監視箇所において保持されている前記制御モデルのシミュレーションによって演算される変数値と前記制御プログラムの実行によって演算される変数値とを前記変数対応情報に基づき比較することによって前記異常の有無の検査を行うものとした。
【００５７】
これも上述のように、制御モデルはコンピュータ上でのシミュレーションであるため変数値は理論値となるが、電子制御装置に実装された制御プログラムは、複数の処理が重なることや、制御プログラムと組み込みあわせるＯＳ（ＲＴＯＳ）の処理機能上の問題により、制御モデルの対応する処理によって演算される変数値と異なるものとなることがある。この点、上記検査プログラムのよれば、それぞれの中間監視箇所において保持されている制御モデルのシミュレーションによって演算される変数値と制御プログラムによって演算される変数値とを、制御モデルから制御プログラムを作成する際に取得される変数対応情報に基づき比較させることによって、そのような変数値の不一致にかかる異常を好適に検出することができるようになる。
【００５８】
なお、こうした検査プログラムとしては、例えば請求項４９に記載のように、
（イ）コンピュータを通じて実行されて制御モデル及び制御プログラムの少なくとも一方の異常の有無を検査する手段として、前記制御モデルのシミュレーションを実行するシミュレーション手段との間で、そのシミュレーションの実行範囲と同制御モデルから作成される制御プログラムの実行範囲とを関連付けする手段を備えるもの。
あるいは請求項５０に記載のように、
（ロ）コンピュータを通じて実行されて制御モデル及び制御プログラムの少なくとも一方の異常の有無の検査を行う手段として、電子制御装置とのデータ授受を通じて同電子制御装置に実装された制御プログラムの動作を管理するプログラム実行管理手段との間で、前記実装された制御プログラムを実行する電子制御装置の実行範囲と前記制御モデルのシミュレーション実行範囲とを関連付けする手段を備えるもの。
とすることでも、必要十分な検査の簡易化を図ることはできる。
【００５９】
そして、これらいずれの場合であれ、請求項５１に記載のように、
（ハ）前記関連付けする手段は、前記制御モデルから前記制御プログラムを作成する際に取得されるそれら制御モデルと制御プログラムとの対応関係を表す対応情報に基づいて前記関連付けを行うもの。
とすることで、上記制御プログラムの実行範囲と上記制御モデルのシミュレーション実行範囲とをより適切に関連付けることができるようになる。
【発明を実施するための最良の形態】
【００６０】
（第１の実施の形態）
以下、この発明にかかる制御プログラムの検査方法及び検査装置及び検査プログラムについてその第１の実施の形態を示す。なお、この実施の形態では、電子制御装置（ＥＣＵ）に搭載（実装）されて車載エンジンの制御を行う制御プログラムの検査にこの発明を適用している。
【００６１】
図１は、この実施の形態にかかる制御プログラムの作成、並びに検査手順の概要を示すフローチャートである。
同図１に示されるように、ここではまず、ステップＳ１の処理として、制御仕様開発者が、車両に搭載する電子制御装置の性能や開発のコンセプト等に基づいて実現したい仕様（要求仕様）を定義し、適宜の要求仕様記述言語を用いてその要求仕様が記述された制御モデルを構築する。次に、こうして構築された制御モデルのシミュレーションを実行することで、同制御モデルが正当な機能と妥当な性能を有するものであるか否かを検証する。そして、この検証結果に基づき、適宜、制御モデルを修正する。
【００６２】
次に、ステップＳ２の処理として、上記制御モデルから例えばＣ言語にて記述された制御プログラムを自動生成する。
ステップＳ３では、上記制御モデルのシミュレーションを実行するとともに、制御プログラムを実行することで、互いの対応関係を維持しつつ制御モデルや制御プログラムの異常の有無の検査を行う。そして、制御プログラムに異常がある旨の判断がなされると、制御プログラムが修正される。またこの際、制御プログラムを例えばＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）等のメモリ（記憶装置）に焼き付けて（記憶させて）、これを電子制御装置に搭載（実装）した状態でもデバッグを行う。この際、同制御プログラムは、例えば既存のＲＴＯＳ（Ｒｅａｌ  Ｔｉｍｅ  Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）等に組込み実装される。また、制御プログラムを検証した結果、制御モデルが妥当でないと判断される場合には、上記ステップＳ１に戻り、制御モデルを修正するようにしてもよい。もしくは制御プログラムが妥当でないと判断される場合には、上記ステップＳ２に戻り、制御プログラムを修正するようにしてもよい。（図１の破線参照）。
【００６３】
こうして制御プログラムのデバッグが終了すると、ステップＳ４の処理として、同制御プログラムを実装した電子制御装置を車両に搭載して実際の車両でデバッグ、適合を行う。そして、このデバッグ、適合の結果に基づき制御プログラムに妥当でない箇所がある場合には、ステップＳ１あるいはステップＳ２に戻って制御モデルを修正し、上記ステップＳ１〜Ｓ４の処理を繰り返す。この一連の処理は、制御プログラムが妥当であると判断されるまで行われる。
【００６４】
以下、上記ステップＳ３での処理、すなわち電子制御装置に実装された制御プログラムのデバッグ処理について詳細に説明する。
まず、図２を参照して、制御プログラムの生成及びデバッグに用いるシステム（検査装置）の概略構成について説明する。なお、図２は同システムの概略構成を模式的に示すブロック図である。
【００６５】
図２に示すように、この検査システムにはまず、モデル格納部１０が設けられている。このモデル格納部１０には、先の図１のステップＳ１にて構築され検証のなされた制御モデルが格納されている。そして、この制御モデルに基づいて、自動コード生成部１２により、制御プログラムとして例えばＣ言語にて記述されたソースコードが自動生成され、この生成された制御プログラム（ソースコード）がプログラム格納部１４に格納される。そして、このプログラム格納部１４に格納されているソースコードが適宜にコンパイルされて生成された制御プログラムが既存のＲＴＯＳ及び前記制御プログラムとは別に作成された既存の制御プログラムと結合されて上記ＲＯＭ等に焼き付けられ、この実施の形態での検査対象として電子制御装置（ＥＣＵ）２１に実装されている。ちなみに、上記制御プログラムとは別に作成された既存の制御プログラムとは、例えば従来の手法（コードベース開発）により、仕様書をもとにハンドコーディングされた制御プログラムのことである。なお、新規に制御プログラムを起こす場合には、その全てを上記制御モデルとして構築しておき、制御プログラム（ソースコード）の全てをこの制御モデルから自動生成するようにしてもよい。また一方、対応情報作成部１６は、上記自動コード生成部１２による制御プログラム（ソースコード）の自動生成に際して、上記制御モデルとこの制御プログラムとの各実行位置や変数値等に関する対応関係を表す対応情報を作成する部分である。この作成された対応情報は、対応情報格納部１８に格納される。
【００６６】
図３〜図５に、上記モデル格納部１０に格納されている制御モデル、並びに該制御モデルから自動生成される制御プログラム、そしてそれらの対応関係を表すべく作成される対応情報についてその一例を示す。
【００６７】
まず図３は、上記モデル格納部１０に格納されている制御モデルを模式的に示したものである。なおここでは、制御モデルの一例として、車載エンジンの燃料噴射量の演算及び噴射タイミングの演算を行うモデルを示している。
【００６８】
同図３に示されるように、この制御モデルは、ブロックＢ１〜Ｂ７からなる機能要素を有して構成されている。このうち、ブロックＢ１は、図示しないエンジンのクランク角度が所定のクランク角と一致したときに、ブロックＢ２及びブロックＢ６にトリガを与えるブロックである。ブロックＢ２は、上記所定のクランク角をトリガとして基本噴射量を演算するブロックである。ブロックＢ３は、上記ブロックＢ２によって演算された基本噴射量をブロックＢ４に書き込むブロックである。ブロックＢ４は、基本噴射量を記憶するブロック（ストレージ）である。ブロックＢ５は、記憶されている基本噴射量を読み出すブロックである。ブロックＢ６は、上記所定のクランク角をトリガとして上記基本燃料噴射量を補正するための補正量を演算するブロックである。ブロックＢ７は、その補正量と上記読み出した基本噴射量とに基づき噴射タイミングを演算するブロックである。
【００６９】
なお、同図３中に示す矢印は、処理の順序を規定するとともに、各処理の施されたデータの流れを示すものである。例えば、ブロックＢ７の処理は、ブロックＢ５及びブロックＢ６の処理の後に行われるようにその処理順序が規定されている。
【００７０】
また、図４は、上記制御モデルから自動生成される制御プログラムの一例を示したものである。この制御プログラムにより、上記制御モデルにおける上記各ブロックの処理順序が規定されるようになる。
【００７１】
同図４に示されるように、この制御プログラムでは、先の図３に示した制御モデルが、ブロックＢ２、Ｂ３、Ｂ６、Ｂ５、Ｂ７の順で処理される。より詳しくは、まず、ブロックＢ１からトリガを受け取ったブロックＢ２が基本噴射量を計算する。そして、ブロックＢ３は、ブロックＢ２が計算した基本噴射量を入力し、それをブロックＢ４に書き込む。その後、ブロックＢ１からトリガを受け取ったブロックＢ６は、上記ブロックＢ２が計算した基本燃料噴射量を補正するための補正量を計算する。次いで、ブロックＢ５は、ブロックＢ４に記憶されている基本噴射量を読み出す。そして、ブロックＢ７は、ブロックＢ５及びＢ６から基本噴射量及びその補正量を入力し、それらに基づいて噴射タイミングを計算する。
【００７２】
すなわち、この制御プログラムによれば、基本噴射量が算出された後、その補正量が算出され、それらに基づいて噴射タイミングが計算される。
また、図５は、上記対応情報作成部１６によって作成される対応情報の一例を示したものである。
【００７３】
同図５に示されるように、この対応情報は、先にもふれた２種の対応情報を有している。
その１つは、制御モデルの位置（ブロック）と制御プログラムの実行ポイント（実行位置）との対応関係を表す実行位置対応情報である。この実行位置対応情報は、制御モデルのブロックＢ２、Ｂ３、Ｂ５〜Ｂ７と制御プログラムの有するラベルＬ１〜Ｌ５とを対応付けることで、制御プログラムの実行位置からそれに対応する制御モデルのブロックを、あるいは逆に制御モデルのブロックからそれに対応する制御プログラムの実行位置を検索（特定）することを可能としている。
【００７４】
他の１つは、制御モデルのブロック結線（ブロック間の結線が表す変数）やストレージ（ブロックＢ４等、記憶にかかるブロック）と、制御プログラムの変数との対応関係を表す変数対応情報である。この変数対応情報は、制御モデルのブロック結線／ストレージ（変数）と制御プログラムの変数とを対応付けることで、制御モデルのブロック結線／ストレージからそれに対応する制御プログラムの変数を、あるいは逆に制御プログラムの変数からそれに対応する制御モデルのブロック結線／ストレージを検索（特定）することを可能としている。
【００７５】
一方、図２に示すシステムにおいて、シミュレーション部（シミュレーション手段）２０は、上記モデル格納部１０に格納されている制御モデルのシミュレーションを実行する部分である。また、プログラム実行管理部（プログラム実行管理手段）２２は、上記電子制御装置（ＥＣＵ）２１と例えばバス接続されて、上記ＲＯＭ等に格納されている制御プログラムとの間での各種データの授受を通じてその動作を管理する部分である。
【００７６】
また、同じく図２に示すシステムにおいて、検査区間設定部２４は、上記シミュレーション部２０及びプログラム実行管理部２２のいずれか一方に対して検査区間の設定を指示する部分である。また、同期部（同期手段）２６は、この検査区間設定部２４を通じて検査区間の設定が指示された側の他方に対して、上記対応情報格納部１８に格納されている対応情報に基づきその対応する（関連する）検査区間の設定を指示する部分である。同期部２６のこのような機能によって、シミュレーション部２０を通じてシミュレーションされる制御モデルとプログラム実行管理部２２を通じてその動作が管理されつつ電子制御装置２１により実行される制御プログラムとの関連付けが行われるようになる。また、信号生成部２３は、エンジン制御において用いられる各種センサ信号を擬似的に生成して、これを上記電子制御装置２１に与える部分である。なお、該信号生成部２３では、上記各種センサ信号を擬似的に生成して電子制御装置２１に与えた後、その制御プログラムによる実行結果を取り込みつつ、次に電子制御装置２１に与えるべき擬似信号を生成するといった処理を繰り返し実行することとなる。また、この信号生成部２３は、例えばエンジンやこれが搭載される車両そのものであってもよい。
【００７７】
また一方、この図２に示すシステムは、上記シミュレーション部２０による制御モデルのシミュレーションの実行結果と上記プログラム実行管理部２２を介した電子制御装置２１による制御プログラムの実行結果とを逐次比較する比較部（比較手段）２７を備えている。この比較部２７による比較結果は、表示部（表示手段）２８によって可視表示されるとともに、結果格納部（記憶手段）２９に対して逐次格納（蓄積）される。なお、上記各要素は、シミュレーションプログラムや電子制御装置２１とのインターフェースプログラム、さらには同期部２６による同期化等の処理を行う検査プログラムが搭載された１乃至複数台のマイクロコンピュータ等によって構成されている。また、信号生成部２３及び比較部２７は、例えば電子制御装置２１のテストベンチ上に設けられる。
【００７８】
以下、図６〜図９を併せ参照して、上記電子制御装置２１に実装された制御プログラムに対し、上記構成を有するシステム（検査装置）を通じて実行される検査（デバッグ）手順について詳細に説明する。
【００７９】
このデバッグに際し、上記モデル格納部１０には、図３に例示した制御モデルが予め格納されており、また上記対応情報格納部１８には、図５に例示した対応情報が予め格納されている。そして、これら制御モデル及び対応情報に対応するかたちで、すなわち図４に例示した態様で電子制御装置２１のＲＯＭ等には制御プログラム、ＲＴＯＳ及び既存の制御プログラム等が予め実装されている。
【００８０】
そして、この検査（デバッグ）が開始されると、上記シミュレーション部２０は、モデル格納部１０から制御モデルを取り込み、その取り込んだ制御モデルのシミュレーションを実行する。一方、電子制御装置２１は、上記プログラム実行管理部２２からの指令に基づき、自身に実装された制御プログラムを実行する。この制御プログラムの実行に際しては、上記信号生成部２３によって生成された擬似的な各種センサ信号、例えば水温信号、ノック信号、吸気温信号、スロットル信号、カム角信号、クランク角信号、車速信号、等々の擬似信号が、上記電子制御装置２１に与えられる。またこの際、上記プログラム実行管理部２２は、上記制御プログラムによる演算結果を適宜取り込むなどして、同制御プログラムの実行にかかる挙動をモニタ（監視）する。
【００８１】
また、上記制御モデルのシミュレーションの実行及び上記制御プログラムの実行に先立って、それら制御モデル及び制御プログラムに対し、検査を行う区間（検査区間）が予め設定される。詳しくは、外部からの入力に基づき上記検査区間設定部２４が上記シミュレーション部２０及びプログラム実行管理部２２のいずれか一方に検査区間の設定を指示し、その指示を受けた上記シミュレーション部２０もしくはプログラム実行管理部２２が制御モデルもしくは電子制御装置２１に実装されている制御プログラムに検査区間を設定する。そしてこのとき、上記同期部２６は、上記シミュレーション部２０及びプログラム実行管理部２２のいずれから検査区間が設定されたかを検出し、上記実行位置対応情報（図５参照）に基づき他方に検査区間の設定を指示する。なお、この実施の形態においては、上記検査区間、すなわち検査開始箇所及び検査終了箇所をそれぞれ示す検査開始ポイント及び検査終了ポイントが停止箇所（ブレークポイント）として設定される。
【００８２】
図６に、この同期部２６による検査区間の設定にかかる処理をフローチャートとして示す。なお、この処理は、シミュレーション部２０に制御モデルが取り込まれたこと、及びプログラム実行管理部２２による制御プログラムのモニタ（監視）が可能となったことをトリガとして実行することがより望ましいが、所定周期で繰り返し実行するようにしてもよい。
【００８３】
図６に示すように、この一連の処理においては、まず、ステップＳ３０１及びＳ３０２において、シミュレーション部２０及びプログラム実行管理部２２のいずれから検査区間が設定されたかを検出する。すなわち、ステップＳ３０１において、シミュレーション部２０によって検査区間の設定がなされたか否かを判断し、このステップＳ３０１において検査区間の設定がなされていないと判断されると、次に、ステップＳ３０２において、プログラム実行管理部２２によって検査区間の設定がなされたか否かを判断する。これらの処理は、上記同期部２６がシミュレーション部２０やプログラム実行管理部２２にアクセスすることで行われる。
【００８４】
また、ステップＳ３０１において検査区間の設定がなされたと判断されると、ステップＳ３０３の処理に移行する。そしてこのステップＳ３０３において、上記同期部２６は、上記対応情報格納部１８に格納された実行位置対応情報（図５参照）に基づき制御モデル上に設定された検査区間に対応する区間を特定し、これを検査区間として電子制御装置２１に実装された制御プログラム上に設定するようにプログラム実行管理部２２に指示する。
【００８５】
また一方、ステップＳ３０２において検査区間の設定がなされたと判断されると、ステップＳ３０４の処理に移行する。そしてこのステップＳ３０４において、同期部２６は、同じく実行位置対応情報（図５参照）に基づき電子制御装置２１に実装されている制御プログラム上に設定された検査区間に対応する区間を特定し、これを検査区間として制御モデル上に設定するようにシミュレーション部２０に指示する。
【００８６】
他方、ステップＳ３０３、Ｓ３０４の処理が終了した場合や、ステップＳ３０２にて検査区間の設定がなされていないと判断された場合には、この一連の処理を終了する。
なお、上記検査区間（検査開始箇所及び検査終了箇所）は、例えば制御モデルの機能ブロック毎やラベルＬ１〜Ｌ５を用いて指定される制御プログラムの実行ポイント（実行位置）毎に設定可能とされる（図５参照）。
【００８７】
次に、図７及び図８を併せ参照して、上記制御モデルのシミュレーションの実行態様及び上記制御プログラムの実行態様について詳述する。
まず、図７を併せ参照して、シミュレーション部２０による上記制御モデルのシミュレーションの実行にかかる処理について詳述する。なお、図７は、同処理の処理手順を示すフローチャートである。
【００８８】
この一連の処理においては、まず、ステップＳ３１１で、シミュレーション部２０が、モデル格納部１０に格納されている制御モデルを取り込む。次いで、ステップＳ３１２において、制御モデル上の所定の箇所に検査区間、すなわち検査開始ポイント（検査開始位置）及び検査終了ポイント（検査終了位置）が設定される（図６参照）。
【００８９】
そして、続くステップＳ３１３において検査区間の設定が完了したと判断されると、同期部２６からの新たな実行指示（ステップＳ３１４）や、同期部２６からの異常通知（ステップＳ３１９）に備えて待機する。そして、ステップＳ３１４にて実行の指示があったと判断されると、当該シミュレーション部２０は、ステップＳ３１５において制御モデルのシミュレーションを実行する。なお、このシミュレーションは、上記信号生成部２３から電子制御装置２１に与えられる上記センサ信号等に相当する擬似的なデータをプログラム実行管理部２２及び同期部２６を介してシミュレーション部２０にも与え、同シミュレーション部２０に上記制御モデルを通じてそれらのデータを処理させるようにして行われる。
【００９０】
また、このシミュレーションの実行は、外部からの停止指示もしくはシミュレーションの完了が確認されるまで（ステップＳ３１６）、あるいは検査開始ポイントが検出されるまで（ステップＳ３１７）、あるいは検査終了ポイントが検出されるまで（ステップＳ３２１）行われる。
【００９１】
ここで、ステップＳ３１７もしくはＳ３２１において検査開始ポイントもしくは検査終了ポイントが検出されると、当該シミュレーションを停止させるとともに、ステップＳ３１８もしくはＳ３２２にて、例えばシミュレーション部２０が自ら備える表示器等を通じて外部に検査開始ポイントもしくは検査終了ポイントを検出した旨を通知する。
【００９２】
また、上記待機中（ステップＳ３１４及びＳ３１９）に、比較部２７により「変数値」や「実行位置」に異常がある旨の判断がなされると、同期部２６からの異常通知に従ってこの一連の処理を終了することとなる。この際、シミュレーション部２０は異常通知があった時の実行位置（停止位置）の情報を保持しており、この場合も、同シミュレーション部２０が備える表示器等を通じてその情報を外部に通知する。また一方、上記待機中に新たな実行指示があったときには、制御モデルのシミュレーションを再開してステップＳ３１５以降の処理を行う。
【００９３】
他方、ステップＳ３１６において、外部からの停止指示があった、もしくはシミュレーションが完了したと判断されると、ステップＳ３２０において例えばシミュレーション部２０が備える表示器等を通じて外部にシミュレーションが完了した旨を通知し、この一連の処理を終了することとなる。
【００９４】
次に、図８を併せ参照して、プログラム実行管理部２２を通じた上記電子制御装置２１に実装されている制御プログラムの実行にかかる処理について詳述する。なお、図８は、同処理の処理手順を示すフローチャートである。
【００９５】
この一連の処理においては、まず、ステップＳ３３１で、プログラム実行管理部２２が、電子制御装置２１に実装されている制御プログラムを取り込む。次いで、ステップＳ３３２において、制御プログラム上の所定の箇所に検査区間、すなわち検査開始ポイント及び検査終了ポイントが設定される（図６参照）。
【００９６】
そして、続くステップＳ３３３において検査区間の設定が完了したと判断されると、次に、同期部２６からの新たな実行指示（ステップＳ３３４）や、同期部２６からの異常通知（ステップＳ３３９）に備えて待機するようになる。そして、ステップＳ３３４にて実行の指示があったと判断されると、当該プログラム実行管理部２２は、制御プログラムを実行するように上記電子制御装置２１に指示する。そして同電子制御装置２１は、この指示に従って、自身に実装されている制御プログラムを実行する（ステップＳ３３５）。なお、この制御プログラムの実行も、上記信号生成部２３によって生成されたセンサ信号等に相当する擬似的データを上記電子制御装置２１に与えるようにして行われる。
【００９７】
またこの際、同プログラム実行管理部２２を通じて、上記電子制御装置２１による制御プログラムの実行の挙動がモニタ（監視）される。
この制御プログラムの実行は、外部からの停止指示もしくは制御プログラムの実行の完了が確認されるまで（ステップＳ３３６）、あるいは検査開始ポイントが検出されるまで（ステップＳ３３７）、あるいは検査終了ポイントが検出されるまで（ステップＳ３４１）行われる。
【００９８】
ここで、ステップＳ３３７もしくはＳ３４１において検査開始ポイントもしくは検査終了ポイントが検出されると、当該制御プログラムの実行を停止させるとともに、ステップＳ３３８もしくはＳ３４２にて、例えばプログラム実行管理部２２が自ら備える表示器等を通じて外部に検査開始ポイントもしくは検査終了ポイントを検出した旨を通知する。
【００９９】
また、上記待機中（ステップＳ３３４及びＳ３３９）に、比較部２７により「変数値」や「実行位置」に異常がある旨の判断がなされると、同期部２６からの異常通知に従ってこの一連の処理を終了することとなる。この際、プログラム実行管理部２２は異常通知のあった時の実行位置（停止位置）の情報を保持しており、この場合も、同プログラム実行管理部２２が備える表示器等を通じてその情報を外部に通知する。また一方、上記待機中に新たな実行指示があったときには、制御プログラムの実行を再開してステップＳ３３５以降の処理を行う。
【０１００】
他方、ステップＳ３３６において、外部からの停止指示があった、もしくは制御プログラムの実行が完了したと判断されると、ステップＳ３４０において例えばプログラム実行管理部２２が備える表示器等を通じて外部に制御プログラムの実行が完了した旨を通知し、この一連の処理を終了することとなる。
【０１０１】
また、これら図７及び図８に示した制御モデルのシミュレーションの実行及び制御プログラムの実行についてのそれぞれ同一の実行範囲での実行結果は、上記シミュレーション部２０及びプログラム実行管理部２２から上記比較部２７へ出力される。なお、これまでの説明からも明らかなように、これら制御モデルのシミュレーションの実行と制御プログラムの実行とは、上記同期部２６によってそれら各実行範囲が関連付けされている。
【０１０２】
比較部２７では、これら実行結果を入力し、それらを逐次比較することで、制御モデルや制御プログラムの異常の有無を検査する。また、同比較部２７は、その比較結果を上記表示部２８及び上記結果格納部２９へ併せて出力する。
【０１０３】
次に、図９を併せ参照して、上記同期部２６及び比較部２７によって行われる制御モデル及び制御プログラムの異常の有無の検査にかかる処理について説明する。なお、図９は、同処理の処理手順を示すフローチャートである。また、この処理は、制御モデル及び制御プログラムの双方に検査区間が設定されたことを前提として行われる。換言すれば、上記シミュレーション部２０及びプログラム実行管理部２２が、図７のステップＳ３１４及び図８のステップＳ３３４にて待機している時に行われる。
【０１０４】
この一連の処理においては、まず、ステップＳ３５１において、同期部２６が、制御モデルのシミュレーションを実行するように上記シミュレーション部２０に指示するとともに、電子制御装置２１に制御プログラムを実行させるように上記プログラム実行管理部２２に指示する。そして、それらの実行は、制御モデルのシミュレーションの実行と制御プログラムの実行との双方が共に検査開始ポイントに到達するまで行われる（ステップＳ３５２及びＳ３５３）。すなわち、それら制御モデルのシミュレーションの実行及び制御プログラムの実行のいずれか一方が先に検査開始ポイントに到達すると、その一方は、同期部２６にその実行位置（停止位置）を出力するとともに、他方が検査開始ポイントに到達するまで待機することとなる。
【０１０５】
そして、ステップＳ３５２において制御モデルと制御プログラムとが共に検査開始位置にあると判断されると、ステップＳ３５４以降の処理で、制御モデルや制御プログラムの異常の有無が検査されることとなる。
【０１０６】
すなわちまず、ステップＳ３５４において、同期部２６が、上記実行位置対応情報（図５参照）に基づき、上記制御モデル及び制御プログラムの位置（実行位置）を確認する。次いで、ステップＳ３５５において、比較部２７が、それら制御モデルの位置と制御プログラムの位置とが互いに対応する位置となっているか否かを判断することにより、上記制御モデルや制御プログラムの異常の有無の検査を行う。
【０１０７】
そして、ステップＳ３５５において双方の位置が対応していると判断されると、すなわち正常であると判断されると、次にステップＳ３５６において、同期部２６が、制御モデル及び制御プログラムに入力データ（変数の初期値）を与えるように上記シミュレーション部２０及びプログラム実行管理部２２のそれぞれに指示する。この際、制御モデルのシミュレーションの実行と制御プログラムの実行とを同一の条件で行うべく、上記変数対応情報（図５参照）に基づいて制御モデル及び制御プログラムへの入力データを揃えるようにする。なお、当該データの入力は、例えば制御モデルのブロック結線／ストレージの値（変数値）をそれに対応する制御プログラムの変数値に変更することで、あるいは逆に制御プログラムの変数値をそれに対応する制御モデルのブロック結線／ストレージの値に変更することで行われる。この際、いずれの変数値を変更するか（変更対象）は外部から指定可能となっている。また、制御モデルのブロック結線／ストレージの値と制御プログラムの変数値との双方を、予め用意した入力データファイル等から読み込んだ値に変更することも可能であり、検査開始ポイントに到達する度にその入力データファイル等から値を読み出し、上記変数対応情報（図５参照）に基づいて双方の値を変更する構成としてもよい。
【０１０８】
次に、ステップＳ３５７において、同期部２６は、制御モデルのシミュレーションを実行するように上記シミュレーション部２０に指示するとともに、電子制御装置２１に制御プログラムを実行させるように上記プログラム実行管理部２２に指示する。これにより、制御モデルのシミュレーションと制御プログラムとが略同時に実行されることとなる。これら制御モデルのシミュレーションの実行及び制御プログラムの実行は、それら双方が共に検査終了ポイントに到達するまで行われる（ステップＳ３５８）。
【０１０９】
そして、それら双方が共に検査終了ポイントで停止すると、次にステップＳ３５９で、同期部２６が、上記変数対応情報（図５参照）に基づいて上記制御モデル及び制御プログラムの変数を確認する。次いで、ステップＳ３６０において、比較部２７が、制御モデルの当該検査終了ポイントにおいて保持されているブロック結線／ストレージの値（変数値）と制御プログラムの当該検査終了ポイントにおいて保持されている変数値とが互いに対応するものであるか否かを判断することで、上記制御モデルや制御プログラムの異常の有無の検査を行う。なお、上記制御モデルのブロック結線／ストレージの値と制御プログラムの変数値とが互いに対応するものであるか否かは、これら２つの値の差が予め定めておいた許容範囲にあるか否かで判断するようにする。例えば、制御モデルのブロック結線／ストレージの値と制御プログラムの変数値とが互いに整数演算された値である場合には、両者の一致のみを許容範囲とする。また例えば、制御モデルのブロック結線／ストレージの値と制御プログラムの変数値とが互いに浮動小数点型の値である場合には、両者の差の絶対値が所定値以下であることを許容範囲とする。なお、この許容値は、上述のようにシステム定数として予め定めておくようにしてもよいし、例えば検査区間の設定時、すなわち図７のステップＳ３１２や図８のステップＳ３３２において可変設定できるようにしてもよい。
【０１１０】
またこの際、上記制御モデルの当該検査終了ポイントにおいて保持されているブロック結線／ストレージの値（変数値）や上記制御プログラムの当該検査終了ポイントにおいて保持されている変数値を、予め用意した出力データファイル等に出力するようにしてもよい。そしてこの場合、いずれの変数値を出力するか（出力対象）は外部から指定可能とする。例えば、ユーザ自身が外部からそれら制御モデル及び制御プログラムのうちのいずれか一方の変数（値）を任意に選択することで、上記変数対応情報に基づき、それに対応する他方の変数（値）を自動的に上記出力データファイル等に出力する構成としてもよい。
【０１１１】
そして、ステップＳ３６０において変数値が許容範囲にあると判断されると、すなわち正常であると判断されると、ステップＳ３５１に戻り、制御モデルのシミュレーションの実行と制御プログラムの実行とが再開されることとなる。
【０１１２】
これら一連の処理は、制御モデルと制御プログラムとが全て実行されるまで（ステップＳ３５３）、あるいは上記比較部２７により異常がある旨の判断がなされるまで（ステップＳ３５５及びＳ３６０）行われる。
【０１１３】
ここで、ステップＳ３５５において双方の位置が対応していないと判断されると、同期部２６は、上記シミュレーション部２０及びプログラム実行管理部２２に異常を通知し（図７及び図８のステップＳ３１９及びＳ３３９参照）、ステップＳ３６２において、表示部２８がその旨（「実行位置異常」）を可視表示する。また、ステップＳ３６０において変数値が許容範囲にないと判断されると、同期部２６は、上記シミュレーション部２０及びプログラム実行管理部２２に異常を通知し（図７及び図８のステップＳ３１９及びＳ３３９参照）、ステップＳ３６３において、表示部２８がその旨（「変数値異常」）を可視表示する。なお、上記ステップＳ３５５において比較部２７により異常がある旨の判断がなされたときは、その時点での制御モデルのシミュレーションの実行位置と制御プログラムの実行位置とを検査の結果として出力し、これを表示器等により可視表示する。また、上記ステップＳ３６０において比較部２７により異常がある旨の判断がなされたときは、その時点での制御モデルのシミュレーションの実行位置と制御プログラムの実行位置、並びに異常となった変数名と変数値とを検査の結果として出力し、これを表示器等により可視表示する。これにより、当該検査の結果をユーザ自身が簡易に把握することができるようになる。
【０１１４】
また、ステップＳ３５５及びＳ３６０における比較部２７による検査の結果は、上記結果格納部２９に格納されて蓄積される。そして、この蓄積された検査の結果（データ）は、例えばグラフ化等の処理が施されて、その全体的な傾向の把握等に供される。これにより、データ管理の効率化が図られるとともに、制御モデルや制御プログラムの開発の短縮化にも貢献できるようになる。
【０１１５】
他方、ステップＳ３５３において、制御モデルと制御プログラムとが全て実行されたと判断されると、ステップＳ３６１において、シミュレーション部２０やプログラム実行管理部２２が備える表示器等を通じてその旨（「全て実行完了」）を可視表示する。
【０１１６】
このような図９に示した処理を通じて、制御プログラムの処理順序に誤りがある場合や生成された制御プログラムの内容自体に誤りがある場合には、実行位置や変数値の違いとしてこれを検出することができるようになる。
【０１１７】
そして、以上説明した作業（処理）、すなわち先の図１に示したステップＳ３の処理にあたる電子制御装置に実装された制御プログラムのデバッグを行った結果、同制御プログラムが妥当であると判断されれば、次に、その制御プログラムを実装した電子制御装置を実際の車両に搭載することとなる。その後、ステップＳ４（図１）の処理、すなわち実際の車両でのデバッグ、適合（実車チェック）を行い、この時点で制御プログラムに異常がある旨判断されるときには、前述したように制御プログラムや制御モデルの修正を検討することになる。
【０１１８】
以上詳述したように、この実施の形態にかかる制御プログラムの検査方法及び検査装置及び検査プログラムによれば、以下に列記するような多くの優れた効果が得られるようになる。
【０１１９】
（１）同期部２６とプログラム実行管理部２２とを用いて、電子制御装置（ＥＣＵ）２１に実装されている制御プログラムの実行結果と制御モデルのシミュレーションの実行結果とをそれぞれ対応する実行範囲毎に関連付けるようにした。これにより、双方の関連付けを自動的に行うことが可能となり、これら制御プログラムや制御モデルの異常の有無の検査を簡易に行うことができるようになる。
【０１２０】
（２）対応情報作成部１６の作成する対応情報を用いることで、シミュレーション部２０による制御モデルのシミュレーションの実行位置と電子制御装置２１による制御プログラムの実行位置とを適切に対応付けることができる。
【０１２１】
（３）実行位置対応情報（図５参照）に基づき制御モデルと制御プログラムとにそれぞれ対応するかたちで検査区間を設定することで、たとえ検査対象となる制御プログラムが電子制御装置２１の有する巨大な制御プログラムの一部として実装される場合であれ、それら検査対象領域を容易に関連付けすることができるようになる。
【０１２２】
（４）検査開始ポイント及び検査終了ポイントを、制御モデルの機能ブロック毎やラベルＬ１〜Ｌ５を用いて指定される制御プログラムの実行ポイント（実行位置）毎に設定可能とした。これにより、制御モデルの指定する複数の処理について、自動コード生成部１２によって生成された制御プログラムに新たに実行順序が規定される場合であれ、制御モデルと制御プログラムとの関連付けを容易に行うことができるようになる。
【０１２３】
（５）同期部２６を用いて、制御モデルのシミュレーションの実行と制御プログラムの実行とがそれぞれ検査開始ポイントに到達する都度、変数対応情報（図５参照）に基づいて変数値を変更し、制御モデル及び制御プログラムへの入力データを揃えるようにした。これにより、制御モデルのシミュレーションと制御プログラムとの双方についての当該検査の開始条件を揃えることができる。また、この変数値の変更は自動的に行われるため、制御プログラムや制御モデルの異常の有無の検査をより簡易に行うことができるようにもなる。
【０１２４】
（６）同期部２６を用いて、制御モデルのシミュレーションの実行及び制御プログラムの実行がそれぞれ検査終了ポイントに到達する都度、検査終了ポイントにおいてそれぞれの変数値（実行結果）を出力するようにした。これにより、上記制御プログラムや制御モデルの異常の有無の検査をより簡易に行うことができるようになる。例えば、適宜の記憶装置にデータ（それぞれの変数値）を蓄積したり、表示装置にそれぞれの変数値を可視表示させたりすることで、ユーザ自身が双方の変数値を比較して制御プログラムや制御モデルの異常の有無の検査を行うことが可能となる。また、この変数値（実行結果）の出力は自動的に行われるため、制御プログラムや制御モデルの異常の有無の検査をより効率的に行うことができるようにもなる。
【０１２５】
（７）また、変数対応情報（図５参照）に基づき検査終了ポイントにおいて保持されている制御モデルのシミュレーションによって演算される変数値と制御プログラムの実行によって演算される変数値とを比較するようにした。これにより、双方の変数値の不一致にかかる異常を好適に検出することができるようになる。
【０１２６】
（８）またこの際、変数値の比較を、双方の変数値の差が許容範囲内にないか否かに基づいて行うようにした。これにより、制御モデルの実行にかかるシミュレーション手段の演算精度と制御プログラムの実行にかかる電子制御装置の演算精度とが双方で異なり、演算された変数値がわずかながら一致しない場合であれ、適切な検査を行うことができるようになる。すなわち、このような許容範囲を設定することで、双方の変数値の自動判定についてもこれをより適切に行うことができるようになる。
【０１２７】
（９）比較部２７による検査の結果を結果格納部２９に蓄積するようにした。これにより、検査結果（データ）の管理が容易となり、ひいてはデータ管理やプログラム開発の効率化が図られることとなる。
【０１２８】
（１０）比較部２７による検査の結果を表示部２８に可視表示させるようにした（図９のステップＳ３６２及びＳ３６３参照）。これにより、当該検査の結果をユーザ自身が簡易に把握することができるようになる。
【０１２９】
（第２の実施の形態）
次に、この発明にかかる制御プログラムの検査方法及び検査装置及び検査プログラムについてその第２の実施の形態を示す。なお、この実施の形態も、電子制御装置に実装されて車載エンジンの制御を行う制御プログラムの検査にこの発明を適用している。したがって、この実施の形態にかかる制御プログラムの検査方法も先の図１に示されるステップＳ１〜Ｓ４の処理のうちステップＳ３での処理に用いられ、同ステップＳ３における処理、すなわち電子制御装置に実装された制御プログラムのデバック処理に用いられるシステムの概略構成（図２参照）は先の第１の実施の形態に準じたものとなっている。
【０１３０】
すなわち、この実施の形態にあっても、図２に示されるシステム（検査装置）において、上記モデル格納部１０には、先の図３に例示した制御モデルが予め格納されており、また上記対応情報格納部１８には、先の図５に例示した対応情報が予め格納されている。そして、これら制御モデル及び対応情報に対応するかたちで、すなわち先の図４に例示した態様で、上記制御モデルから自動生成された制御プログラムがＲＴＯＳや既存の制御プログラム共々、電子制御装置２１に予め実装されている。
【０１３１】
そして、上記ステップＳ３の処理（図１参照）として上記実装された制御プログラムの検査（デバッグ）が開始されると、上記シミュレーション部２０は、モデル格納部１０から制御モデルを取り込み、その取り込んだ制御モデルのシミュレーションを実行する。一方、電子制御装置２１は、上記プログラム実行管理部２２からの指令に基づき、自身に実装された制御プログラムを実行する。この制御プログラムの実行に際しては、上記信号生成部２３によって生成された擬似的な各種センサ信号、例えば水温信号、ノック信号、吸気温信号、スロットル信号、カム角信号、クランク角信号、車速信号、等々の擬似信号が、上記電子制御装置２１に与えられる。またこの際、上記プログラム実行管理部２２は、上記制御プログラムによる演算結果を適宜取り込むなどして、同制御プログラムの実行にかかる挙動をモニタ（監視）する。
【０１３２】
また、上記制御モデルのシミュレーションの実行及び上記制御プログラムの実行に先立って、それら制御モデル及び制御プログラムに対し、検査を行う区間（検査区間）が予め設定される。詳しくは、先の第１の実施の形態にて図６を参照しつつ前述した通りであり、この実施の形態においても、上記検査区間、すなわち検査開始箇所及び検査終了箇所をそれぞれ示す検査開始ポイント及び検査終了ポイントが停止箇所（ブレークポイント）として設定される。
【０１３３】
ところで、こうした検査区間（検査開始箇所及び検査終了箇所）は、前述のように、例えば制御モデルの機能ブロック毎等、比較的広い範囲で設定されることが多い。このため、検査の自由度という面においては、なお改善の余地を残すものとなっている。すなわち、ユーザ側からすれば、例えば電子回路において所望とする任意の箇所にオシロスコープのプローブをあてるがの如く、上記制御モデルや制御プログラムの検査箇所の設定に関するより自由度の高いインターフェースの提供が望まれている。
【０１３４】
そこで、この実施の形態では、上記対応情報作成部１６にて作成される実行位置対応情報（図５参照）に基づき、上記検査開始箇所及び検査終了箇所に加えて、制御モデルのシミュレーションあるいは制御プログラムの実行にかかる処理の中間監視ポイントである１乃至複数の中間監視箇所を併せて設定可能としている。詳しくは、上記シミュレーション部２０及びプログラム実行管理部２２に上記検査区間が設定された後、同じく外部からの入力に基づき上記検査区間設定部２４が上記シミュレーション部２０及びプログラム実行管理部２２のいずれか一方に上記中間監視箇所の設定を指示可能とする。そして、その指示があった場合、上記シミュレーション部２０もしくはプログラム実行管理部２２では、制御モデルもしくは電子制御装置２１に実装されている制御プログラムに対して中間監視箇所を設定する。そしてこのとき、上記同期部２６は、上記シミュレーション部２０及びプログラム実行管理部２２のいずれから中間監視箇所が設定されたかを検出し、上記実行位置対応情報（図５参照）に基づいて他方にも中間監視箇所の設定を指示する。
【０１３５】
なお、この実施の形態では、後述するように、上記制御モデルのシミュレーションの実行や上記制御プログラムの実行が中間監視箇所に到達しても、それらの実行は継続されるとともに、該中間監視箇所においてそれぞれ採取された変数値が予め用意されたデータファイルに出力される。そして、こうしてデータファイルに蓄積された各変数値が、後に例えば比較部２７を通じて変数対応情報（図５参照）をもとに比較され、制御モデルや制御プログラムの異常の有無の判断に供されることとなる。すなわち、この中間監視箇所においては、制御モデルや制御プログラムの異常の有無の検査のために制御プログラムの実行を停止（待機）させる必要がなくなる。このため、制御プログラムの検査を所望する任意の中間監視ポイントに対応してこのような中間監視箇所を設定することで、より木目の細かい検査が可能になるとともに、先の第１の実施の形態に比べてその利便性や検査の円滑性もさらに向上されるようになる。
【０１３６】
図１０に、この同期部２６による中間監視箇所の設定にかかる処理をフローチャートとして示す。なお、この処理も、例えば上記シミュレーション部２０及びプログラム実行管理部２２に上記検査区間が設定されたことをトリガとして実行することがより望ましいが、所定周期で繰り返し実行するようにしてもよい。
【０１３７】
図１０に示すように、この一連の処理においては、まず、ステップＳ４０１及びＳ４０２において、同期部２６が、シミュレーション部２０及びプログラム実行管理部２２のいずれから中間監視箇所が設定されたかを検出する。すなわち、ステップＳ４０１において、シミュレーション部２０によって中間監視箇所の設定がなされたか否かを判断し、このステップＳ４０１において中間監視箇所の設定がなされていないと判断されると、次に、ステップＳ４０２において、プログラム実行管理部２２によって中間監視箇所の設定がなされたか否かを判断する。これらの処理は、上記同期部２６がシミュレーション部２０やプログラム実行管理部２２にアクセスすることで行われる。
【０１３８】
また、ステップＳ４０１において中間監視箇所の設定がなされたと判断されると、ステップＳ４０３の処理に移行する。そしてこのステップＳ４０３において、上記同期部２６は、上記対応情報格納部１８に格納された実行位置対応情報（図５参照）に基づき制御モデル上に設定された中間監視箇所に対応するポイントを特定し、これを中間監視箇所として電子制御装置２１に実装された制御プログラム上に設定するようにプログラム実行管理部２２に指示する。
【０１３９】
また一方、ステップＳ４０２において中間監視箇所の設定がなされたと判断されると、ステップＳ４０４の処理に移行する。そしてこのステップＳ４０４において、同期部２６は、同じく実行位置対応情報（図５参照）に基づき電子制御装置２１に実装されている制御プログラム上に設定された中間監視箇所に対応するポイントを特定し、これを中間監視箇所として制御モデル上に設定するようにシミュレーション部２０に指示する。
【０１４０】
そして、ステップＳ４０３の処理もしくはステップＳ４０４の処理を通じて、上記シミュレーション部２０及びプログラム実行管理部２２にそれぞれ対応するかたちで中間監視ポイントが設定されると、次にステップＳ４０５の処理に移行する。そして、このステップＳ４０５の処理において別の中間監視箇所の設定があるか否かが判断され、別の中間監視箇所の設定があると判断される場合には、上記ステップＳ４０１の処理に戻り、該ステップＳ４０１からの処理が繰り返し実行されることとなる。
【０１４１】
他方、上記ステップＳ４０２において中間監視箇所の設定がなされていないと判断される場合や、上記ステップＳ４０５において別の中間監視箇所の設定がなされていないと判断される場合には、この一連の処理を終了する。
【０１４２】
なお、上記中間監視箇所は、例えば上記検査開始箇所または検査終了箇所が設定されていない上記制御モデルの機能ブロックやラベルＬ１〜Ｌ５を用いて指定される制御プログラムの実行ポイント（実行位置）等も含めて、任意のポイントに設定可能とされる。
【０１４３】
次に、図１１及び図１２を併せ参照して、先の第１の実施の形態との相違点を中心に、この実施の形態にかかる上記制御モデルのシミュレーションの実行態様及び上記制御プログラムの実行態様について詳述する。
【０１４４】
まず、図１１を併せ参照して、シミュレーション部２０による上記制御モデルのシミュレーションの実行にかかる処理について詳述する。なお、図１１は、同処理の処理手順を示すフローチャートである。この実施の形態にかかる制御モデルのシミュレーションの実行手順では、先の第１の実施の形態にかかる同シミュレーションの実行手順（図７）に対して、シミュレーション部２０に上記中間監視箇所が設定されたことに伴う処理（ステップＳ４１１及びＳ４１２）が新たに追加されている。
【０１４５】
すなわち、先のステップＳ３２１において検査終了ポイントが検出されない場合には、次にステップＳ４１１の処理に移行する。そして、このステップＳ４１１の処理においてシミュレーション部２０が中間監視ポイントの検出を試みる。このステップＳ４１１において中間監視ポイントが検出される場合、次にステップＳ４１２の処理に移行する。そして、このステップＳ４１２において中間監視ポイントを検出した旨を上記同期部２６に通知（出力）して、上記ステップＳ３１５の処理に戻り、該ステップＳ３１５からの処理を再度実行して当該シミュレーションの実行を継続する。一方、ステップＳ４１１において中間監視ポイントが検出されない場合はそのままステップＳ３１５の処理に戻り、該ステップＳ３１５からの処理を繰り返し実行する。
【０１４６】
なお、この実施の形態にかかる制御モデルのシミュレーションの実行に際しては、ステップＳ３１２において検査区間とともに上記中間監視箇所の設定も併せて行われる。また、次のステップＳ３１３の処理でも、上記検査開始箇所及び検査終了箇所（検査区間）の設定確認に加えて、上記中間監視箇所の設定確認が併せて行われる。
【０１４７】
次に、プログラム実行管理部２２を通じた上記電子制御装置２１に実装されている制御プログラムの実行にかかる処理について詳述する。なお、図１２は、同処理の処理手順を示すフローチャートである。また、この実施の形態にかかる制御プログラムの実行手順でも、先の第１の実施の形態にかかる同制御プログラムの実行手順（図８）に対して、プログラム実行管理部２２に上記中間監視箇所が設定されたことに伴う処理（ステップＳ４２１及びＳ４２２）が新たに追加されている。
【０１４８】
すなわち、先のステップＳ３４１において検査終了ポイントが検出されない場合には、次にステップＳ４２１の処理に移行する。そして、このステップＳ４２１の処理においてプログラム実行管理部２２が中間監視ポイントの検出を試みる。このステップＳ４２１において中間監視ポイントが検出される場合、次にステップＳ４２２の処理に移行する。そして、このステップＳ４２２において中間監視ポイントを検出した旨を上記同期部２６に通知（出力）して上記ステップＳ３３５の処理に戻り、該ステップＳ３３５からの処理を再度実行して当該制御プログラムの実行を継続する。一方、ステップＳ４２１において中間監視ポイントが検出されない場合はそのままステップＳ３３５の処理に戻り、該ステップＳ３３５からの処理を繰り返し実行する。
【０１４９】
なお、この実施の形態にかかる制御プログラムの実行に際しても、ステップＳ３３２において検査区間とともに上記中間監視箇所の設定が併せて行われる。また、次のステップＳ３３３の処理でも、上記検査開始箇所及び検査終了箇所（検査区間）の設定確認に加えて、上記中間監視箇所の設定確認が併せて行われる。
【０１５０】
また、これら図１１及び図１２に示した制御モデルのシミュレーションの実行及び制御プログラムの実行についてのそれぞれ同一の実行範囲での実行結果も、先の第１の実施の形態と同様、上記シミュレーション部２０及びプログラム実行管理部２２から上記比較部２７へ出力される。
【０１５１】
比較部２７では、これら実行結果を入力し、それらを逐次比較することで、制御モデルや制御プログラムの異常の有無を検査する。また、同比較部２７は、その比較結果を上記表示部２８及び上記結果格納部２９へ併せて出力する。
【０１５２】
次に、図１３を併せ参照して、ここでも先の第１の実施の形態との相違点を中心に、上記同期部２６及び比較部２７によって行われる制御モデル及び制御プログラムの異常の有無の検査にかかる処理について説明する。なお、図１３は、同処理の処理手順を示すフローチャートである。この処理も、制御モデル及び制御プログラムの双方に検査区間及び中間監視箇所が全て設定されたことを前提として行われる。
【０１５３】
ここで、この実施の形態にかかる制御モデル及び制御プログラムの異常の有無の検査にかかる処理でも、先の第１の実施の形態にかかる同処理（図９）に対して、同期部２６に上記中間監視箇所が通知されることに伴う処理（ステップＳ４３１及びＳ４３２）が新たに追加されている。
【０１５４】
すなわち、先のステップＳ３５７において制御モデルと制御プログラムとにそれぞれ実行指示を出した後は、ステップＳ４３１の処理に移行する。そして、このステップＳ４３１において、これら制御モデルのシミュレーションの実行及び制御プログラムが上記中間監視ポイントに到達したか否かが判断される。なお、この判断は、上記シミュレーション部２０及びプログラム実行管理部２２から上記中間監視箇所を検出した旨の通知があったか否かによって行われる。そしてこのステップＳ４３１において上記中間監視箇所の検出の旨の通知がそれぞれあったと判断されると、ステップＳ４３２の処理として、同期部２６が、制御モデル及び制御プログラムの各対応する中間監視箇所においてそれぞれ採取された変数値を予め用意したデータファイルに出力し、次にステップＳ３５８の処理に移行する。なおこの際、表示装置にそれぞれの変数値を併せて出力してそれらを可視表示するようにしてもよい。一方、ステップＳ４３１の処理において上記中間監視箇所を検出した旨の通知がないと判断される場合はそのままステップＳ３５８の処理に移行する。そして、このステップＳ３５８の処理において制御モデルのシミュレーションの実行及び制御プログラムの実行が共に検査終了ポイントに到達したと判断されるまで、それらの実行が継続して行われる。
【０１５５】
なお、上記各変数値のデータファイルへの出力は、制御モデルのシミュレーションの実行及び制御プログラムの実行が中間監視ポイントに到達する都度、同期部２６が、該中間監視ポイントにおける各変数値をデータファイルに出力するようにシミュレーション部２０及びプログラム実行管理部２２にそれぞれ指示することで行われる。そして、データファイルに出力された各変数値は、それぞれ対応する中間監視箇所毎に関連付けられて蓄積され、後に制御モデル及び制御プログラムの異常の有無の検査に供されることとなる。すなわち、例えば比較部２７を通じて変数対応情報（図５参照）に基づくこれら各変数値の比較が行われ、該比較によって制御モデル及び制御プログラムの異常の有無の検査が行われる。なおこの際、上記各変数値が互いに対応するものであるか否かは、これら２つの値の差が予め定めておいた許容範囲にあるか否かで判断するようにすることがより望ましい。また、比較部２７によるこうした検査の結果が結果格納部２９に蓄積されるとともに表示部２８に可視表示される点は先の第１の実施の形態と同様である。
【０１５６】
このような図１３に示した処理によっても、制御プログラムの処理順序に誤りがある場合や生成された制御プログラムの内容自体に誤りがある場合には、実行位置や変数値の違いとしてこれを検出することができるようになる。
【０１５７】
そして、以上説明した作業（処理）、すなわち先の図１に示したステップＳ３の処理にあたる電子制御装置に実装された制御プログラムのデバッグを行った結果、同制御プログラムが妥当であると判断されれば、次に
・その制御プログラムを実装した電子制御装置を実際の車両に搭載すること。
・その後、ステップＳ４（図１）の処理、すなわち実際の車両でのデバッグ、適合（実車チェック）を行い、この時点で制御プログラムに異常がある旨判断されるときには、制御プログラムや制御モデルの修正を検討すること。
等々が行われることは先の第１の実施の形態と同様である。
【０１５８】
以上説明したように、この第２の実施の形態にかかる制御プログラムの検査方法及び検査装置及び検査プログラムによっても、基本的には先の実施の形態の前記（１）〜（１０）の効果と同等、あるいはそれに準じた効果を得ることができるとともに、次の効果を新たに得ることができるようになる。
【０１５９】
（１１）実行位置対応情報（図５参照）に基づき、検査開始箇所及び検査終了箇所に加えて制御モデルや制御プログラムの異常の有無の検査を行うポイント、すなわち上記１乃至複数の中間監視箇所を、それら制御モデルと制御プログラムとにそれぞれ対応するかたちで設定することとした。このため、制御プログラムの検査箇所の選定にかかる自由度も大きく向上されるようになる。また、たとえ検査対象となる制御プログラムが電子制御装置２１の有する巨大な制御プログラムの一部として実装される場合であれ、それら検査対象ポイントをより容易に関連付けすることができるようになる。
【０１６０】
（１２）同期部２６を用いて、制御モデルのシミュレーションの実行及び制御プログラムの実行がそれぞれ中間監視ポイントに到達する都度、中間監視ポイントにおいてそれぞれの変数値を出力するようにした。これにより、上記制御プログラムや制御モデルの異常の有無のきめ細かい検査をより簡易に行うことができるようになる。また、この変数値の出力は自動的に行われるため、中間監視ポイントに保持されている変数値に基づく制御プログラムや制御モデルの異常の有無の検査をより効率的に行うことができるようにもなる。
【０１６１】
（１３）中間監視ポイントを、制御モデルの機能ブロックやラベルＬ１〜Ｌ５を用いて指定される制御プログラムの実行ポイント（実行位置）等も含めて、任意のポイントに設定可能とした。これにより、制御モデルの指定する複数の処理について、自動コード生成部１２によって生成された制御プログラムに新たに実行順序が規定される場合であれ、制御モデルと制御プログラムとの関連付けを容易に行うことができるようになる。
【０１６２】
（１４）また、中間監視ポイントにおいて採取された制御モデルのシミュレーションによって演算された変数値と制御プログラムの実行によって演算された変数値とを変数対応情報（図５参照）に基づき比較するようにした。これにより、双方の変数値の不一致にかかる異常を的確に検出することができるようになる。
【０１６３】
（１５）またこの際、中間監視ポイントにおける各変数値の比較を、双方の変数値の差が許容範囲内にあるか否かに基づいて行うようにすれば、双方の変数値の自動判定をより適切に行うことができるようになる。
【０１６４】
（１６）中間監視ポイントにおける各変数値の比較に基づく検査の結果を結果格納部２９に蓄積するようにした。これにより、検査結果（データ）の管理が容易となり、ひいてはデータ管理やプログラム開発の効率化が図られることとなる。
【０１６５】
（１７）中間監視ポイントにおける各変数値の比較に基づく検査の結果を表示部２８に併せて可視表示させるようにすれば、当該検査の結果をユーザ自身が簡易に把握することができるようになる。
【０１６６】
（第３の実施の形態）
次に、この発明にかかる制御プログラムの検査方法及び検査装置及び検査プログラムについてその第３の実施の形態を示す。なお、この実施の形態も、電子制御装置に実装されて車載エンジンの制御を行う制御プログラムの検査にこの発明を適用している。したがって、この実施の形態にかかる制御プログラムの検査方法も先の図１に示されるステップＳ１〜Ｓ４の処理のうちステップＳ３での処理に用いられ、同ステップＳ３における処理、すなわち電子制御装置に実装された制御プログラムのデバック処理に用いられるシステムの概略構成（図２参照）は先の各実施の形態に準じたものとなっている。
【０１６７】
すなわち、この実施の形態にあっても、図２に示されるシステム（検査装置）において、上記モデル格納部１０には、先の図３に例示した制御モデルが予め格納されており、また上記対応情報格納部１８には、先の図５に例示した対応情報が予め格納されている。そして、これら制御モデル及び対応情報に対応するかたちで、すなわち先の図４に例示した態様で、上記制御モデルから自動生成された制御プログラムがＲＴＯＳや既存の制御プログラムと共々、電子制御装置２１に予め実装されている。
【０１６８】
そして、上記ステップＳ３の処理（図１）として上記実装された制御プログラムの検査（デバッグ）が開始されると、上記シミュレーション部２０は、モデル格納部１０から制御モデルを取り込み、その取り込んだ制御モデルのシミュレーションを実行する。一方、電子制御装置２１は、上記プログラム実行管理部２２からの指令に基づき、自身に実装された制御プログラムを実行する。なお、この制御プログラムの実行に際し、上記信号生成部２３によって生成された擬似的な各種センサ信号が与えられる点、及び上記プログラム実行管理部２２が上記制御プログラムによる演算結果を適宜取り込むなどして同制御プログラムの実行にかかる挙動をモニタ（監視）する点、等々は先の各実施の形態と同様である。
【０１６９】
ところで、上記制御プログラムが電子制御装置２１に実装されている場合、ＲＴＯＳの特性上、制御プログラムの方が制御モデルよりも先に検査区間に到達して待機状態となるなど、該制御プログラムの実行が一旦停止されると、これに伴い演算処理も停止されて、初期化等の復帰処理が実行されてしまう懸念がある。
【０１７０】
そこで、この実施の形態では、制御モデル及び制御プログラムへの検査区間の設定に際し、前述した検査終了ポイント（ブレイクポイント）を設定することなく、最初の検査開始ポイントも含めて、この検査区間を全て上述した１乃至複数の中間監視箇所として設定するようにしている。すなわち、シミュレーション部２０及びプログラム実行管理部２２に対し、制御モデルのシミュレーションあるいは制御プログラムの実行にかかる処理の中間監視ポイントである１乃至複数の中間監視箇所を設定することで、検査区間を設定することとしている。
【０１７１】
そして、この実施の形態では、特に上記制御プログラムの実行が中間監視箇所に到達してもその実行は継続され、同中間監視箇所において採取された変数値等が予め用意されたデータファイルに出力されるようにしている。このデータファイルに蓄積された変数値は、制御モデルのシミュレーションの対応する中間監視箇所において採取された変数値と例えば比較部２７を通じて変数対応情報（図５参照）をもとに比較され、該比較によって制御モデル及び制御プログラムの異常の有無が判断される。
【０１７２】
これにより、制御プログラムの方が制御モデルよりも先に検査区間（中間監視箇所）に到達したとしても、該検査区間において制御プログラムの実行が停止されることはなくなり、初期化等の復帰処理が実行されてしまう等、上述の懸念も解消されるようになる。
【０１７３】
なお、制御モデルは、そのシミュレーションにかかる処理が一旦停止されても、引き続き演算処理は実行可能であるため、制御モデルの方が上記制御プログラムよりも先に検査区間（中間監視箇所）に到達した場合には、この制御モデルのシミュレーションにかかる処理を待機させることとする。もっとも、シミュレーション部２０やプログラム実行管理部２２等を構成するコンピュータの処理速度は、電子制御装置２１に搭載されているマイクロコンピュータの処理速度よりも十分に速いことから、通常は、制御モデルの方が制御プログラムよりも先に検査区間（中間監視箇所）に到達すると考えられる。
【０１７４】
いずれにせよ、このような態様で検査区間が設定されることにより、たとえ制御プログラムの方が制御モデルよりも先に検査区間、すなわち中間監視箇所に到達したとしても、該中間監視箇所において制御プログラムの実行を停止（待機）させる必要がなくなることから、上記懸念も解消されて、より円滑な検査の実行が可能となる。
【０１７５】
以下、図１４〜図１６を参照して、この実施の形態にかかる制御モデルのシミュレーションの実行態様及び制御プログラムの実行態様、並びに制御モデル及び制御プログラムの異常の有無の検査にかかる処理について詳細に説明する。
【０１７６】
なお、この実施の形態にあってはまず、これら制御モデルのシミュレーションの実行や制御プログラムの実行に先立ち、先の図１０に例示した態様、手順をもって上記検査区間（中間監視箇所）の設定が行われるが、その詳細については先の第２の実施の形態において説明した通りであり、ここでの重複する説明は割愛する。ただしこの実施の形態において、先の図６に例示した態様での検査区間（検査開始箇所及び検査終了箇所）の設定が行われることはない。
【０１７７】
はじめに、図１４を併せ参照して、シミュレーション部２０による上記制御モデルのシミュレーションの実行にかかる処理について詳述する。なお、図１４は、同処理の処理手順を示すフローチャートである。
【０１７８】
この一連の処理においては、まず、ステップＳ５１１で、シミュレーション部２０が、モデル格納部１０に格納されている制御モデルを取り込む。次いで、ステップＳ５１２において、制御モデル上の任意の箇所に検査区間、すなわち中間監視ポイントが設定される（図１０参照）。
【０１７９】
そして、続くステップＳ５１３において検査区間の設定が完了したと判断されると、同期部２６からの新たな実行指示（ステップＳ５１４）や、同期部２６からの異常通知（ステップＳ５１９）に備えて待機する。そして、ステップＳ５１４にて実行の指示があったと判断されると、当該シミュレーション部２０は、ステップＳ５１５において制御モデルのシミュレーションを実行する。なお、このシミュレーションは、上記信号生成部２３から電子制御装置２１に与えられる上記センサ信号等に相当する擬似的なデータをプログラム実行管理部２２及び同期部２６を介してシミュレーション部２０にも与え、同シミュレーション部２０に上記制御モデルを通じてそれらのデータを処理させるようにして行われる。
【０１８０】
また、この実施の形態にかかるシミュレーションの実行は、外部からの停止指示もしくはシミュレーションの完了が確認されるまで（ステップＳ５１６）、あるいは中間監視ポイント（中間監視箇所）が検出されるまで（ステップＳ５１７）行われる。
【０１８１】
ここで、ステップＳ５１７において中間監視ポイントが検出されると、当該シミュレーションは一旦停止され、ステップＳ５１８にて、シミュレーション部２０は、同期部２６に対して中間監視ポイントを検出した旨を通知する。なおこの際、該中間監視ポイントにおいて保持されている変数値及び次の検査区間の入力値をデータファイルに出力したり、シミュレーション部２０が自ら備える表示器等に中間監視ポイントを検出した旨や、該中間監視ポイントにおいて保持されている変数値、次の検査区間の入力値等をそれぞれ表示するようにしてもよい。
【０１８２】
また、上記待機中（ステップＳ５１４及びＳ５１９）に、比較部２７により「変数値」や「実行位置」に異常がある旨の判断がなされると、同期部２６からの異常通知に従ってこの一連の処理を終了することとなる。この際、シミュレーション部２０は異常通知があった時の実行位置（停止位置）の情報を保持しており、同シミュレーション部２０が備える表示器等を通じてその情報を外部に通知する。また一方、上記待機中に新たな実行指示があったときには、制御モデルのシミュレーションを再開してステップＳ５１５以降の処理を行う。
【０１８３】
他方、ステップＳ５１６において、外部からの停止指示があった、もしくはシミュレーションが完了したと判断されると、ステップＳ５２０において例えばシミュレーション部２０が備える表示器等を通じて外部にシミュレーションが完了した旨を通知し、この一連の処理を終了することとなる。
【０１８４】
次に、図１５を参照して、プログラム実行管理部２２を通じた上記電子制御装置２１に実装されている制御プログラムの実行にかかる処理について詳述する。なお、図１５は、同処理の処理手順を示すフローチャートである。
【０１８５】
この一連の処理においては、まず、ステップＳ５３１で、プログラム実行管理部２２が、電子制御装置２１に実装されている制御プログラムを取り込む。次いで、ステップＳ５３２において、制御プログラム上の任意の箇所に検査区間、すなわち中間監視ポイントが設定される（図１０参照）。
【０１８６】
そして、続くステップＳ５３３において検査区間の設定が完了したと判断されると、次に、同期部２６からの実行指示（ステップＳ５３４）に備えて待機するようになる。そして、ステップＳ５３４にて実行の指示があったと判断されると、当該プログラム実行管理部２２は、制御プログラムを実行するように上記電子制御装置２１に指示する。そして同電子制御装置２１は、この指示に従って、自身に実装されている制御プログラムを実行する（ステップＳ５３５）。なお、この制御プログラムの実行も、上記信号生成部２３によって生成されたセンサ信号等に相当する擬似的データを上記電子制御装置２１に与えるようにして行われる。
【０１８７】
またこの際、同プログラム実行管理部２２を通じて、上記電子制御装置２１による制御プログラムの実行の挙動がモニタ（監視）される。そして上述のように、この実施の形態にあっては、上記実行の指示（ステップＳ５３４）により、一旦制御プログラムの実行が開始されると、基本的に停止することなく、同制御プログラムの実行が継続される。
【０１８８】
こうした制御プログラムの継続した実行に際し、プログラム実行管理部２２は、上記中間監視ポイントが検出されると（ステップＳ５３７）、その都度、同期部２６に対して該中間監視ポイントを検出した旨を通知するとともに、同中間監視ポイントにおいて採取された変数値及び次の検査区間に入力される入力値をデータファイルに出力する（ステップＳ５３８）。なおこの際、例えばプログラム実行管理部２２が自ら備える表示器等に中間監視ポイントを検出した旨や、該中間監視ポイントにおいて保持されている変数値、次の検査区間の入力値等を可視表示するようにしてもよい。そして、ステップＳ５３９においては、同期部２６から「変数値」や「実行位置」に異常がある旨の異常通知があったか否かが判断され、該異常通知があったと判断される場合、プログラム実行管理部２２は、当該制御プログラムの実行を停止してその一連の処理を終了する。この際、プログラム実行管理部２２は異常通知があった時の実行位置（停止位置）の情報を保持しており、同プログラム実行管理部２２が備える表示器等を通じてその情報を外部に通知する。
【０１８９】
また、ステップＳ５３６において、外部からの停止指示があった、もしくは制御プログラムの実行が完了したと判断される場合も、ステップＳ５４０において例えばプログラム実行管理部２２が備える表示器等を通じて外部に制御プログラムの実行が完了した旨を通知し、この一連の処理を終了することとなる。
【０１９０】
また、これら図１４及び図１５に示した制御モデルのシミュレーションの実行及び制御プログラムの実行についてのそれぞれ同一の検査区間での実行結果は、上記シミュレーション部２０及びプログラム実行管理部２２から上記比較部２７へ出力される。
【０１９１】
比較部２７では、これら実行結果を入力し、それらを逐次比較することで、制御モデルや制御プログラムの異常の有無を検査する。また、同比較部２７は、その比較結果を上記表示部２８及び上記結果格納部２９へ併せて出力する。
【０１９２】
次に、図１６を参照して、上記同期部２６及び比較部２７によって行われる制御モデル及び制御プログラムの異常の有無の検査にかかる処理について説明する。なお、図１６は、同処理の処理手順を示すフローチャートである。また、この処理は、制御モデル及び制御プログラムの双方に検査区間が設定されたことを前提として行われる。
【０１９３】
この一連の処理においては、まず、ステップＳ５５１において、同期部２６が、制御モデルのシミュレーションを実行するように上記シミュレーション部２０に指示するとともに、電子制御装置２１に制御プログラムを実行させるように上記プログラム実行管理部２２に指示する。
【０１９４】
そして、これらの指示を受けて制御モデルのシミュレーション及び制御プログラムがそれぞれ実行され（ステップＳ５１４（図１４）及びＳ５３４（図１５）参照）、それら制御モデル及び制御プログラムが共に各対応する中間監視ポイントに到達したか否かがステップＳ５５２において監視される。なお、この実施の形態においては上述のように、制御モデルのシミュレーションの実行が制御プログラムの実行よりも先に中間監視ポイントに到達した場合、同制御モデルのシミュレーションの実行は制御プログラムの実行が中間監視ポイントに到達するまで待機するのに対し、制御プログラムの実行は基本的に停止することなく継続して行われる。すなわち、上記ステップＳ５５２での監視、判断処理において、特に制御プログラムに関しては、上記中間監視ポイントを通過したことも含めて、同中間監視ポイントへの到達の有無が判断されることとなる。
【０１９５】
そして、このステップＳ５５２において、制御モデルのシミュレーションの実行と制御プログラムの実行とが共に中間監視ポイントに到達したと判断されると、まず、ステップＳ５５４において、同期部２６が、上記データファイルに蓄積されている制御プログラムの中間監視箇所において採取された変数値や、次の検査区間の入力値を読み込む。次いで、ステップＳ５５５において、上記実行位置対応情報（図５参照）に基づき、上記制御モデル及び制御プログラムの位置（実行位置）を確認する。そして、ステップＳ５５６において、比較部２７が、それら制御モデルの位置と制御プログラムの位置とが互いに対応する位置となっているか否かを判断することにより、上記制御モデルや制御プログラムの異常の有無の検査を行う。
【０１９６】
このステップＳ５５６において、双方の位置が対応していると判断されると、すなわち正常であると判断されると、次にステップＳ５５７において、同期部２６が、上記変数対応情報（図５参照）に基づいて上記制御モデル及び制御プログラムの変数を確認する。次いで、ステップＳ５５８において、比較部２７が、制御モデルの当該中間監視ポイントにおいて保持されているブロック結線／ストレージの値（変数値）と上記読み込んだ制御プログラムの当該中間監視ポイントにおける変数値とが互いに対応するものであるか否かを判断することで、上記制御モデルや制御プログラムの異常の有無の検査を行う。なお、上記制御モデルのブロック結線／ストレージの値と制御プログラムの変数値とが互いに対応するものであるか否かは、先の各実施の形態と同様、これら２つの値の差が予め定めておいた許容範囲にあるか否かで判断するようにする。
【０１９７】
そして、ステップＳ５５８において変数値が許容範囲にあると判断されると、すなわち正常であると判断されると、ステップＳ５５９の処理に移行する。そしてこのステップＳ５５９において、同期部２６が、上記データファイルから読み込んだ上記制御プログラムの次の検査区間に入力される入力値（変数の初期値）を制御モデルに与えるように上記シミュレーション部２０に指示する。これにより、制御モデルのシミュレーションの実行と制御プログラムの実行とがそれらの対応する検査区間毎に同一の条件にて行われるようになる。そして、次のステップＳ５６０において、同期部２６が、シミュレーション部２０に対して制御モデルのシミュレーションの実行（再開）を指示することにより、上記ステップＳ５１４（図１４）にて待機している上記制御モデルのシミュレーションの実行が再開される。その後は、上記ステップＳ５５２の処理に戻り、上述と同様、制御モデルのシミュレーションの実行と制御プログラムの実行とが共に中間監視ポイントに到達したか否か（制御プログラムは中間監視ポイントの通過も含む）が監視、判断される。
【０１９８】
これら一連の処理は、制御モデルと制御プログラムとが全て実行されるまで（ステップＳ５５３）、あるいは上記比較部２７により異常がある旨の判断がなされるまで（ステップＳ５５６及びＳ５５８）行われる。
【０１９９】
ちなみに、ステップＳ５５６において双方の位置が対応していないと判断される場合、同期部２６は、上記シミュレーション部２０及びプログラム実行管理部２２に異常を通知し（図１４のステップＳ５１９及び図１５のステップＳ５３９参照）、ステップＳ５６２において、表示部２８がその旨（「実行位置異常」）を可視表示する。また、ステップＳ５５８において変数値が許容範囲にないと判断されると、同期部２６は、上記シミュレーション部２０及びプログラム実行管理部２２に異常を通知し（図１４のステップＳ５１９及び図１５のステップＳ５３９参照）、ステップＳ５６３において、表示部２８がその旨（「変数値異常」）を可視表示する。なお、上記ステップＳ５５６において比較部２７により異常がある旨の判断がなされたときは、その時点での制御モデルのシミュレーションの実行位置と制御プログラムの実行位置とを検査の結果として出力し、これを表示器等により可視表示する。また、上記ステップＳ５５８において比較部２７により異常がある旨の判断がなされたときは、その時点での制御モデルのシミュレーションの実行位置と制御プログラムの実行位置、並びに異常となった変数名と変数値とを検査の結果として出力し、これを表示器等により可視表示する。これにより、当該検査の結果をユーザ自身が簡易に把握することができるようになる。
【０２００】
また、ステップＳ５５６及びＳ５５８における比較部２７による検査の結果も、先の各実施の形態と同様、上記結果格納部２９に格納されて蓄積される。そして、この蓄積された検査の結果（データ）は、例えばグラフ化等の処理が施されて、その全体的な傾向の把握等に供される。これにより、データ管理の効率化が図られるとともに、制御モデルや制御プログラムの開発の短縮化にも貢献できるようになる。
【０２０１】
他方、ステップＳ５５３において、制御モデルと制御プログラムとが全て実行されたと判断されると、ステップＳ５６１において、シミュレーション部２０やプログラム実行管理部２２が備える表示器等を通じてその旨（「全て実行完了」）が可視表示される。
【０２０２】
このように、この図１６に示した処理によっても、制御プログラムの処理順序に誤りがある場合や生成された制御プログラムの内容自体に誤りがある場合には、実行位置や変数値の違いとしてこれを検出することができるようになる。
【０２０３】
そして、この実施の形態にあっても、以上説明した作業（処理）、すなわち先の図１に示したステップＳ３の処理にあたる電子制御装置に実装された制御プログラムのデバッグを行った結果、同制御プログラムが妥当であると判断されれば、次に、
・その制御プログラムを実装した電子制御装置を実際の車両に搭載すること。
・その後、ステップＳ４（図１）の処理、すなわち実際の車両でのデバッグ、適合（実車チェック）を行い、この時点で制御プログラムに異常がある旨判断されるときには、制御プログラムや制御モデルの修正を検討すること。
等々が行われることも、先の各実施の形態と同様である。
【０２０４】
以上説明したように、この第３の実施の形態にかかる制御プログラムの検査方法及び検査装置及び検査プログラムによっても、基本的には先の各実施の形態の前記（１）〜（３）、（８）、（１０）、（１３）〜（１７）の効果と同等、あるいはそれに準じた効果を得ることができるとともに、次の効果を新たに得ることができるようになる。
【０２０５】
（１８）実行位置対応情報（図５参照）に基づき、制御モデルや制御プログラムの異常の有無の検査を行うポイント、すなわち上記１乃至複数の中間監視箇所を制御モデルと制御プログラムとにそれぞれ対応するかたちで設定するとともに、それらの設定区間を検査区間として設定することとした。このため、制御プログラムの検査箇所の選定にかかる自由度も大きく向上されるようになる。また、たとえ検査対象となる制御プログラムが電子制御装置２１の有する巨大な制御プログラムの一部として実装される場合であれ、それら検査対象ポイントをより容易に関連付けすることができるようになる。また、このように中間監視箇所の設定区間を検査区間として設定することで、制御プログラムにブレイクポイントを設定する必要がなくなり、ＲＴＯＳの特性上、電子制御装置２１において初期化等の復帰処理が実行されてしまう等の懸念も解消されるようになる。
【０２０６】
（１９）同期部２６を用いて、制御プログラムの実行が中間監視ポイントに到達する都度、該中間監視ポイントにおける変数値及び同制御プログラムの次の検査区間に入力される入力値（変数の初期値）をデータファイルに出力するようにした。これにより、上述のように必ずしも制御プログラムの実行を停止させなくとも、制御モデルや制御プログラムの異常を検出し、また制御モデルのシミュレーションと制御プログラムの実行との双方についての検査開始条件を揃えることが可能となる。また、これら変数値の変更や比較は自動的に行われるため、制御プログラムや制御モデルの異常の有無の検査をより簡易に行うことができるようにもなる。
【０２０７】
（他の実施の形態）
なお、上記各実施の形態は、以下のように変更して実施することもできる。
・上記各実施の形態では、図１７にその検査イメージの概要を示すように、電子制御装置（ＥＣＵ）に実装された制御プログラムＣＰがその実行結果を信号生成部２３にフィードバックしつつ、該信号生成部２３に設定されたテストシナリオに基づいて、電子制御装置に実装された制御プログラムＣＰの実行と制御モデルＣＭのシミュレーションの実行が行われる。そして、その結果が逐次比較等されて検査結果として出力される。ただし、上記電子制御装置２１に実装された制御プログラム等の検査については、電子制御装置（ＥＣＵ）に実装された制御プログラムＣＰと制御モデルＣＭとの実行範囲を関連付けてこれらを実行し、該実行結果に基づいて同期部２６が上記電子制御装置２１に実装された制御プログラム等の検査を行うものであればよい。したがってこの意味では、図１８に示すように、電子制御装置２１に実装された制御プログラム等の検査のために上記電子制御装置（ＥＣＵ）に実装された制御プログラムＣＰや制御モデルＣＭが実行すべき実行条件の全てをテストシナリオとして信号生成部２３に予め登録しておくようにしてもよい。すなわちこの場合には、制御モデルＣＭと電子制御装置（ＥＣＵ）に実装された制御プログラムＣＰとは、上記信号生成部２３から与えられるテストシナリオに基づきいわばオープンループにてそのシミュレーションやプログラムの実行が行われ、その結果が逐次比較等されて検査結果として出力される。
【０２０８】
・上記各実施の形態では、自動コード生成部１２による制御プログラムの自動生成に際して得られる情報をもとに対応情報作成部１６が対応情報を作成することとした。しかし、この対応情報は、自動生成された制御プログラムをもとに人間が作成してもよい。また、制御モデルから制御プログラムを自動生成しない（制御モデルからハンドコーディングする）場合でも、ハンドコーディングされた制御プログラムをもとに人間がこの対応情報を作成してもよい。要は、何らかのかたちで対応情報さえ得られれば、同期部２６による上述した関連付けを行うことはできる。
【０２０９】
・上記シミュレーション部２０やプログラム実行管理部２２は、必ずしも制御モデルや制御プログラムに入力データを与えることでそれらの実行を行わせるものに限らない。例えば、制御プログラムの制御対象及び同対象を取り巻く環境をコンピュータ上で擬似的に生成しつつ上記制御モデルや制御プログラムの検査を行うものであってもよい。
【０２１０】
・上記検査区間設定部２４の機能についてはこれを上記シミュレーション部２０自身に持たせるようにしてもよい。また、同機能を上記プログラム実行管理部２２自身に持たせるようにしてもよい。またあるいは、それら検査区間の目印となる情報を予め制御モデルや制御プログラム側に持たせておくようにしてもよい。
【０２１１】
・上記各実施の形態では、比較部２７により異常がある旨の判断がなされたとき、その時点での制御モデルのシミュレーションの実行位置と制御プログラムの実行位置とを検査の結果として出力し、これを表示器等により可視表示するようにした。しかし、こうした構成に限らず、例えば上記出力した検査の結果を可視表示せずに、記憶装置等に格納する構成としてもよい。また、上記各実行位置の出力自体を割愛した構成とすることも可能である。
【０２１２】
・上記各実施の形態では、比較部２７による検査の結果を表示部２８に可視表示させるとともに、該検査の結果を結果格納部２９に蓄積するようにした。しかし、こうした構成に限らず、例えば可視表示のみ、あるいは蓄積のみを行う構成とすることも可能である。また、これら検査結果の可視表示及び蓄積自体を割愛した構成としてもよい。
【０２１３】
・上記各実施の形態では、比較部２７による検査の結果、変数値が許容範囲にないと判断されるとき、表示部２８を通じて「変数値異常」を表示させるようにした。しかしこの表示部２８には、「変数値異常」の表示のほかに、制御モデルのシミュレーションの実行位置と制御プログラムの実行位置とを表示させるようにしてもよい。また、同表示部２８には、変数値異常に該当する制御モデルのシミュレーションの実行位置と制御プログラムの実行位置のみを表示させるようにしてもよい。さらにこの表示部２８には、上記のほか、比較部２７による比較演算結果（値）を表示させるようにしてもよい。
【０２１４】
・上記第１及び第２の実施の形態では、比較部２７による検査の結果、変数値が許容範囲にある（正常）と判断されると、ステップＳ３５１（図９、図１３）に戻り、制御モデルのシミュレーションの実行と制御プログラムの実行とが再開されるようにした。しかし、こうした構成に限らず、正常と判断された場合、ステップＳ３５２（図９、図１３）に戻り、検査を継続する構成としてもよい。
【０２１５】
・上記各実施の形態では、検査開始ポイント（検査開始箇所）において実行位置の比較を行い、検査終了ポイント（検査終了箇所）や中間監視ポイント（中間監視箇所）において変数値の比較を行うようにした。しかし、こうした構成に限らず、例えば検査開始ポイントにて変数値の比較を、あるいは検査終了ポイントにて実行位置の比較を行う構成としてもよい。また例えば、検査開始ポイント及び検査終了ポイントのいずれか一方にて上記比較を行う構成としてもよい。また、制御モデルのシミュレーションの実行位置と制御プログラムの実行位置とが揃っている前提で検査を開始する場合には、実行位置の検査自体を割愛した構成としてもよい。
【０２１６】
・上記各実施の形態では、異常の有無の検査に際して用いられる許容範囲を変数値のデータ型に応じて変更するようにしたが、許容範囲の設定の仕方は任意である。また、必ずしも許容範囲を設定する必要はなく、両者の一致のみを異常の有無の判断基準としてもよい。
【０２１７】
・上記各実施の形態では、制御モデルのシミュレーションの実行と制御プログラムの実行とがそれぞれ検査開始ポイントに到達する都度、変数対応情報（図５参照）に基づいて変数値を変更し、制御モデル及び制御プログラムへの入力データを揃えるようにした。しかし、必ずしも上記各実行が検査開始ポイントに到達する度にそれら変数値の変更を行う必要はない。例えばキーボード等の入力装置を通じた外部からの入力に基づく割込み処理としてそれら変数値の変更を可能とする構成としてもよい。また、必ずしも入力データを揃える必要もなく、例えば正常時に上記変数値としてあえて異常データを入力して制御プログラムの検査を行うような構成とすることも可能である。さらに、それら変数値の変更が不可能な構成にもこの発明は適用可能である。
【０２１８】
・上記各実施の形態では、制御モデルのシミュレーションの実行及び制御プログラムの実行がそれぞれ検査終了ポイントや中間監視ポイントに到達する都度、検査終了ポイントや中間監視ポイントにおいてそれぞれの変数値（実行結果）を出力するようにした。しかし、必ずしも上記各実行が検査終了ポイントや中間監視ポイントに到達する度にそれら変数値（実行結果）の出力を行う必要はない。例えばキーボード等の入力装置を通じた外部からの入力に基づく割込み処理としてそれら変数値の出力を行うようにしてもよい。さらに、それら変数値の出力を行わない構成にもこの発明は適用可能である。
【０２１９】
・上記第１及び第２の実施の形態では、検査開始ポイント及び検査終了ポイントを停止箇所（ブレークポイント）として設定したが、必ずしも制御モデルのシミュレーションの実行や制御プログラムの実行を検査開始ポイント及び検査終了ポイントにて停止させる必要はない。すなわち、上記各ポイントを停止箇所として設定せずとも、これら各ポイントにおける実行位置や変数値の取得さえできれば、それらを比較部２７によって比較させることは可能である。そしてその一例として、上記第２及び第３の実施の形態において採用した中間監視ポイント（中間監視箇所）がある。
【０２２０】
・上記各実施の形態では、同期部２６が、制御モデルのシミュレーション結果と制御プログラムの実行結果とを比較部２７に与え、該比較部２７を通じてそれら結果を比較させるようにした。しかし、この比較部２７を割愛した構成とすることも可能である。例えば、同期部２６自身が制御モデルのシミュレーション結果と制御プログラムの実行結果とを受信して、これを比較部２７に送ることなくそのまま表示器等に出力させる構成としてもよい。この際、同期部２６にて表示器等への出力を行う構成はいうまでもなく、他に例えば、同期部２６を経由せず、直接シミュレーション部２０やプログラム実行管理部２２にて表示器等への出力を行う構成とすることも可能である。
【０２２１】
・制御モデルから自動生成される制御プログラムとしては、Ｃ言語にて記述されるものに限らず、適宜のプログラム言語にて記述される制御プログラムであればよい。この場合においても、その制御プログラムが制御モデルの規定する処理について同制御モデルにおいて規定されない実行順序が新たに規定されることがあるものであるならば、この発明の適用は有効である。
【０２２２】
・上記対応情報作成部１６や同期部２６等をコンピュータとソフトウェアにて構成する代わりに、カスタムＬＳＩなどの専用のハードウェアにて構成するようにしてもよい。
・上記各実施の形態では、対応情報として「実行位置対応情報」と「変数対応情報」との２種の情報を用いることとしたが、これら情報のいずれか一方、あるいはこれら情報に相当する他の情報なども適宜採用することができる。
【０２２３】
・その他、制御モデルのシミュレーションの実行範囲と電子制御装置に実装された制御プログラムの実行範囲とのそれぞれ対応する実行範囲毎にこれらを関連付けするとともに、それら関連付けされた実行範囲毎の実行結果に基づいてそれらの少なくとも一方の異常の有無を検査するものであれば、その範囲で上記各実施の形態は適宜変更可能である。
【０２２４】
・また、車載エンジンの制御プログラムに限らず、モデルベース開発を採用して作成される制御プログラムについては、この発明にかかる検査方法、検査装置、並びに検査プログラムを同様に適用することができる。
【図面の簡単な説明】
【０２２５】
【図１】この発明の第１の実施の形態にかかる制御プログラムの作成並びに検査の手順を示すフローチャート。
【図２】同実施の形態において制御プログラムの生成及び検査を行うシステムの概略構成を示すブロック図。
【図３】制御モデルを例示するブロック図。
【図４】自動生成される制御プログラムを例示する図。
【図５】制御モデルと制御プログラムとの対応関係を表す対応情報を例示する図。
【図６】同実施の形態における検査区間（検査開始箇所及び検査終了箇所）の設定にかかる処理についてその処理手順を示すフローチャート。
【図７】同実施の形態における制御モデルのシミュレーション実行手順を示すフローチャート。
【図８】同実施の形態における制御プログラムの実行手順を示すフローチャート。
【図９】同実施の形態における制御プログラムの検査手順を示すフローチャート。
【図１０】この発明の第２の実施の形態、あるいは第３の実施の形態において採用する検査区間（中間監視箇所）の設定にかかる処理についてその処理手順を示すフローチャート。
【図１１】この発明の第２の実施の形態における制御モデルのシミュレーション実行手順を示すフローチャート。
【図１２】同第２の実施の形態における制御プログラムの実行手順を示すフローチャート。
【図１３】同第２の実施の形態における制御プログラムの検査手順を示すフローチャート。
【図１４】この発明の第３の実施の形態における制御モデルのシミュレーション実行手順を示すフローチャート。
【図１５】同第３の実施の形態における制御プログラムの実行手順を示すフローチャート。
【図１６】同第３の実施の形態における制御プログラムの検査手順を示すフローチャート。
【図１７】上記第１〜第３の実施の形態での検査イメージの概要を模試的に示すブロック図。
【図１８】この発明が適用可能な他の検査イメージについてその概要を模式的に示すブロック図。
【符号の説明】
【０２２６】
１０…モデル格納部、１２…自動コード生成部、１４…プログラム格納部、１６…対応情報作成部、１８…対応情報格納部、２０…シミュレーション部、２１…電子制御装置（ＥＣＵ）、２２…プログラム実行管理部、２３…信号生成部、２４…検査区間設定部、２６…同期部、２７…比較部、２８…表示部、２９…結果格納部。
【図１】
2005202925.tif 000003
【図２】
2005202925.tif 000004
【図３】
2005202925.tif 000005
【図４】
2005202925.tif 000006
【図５】
2005202925.tif 000007
【図６】
2005202925.tif 000008
【図７】
2005202925.tif 000009
【図８】
2005202925.tif 000010
【図９】
2005202925.tif 000011
【図１０】
2005202925.tif 000012
【図１１】
2005202925.tif 000013
【図１２】
2005202925.tif 000014
【図１３】
2005202925.tif 000015
【図１４】
2005202925.tif 000016
【図１５】
2005202925.tif 000017
【図１６】
2005202925.tif 000018
【図１７】
2005202925.tif 000019
【図１８】
2005202925.tif 000020