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

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

Info

Publication number
WO2014006693A1
WO2014006693A1 PCT/JP2012/067006 JP2012067006W WO2014006693A1 WO 2014006693 A1 WO2014006693 A1 WO 2014006693A1 JP 2012067006 W JP2012067006 W JP 2012067006W WO 2014006693 A1 WO2014006693 A1 WO 2014006693A1
Authority
WO
WIPO (PCT)
Prior art keywords
propagation
failure
controller
variable
simulator
Prior art date
Application number
PCT/JP2012/067006
Other languages
English (en)
French (fr)
Inventor
章彦 兵頭
勝 康夫
康宏 伊藤
山田 哲也
Original Assignee
株式会社日立製作所
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 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to PCT/JP2012/067006 priority Critical patent/WO2014006693A1/ja
Priority to JP2014523473A priority patent/JP5937209B2/ja
Priority to US14/404,844 priority patent/US9606902B2/en
Publication of WO2014006693A1 publication Critical patent/WO2014006693A1/ja

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

Definitions

  • the present invention relates to a failure impact evaluation system, and in particular, in a control controller that requires high reliability such as a power plant, a railway, an automobile, and a construction machine, evaluates the impact at the time of hardware failure and verifies fail-safe operation.
  • the present invention relates to a failure effect evaluation system and an evaluation method suitable for the above.
  • Patent Document 1 There is an invention described in Patent Document 1 as background art in this technical field.
  • the plant control software verification tool described in Patent Document 1 simulates the plant control software 2 installed on the control panel 21 used to control the plant 20 and the actual control panel 21 to ensure the soundness of the plant control software 2.
  • Auxiliary storage device 4 that stores verification program 3 for verifying the nature
  • arithmetic device 7 that reads verification program 3 from auxiliary storage device 4 and executes a verification process
  • display device that is an interface between arithmetic device 7 and a human 5
  • an input device 6 that is also used as an interface
  • a storage device 8 that records calculation results and software
  • a printing device 9 that prints the calculation results.
  • Patent Document 1 also discloses a failure effect evaluation method.
  • the plant control software verification tool when the calculation unit is instructed about the failure location of the control device and equipment, an evaluation of the extent to which the instructed control device and equipment are affected is performed.
  • a plant control software verification tool having an impact evaluation means for performing.
  • a simulator as a control program verification tool can be used to arbitrarily change the system operating environment, check for the presence of a failure effect that does not become apparent, and affect the control program under the new operating environment.
  • the ability to be evaluated is necessary to develop a highly reliable system.
  • Patent Document 1 discloses an evaluation means for how a fault input is propagated in a control program in the case where the influence is not obvious, that is, when the system operation and data are within a normal range. Absent.
  • the purpose of the present invention is to evaluate how the fault input propagates in a program in which the system operation and data are within the normal range and the fault is not obvious, and to analyze the potential fault impact. It is an object to provide a failure effect evaluation system and an evaluation method that can be used.
  • a failure impact evaluation system includes a controller simulator that simulates the operation of a controller for control, an input device that provides input data to the controller simulator, a simulation manager that integrally manages execution of the input device and the controller simulator, and the simulation manager
  • the controller simulator holds a control program of the controller for control and an analysis unit, and the analysis unit is included in the control program.
  • a propagation flag is given to a variable, a predetermined value is set as a failure input value for each variable, a bit is set, and the bit is propagated every time the variable is involved in an operation in the control program.
  • Example 1 of this invention It is an example of the block diagram of the failure influence evaluation system based on Example 1 of this invention. It is an example of the control program which reads and calculates sensor data. It is an example of the control program which incorporated the analysis program in the control program of FIG. This is an example of variable type conversion that incorporates an analysis program into a control program. It is a concrete example of variable definition before and after incorporating an analysis program. It is a specific example of a failure database. It is an example of the definition of failure information. It is an example of the processing flow of a simulation manager. It is an example of a display screen which shows the change of propagation of the 1st fault value and the 2nd fault value. It is an example of a display screen which shows the change of propagation by the 1st failure time and the 2nd failure time. It is an example of the block diagram of the failure influence evaluation system based on Example 4 of this invention.
  • a simulator for simulating the operation of a controller for a control controller including a ROM for storing a control program, a CPU for calculation, a RAM for storing data, and an I / O for an external interface, in addition to the control program
  • a controller simulator in which the analysis program for generating data necessary for the analysis of the simulation execution result is also stored in the simulator ROM;
  • An input device for providing input data to the controller simulator;
  • a simulation manager that integrally manages execution of the input device and the controller simulator;
  • a failure effect evaluation system comprising a display device that displays the output data of the simulator, A process of giving a bit to a variable in the control program, setting a bit by putting a predetermined value in a specific variable, and propagating the bit when this bit is involved in an operation in the control program and outputting the bit It has the analysis program containing.
  • the present invention can be applied to control controllers in various fields such as power plants, railways, automobiles, and construction machines. It can also be applied to IT equipment infrastructure such as servers and storage. Embodiments of the present invention will be described below with reference to the drawings.
  • FIG. 1 is an example of a configuration diagram of a failure effect evaluation system 100 according to an embodiment for carrying out the present invention.
  • the failure impact evaluation system 100 includes a controller simulator 101, an input device 109, a simulation manager 110 that integrally manages execution of the input device and the controller simulator, and a display device 112.
  • the controller simulator 101 is a simulator that simulates the operation of a control controller (not shown) that controls an actual machine.
  • the input device 109 simulates an actual actuator or sensor, and generates an external input to the controller simulator 101 based on a command from the controller simulator 101.
  • the failure impact assessment system 100 is realized, for example, by configuring the controller simulator 101 with a server and connecting other devices to the server via a communication network.
  • the failure impact assessment system 100 may be configured as a wide area network distributed system including servers and terminals.
  • the control controller whose operation is simulated by the controller simulator is, for example, an automobile engine controller, and the hardware whose operation is simulated by the input device 109 controls the opening of the throttle valve of the engine. For example, a motor or a sensor for detecting an angle.
  • the control controller includes at least a ROM (Read Only Memory) for storing a control program, a CPU (Central Processing Unit) for calculating, a RAM (Random Access Memory) for storing data, and an I / O (Input / Output) for an external interface. Output Interface).
  • the controller simulator 101 also includes at least the ROM 102 that stores the control program 106 and the analysis program 107, the CPU 103 that performs calculations according to the control program 106, the RAM 104 that stores data such as calculation results, and analog data of sensors, for example. And an I / O 105 serving as an interface for taking in an external input such as digital data from a digital device to the controller.
  • the analysis program (analysis unit) 107 generates data necessary for analyzing the simulation execution result. That is, the analysis program (analysis unit) 107 sets a propagation flag by putting predetermined values (first value, second value,-) in specific or all variables in the control program 106, and sets the propagation flag in the control program 106.
  • the propagation flag is propagated sequentially from the propagation source, and the propagation flag tracking processing function for outputting the propagation state is provided. Thereby, it is possible to track the propagation state of a specific variable within the control program.
  • the analysis program further includes a processing function for giving a bit string including propagation path information such as the number of times of propagation, propagation time, propagation source, and propagation destination to the variable as an identifier.
  • the RAM 104 holds various data 114 related to simulation execution and output data 108 of simulation results.
  • the I / O 105 is connected to the input device 109, and the simulation is executed while performing synchronous communication and external input capturing processing between the input device 109 and the controller simulator 101 with a command from the simulation manager 110 as a trigger. Can proceed.
  • the input device 109 simulates hardware (actual machines such as actuators, sensors, and circuits), and outputs a simulated value corresponding to the response of the real machine as the CPU 103 executes the simulation.
  • Analysis conditions such as an operating environment are input to the simulation manager 110 from the user input terminal 113, for example.
  • the simulation manager 110 can access a failure database 111 in which failure information and simulation conditions necessary for failure state simulation are stored. Based on such information, the simulation manager 110 can also give a fault value to the input device 109 to simulate the fault effect.
  • the simulation manager 110 further has a function of instructing simulation conditions and a function of instructing the contents of the simulation result output data 108 via the analysis program 107 stored in the ROM 102 of the controller simulator 101.
  • the display device 112 has an image processing function for visualizing the content of the output data 108 and displaying it on the screen.
  • the output data 108 of the simulation result that has been executed can be displayed in a form that can be visually confirmed by the display device 112 such as a graph.
  • the user can monitor the simulation result of the failure effect by operating the simulation manager 110.
  • the input device 109 and the simulation manager 110 are realized by a computer and a program that operates on the computer, for example, like the controller simulator 101.
  • control program 106 and the analysis program 107 will be described with reference to FIGS.
  • FIG. 2 is an example of various control programs stored in the ROM 102 of FIG. 1, and is an example of a control program that reads and calculates sensor data.
  • FIG. 2 shows a program description example of the main routine of the control program and the arithmetic processing called from the main routine. The contents of the description read and substitute the input values (variables a and b) from the sensor into integer type variables X1 and X2, find the sum using the subroutine processing add (), and assign to the variable Y The flow of processing is to do.
  • FIG. 3 shows a description example of the control program (for analysis) when the analysis program 107 is incorporated by the simulation manager 110 with respect to the analysis target (original) control program (FIG. 2) for performing this series of processing.
  • a region indicated by a broken line in FIG. 3 is a newly incorporated portion.
  • these newly added program parts are collectively referred to as an analysis program 107.
  • a new data array_packet that was not found in the (original) control program of FIG. 2 is defined as a structure (struct).
  • the structure may include a plurality of pieces of information such as an integer type variable val and a bool type variable flg. Therefore, the assignment value to the int type variables X1 and X2 in FIG. 2 is changed to be assigned to the int type variable val in _packet.
  • the bool type variable flg in _packet is set to be true for all the variables involved in the calculation so that the initial value is set to false and the propagation of the sensor input can be traced (hereinafter, referred to as “true”). Called the propagation flag).
  • variable that sets the propagation flag includes the return value of the function and the setting value of the CPU register.
  • the propagation trigger logical variable that is true for all the failure input values is set. Used separately from the propagation flag.
  • the variable can be determined whether or not the variable has been propagated depending on whether the flg (propagation flag) of the variable is true or false. For example, if you want to verify by simulation whether a program that has already been developed as an engine controller for a car can be applied to other car models, you can evaluate some or all of the variables to find a potential failure of the program. Analyze the effects of On the other hand, if you want to verify by simulation whether the specifications of a specific actuator can be applied to other vehicles with slightly different specifications, you can evaluate the potential of the program by evaluating some variables related to the functions of the different specifications. To analyze the effects of typical failure. Based on such an analysis result, it can be determined whether the program can be applied to other vehicles or other vehicle types. Even if it is a program in the middle of development, it is possible to evaluate whether it can be applied to other vehicles or other vehicle types as long as it is confirmed that there is no influence of the failure.
  • FIG. 4A is a specific example of variable type conversion in which an analysis program is incorporated into the (original) control program (400) (410) to form a control program (for analysis).
  • An example of original variable definition before incorporating the analysis program 460 is an example of variable definition after incorporation (after conversion).
  • the int type variable is converted into a structure_packet. As shown in FIG.
  • the _packet includes a propagation flag (flg) indicating whether or not certain data has been propagated, an ID of the propagation source, that is, a propagation source ID, in addition to the numerical value (val) information originally possessed.
  • a variable or function identifier (src), a propagation destination ID, that is, a propagation destination variable or function identifier (dst), a propagation time (time), and other information can be added.
  • the definition of external I / O can be added.
  • the propagation flag changes from false to true as in the setting example of Xn, and numerical values are assigned to the propagation source and destination identifiers and the propagation time, respectively. Note that these numerical value substitution processes are included in the function of the analysis program 107.
  • FIG. 5A shows a specific example of the failure database 111
  • 510 of FIG. 5B shows an example of the definition of failure information.
  • the structure_packet similar to that used in FIGS. 4A and 4B can also be used in the definition of failure information.
  • the meaning of each numerical value is as described below.
  • val represents a failure value
  • flg propagation trigger
  • F1 to Fn failure inputs
  • the failure ID (src) is an individual (1 to n) identifier for each failure (F1 to Fn)
  • the input destination ID (dst) is an identifier of the input destination, that is, in the I / O 105 of the controller simulator 101.
  • the input port and A / D converter for inputting are designated.
  • the injection time (time) represents the time at which the fault value (val) of each fault input (F1 to Fn) is transmitted to the I / O 105.
  • a definition relating to external I / O such as a sensor can be added to the definition of failure information.
  • FIG. 6 is an example of a processing flow of the simulation manager 110 when executing the simulation.
  • the simulation is started, first, all the failure information 510 defined in the failure database is read (P601). Then, all registered faults (F1 to Fn) are arranged in the order of the time (time) at which the faults are injected (P602).
  • a simulation execution start command is issued to the controller simulator 101 (P603).
  • it is determined whether or not the current simulation time is the end time (P604). If it coincides with the end time, the simulation is ended.
  • the injection is performed for the fault (Fk) whose injection order is the earliest. It is determined whether or not it is time (P605). If it is not the injection time, the simulation time (sim_time) is incremented and updated (P608). If it is the injection time (time), the failure Fk is transmitted to the input device 109, the failure in the next injection sequence is read (P606), and the simulation time is updated (P608).
  • the simulation manager 110 can transmit the failure information 510 stored in the failure database to the input device 109 at an appropriate timing by executing the series of processes described above. Note that the transmission state of the failure Fk is recorded and output as appropriate for display or the like (P607).
  • the input device 109 that receives the input of the failure Fk at every injection time outputs an output in response to the analysis program 107.
  • the control program 106 an output in response to the failure Fk from the input device 109 is received, a simulation calculation process is executed, and a propagation flag tracking process using a propagation trigger and a propagation flag is performed.
  • the output data 108 is stored in the memory and output. That is, the output data 108 holds the result of the propagation flag tracking process together with the simulation result.
  • a screen 700 displayed on the display device 112 represents a result of executing simulation by inputting two faults (first value and second value) into the control program to be analyzed. The difference in propagation of two faults is shown.
  • the propagation result 710 displayed at the top of the screen is a normal value (nominal) input value to the input port I / O1, that is, a parameter in a range that satisfies a precondition given in advance, such as a design value. It is a propagation state when giving.
  • a bit (propagation flag) is given to a specific variable X1 in the control program, and a bit (propagation flag) is set by putting a numerical value (Valu) in the specific variable X1.
  • variable X1 When the numerical value (Valu) is in a normal state, the variable X1 with this bit (propagation flag) set is involved in the calculation with the functions Func1 and Func2 in the control program and changes to the variables Y1, X2 and Y3. , Propagate from I / O1 to I / O2. Further, the variable X1 is propagated sequentially while changing to the variables Y2 and X3 because the functions Func1 and Func3 in the control program are involved in the calculation. This normal state data is obtained and recorded as reference information in advance.
  • the injection time is not changed with respect to the first value.
  • the first value and the second value are parameters that do not satisfy a precondition given in advance.
  • the variable X1 should be propagated as the variable X2 from the variable Y1 to the Func2 of the function Func1, as indicated by a thick frame It can be seen that it propagates as a variable X2 of Func5 and does not propagate to I / O2.
  • the variable X1 is propagated as the variable X3 from the variable Y2 to the Func3 of the function Func1.
  • the failure information has an influence on the propagation in the control program. In other words, if the parameter is changed from the value in the normal state to the failure value (first value), it can be seen that there is a potential failure effect.
  • variable X1 should be propagated from the variable Y1 of the function Func1 to the function Func2, as shown by a thick frame. , It propagates as a variable X4 of Func6, and does not propagate to I / O2.
  • the variable X1 is propagated from the variable Y2 to Func6 as the variable X5. That is, when the parameter is changed from the normal state value to the second value, it can be seen that there is a potential failure effect. Further, the propagation result 720 and the propagation result 730 indicate that there is a difference in the influence of the failure due to the difference in the value of the failure input.
  • the propagation result 810 displayed at the top of the screen is a propagation state between Func1, Func2, Func3, and I / O2 when the input value of the normal state (Nominal) is given to the input port I / O1.
  • the propagation result 820 and the propagation result 830 indicate that there is a difference in the influence of the failure due to the difference in the timing of the failure input. For example, it is possible to evaluate what kind of influence occurs when the response characteristics of the actuator or sensor exceed a range assumed as a precondition.
  • the simulation manager 110 described in the first embodiment may be provided with a filtering function for performing condition determination.
  • This filtering function determines whether or not the output data 108 is propagated to each variable and function and whether or not the variable is within the range of allowable values and thresholds set in advance for each variable. Whether to display the propagation path to 112 is selected.
  • This analysis result can also be confirmed on the screen. For example, as a result of the condition determination, if the propagation result 720 in FIG.
  • the propagation result 730 is displayed as “potentially affected by failure”. Is not displayed.
  • the target to be examined by the user is narrowed down, so that a more advanced analysis of the propagation state becomes possible.
  • the analysis can be automated and efficient.
  • the controller simulator 101 itself described in the first embodiment includes a failure simulation function and a simulation manager function for integrated management of the execution of the controller simulator.
  • the display device 112 may also be owned. This eliminates the need for communication between the simulation manager and the controller simulator for preprocessing (P601 to P603 in FIG. 6) and the like, and can suppress overhead.
  • the present invention can be applied not only to the simulator (microcomputer simulator) of the control program described in the first embodiment, but also to a simulator that simulates hardware (input device of the first embodiment) corresponding to an actual machine (actuator).
  • the present invention can be applied to both a microcomputer simulator corresponding to a controller for controlling an engine of an automobile and a simulator (mechanical simulator) of an engine model controlled by the controller for engine control.
  • FIG. 9 shows a configuration example of a failure effect evaluation system according to the fourth embodiment of the present invention.
  • the failure effect evaluation system 900 includes an apparatus model simulator 910 and a microcomputer simulator 920.
  • the apparatus model simulator 910 includes a mechanical / electronic simulator 911 and an analysis program 912.
  • the microcomputer simulator 920 has a control program 921 and an analysis program 922 having the same configuration as in the first embodiment.

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)

Abstract

 制御用コントローラの動作を模擬するコントローラシミュレータと、前記コントローラシミュレータに入力データを与える入力装置と、前記入力装置および前記コントローラシミュレータの実行を統合管理する、シミュレーションマネージャと、前記シミュレーションマネージャが参照する故障情報及びシミュレーション条件が格納されたデータベースとを含み、前記コントローラシミュレータは、前記制御用コントローラの制御プログラムと、解析ユニットとを保持しており、前記解析ユニットは、前記制御プログラム内の変数に伝播フラグを与え、該変数に故障入力値として各々所定の値を入れてビットを立て、該変数が前記制御プログラム内で演算に関与した都度に該ビットを伝搬させ、該ビットの伝搬状況を追跡して、その結果を出力する伝播フラグ追跡処理機能を有する、故障影響評価システム。

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.  請求項13において、
     前記解析ユニットが、前記ビットに加えて、前記伝播フラグとは別個の論理変数である伝播トリガを前記変数に与える機能を有し、
     前記伝播トリガは、前記故障入力値の全てに対しtrueとなり、
     前記伝播フラグは、前記制御プログラム内の少なくとも1つの変数に対して使用され、前記伝搬の有無でtrueかfalseとなる
    ことを特徴とする故障影響評価方法。
  16.  請求項13において、
     前記シミュレーションマネージャで制御され、前記コントローラシミュレータの出力データを表示する表示装置を備えており、
     前記入力装置から入力された第1の値と第2の値で前記コントローラシミュレータにおけるシミュレーションを実行し、該シミュレーションの結果として、前記ビットの伝搬経路の違いを前記表示装置に表示する
    ことを特徴とする故障影響評価方法。
PCT/JP2012/067006 2012-07-03 2012-07-03 故障影響評価システム及び評価方法 WO2014006693A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/JP2012/067006 WO2014006693A1 (ja) 2012-07-03 2012-07-03 故障影響評価システム及び評価方法
JP2014523473A JP5937209B2 (ja) 2012-07-03 2012-07-03 故障影響評価システム及び評価方法
US14/404,844 US9606902B2 (en) 2012-07-03 2012-07-03 Malfunction influence evaluation system and evaluation method using a propagation flag

Applications Claiming Priority (1)

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

Publications (1)

Publication Number Publication Date
WO2014006693A1 true WO2014006693A1 (ja) 2014-01-09

Family

ID=49881484

Family Applications (1)

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

Country Status (3)

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

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160112927A (ko) * 2015-03-20 2016-09-28 더 보잉 컴파니 프로그래밍가능한 액츄에이터 시뮬레이션 카드
CN109240914A (zh) * 2018-08-14 2019-01-18 平安普惠企业管理有限公司 安全测试任务的监控管理方法及终端设备
TWI677771B (zh) * 2017-02-10 2019-11-21 日商三菱日立電力系統股份有限公司 模擬結果之評價裝置及方法
JP2021111116A (ja) * 2020-01-10 2021-08-02 三菱電機株式会社 プラント制御装置、これを用いたプラント監視装置、データ収集装置、及びプラント制御装置シミュレータ

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6520772B2 (ja) * 2016-03-14 2019-05-29 オムロン株式会社 評価システム、評価プログラムおよび評価方法
US10671514B2 (en) * 2016-11-15 2020-06-02 Inrix, Inc. Vehicle application simulation environment
DE102018212560A1 (de) * 2017-08-08 2019-02-14 Robert Bosch Gmbh Rechnergestütztes System zum Testen einer servergestützten Fahrzeugfunktion
CN112997123B (zh) * 2018-10-29 2021-12-03 三菱电机株式会社 可编程逻辑控制器系统以及数据解析方法
IT201800011169A1 (it) * 2018-12-17 2020-06-17 Carel Ind Spa Procedimento di verifica della stabilità funzionale di un controllore di una macchina frigorifera
CN112883500B (zh) * 2021-03-26 2022-04-26 吉林大学 一种基于故障注入的智能车辆系统早期功能安全评估方法
CN114397876A (zh) * 2022-01-24 2022-04-26 中国信息通信研究院 用于评估域控制器性能的方法及装置、电子设备、存储介质

Citations (2)

* 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 型宣言修正装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
WO2006117833A1 (ja) 2005-04-25 2006-11-09 Fujitsu Limited 監視シミュレーション装置,方法およびそのプログラム
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

Patent Citations (2)

* 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 型宣言修正装置

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160112927A (ko) * 2015-03-20 2016-09-28 더 보잉 컴파니 프로그래밍가능한 액츄에이터 시뮬레이션 카드
JP2016212834A (ja) * 2015-03-20 2016-12-15 ザ・ボーイング・カンパニーThe Boeing Company プログラム可能アクチュエータシミュレーションカード
KR102514263B1 (ko) * 2015-03-20 2023-03-24 더 보잉 컴파니 프로그래밍가능한 액츄에이터 시뮬레이션 카드
TWI677771B (zh) * 2017-02-10 2019-11-21 日商三菱日立電力系統股份有限公司 模擬結果之評價裝置及方法
CN109240914A (zh) * 2018-08-14 2019-01-18 平安普惠企业管理有限公司 安全测试任务的监控管理方法及终端设备
CN109240914B (zh) * 2018-08-14 2023-12-08 安徽鼎立网络科技有限公司 安全测试任务的监控管理方法及终端设备
JP2021111116A (ja) * 2020-01-10 2021-08-02 三菱電機株式会社 プラント制御装置、これを用いたプラント監視装置、データ収集装置、及びプラント制御装置シミュレータ
JP7313291B2 (ja) 2020-01-10 2023-07-24 三菱電機株式会社 プラント制御装置、これを用いたプラント監視装置、データ収集装置、及びプラント制御装置シミュレータ

Also Published As

Publication number Publication date
US20150121148A1 (en) 2015-04-30
US9606902B2 (en) 2017-03-28
JP5937209B2 (ja) 2016-06-22
JPWO2014006693A1 (ja) 2016-06-02

Similar Documents

Publication Publication Date Title
JP5937209B2 (ja) 故障影響評価システム及び評価方法
US9864355B2 (en) Test device for testing a virtual electronic control unit
Shokry et al. Model-based verification of embedded software
US10331548B2 (en) Method and computer system for compiling and testing a control program
CN103718119A (zh) 自动对设备创建可执行安全功能的方法和装置
Zheng et al. On the state of the art in verification and validation in cyber physical systems
Wotawa et al. Quality assurance methodologies for automated driving.
US11801823B2 (en) Computer-based system for testing a server-based vehicle function
Moradi et al. Model-implemented hybrid fault injection for Simulink (tool demonstrations)
EP3715975B1 (en) Method and apparatus for analysing a ladder program
US8751094B2 (en) Method for validation of a graphically based executable control specification using model extraction
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
Saglietti et al. White and grey-box verification and validation approaches for safety-and security-critical software systems
Bouali et al. Formal verification for model-based development
Budnik et al. Testbed for Model-based Verification of Cyber-physical Production Systems.
Bonacchi et al. Validation of interlocking systems by testing their models
Stratis et al. A practical approach towards validating HIL simulation of a safety-critical system
Karlsson et al. Automation of the creation and execution of system level hardware-in-loop tests through model-based testing
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
Borge-Diez et al. Software Validation Techniques in the Automotive Sector
Ozmen et al. Simulation-based testing for instrumentation and control systems

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12880505

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2014523473

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 14404844

Country of ref document: US

122 Ep: pct application non-entry in european phase

Ref document number: 12880505

Country of ref document: EP

Kind code of ref document: A1