JP2024501588A - Computer-implemented method to check correctness of PLC program - Google Patents
Computer-implemented method to check correctness of PLC program Download PDFInfo
- Publication number
- JP2024501588A JP2024501588A JP2023563498A JP2023563498A JP2024501588A JP 2024501588 A JP2024501588 A JP 2024501588A JP 2023563498 A JP2023563498 A JP 2023563498A JP 2023563498 A JP2023563498 A JP 2023563498A JP 2024501588 A JP2024501588 A JP 2024501588A
- Authority
- JP
- Japan
- Prior art keywords
- model
- event
- plc
- plc program
- program
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Program-control systems
- G05B19/02—Program-control systems electric
- G05B19/04—Program control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
- G05B19/058—Safety, monitoring
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/3604—Analysis of software for verifying properties of programs
- G06F11/3608—Analysis of software for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Programmable Controllers (AREA)
- Debugging And Monitoring (AREA)
Abstract
本発明は、通常はタイミングチャートとして示される機能仕様によって記述されるPLCプログラムの正しさをチェックする方法に関する。本方法は、PLCプログラムをモデルに変換することと、タイミングチャートを変換し、このタイミングチャートをモデルに統合することと、抽象意味論を計算して、タイミングチャートに最終的に欠落している情報を推論することと、タイミングチャート検証を充足するために、モデル及び既定のPLC形式化命令から検証される特性を述語変換し演繹することと、上記特性が常に検証されるか否かを解明及びチェックすること、又は、反例を提供することと、この反例をPLCモデルエラーイベント初期構成に変換することと、実行をシミュレーションすることと、状態変数値及びイベント実行変数値をアセンブルすることと、PLCプログラムに逆変換することとを含む。
The present invention relates to a method for checking the correctness of a PLC program described by a functional specification, usually shown as a timing chart. This method consists of converting a PLC program into a model, converting a timing chart and integrating this timing chart into the model, and calculating the abstract semantics to finally solve the missing information in the timing chart. In order to satisfy the timing chart verification, the characteristics to be verified from the model and default PLC formalization instructions are predicated and deduced, and it is clarified whether the above characteristics are always verified. checking or providing a counterexample; converting the counterexample into a PLC model error event initial configuration; simulating execution; assembling state variable values and event execution variable values; and converting it back into a program.
Description
本発明は、プログラマブルロジックコントローラに関する。 The present invention relates to programmable logic controllers.
プログラマブルロジックコントローラ(以下「PLC」という)は、組立ライン等の製造プロセス、又はロボットデバイスのオートメーションコントローラとして使用される産業用のデジタルコンピュータである。 A programmable logic controller (hereinafter referred to as "PLC") is an industrial digital computer used in manufacturing processes such as assembly lines or as an automation controller for robotic devices.
PLCは、ハードワイヤードリレー、タイマー及びシーケンサーに置き換えられるもので、入力及び内部メモリの値から出力の計算を表すソフトウェアによってシミュレーションすることができる。 PLCs replace hard-wired relays, timers and sequencers and can be simulated by software that represents the calculation of outputs from inputs and internal memory values.
通常、IEC61131-3規格は、特にラダーロジック、ファンクションブロック、ストラクチャードテキストのようなPLCソフトウェアを開発するのに使用できるいくつかのプログラミング言語を定義している。ラダーロジックは、例えば、リレーロジックのハードウェアの回路図を使用して、PLCプログラムをグラフィカルな図で表すのに対して、一方、ストラクチャードテキストはテキスト型のプログラミング言語である。 Typically, the IEC61131-3 standard defines several programming languages that can be used to develop PLC software, such as ladder logic, function blocks, structured text, among others. Ladder logic represents a PLC program in a graphical diagram using, for example, a relay logic hardware circuit diagram, whereas structured text is a textual programming language.
従来のソフトウェアの開発では、開発時間の大部分がデバッグに充てられてきた。特にファクトリーオートメーション(FA)の場合、工場におおてバグが発生すると、人的及び物的損害、並びにプラント閉鎖時間の観点から極めて多くのコストを要するので、プログラムのデバッグは非常に重要である。特にPLCプログラムのデバッグは難しく、多くの時間及びコストを要する。バグは、プログラムの入出力及びローカルメモリの値に関する或る特性の、プログラムの或る箇所における違反と見なすことができる。 In traditional software development, most of the development time is spent on debugging. Particularly in the case of factory automation (FA), program debugging is very important because if a bug occurs in a factory, it costs a lot of money in terms of human and property damage, as well as plant shutdown time. In particular, debugging PLC programs is difficult and requires a lot of time and cost. A bug can be thought of as a violation of certain properties of the program regarding its input/output and local memory values at some point in the program.
デバッグの目的は、作成途中においてコードを実行する前に、それらの特性違反を検出すること、すなわちプログラムを実行するときに特性違反をもたらす入力及び内部メモリの初期値を見つけることにある。プログラムの実行可能なすべての動作をチェックすることはほぼ不可能である(及びあまりに多くのコストを要する)ので、通常の方法では、いくつかのテストを開発して実行する(すなわち、特定の初期構成に対してプログラムを実行し、その挙動をチェックする)ものである。 The purpose of debugging is to detect property violations during code creation before executing it, that is, to find initial values of inputs and internal memory that result in property violations when the program is executed. Since it is nearly impossible (and too expensive) to check every executable behavior of a program, the usual practice is to develop and run a few tests (i.e. (run the program against the configuration and check its behavior).
しかしながら、テストは、本質的に網羅的なものではなく、その開発には、非常に多くのコスト及び時間を要する。 However, tests are not exhaustive in nature and their development is very costly and time consuming.
これらの制限を回避する解決策は、形式的演繹的検証を行うことである。 A solution to circumvent these limitations is to perform formal deductive verification.
演繹的検証は、いくつかの仮定を所与として、プログラムが全ての起こり得る実行について意図した挙動及び結果をもたらすことをチェックすることに基づいている。演繹的検証を使用してPLCプログラムにランタイムエラーがないことをチェックする原理は、特許文献1(本明細書の末尾にある先行引用文献のリストにおけるラベル[1])の文書に開示されている。 Deductive verification is based on checking that a program yields the intended behavior and results for all possible executions, given some assumptions. The principle of using deductive verification to check that a PLC program is free of runtime errors is disclosed in the document US Pat. .
高レベルの特性の場合には、PLCプログラムの意図した挙動は、通常、タイミングチャート、すなわち、いくつかの入力値の変化に従った出力値の時間の変化として記述される。例として、タイミングチャート仕様を図1に示す。X変数の変化は、入力値に関する仮説を反映する一方、Y変数の変化は、予想出力値を表している。 In the case of high-level characteristics, the intended behavior of a PLC program is usually described as a timing chart, ie, a change in output value over time according to a change in some input value. As an example, timing chart specifications are shown in FIG. Changes in the X variable reflect hypotheses about the input values, while changes in the Y variable represent expected output values.
入力値の変化(又はタイマーの終了)を、本明細書では「イベント」と呼ぶ。そのようなイベントは、PLCプログラムの1回の実行に対応する。仕様を検証することは、出力値がタイミングチャートに従って各イベントで変化する(又は変化しない)ことと、2つのイベントの間で出力値が変化しないこととを検証することである。これらのイベント間は、本明細書では「状態」と呼ばれ、PLCプログラムの不定回数の連続実行に対応する。 A change in input value (or expiration of a timer) is referred to herein as an "event." Such an event corresponds to one execution of the PLC program. Verifying the specifications means verifying that the output value changes (or does not change) at each event according to the timing chart and that the output value does not change between two events. The intervals between these events are referred to herein as "states" and correspond to an indefinite number of consecutive executions of the PLC program.
PLCプログラムがタイミングチャート仕様を充足していることを検証する方法として、2つの既知の方法に言及することができる。 Two known methods can be mentioned as methods for verifying that a PLC program satisfies timing chart specifications.
「テスト」は、最初のものであり、最も一般的なものである。テストは、種々の変化に対するさまざまなシナリオを伴う初期構成からプログラムを実行することである(状態中の実行数のみが変化することができ、タイミングチャートによって与えられる入力変化の順序は変化しない)。テストに伴う問題は、テストが十分に効率的でないことである。多くの異なる構成を実行することは、人的時間及びコンピュータ処理(CPU)時間の点で多くのコストを要し、異なる時限の入力展開の数は無数にあるので、全ての実行をテストすることは不可能であり、テストは網羅的なものとなり得ない。すなわち、テストでエラーが見つからない場合であっても、このことは、エラーが決して存在し得ないことを意味するものではない。また、テストでエラーが検出されると、開発者が入手することができる唯一の情報は、エラーをもたらす入力及び内部メモリの初期構成である。したがって、プログラムを何度か実行した後に、エラーの根本的な理由、及び、検討対象の初期構成がプログラムの別の箇所でなぜエラーをもたらすのかを理解することは、多くの場合困難である。 "Test" is the first and most common. The test is to run the program from an initial configuration with different scenarios for different changes (only the number of runs in a state can change, the order of input changes given by the timing chart does not change). The problem with testing is that it is not efficient enough. Running many different configurations is costly in terms of human and computer processing (CPU) time, and the number of differently timed input evolutions is infinite, so it is not recommended to test every run. is not possible, and testing cannot be exhaustive. That is, even if the test does not find an error, this does not mean that the error can never exist. Also, when an error is detected in a test, the only information available to the developer is the initial configuration of the input and internal memory that led to the error. Therefore, after running the program several times, it is often difficult to understand the underlying reason for the error and why the initial configuration under consideration results in errors elsewhere in the program.
タイミングチャート仕様を検証する最先端の方法は、モデルチェック(例えば、非特許文献1および本明細書の末尾に示す引用文献[2]に開示されている)である。モデルチェックは、状態とそれらの状態の間の遷移とを有するオートマトンの形で、プログラムのモデルを定義することである。次に、モデルチェックは、オートマトンにおける状態間の種々のパスを用いてプログラムの種々の実行をシミュレートする。エラーは、到達すべきでない特定の状態によってモデル化される。モデルチェックは、それらの状態が到達不可能であることを検証する。 The state-of-the-art method for verifying timing chart specifications is model checking (for example, as disclosed in Non-Patent Document 1 and Reference [2] shown at the end of this specification). Model checking is the definition of a model of a program in the form of an automaton with states and transitions between those states. Model checking then simulates different executions of the program using different paths between states in the automaton. Errors are modeled by certain states that should not be reached. Model checking verifies that those states are unreachable.
制限としては、モデルチェックが多くのコスト及び時間(CPU動作時間)を要し、網羅的でないことがある。 Limitations include that model checking is costly and time consuming (CPU time) and may not be exhaustive.
モデルチェックでは、同じプログラムの連続した実行を検討することができるが、複雑度は多くの場合に指数関数的であり、その結果、プログラムの実行のシミュレーションには、多くのCPU時間を急速に必要とする。したがって、この方法は、通常の産業規模のほとんどのPLCプログラムについて網羅的なものとなり得ない。 Model checking can consider successive executions of the same program, but the complexity is often exponential, and as a result simulating the execution of a program quickly requires a lot of CPU time. shall be. Therefore, this method cannot be exhaustive for most typical industrial scale PLC programs.
要するに、PLCプログラムのタイミングチャート仕様の検証に対処するためには、テストは可能な方法ではあるが網羅的でなく、一般に非効率的であり、検出されたエラーのトレーサビリティが得られない。モデルチェックは、同じプログラムの連続した実行を検討することができ、検証が失敗したときに実行トレースを提供することができるため、一部については僅かに効率的である。しかし、モデルチェックは、大規模な産業用プログラムの場合には引き続き比較的高価であり、依然として網羅的でない。 In short, to address the verification of timing chart specifications of PLC programs, testing is a possible method, but not exhaustive, generally inefficient, and does not provide traceability of detected errors. Model checking is slightly more efficient in part because it can consider consecutive executions of the same program and can provide an execution trace when validation fails. However, model checking remains relatively expensive for large industrial programs and remains non-exhaustive.
演繹的検証は、網羅性保証を提供するが、時間的特性検証には適していない。実際、演繹的検証は、プログラムの変数の進展を完全に知ることを必要とするが、タイミングチャートは、何らかの他のプログラムの変数の進展が欠落していること、2つの状態変化の間の経過時間が常に知られているとは限らないことの点で、仕様が不十分である。その上、タイミングチャートには、演繹的検証に直接アクセス可能でないプログラムのメタプロパティを構成する固定時限(上述した図1の例では3秒)のイベントが含まれる。 Although deductive verification provides coverage guarantees, it is not suitable for temporal property verification. In fact, deductive verification requires complete knowledge of the evolution of the program's variables, whereas timing charts require that the evolution of some other program variable is missing, the elapsed time between two state changes. It is poorly specified in that the time is not always known. Moreover, the timing chart includes events of fixed duration (3 seconds in the example of FIG. 1 discussed above) that constitute meta-properties of the program that are not directly accessible to deductive verification.
本発明は、抽象意味論計算を使用して、タイミングチャート仕様の演繹的検証を可能にするとともに網羅性保証を提供する。 The present invention uses abstract semantic computations to enable deductive verification of timing chart specifications and provide coverage guarantees.
本発明は、上記状況を改善することを目的とする。 The present invention aims to improve the above situation.
そのために、本発明は、PLCプログラム(すなわち、任意のPLCプログラミング言語、例えば、IEC61131-3規格によって定義されるもののうちの1つで記述されるプログラム)の正しさをチェックするコンピュータ実施方法を提案する。より詳細には、このPLCプログラムは、時間機能仕様データ(図1を参照して上記で示したようなタイミングチャートのデータ等)によって記述されるプログラマブルロジックコントローラのタイプのコンピュータプログラムに対応する。本方法は、
PLCプログラムをモデルに変換すること(S1)と、
時間機能仕様データを変換し、変換された時間機能仕様データをモデルに統合すること(S2)と、
抽象意味論を計算して、時間機能仕様データに欠落している情報を推論すること(S3)と、
PLCプログラムが時間機能仕様データを充足するように検証される特性をモデル及び既定のPLC形式化命令から演繹するために、述語変換を行うこと(S4)と、
上記特性が常に検証されるか否かを解明及びチェックすること、又は、反例を提供すること(S5)と、
を含む。
To that end, the present invention proposes a computer-implemented method for checking the correctness of a PLC program (i.e. a program written in any PLC programming language, e.g. one of those defined by the IEC 61131-3 standard). do. More particularly, this PLC program corresponds to a programmable logic controller type computer program described by time function specification data (such as timing chart data as shown above with reference to FIG. 1). This method is
Converting a PLC program into a model (S1);
converting the time function specification data and integrating the converted time function specification data into the model (S2);
calculating abstract semantics to infer information missing in the temporal functional specification data (S3);
performing a predicate transformation (S4) to deduce from the model and predetermined PLC formalization instructions the properties to be verified such that the PLC program satisfies the temporal functional specification data;
elucidating and checking whether the above property is always verified or providing a counterexample (S5);
including.
この方法の実施によって、その後、特性が検証されないときのPLCプログラムの最初の箇所を検出し、プログラマに適切な訂正を行わせることが可能になる。 Implementation of this method subsequently makes it possible to detect the first point in the PLC program when a characteristic is not verified and allow the programmer to make appropriate corrections.
S3に従った抽象意味論の計算に続いて、その後、演繹的検証をS4において実施することは、タイミングチャート等の時間機能仕様によって記述されるPLCプログラムにとって特に効果的であることが分かっている。 Computation of abstract semantics according to S3 followed by deductive verification in S4 has been found to be particularly effective for PLC programs described by time function specifications such as timing charts. .
特定の実施の形態において、本方法は、S5の後に、
上記反例をPLCモデルエラーイベント初期構成に変換すること(S6)と、
少なくとも状態変数値及びイベント初期変数値をアセンブルすること(S8)と、
PLCプログラムに逆変換すること(S9)と、
を更に含むことができる。
In certain embodiments, the method includes, after S5:
Converting the above counterexample into a PLC model error event initial configuration (S6);
assembling at least state variable values and event initial variable values (S8);
converting it back into a PLC program (S9);
may further include.
例えば、S6において、上記反例の変換は、
上記時間機能仕様データによって記述される特定のイベント後に充足されていない出力値と、
仕様違反をもたらす少なくとも1つの変数値と、
のうちの少なくとも一方を与えることができる。
For example, in S6, the transformation of the above counterexample is
an output value that is not satisfied after a specific event described by the above time function specification data;
at least one variable value that results in a specification violation;
At least one of these can be given.
最後に、この一連のステップS1~S9によって、プログラマは、S9の後に、モデル仕様違反のシナリオの結果として発生する可能性があるバグを明確に知ることができる。 Finally, this series of steps S1-S9 allows the programmer to clearly know the bugs that may occur as a result of model specification violation scenarios after S9.
例えば、一実施の形態では、S9において、PLCプログラムへの逆変換は、最後の非充足イベントまで、イベントごとにおよびPLCプログラムの実行状態ごとに、入力、内部メモリ及び出力の値を含む中間値情報及びモデル仕様違反シナリオデータを与えることができる。 For example, in one embodiment, at S9, the conversion back to the PLC program includes intermediate values, including values of inputs, internal memories, and outputs, for each event and for each execution state of the PLC program, up to the last unsatisfied event. Information and model specification violation scenario data can be provided.
このような中間値は、例えば、特定の実施の形態において、S6の後であってS8の前に、
初期構成に加えて、イベント実行の中間値を取得するために、実行をシミュレートすること(S7)、
を実施することによって獲得することができ、
したがって、S8において、状態変数値及びイベント初期変数値、並びに更なる中間変数値をアセンブルすることができる。
Such intermediate values may be, for example, after S6 and before S8 in certain embodiments.
simulating the execution (S7) to obtain intermediate values of the event execution in addition to the initial configuration;
can be earned by carrying out
Thus, in S8, state variable values and event initial variable values as well as further intermediate variable values can be assembled.
例えば、イベント実行の中間値は、通常、前述の初期構成から取得することができる。 For example, intermediate values for event execution can typically be obtained from the initial configuration described above.
実際、S6において、前述の反例は、例えば、タイミングチャートの特定のイベント後に(又はより一般的には前述の時間機能仕様データによって)充足されていない出力値を含む情報に変換することができる。これらの情報は、それによって、対応する仕様違反をもたらす変数の値を与える。 Indeed, in S6, the aforementioned counterexample can be transformed into information comprising, for example, an output value that is not satisfied after a certain event of the timing chart (or more generally by the aforementioned time function specification data). These information thereby provide the values of the variables that result in the corresponding specification violation.
変数のこれらの値は、より詳細にはPLCプログラムモデルのイベント初期構成を記述することができ、タイミングチャートのイベントの開始時および最後の非充足イベントまでにおける入力及び内部メモリの値に対応することができる。そのような非充足イベントに対応するバグが修正されると、新たな最後の非充足イベントに遭遇するまで、本方法をS1から再び開始することができる。最後に、本方法によって、タイミングチャート仕様の任意の箇所における違反を検出し、タイミングチャートの連続した箇所の全体的な一貫性をチェックすることが可能になる。 These values of variables can describe in more detail the event initial configuration of the PLC program model and correspond to the values of inputs and internal memory at the beginning of the event of the timing chart and up to the last unsatisfied event. Can be done. Once the bug corresponding to such an unsatisfied event is fixed, the method can be started again at S1 until a new last unsatisfied event is encountered. Finally, the method makes it possible to detect violations at any point in the timing chart specification and to check the overall consistency of consecutive points in the timing chart.
その上、S7を実施するために、S7において、モデルイベント実行中間値は、S6から取得されたPLCモデルエラーイベント初期構成と、あらかじめ定義されたPLC形式化命令とから計算することができる。したがって、これにより、PLCプログラムの実行をシミュレートし、S6において与えられるイベント初期構成から最後の非充足イベントまで、イベント実行中の内部メモリ及び出力の中間値を再計算することが可能になる。 Moreover, to implement S7, in S7, the model event execution intermediate value can be calculated from the PLC model error event initial configuration obtained from S6 and the predefined PLC formalization instructions. This therefore makes it possible to simulate the execution of a PLC program and to recalculate intermediate values of internal memory and outputs during event execution, from the event initial configuration given in S6 to the last unsatisfied event.
さらに、S8において、PLCプログラムの開始から最後の非充足イベントまで、前述の変数が状態中及びイベント実行中に取ることができる値の範囲を定義する完全なエラーシナリオを取得するために、S7からのイベント実行値及びS3からの状態変数値変域がアセンブルされる。 Furthermore, in S8, from S7 to obtain the complete error scenario that defines the range of values that the aforementioned variables can take during states and event executions, from the start of the PLC program until the last unsatisfied event. The event execution value of and the state variable value range from S3 are assembled.
上記に示した最初のステップS1~S5の実施の形態の例は、以下で示される。 An example embodiment of the first steps S1-S5 shown above is shown below.
例えば、S1の実施のために、S1から取得されるモデルは、PLCプリミティブの既定のモデルを指し、一階論理の論理フレームワークで表すことができる。 For example, for the implementation of S1, the model obtained from S1 refers to a default model of PLC primitives and can be represented in a first-order logic logical framework.
通常、少なくとも整数型参照及びブール型参照は、PLCプログラムの入力、内部メモリ及び出力をモデル化するのに使用することができる。 Generally, at least integer type references and boolean type references can be used to model the inputs, internal memories, and outputs of a PLC program.
また、S2において引数として入力される時間機能仕様データは、PlantUMLのタイプの言語で表されるタイミングチャートのデータ形式で与えることができる(例えば、以下に示す引用文献[5]に記載されている)。 Further, the time function specification data input as an argument in S2 can be given in the data format of a timing chart expressed in a PlantUML type language (for example, as described in the cited document [5] shown below). ).
S2の実施は、述語論理の論理フレームワークで表される仕様アサーションを与えることができる。したがって、場合によってはループに組み込まれる複数の連続したモデルのコピーを使用して、タイミングチャートによって与えられる連続した状態及びイベントを表すことができる。 The implementation of S2 can provide specification assertions expressed in a logical framework of predicate logic. Thus, multiple successive copies of the model, possibly incorporated into a loop, can be used to represent the successive states and events given by the timing chart.
S3において、PLCプログラムの実行状態中に取る変数値の範囲は、少なくとも時間機能仕様データにおいて指定されていないこれらの変数の一部について推論することができる。 At S3, the range of variable values taken during the execution state of the PLC program can be inferred for at least some of these variables not specified in the time function specification data.
一実施の形態において、S4において、ダイクストラの最弱事前条件計算法を使用して、生成された特性が充足している場合に、PLCプログラムが対応する機能仕様を常に満たすことを保証することができる。 In one embodiment, in S4, Dijkstra's weakest precondition calculation method is used to ensure that the PLC program always satisfies the corresponding functional specification if the generated properties are satisfied. can.
一実施の形態において、S5において、自動化されたソルバーは、
S4において生成された上記特性を証明すること、又は、
上記特性が充足されていないモデルにおける入力及び内部メモリの値によって表される上記特性の反例を見つけること、
を行うために使用することができる。
In one embodiment, at S5, the automated solver:
Proving the above properties generated in S4, or
finding a counterexample of the above property represented by the input and internal memory values in the model in which the above property is not satisfied;
can be used to do.
本発明はまた、コンピュータプログラムであって、プログラムがコンピュータデバイスによって実行されると、前述の方法をコンピュータデバイスに実行させる命令を含む、コンピュータプログラムも対象とする。本発明は、そのようなコンピュータプログラムの命令データを記憶する非一時的コンピュータ可読媒体も対象とする。 The invention is also directed to a computer program comprising instructions for causing a computing device to perform the method described above when the program is executed by the computing device. The invention is also directed to non-transitory computer readable media for storing instruction data of such computer programs.
本発明はまた、前述の方法を実行する処理回路を備える、コンピュータデバイスも対象とする(そのような処理回路の一例は、後述する図3に示す)。 The invention is also directed to a computing device comprising processing circuitry for carrying out the method described above (an example of such processing circuitry is shown in FIG. 3, described below).
本発明の実施形態のより詳細な内容及び例については、以下で添付図面を参照して説明する。 More details and examples of embodiments of the invention will be described below with reference to the accompanying drawings.
上記で示したように、プログラマブルロジックコントローラ(PLC)は、特に組立ライン及び電子ロボットを制御することができる。PLCは、特にタイミングチャートとして記述される機能仕様についてデバッグするのが難しい。バグは、ダウンタイムの観点並びに時には人間及びハードウェアの損傷の観点から、ファクトリーオートメーションシステムでは多くのコストを要する。タイミングチャート仕様に従ってPLCプログラムの正しさをチェックする現在の技法は、網羅的ではなく、多くの時間を要し、一般的に、バグが検出されたときに問題を理解するのに効率的でない。 As indicated above, programmable logic controllers (PLCs) can control assembly lines and electronic robots, among others. It is difficult to debug PLCs, especially regarding functional specifications described as timing charts. Bugs are costly in factory automation systems in terms of downtime and sometimes human and hardware damage. Current techniques for checking the correctness of PLC programs according to timing chart specifications are not exhaustive, time consuming, and generally not efficient in understanding problems when bugs are detected.
以下では、タイミングチャートに従ってPLCプログラムの正しさをチェックする、網羅的且つ効率的であるとともに自動化された解決策を提案する。この解決策は、タイミングチャートから欠落情報を推論する抽象意味論計算と、全てのバグが検出されることを保証する演繹的検証との双方を使用する。この解決策は、タイミングチャート仕様の任意の箇所における違反を検出し、タイミングチャートの連続した箇所の全体的な一貫性をチェックする。この解決策は、違反を検出した場合に、そのシナリオを、タイミングチャートの初期構成から不良箇所までの実行シーケンスとしてプログラマに表示することができる。この解決策は、配備時間を安全に削減する効率的なツールを提供するとともに、ファクトリーオートメーション業界におけるPLCプログラムの信頼度を高める。 In the following, we propose a comprehensive, efficient and automated solution to check the correctness of PLC programs according to timing charts. This solution uses both abstract semantic computations to infer missing information from timing charts and deductive verification to ensure that all bugs are detected. This solution detects violations anywhere in the timing chart specification and checks the overall consistency of consecutive parts of the timing chart. When a violation is detected, this solution can display the scenario to the programmer as an execution sequence from the initial configuration of the timing chart to the defective location. This solution provides an efficient tool that safely reduces deployment time while increasing the reliability of PLC programs in the factory automation industry.
抽象意味論計算(以下に示すステップS3によるもの)、及び
演繹的検証(以下に示すステップS4によるもの)、
の組み合わせは、タイミングチャート仕様によって記述されるPLCプログラムに特に適用されるときに高い効率性を示す。
abstract semantic computation (according to step S3 shown below), and deductive verification (according to step S4 below),
The combination shows high efficiency when especially applied to PLC programs described by timing chart specifications.
実際、演繹的検証は、検証する特性に関する網羅性を保証するが、2つのイベント間の実行の数が任意に大きな場合、したがって、内部メモリ変数が2つのイベント中に取ることができる値が未知である時間特性検証向けには適応しない。一方、抽象意味論計算は、プログラムの任意の数の連続する実行の間に変数が取ることができる値の過剰近似を与える可能性がある。抽象意味論計算も、網羅性を保証するが、演繹的検証ほどスケーラブルでない。したがって、演繹的検証は、通常の産業規模の完全なPLCプログラム上で動作することができない。本明細書で提案する解決策は、網羅性そ保証し、したがって、実世界の産業用PLCプログラムにスケーラブルでもある検証をもたらす演繹的検証を行うのに必要な変数値情報を推論するために、PLCプログラムの特定の箇所に抽象意味論計算を使用するものである。 In fact, deductive verification guarantees exhaustiveness with respect to the property being verified, but if the number of executions between two events is arbitrarily large, it is therefore unknown whether the values that internal memory variables can take during two events are unknown. It is not suitable for time characteristic verification. On the other hand, abstract semantic calculations can give an over-approximation of the values that variables can take during any number of consecutive executions of the program. Abstract semantic computation also guarantees exhaustiveness, but is not as scalable as deductive verification. Therefore, deductive verification cannot operate on a typical industrial scale complete PLC program. The solution proposed here is to infer the variable value information needed to perform a deductive verification that guarantees exhaustiveness and thus also provides verification that is scalable to real-world industrial PLC programs. It uses abstract semantic calculations at specific points in the PLC program.
図2は、PLC時間仕様の自動化された演繹的検証のこの解決策の可能な実施態様の全体的なアーキテクチャを示している。この実施態様は、9つの異なるプロセスステップに分割される。 FIG. 2 shows the overall architecture of a possible implementation of this solution for automated deductive verification of PLC time specifications. This implementation is divided into nine different process steps.
ステップS1は、PLCプログラムをモデルに自動的に変換することに関する。このプロセスは、PLCプログラムを、あらかじめ定義されたPLCプリミティブのモデル、すなわち、論理チェッカー(接点)、アクチュエータ(コイル)、論理回路及び命令を参照するモデルに自動的に変換する。このモデルは、一階論理の論理フレームワークにおいて表すことができる。 Step S1 relates to automatically converting the PLC program into a model. This process automatically converts a PLC program into a model that references predefined PLC primitives: logic checkers (contacts), actuators (coils), logic circuits, and instructions. This model can be expressed in a first-order logic logical framework.
整数型参照及びブール型参照を使用して、プログラムの入力、内部メモリ及び出力をモデル化することができる。多様型を使用して、モデルプリミティブの数を因数分解することができる。このプロセスでは、モデル要素を元のPLC要素にリンクするためのコード位置のような情報、又はプロセスの後続で使用されるツールをインストルメントする命令のような情報をモデル要素に追加することができる。 Integer type references and Boolean type references can be used to model the inputs, internal memory, and outputs of a program. Manifolds can be used to factor out the number of model primitives. In this process, information can be added to the model element, such as code locations to link the model element to the original PLC element, or instructions to instrument tools used later in the process. .
ステップS2は、タイミングチャートを変換し、タイミングチャートをプログラムモデルに統合することに関する。プログラムモデルにおける仕様アサーションへのタイミングチャートの変換は、場合によってはPlantUML(引用文献[5])のような所与の言語から行うことができる。それらのアサーションは、述語論理の論理フレームワークにおいて表すことができる。 Step S2 relates to converting the timing chart and integrating the timing chart into the program model. The conversion of timing charts into specification assertions in the program model can possibly be done from a given language such as PlantUML (cited document [5]). Those assertions can be expressed in the logical framework of predicate logic.
場合によってはループに組み込まれるプログラムモデルのいくつかの連続したコピーを使用して、タイミングチャートによって与えられる連続した状態及びイベントを表すことができる。 Several successive copies of the program model, possibly incorporated into loops, can be used to represent the successive states and events given by the timing chart.
ステップS3は、抽象意味論を計算して、タイミングチャートに欠落している必要な情報を推論することに関する。このプロセスは、健全な抽象意味論計算、例えば抽象解釈(引用文献[6])を使用して、その後の演繹的検証に使用される欠落情報を推論する。例えば、このプロセスは、特に値がタイミングチャートにおいて指定されていない内部変数について、ループ不変量、すなわち(その状態中に起こり得るプログラムの実行の数がどのようなものあっても)変数が状態中に取ることができる値の範囲を推論することができる。この評価情報がない場合には、演繹的検証は、状態後に検証されるべき特性を取り扱うことができない。 Step S3 involves computing abstract semantics to infer necessary information missing in the timing chart. This process uses sound abstract semantic computations, such as abstract interpretation (reference [6]), to infer missing information that is then used for deductive verification. For example, this process applies to loop invariants, especially for internal variables whose values are not specified in the timing chart; The range of values that can be taken can be inferred. Without this evaluation information, deductive verification cannot handle properties that are to be verified after the state.
ステップS4は、このモデル及び或る既定のPLC形式化から、述語を変換するもの、より詳細には検証する特性を演繹するものである。このプロセスは、タイミングチャート検証を充足するために、PLCプログラム及びタイミングチャートのモデル変換を命令の既定のモデルと組み合わせて、PLCプログラムの実行シーケンスの或る箇所において多く持続する特性を計算する。このプロセスは、ダイクストラの最弱事前条件計算法[3]を使用して、そのような計算が、計算される特性のサイズを最小にするとともに健全である(すなわち、特性が充足される場合には、PLCプログラムが仕様を常に充足する)ことを保証することができる。 Step S4 deduces from this model and some predetermined PLC formalization the predicates to be transformed, and more specifically the properties to be verified. This process combines a model transformation of the PLC program and timing chart with a predefined model of the instructions to calculate characteristics that persist more at certain points in the execution sequence of the PLC program to satisfy timing chart verification. This process uses Dijkstra's weakest precondition calculation method [3] to ensure that such calculations minimize the size of the property being computed and are sound (i.e., if the property is satisfied) can ensure that the PLC program always meets the specifications.
ステップS5は、特性が常に検証されるか否かを自動的に解明及びチェックするもの、又は、反例を提供するものである。このプロセスは、ステップS4において生成された特性を形式的に証明するために、又は、これらの特性の反例を見つけるために、自動化ソルバー(SMTソルバー[4]のようなもの)を使用する。前者の場合、このプロセスは、PLCプログラムが、任意の実行シーケンスについてタイミングチャート仕様を完全に充足することを、ステップS4の計算の健全性とともに保証する。後者の場合、このプロセスは、特性の反例、すなわち特性が充足されていないモデルにおける入力及び内部メモリの値を提供する。 Step S5 automatically resolves and checks whether the property is always verified or provides a counterexample. This process uses an automated solver (such as the SMT solver [4]) to formally prove the properties generated in step S4 or to find counterexamples to these properties. In the former case, this process ensures that the PLC program fully satisfies the timing chart specifications for any execution sequence, along with the soundness of the calculations in step S4. In the latter case, this process provides a counterexample of the property, ie, the input and internal memory values in the model for which the property is not satisfied.
ステップS6は、特性反例をPLCモデルエラーイベント初期構成に変換するものである。ステップS5が、ステップS4において生成された特性の反例を見つけた場合、このステップS6は、この充足されていない特性を、タイミングチャートの特定のイベント後にどの出力値が充足されていないのかの情報に変換するとともに、関連した反例を、この仕様違反をもたらす変数の値、すなわちPLCプログラムのモデルのイベント初期構成(すなわち、充足されていないイベントまで、タイミングチャートのイベントの開始時における入力及び内部メモリの値に対応するモデル要素の値)に変換する。 Step S6 is to convert the characteristic counterexample into a PLC model error event initial configuration. If step S5 finds a counterexample to the characteristic generated in step S4, this step S6 converts this unsatisfied characteristic into information about which output values are unsatisfied after a particular event in the timing chart. As well as converting the associated counter-examples, the values of the variables that result in this specification violation, i.e. the event initial configuration of the model of the PLC program (i.e. up to the unsatisfied event, the input and internal memory at the start of the event of the timing chart) value of the corresponding model element).
ステップS7は、実行をシミュレートするものである。そのために、モデルイベント実行中間値が、PLCモデルエラーイベント初期構成から計算される。このステップS7は、別のPLC形式化を使用してPLCプログラムの実行をシミュレートし、ステップS6において与えられたイベント初期構成から充足されていないイベントまで、イベント実行中の内部メモリ及び出力の全ての中間値を再計算することができる。 Step S7 is for simulating execution. To that end, model event execution intermediate values are calculated from the PLC model error event initial configuration. This step S7 simulates the execution of the PLC program using another PLC formalization, and stores all internal memory and outputs during the event execution, from the event initial configuration given in step S6 to the unsatisfied events. The intermediate value of can be recalculated.
ステップS8は、状態変数値及びイベント実行変数値をアセンブルするものである。このプロセスは、完全なエラーシナリオを取得するために、ステップS7からのイベント実行値及びステップS3からの状態変数値範囲をアセンブルする。 Step S8 is for assembling state variable values and event execution variable values. This process assembles the event execution values from step S7 and the state variable value ranges from step S3 to obtain the complete error scenario.
このステップS8は、ステップS3及びS7からの情報を組み合わせて、PLCの開始から、充足されていないイベントまで、完全な仕様違反シナリオ、すなわち変数が状態中及びイベント実行中に取ることができる値の範囲を与えることができる。 This step S8 combines the information from steps S3 and S7 to create a complete specification violation scenario, from the start of the PLC to the unsatisfied event, i.e. the values that variables can take during state and event execution. A range can be given.
ステップS9は、PLCプログラムへの逆変換に関する。このプロセスは、モデル中間値を、中間値情報を有するPLCプログラムに逆変換し、例えば、結果を印刷したものをユーザに提示することができる。ステップS9のプロセスは、最終的に、仕様が充足されていないイベントまで、モデル仕様違反シナリオを、各イベント及び各状態の入力、内部メモリ及び出力の値を有する元のPLCプログラムに逆変換することができる。このプロセスは、それらの値を、2値を表す色及び整数値を表すラベルで装飾された元のPLCプログラムの値として印刷することができる。このエラーシナリオは、コード位置及びステップS1においてモデルに追加された情報とともに、発見された違反及びこの違反を修正する方法に関する非常に完全な概要を与える。 Step S9 relates to reverse conversion to a PLC program. This process converts the model intermediate values back into a PLC program with intermediate value information, and can, for example, present a printed version of the results to the user. The process of step S9 finally converts the model specification violation scenario back to the original PLC program having input, internal memory and output values for each event and each state, up to the event where the specification is not satisfied. Can be done. This process can print those values as the original PLC program values decorated with colors representing binary values and labels representing integer values. This error scenario, along with the code location and information added to the model in step S1, gives a very complete overview of the violation found and how to fix this violation.
本発明はまた、図2を参照して上述した方法を実行する処理回路を備える、コンピュータデバイスも対象とする。 The invention is also directed to a computing device comprising processing circuitry for performing the method described above with reference to FIG.
次に図3を参照する。そのような処理回路は、
PLCプログラムと、そのタイミングチャートと、場合によっては既定のPLC形式化命令とのデータを受信する入力インターフェースINと、
本発明によるコンピュータプログラムの命令のデータと、コンピュータプログラムの実行を実施するのに必要である可能な一時的データ及び/又は非一時的データとを記憶するメモリMEMと、
記憶されたコンピュータプログラムの命令を読み出して実行するためにメモリMEMと協調することができるプロセッサPROCと、
訂正されたPLCプログラムデータと、各イベント及び各状態の入力、内部メモリ及び出力の値とを、仕様が充足されていないイベントまで提供する出力インターフェースOUTと、
を備えることができる。
Refer now to FIG. Such a processing circuit is
an input interface IN for receiving data of a PLC program, its timing chart and possibly predetermined PLC formatting instructions;
a memory MEM for storing the data of the instructions of the computer program according to the invention and possible temporary and/or non-transitory data necessary to carry out the execution of the computer program;
a processor PROC capable of cooperating with a memory MEM to read and execute instructions of a stored computer program;
an output interface OUT for providing corrected PLC program data and input, internal memory and output values for each event and each state up to the event where the specifications are not met;
can be provided.
(引用文献)
文献1:欧州特許公開: EP3715975.
文献2:Clarke, Edmund & Grumberg, Orna & Peled, Doron. (2001). Model Checking.
文献3:E.W. Dijkstra. Hierarchical ordering of sequential processes, Acta Informatica , vol. 1, No.2, 1971, pp 115-138.
文献4:C Barrett, R Sebastiani, S Seshia, and C Tinelli, "Satisfiability Modulo Theories." In Handbook of Satisfiability, vol. 185 of Frontiers in Artificial Intelligence and Applications, (A Biere, M J H Heule, H van Maaren, and T Walsh, eds.), IOS Press, Feb. 2009, pp. 825-885.
文献5:Drawing UML with PlantUMLPlantUML Language Reference Guide. http://plantuml.com/guide
文献6:Cousot, Patrick; Cousot, Radhia (1977). "Abstract Interpretation: A Unified Lattice Model for Static Analysis of Programs by Construction or Approximation of Fixpoints". Conference Record of the Fourth ACM Symposium on Principles of Programming Languages, Los Angeles, California, USA, January 1977. ACM Press. pp. 238-252.
(Cited documents)
Document 1: European Patent Publication: EP3715975.
Reference 2: Clarke, Edmund & Grumberg, Orna & Peled, Doron. (2001). Model Checking.
Reference 3: EW Dijkstra. Hierarchical ordering of sequential processes, Acta Informatica, vol. 1, No. 2, 1971, pp 115-138.
Reference 4: C Barrett, R Sebastiani, S Seshia, and C Tinelli, "Satisfiability Modulo Theories." In Handbook of Satisfiability, vol. 185 of Frontiers in Artificial Intelligence and Applications, (A Biere, MJH Heule, H van Maaren, and T Walsh, eds.), IOS Press, Feb. 2009, pp. 825-885.
Reference 5: Drawing UML with PlantUMLPlantUML Language Reference Guide. http://plantuml.com/guide
Reference 6: Cousot, Patrick; Cousot, Radhia (1977). "Abstract Interpretation: A Unified Lattice Model for Static Analysis of Programs by Construction or Approximation of Fixpoints". Conference Record of the Fourth ACM Symposium on Principles of Programming Languages, Los Angeles , California, USA, January 1977. ACM Press. pp. 238-252.
Claims (16)
前記PLCプログラムをモデルに変換すること(S1)と、
前記時間機能仕様データを変換し、変換された前記時間機能仕様データを前記モデルに統合すること(S2)と、
抽象意味論を計算して、前記時間機能仕様データに欠落している情報を推論すること(S3)と、
前記PLCプログラムが前記時間機能仕様データを充足するように検証される特性を前記モデル及び既定のPLC形式化命令から演繹するために、述語変換を行うこと(S4)と、
前記特性が常に検証されるか否かを解明及びチェックすること、又は、反例を提供すること(S5)と、
を含む、方法。 A computer-implemented method of checking the correctness of a PLC program, said PLC program corresponding to a programmable logic controller type computer program described by time function specification data, said method comprising:
converting the PLC program into a model (S1);
converting the time function specification data and integrating the converted time function specification data into the model (S2);
calculating abstract semantics to infer information missing in the temporal function specification data (S3);
performing a predicate transformation (S4) to deduce from the model and predetermined PLC formalization instructions characteristics to be verified such that the PLC program satisfies the temporal functional specification data;
elucidating and checking whether the property is always verified or providing a counterexample (S5);
including methods.
前記反例をPLCモデルエラーイベント初期構成に変換すること(S6)と、
少なくとも状態変数値及びイベント初期変数値をアセンブルすること(S8)と、
PLCプログラムに逆変換すること(S9)と、
を更に含む、請求項1に記載の方法。 The method includes, after the S5,
converting the counterexample into a PLC model error event initial configuration (S6);
assembling at least state variable values and event initial variable values (S8);
converting it back into a PLC program (S9);
2. The method of claim 1, further comprising:
前記時間機能仕様データによって記述される特定のイベント後に充足されていない出力値と、
仕様違反をもたらす少なくとも1つの変数値と、
のうちの少なくとも一方を与える、請求項2に記載の方法。 In S6, the transformation of the counterexample is
an output value that is not satisfied after a specific event described by the time function specification data;
at least one variable value that results in a specification violation;
3. The method of claim 2, wherein at least one of the following is provided.
初期構成に加えて、イベント実行の中間値を取得するために、実行をシミュレートすること(S7)、
を更に含み、
前記S8において、状態変数値及びイベント初期変数値、並びに更なる中間変数値をアセンブルする、請求項2又は3に記載の方法。 The method includes, after the S6 and before the S8,
simulating the execution (S7) to obtain intermediate values of the event execution in addition to the initial configuration;
further including;
4. The method according to claim 2 or 3, wherein in said S8 state variable values and event initial variable values as well as further intermediate variable values are assembled.
前記S4において生成された前記特性を証明すること、又は、
前記特性が充足されていない前記モデルにおける入力及び内部メモリの値によって表される前記特性の反例を見つけること、
を行うために使用される、請求項1~13のいずれか1項に記載の方法。 In S5, the automated solver
proving the property generated in S4; or
finding counterexamples of said property represented by inputs and internal memory values in said model for which said property is not satisfied;
14. The method according to any one of claims 1 to 13, wherein the method is used for carrying out.
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| EP21158306.7A EP4047482A1 (en) | 2021-02-19 | 2021-02-19 | Improved checking of correctness of a plc program |
| EP21158306.7 | 2021-02-19 | ||
| PCT/JP2021/046897 WO2022176369A1 (en) | 2021-02-19 | 2021-12-14 | Computer implemented method for checking correctness of plc program |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2024501588A true JP2024501588A (en) | 2024-01-12 |
| JP7531728B2 JP7531728B2 (en) | 2024-08-09 |
Family
ID=74673020
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2023563498A Active JP7531728B2 (en) | 2021-02-19 | 2021-12-14 | Computer-implemented method for checking the correctness of a plc program |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US20240103479A1 (en) |
| EP (1) | EP4047482A1 (en) |
| JP (1) | JP7531728B2 (en) |
| CN (1) | CN116848514A (en) |
| WO (1) | WO2022176369A1 (en) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN117970865A (en) * | 2024-04-02 | 2024-05-03 | 深圳市今天国际软件技术有限公司 | Method and system for automatically generating PLC (programmable logic controller) program for intelligent logistics system |
| CN119204228B (en) * | 2024-11-21 | 2025-05-02 | 阿里云飞天(杭州)云计算技术有限公司 | Method, system, electronic device and storage medium for processing time sequence information |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2002073169A (en) * | 2000-08-24 | 2002-03-12 | Toshiba Corp | Test apparatus and test method for sequencer program |
| US20020046397A1 (en) * | 2000-08-07 | 2002-04-18 | Regina Schmitt | Method for debugging flowchart programs for industrial controllers |
| JP2018133034A (en) * | 2017-02-17 | 2018-08-23 | 三菱重工エンジニアリング株式会社 | Software testing device, software testing system, software testing method, and program |
| EP3715975A1 (en) * | 2019-03-28 | 2020-09-30 | Mitsubishi Electric R&D Centre Europe B.V. | Method and apparatus for analysing a programmable logic controller program |
-
2021
- 2021-02-19 EP EP21158306.7A patent/EP4047482A1/en active Pending
- 2021-12-14 WO PCT/JP2021/046897 patent/WO2022176369A1/en not_active Ceased
- 2021-12-14 JP JP2023563498A patent/JP7531728B2/en active Active
- 2021-12-14 CN CN202180093655.6A patent/CN116848514A/en active Pending
- 2021-12-14 US US18/276,650 patent/US20240103479A1/en active Pending
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20020046397A1 (en) * | 2000-08-07 | 2002-04-18 | Regina Schmitt | Method for debugging flowchart programs for industrial controllers |
| JP2002073169A (en) * | 2000-08-24 | 2002-03-12 | Toshiba Corp | Test apparatus and test method for sequencer program |
| JP2018133034A (en) * | 2017-02-17 | 2018-08-23 | 三菱重工エンジニアリング株式会社 | Software testing device, software testing system, software testing method, and program |
| EP3715975A1 (en) * | 2019-03-28 | 2020-09-30 | Mitsubishi Electric R&D Centre Europe B.V. | Method and apparatus for analysing a programmable logic controller program |
Also Published As
| Publication number | Publication date |
|---|---|
| EP4047482A1 (en) | 2022-08-24 |
| JP7531728B2 (en) | 2024-08-09 |
| WO2022176369A1 (en) | 2022-08-25 |
| US20240103479A1 (en) | 2024-03-28 |
| CN116848514A (en) | 2023-10-03 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12085911B2 (en) | Method, computer program and apparatus for analysing a programmable logic controller program | |
| JP6621204B2 (en) | Systems and methods for model-based techniques and processes for safety-oriented software development | |
| US12169396B2 (en) | Method for analyzing a Programmable Logic Controller program | |
| JP2024507532A (en) | Systems and methods for determining program code defects and acceptability of use | |
| JP7531728B2 (en) | Computer-implemented method for checking the correctness of a plc program | |
| Cengic et al. | On formal analysis of IEC 61499 applications, part B: Execution semantics | |
| Moradi et al. | Model-implemented hybrid fault injection for Simulink (tool demonstrations) | |
| He et al. | Model-based verification of PLC programs using Simulink design | |
| Belo Lourenço et al. | Automated formal analysis of temporal properties of Ladder programs: C. Belo Lourenco et al. | |
| Cousineau et al. | Automated deductive verification for ladder programming | |
| Bouali et al. | Formal verification for model-based development | |
| Cziborová et al. | Modeling of time-dependent behavior in fault-tolerant systems | |
| Yoo et al. | PLC-Based safety critical software development for nuclear power plants | |
| EP4439205A1 (en) | Verifying the design of a function module for a modular industrial plant | |
| Börcsök et al. | An automated software verification tool for model-based development of embedded systems with simulink® | |
| Rytinki | MODEL-BASED RE-ENGINEERING OF CONTROL APPLICATION | |
| Peixoto et al. | Model-based testing of software for automation systems using heuristics and coverage criterion: RJS Peixoto et al. | |
| Hopcroft et al. | Cutting errors in software design | |
| Cheng et al. | FTOS-Verify: Analysis and Verification of Non-Functional Properties for Fault-Tolerant Systems | |
| Samie | MODEL DRIVEN PROCESS FOR REAL-TIME EMBEDDED SYSTEMS SOFTWARE DEVELOPMENT AND VALIDATION | |
| Raina | QuickCheck-Style Testing of Embedded Software using the PropEr Framework | |
| Egel | Using VHDL-AMS as a Unifying Technology for HW/SW |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230622 |
|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230622 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20240626 |
|
| 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: 20240702 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20240730 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7531728 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |