JP5937209B2 - 故障影響評価システム及び評価方法 - Google Patents

故障影響評価システム及び評価方法 Download PDF

Info

Publication number
JP5937209B2
JP5937209B2 JP2014523473A JP2014523473A JP5937209B2 JP 5937209 B2 JP5937209 B2 JP 5937209B2 JP 2014523473 A JP2014523473 A JP 2014523473A JP 2014523473 A JP2014523473 A JP 2014523473A JP 5937209 B2 JP5937209 B2 JP 5937209B2
Authority
JP
Japan
Prior art keywords
propagation
failure
controller
variable
simulator
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
JP2014523473A
Other languages
English (en)
Other versions
JPWO2014006693A1 (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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Ltd filed Critical Hitachi Ltd
Publication of JPWO2014006693A1 publication Critical patent/JPWO2014006693A1/ja
Application granted granted Critical
Publication of JP5937209B2 publication Critical patent/JP5937209B2/ja
Expired - Fee Related 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/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • 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/0428Safety, monitoring
    • 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/3636Software debugging by tracing the execution of the program
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B23/00Testing or monitoring of control systems or parts thereof
    • G05B23/02Electric testing or monitoring
    • G05B23/0205Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults
    • G05B23/0208Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults characterized by the configuration of the monitoring system
    • G05B23/0213Modular or universal configuration of the monitoring system, e.g. monitoring system having modules that may be combined to build monitoring program; monitoring system that can be applied to legacy systems; adaptable monitoring system; using different communication protocols
    • 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/3644Software debugging by instrumenting at runtime
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Testing And Monitoring For Control Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Programmable Controllers (AREA)

Description

本発明は、故障影響評価システムに係り、特に、発電プラントや鉄道、自動車、建設機械等の高信頼性が要求される制御コントローラにおいて、ハードウェア故障時の影響評価やフェールセーフ動作の検証を行うのに適した、故障影響評価システム及び評価方法に関するものである。
本技術分野の背景技術として、特許文献1に記載の発明がある。特許文献1に記載のプラント制御用ソフトウェア検証ツールは、プラント20を制御するために用いられる制御盤21にインストールするプラント制御用ソフトウェア2と実際の制御盤21を模擬しプラント制御用ソフトウェア2の健全性を検証する検証プログラム3とを記憶する補助記憶装置4と、補助記憶装置4から検証プログラム3を読み出して検証処理を実行する演算装置7と、演算装置7と人間とのインターフェイスである表示装置5と、同じくインターフェイスとして用いられる入力装置6と、演算結果およびソフトウェアを記録する記憶装置8と、演算結果を印刷する印刷装置9とから構成されている。さらに、上記特許文献1には、故障の影響評価方法も開示されている。すなわち、前記プラント制御用ソフトウェア検証ツールにおいて、前記演算手段が、前記制御装置及び機器の故障個所が指示された場合、指示された制御装置および機器にどのような範囲で影響がでるか影響評価を行う影響評価手段を具備したプラント制御用ソフトウェア検証ツール、が開示されている。
特開平10−307609号公報
制御コントローラ等の故障影響の評価において、システムの動作やデータが正常範囲内であっても、顕在化しない影響について制御プログラム内での伝搬状況を評価できることが必要とされる場合がある。例えば、自動車のエンジンコントローラとして既に開発され正常に動作することが確認されているあるシステム(プログラム)について、それをそのまま、あるいは一部のパラメータを変更することで、他の車種にも適用できるかを、シミュレーションで検証したい場合がある。但し、他の車種の動作環境は既に開発された車におけるシステムの動作環境と必ずしも同一とは限らない。机上で、故障影響についての評価しようとしても、条件が多すぎて、適切な評価を行うのは困難である。
このような場合に、制御プログラムの検証ツールとしてのシミュレータにより、システムの動作環境を任意に変更し、顕在化しない故障影響の有無の確認を行い、新たな動作環境下での制御プログラムに対する影響を評価できることが、信頼性の高いシステムを開発するために必要となる。
上記特許文献1の故障の影響評価方法においては、例えばシステムの動作やデータが異常であるなど顕在化する影響を評価できる。しかし、特許文献1には、影響が顕在化していない、すなわちシステムの動作やデータが正常範囲内にある場合おいて、制御プログラム内でどう故障入力が伝搬するかについての評価手段についての開示はない。
本発明の目的は、システムの動作やデータが正常範囲内にあり故障が顕在化してないプログラム内で、どのように故障入力が伝搬するかを評価し、潜在的な故障影響まで解析することのできる故障影響評価システム及び評価方法を提供することにある。
本発明の代表的なものの一例を示すと、次の通りである。故障影響評価システムは、制御用コントローラの動作を模擬するコントローラシミュレータと、前記コントローラシミュレータに入力データを与える入力装置と、前記入力装置および前記コントローラシミュレータの実行を統合管理するシミュレーションマネージャと、前記シミュレーションマネージャが参照する故障情報及びシミュレーション条件が格納されたデータベースとを含み、前記コントローラシミュレータは、前記制御用コントローラの制御プログラムと、解析ユニットとを保持しており、前記解析ユニットは、前記制御プログラム内の変数に伝播フラグを与え、該変数に故障入力値として各々所定の値を入れてビットを立て、該変数が前記制御プログラム内で演算に関与した都度に該ビットを伝搬させ、該ビットの伝搬状況を追跡して、その結果を出力する伝播フラグ追跡処理機能を有する、ことを特徴とする。
本発明によれば、システムの動作やデータが正常範囲内にあり故障が顕在化してない制御プログラム内で、どのように故障入力が伝搬するか評価することが可能となり、潜在的な故障影響まで解析することで、より信頼性の高い制御システムを実現できる。
本発明の実施例1に係る、故障影響評価システムの構成図の例である。 センサデータを読み込んで演算する制御プログラムの例である。 図2の制御プログラムに解析プログラムを組み込んだ制御プログラムの例である。 制御プログラムに解析プログラムを組込む、変数の型変換の例である。 解析プログラムを組込む前後の変数定義の具体的な例である。 故障データベースの具体的な例である。 故障情報の定義の例である。 シミュレーションマネージャの処理フローの例である。 第1の故障値と第2の故障値の伝播の変化を示す、表示画面の例である。 第1の故障時刻と第2の故障時刻による伝播の変化を示す、表示画面の例である。 本発明の実施例4に係る、故障影響評価システムの構成図の例である。
本発明の実施形態の一例を挙げるならば、
制御プログラムを格納するROMと演算をするCPUとデータを格納するRAMと外部インターフェイスのI/Oを含む制御用コントローラに対し、前記コントローラの動作を模擬するシミュレータであって、前記制御プログラムに加えて、シミュレーションの実行結果の解析に必要なデータを生成する解析プログラムも前記シミュレータ内ROMに格納されたコントローラシミュレータと、
前記コントローラシミュレータに入力データを与える入力装置と、
前記入力装置および前記コントローラシミュレータの実行を統合管理するシミュレーションマネージャと、
前記シミュレーションマネージャが参照する故障情報及びシミュレーション条件が格納されたデータベースと、
前記シミュレータの出力データを表示する表示装置から構成される、故障影響評価システムであり、
前記制御プログラム内の変数にビットを与え、特定の変数に所定の値を入れてビットを立て、このビットが前記制御プログラム内で演算に関与すると該ビットを伝搬させ、該ビットを出力する処理を含む前記解析プログラムを持つ、ことを特徴とする。
本発明は、発電プラント、鉄道、自動車、建設機械等、様々な分野の制御コントローラに適用できる。また、サーバ、ストレージ等IT機器インフラにも適用できる。
以下、本発明の実施例について図面を用いて説明する。
本発明の実施例について、図1〜図8を参照しながら説明する。
図1は、本発明を実施するための形態にかかる故障影響評価システム100の構成図の例である。故障影響評価システム100は、コントローラシミュレータ101と、入力装置109と、この入力装置及びコントローラシミュレータの実行を統合管理するシミュレーションマネージャ110と、表示装置112を備えている。コントローラシミュレータ101は、実機を制御する制御用コントローラ(図示略)の動作を模擬するシミュレータである。入力装置109は、実機のアクチュエータやセンサを模擬しており、コントローラシミュレータ101からの指令に基づき、コントローラシミュレータ101に対する外部入力を生成する。
故障影響評価システム100は、例えば、コントローラシミュレータ101をサーバで構成し、他の機器は、通信ネットワークでサーバに接続することで、実現される。故障影響評価システム100を、サーバや端末を含む広域のネットワーク分散システムとして構成しても良い。
なお、コントローラシミュレータにより動作を模擬される制御用コントローラは、例を挙げるならば、自動車のエンジンコントローラであり、入力装置109により動作を模擬されるハードウェアはエンジンの絞り弁の開度を制御するモータや角度を検知するセンサ等である。制御用コントローラは少なくとも、制御プログラムを格納するROM(Read Only Memory)と、演算をするCPU(Central Processing Unit)と、データを格納するRAM(Random Access Memory)と、外部インターフェイスのI/O(Input Output Interface)を含んでいる。従って、コントローラシミュレータ101も、少なくとも、上記制御プログラム106及び解析プログラム107を格納するROM102と、制御プログラム106に従って演算を行うCPU103と、演算結果等のデータを格納するRAM104と、例えばセンサのアナログデータやデジタル機器からのデジタルデータなどの外部入力をコントローラに取り込むインターフェイスとなるI/O105とを備えている。解析プログラム(解析ユニット)107は、シミュレーションの実行結果の解析に必要なデータを生成するものである。すなわち、解析プログラム(解析ユニット)107は、制御プログラム106内の特定若しくは全ての変数に各々所定の値(第1の値、第2の値、―)を入れて伝播フラグを立て、制御プログラム内で上記変数が演算に関与するとこの伝播フラグを伝搬元から順次伝搬させ、その伝播状況を出力する伝播フラグ追跡処理機能を有する。これにより、制御プログラム内での特定の変数の伝搬状況を追跡することができる。解析プログラムは、さらに、上記伝播フラグに加えて、伝搬回数や伝搬時刻、伝搬元や伝搬先など伝搬経路の情報などを含むビット列を識別子として上記変数に与える処理機能も備えている。
RAM104には、シミュレーション実行に係る各種データ114や、シミュレーション結果の出力データ108が保持される。
I/O105は入力装置109と接続されており、シミュレーションマネージャ110からの指令をトリガとして、入力装置109とコントローラシミュレータ101の間で、同期通信および外部入力の取り込み処理を行いながら、シミュレーションの実行を進めることができる。
入力装置109は、ハードウェア(アクチュエータ,センサ,回路等の実機)を模擬しており、CPU103によるシミュレーションの実行に伴い、実機の応答に相当するシミュレートされた値を出力する。
シミュレーションマネージャ110には、ユーザ入力端末113から、例えば動作環境などの解析条件が入力される。また、シミュレーションマネージャ110は、故障状態のシミュレーションに必要な故障情報及びシミュレーション条件が保存された故障データベース111にアクセスすることができる。シミュレーションマネージャ110は、これらの情報に基づいて、入力装置109へ故障値を与えて故障影響をシミュレーションすることも可能である。シミュレーションマネージャ110は、さらに、コントローラシミュレータ101のROM102に格納された解析プログラム107を介して、シミュレーション条件を指示する機能や、シミュレーション結果の出力データ108の内容を指示する機能も有している。表示装置112は、出力データ108の内容を可視化し画面に表示するための画像処理機能を備えている。このようして、実行されたシミュレーション結果の出力データ108は、表示装置112によってグラフ等の視覚的に確認できる形で表示できる。ユーザは、シミュレーションマネージャ110を操作することで、故障影響のシミュレーション結果をモニターすることができる。
なお、入力装置109及びシミュレーションマネージャ110は、例えば、コントローラシミュレータ101と同様に、コンピュータとその上で動作するプログラムとによって実現される。
ここで、図2と図3を用いて、制御プログラム106と解析プログラム107の具体的な構成例について説明する。
図2は、図1のROM102に格納される各種の制御プログラムの1つの例であり、センサデータを読み込んで演算する制御プログラムの例である。図2には、制御プログラムのメインルーチンと、メインルーチンから呼び出される演算処理についてのプログラム記述例が示されている。記述内容は、整数型の変数X1、X2にセンサからの入力値(変数a,b)を読み込んで代入し、その和をサブルーチンの演算処理add()を用いて和を求め、変数Yに代入するという処理の流れになっている。
この一連の処理を行う解析対象の(原)制御プログラム(図2)に対して、シミュレーションマネージャ110により、解析プログラム107を組み込んだ場合の(解析用)制御プログラムの記述例が、図3に示されている。
図3に破線で示した領域が、新たに組み込まれた部分である。図3の制御プログラムにおいて、これらの新たに追加したプログラム部分をまとめて解析プログラム107とよぶことにする。図3の(解析用)制御プログラムでは、まず、図2の(原)制御プログラムにはなかった新たなデータ配列_packetが構造体(struct)として定義されている。この構造体には、整数型の変数val及びbool型の変数flgなど、複数の情報を含んでよい。そこで、図2におけるint型変数X1、X2への代入値は_packet内のint型変数valに代入するように変更する。ここで、サブルーチンの演算処理add()には変更を加える必要はない。
さらに、_packet内のbool型変数flgは、例えば、初期値をfalseとしておき、センサ入力の伝搬を追跡できるように、演算に関与したすべての変数において其々のflgをtrueとすると定める(以下、伝播フラグと呼ぶ)。ただし、演算への関与に加えて他の条件も組み合わせた複雑な伝播条件の伝播フラグを設定してもよい。例えば、演算に関与&&変数値がX以下など。
なお、伝播フラグを設定する変数には、関数の戻り値や、CPUレジスタの設定値等も含むものとする。
このように、解析プログラムによる故障入力値にも(基本)制御プログラム内の変数と同じデータ型(_packet)を使いたいがために、故障入力値の全てに対しtrueとなる伝播トリガの論理変数を、伝播フラグとは別個に使用する。伝播フラグはプログラム内の全ての変数、若しくは特定の変数に対して使用し、伝搬の有無でtrueかfalseとなる。そうすることで、例えば図3に示されたように、「Y.flg=(X1.flg | X2.flg)」等の論理演算やビット演算によって入力データの伝搬を追跡することが可能となる。つまり、変数のflg(伝播フラグ)がtrueかfalseであるかによってその変数が伝搬したか否かわかる。
例えば、自動車のエンジンコントローラとして既に開発されたプログラムを、他の車種にも適用できるかを、シミュレーションで検証したい場合に、一部若しくはすべての変数について評価することで、そのプログラムの潜在的な故障の影響を解析する。一方、同じ車種で特定アクチュエータの仕様が若干異なる他の車にも適用できるかをシミュレーションで検証したい場合には、異なる仕様の機能に関係する一部の変数について評価することで、そのプログラムの潜在的な故障の影響を解析する。このような解析結果を基に、上記プログラムを、他の車あるいは他の車種にも適用できるかが判定できることができる。開発途中のプログラムで有っても、同様に、故障の影響の無いことが確認された範囲で、他の車あるいは他の車種にも適用できるかの評価を行うことができる。
図4Aは、(原)制御プログラム(400)に解析プログラムを組込んで(410)、(解析用)制御プログラムとする、変数の型変換の具体的な例であり、図4Bの450は、上記解析プログラムを組込む前の元の変数定義の例、460は組込んだ後(変換後)の変数定義の例である。ここで、元の制御プログラム(400)で定義されたint型変数X1,・・・,Xnを例とし、X1=10,Xn=5の値が変数として代入されているとする。これらの変数に対して、解析プログラムを組み込む場合(410)、int型変数は構造体_packetに変換することになる。図4Bに示したように、_packetは、元々有していた数値(val)の情報に加えて、あるデータが伝搬したか否かを示す伝搬フラグ(flg)、伝搬元のIDすなわち伝搬元の変数や関数の識別子(src)、伝搬先のIDすなわち伝搬先の変数や関数の識別子(dst)、伝搬した時刻(time)やその他の情報を加えることができる。その他、外部I/Oの定義等も追加することができる。実際に伝播が生じた場合、Xnの設定例のように伝搬フラグがfalseからtrueとなり、伝搬元及び伝搬先の識別子、伝搬時刻に各々数値が代入される。なお、これらの数値の代入の処理は、解析プログラム107の機能に含めておく。
図5Aの500は、故障データベース111の具体的な例、図5Bの510は故障情報の定義の例を示している。ここでは、故障情報の定義においても図4A,図4Bで用いたのと同様の構造体_packetを用いることもできる。ただし、それぞれの数値の意味は以下に述べるとおりである。まず、valは故障値を表し、flg(伝播トリガ)は伝搬の引き金とするものですべての故障入力(F1〜Fn)に対してtureと設定しておく。制御プログラム内でこれらの故障値を演算などで使用した場合に、その演算結果には伝搬フラグ(flg)がtrueとなって、故障値の影響の伝搬を追跡することができる。また、故障ID(src)は各故障(F1〜Fn)に個別(1〜n)の識別子とし、入力先ID(dst)は入力先の識別子を示すとし、つまりコントローラシミュレータ101のI/O105に入力する際の入力ポートやA/Dコンバータなどを指定するものである。注入時刻(time)は、各故障入力(F1〜Fn)の故障値(val)をI/O105へ送信する時刻を表している。故障情報の定義には、センサ等の外部I/Oに関する定義等も追加することができる。
図6は、シミュレーションを実行するときのシミュレーションマネージャ110の処理フローの例である。シミュレーションが開始されると、まず、故障データベースに定義された故障情報510をすべて読み込む(P601)。そして、すべての登録されている故障(F1〜Fn)について、故障を注入される時刻(time)の順に並べる(P602)。上記の前処理が終了すると、コントローラシミュレータ101へシミュレーションの実行開始指令を出す(P603)。このときシミュレーション時間(sim_time)と注入順に並べられた故障の識別子(k=故障ID)を0に初期化しておく。つぎに、現在のシミュレーション時間が終了時刻か否かを判定し(P604)、終了時刻と一致すればシミュレーションを終了、終了時刻でなければ、注入順序がもっとも早い故障(Fk)に対して、注入時刻か否かの判定をおこなう(P605)。ここで、注入時刻ではない場合、シミュレーション時刻(sim_time)をインクリメントし更新する(P608)。もし、注入時刻(time)であった場合は、入力装置109へ故障Fkを送信し、次の注入順序の故障を読み込み(P606)、シミュレーション時刻を更新する(P608)。シミュレーションマネージャ110は、上記の一連の処理を実行することによって、故障データベースに格納された故障情報510を適切なタイミングで入力装置109へ送信することができる。なお、故障Fkの送信状態は記録され、表示等のために適宜出力される(P607)。
一方、注入時刻毎に故障Fkの入力を受けた入力装置109は、それに応答する出力を解析プログラム107に出力する。制御プログラム106内では、入力装置109からの故障Fkに応答する出力を受けて、シミュレーションの演算処理が実行されると共に、伝播トリガや伝播フラグを利用した伝播フラグ追跡処理がなされ、それらの結果は出力データ108としてメモリに蓄積され・出力される。すなわち、出力データ108には、シミュレーション結果と共に、伝播フラグ追跡処理の結果も併せて保持される。
図7において、表示装置112に表示した画面700は、解析対象の制御プログラムに2つの故障(第1の値、第2の値)を入力してそれぞれシミュレーションを実行した結果を表しており、2つの故障の伝搬の違いが示されている。
まず、画面の最上段に表示された伝搬結果710は、入力ポートI/O1に正常状態(Nominal)の入力値、すなわち、設計値等のように予め与えられた前提条件を満たす範囲のパラメータ等を与えた場合の伝搬状態である。ここでは、制御プログラム内の特定の変数X1にビット(伝播フラグ)を与え、この特定の変数X1に数値値(Valu)を入れてビット(伝播フラグ)を立てたものである。解析対象の制御プログラムは、正常状態の入力値に対してシステムの動作やデータが正常範囲内にあり、故障が顕在化していないものとする。
数値値(Valu)が正常状態のときは、このビット(伝播フラグ)を立てた変数X1が、制御プログラム内の関数Func1,Func2で演算に関与して、変数Y1,X2,Y3と変化しながら、I/O1からI/O2へと伝搬する。また、変数X1は、制御プログラム内の関数Func1,Func3で演算に関与したことで、変数Y2,X3と変化しながら、順次伝搬している。この正常状態のデータは、あらかじめ参考情報として求め、記録しておく。
次に、画面の中段に表示されている伝搬結果720は、伝搬元(ID=1)に第1の値すなわち故障値(val)=50,故障ID(src)=1,故障注入時刻(time)=10を与えた場合のものである。そして、画面の一番下に表示されている伝搬結果730は、伝搬元(ID=2)に第2の値すなわち故障値(val)=100を与えた場合のものである。注入時刻は第1の値に対して変えていない。第1の値及び第2の値は、予め与えられた前提条件を満たさないパラメータ等である。これらの3つの伝搬状況をグラフ化して1画面上に表示することによって、伝搬経路の変化や到達範囲の変化を確認することができる。例えば、画面の中段に表示された例は、故障情報として第1の値を与えたとき、変数X1が、関数Func1の変数Y1からFunc2へ変数X2として伝搬すべきところ、太枠で示したように、Func5の変数X2として伝搬し、I/O2へは伝搬してないことがわかる。一方、変数X1が関数Func1の変数Y2からFunc3へ変数X3として伝搬している。このように、故障情報によって、制御プログラム内での伝搬に影響が表れていることがわかる。換言すると、パラメータを正常状態の値から故障値(第1の値)に変更すると、潜在的な故障影響のあることがわかる。但し、上記第1の値に基づく伝搬の影響が直ちに「故障である」と結論付けることはできない、例えば、変数X1の、関数Func1の変数Y1、Func5の変数X2への伝搬は、予め想定はしていなかったパラメータに関して異なる伝搬状態が現れたけれども、その条件下では正しい応答であることも有りうる。何れの場合でも、正常状態の参考情報とは異なる伝搬結果が得られたとき、その状態を太枠その他の形態で出力表示し、ユーザの注意を喚起するのが望ましい。
さらに、画面の下段に表示された例は、故障情報として第2の値を与えたとき、変数X1が、関数Func1の変数Y1から関数Func2へと伝搬すべきところ、太枠で示したように、Func6の変数X4として伝搬し、I/O2へは伝搬してないことがわかる。また、変数X1は、変数Y2からFunc6に変数X5として伝搬している。すなわち、パラメータを正常状態の値から第2の値に変更すると、潜在的な故障影響のあることがわかる。また、伝搬結果720と伝搬結果730は、故障入力の値の差により、故障の影響に差異があることを示している。
このように、入力ポートI/O1に正常状態とは異なる第1、第2の値を故障情報として与えた場合に、故障入力がどのように伝搬するか評価し、それを画面で確認することが可能となり、潜在的な故障影響まで解析することができる。
これにより、入力ポートI/O1に正常状態(Nominal)の入力値を与えた場合はシステムの動作やデータが正常範囲内にありエラーが顕在化していない場合であっても、正常範囲を超えた故障入力が制御プログラム内でどのように伝搬するかを評価することで、潜在的な故障影響を解析することができ、信頼性の高い制御システムを実現できる。
例えば、既に開発された自動車のエンジンコントローラ用のプログラムを、同じ車種で総排気量等の仕様が若干異なる他の車、あるいは他の車種にも適用できるかを、シミュレーションで検証したい場合に、変更された前提条件のパラメータを入力し、評価することで、そのプログラムの潜在的な故障の影響を解析できる。この解析結果を基に、上記プログラムを、他の車あるいは他の車種にも適用して問題は無いかを判定できる。あるいはまた、開発中のプログラムについて、前提条件として想定していない範囲のパラメータを入力し、評価することで、そのプログラムの潜在的な故障の影響を解析し、必要な場合、対策を講ずることもできる。例えば、パラメータを大きく変えたことにより、車のアクセルやブレーキの応答性が低下し、前提条件を満たさなくなる等、潜在的な故障の影響を把握できる。
図8の例も図7の例と同様に、2つの故障を入力したシミュレーション結果の例を表示した表示装置112の画面800を示している。ここでは、故障値(val)は同一値で注入する時刻(time)がそれぞれ異なる場合を示している。画面の最上段に表示された伝搬結果810は、入力ポートI/O1に正常状態(Nominal)の入力値を与えた場合の、Func1,Func2,Func3,I/O2間の伝搬状態である。画面の中段に表示された伝搬結果820は、故障情報として、変数val=50、ID=1、time=10の入力値を与えた場合であり、入力ポートI/O1から故障入力(変数X1)がFunc1を経てFunc3に伝搬するものの、太枠で示したように変数X2(Func5)に故障の影響が認められ,Func5からI/O2へは故障入力が伝搬しないことを示している。さらに、画面の下段に表示された伝搬結果830は、故障情報として、変数val=50、ID=2、time=50の入力値を与えた場合で、変数Y2、X2に故障の影響が認められることを示している。伝搬結果820と伝搬結果830は、故障入力のタイミングの差により、故障の影響に差異があることを示している。例えば、アクチュエータやセンサの応答特性が、前提条件として想定した範囲を超えるとき、どのような影響が生ずるかを評価できる。
すなわち、図8の場合も、図7の例と同様に、入力ポートI/O1に正常状態(Nominal)の入力値を与えた場合はシステムの動作やデータが正常範囲内にある場合において、正常範囲を超えた故障入力を与えた場合の伝搬経路の変化や到達範囲に変化を生じることがあり、この状況を画面でユーザが確認することで、潜在的な故障影響を解析することができる。
このように、本実施例によれば、システムの動作やデータが正常範囲内にあり故障が顕在化してない制御プログラム内で、どのように故障入力が伝搬するかを詳細に評価することが可能となり、潜在的な故障影響まで解析することで、より信頼性の高い制御システムを実現できる。
シミュレーションの検証対象となるプログラムは、通常、そのサイズがかなり大きく、従って、故障条件として与えるべき変数やそれに関係する関数の数も当然多くなる。そこで、シミュレーションを実行した結果を、より分かり易く表示装置112に出力するために、実施例1で述べたシミュレーションマネージャ110に、条件判定を行うフィルタリング機能を持たせても良い。このフィルタリング機能は、出力データ108に関して、各変数及び関数への伝播有無や、各変数に事前に設定した許容値・閾値の範囲内か否かなどの条件判定を行い、その結果によって、表示装置112への伝播経路の表示可否を選別する。この解析結果は画面で確認することもできる。例えば、条件判定の結果、図7の伝搬結果720は許容値内にあり、伝搬結果730が許容値外の場合、伝搬結果730を「潜在的な故障影響有り」として表示し、伝搬結果720については表示しないようにする。これによって、ユーザが検討すべき対象が絞られるので、より高度な伝播状態の解析が可能となる。また、解析の自動化・効率化を図ることができる。
本発明の他の実施例として、実施例1で述べたコントローラシミュレータ101自体に、故障模擬機能及びコントローラシミュレータの実行を統合管理するシミュレーションマネージャの機能を含ませ、さらに、コントローラシミュレータ101が故障データベース111や表示装置112も保有するようにしてもよい。これにより、前処理(図6のP601〜P603)等のための、シミュレーションマネージャとコントローラシミュレータ間の通信が不要になり、オーバーヘッドを抑制できる。
本発明は、実施例1で述べた制御プログラムのシミュレータ(マイコンシミュレータ)のみならず、実機(アクチュエータ)相当のハードウエア(実施例1の入力装置)を模擬するシミュレータに対しても適用可能である。例えば、自動車のエンジン制御用のコントローラに対応するマイコンシミュレータと、このエンジン制御用のコントローラで制御されるエンジンのモデルのシミュレータ(メカシミュレータ)の双方に対して適用可能である。
図9に、本発明の実施例4に係る、故障影響評価システムの構成例を示す。故障影響評価システム900は、装置モデルのシミュレータ910とマイコンシミュレータ920を備えている。装置モデルのシミュレータ910は、機械系・電子系のシミュレータ911と、解析プログラム912とを有している。また、マイコンシミュレータ920は、実施例1と同様な構成の制御プログラム921と解析プログラム922とを有している。
本実施例でも、実施例1と同様に、解析プログラム912により実機モデルのシミュレータ内の変数等に故障情報を注入することで、実機モデルのシミュレータ内でどう故障入力が伝搬するか評価することが可能となる。すなわち、正常状態の入力値を与えた場合はシステムの動作やデータが正常範囲内にある場合において、制御プログラムのみならず実機モデルの潜在的な故障影響まで解析することで、より信頼性の高いシステムを実現できる。
例えば、自動車のエンジン制御用に開発されたアクチュエータが、同じメーカーの同じ車種で仕様が若干異なる他の車にも適用できるかを、シミュレーションで検証したい場合に、制御プログラムのみならずそのアクチュエータの潜在的な故障影響まで解析することができる。
このように、本実施例によれば、システムの動作やデータが正常範囲内にあり故障が顕在化してない、制御プログラム及び実機モデルのシミュレータ内で、どのように故障入力が伝搬するか評価することが可能となり、潜在的な故障影響まで解析することで、より信頼性の高い制御システムを実現できる。
100 故障影響評価システム
101 コントローラシミュレータ
102 ROM(Read Only Memory)
103 CPU(Central Processing Unit)
104 RAM(Random Access Memory)
105 I/O(Input Output Interface)
106 制御プログラム
107 解析プログラム
108 出力データ
109 入力装置
110 シミュレーションマネージャ
111 故障データベース
112 表示装置
700 表示装置の画面
800 表示装置の画面
900 故障影響評価システム。

Claims (16)

  1. 制御用コントローラの動作を模擬するコントローラシミュレータと、
    前記コントローラシミュレータに入力データを与える入力装置と、
    前記入力装置および前記コントローラシミュレータの実行を統合管理するシミュレーションマネージャと、
    前記シミュレーションマネージャが参照する故障情報及びシミュレーション条件が格納されたデータベースとを含み、
    前記コントローラシミュレータは、
    前記制御用コントローラの制御プログラムと、解析ユニットとを保持しており、
    前記解析ユニットは、前記制御プログラム内の変数に伝播フラグを与え、該変数に故障入力値として各々所定の値を入れてビットを立て、該変数が前記制御プログラム内で演算に関与した都度に該ビットを伝搬させ、該ビットの伝搬状況を追跡して、その結果を出力する伝播フラグ追跡処理機能を有する
    ことを特徴とする故障影響評価システム。
  2. 請求項1において、
    前記解析ユニットが、前記ビットに加えて、伝搬回数や伝搬時刻、伝搬元や伝搬先など伝搬経路の情報などを含むビット列を識別子として前記変数に与える機能を有する
    ことを特徴とする故障影響評価システム。
  3. 請求項2において、
    前記解析ユニットが、前記ビットに加えて、前記伝播フラグとは別個の論理変数である伝播トリガを前記変数に与える機能を有し、
    前記伝播トリガは、前記故障入力値の全てに対しtrueとなり、
    前記伝播フラグは、前記制御プログラム内の少なくとも1つの変数に対して使用され、前記伝搬の有無でtrueかfalseとなる
    ことを特徴とする故障影響評価システム。
  4. 請求項1において、
    前記解析ユニットが、前記各変数及び前記関数への伝播有無や、前記各変数に事前に設定した許容値・閾値の範囲内か否かなどの条件判定を行い、前記ビットを伝搬させるか否かを決定するフィルタリング機能を有する
    ことを特徴とする故障影響評価システム。
  5. 請求項2において、
    前記入力装置は、前記制御用コントローラの制御対象である実機の動作を模擬するためのハードウェアやソフウェアであり、
    前記コントローラシミュレータからの指令に基づき、前記コントローラシミュレータに対する外部入力を生成する
    ことを特徴とする故障影響評価システム。
  6. 請求項5において、
    前記データベースは、試験する故障値と入力先I/Oと入力時刻の情報を含み、
    前記シミュレーションマネージャが、前記データベースを参照し、前記入力装置への指令内容を決定する
    ことを特徴とする故障影響評価システム
  7. 請求項6において、
    前記シミュレーションマネージャが、前記データベースに加えて、前記コントローラシミュレータの実行状態にもとづくランタイムでの条件判定により、
    前記入力装置への前記故障入力値の入力のタイミングを決定する
    ことを特徴とする故障影響評価システム
  8. 請求項2において、
    前記シミュレーションマネージャで制御され、前記コントローラシミュレータの出力データを表示する表示装置を備えており、
    該表示装置は、前記特定の変数に関して、前記制御プログラム内における前記演算に関与した各関数と、該演算に伴う前記ビットの伝播状況とを、画面に表示する機能を有する
    ことを特徴とする故障影響評価システム。
  9. 請求項7において、
    前記シミュレーションマネージャで制御され、前記コントローラシミュレータの出力データを表示する表示装置を備えており、
    前記入力装置から入力された第1の値と第2の値で前記コントローラシミュレータにおけるシミュレーションを実行し、該シミュレーションの結果として、前記ビットの伝搬経路の違いを前記表示装置に表示する
    ことを特徴とする故障影響評価システム。
  10. 請求項4において、
    前記シミュレーションマネージャで制御され、前記コントローラシミュレータの出力データを表示する表示装置を備えており、
    前記シミュレーションマネージャにおいて、前記条件判定の結果によって、前記表示装置への前記変数の伝播経路の表示可否を選別する
    ことを特徴とする故障影響評価システム。
  11. 請求項1において、
    前記制御用コントローラは、
    制御プログラムを格納する第1のROMと、演算を実行する第1のCPUと、データを格納する第1のRAMと、外部インターフェイスの第1のI/Oを含み、
    該制御用コントローラの動作を模擬する前記コントローラシミュレータは、前記制御プログラム及び前記解析ユニットを構成する解析プログラムを格納する第2のROMと、前記制御プログラムに従って演算を行う第2のCPUと、演算結果等のデータを格納する第2のRAMと、外部入力を該コントローラに取り込むインターフェイスとなる第1のI/Oとを備えている
    ことを特徴とする故障影響評価システム。
  12. 請求項1において、
    前記シミュレーションマネージャで制御され、前記コントローラシミュレータの出力データを表示する表示装置を備えており、
    前記コントローラシミュレータが、
    故障模擬機能及び前記シミュレーションマネージャの機能、前記データベース、及び前記表示装置を保有している
    ことを特徴とする故障影響評価システム。
  13. 制御用コントローラの動作を模擬するマイコンシミュレータと、
    前記制御用コントローラの制御対象であるアクチュエータの動作を模擬するメカシミュレータと、
    前記マイコンシミュレータ及び前記メカシミュレータに入力データを与える入力装置と、
    前記入力装置および前記マイコンシミュレータ及び前記メカシミュレータの実行を統合管理するシミュレーションマネージャと、
    前記シミュレーションマネージャが参照する故障情報及びシミュレーション条件が格納されたデータベースとを備え、
    前記マイコンシミュレータ及び前記メカシミュレータは、各々、
    制御プログラムと、解析ユニットとを保持しており、
    前記解析ユニットは、前記制御プログラム内の変数に伝播フラグを与え、該変数に故障入力値として各々所定の値を入れてビットを立て、該変数が前記制御プログラム内で演算に関与した都度に該ビットを伝搬させ、該ビットの伝搬状況を追跡して、その結果を出力する伝播フラグ追跡処理機能を有する
    ことを特徴とする故障影響評価システム。
  14. 故障影響評価システムを用いた評価方法であって、
    前記故障影響評価システムは、
    制御用コントローラの動作を模擬するコントローラシミュレータと、
    前記コントローラシミュレータに入力データを与える入力装置と、
    前記入力装置および前記コントローラシミュレータの実行を統合管理するシミュレーションマネージャと、
    前記シミュレーションマネージャが参照する故障情報及びシミュレーション条件が格納されたデータベースとを含み、
    前記コントローラシミュレータは、
    前記制御用コントローラの制御プログラムと、解析ユニットとを保持しており、
    前記制御プログラム内の変数に伝播フラグを与え、
    該変数に故障入力値として各々所定の値を入れてビットを立て、
    該変数が前記制御プログラム内で演算に関与した都度に該ビットを伝搬させ、該ビットの伝搬状況を追跡して、その結果を出力する
    ことを特徴とする故障影響評価方法。
  15. 請求項14において、
    前記解析ユニットが、前記ビットに加えて、前記伝播フラグとは別個の論理変数である伝播トリガを前記変数に与える機能を有し、
    前記伝播トリガは、前記故障入力値の全てに対しtrueとなり、
    前記伝播フラグは、前記制御プログラム内の少なくとも1つの変数に対して使用され、前記伝搬の有無でtrueかfalseとなる
    ことを特徴とする故障影響評価方法。
  16. 請求項14において、
    前記シミュレーションマネージャで制御され、前記コントローラシミュレータの出力データを表示する表示装置を備えており、
    前記入力装置から入力された第1の値と第2の値で前記コントローラシミュレータにおけるシミュレーションを実行し、該シミュレーションの結果として、前記ビットの伝搬経路の違いを前記表示装置に表示する
    ことを特徴とする故障影響評価方法。
JP2014523473A 2012-07-03 2012-07-03 故障影響評価システム及び評価方法 Expired - Fee Related JP5937209B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/067006 WO2014006693A1 (ja) 2012-07-03 2012-07-03 故障影響評価システム及び評価方法

Publications (2)

Publication Number Publication Date
JPWO2014006693A1 JPWO2014006693A1 (ja) 2016-06-02
JP5937209B2 true JP5937209B2 (ja) 2016-06-22

Family

ID=49881484

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014523473A Expired - Fee Related JP5937209B2 (ja) 2012-07-03 2012-07-03 故障影響評価システム及び評価方法

Country Status (3)

Country Link
US (1) US9606902B2 (ja)
JP (1) JP5937209B2 (ja)
WO (1) WO2014006693A1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10691088B2 (en) * 2015-03-20 2020-06-23 The Boeing Company Programmable actuator simulation card
JP6520772B2 (ja) 2016-03-14 2019-05-29 オムロン株式会社 評価システム、評価プログラムおよび評価方法
US10671514B2 (en) * 2016-11-15 2020-06-02 Inrix, Inc. Vehicle application simulation environment
JP6732676B2 (ja) * 2017-02-10 2020-07-29 三菱日立パワーシステムズ株式会社 シミュレーション結果の評価装置及び方法
DE102018212560A1 (de) * 2017-08-08 2019-02-14 Robert Bosch Gmbh Rechnergestütztes System zum Testen einer servergestützten Fahrzeugfunktion
CN109240914B (zh) * 2018-08-14 2023-12-08 安徽鼎立网络科技有限公司 安全测试任务的监控管理方法及终端设备
WO2020089977A1 (ja) * 2018-10-29 2020-05-07 三菱電機株式会社 プログラマブルロジックコントローラ、プログラマブルロジックコントローラシステムおよびデータ解析方法
IT201800011169A1 (it) * 2018-12-17 2020-06-17 Carel Ind Spa Procedimento di verifica della stabilità funzionale di un controllore di una macchina frigorifera
JP7313291B2 (ja) * 2020-01-10 2023-07-24 三菱電機株式会社 プラント制御装置、これを用いたプラント監視装置、データ収集装置、及びプラント制御装置シミュレータ
CN112883500B (zh) * 2021-03-26 2022-04-26 吉林大学 一种基于故障注入的智能车辆系统早期功能安全评估方法
CN114397876B (zh) * 2022-01-24 2024-09-03 中国信息通信研究院 用于评估域控制器性能的方法及装置、电子设备、存储介质
EP4369010A4 (en) * 2022-09-29 2024-05-15 Contemporary Amperex Technology Co., Limited METHOD AND APPARATUS FOR TESTING CONTROL SOFTWARE AND COMPUTER-READABLE STORAGE MEDIUM

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04254713A (ja) * 1991-02-07 1992-09-10 Osaka Gas Co Ltd 故障候補集合指定装置
JPH07281905A (ja) * 1994-04-04 1995-10-27 Fujitsu Ltd 型宣言修正装置
US5842202A (en) * 1996-11-27 1998-11-24 Massachusetts Institute Of Technology Systems and methods for data quality management
JPH10307609A (ja) 1997-05-06 1998-11-17 Toshiba Corp プラント制御用ソフトウェア検証ツール
US6519694B2 (en) 1999-02-04 2003-02-11 Sun Microsystems, Inc. System for handling load errors having symbolic entity generator to generate symbolic entity and ALU to propagate the symbolic entity
CA2447163A1 (en) * 2003-05-30 2004-11-30 Bruno Braeen A visual debugging interface
US7386756B2 (en) * 2004-06-17 2008-06-10 Intel Corporation Reducing false error detection in a microprocessor by tracking instructions neutral to errors
US7627857B2 (en) * 2004-11-15 2009-12-01 International Business Machines Corporation System and method for visualizing exception generation
AU2005331434B2 (en) 2005-04-25 2009-11-26 Fujitsu Limited Monitoring simulating device, method, and program
US8751866B2 (en) * 2006-09-28 2014-06-10 International Business Machines Corporation Autonomic fault isolation in a highly interconnected system
US20110035802A1 (en) * 2009-08-07 2011-02-10 Microsoft Corporation Representing virtual object priority based on relationships
CN103262048B (zh) * 2010-12-20 2016-01-06 日本电气株式会社 操作管理装置、操作管理方法及其程序
EP2482191B1 (en) * 2011-01-31 2017-03-22 Fujitsu Limited Memory correctness checking in distributed computer systems
US8751872B2 (en) * 2011-05-27 2014-06-10 Microsoft Corporation Separation of error information from error propagation information

Also Published As

Publication number Publication date
WO2014006693A1 (ja) 2014-01-09
JPWO2014006693A1 (ja) 2016-06-02
US20150121148A1 (en) 2015-04-30
US9606902B2 (en) 2017-03-28

Similar Documents

Publication Publication Date Title
JP5937209B2 (ja) 故障影響評価システム及び評価方法
US9864355B2 (en) Test device for testing a virtual electronic control unit
EP3715975B1 (en) Method and apparatus for analysing a ladder program
US20180039566A1 (en) Method and computer system for compiling and testing a control program
US10997344B2 (en) ECU simulation device
CN103718119A (zh) 自动对设备创建可执行安全功能的方法和装置
Zheng et al. On the state of the art in verification and validation in cyber physical systems
Moradi et al. Model-implemented hybrid fault injection for Simulink (tool demonstrations)
Wotawa et al. Quality assurance methodologies for automated driving.
US11801823B2 (en) Computer-based system for testing a server-based vehicle function
JP5680514B2 (ja) 自己診断機能を備えたコンピュータ、ソフトウェア作成方法、およびソフトウェア作成装置
Uriagereka et al. Design-time safety assessment of robotic systems using fault injection simulation in a model-driven approach
Battram et al. A Modular Safety Assurance Method considering Multi-Aspect Contracts during Cyber Physical System Design.
US20090182442A1 (en) Framework for results interpretation and guided refinement of specifications for plc logic verification
Kaijser et al. Towards simulation-based verification for continuous integration and delivery
Bouali et al. Formal verification for model-based development
WO2016103229A1 (en) A method for verifying a safety logic in an industrial process
Budnik et al. Testbed for Model-based Verification of Cyber-physical Production Systems.
Bonacchi et al. Validation of interlocking systems by testing their models
Caldas et al. Towards Mapping Control Theory and Software Engineering Properties using Specification Patterns
Karlsson et al. Automation of the creation and execution of system level hardware-in-loop tests through model-based testing
US10678537B1 (en) Method and system for documenting a control program
US11403077B2 (en) Method and system for preparing block diagrams for code generation
Fleischer et al. Applying model-based design and automatic production code generation to safety-critical system development
JP2008310513A (ja) プログラム検査装置

Legal Events

Date Code Title Description
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: 20160419

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160511

R150 Certificate of patent or registration of utility model

Ref document number: 5937209

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees