JP4403794B2 - 制御プログラムの検査方法及び検査装置及び検査プログラム - Google Patents

制御プログラムの検査方法及び検査装置及び検査プログラム Download PDF

Info

Publication number
JP4403794B2
JP4403794B2 JP2003423583A JP2003423583A JP4403794B2 JP 4403794 B2 JP4403794 B2 JP 4403794B2 JP 2003423583 A JP2003423583 A JP 2003423583A JP 2003423583 A JP2003423583 A JP 2003423583A JP 4403794 B2 JP4403794 B2 JP 4403794B2
Authority
JP
Japan
Prior art keywords
control program
program
control
execution
simulation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2003423583A
Other languages
English (en)
Other versions
JP2004280786A (ja
Inventor
徹也 東道
岩井  明史
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Denso Corp
Original Assignee
Denso Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Denso Corp filed Critical Denso Corp
Priority to JP2003423583A priority Critical patent/JP4403794B2/ja
Priority to US10/779,703 priority patent/US7441235B2/en
Priority to EP04004364A priority patent/EP1452969A3/en
Publication of JP2004280786A publication Critical patent/JP2004280786A/ja
Application granted granted Critical
Publication of JP4403794B2 publication Critical patent/JP4403794B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0426Programming the control sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3632Software debugging of specific synchronisation aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3696Methods or tools to render software testable
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23446HIL hardware in the loop, simulates equipment to which a control module is fixed
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23456Model machine for simulation
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/26Pc applications
    • G05B2219/2637Vehicle, car, auto, wheelchair

Description

本発明は、制御対象の制御に用いる制御プログラムの検査方法及び該制御プログラムの検査に際して用いられる検査装置及び検査プログラムに関する。
例えば車載エンジン等を制御する制御プログラムの開発には通常、
(ア)設計(制御)仕様(制御モデル)に基づいて制御プログラムを作成(コーディング)する工程。
(イ)該作成した制御プログラムの異常の有無を検査、修正(デバッグ)する工程。
(ウ)該デバッグした制御プログラムを用いて実際の車両にてデバッグ、適合(実車チェック)する工程。
(エ)この実車チェック結果に基づいて更に制御プログラムを修正する工程。
等々が含まれる。
また近年は、こうした制御プログラムの開発において、その要求仕様を記述する制御モデルからプログラム言語にて記述された制御プログラムを自動的に生成する工程を有するモデルベース開発も行われている。このモデルベース開発では、制御モデルをコンピュータ上で既存のソフトウェアによりシミュレーションすることで、その制御モデルの動作等の妥当性が検証される。こうした検証のなされた制御モデルから自動生成された制御プログラムは完成度が高いため、上記(エ)の工程における制御プログラムの修正を低減することができるようになる。また、制御モデルの構築自体は、制御プログラムの作成よりも簡易に行うことができる。そのため、こうしたモデルベース開発を採用することで、制御プログラムの開発の効率化を図ることも可能となる。
ところで、上記自動生成された制御プログラムには、制御モデルの指定した各処理について、同制御モデルでは必ずしも決められていなかった実行順序が、自動生成された制御プログラムでは新たに規定されることがある。
このため、上記モデルベース開発を採用する場合、制御モデルから自動生成される制御プログラムのデバッグ作業や、上記制御モデルが制御プログラムを自動生成するのに妥当なものであるか否かを検査し修正するデバッグ作業が逆に困難なものとなる。これは、上述のように制御モデルと制御プログラムの実行順序が必ずしも同じではないことに起因するものであり、制御モデル及び制御プログラムの一方のデバッグ作業にて何らかの問題が発見されたときには、その問題の位置と対応する他方の位置を特定することが極めて困難となる。
本発明は、こうした実情に鑑みてなされたものであり、その目的は、モデルベース開発を行う場合にあって、制御プログラムや制御モデルの異常の有無の検査を簡易に行うことのできる制御プログラムの検査方法、及び該制御プログラムの検査に用いる検査装置及び検査プログラムを提供することにある。
こうした目的を達成すべく、請求項1記載の制御プログラムの検査方法あるいは請求項13記載の制御プログラムの検査装置では、前記制御モデルの挙動をシミュレーションするシミュレーション手段の動作結果と前記制御プログラムを実行するプログラム実行手段の動作結果とのそれぞれ対応する動作結果毎にこれらを関連付けして出力して、前記制御モデル及び前記制御プログラムの少なくとも一方の異常の有無を検査するようにした。
このように、制御プログラムをプログラム実行手段によって実行することでその異常の有無の検査を行うに際し、同制御プログラムの実行結果と制御モデルのシミュレーション結果との各対応するものをそれぞれ関連付けて出力することで、これら制御プログラムや制御モデルの異常の有無の検査を簡易に行うことができるようになる。
また、請求項2記載の制御プログラムの検査方法あるいは請求項14記載の制御プログラムの検査装置では、前記関連付けが、前記自動コード生成手段による制御プログラムの自動生成に際して取得される前記制御モデルと該制御モデルから生成される制御プログラムとの対応関係を表す対応情報に基づいて行われるようにした。
制御モデルから制御プログラムを自動生成する自動コード生成手段は、同自動生成に際し制御モデルと制御プログラムとの対応関係を表す対応情報を有することとなる。そして、この対応情報を用いることで、シミュレーション手段による制御モデルのシミュレーションの実行位置とプログラム実行手段による制御プログラムの実行位置とを適切に関連付けることができる。
また、請求項3記載の制御プログラムの検査方法あるいは請求項15記載の制御プログラムの検査装置では、前記関連付けが、前記制御モデル及び前記制御プログラムのいずれか一方に対して動作の停止箇所を指定するブレークポイントが設定されることに基づき、他方に対しても前記対応情報に基づきその対応するブレークポイントを設定することによって行われるようにした。
シミュレーション手段やプログラム実行手段は、それぞれのブレークポイントでシミュレーションの実行や制御プログラムの実行を停止する。このため、対応情報により把握される制御モデルと制御プログラムとの対応関係に基づき、それぞれの対応する実行位置にブレークポイントを設定することで、制御モデル及び制御プログラムについての上記実行位置が互いに関連する位置となる。したがって、これらシミュレーション手段とプログラム実行手段との実行、停止を、既存の機能(ブレークポイント)を用いることで互いの同期(関連付け)を簡易に行うことができる。
更に、上記のように制御モデル及び制御プログラムのいずれか一方にブレークポイントが設定されたときに、他方にもブレークポイントが自動的に設定されるようにした。このため、例えば、外部からユーザが制御モデル及び制御プログラムのうちのいずれか一方を任意に選択してブレークポイントを設定することで、双方の適切な箇所にブレークポイントを設定することができる。
また、請求項4記載の制御プログラムの検査方法あるいは請求項16記載の制御プログラムの検査装置では、前記ブレークポイントを、前記制御モデルを構成する各機能ブロック毎に設定可能とした。
制御モデルから自動生成される制御プログラムには、制御モデルの各機能ブロックに対応する処理について同制御モデルには規定されていない実行順序が新たに規定されることがある。このため、自動生成された制御プログラムの検査においては、これら新たに規定される実行順序の異常の有無を検査することが望ましい。この点、ブレークポイントを各機能ブロックに設定可能とすることで、新たに実行順序が規定される場合であれ、その異常の有無を、制御モデルと対応させつつ簡易に検査することができるようになる。
また、請求項5記載の制御プログラムの検査方法あるいは請求項17記載の制御プログラムの検査装置では、前記各動作結果についてのそれぞれ関連付けされた動作結果の出力が、前記プログラム実行手段により前記制御プログラムを1行ずつ実行及び停止させることによって行われるようにした。
このように、制御プログラムを1行ずつ実行及び停止させるようにすることで、停止箇所の設定を簡易に行うことができ、より詳細な検査をすることができる。
また、請求項6記載の制御プログラムの検査方法あるいは請求項18記載の制御プログラムの検査装置では、前記異常の有無の検査が、前記関連付けされた前記シミュレーション手段の動作結果と前記プログラム実行手段の動作結果とを逐次比較する比較手段によって行われるようにした。
このように、制御モデルのシミュレーション結果と制御プログラムの実行結果とを逐次比較する比較手段を用いることで、これら制御モデルのシミュレーション結果と制御プログラムの実行結果との対応関係を、ユーザが確認する必要が無く、自動的に検出することができるようになる。したがって、上記異常の有無の検査を自動的に行うことができる。また、請求項5記載の方法や請求項17記載の構成と併用することによって、より細部までの実行位置の比較ができ、詳細な検査をすることができるようになる。
また、請求項7記載の制御プログラムの検査方法あるいは請求項19記載の制御プログラムの検査装置では、前記比較手段によるシミュレーション手段の動作結果と前記プログラム実行手段の動作結果との逐次比較が、前記対応情報に基づく前記制御モデルのシミュレーション順序と前記制御プログラムの実行順序との比較として行われるようにした。
自動生成される制御プログラムには、制御モデルの処理について同制御モデルが有しない実行順序が新たに規定されることがある。このため、同制御プログラムと制御モデルとは互いの処理の実行順序が異なったものとなることがある。この点、上記のように比較手段によって制御モデルのシミュレーションの順序と制御プログラムの実行順序とを比較することで、この実行順序の不一致にかかる異常を自動的に検出することができるようになる。
また、請求項8記載の制御プログラムの検査方法あるいは請求項20記載の制御プログラムの検査装置では、前記比較手段によるシミュレーション手段の動作結果と前記プログラム実行手段の動作結果との逐次比較が、前記対応情報に基づき前記制御モデルのシミュレーションによって演算される変数値と前記制御プログラムの実行によって演算される変数値との比較として行われるようにした。
自動生成された制御プログラムが適切なものでないと、制御プログラムの実行によって演算される変数値は、制御モデルの対応する処理によって演算される変数値と異なることがある。この点、上記のように比較手段によって制御モデルのシミュレーションによって演算される変数値と制御プログラムの実行によって演算される変数値とを比較することで、これらの不一致にかかる異常を自動的に検出することができるようになる。
なお、こうした変数値の比較による異常の有無の検査は、請求項9記載の制御プログラムの検査方法あるいは請求項21記載の制御プログラムの検査装置によるように、前記制御モデルのシミュレーションによって演算される変数値と前記制御プログラムの実行によって演算される変数値との差が許容範囲内にないか否かによって行われるようにしてもよい。制御モデルのシミュレーションを行うシミュレーション手段や制御プログラムの実行を行うプログラム実行手段の演算精度に依存して、演算された変数値がわずかながら一致しない場合がある。しかしこのような場合、制御モデル及び制御プログラムは共に正常であり、変数値が不一致でも正常と判定すべきものである。そういった場合は、変数値の偏差が許容範囲内にないか否かによって異常の有無の検査を行うとよい。これにより、異常の有無の検査をより適切に行うことができるようになる。
また、請求項10記載の制御プログラムの検査方法あるいは請求項22記載の制御プログラムの検査装置では、前記比較手段により異常がある旨の判断がなされたとき、その時点での前記制御モデルのシミュレーション箇所と前記制御プログラムの実行箇所とを前記検査の結果として出力するようにした。
このように、制御モデルのシミュレーション箇所と制御プログラムの実行箇所とを検出し、検査の結果として出力することで、外部のユーザ等が異常がある旨判断された箇所を簡易に把握することができるようになる。
また、請求項11記載の制御プログラムの検査方法あるいは請求項23記載の制御プログラムの検査装置では、前記検査に伴って前記制御モデルのシミュレーション及び前記制御プログラムの実行が停止されるとき、前記制御モデルのシミュレーションによって演算される変数値の停止箇所において保持されている値及び前記制御プログラムの実行によって演算される変数値の停止箇所において保持されている値の少なくとも一方を変更可能とした。
例えば前記ブレークポイントや何らかの異常の判断に起因して制御モデルのシミュレーションや制御プログラムの実行が停止されるとき、それら制御モデルのシミュレーション停止箇所において保持される変数値及び制御プログラムの実行停止箇所で保持される変数値の少なくとも一方を変更可能とすることで、たとえ異常がある旨の判断がなされた場合であれ、再度制御モデルのシミュレーション条件と制御プログラムの実行条件とを等しくすることができる。このため、異常がある旨判断された箇所から異常の有無の検査を再開することが可能となる。
また、請求項12記載の制御プログラムの検査方法あるいは請求項24記載の制御プログラムの検査装置では、少なくとも前記制御モデルの挙動をシミュレーションするシミュレーション手段の動作結果と前記制御プログラムを実行するプログラム実行手段の動作結果とを表示手段に出力して可視表示させるようにした。
このように、シミュレーション手段の動作結果とプログラム実行手段の動作結果とを表示手段に出力して可視表示させることで、ユーザ自身が各動作結果を簡易に把握することができるようになる。
また、請求項25記載の制御プログラムの検査プログラムでは、前記制御モデル及び前記制御プログラムの少なくとも一方の異常の有無を検査すべくコンピュータを通じて実行する手段として、a.前記制御プログラムを自動生成する際に取得される情報から前記制御モデルと前記制御プログラムとの対応関係を表す対応情報を生成し、前記制御モデルをシミュレーションするシミュレーション手段と前記制御プログラムを実行するプログラム実行手段との双方の動作の停止箇所を前記対応情報に基づき関連付けする手段、b.前記シミュレーション手段と前記プログラム実行手段との双方に対してシミュレーション及びプログラムの実行を指示する手段、c.前記シミュレーション及びプログラムの実行の後、前記シミュレーション手段及び前記プログラム実行手段の双方の停止を検出する手段、d.前記双方の停止を検出したとき、前記制御モデルのシミュレーションの結果と前記制御プログラムの実行の結果とを比較し、その比較結果に基づいて前記異常の有無を検査する手段、を含むようにした。
このようにシミュレーション手段とプログラム実行手段との双方の停止箇所を関連付けることで、シミュレーション手段とプログラム実行手段とを同期させることができるようになる。そして、これらシミュレーション手段とプログラム実行手段とのそれぞれに対し、実行を指示するとともに、双方の停止を検出したときにシミュレーションの結果と制御プログラムの実行の結果とを比較することで、双方の停止位置において異常の有無を的確に検査することができるようになる。
また、請求項26記載の制御プログラムの検査プログラムでは、前記対応情報は、前記制御モデルと前記制御プログラムとの互いに対応する位置の関係を表す情報である実行位置対応情報を含み、前記対応情報に基づき停止箇所を関連付けする手段が、前記シミュレーション手段及び前記プログラム実行手段のいずれか一方においてその動作の停止箇所を指定するブレークポイントが設定されることによって前記実行位置対応情報に基づき他方の対応する箇所を指定するブレークポイントを設定するものであるとした。
このような検査プログラムによれば、外部からユーザが制御モデル及び制御プログラムのうちのいずれか一方を任意に選択してブレークポイントを設定することに基づいて、双方の適切な箇所にブレークポイントが自動的に設定されるようになる。
また、請求項27記載の制御プログラムの検査プログラムでは、前記比較結果に基づいて異常の有無を検査する手段を、少なくとも前記制御モデルのシミュレーションの停止位置と前記制御プログラムの実行の停止位置とを前記実行位置対応情報に基づき比較することによって前記異常の有無を検査するものとした。
自動生成される制御プログラムには、制御モデルの処理についての実行順序であって同制御モデルが有しない実行順序が新たに規定されることがある。このため、同制御モデルを用いて作成される制御プログラムと制御モデルとは互いの処理の実行順序が異なったものとなることがある。この点、上記のように制御モデルの実行順序と制御プログラムの実行順序とを比較することで、この実行順序の不一致にかかる異常を適切に検出することができるようになる。
また、請求項28記載の制御プログラムの検査プログラムでは、前記対応情報は、前記制御モデルの処理にかかる変数値と前記制御プログラムの処理にかかる変数値との対応関係を表す変数対応情報を含み、前記比較結果に基づいて異常の有無を検査する手段を、少なくとも前記制御モデルのシミュレーションによって演算される変数値と前記制御プログラムの実行によって演算される変数値とを前記変数対応情報に基づき比較することによって前記異常の有無を検査するものとした。
自動生成された制御プログラムが適切なものでないと、制御プログラムの実行によって演算される変数値は、制御モデルの対応する処理によって演算される変数値と異なることがある。この点、制御モデルのシミュレーションによって演算される変数値と制御プログラムの実行によって演算される変数値とを比較することで、これら変数値の不一致にかかる異常についてもこれを的確に検出することができるようになる。
また、請求項29記載の制御プログラムの検査プログラムでは、前記制御モデル及び前記制御プログラムの少なくとも一方の異常の有無を検査すべくコンピュータを通じて実行する手段として、a.前記制御プログラムを自動生成する際に取得される情報から前記制御モデルと前記制御プログラムとの対応関係を表す対応情報を生成し、前記制御モデルをシミュレーションするシミュレーション手段と前記制御プログラムを実行するプログラム実行手段との双方の動作の停止箇所を前記対応情報に基づき関連付けする手段、b.前記シミュレーション手段と前記プログラム実行手段との双方に対してシミュレーション及びプログラムの実行を指示する手段、c.前記シミュレーション及びプログラムの実行の後、前記シミュレーション手段及び前記プログラム実行手段の双方の停止を検出する手段、d.前記双方の停止を検出した後、前記シミュレーション手段によるシミュレーション結果及び前記プログラム実行手段による実行結果を表示手段に出力する手段、を含むようにした。
このように、シミュレーション手段とプログラム実行手段との双方の停止箇所を関連付けることで、シミュレーション手段とプログラム実行手段との各動作結果を同期させることができるようになる。そして、これらシミュレーション手段とプログラム実行手段とのそれぞれに対し、実行を指示するとともに、双方の停止を検出した後に、シミュレーション手段のシミュレーション結果及びプログラム実行手段の実行結果を出力することで、制御モデルの動作と制御プログラムの動作とを簡易に把握することができるようになる。
またこの場合、請求項30記載の制御プログラムの検査プログラムのように、前記シミュレーション手段によるシミュレーション結果及びプログラム実行手段による実行結果を出力する手段を、それら各動作結果を表示手段に出力して可視表示させるものとすることで、ユーザ自身がそれら動作結果を比較して制御プログラムや制御モデルの異常の有無の検査を行うことも可能となる。
また、請求項31記載の制御プログラムの検査プログラムでは、前記対応情報は、前記制御モデルと前記制御プログラムとの互いに対応する位置の関係を表す情報である実行位置対応情報を含み、前記対応情報に基づき停止箇所を関連付けする手段を、前記シミュレーション手段及び前記プログラム実行手段のいずれか一方においてその動作の停止箇所を指定するブレークポイントが設定されることによって前記実行位置対応情報に基づき他方の対応する箇所を指定するブレークポイントを設定するものとした。
このような検査プログラムによれば、外部からユーザが制御モデル及び制御プログラムのうちのいずれか一方を任意に選択してブレークポイントを設定することに基づいて、双方の適切な箇所にブレークポイントが自動的に設定されるようになる。
以下、本発明にかかる制御プログラムの検査方法及び検査装置を車両の制御プログラムの検査に適用した一実施形態を図面を参照しつつ説明する。
図1は、本実施形態にかかる制御プログラムの作成並びに検査手順の概要を示すフローチャートである。
同図1に示すステップS1では、まず、対象となる制御プログラムについて、その要求仕様を記述する制御モデルを要求仕様記述言語を用いて構築する。次に、こうして構築された制御モデルをシミュレーションすることで、同制御モデルが正当な機能と妥当な性能を有するものであるか否かを検証する。そして、この検証結果に基づき、適宜、制御モデルを修正する。
次に、ステップS2において、制御モデルから例えばC言語にて記述された制御プログラムを自動生成する。この制御プログラムには、制御モデルの規定する処理について同制御モデルによっては規定されていない実行順序が新たに規定されている。
ステップS3では、上記制御モデルをシミュレーションするとともに、制御プログラムを実行することで、互いの対応関係を維持しつつ制御モデルや制御プログラムの異常の有無の検査を行う。そして、制御プログラムに異常がある旨判断されると、制御プログラムが修正される。また、制御プログラムを検証した結果、制御モデルが妥当でないと判断される場合には、上記ステップS1に戻り、制御モデルを修正するようにしてもよい。
こうして制御プログラムのデバッグが終了すると、ステップS4において、同制御プログラムを搭載した電子制御装置によって実際の車両でのデバッグ、適合を行う。そして、この実際の車両でのデバッグ結果に基づき制御プログラムに妥当でない箇所がある場合には、ステップS1に戻って制御モデルを修正し、上記ステップS1〜S4の処理を繰り返す。この一連の処理は、制御プログラムが妥当であると判断されるまで行われる。
以下、上記ステップS3の処理である制御プログラムのデバッグ作業について、詳細に説明する。
図2は、制御プログラムの生成及びデバッグに用いるシステム(検査装置)の全体構成を示す図である。
このシステムにおいて、モデル格納部10には、先の図1のステップS1にて構築され検証のなされた制御モデルが格納されている。図3に、こうした制御モデルの一例を模式的に示す。
同図3に示す制御モデルは、車載エンジンの燃料噴射量の演算、及び噴射タイミングの演算を行うモデルである。ブロックB1は、図示しないエンジンのクランク角度が所定のクランク角と一致したときに、ブロックB2及びブロックB6にトリガを与えるブロックである。ブロックB2は、上記所定のクランク角をトリガとして基本噴射量を演算するブロックである。ブロックB3は、上記ブロックB2によって演算された基本噴射量をブロックB4に書き込み指示するブロックである。ブロックB4は、基本噴射量を記憶するブロックである。ブロックB5は、記憶されている基本噴射量を読み出すブロックである。ブロックB6は、上記所定のクランク角をトリガとして上記基本燃料噴射量に対する補正量を計算するブロックである。ブロックB7は、補正量と上記読み出された基本噴射量とに基づき噴射タイミングを演算するブロックである。
ちなみに、図3において実線で示す矢印は、処理の順序を規定するとともに、各処理の施されたデータの流れを示すものである。すなわち、例えばブロックB7の処理は、ブロックB5及びブロックB6の処理の後に行われるようにその処理順序が規定されている。しかし、ブロックB2とブロックB6との処理については、どちらを先に実施するかといった順序は規定されていない。また、ブロックB3及びブロックB5の処理の順序についても同様に、基本噴射量のメモリへの書き込みとメモリからの読み出しの順序は規定されていない。つまり、ブロックB5を先に処理し、ブロックB3を後で処理することも、このモデルでは考えられる。
一方、図2に示すシステムにおいて、自動コード生成部(自動コード生成手段)12は、この制御モデルを入力し、同制御モデルから上記C言語で記述された制御プログラムを生成してプログラム格納部14へ格納する部分である。こうして、プログラム格納部14には、上記自動コード生成部12により生成された制御プログラムが格納される。
図4に、先の図3に示した制御モデルから自動生成される制御プログラムを例示する。同図4に示すように、先の図3に示した制御モデルにおけるブロックB3の処理はブロックB5の処理に先立って行われる必要があるにもかかわらず、この制御プログラムでは、ブロックB5に対応する処理の後にブロックB3に対応する処理が行われる。これは、制御モデルには各機能ブロックの示す処理の実行順序が必ずしも定められているわけではなく、自動コード生成部12によってこの実行順序が新たに規定されることに起因している。すなわち上述のように、制御モデルにはブロックB5とブロックB3との処理の順序が規定されていないため、これらの処理の実行順序が自動コード生成部12によって新たに規定される際、適切なものとならなかった場合を図4は示している。
また、図2に示すシステムにおいて、対応情報作成部16は、上記自動コード生成部12が制御プログラムを生成するに際して、同自動コード生成部12の有する情報に基づいて制御モデルと制御プログラムとの対応関係を表す対応情報を作成し、これを対応情報格納部18へ格納する部分である。この対応情報は、制御モデルのブロックと制御プログラムの実行ポイントとの対応関係を表す実行位置対応情報と、制御モデルのブロック結線(ブロック間の結線が表す変数)やストレージ(ブロックB4等、記憶にかかるブロック)と制御プログラムの変数との対応関係を表す変数対応情報とを有している。
図5に、これら実行位置対応情報と変数対応情報とからなる対応情報を例示する。同図5においては、実行位置対応情報として、制御モデルのブロックと、制御プログラムの有するラベルL1〜L5とが対応付けられている。また、変数対応情報として、制御モデルのブロック結線/ストレージと制御プログラムの変数とが対応付けられている。これら対応情報が、図2に示した対応情報格納部18に格納されることになる。
また、図2に示すシステムにおいて、シミュレーション部(シミュレーション手段)20は、モデル格納部10から制御モデルを入力し、その動作をシミュレーションする部分である。
他方、同図2に示すシステムにおいて、プログラム実行部(プログラム実行手段)22は、プログラム格納部14から制御プログラムを入力し、これを実行する部分である。なお、この実施形態においては、このプログラム実行部22としてデバッガ機能付きのコンパイラを利用している。
また、同システムにおいて、ブレークポイント設定部24は、外部からの入力に基づき制御モデル及び制御プログラムのいずれかに動作の停止箇所を指定するブレークポイントの設定をシミュレーション部20及びプログラム実行部22に指示する部分である。このブレークポイントは、制御モデルの各ブロック毎に設定可能とする。また、このブレークポイントは、例えば制御プログラムの上記ラベルL1〜L5を用いて指定される各実行ポイントに設定可能とする。
また、図2に示すシステムにおいて、同期部(同期手段)26は、上記ブレークポイント設定部24を通じて制御モデル及び制御プログラムのいずれか一方に、その動作の停止箇所を指定するブレークポイントが設定されたとき、上記対応情報に基づき、他方に対し対応する動作の停止箇所を指定するブレークポイントを設定する機能を有する部分である。すなわちここでは、上記対応情報のうちの実行位置対応情報を用いて、制御モデルのブロックから対応する制御プログラムの実行ポイントを検索することで、又は、制御プログラムの実行ポイントから制御モデルのブロックを検索することで、ブレークポイントを設定する。
更に、この同期部26は、シミュレーション部20及びプログラム実行部22の動作が双方ともブレークポイントにて一旦停止したときに、これらシミュレーション部20及びプログラム実行部22の動作結果を比較する比較部(比較手段)を備えている。
また、図2に示すシステムにおいて、表示部(表示手段)28は、通常の操作案内表示等をはじめ、上記比較部による比較結果により不一致が検出され、制御モデル及び制御プログラムのいずれかに問題があるときなどにこれを可視表示する部分である。また、結果格納部30には、上記比較部による比較結果が格納される。
ちなみに、この図2に示すシステムにおける上記モデル格納部10、プログラム格納部14、対応情報格納部18、結果格納部30は、例えばハードディスク装置等の記憶装置によって構成される。また、自動コード生成部12、対応情報作成部16、シミュレーション部20、プログラム実行部22、ブレークポイント設定部24、同期部26は、処理手順に関するプログラムが記録された例えばハードディスク装置やROM等の記憶装置とコンピュータとによって構成される。
以下、こうした構成を有するシステム(検査装置)を通じて実行される制御プログラムの検査及びデバッグにかかる処理について詳細に説明する。
本実施形態では、モデル格納部10に格納された制御モデルをシミュレーションするシミュレーション部20とプログラム格納部14に格納された制御プログラムを実行するプログラム実行部22との各動作結果を同期部26を通じて同期(関連付け)させる。そして、上述したブレークポイントでこれらシミュレーション部20とプログラム実行部22との動作が停止したとき、上記比較部によってシミュレーションの結果とプログラムの実行結果とを比較することで、制御モデルや制御プログラムの異常の有無を検査する。そして、この検査の結果、制御プログラムに問題があるときには、又は、制御モデルが妥当な制御プログラムを生成することができないときには、制御プログラムや制御モデルを修正する。
このように、制御プログラムの実行結果と制御モデルのシミュレーション結果とを関連付けて比較することで、制御モデルが規定する各処理について同制御モデルの有しない実行順序が新たに規定されることがある制御プログラムと、制御モデルとの対応関係を簡易に把握することができるようになる。したがって、モデルベース開発を行う場合にあって、制御プログラムや制御モデルの異常の有無の検査を簡易に行うことができるようになる。
ここでまず、上記ブレークポイント設定部24及び同期部26によるブレークポイントの設定にかかる処理について図6を参照して説明する。なお、同図6は、同期部26によるブレークポイントの設定にかかる処理の手順を示すフローチャートである。
この一連の処理においては、ステップS301及びステップS302において、上記ブレークポイント設定部24を通じて上記シミュレーション部20及び上記プログラム実行部22のいずれかからブレークポイントが設定されたか否かを判断する。すなわち、同期部26では、シミュレーション部20及びプログラム実行部22にアクセスすることで、ブレークポイントの設定がなされたか否かを判断する。
そして、ステップS301においてブレークポイントの設定がなされた旨判断されると、ステップS303の処理に移行する。このステップS303では、実行位置対応情報に基づいて制御モデル上に設定されたブレークポイントに該当する制御プログラム上の位置を決定するとともに、この決定された位置をブレークポイントとして制御プログラム上に設定するようにプログラム実行部22に指示する。
また、ステップS302においてブレークポイントの設定がなされた旨判断されると、ステップS304の処理に移行する。このステップS304では、実行位置対応情報に基づいて制御プログラム上に設定されたブレークポイントに該当する制御モデル上の位置を決定するとともに、この決定された位置をブレークポイントとして制御モデル上に設定するようにシミュレーション部20に指示する。
そして、ステップS303、S304の処理が終了した場合やステップS302にてブレークポイントの設定がなされていない旨判断された場合には、この一連の処理を終了する。なお、この一連の処理を、所定周期で繰り返し実行する代わりに、シミュレーション部20に制御モデルが取り込まれるとともに、プログラム実行部22に制御プログラムが取り込まれることをトリガとして行うようにすることがより望ましい。
ちなみに、このブレークポイントは、先の図3に示した制御モデルにおいては、例えばブロックB3とブロックB5とにそれぞれ設けるようにすればよい。また、最終的な出力となるブロックB7にのみ設けるようにしてもよい。
次に、上記シミュレーション部20による制御モデルのシミュレーションにかかる処理について図7を用いて説明する。なお、同図7は、制御モデルのシミュレーションにかかる処理の手順を示すフローチャートである。
この一連の処理においては、まずステップS311において、モデル格納部10に格納されている制御モデルを取り込む。次に、ステップS312、S313において、制御モデルの所定箇所にブレークポイントを設定する。すなわち、このステップS312、S313においては、上記ブレークポイント設定部24の指示によりブレークポイントを設定するか、先の図6に示した処理にて同期部26の指示によりブレークポイントを設定するかのいずれかの処理を行う。
続くステップS314においては、上記同期部26からシミュレーションの実行の指示があったか否かを判断する。そして、ステップS314にて実行の指示があった旨判断されると、ステップS315にて制御モデルのシミュレーションを実行する。このシミュレーションは、上記シミュレーション部20に例えばセンサ信号等に相当する擬似的なデータを与え、同シミュレーション部20に上記制御モデルに基づきそのデータを処理させるようにして行われる。
また、このシミュレーションは、制御モデルの全ての実行が終了するまで(ステップS316)、又は、ブレークポイントを検出するまで(ステップS317)行われる。そして、ステップS317にてブレークポイントが検出されると、シミュレーションを停止させるとともに、ステップS318において、上記表示部28、あるいはシミュレーション部20自身の備える表示器等の出力装置を通じて外部にシミュレーションを停止している旨を通知する。
このようにブレークポイントにてシミュレーションを停止すると、上記同期部26からの新たな実行指示(ステップS314)、又は同期部26からの異常通知(ステップS319)に備えて待機することとなる。そして、新たな実行指示があった場合には、ステップS315以降の処理を行うことで、制御モデルのシミュレーションを再開する。
一方、ステップS319において同期部26からの異常通知があった場合にはこの一連の処理を終了する。なお、この際、シミュレーション部20は異常通知があったときの停止位置の情報を有しているため、これを上記表示部28や同シミュレーション部20自身の備える表示器等の出力装置を通じて外部に出力することが望ましい。さらに、同期部26から異常通知があった場合には、上記結果格納部30(図2)に異常情報を格納し、ステップS314にて、同期部26からの実行指示に備えて待機するように構成してもよい(図7の破線参照)。また、この異常通知が変数についての異常通知である場合、当該シミュレーションによって演算された変数値を変更可能としてもよい。すなわち、再度制御モデルのシミュレーション条件と制御プログラムの実行条件とを等しくすべく同シミュレーションによって演算された変数値を変更してステップS314にて待機するようにしてもよい。
また、ステップS316において、全てのシミュレーションが完了した旨判断される場合には、ステップS320において、上記表示部28やシミュレーション部20自身の備える表示器等の出力装置を通じて外部にシミュレーションが完了した旨を通知し、この一連の処理を終了する。
次に、上記プログラム実行部22による制御プログラムの実行にかかる処理について図8を用いて説明する。なお、同図8は、制御プログラムの実行にかかる処理の手順を示すフローチャートである。
この一連の処理においては、まずステップS331において、プログラム格納部14に格納されている制御プログラムを取り込む。次に、ステップS332、S333において、制御プログラムの所定箇所にブレークポイントを設定する。すなわち、このステップS332、S333においては、上記ブレークポイント設定部24の指示によりブレークポイントを設定するか、先の図6に示した処理にて同期部26の指示によりブレークポイントを設定するかのいずれかの処理を行う。
続くステップS334においては、上記同期部26から制御プログラムの実行の指示があったか否かを判断する。そして、ステップS334にて実行の指示があった旨判断されると、ステップS335にて制御プログラムを実行する。この制御プログラムの実行も、上記プログラム実行部22に例えばセンサ信号等に相当する擬似的なデータを与え、同プログラム実行部22に上記制御プログラムに基づきそのデータを処理させるようにして行われる。
また、このプログラムの実行は、制御プログラムの全てを実行するまで(ステップS336)、又は、ブレークポイントを検出するまで(ステップS337)行われる。そして、ステップS337にてブレークポイントが検出されると、制御プログラムの実行を停止させるとともに、ステップS338において、上記表示部28やプログラム実行部22自身の備える表示器等の出力装置を通じて外部に制御プログラムの実行を停止している旨を通知する。
このようにブレークポイントにて制御プログラムの実行を停止すると、上記同期部26からの新たな実行指示(ステップS334)、又は同期部26からの異常通知(ステップS339)に備えて待機することとなる。そして、新たな実行指示があった場合には、ステップS335以降の処理を行うことで、制御プログラムの実行を再開する。
一方、ステップS339において同期部26からの異常通知があった場合にはこの一連の処理を終了する。なお、この際、プログラム実行部22は異常通知のあったときの停止位置の情報を有しているため、これを上記表示部28や同プログラム実行部22自身の備える表示器等の出力装置を通じて外部に出力することが望ましい。さらに、同期部26から異常通知があった場合には、上記結果格納部30(図2)に異常情報を格納し、ステップS334にて同期部26からの実行指示に備えて待機するように構成してもよい(図8の破線参照)。また、異常通知が変数についての異常通知である場合、当該制御プログラムの実行によって演算された変数値を変更可能としてもよい。すなわち、再度制御モデルのシミュレーション条件と制御プログラムの実行条件とを等しくすべく同制御プログラムの実行によって演算された変数値を変更してステップS334にて待機するようにしてもよい。
また、ステップS336において、全ての制御プログラムの実行が完了した旨判断される場合には、ステップS340において、上記表示部28やプログラム実行部22自身の備える表示器等の出力装置を通じて外部に制御プログラムの実行が完了した旨を通知し、この一連の処理を終了する。
次に、上記同期部26により行われる制御モデル及び制御プログラムの異常の有無の検査にかかる処理について図9を用いて説明する。なお、同図9は、この検査にかかる処理の手順を示すフローチャートである。この処理は、先の図6に示した処理が終了したことを前提として、換言すれば、制御モデル及び制御プログラムの双方にブレークポイントが設定されたことを前提として行われる。
この一連の処理においては、まずステップS351において、制御モデルのシミュレーションを実行するように上記シミュレーション部20に指示するとともに、制御プログラムを実行するように上記プログラム実行部22に指示する。これら制御モデルのシミュレーションと制御プログラムの実行は、上記シミュレーション部20により制御モデルが停止されて且つ、上記プログラム実行部22により制御プログラムが停止されるまでの間にわたって行われる。なおこの際、制御モデルのシミュレーションと制御プログラムの実行とを同一の条件で行うべく、制御モデル及び制御プログラムへの入力データ(初期値)は同一データとする。
そして、ステップS352において、制御モデル及び制御プログラムの双方が停止されていると判断され、且つステップS353においてこれら制御モデル及び制御プログラムの双方が実行完了していないと判断されると、ステップS354以降の処理において、上記制御モデル及び制御プログラムの異常の有無についての検査を行う。
すなわち、ステップS354では、上記実行位置対応情報に基づき、制御モデルの停止位置と、制御プログラムの停止位置とが互いに対応する位置となっているか否かを確認する。そして、互いに対応する位置となっていないと判断されると(ステップS355)、ステップS356において上記表示部28を通じて制御モデルと制御プログラムとの停止位置が互いに一致しない旨(「停止位置異常」)を表示する。
一方、ステップS355において停止位置が一致すると判断されると、ステップS357の処理に移行する。このステップS357では、上記変数対応情報に基づき、制御モデル側の当該停止箇所のブロック結線やストレージの値(変数値)と、制御プログラム側の当該停止箇所において保持されている変数値とが互いに対応するものであるか否かを判断する。そして、互いに対応するものでないと判断されると(ステップS358)、ステップS359において上記表示部28を通じて制御モデルのブロック結線やストレージと制御プログラムの変数値とが互いに対応するものでない旨(「変数値異常」)を表示する。
ちなみに、上記制御モデルのブロック結線やストレージの値と制御プログラムの変数値とが互いに対応するものであるか否かは、これら2つの値の差としての許容範囲を予め定めておき、この許容範囲にあるか否かで判断するようにする。例えば、制御モデルのブロック結線やストレージの値と制御プログラムの変数値とが互いに整数演算された値である場合には、両者の一致のみを許容範囲とする。また例えば、制御モデルのブロック結線やストレージの値と制御プログラムの変数値とが互いに浮動小数点型の値である場合には、両者の差の絶対値が所定値以下であることを許容範囲とする。
そして、上記ステップS358において、変数値が許容範囲にあると判断されたときには、ステップS351に戻り、制御モデルのシミュレーションと制御プログラムの実行とが再開されることとなる。また、ステップS353において、制御モデルと制御プログラムとが全て実行されたと判断されると、ステップS360において、上記表示部28を通じてその旨(「全て実行完了」)を表示する。
一方、上記ステップS356、S359、S360の各処理が終了すると、この一連の処理を終了する。なお、上記ステップS353において制御モデルと制御プログラムとが全て実行されたと判断されたときには、ステップS360の処理に移行するに先立って、ステップS357等の処理を行うようにしてもよい。
このように本実施形態では、上記同期部26(比較部)により制御モデルの停止位置と、制御プログラムの停止位置とが互いに対応する位置となっているか否かを判断するようにした。これにより、制御モデルの指定する複数の処理について、上記自動コード生成部12によって生成された制御プログラムに新たに実行順序が規定されたとき、これが適切でない場合にはこれを検出することができる。
また、処理順序に誤りがある場合や生成された制御プログラム自体に誤りがある場合には、図9の処理により、変数値の違いを検出することができる。
このように、本実施形態では、制御プログラムのデバッグ作業において問題が検出されたとき、制御モデルの位置及び同制御モデルでの処理状態(ブロック結線やストレージ)との関連付けを自動的に行うことができる。
そして、以上説明した作業、すなわち先の図1に示したステップS3の処理にあたる制御プログラムのデバッグを行った結果、制御プログラムが妥当である旨判断されれば、次に、同制御プログラムを例えばROM(Read Only Memory)等に焼き付けて(記憶させて)、これを電子制御装置に搭載することとなる。その後、ステップS4(図1)の処理、すなわち同制御プログラムを実装した電子制御装置によって実際の車両でのデバッグ、適合を行い、制御プログラムに異常がある旨判断されるときは、制御プログラムや制御モデルの修正を検討することとなるのは前述した通りである。
以上詳述したように、本実施形態によれば、以下の効果が得られるようになる。
(1)制御プログラムをプログラム実行部22によって実行することでその異常の有無の検査を行うに際し、これを制御モデルのシミュレーションと同期させるようにすることで、これら制御モデルのシミュレーション状況と制御プログラムの実行状況とを簡易に比較することができるようになる。
(2)対応情報作成部16の作成する対応情報を用いることで、シミュレーション部20による制御モデルのシミュレーションの実行位置とプログラム実行部22による制御プログラムの実行位置とを適切に対応付けることができる。
(3)制御モデル及び制御プログラムのいずれか一方にブレークポイントが設定されたときに、同期部26により他方にもブレークポイントが自動的に設定されるようにした。このため、例えば、外部からユーザが制御モデル及び制御プログラムのうちのいずれか一方を任意に選択してブレークポイントを設定することで上記同期処理が可能となる。
(4)ブレークポイントを制御モデルの各機能ブロック毎に設定可能としたことで、生成される制御プログラムに新たに実行順序が規定される場合であれ、その異常の有無を、制御モデルと対応させつつ簡易に検査することができるようになる。
(5)制御モデルのシミュレーションの順序と制御プログラムのプログラム実行順序とを比較することで、この実行順序の不一致にかかる異常を自動的に検出することができるようになる。
(6)比較部によって制御モデルのシミュレーションによって生成される値と制御プログラムの実行にかかる変数値とを比較することで、これらの不一致にかかる異常を自動的に検出することができるようになる。
(7)変数についての異常通知があったとき、図7のステップS319及び図8のステップS339においてそれら変数値の少なくとも一方を変更可能とした場合には、次のような効果も奏される。すなわち、変数異常がある旨判断がなされた場合であれ、再度制御モデルのシミュレーション条件と制御プログラムの実行条件とを等しくすることができ、ひいては異常がある旨判断された箇所から異常の有無の検査を再開することが可能となる。
(8)比較部による比較結果が不一致のときにこれを表示部28に出力して可視表示させることで、ユーザ自身が異常がある旨判断された箇所を簡易に把握することができるようになる。
なお、上記実施形態は、以下のように変更して実施してもよい。
・シミュレーション部20及びプログラム実行部22の動作の停止箇所は、上述したものに限らない。例えば制御プログラムをプログラム実行部22により1行ずつ実行及び停止させつつシミュレーション部20をこれと同期させてもよい。これは、例えば制御プログラム側に1行ずつブレークポイントを設定するとともに、先の図6に示した処理によって制御モデルのブレークポイントを設定することで行ってもよい。
・シミュレーション部20やプログラム実行部22は、必ずしも制御モデルや制御プログラムに入力データを与えることでシミュレーション及びプログラムの実行を行うものに限らない。例えば制御プログラムの制御対象及び同対象を取り巻く環境をコンピュータ上で擬似的に生成しつつ上記制御モデルや制御プログラムの検査を行うものであってもよい。
・ブレークポイント設定部24の機能についてこれを上記シミュレーション部20自身に備えるようにしてもよい。また、同機能を上記プログラム実行部22自身に備えるようにしてもよい。
・上記実施形態では、異常の有無の検査に際して用いられる許容範囲を変数値のデータ型に応じて変更するようにしたが、許容範囲の設定の仕方は任意である。また、必ずしも許容範囲を設定する必要はなく、両者の一致のみを異常の有無の判断基準としてもよい。
・上記実施形態では、変数についての異常通知があった場合に、図7のステップS319及び図8のステップS339においてそれら変数値の少なくとも一方を変更可能とすることについても考慮した。これに代えて、例えば正常時に上記変数値としてあえて異常データを入力して制御プログラムの検査を行うように構成してもよい。
・制御モデルから自動生成される制御プログラムとしては、C言語にて記述されるものに限らず、適宜のプログラム言語にて記述される制御プログラムであればよい。この制御プログラムが制御モデルの規定する処理について同制御モデルにおいて規定されない実行順序が新たに規定されることがあるものであるなら、この制御プログラムと制御モデルとを同期させて検査をすることは特に有効である。
・上記実施形態では、同期部26が、制御モデルのシミュレーション結果と制御プログラムの実行結果とを比較する比較部を備え、比較結果が不一致のときにこれを表示部28に出力する構成とした。これに代えて、同期部26が、制御モデルのシミュレーション結果と制御プログラムの実行結果を受信して比較することなく、そのまま表示部28に出力する構成としてもよい。また、表示部28への出力は同期部26を経由せず、直接シミュレーション部20及びプログラム実行部22から表示部28にて表示してもよい。また、上記同期部26を経由して、あるいは経由せずに出力される各動作結果を、データファイル等として適宜の記憶装置に格納する構成としてもよい。
・上記対応情報作成部16や同期部26等をコンピュータとソフトウェアにて構成する代わりに、専用のハードウェアにて構成してもよい。
・制御プログラムの検査工程としては、モデルベース開発を用いるとともに、制御モデルのシミュレーションと制御プログラムの実行とを同期させつつこれらの異常の有無を検査する範囲で適宜変更してよい。
・車載エンジンの制御プログラムの作成に限らず、モデルベース開発を採用して制御プログラムを作成する場合には、本発明の適用は有効である。
本実施形態にかかる制御プログラムの作成並びに検査手順を示すフローチャート。 同実施形態にかかる制御プログラムの生成及び検査を行うシステムの構成を示すブロック図。 制御モデルを例示するブロック図。 自動生成される制御プログラムを例示する図。 上記実施形態にかかる制御モデルと制御プログラムとの対応関係を表す対応情報を例示する図。 同実施形態におけるブレークポイントの設定にかかる処理の手順を示すフローチャート。 同実施形態にかかるシミュレーション部による処理の手順を示すフローチャート。 同実施形態にかかるプログラム実行部による処理の手順を示すフローチャート。 同実施形態にかかる同期部による処理の手順を示すフローチャート。
符号の説明
10…モデル格納部、12…自動コード生成部、14…プログラム格納部、16…対応情報作成部、18…対応情報格納部、20…シミュレーション部、22…プログラム実行部、24…ブレークポイント設定部、26…同期部(比較部)、28…表示部、30…結果格納部。

Claims (31)

  1. 制御要求仕様が要求仕様記述言語にて記述された制御モデルから所定のプログラム言語にて記述された制御プログラムを自動生成する自動コード生成手段を用いて該所定のプログラム言語にて記述された制御プログラムを検査する制御プログラムの検査方法において、
    前記制御モデルの挙動をシミュレーションするシミュレーション手段の動作結果と前記制御プログラムを実行するプログラム実行手段の動作結果とのそれぞれ対応する動作結果毎にこれらを関連付けして出力して、前記制御モデル及び前記制御プログラムの少なくとも一方の異常の有無を検査する
    ことを特徴とする制御プログラムの検査方法。
  2. 前記関連付けが、前記自動コード生成手段による制御プログラムの自動生成に際して取得される前記制御モデルと該制御モデルから生成される制御プログラムとの対応関係を表す対応情報に基づいて行われる
    請求項1記載の制御プログラムの検査方法。
  3. 前記関連付けが、前記制御モデル及び前記制御プログラムのいずれか一方に対して動作の停止箇所を指定するブレークポイントが設定されることに基づき、他方に対しても前記対応情報に基づきその対応するブレークポイントが設定されることによって行われる
    請求項2記載の制御プログラムの検査方法。
  4. 前記ブレークポイントが、前記制御モデルを構成する各機能ブロック毎に設定可能とされる
    請求項3記載の制御プログラムの検査方法。
  5. 前記各動作結果についてのそれぞれ関連付けされた動作結果の出力が、前記プログラム実行手段により前記制御プログラムを1行ずつ実行及び停止させることによって行われる
    請求項2記載の制御プログラムの検査方法。
  6. 請求項2〜5のいずれかに記載の制御プログラムの検査方法において、
    前記異常の有無の検査が、前記関連付けされた前記シミュレーション手段の動作結果と前記プログラム実行手段の動作結果とを逐次比較する比較手段によって行われる
    ことを特徴とする制御プログラムの検査方法。
  7. 前記比較手段によるシミュレーション手段の動作結果と前記プログラム実行手段の動作結果との逐次比較が、前記対応情報に基づく前記制御モデルのシミュレーション順序と前記制御プログラムの実行順序との比較として行われる
    請求項6記載の制御プログラムの検査方法。
  8. 前記比較手段によるシミュレーション手段の動作結果と前記プログラム実行手段の動作結果との逐次比較が、前記対応情報に基づき前記制御モデルのシミュレーションによって演算される変数値と前記制御プログラムの実行によって演算される変数値との比較として行われる
    請求項6又は7記載の制御プログラムの検査方法。
  9. 前記対応情報に基づく前記制御モデルのシミュレーションによって演算される変数値と前記制御プログラムの実行によって演算される変数値との比較による異常の有無の検査が、前記制御モデルのシミュレーションによって演算される変数値と前記制御プログラムの実行によって演算される変数値との差が許容範囲内にないか否かによって行われる
    請求項8記載の制御プログラムの検査方法。
  10. 請求項6〜9のいずれかに記載の制御プログラムの検査方法において、
    前記比較手段により異常がある旨の判断がなされたとき、その時点での前記制御モデルのシミュレーション箇所と前記制御プログラムの実行箇所とを前記検査の結果として出力する
    ことを特徴とする制御プログラムの検査方法。
  11. 請求項1〜10のいずれかに記載の制御プログラムの検査方法において、
    前記検査に伴って前記制御モデルのシミュレーション及び前記制御プログラムの実行が停止されるとき、前記制御モデルのシミュレーションによって演算される変数値の停止箇所において保持されている値及び前記制御プログラムの実行によって演算される変数値の停止箇所において保持されている値の少なくとも一方を変更可能とする
    ことを特徴とする制御プログラムの検査方法。
  12. 請求項1〜11のいずれかに記載の制御プログラムの検査方法において、
    少なくとも前記制御モデルの挙動をシミュレーションするシミュレーション手段の動作結果と前記制御プログラムを実行するプログラム実行手段の動作結果とを表示手段に出力して可視表示させる
    ことを特徴とする制御プログラムの検査方法。
  13. 制御要求仕様が要求仕様記述言語にて記述された制御モデルから所定のプログラム言語にて記述された制御プログラムを自動生成する自動コード生成手段を用いて該所定のプログラム言語にて記述された制御プログラムを検査する制御プログラムの検査装置において、
    前記制御モデルの挙動をシミュレーションするシミュレーション手段の動作結果と前記制御プログラムを実行するプログラム実行手段の動作結果とのそれぞれ対応する動作結果毎にこれらを関連付けして出力する同期手段を備え、これら出力される動作結果に基づいて前記制御モデル及び前記制御プログラムの少なくとも一方の異常の有無を検査する
    ことを特徴とする制御プログラムの検査装置。
  14. 前記同期手段は、前記自動コード生成手段による制御プログラムの自動生成に際して取得される前記制御モデルと該制御モデルから生成される制御プログラムとの対応関係を表す対応情報に基づいて前記関連付けを行う
    請求項13記載の制御プログラムの検査装置。
  15. 前記同期手段は、前記制御モデル及び前記制御プログラムのいずれか一方に対して動作の停止箇所を指定するブレークポイントが設定されることに基づき、他方に対しても前記対応情報に基づきその対応するブレークポイントを設定することによって前記関連付けを行う
    請求項14記載の制御プログラムの検査装置。
  16. 前記ブレークポイントが、前記制御モデルを構成する各機能ブロック毎に設定可能とされる
    請求項15記載の制御プログラムの検査装置。
  17. 前記同期手段による各動作結果の出力が、前記プログラム実行手段により前記制御プログラムを1行ずつ実行及び停止させることによって行われる
    請求項14記載の制御プログラムの検査装置。
  18. 請求項14〜17のいずれかに記載の制御プログラムの検査装置において、
    前記同期手段により関連付けされる前記シミュレーション手段の動作結果と前記プログラム実行手段の動作結果とを逐次比較することで前記異常の有無の検査を行う比較手段をさらに備える
    ことを特徴とする制御プログラムの検査装置。
  19. 前記比較手段によるシミュレーション手段の動作結果と前記プログラム実行手段の動作結果との逐次比較が、前記対応情報に基づく前記制御モデルのシミュレーション順序と前記制御プログラムの実行順序との比較として行われる
    請求項18記載の制御プログラムの検査装置。
  20. 前記比較手段によるシミュレーション手段の動作結果と前記プログラム実行手段の動作結果との逐次比較が、前記対応情報に基づき前記制御モデルのシミュレーションによって演算される変数値と前記制御プログラムの実行によって演算される変数値との比較として行われる
    請求項18又は19記載の制御プログラムの検査装置。
  21. 前記対応情報に基づく前記制御モデルのシミュレーションによって演算される変数値と前記制御プログラムの実行によって演算される変数値との比較による異常の有無の検査が、前記制御モデルのシミュレーションによって演算される変数値と前記制御プログラムの実行によって演算される変数値との差が許容範囲内にないか否かによって行われる
    請求項20記載の制御プログラムの検査装置。
  22. 請求項18〜21のいずれかに記載の制御プログラムの検査装置において、
    前記比較手段は、異常がある旨の判断がなされたとき、その時点での前記制御モデルのシミュレーション箇所と前記制御プログラムの実行箇所とを前記検査の結果として出力するものである
    ことを特徴とする制御プログラムの検査装置。
  23. 請求項13〜22のいずれかに記載の制御プログラムの検査装置において、
    前記検査に伴って前記制御モデルのシミュレーション及び前記制御プログラムの実行が停止されるとき、前記制御モデルのシミュレーションによって演算される変数値の停止箇所において保持されている値及び前記制御プログラムの実行によって演算される変数値の停止箇所において保持されている値の少なくとも一方を変更可能とする
    ことを特徴とする制御プログラムの検査装置。
  24. 請求項13〜23のいずれかに記載の制御プログラムの検査装置において、
    少なくとも前記制御モデルの挙動をシミュレーションするシミュレーション手段の動作結果と前記制御プログラムを実行するプログラム実行手段の動作結果とを可視表示する表示手段をさらに備える
    ことを特徴とする制御プログラムの検査装置。
  25. 制御要求仕様が要求仕様記述言語にて記述された制御モデルから所定のプログラム言語にて記述された制御プログラムを自動生成する自動コード生成手段を用いて該所定のプログラム言語にて記述された制御プログラムを検査する際に用いられる検査プログラムであって、
    前記制御モデル及び前記制御プログラムの少なくとも一方の異常の有無を検査すべくコンピュータを通じて実行する手段として、
    a.前記制御プログラムを自動生成する際に取得される情報から前記制御モデルと前記制御プログラムとの対応関係を表す対応情報を生成し、前記制御モデルをシミュレーションするシミュレーション手段と前記制御プログラムを実行するプログラム実行手段との双方の動作の停止箇所を前記対応情報に基づき関連付けする手段、
    b.前記シミュレーション手段と前記プログラム実行手段との双方に対してシミュレーション及びプログラムの実行を指示する手段、
    c.前記シミュレーション及びプログラムの実行の後、前記シミュレーション手段及び前記プログラム実行手段の双方の停止を検出する手段、
    d.前記双方の停止を検出したとき、前記制御モデルのシミュレーションの結果と前記制御プログラムの実行の結果とを比較し、その比較結果に基づいて前記異常の有無を検査する手段、
    を含むことを特徴とする制御プログラムの検査プログラム。
  26. 前記対応情報は、前記制御モデルと前記制御プログラムとの互いに対応する位置の関係を表す情報である実行位置対応情報を含み、
    前記対応情報に基づき停止箇所を関連付けする手段は、前記シミュレーション手段及び前記プログラム実行手段のいずれか一方においてその動作の停止箇所を指定するブレークポイントが設定されることによって前記実行位置対応情報に基づき他方の対応する箇所を指定するブレークポイントを設定するものである
    請求項25記載の制御プログラムの検査プログラム。
  27. 前記比較結果に基づいて異常の有無を検査する手段は、少なくとも前記制御モデルのシミュレーションの停止位置と前記制御プログラムの実行の停止位置とを前記実行位置対応情報に基づき比較することによって前記異常の有無を検査する
    請求項26記載の制御プログラムの検査プログラム。
  28. 前記対応情報は、前記制御モデルの処理にかかる変数値と前記制御プログラムの処理にかかる変数値との対応関係を表す変数対応情報を含み、
    前記比較結果に基づいて異常の有無を検査する手段は、少なくとも前記制御モデルのシミュレーションによって演算される変数値と前記制御プログラムの実行によって演算される変数値とを前記変数対応情報に基づき比較することによって前記異常の有無を検査する
    請求項25〜27のいずれかに記載の制御プログラムの検査プログラム。
  29. 制御要求仕様が要求仕様記述言語にて記述された制御モデルから所定のプログラム言語にて記述された制御プログラムを自動生成する自動コード生成手段を用いて該所定のプログラム言語にて記述された制御プログラムを検査する際に用いられる検査プログラムであって、
    前記制御モデル及び前記制御プログラムの少なくとも一方の異常の有無を検査すべくコンピュータを通じて実行する手段として、
    a.前記制御プログラムを自動生成する際に取得される情報から前記制御モデルと前記制御プログラムとの対応関係を表す対応情報を生成し、前記制御モデルをシミュレーションするシミュレーション手段と前記制御プログラムを実行するプログラム実行手段との双方の動作の停止箇所を前記対応情報に基づき関連付けする手段、
    b.前記シミュレーション手段と前記プログラム実行手段との双方に対してシミュレーション及びプログラムの実行を指示する手段、
    c.前記シミュレーション及びプログラムの実行の後、前記シミュレーション手段及び前記プログラム実行手段の双方の停止を検出する手段、
    d.前記双方の停止を検出した後、前記シミュレーション手段によるシミュレーション結果及び前記プログラム実行手段による実行結果を出力する手段、
    を含むことを特徴とする制御プログラムの検査プログラム。
  30. 前記シミュレーション手段によるシミュレーション結果及びプログラム実行手段による実行結果を出力する手段は、それら各動作結果を表示手段に出力して可視表示させるものである
    請求項29記載の制御プログラムの検査プログラム。
  31. 前記対応情報は、前記制御モデルと前記制御プログラムとの互いに対応する位置の関係を表す情報である実行位置対応情報を含み、
    前記対応情報に基づき停止箇所を関連付けする手段は、前記シミュレーション手段及び前記プログラム実行手段のいずれか一方においてその動作の停止箇所を指定するブレークポイントが設定されることによって前記実行位置対応情報に基づき他方の対応する箇所を指定するブレークポイントを設定するものである
    請求項29又は30記載の制御プログラムの検査プログラム。
JP2003423583A 2003-02-28 2003-12-19 制御プログラムの検査方法及び検査装置及び検査プログラム Expired - Fee Related JP4403794B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2003423583A JP4403794B2 (ja) 2003-02-28 2003-12-19 制御プログラムの検査方法及び検査装置及び検査プログラム
US10/779,703 US7441235B2 (en) 2003-02-28 2004-02-18 Method, apparatus and program for testing control program
EP04004364A EP1452969A3 (en) 2003-02-28 2004-02-26 Method, apparatus and program for testing control program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2003054082 2003-02-28
JP2003423583A JP4403794B2 (ja) 2003-02-28 2003-12-19 制御プログラムの検査方法及び検査装置及び検査プログラム

Publications (2)

Publication Number Publication Date
JP2004280786A JP2004280786A (ja) 2004-10-07
JP4403794B2 true JP4403794B2 (ja) 2010-01-27

Family

ID=32775246

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003423583A Expired - Fee Related JP4403794B2 (ja) 2003-02-28 2003-12-19 制御プログラムの検査方法及び検査装置及び検査プログラム

Country Status (3)

Country Link
US (1) US7441235B2 (ja)
EP (1) EP1452969A3 (ja)
JP (1) JP4403794B2 (ja)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10352172A1 (de) * 2003-11-05 2005-06-09 Robert Bosch Gmbh Verfahren und Vorrichtung zur Anpassung von Funktionen zur Steuerung von Betriebsabläufen
US7370317B2 (en) 2004-01-23 2008-05-06 Microsoft Corporation Automated generation of message exchange pattern simulation code
WO2006111469A2 (en) * 2005-04-21 2006-10-26 Alstom Ferroviaria S.P.A. Control system for railway signalling network
JP4414373B2 (ja) * 2005-06-30 2010-02-10 富士通株式会社 プログラムの検証プログラム、プログラムの検証装置、プログラムの検証方法
JP5039948B2 (ja) * 2007-10-30 2012-10-03 インターナショナル・ビジネス・マシーンズ・コーポレーション プログラムを最適化するコンパイラ
US8458669B2 (en) * 2007-11-02 2013-06-04 International Business Machines Corporation Automated test system
GB0723039D0 (en) 2007-11-23 2008-01-02 Itw Ltd System,controller and method for synchronized capture and synchronized playback of data
US8627299B2 (en) 2008-02-29 2014-01-07 International Business Machines Corporation Virtual machine and programming language for event processing
US8397216B2 (en) * 2008-02-29 2013-03-12 International Business Machines Corporation Compiler for a declarative event-driven programming model
US8365149B2 (en) * 2008-02-29 2013-01-29 International Business Machines Corporation Debugger for a declarative event-driven programming model
JP5277126B2 (ja) * 2009-09-17 2013-08-28 東芝三菱電機産業システム株式会社 プログラム作成支援装置及び方法
EP2309354B1 (de) * 2009-10-01 2013-03-20 Siemens Aktiengesellschaft Vorrichtung und Verfahren zur Simulation
US8612931B2 (en) * 2010-07-14 2013-12-17 International Business Machines Corporation Interactive blueprinting for packaged applications
JP5680514B2 (ja) * 2011-09-29 2015-03-04 トヨタ自動車株式会社 自己診断機能を備えたコンピュータ、ソフトウェア作成方法、およびソフトウェア作成装置
CN104345724A (zh) * 2013-08-01 2015-02-11 比亚迪股份有限公司 用于汽车的自动启停装置的实现方法及系统
EP2894529B1 (en) * 2014-01-08 2019-10-23 Manitowoc Crane Companies, LLC Remote diagnostic system
US10809692B2 (en) * 2015-06-24 2020-10-20 Siemens Aktiengesellschaft Control contextualization and reasoning about control
EP3151114A1 (en) 2015-09-29 2017-04-05 Panasonic Intellectual Property Management Co., Ltd. Software development system in system development based on model-based method
CN106844203A (zh) * 2017-01-04 2017-06-13 重庆长安汽车股份有限公司 一种模型软件测试结果分析方法及装置
WO2018163304A1 (ja) * 2017-03-07 2018-09-13 三菱電機株式会社 ソースコード改善装置、ソースコード改善方法及びソースコード改善プログラム
JP6919338B2 (ja) * 2017-05-30 2021-08-18 オムロン株式会社 プログラム開発支援装置、プログラム開発支援システム、プログラム開発支援方法、および、プログラム開発支援プログラム
JP7052250B2 (ja) * 2017-08-10 2022-04-12 オムロン株式会社 情報処理装置、情報処理方法、および情報処理プログラム
JP2022139150A (ja) * 2021-03-11 2022-09-26 オムロン株式会社 情報処理装置、方法およびプログラム
JP2022139154A (ja) * 2021-03-11 2022-09-26 オムロン株式会社 情報処理システム、方法およびプログラム
US11789856B2 (en) * 2021-09-30 2023-10-17 Snap Inc. Application launch support

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5404496A (en) * 1992-07-01 1995-04-04 Hewlett-Packard Company Computer-based system and method for debugging a computer system implementation
US5456604A (en) * 1993-10-20 1995-10-10 Olmsted; Robert A. Method and system for simulating vehicle operation using scale models
JPH0916382A (ja) 1995-06-30 1997-01-17 Oki Electric Ind Co Ltd プログラム開発支援システム
JP2795244B2 (ja) 1996-01-17 1998-09-10 日本電気株式会社 プログラムデバッグシステム
JPH09305389A (ja) 1996-05-15 1997-11-28 Ricoh Co Ltd ソフトウエア開発支援のシミュレーション装置
JP3175757B2 (ja) * 1996-08-13 2001-06-11 日本電気株式会社 デバッグシステム
US5923867A (en) * 1997-07-31 1999-07-13 Adaptec, Inc. Object oriented simulation modeling
US7152027B2 (en) * 1998-02-17 2006-12-19 National Instruments Corporation Reconfigurable test system
US6243857B1 (en) 1998-02-17 2001-06-05 Nemasoft, Inc. Windows-based flowcharting and code generation system
US7085670B2 (en) * 1998-02-17 2006-08-01 National Instruments Corporation Reconfigurable measurement system utilizing a programmable hardware element and fixed hardware resources
US6434741B1 (en) * 1998-04-30 2002-08-13 Hewlett-Packard Company Method and apparatus for debugging of optimized code using emulation
US6052524A (en) * 1998-05-14 2000-04-18 Software Development Systems, Inc. System and method for simulation of integrated hardware and software components
JP2000020291A (ja) 1998-07-06 2000-01-21 Toyota Motor Corp 車両用プログラム開発支援方法および装置
US6502239B2 (en) 1998-11-12 2002-12-31 Computer Associates Think, Inc Method and apparatus for round-trip software engineering
JP3571976B2 (ja) * 1999-11-08 2004-09-29 富士通株式会社 デバッグ装置及び方法並びにプログラム記録媒体
US6823497B2 (en) * 1999-11-30 2004-11-23 Synplicity, Inc. Method and user interface for debugging an electronic system
US6587995B1 (en) * 2000-04-19 2003-07-01 Koninklijke Philips Electronics N.V. Enhanced programmable core model with integrated graphical debugging functionality
US6718294B1 (en) * 2000-05-16 2004-04-06 Mindspeed Technologies, Inc. System and method for synchronized control of system simulators with multiple processor cores
US6708329B1 (en) * 2000-05-26 2004-03-16 Itt Manufacturing Enterprises, Inc. Method and apparatus for producing modules compatible with a target system platform from simulation system modules utilized to model target system behavior
US20030005407A1 (en) * 2000-06-23 2003-01-02 Hines Kenneth J. System and method for coordination-centric design of software systems
JP4743944B2 (ja) * 2000-08-25 2011-08-10 鎮男 角田 シミュレーションモデル作成方法及びそのシステムと記憶媒体
US6859892B2 (en) * 2001-04-25 2005-02-22 Hewlett-Packard Development Company, L.P. Synchronous breakpoint system and method

Also Published As

Publication number Publication date
EP1452969A3 (en) 2010-06-02
US7441235B2 (en) 2008-10-21
JP2004280786A (ja) 2004-10-07
US20040181781A1 (en) 2004-09-16
EP1452969A2 (en) 2004-09-01

Similar Documents

Publication Publication Date Title
JP4403794B2 (ja) 制御プログラムの検査方法及び検査装置及び検査プログラム
JP4403945B2 (ja) 制御プログラムの検査方法及び検査装置及び検査プログラム
CN103279418B (zh) 一种组态控制信息的测试方法和装置
JP2004361292A (ja) 電子制御ユニットの自動検査装置
JP2009014406A (ja) 電子制御ユニットの自動検査装置
JP2010256354A (ja) 自動化システムを検証するための方法及び装置
CN100405323C (zh) 一种在指令级随机测试中支持ejtag测试的实现方法
WO2016017560A1 (ja) ソフトウェア検証システムおよび制御装置
JP2002163020A (ja) プログラマブルコントローラにおける異常検出方法およびその装置
JP6139670B2 (ja) 制御システム検査装置
JP2004027930A (ja) 車両用制御装置の評価方法
Hazott et al. Verifying embedded graphics libraries leveraging virtual prototypes and metamorphic testing
KR102172749B1 (ko) 선체 설계의 부재정보 가시화 시스템 및 그 가시화 방법
JP2008310513A (ja) プログラム検査装置
US20030105619A1 (en) Synchronized simulation of software and hardware in the analog domain
Burnard et al. Verifying and validating automatically generated code
JP5823478B2 (ja) 出力ファイル検証システム
JP2016200872A (ja) 制御プログラム作成装置、及び制御プログラムのデバッグ方法
Yang et al. An effective model-based development process using simulink/stateflow for automotive body control electronics
JP2004348596A (ja) Icテスタ用プログラムのデバッグ装置、方法、及びプログラム
CN101419054B (zh) 图像处理设备
JP2907060B2 (ja) デバッグ装置
JPH0652509B2 (ja) プログラム開発支援装置
JP2024501588A (ja) Plcプログラムの正しさをチェックするコンピュータ実施方法
JP2005049947A (ja) 実機レスシミュレーション装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061109

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20091013

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20091026

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121113

Year of fee payment: 3

R151 Written notification of patent or utility model registration

Ref document number: 4403794

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121113

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131113

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees