JP6877215B2 - コンピュータ上のシミュレーション環境において制御装置の制御プログラムをテストする方法 - Google Patents

コンピュータ上のシミュレーション環境において制御装置の制御プログラムをテストする方法 Download PDF

Info

Publication number
JP6877215B2
JP6877215B2 JP2017070951A JP2017070951A JP6877215B2 JP 6877215 B2 JP6877215 B2 JP 6877215B2 JP 2017070951 A JP2017070951 A JP 2017070951A JP 2017070951 A JP2017070951 A JP 2017070951A JP 6877215 B2 JP6877215 B2 JP 6877215B2
Authority
JP
Japan
Prior art keywords
program
variable
error
value
assigned
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.)
Active
Application number
JP2017070951A
Other languages
English (en)
Other versions
JP2017188112A (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.)
Dspace Digital Signal Processing and Control Engineering GmbH
Original Assignee
Dspace Digital Signal Processing and Control Engineering GmbH
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 Dspace Digital Signal Processing and Control Engineering GmbH filed Critical Dspace Digital Signal Processing and Control Engineering GmbH
Publication of JP2017188112A publication Critical patent/JP2017188112A/ja
Application granted granted Critical
Publication of JP6877215B2 publication Critical patent/JP6877215B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • G05B17/00Systems involving the use of models or simulators of said systems
    • G05B17/02Systems involving the use of models or simulators of said systems electric
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/261Functional testing by simulating additional hardware, e.g. fault simulation
    • 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/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Automation & Control Theory (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、コンピュータ上のシミュレーション環境において制御装置の制御プログラムをテストする方法に関する。
J.Mauss, “Chip simulation used to run automotive software on PC”, Proceedings to Embedded Real Time Software and Systems (ERTS) 2014から、制御装置ソフトウェアをPC上でテストするワークツールが公知であり、ここでは制御装置ソフトウェアがエミュレートされたプロセッサ上で実行され、環境データが模擬される。制御装置ソフトウェアの一部のみを検査するには、ユーザは仕様ファイルにおいて実行すべき機能の選択を指示すればよい。なお、仕様ファイルのエラーを求めるために、制御装置ソフトウェアの実行は、デバッガによってステップごとに行うことができる。
こうした背景から、本発明の課題は、従来技術を発展させた方法を提供することである。
この課題は、請求項1の特徴を有する、コンピュータ上のシミュレーション環境において制御装置の制御プログラムをテストする方法によって解決される。本発明の有利な実施形態は従属請求項の対象発明となっている。
本発明の対象発明により、コンピュータ上のシミュレーション環境において制御装置の制御プログラムをテストする方法が提供される。シミュレーション環境はコンピュータ上に作成される。制御プログラムはエミュレータによって実行され、ここで、エミュレータは、プロセッサ及びメモリ領域を有する制御装置の少なくとも一部を模擬する。エミュレータはコンピュータ上で実行され、データの入出力のためのインタフェースを有し、ここで、環境値がシミュレーション環境からインタフェースを介してエミュレートされたメモリ領域に書き込まれる。制御プログラムは、複数のプログラム変数を有し、ここで、制御プログラムは、この制御プログラムの実行中、少なくとも幾つかのプログラム変数に変数値を1つずつ割り当て、ここで、変数値は、エミュレートされたメモリ領域のメモリアドレスへのアクセスによって求められる。
エミュレータは、制御プログラムの各プログラム変数に、拡張された値領域を割り当てる。ここで、プログラム変数の1つずつに割り当てられた変数値は、拡張された値領域に格納され、エミュレータはプログラム変数をエラー有り又はエラー無しとマーキングする。
当該マーキングは、エラー無しのプログラム変数を第1のカテゴリに割り当て、エラー有りのプログラム変数を第2のカテゴリに割り当てることに基づいて行われる。この場合、第2のカテゴリの各プログラム変数の拡張された値領域は、データフィールドを有する。
これに代えて、拡張された値領域に格納されたエラーフィールドに基づいて、エラー無しのプログラム変数のエラーフィールドに予め定められた数値もしくは非数値の第1の有効値を割り当て、エラー有りのプログラム変数のエラーフィールドに予め定められた数値もしくは非数値の第1のエラー値を割り当てることにより、プログラム変数のマーキングを行い、ここで第1の有効値が第1のエラー値と異なっており、全てのプログラム変数の拡張された値領域がデータフィールドを有するようにしてもよい。
マーキングは、変数値を求める際に行われる。第1のプログラム変数の変数値を求めるために、エミュレートされたプロセッサが、エミュレートされたメモリ領域の、存在しておりかつ書き込まれているメモリアドレスにアクセスする場合、又は、第1のカテゴリに割り当てられた第2のプログラム変数もしくは第1の有効値を有するエラーフィールドを備えた第2のプログラム変数にアクセスする場合、プログラム変数がエラー無しとマーキングされ、求められた変数値が拡張された値領域に格納される。
第1のプログラム変数の変数値を求める際に、エミュレートされたプロセッサが、エミュレートされたメモリ領域の存在していないかもしくは書き込まれていない第2のメモリアドレスにアクセスする場合、又は、第2のカテゴリに割り当てられた第3のプログラム変数もしくは第1のエラー値を有するエラーフィールドを備えた第3のプログラム変数にアクセスする場合には、第1のプログラム変数がエラー有りとマーキングされ、第1のプログラム変数の変数値に、予め定められた数値もしくは非数値の第2のエラー値が割り当てられ、存在していないかもしくは書き込まれていない第2のメモリアドレス、又は、第3のプログラム変数のデータフィールドの全てのエントリのコピーが、第1のプログラム変数のデータフィールドに書き込まれる。
ここではいわゆるオフラインシミュレーション、すなわち、制御ソフトウェアがコンピュータ上、例えばPC上のシミュレーション環境においてテストされるシミュレーションを説明していることに注意されたい。オフラインシミュレーションでは大抵の場合、リアルタイムでのシミュレーションは必要ない。
エミュレータにより、制御装置プロセッサがエミュレートを行うことで、制御プログラムを直接に機械言語で実行することができる。エミュレータとしてここでは制御コンピュータを模擬するプログラムが挙げられ、これにより、エミュレータが模擬している制御コンピュータ上の制御プログラムを実行することができる。
制御装置のオンチップ機能、例えばCANコントローラ、AD/DA変換器もしくは制御装置の他の内部機能を表現するために、いわゆる制御装置記述ファイルへのアクセスが行われる。いわゆる制御装置記述ファイルは、全ての機能部、変数名及びその対応アドレスのリストを含み、例えばいわゆるa2lデータファイルであってよい。
本発明を理解するために、制御プログラムがプロセッサをエミュレートするエミュレータ上で実行されるため、本発明の方法においては機械言語で存在することに注意されたい。相応に、制御プログラムの変数はメモリアドレスによって表されるものであり、変数値は、エミュレートされたメモリの、変数に対応するメモリセルのメモリアドレスの1つに格納された変数値である。変数という概念の使用は、技術的観点における、機械言語で格納されたプログラムの説明には必要ない。本発明の明細書では、本発明の対象を明確にするためにこうした概念を用いているのみである。
したがって、本発明は、変数値が格納されたメモリアドレスに上述したように拡張された値領域が割り当てられ、拡張された値領域が割り当てられたメモリアドレスが上述したようにエラー有り又はエラー無しとマーキング可能であり、エミュレートされたメモリ領域の、存在していないかもしくは書き込まれていない第2のメモリアドレスから変数値の読み込みが試みられると、当該第2のメモリアドレスがエラー有りとマーキングされ、エラー有りとマーキングされた第3のメモリアドレスへのアクセスが試みられると、第1のメモリアドレスに新たな変数値を格納するために、第1のメモリアドレスがエラー有りとマーキングされるように構成可能であることと、技術的に同義に構成可能である。
シミュレーション環境の作成により、ユーザは、エミュレータが制御プログラムの実行に必要とするパラメータを形成する。環境値と称される当該パラメータは、ここでは、制御装置の変数値であっても外部センサもしくはその他の値であってもよく、例えばバイパスプロセスによって制御プログラムに供給可能である。
拡張された値領域により、変数の本来の値のほか、例えばエラーもしくは補完的機能に関する別の情報も管理できる。当該拡張された値領域は、例えばメモリの所定領域を含む。この領域はプログラム変数に割り当てられ、この領域にプログラム変数の変数値のほか、別の情報も格納される。
拡張された値領域のエントリの数及び形式は、全てのプログラム変数について等しくなるように構成できる。ここで、拡張された値領域は、変数値に加えて、エラーをマーキングするためにエラーフィールドを有し、エラーの伝播をドキュメント化するためにデータフィールドを有する。データフィールドには、エラー有りのプログラム変数の場合、数値もしくは非数値の第1のエラー値が割り当てられる。プログラム変数がエラーを有さない場合、エラーフィールドに数値もしくは非数値の第1の有効値が割り当てられる。
エラーフィールドは、プログラム変数をエラー有りもしくはエラー無しとマーキングするために用いられる。したがって、エラーが発生した場合にエラーフィールドに割り当てられる非数値もしくは数値の第1のエラー値は任意の値であってよいが、この値は一義的で、かつ、エラー無しの場合のエラーフィールドによって割り当てられた数値もしくは非数値の第1の有効値と異なっていなければならない。例えば、当該エラーフィールドには、エラーが発生していない場合、第1の有効値として値0を割り当てることができ、エラーが発生すると、この値が第1のエラー値1へ変更される。
エラーマーキングがプログラム変数をそれぞれ異なるカテゴリへ割り当てることによって行われる場合、プログラム変数の拡張された値領域の数及び形式は、対応するプログラム変数が割り当てられているカテゴリに応じて定められる。
カテゴリは、例えば、オブジェクト指向プログラミングにおけるクラスであってよい。クラスとして、属性及びプロセスに対応する変数形式が挙げられる。つまり、本発明の値領域はオブジェクト指向クラスにおける属性及びプロセスを含むことができる。拡張された値領域は変数の管理及び処理に並行して導かれる1つもしくは複数のリスト及び変数そのものから形成することができ、ここでは例えばカテゴリごとに1つのリストが定められ、リストに格納される情報はカテゴリによって設定される。
それぞれ異なるカテゴリへの割り当てによってエラーマーキングが行われる場合、エラーを有するために第2のカテゴリに属するプログラム変数の拡張された値領域は、変数値に加えて、エラー伝播のドキュメント化のためのデータフィールドを有する。エラー無しのプログラム変数は第1のカテゴリに属する。拡張された値領域は変数値のみを有すればよい。データフィールドは不要である。
エラー有りのプログラム変数の識別は、例えば第2のエラー値が非数値であって、制御プログラムにおける一義的な値である場合には、変数値そのものに基づいて可能である。エラー有りのプログラム変数の確実な識別は、エラーフィールドの値に基づいて、又は、プログラム変数のカテゴリに基づいて、可能である。
エラー有りのメモリアドレスへのアクセス又はエラー有りの変数へのアクセスが行われた際に変数値に割り当てられる第2のエラー値は、典型的には数値である有効性を表す変数値に対して一義的に区別可能な任意の非数値のエラー値、例えば“error”であってよい。ドキュメント化と、カテゴリ割り当てによるエラーマーキング又はエラーアクセスがあった場合のエラーフィールドによるエラーマーキングに基づいて、変数値に数値のエラー値、例えば0を割り当てることができる。
本発明の方法の利点は、エラーの発生が制御プログラムの循環動作を中断しないということである。エラー発生時にもエミュレータが制御プログラムを完全に実行することにより、制御プログラムの部分ごとのテストが可能である。制御プログラムの個々の機能がテストされる場合、テストすべき機能に必要な全ての環境値のみをシミュレーション環境で模擬し、エミュレータのインタフェースを介して、エミュレートされるメモリ領域に書き込めばよい。なぜなら、テストすべきでない他の機能に対する環境値であれば、欠落しても、制御プログラムの中断に到らないからである。
特に有利には、本来のエラー源に関する情報が引き継がれる。つまり、制御プログラムの循環動作の完了後、プログラム変数ごとに、エラー源のデータフィールドにエントリされているアドレスに基づいて直接に読み出しを行うことができる。これにより、作成されたシミュレーションのエラーもしくは不完全性に関する情報が、所期のように、関心対象としてのプログラム変数に関連して形成される。
一実施形態では、第1のプログラム変数の変数値を求める場合、第2のカテゴリに割り当てられたプログラム変数へのアクセス又は第1のエラー値を有するエラーフィールドを備えた第2のプログラム変数へのアクセスが行われた際に、第2のプログラム変数の識別子が第1のプログラム変数のデータフィールドに書き込まれる。これにより、エラー又はエラーの伝播の全経路がドキュメント化される。プログラム変数の識別子としては、プログラム変数を一義的に識別できさえすれば、例えばプログラム変数名もしくはプログラム変数のメモリアドレスなど、あらゆるパラメータが適する。
別の一実施形態によれば、制御プログラムが、第2のカテゴリに割り当てられた第1のプログラム変数もしくは第1のエラー値を有するエラーフィールドを備えた第1のプログラム変数に設定値を割り当てる場合、第1のプログラム変数がエラー無しとマーキングされ、当該設定値が変数値として第1のプログラム変数の拡張された値領域に格納される。ここで、第1のカテゴリもしくは第2のカテゴリへの割り当てに基づくマーキングが行われる場合には、データフィールドが拡張された値領域から消去され、エラーフィールドに基づくマーキングが行われる場合には、データフィールドの全てのエントリが消去される。これにより、エラーの伝播が防止される。有効値の割り当てによって、プログラム変数は再び有効とマーキングされるか又は続行される。
エラー伝播のドキュメント化に関連して、例えば必要なメモリアドレスをエミュレートすることによってエラーを必ずしもその源で除去するのでなく、後続するプログラム変数に直接に有効値を割り当てることによって除去する手段が得られる。
カテゴリ割り当てに基づくマーキングが行われる場合、エラーを有さないために第1のカテゴリに割り当てられたプログラム変数がデータフィールドを有する必要はないものと理解されたい。ただし、第1のカテゴリに割り当てられたプログラム変数の値領域に、エントリを有さないデータフィールドを設けることもできる。第1のカテゴリに割り当てられたプログラム変数もデータフィールドを有する場合には、第2のカテゴリから第1のカテゴリへのプログラム変数のカテゴリ変更が行われる際に、データフィールド全体が拡張された値領域から消去されるのでなく、データフィールドのエントリのみが全て消去されるか、又は、データフィールドのエントリの伝送が行われない。
別の一実施形態によれば、制御プログラムは少なくとも2つのプログラムブロックを有し、各プログラムブロックは、制御プログラムの定められた分岐規則にしたがって、所定の条件に応じて代替的に実行される。当該条件が、第2のカテゴリに割り当てられた第1のプログラム変数もしくは第1のエラー値を有するエラーフィールドを備えた第1のプログラム変数、すなわち、エラー有りの第1のプログラム変数に依存する場合、全てのプログラムブロックが実行される。制御プログラムの全ての代替的な規則が実行されることにより、制御プログラムの実行後に可能な全てのプログラム変数についてユーザに情報が提供される。
別の一実施形態によれば、プログラムブロックの実行中に値が割り当てられた別の全てのプログラム変数がエラー有りとマーキングされ、第1のプログラム変数のデータフィールドの全てのエントリのコピーのそれぞれが別のプログラム変数のデータフィールドに書き込まれて、当該別のプログラム変数の変数値にそれぞれ第2のエラー値が割り当てられる。これにより、制御プログラムの実行後には、定められた分岐規則に依存する全てのプログラム変数を確実かつ容易に識別できる。
代替的な一実施形態によれば、プログラムブロックの実行後、制御プログラムが第1のプログラムブロックの実行中及び別のプログラムブロックの実行中に変数値を割り当てた別のプログラム変数の全てについて、割り当てられた変数値が比較される。割り当てられた変数値の間に偏差がある場合、当該別のプログラム変数がエラー有りとマーキングされ、その変数値に第2のエラー値が割り当てられ、第1のプログラム変数のデータフィールドの全てのエントリのコピーが当該別のプログラム変数のデータフィールドに書き込まれる。これにより、実際に分岐規則に依存する変数値を有するプログラム変数のみがエラー有りとマーキングされて、エラー源に関する情報が形成されることが保証される。
例えば定められた分岐が形式のみに関する場合、例えば、種々のプログラムブロックでのプログラム変数に割り当てられる変数値が等しい場合、エラーはマーキングされないか又は引き継がれない。1つもしくは複数のプログラム変数に関してのみ、例えば唯一の変数Aについて、純粋に形式的に定められた分岐が存在するのに対し、別のプログラム変数の変数値は定められた分岐規則に依存する場合、1つもしくは複数のプログラム変数、例えば変数Aはエラー無しとマーキングされ、別のプログラム変数はエラー有りとマーキングされる。
本発明を以下に図を参照しながら詳細に説明する。この場合、同じ要素には同一の参照番号を付してある。図示の実施形態はきわめて模式的なものである。
エミュレータ及びシミュレーション環境を示す概略図である。 プログラム変数の第1の実施形態を示す概略図である。 プログラム変数の第2の実施形態を示す概略図である。
図1には、コンピュータ30上のエミュレータ20が、制御装置のプロセッサと当該制御装置のメモリ領域24とを模擬することで、機械言語で存在している(図示されていない)制御装置用の制御プログラム10を実行する、第1の実施形態の平面図が示されている。データの入出力のために、エミュレータ20はインタフェース22を有する。
制御プログラム10の1つもしくは複数の機能部F1,F2,F3をテストするために、コンピュータ30上のシミュレーション環境40において、1つもしくは複数の機能部F1,F2,F3が必要とする全ての環境値42が形成される。各環境値42は、エミュレートされたメモリ領域24への、データの入出力のためのインタフェース22を介した書き込みにより、エミュレータ20へ供給される。環境値42は、制御装置の変数、例えばオンチップコンポーネントによって利用可能となる複数の機能と、制御装置外、例えば外部センサなどから伝送されてくるデータとの双方を表すことができる。
制御プログラム10の実行中、プログラム変数に変数値が割り当てられる。このために、エミュレートされたメモリ領域24のメモリアドレスへのアクセス、又は、少なくとも1つの別のプログラム変数へのアクセスのいずれかが行われる。作成されたシミュレーション環境又は形成された各環境値が不完全である場合、エミュレートされたメモリ領域内の、制御プログラムの問い合わせを受けたメモリアドレスは欠落しているか又は記述されていない可能性がある。どちらの場合にもプログラム変数にエラー有りの変数値が生じる。したがって、エラー有りのプログラム変数へのアクセスから連鎖エラーが生じる。
本発明によれば、エラーをドキュメント化するために、プログラム変数に、拡張された値領域50,60,70が割り当てられる。図2の左側には、第1のプログラム変数の概略図が示されている。図示されている第1のプログラム変数は、エラー無しのため、エミュレータ20により第1のカテゴリK1に割り当てられている。当該第1のプログラム変数は、変数値52を有する拡張された値領域50を有する。
図2の右側には、エラーを有するために第2のカテゴリK2に割り当てられた第2のプログラム変数の概略図が示されている。第1のプログラム変数の変数値52が任意の値を有するのに対して、第2のプログラム変数の変数値62にはつねに第2のエラー値errorが割り当てられる。第2のプログラム変数のデータフィールド64には、メモリアドレスが格納されている。当該メモリアドレスは、制御プログラム10の実行中、第2のプログラム変数への値割り当てのために問い合わされたメモリアドレスであって、エミュレートされたメモリ領域24に存在していないかもしくは書き込まれていないメモリアドレスに相当する。
図2に示されている第1の実施形態によれば、エラー有りのプログラム変数とエラー無しのプログラム変数とに対して、それぞれ異なるカテゴリK1,K2が設けられている。エミュレートされたメモリ領域の、存在していないかもしくは書き込まれていないメモリアドレスへのアクセスによってエラーが発生すると、プログラム変数に第2のカテゴリK2が割り当てられる。付加的に、変数値62に第2のエラー値errorが割り当てられ、当該メモリアドレスがデータフィールド64に書き込まれる。エラー有りの別のプログラム変数へのアクセスが行われてエラーが発生すると、第2のプログラム変数が同様に第2のカテゴリK2に割り当てられ、変数値62に第2のエラー値errorが割り当てられ、付加的に、エラー有りの別のプログラム変数のデータフィールドに書き留められている全てのメモリアドレスが第2のプログラム変数のデータフィールド64にコピーされる。
第2の実施形態が図3に示されている。ここでは、全てのプログラム変数が同一に構成された拡張された値領域70を有しており、この値領域70は変数値72及びデータフィールド74に加え、エラーフィールド76を含んでいる。エラー無しのプログラム変数のエラーフィールド76には、第1の有効値、例えば0が割り当てられている。エラーが発生すると、当該第2の実施形態ではカテゴリの変更は行われず、エラーフィールドに第1のエラー値、例えば1が割り当てられる。
エラーの引き継ぎにより、すなわち、メモリアドレスをデータフィールド64,74に書き込み又はコピーすることにより、循環動作後、発生したエラーについて必要な全ての情報が形成される。つまり、第1の機能部F1に関連する環境値のみがシミュレーション環境に形成され、インタフェース22を介してエミュレータに供給されることにより、制御プログラム10の第1の機能部F1のみをテストすることもできる。結果として、関心対象でない別の機能部F2,F3の出力値はエラーを有することになる。
変数値及び/又はカテゴリ及び/又は第1の機能部F1の出力値として送出されるプログラム変数のエラーフィールドに基づいて、第1の機能部F1の実行時にエラーが発生したか否かが検出される。プログラム変数のデータフィールド64,74は、どの位置でエラーが発生したか、及び、当該エラーがどのように伝播したかについての情報を送出する。

Claims (6)

  1. コンピュータ(30)上のシミュレーション環境(40)において制御装置の制御プログラム(10)をテストする際にエラーを監視する方法であって、
    ・前記シミュレーション環境(40)を前記コンピュータ(30)上に形成し、
    ・前記制御プログラム(10)をエミュレータによって実行し、
    ・プロセッサ及びメモリ領域(24)を有する前記制御装置の少なくとも一部を模擬するエミュレータを前記コンピュータ(30)上で実行し、ここで、前記エミュレータ(20)はデータの入出力のためのインタフェース(22)を有し、
    ・環境値(42)を、前記シミュレーション環境(40)から前記インタフェース(22)を介して、エミュレートされたメモリ領域(24)に書き込み、
    ・前記制御プログラム(10)は、複数のプログラム変数を有し、
    ・前記制御プログラム(10)は、前記制御プログラム(10)の実行中、少なくとも幾つかのプログラム変数に変数値(52,62,72)を1つずつ割り当て、
    ・前記変数値(52,62,72)を、前記エミュレートされたメモリ領域(24)のメモリアドレスへのアクセスによって求める、
    方法において、
    ・前記エミュレータは、前記制御プログラム(10)の全てのプログラム変数に、拡張された値領域(50,60,70)を1つずつ割り当て、
    ・前記プログラム変数に割り当てられた変数値(52,62,72)を、前記拡張された値領域(50,60,70)に格納し、
    ・前記エミュレータは、プログラム変数をエラー有り又はエラー無しとマーキングし、
    ・エラー無しのプログラム変数を第1のカテゴリ(K1)に割り当て、エラー有りのプログラム変数を第2のカテゴリ(K2)に割り当てることに基づいて前記マーキングを行い、前記第2のカテゴリ(K2)の全てのプログラム変数の前記拡張された値領域(60)がデータフィールド(64)を有するようにするか、又は、
    ・前記拡張された値領域(70)に格納されたエラーフィールド(76)に基づいて、エラー無しのプログラム変数の前記エラーフィールド(76)に予め定められた数値もしくは非数値の第1の有効値を割り当て、エラー有りのプログラム変数のエラーフィールド(76)に予め定められた数値もしくは非数値の第1のエラー値を割り当てることによって前記マーキングを行い、全てのプログラム変数の前記拡張された値領域(70)がデータフィールド(74)を有するようにし、
    ・前記マーキングを、変数値(52,62,72)を求める際に行い、
    ・第1のプログラム変数の変数値(52,72)を求める際に、エミュレートされたプロセッサ(20)が、前記エミュレートされたメモリ領域(24)の、存在しておりかつ書き込まれている第1のメモリアドレスにアクセスする場合、又は、前記第1のカテゴリ(K1)に割り当てられた第2のプログラム変数に、もしくは第1の有効値を有するエラーフィールド(72)を備えた第2のプログラム変数にアクセスする場合には、
    ・前記プログラム変数をエラー無しとマーキングし、
    ・求められた変数値を前記拡張された値領域(50,70)に格納し、
    ・第1のプログラム変数(50,70)の変数値(52,72)を求める際に、前記エミュレートされたプロセッサ(20)が、前記エミュレートされたメモリ領域(24)の、存在していないかもしくは書き込まれていない第2のメモリアドレスにアクセスする場合、又は、前記第2のカテゴリ(K2)に割り当てられた第3のプログラム変数に、もしくは第1のエラー値を有するエラーフィールド(72)を備えた第3のプログラム変数にアクセスする場合には、
    ・前記第1のプログラム変数をエラー有りとマーキングし、
    ・前記第1のプログラム変数(50,70)の変数値(52,72)に、予め定められた数値もしくは非数値の第2のエラー値を割り当て、
    ・存在していないかもしくは書き込まれていない前記第2のメモリアドレス、又は、前記第3のプログラム変数のデータフィールド(64,74)の全てのエントリのコピーを、前記第1のプログラム変数のデータフィールド(64,74)に書き込む、
    ことを特徴とする方法。
  2. 第1のプログラム変数の変数値(62,72)を求める際に、前記第2のカテゴリ(K2)に割り当てられた第2のプログラム変数に、又は、第1のエラー値を有するエラーフィールド(72)を備えた第2のプログラム変数にアクセスすることにより、前記第2のプログラム変数の識別子を前記第1のプログラム変数のデータフィールド(64,74)に書き込む、
    請求項1に記載の方法。
  3. 前記制御プログラム(10)が、前記第2のカテゴリ(K2)に割り当てられた第1のプログラム変数に、又は、第1のエラー値を有するエラーフィールド(72)を備えた第1のプログラム変数に、設定値を割り当てる場合、
    ・前記第1のプログラム変数をエラー無しとマーキングし、
    ・前記設定値を変数値(52,72)として、前記プログラム変数の前記拡張された値領域(50,70)に格納し、
    ・第1のカテゴリ(K1)もしくは第2のカテゴリ(K2)への割り当てに基づくマーキングの際に、前記拡張された値領域(50,60)から前記データフィールド(64)を消去し、
    ・エラーフィールド(76)に基づくマーキングの際に、前記データフィールド(74)の全てのエントリを消去する、
    請求項1又は2に記載の方法。
  4. 前記制御プログラムが少なくとも2つのプログラムブロックを有し、当該プログラムブロックが、前記制御プログラムの規定の分岐規則にしたがって、前記第2のカテゴリ(K2)に割り当てられた第1のプログラム変数に、又は第1のエラー値を有するエラーフィールド(72)を備えた第1のプログラム変数に依存するという条件に応じて代替的に実行される場合、全てのプログラムブロックを実行する、
    請求項1から3までのいずれか1項に記載の方法。
  5. 前記プログラムブロックの実行中に1つずつ値が割り当てられた別のプログラム変数の全てをエラー有りとマーキングし、
    前記第1のプログラム変数のデータフィールド(64,74)の全てのエントリのコピーのそれぞれを、前記別のプログラム変数のデータフィールド(64,74)へ書き込み、
    前記別のプログラム変数の変数値(62,72)に、それぞれ第2のエラー値を割り当てる、
    請求項4に記載の方法。
  6. 前記プログラムブロックの実行後、前記制御プログラム(10)が第1のプログラムブロックの実行中にも別のプログラムブロックの実行中にも変数値(52,62,72)を割り当てた別のプログラム変数の全てについて、割り当てられた各変数値(52,62,72)を比較し、
    割り当てられた各変数値(52,62,72)の間に偏差がある場合、
    ・前記別のプログラム変数をエラー有りとマーキングし、
    ・前記別のプログラム変数の変数値(62,72)に第2のエラー値を割り当て、
    ・前記第1のプログラム変数のデータフィールド(64,74)の全てのエントリのコピーを、前記別のプログラム変数のデータフィールド(64,74)に書き込む、
    請求項4に記載の方法。
JP2017070951A 2016-03-31 2017-03-31 コンピュータ上のシミュレーション環境において制御装置の制御プログラムをテストする方法 Active JP6877215B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102016105844.0 2016-03-31
DE102016105844.0A DE102016105844A1 (de) 2016-03-31 2016-03-31 Verfahren zum Testen eines Steuerprogramms eines Steuergeräts in einer Simulationsumgebung auf einem Rechner

Publications (2)

Publication Number Publication Date
JP2017188112A JP2017188112A (ja) 2017-10-12
JP6877215B2 true JP6877215B2 (ja) 2021-05-26

Family

ID=55910096

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017070951A Active JP6877215B2 (ja) 2016-03-31 2017-03-31 コンピュータ上のシミュレーション環境において制御装置の制御プログラムをテストする方法

Country Status (5)

Country Link
US (1) US10572369B2 (ja)
EP (1) EP3232327B1 (ja)
JP (1) JP6877215B2 (ja)
CN (1) CN107272441B (ja)
DE (1) DE102016105844A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6827340B2 (ja) * 2017-02-17 2021-02-10 三菱重工エンジニアリング株式会社 ソフトウェア試験装置、ソフトウェア試験システム、ソフトウェア試験方法およびプログラム
US11157309B2 (en) * 2019-04-10 2021-10-26 International Business Machines Corporation Operating cluster computer system with coupling facility
CN110398902B (zh) * 2019-06-19 2021-09-24 上海机电工程研究所 光电信号仿真误差分析方法
US11321225B2 (en) * 2020-05-22 2022-05-03 International Business Machines Corporation Reducing the memory load time for logic simulator by leveraging architecture simulator

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5088033A (en) * 1986-04-28 1992-02-11 Xerox Corporation Data processing system emulation in a window with a coprocessor and I/O emulation
US5233611A (en) * 1990-08-20 1993-08-03 International Business Machines Corporation Automated function testing of application programs
US5671352A (en) * 1995-07-07 1997-09-23 Sun Microsystems, Inc. Error injection to a behavioral model
CN1129070C (zh) * 1998-02-06 2003-11-26 华为技术有限公司 程序设计中内存操作错误的识别方法
US6751583B1 (en) * 1999-10-29 2004-06-15 Vast Systems Technology Corporation Hardware and software co-simulation including simulating a target processor using binary translation
US6718485B1 (en) * 1999-11-16 2004-04-06 Parasoft Corporation Software emulating hardware for analyzing memory references of a computer program
GB2362729B (en) * 1999-12-23 2004-02-11 St Microelectronics Sa Memory access debug facility
CN1169048C (zh) * 2001-08-10 2004-09-29 上海捷硕微电子有限公司 命令控制型存储器功能仿真系统
US6901581B1 (en) * 2002-10-02 2005-05-31 Eridon Corporation Method for software debugging via simulated re-execution of a computer program
WO2006033423A1 (en) * 2004-09-20 2006-03-30 Sony Computer Entertainment Inc. Methods and apparatus for emulating software applications
CN101539766B (zh) * 2009-04-14 2011-06-15 浙江中控技术股份有限公司 一种程序调试方法和装置
DE102010043661A1 (de) * 2010-11-09 2012-05-10 Dspace Digital Signal Processing And Control Engineering Gmbh Vorrichtung zum Testen und HIL-Simulator
US9535817B2 (en) * 2011-06-10 2017-01-03 Microsoft Technology Licensing, Llc Application development environment for portable electronic devices
CN103677954B (zh) * 2012-09-25 2018-02-13 上海华虹集成电路有限责任公司 仿真器
EP2851815A1 (de) * 2013-09-18 2015-03-25 dSPACE digital signal processing and control engineering GmbH Testeinrichtung zum Echtzeittest eines virtuellen Steuergeräts
US9047411B1 (en) 2013-10-22 2015-06-02 The Mathworks, Inc. Programming environment for executing program code despite errors and for providing error indicators
CN103558771A (zh) * 2013-11-05 2014-02-05 济南轨道交通装备有限责任公司 风电场仿真测试平台及其测试方法
EP2924522B1 (de) * 2014-03-28 2016-05-25 dSPACE digital signal processing and control engineering GmbH Verfahren zur Beeinflussung eines Steuerprogramms
CN104951583B (zh) * 2014-03-31 2018-04-20 格芯公司 数字集成电路仿真方法及仿真器
EP2933695B1 (de) * 2014-04-17 2017-03-01 dSPACE digital signal processing and control engineering GmbH Computerimplementiertes Verfahren zum Echtzeittest eines Steuergeräts
EP2940857B1 (de) * 2014-04-28 2018-11-28 dSPACE digital signal processing and control engineering GmbH Verfahren zur Nachbildung eines dreiphasigen bürstenlosen Gleichstrommotors mit einem Lastemulator
JP6476594B2 (ja) * 2014-05-26 2019-03-06 オムロン株式会社 シミュレーションシステム

Also Published As

Publication number Publication date
CN107272441B (zh) 2022-04-12
EP3232327B1 (de) 2018-03-14
EP3232327A1 (de) 2017-10-18
US20170286270A1 (en) 2017-10-05
US10572369B2 (en) 2020-02-25
CN107272441A (zh) 2017-10-20
DE102016105844A1 (de) 2017-10-05
JP2017188112A (ja) 2017-10-12

Similar Documents

Publication Publication Date Title
JP6877215B2 (ja) コンピュータ上のシミュレーション環境において制御装置の制御プログラムをテストする方法
Ocariza et al. An empirical study of client-side JavaScript bugs
US10310822B1 (en) Method and system for simulating a control program
US11762717B2 (en) Automatically generating testing code for a software application
US7681180B2 (en) Parameterized test driven development
JP2009087354A (ja) ウェブアプリケーションの自動テスト生成システム及び方法
US10830818B2 (en) Ensuring completeness of interface signal checking in functional verification
Kang et al. A secure-coding and vulnerability check system based on smart-fuzzing and exploit
US20140214396A1 (en) Specification properties creation for a visual model of a system
JP2021501953A (ja) エンジンデバッグ、テスト、較正、及び調節を制御するためのソフトウェア環境
KR20210061446A (ko) 안전 관련 데이터 스트림 검출 방법
JP2012150535A (ja) プログラム検証方法及び検証プログラム
CN116069635A (zh) Soc系统的测试方法、装置、计算机设备及存储介质
JP6053854B2 (ja) 制御プログラムに対するインタラクション方法
Sheikh Teaching C++ programming using automated unit testing and test‐driven development—Design and efficacy study
TWI611291B (zh) 用於自動化生成軟體測試資料之電腦程式產品及其方法
US10223077B2 (en) Determination of signals for readback from FPGA
Pitchford Embedded software quality, integration, and testing techniques
Bueno et al. Executable Architecture based on System Dynamics: An integrated methodology composed by Standard System Dynamics Modelling and DoDAF Operational View Models.
CN113515452A (zh) 应用的自动测试方法、系统、电子设备及存储介质
Marín et al. A tool for automatic defect detection in models used in model-driven engineering
Kononov et al. On the problems of developing KLEE based symbolic interpreter of binary files
CN112527672B (zh) 一种针对加壳工具的检测方法及设备
WO2024195336A1 (ja) トレーサビリティ情報抽出装置およびトレーサビリティ情報検証装置
Lilli A modeling and verification framework for security protocols

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200206

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210324

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: 20210329

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210427

R150 Certificate of patent or registration of utility model

Ref document number: 6877215

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE

Ref document number: 6877215

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250