JP2017049627A - 検証システム、検証装置、及び、車両制御装置 - Google Patents

検証システム、検証装置、及び、車両制御装置 Download PDF

Info

Publication number
JP2017049627A
JP2017049627A JP2015169981A JP2015169981A JP2017049627A JP 2017049627 A JP2017049627 A JP 2017049627A JP 2015169981 A JP2015169981 A JP 2015169981A JP 2015169981 A JP2015169981 A JP 2015169981A JP 2017049627 A JP2017049627 A JP 2017049627A
Authority
JP
Japan
Prior art keywords
execution
timing
verification
instruction
test
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.)
Pending
Application number
JP2015169981A
Other languages
English (en)
Inventor
隆博 飯田
Takahiro Iida
隆博 飯田
正裕 松原
Masahiro Matsubara
正裕 松原
敦寛 大野
Atsuhiro Oono
敦寛 大野
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.)
Hitachi Astemo Ltd
Original Assignee
Hitachi Automotive Systems Ltd
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 Hitachi Automotive Systems Ltd filed Critical Hitachi Automotive Systems Ltd
Priority to JP2015169981A priority Critical patent/JP2017049627A/ja
Priority to PCT/JP2016/071474 priority patent/WO2017038290A1/ja
Publication of JP2017049627A publication Critical patent/JP2017049627A/ja
Pending 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

【課題】再現が難しい不具合の検証を再現することを可能とする検証システム、検証装置、及び、車両制御装置を提供する。
【解決手段】検証システムは、検証装置と検証対象(ECU)によって構成される。検証装置はセンサや車両の動作をシミュレーションし、計算結果をECUに送信し、ECUは受け取った計算結果を元に動作することで、動作の検証を実施する。検証装置は、所定のテスト条件に基づいて制御プログラムへのテスト指示を生成する生成指示部306と、テスト指示に従ってプログラム実行部304がテスト対象となる制御プログラムを実行した実行結果を取得する結果取得部305と、を備える。テスト指示には、制御プログラムの実行タイミングが含まれ、生成指示部のタイミング調整部302は、所定のテスト条件に基づいて設定される比較値と比較して実行結果が異常でないと判断される場合には、実行タイミングを変更した新たなテスト指示を生成する。
【選択図】図3

Description

本発明は、検証システム、検証装置、及び、車両制御装置に関する。
コントローラの検証技術としては、特許文献1では機種毎の仕様に応じた検証パターンを補正する技術が開示されている。
特開2014−52358号公報
従来の機能検証方法では、特定タイミングに依存する不具合の確認が困難であった。例えば、速度などの外界の情報をセンシング中に機能を実行するスイッチなどが押されることで、センシング途中の意味の取れない値を使用してしまい不具合に繋がる。これらの特定のタイミングでのみ発生する事象は再現が困難であるため、機能検証時に確認することができないか、又は長い時間をかける必要があった。
本発明は、このような従来の課題を解決するための技術であり、再現が難しい不具合の検証を再現することを可能とする検証システム、検証装置、及び、車両制御装置を提供することを目的とする。
本発明は、制御プログラムの実行タイミングに起因する不具合を検証する検証システムであって、所定のテスト条件に基づいて前記制御プログラムへのテスト指示を生成する指示生成部と、前記テスト指示に従って前記制御プログラムが実行した実行結果を取得する結果取得部と、を備え、前記テスト指示には、前記制御プログラムの実行タイミングが含まれ、前記指示生成部は、前記所定のテスト条件に基づいて設定される比較値と比較して前記実行結果が異常でないと判断される場合には、前記実行タイミングを変更した新たなテスト指示を生成する。
本発明によれば、このような従来の課題を解決するための技術であり、再現が難しい不具合の検証を再現することが可能となる。
実施例1の検証システムの構成を示す図。 検証対象となるECUの内部構造を示す図。 検証システムの機能構造を示す図。 検証対象となるプログラムの例。 テストシナリオのデータテーブル例。 テスト指示のデータテーブル例。 結果取得指示のデータテーブル例。 実行結果のデータテーブル例。 タイミング調整のフローチャート。 実施例2における一定間隔のタイミング調整のフローチャート。 実施例3におけるタイミング複製の例。 タイミング複製時の間隔説明例。 実施例4におけるタイミング複製処理のフローチャート。 実施例5において、ECUにタイミング調整部を設ける構成を示す図。 ECUにタイミング調整部を設けた構成の動作例。 実施例6におけるデータテーブル例。
以下、本発明の実施形態に係る検証システムについて、図面を用いて説明する。
図1に本実施例の構成を示す。本実施例の検証システムは、制御プログラムの実行タイミングに起因する不具合を検証する検証システムであって、所定のテスト条件に基づいて制御プログラムへのテスト指示を生成する指示生成部306と、テスト指示に従って制御プログラムが実行した実行結果を取得する結果取得部305と、を備え、テスト指示には、制御プログラムの実行タイミングが含まれ、指示生成部306は、所定のテスト条件に基づいて設定される比較値と比較して実行結果が異常でないと判断される場合には、実行タイミングを変更した新たなテスト指示を生成する。
本実施例では、検証システムは、検証装置1と検証対象によって構成される。本実施例における検証対象となるECU(Electronic Control Unit)2は、仮想の検証環境(例えばHILS(Hardware-In-the-Loop Simulation)環境をサーバー上で再現した環境)上で動作する仮想的に再現されたECU(仮想ECU)であるが、実際のECU(実ECU)を対象としても良い。
検証装置1はセンサや車両の動作をシミュレーションし、計算結果をECUに送信し、ECUは受け取った計算結果を元に動作することで、動作の検証を実施する。検証装置1はECU2の動作情報を受信し、解析することで検証結果を判定できる。
ECU2は図2に示すように、データを受信、あるいはデータを送信するための通信装置201と、制御プログラムが格納された記憶装置であるROM(Read Only Memory)202と、このROM202に格納された制御プログラムを実行する演算回路であるCPU(Central Processing Unit)203と、ソフトウェアの状態を記憶する記憶装置となるRAM(Random Access Memory)204と、センサからの値を取得し制御対象のアクチュエータへと制御信号を出力する入出力装置205が備えられている。
図3は、検証装置1及びECU2のROM上に実装されるソフトウェアの構造を示す。検証装置1には、検証者によって所定のテスト条件が入力される。本実施例では、テスト条件をテストシナリオと呼ぶ。テストシナリオは、不具合が発生するであろうことを想定して検証者が作成したものであり、詳細は後述する。
テストシナリオ解釈部301は、テストシナリオの内容を解釈する機能を有し、テストシナリオを基にしてテストシナリオを制御プログラムで再現するためのテスト指示(検証指示)と結果取得指示を作成し出力する。検証指示には、制御プログラムの処理タイミングが含まれ、結果取得指示には、制御プログラムが処理した処理結果を取得する結果取得タイミングが含まれる。
そして、タイミング調整部302は、前記テスト指示と前記結果取得指示を取得し、後記するタイミング調整を行い処理タイミングと結果取得タイミングを変更し出力する。
テスト指示部303は、テスト指示を取得しプログラム実行部に出力する。
結果取得部305は、結果取得指示に含まれる結果取得タイミングをプログラム実行部304に入力する。
プログラム実行部304は、テスト対象となる制御プログラムを実行する機能を持つ。プログラム実行部304は、前記テスト指示を取得しテスト指示に記載された処理を実行する。また、プログラム実行部304は、前記結果取得部305より結果取得指示を取得し、結果取得指示で指示されたタイミングでデータを取得し、テスト実行結果を生成する。
そして、結果取得部305は、前記テスト実行結果を取得し、前記結果取得指示に記載されている期待値と、前記テスト実行結果の実行値を比較し、不具合が再現されたかを確認する。
不具合の発生が確認されなかった場合、結果取得部305は前記実行結果と前記テスト入力又は前記調整後テスト入力の期待値との差分を計算し差分情報を生成する。タイミング調整部302は、前記差分情報を取得し、前回の調整後テスト入力を補正し、新たな調整後テスト入力を作成し、再度テストを実行する。
図3の構成を用いることで、テストシナリオを入力することでテストが実行され、テスト実行結果を元に不具合が再現されるまでテストを繰り返すことで、確実に不具合を発生させる。
次に、この検証システムで扱う各データの例を示す。
図4に不具合が起きた場合のプログラム実行例を示す。テスト対象となる制御プログラムには少なくとも不具合の原因箇所である関数X402が実装されており、関数X402を実行するための呼び出し関数401が実装される。関数X402は変数Aを使用する処理A402−1と処理B402−2を実行する。そして関数Xは変数Aの値を元に計算される変数Zを実行結果として出力する。そして割込みY403は変数Aの値を書き換える処理を持つ関数である。不具合例では、割込みY403は関数X402の処理A402−1と処理B402−2の間で呼び出され、本来同じ値で計算しなければならない2つの処理に不整合が発生する。この計算結果を元に変数Zが計算されることで、不具合発生に繋がる。ここで関数内の連続する2つの処理の間隔は非常に短く、処理の間に確実に割り込み関数を実行することは非常に困難である。
図5にテストシナリオ解釈部301が取得するテストシナリオの例を示す。本テストシナリオ501には、動作の実行順序、動作の内容、動作対象、動作終了後の期待値と動作の命令タイミングや、判定対象かの情報が記載されている。
動作の実行順序は、順番や絶対時間や関数などの処理を基点とした相対時間を用いて表される。動作の内容とは、処理の開始や、終了や、データの初期化や、データ取得によるログの獲得などの制御プログラムの動作内容を指定するものである。
動作対象とは、変数や、関数や、関数内の処理や、関数を実行させるタスクなどの単位や、メモリ番地や、CPUのコア番号などを指定ものである。
期待値には、初期化の場合は変数の初期値を指定でき、そのほかの処理の起動時間や終了時間やデータの値を指定でき、また、複数の値や値の範囲を指定できる。期待値は初期化の場合を除き、検証の判定時に実行結果と比較するために用いる。命令タイミングは、動作が実施されるタイミングやイベントを指定する。命令タイミングとしては、例えば絶対時間や、ある動作を基点とした相対時間や数字による順番のなどが指定される。判定対象とは、実行結果取得時に検証結果が正常か正常でないかを判定する際に用いられるものであることを表す。その他、制御プログラムの動作の指定に対する情報をテストシナリオに記載してもよい。本テストシナリオを記載することで、検証者は所望の検証内容を定義できる。
図6にテストシナリオ解釈部及びタイミング調整部が作成するテスト指示601を示す。テスト指示601には、検証に必要な動作と、動作を実行する命令タイミングと、動作の対象が記載される。動作には、初期化や、処理の実行や終了や、中断、再開や、センサ入力値の設定などの、ソフトウェアの動作を指定する。動作を実施するタイミングには、制御プログラムの実行開始からの絶対時間や、基点となる動作からの相対時間を指定することができる。本テスト指示601を生成することで、検証装置2はプログラム実行部304に対して所望する検証動作を指示できる。
図7にテストシナリオ解釈部及びタイミング調整部が作成する結果取得指示701を示す。結果取得指示701には、データ取得などの動作と、動作を実行する命令タイミングと、動作の対象と、対象の期待値と、対象が判定対象かの情報が記載される。
命令タイミングは、動作を実施するタイミングとして、制御プログラムの実行開始からの絶対時間や、基点となる動作からの相対時間を指定する。対象には、関数や関数を動作させるタスクなどの起動終了時刻などや、変数やメモリ番地などの値を保存している先を記載できる。期待値には、対象に応じた値が記載され、起動終了時刻に対しては時間情報や基点となる処理からの相対時間が記載され、変数やメモリ番地などでは記録されているであろう値が記載される。判定対象とは、実行結果取得時に検証結果が正常か正常でないかを判定する際に用いられるものであることを表す。このように結果取得タイミングを生成することで、検証装置2はプログラム実行部304に対して所望する検証結果を指定することができる。
結果取得指示701をテストシナリオ501の例から作成する方法を説明する。動作項目から、データ取得やそのほかの状態収集の動作を選択する。そして、実施条件を命令タイミングへと変換する。また、データ取得以外の動作の内、関数やタスクや割り込みなどの処理単位の開始、終了時刻のデータを取得する、結果取得タイミングデータを生成する。処理単位の開始、終了時刻を取得することで、後のタイミング調整が可能となる。
図8に結果取得指示701とテスト指示601に基づいてプログラム実行部304から取得された実行結果801を示す。実行結果801には、実行タイミングと、動作の対象と、実行値が記載される。動作の実行タイミングには、動作の対象が実行された絶対時間又は基点となる動作からの相対時間など、時間や順序を特定する情報が記載される。対象には、変数や、関数や、関数の終了時刻や開始時刻や、メモリ番地や、タスク(制御プログラムの実行単位)などが記載される。実行値には、対象に応じた値が記載され、数値や時間情報や真理値などが記載される。本実行結果を取得することで、本検証装置は制御プログラムの検証結果を判定できる。
ここで、本実施例では、仮想ECUを用いているため、プログラム実行部304から得られる実行値として、関数X開始後20μsec、30μsec、40μsecといった具体的なタイミングの結果値を得ることができるが、実際のECUを検証対象として用いた場合にはこのような具体的なタイミングの結果値を得ることはできない。
次に、テストシナリオ501の例からテスト指示601とデータ取得指示701を作成する方法を説明する。
まず、テストシナリオ解釈部301は、動作のうちデータ取得以外の動作を選択する。そして、テスト指示に選択されていない動作を結果取得指示として選択する。次に、結果取得指示は、テスト指示の動作の対象が関数や割り込みやタスクなどの実行単位の場合、その開始時間と終了時間を取得する項目を生成する。
また、命令タイミングや期待値に記載された、動作の基点となる処理が関数や割り込みやタスクなどの実行単位の場合、その開始と終了時間を生成する。また、生成された項目の開始時刻の期待値は、テストシナリオ501に記載された命令タイミングを用いて記載する。例えば、割込みYの期待値は、テストシナリオ501に記載された命令タイミングを使用することで、命令タイミングどおりに動いたかを確かめることができる。
また、関数Xの開始時刻はテストシナリオで指定されていないため、未記載となる。終了時刻は、関数毎に任意の時間を設定する、又はランダムに指定することもできる。あらかじめ関数の動作を推測し、検証者が任意の時間を設定することで、より正確な実行結果が得られ、不具合の再現が素早く行える。また、ランダムに設定する場合でも、本発明は後記のタイミング調整により、不具合の再現が行うことができ、検証者は事前の準備を軽減することができる。
次に、タイミング調整部302が行うタイミング調整に関して説明する。図9にタイミング調整のフローチャートを示す。ステップ901で処理が開始される。ステップ902では、結果取得指示701に記載された判定対象である対象の期待値と実行結果801の対象の実行値を比較する。ステップ903で制御プログラムが不具合を起こしていたかを判定する。実行値と期待値が一致するとき制御プログラムは正常に動作していると判定され、不具合が発見されないため、次にステップ906を実行する。
一方、ステップ903において、実行値と期待値が一致しないとき、不具合が発生したと判定し、ステップ904を実行する。ステップ904では、不具合内容を解析できるように実行結果を出力しステップ905で終了する。
ステップ906では、処理の開始時刻から終了時刻までの実行時間を調整する。結果取得指示701では、割込みY開始時刻から終了時刻まで5μSECかかることを期待していたが、実際に実行したとき、実行時間は10μSEC必要になっていた。そこで、テストシナリオ解釈部301で生成する関数の終了時刻の設定値を10μSECに修正する。実行結果801を用いることで、実際の実行時間を使用しより確かな検証が可能になる。
ステップ907では、処理の開始時刻を調整する。実行結果801では割込みYの開始時刻は120μSECとなっているが、結果取得指示701では割込みYの開始時刻の期待値は10μSECとなりずれが生じている。このようなずれは、事前のタイミング計算の見積もり時に簡易化した検証外の制御プログラムや実機の動作情報のずれや、割り込みなどの場合は割り込みを起こすトリガ情報をONにしてから、実際に割り込みが発生するまでのタイムラグなどから起こりうる。
そこで、タイミング調整部302は、開始時刻の実行値と期待値を合わせるためテスト指示601の命令タイミングを調整する。テスト指示601では割込みYは関数X開始後10μSEC後に開始するように指示しているが、実際には20μSEC後に開始されている。そこで、命令タイミングを調整し、関数X開始直後に割込みを動作させる命令タイミングへと修正する。ステップ908で処理を終了する。
タイミング調整部は新たなテスト指示タイミングと結果取得タイミングを用いて再度検証を行う。
本実施例により、検証者はテストシナリオを設計し、検証装置に入力することで、タイミング調整部により、必ず想定どおりのテストシナリオを実行できる。即ち、検証シナリオを実行結果から補正し、再検証を繰り返し行うことで、想定する不具合を確実に実現し、不具合発生時の状況を特定することができる。また、もし実現できない場合には想定する不具合が発生しないことを確認若しくは証明できる。
次に、実施例1のステップ907におけるタイミング調整手段に関する第2の実施例を示す。第1の実施例との違いは、タイミング調整の方法にあり、より効率的に不具合を再現することができる。本実施例では、指示生成部は、実行結果に基づく新たな実行タイミングを設定する実行タイミング設定動作を繰り返し実行可能に構成され、実行タイミング設定動作の繰り返し回数が多くなる程、最初の実行タイミングとの差が大きくなるように新たな実行タイミングを設定する。具体的には、不具合が発生しなかった際に、一定間隔ごとに処理の実行タイミングをずらすことで不具合を再現する。
図10に本実施例におけるタイミング調整方法を示す。本処理はステップ907で行われる。ステップ1001で本処理を開始する。ステップ1002では、タイミング調整回数が偶数回か整数回かを確認している。これは、後段のステップで補正値の正負を切り替えることで、基点となるタイミング前後のタイミングを指定できるようにするためである。次にステップ1003では、処理の開始時刻を補正する値であるタイミング補正値に、補正単位分の値を加える。
ここでタイミング補正値は、分や時間などの時間情報や、数値情報など、実行タイミングを調整可能な値を用いる。また、補正単位とは、タイミングをずらすための最小の幅であり、分や時間などの時間情報や、数値情報など、実行タイミングを調整可能な値を用いる。タイミング補正値を加えることで、一定間隔で幅を切り替えることができる。
ステップ1004ではタイミング補正値の符号を正にすることで、未来方向へのタイミングを指定できる。ステップ1005ではタイミング補正値の符号を負にすることで、過去方向のタイミングを指定する。ステップ1006でテスト指示601の実行タイミングにタイミング補正値を加算する。本補正処理は、任意の回数もしくは任意の時間経過後処理をやめ、判定結果として不具合が再現されなかったと出力する。
本実施例を用いることで、事前の計算と実際の処理のずれにより、不具合を起こす処理タイミングの指定が困難な検証において、タイミングをずらすことで補正が可能になるため、検証者はずれの補正を行うことなく、不具合の再現が可能になる。
次に、タイミング調整部302が生成するテスト指示601の調整方法に関する第2の実施例を示す。本実施例の検証システムでは、所定のテスト条件には、予め基準として設定される基準実行タイミングが含まれ、指示生成部306は、基準実行タイミングに基づいて異なる複数の実行タイミングを設定する。具体的には、本実施例では、テストシナリオで指定する処理である割込みYを複数回実行するようにすることで、不具合の再現を行う。
図11に本実施例の複製例を示す。割込みY1101は図4の割込みY403と同様の関数であり、そのタイミングチャートを示す。また、関数X1103は、図4の関数X402であり、そのタイミングチャートを示す。図4で示すように、割り込みY1101は処理A402−1と402−3の間に実施されなければならない。しかし、図11のように、実際の割り込み1102は上手く処理Aと処理Bの間に収まるとは限らない。そこで、割込みY1101を複製の割り込み1102−1として複数回行うことで処理Aと処理Bの間に割り込みを発生させる。
また、本実施例の検証システムでは、指示生成部306は、新たなテスト指示を生成する際、実行結果をもたらした実行タイミングに基づいて新たな実行タイミングを設定する。図12を用いて、命令タイミングの指示方法を説明する。まず、複製間隔1201を設定する。本間隔は検証者の任意の間隔を指定する。次に、複製する本数又は、検証間隔1202を設定する。本数を指定する場合は、指定した命令タイミングを中心として前後に等間隔の本数を配置する。検証間隔1202を指定した場合は検証間隔1202内に収まるだけの複製割り込み1102−1を生成する。
本実施例により、複数のタイミングを一度に試行するため、より少ない再検証回数で不具合の再現が可能になる。
次に、複製タイミング指定時における、ステップ907におけるタイミング調整手段に関する第4の実施例を示す。第3の実施例との違いは、タイミング調整と複製を同時に行える点である。
第二の実施例において、タイミング調整部は補正単位を加えることで、タイミングをずらして行くことができる。図13にタイミング調整部302における本実施例の処理を示す。STEP1301で処理を開始する。STEP1302において、実施例2のタイミング補正を行うこの時、補正単位を検証間隔1202とする。STEP1303において命令タイミングの複製を行う。STEP1304において、タイミング調整部302以降の検証を行う。STEP1305において、判定結果がすべて正常値の場合再検証と判定する。STEP1307において、複製タイミングを破棄し、再度STEP1302を実施する。STEP1306で検証を終了する。
本実施例により、複製タイミングを重複させることなく、タイミング調整とタイミング複製が行い、高速かつ確実に不具合の再現を行う。
次に、第5の実施例を示す。第1の実施例との違いは、タイミング調整部と結果取得部がECU2に配置される点である。この実施例では、ECU2として、実ECUを対象としており、ECU2には、検証システムと、制御プログラムとが実装され、所定のテスト条件を出力する検証装置と接続可能に構成される。
図14に本実施例の構成を示す。検証装置1はテストシナリオ解釈部301を有する。ECU2はプログラム実行部304と結果取得部305とタイミング調整部302とテスト指示部303とを有する。テスト指示部303は、テストシナリオ解釈部301からテスト指示を受け取り、プログラム実行部へ指令する。タイミング調整部302は結果取得部305が取得した実行結果に基づいてタイミングを調整し、テスト指示部303は、再度プログラム実行部304へテスト指示を入力する。
図15に本構成時の動作を示す。検証装置1はECU2に対してテスト実施要求を出力する。テスト指示要求はテスト指示601を含み、さらにプログラム実行部304内の制御プログラム(OS)に対してテストを実施する要求情報を出力する。テスト実施要求はタイミング調整部302と制御プログラム(OS)304−1に出力される。
制御プログラム(OS)304−1は、アクチュエータを制御する制御プログラムなどが実行される制御プログラム(タスク)の起動終了処理を管理する機能を持つ。制御プログラム(OS)304−1はテスト実施要求を受けると制御プログラムの動作をテストモードへと移行する。テストモードには、例えば、「指定された割り込み関数以外を起動させない」、「センサ入力の値を制限する」、「起動させるタスクを指定する」、「変数の状態を一時退避させる」など、検証に関連するデータや処理のみを起動させる機能が実行される。
テストモード遷移後、制御プログラム(OS)304−1は、制御プログラム(タスク)304−2を起動させる。制御プログラム(タスク)304−2は、テスト実施要求に含まれる変数や定数などの状態を用いて初期化を行う。初期化後タスクに登録されている各関数を実行する。制御プログラム(タスク)304−2実行中、制御プログラム(OS)はテスト実施要求時従って割り込みYを実行する。
制御プログラム(タスク)304−2終了後、制御プログラム(タスク)304−2の変数情報を制御プログラム(OS)304−1はデータ取得部305に通知する。データ取得部305は、タイミング調整部から受け取ったテスト実施要求内の変数の期待値を用いて、制御プログラム304より受け取った結果を判定する。
判定結果が再検証を要求する時、つまり本発明の課題においては結果と期待値が全て一致し不具合を再現できなかった場合に、データ取得部305はタイミング調整部302に再テスト要求を出力する。
タイミング調整部302は実施例1から4までに記載のタイミング調整を行うことで、テストシナリオを修正する。タイミング調整部302はテストシナリオ修正後制御プログラム304−1に対してテスト実施要求を出力する。
本実施例の構成を採ることで、不具合の恐れがある動作に関するテスト指示を入力することで検証装置なしに確認できる。従って、大きな装置がなくとも検証を容易に行うことができる。
次に、各データ構成に関する第6の実施例を示す。第1の実施例と異なる点は、結果取得タイミング及び実行結果に命令タイミング及び実行タイミング情報がない点である。
図16に本実施例で用いるデータ構成を示す。図16(a)は本実施例におけるテスト指示1601である。テスト指示1601には実行対象と実行タイミングが記載されており、実行対象はタスクや割り込みなどのオペレーティングシステムが動作可能な単位で指定される。
図16(b)は、初期化設定テーブル1602である。初期化設定テーブル1602には変数やメモリ番地などの値が格納される初期化対象と、その初期値が指定できる。初期化設定テーブル1602は、テスト指示1601に含まれても良い。
図16の(c)は、結果取得指示1603を表す。この結果取得指示1603は取得対象と期待値が記載される。取得対象は、変数名やメモリ番地など値を格納することができるものを記載する。期待値は、数値や変数型に応じた数値を指定し、単一の値だけでなく、範囲を指定しても良い。
結果取得部305は、本結果取得指示1603に記載されている期待値と実行値の数値情報を比較することで実行結果を判定し、タイミング調整部302は実施例2から4を用いてタイミング調整を行う。
本実施例は実施例1の結果取得指示701やテスト実行結果801と同じ情報を用いているが、結果取得指示のタイミング指定がない点が異なる。これは、システムによっては関数などの詳細な実行時間を記録する処理の負荷のために、検証対象となる制御プログラムが想定する動作をしない場合がある。例えば、仮想ECUではなく、実ECUを検証対象とした場合などである。このような場合にも、本実施例を用いることで、詳細な実行時間を記録できない制御プログラムにおいても、不具合を再現することが可能になる。
1 検証装置
2 ECU
201 通信装置
202 ROM
203 CPU
204 RAM
205 入出力装置
301 テストシナリオ解釈部
302 タイミング調整部
303 テスト指示部
304 プログラム実行部
305 結果取得部
401 呼び出し関数
402 関数X
402−1 関数Xの処理A
402−2 関数Xの処理B
403 割込みY
501 テストシナリオ
601 テスト指示タイミング
701 結果取得タイミング
801 実行結果
901 タイミング調整処理開始
902 判定対象比較処理
903 判定結果確認
904 判定結果出力処理
905 処理終了
906 実行時間調整処理
907 開始時刻調整処理
908 処理終了
1001 タイミング調整処理開始
1002 タイミング調整回数確認
1003 タイミング補正値加算処理
1004 タイミング補正値符号変更処理
1005 タイミング補正値符号変更処理
1006 命令タイミング補正処理
1007 処理終了
1101 割込みYタイムチャート
1102 割込みY割込みタイミング
1102−1 割込みY複製タイミング
1103 関数Xタイムチャート
1201 複製間隔
1202 検証間隔
1301 処理開始
1302 タイミング補正処理
1304 タイミング複製処理
1305 検証処理
1305 検証結果判定
1306 処理終了
1307 複製タイミング破棄
1601 テスト指示タイミング
1602 初期化テーブル
1603 結果取得テーブル

Claims (6)

  1. 制御プログラムの実行タイミングに起因する不具合を検証する検証システムであって、
    所定のテスト条件に基づいて前記制御プログラムへのテスト指示を生成する指示生成部と、
    前記テスト指示に従って前記制御プログラムが実行した実行結果を取得する結果取得部と、を備え、
    前記テスト指示には、前記制御プログラムの実行タイミングが含まれ、
    前記指示生成部は、前記所定のテスト条件に基づいて設定される比較値と比較して前記実行結果が異常でないと判断される場合には、前記実行タイミングを変更した新たなテスト指示を生成する検証システム。
  2. 請求項1に記載の検証システムにおいて、
    前記指示生成部は、前記実行結果に基づく新たな実行タイミングを設定する実行タイミング設定動作を繰り返し実行可能に構成され、
    前記実行タイミング設定動作の繰り返し回数が多くなる程、最初の実行タイミングとの差が大きくなるように前記新たな実行タイミングを設定する検証システム。
  3. 請求項1に記載の検証システムにおいて、
    前記所定のテスト条件には、予め基準として設定される基準実行タイミングが含まれ、
    前記指示生成部は、前記基準実行タイミングに基づいて異なる複数の実行タイミングを設定する検証システム。
  4. 請求項1に記載の検証システムにおいて、
    前記指示生成部は、前記新たなテスト指示を生成する際、前記実行結果をもたらした実行タイミングに基づいて新たな実行タイミングを設定する検証システム。
  5. 請求項1に記載の検証システムを備え、
    前記制御プログラムが実装される車両制御装置と接続可能に構成される検証装置。
  6. 請求項1に記載の検証システムと、前記制御プログラムとが実装され、
    前記所定のテスト条件を出力する検証装置と接続可能に構成される車両制御装置。
JP2015169981A 2015-08-31 2015-08-31 検証システム、検証装置、及び、車両制御装置 Pending JP2017049627A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015169981A JP2017049627A (ja) 2015-08-31 2015-08-31 検証システム、検証装置、及び、車両制御装置
PCT/JP2016/071474 WO2017038290A1 (ja) 2015-08-31 2016-07-22 検証システム、検証装置、及び、車両制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015169981A JP2017049627A (ja) 2015-08-31 2015-08-31 検証システム、検証装置、及び、車両制御装置

Publications (1)

Publication Number Publication Date
JP2017049627A true JP2017049627A (ja) 2017-03-09

Family

ID=58187196

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015169981A Pending JP2017049627A (ja) 2015-08-31 2015-08-31 検証システム、検証装置、及び、車両制御装置

Country Status (2)

Country Link
JP (1) JP2017049627A (ja)
WO (1) WO2017038290A1 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019082882A (ja) * 2017-10-31 2019-05-30 ファナック株式会社 試験装置及び機械学習装置
JP2020144542A (ja) * 2019-03-05 2020-09-10 株式会社日立製作所 不具合再現支援システム、不具合再現支援方法
KR102202739B1 (ko) * 2019-08-07 2021-01-12 주식회사 한화 대상체의 유도 제어 시스템을 검증하기 위한 시뮬레이터와 연동되어 이상 상황을 판단하는 장치 및 그 방법
JP2021110635A (ja) * 2020-01-10 2021-08-02 マツダ株式会社 設備の検証装置及び検証方法
KR20220040056A (ko) * 2020-09-23 2022-03-30 주식회사 다산네트웍스 차량용 전자제어장치 테스트 시스템
KR102586820B1 (ko) * 2023-06-27 2023-10-11 주식회사 드림에이스 가상 ecu 검증 시스템 및 이의 오차 보정 방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005309800A (ja) * 2004-04-22 2005-11-04 Matsushita Electric Ind Co Ltd ソフトウェア検証方法および検証用データ作成方法
JP2007246040A (ja) * 2006-03-17 2007-09-27 Fujitsu Ten Ltd 電子制御装置、模擬装置、試験装置および試験方法
JP5423876B2 (ja) * 2010-03-25 2014-02-19 富士通株式会社 検証支援プログラム、検証支援装置、および検証支援方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019082882A (ja) * 2017-10-31 2019-05-30 ファナック株式会社 試験装置及び機械学習装置
US10908599B2 (en) 2017-10-31 2021-02-02 Fanuc Corporation Testing device and machine learning device
JP2020144542A (ja) * 2019-03-05 2020-09-10 株式会社日立製作所 不具合再現支援システム、不具合再現支援方法
KR102202739B1 (ko) * 2019-08-07 2021-01-12 주식회사 한화 대상체의 유도 제어 시스템을 검증하기 위한 시뮬레이터와 연동되어 이상 상황을 판단하는 장치 및 그 방법
JP2021110635A (ja) * 2020-01-10 2021-08-02 マツダ株式会社 設備の検証装置及び検証方法
JP7377456B2 (ja) 2020-01-10 2023-11-10 マツダ株式会社 設備の検証装置及び検証方法
KR20220040056A (ko) * 2020-09-23 2022-03-30 주식회사 다산네트웍스 차량용 전자제어장치 테스트 시스템
KR102440254B1 (ko) * 2020-09-23 2022-09-06 주식회사 다산네트웍스 차량용 전자제어장치 테스트 시스템
KR102586820B1 (ko) * 2023-06-27 2023-10-11 주식회사 드림에이스 가상 ecu 검증 시스템 및 이의 오차 보정 방법

Also Published As

Publication number Publication date
WO2017038290A1 (ja) 2017-03-09

Similar Documents

Publication Publication Date Title
WO2017038290A1 (ja) 検証システム、検証装置、及び、車両制御装置
US10459435B2 (en) Test manager for industrial automation controllers
US8856595B2 (en) Method for verifying an application program in a failsafe programmable logic controller, and programmable logic controller for performing the method
US9921563B2 (en) System for updating a control program actively controlling an industrial process
US20230244765A1 (en) Embedded processing system with multi-stage authentication
US20160026166A1 (en) Method and apparatus for controlling a physical unit in an automation system
JP2002163020A (ja) プログラマブルコントローラにおける異常検出方法およびその装置
US9703672B2 (en) Method for verifying the processing of software
US20220308859A1 (en) Method for Real-Time Updating of Process Software
US20180224829A1 (en) Servo controller
KR102002545B1 (ko) 가상화를 통한 코드 테스트 수행 자동화 방법 및 장치
JP6366811B2 (ja) 検査装置、検査方法、及び、プログラム
WO2021005691A1 (ja) 制御装置、プログラム監視方法及びプログラム
JP2001195110A (ja) 数値制御装置
JP6463445B1 (ja) 車載制御装置
JP2016189118A (ja) 電子制御装置
US20190302739A1 (en) Program verification system, control apparatus, and program verification method
CN111581042A (zh) 一种集群部署方法、部署平台及待部署服务器
JP7113988B1 (ja) データ照合装置、データ照合システム、及びデータ照合方法
JP2018067057A (ja) 制御プログラムの検証装置及びプログラム
JP6949440B2 (ja) ベクタ生成装置及びベクタ生成用プログラム
KR102368559B1 (ko) Oht 소프트웨어 테스트 방법
JP2019113427A (ja) 車両制御装置
JP2010244183A (ja) 装置検査システム、装置検査方法、装置検査プログラム
JP2016062219A (ja) 電子制御装置

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150902

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20170119

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20170125

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180221

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190423

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190618

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20191126