JP2023506097A - プログラマブルロジックコントローラプログラムの解析方法 - Google Patents
プログラマブルロジックコントローラプログラムの解析方法 Download PDFInfo
- Publication number
- JP2023506097A JP2023506097A JP2022561256A JP2022561256A JP2023506097A JP 2023506097 A JP2023506097 A JP 2023506097A JP 2022561256 A JP2022561256 A JP 2022561256A JP 2022561256 A JP2022561256 A JP 2022561256A JP 2023506097 A JP2023506097 A JP 2023506097A
- Authority
- JP
- Japan
- Prior art keywords
- program
- model
- properties
- error
- programmable logic
- 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
- 238000004088 simulation Methods 0.000 claims abstract description 9
- 238000000034 method Methods 0.000 claims description 62
- 238000012795 verification Methods 0.000 claims description 15
- 230000003068 static effect Effects 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 6
- 238000006243 chemical reaction Methods 0.000 claims description 5
- 238000010276 construction Methods 0.000 claims description 4
- 238000012790 confirmation Methods 0.000 claims description 2
- 230000001131 transforming effect Effects 0.000 claims description 2
- 238000012360 testing method Methods 0.000 description 35
- 230000009466 transformation Effects 0.000 description 26
- 230000006870 function Effects 0.000 description 11
- 230000008569 process Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000013459 approach Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000010200 validation analysis Methods 0.000 description 3
- 101100317372 Arabidopsis thaliana WHY3 gene Proteins 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000011990 functional testing Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000000844 transformation Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 238000001994 activation Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000021615 conjugation Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 230000005481 string theory Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 239000013598 vector Substances 0.000 description 1
Images
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—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme 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
-
- 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—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/041—Function-oriented details
-
- 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—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3608—Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Automation & Control Theory (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Programmable Controllers (AREA)
- Debugging And Monitoring (AREA)
Abstract
Description
プログラマブルロジックコントローラプログラムのタイプの元のプログラムを論理フレームワークのプログラムモデルに変換するステップと、
少なくともプログラムモデルに基づいて、ユーザ仕様を論理フレームワークの仕様モデルに変換するステップと、
少なくともプログラムモデルと事前定義された言語形式とから、元のプログラムの内部変数に関する一組のプロパティを決定するステップと、
自動化ソルバによって、仕様モデルから得られる連動性と結合された一組のプロパティの充足可能性を検証し、当該一組のプロパティについてのプロパティの対偶が充足可能である場合には、プロパティの対偶が充足可能であるプログラムモデルの入力及び内部メモリ値を表す一組の反例を提供し、又は、一組のプロパティが常に充足されている場合には、その確認を提供するステップと、
反例をプログラムモデルのエラー初期構成に変換するステップであって、初期構成は入力及び内部メモリの初期値を含む、反例を変換するステップと、
プログラムモデルの実行を、当該プログラムモデルのエラー初期構成を用いてシミュレートし、実行の開始からプロパティの違反までのプログラムモデルのシミュレーションのエラー中間構成を記録するステップであって、当該中間構成は内部メモリの中間値を含む、モデル実行をシミュレートするステップと、
プログラムモデルのエラー初期構成及び当該プログラムモデルのシミュレーションのエラー中間構成を元のプログラムのエラー初期構成及びエラー中間構成に変換するステップと、
プログラムのエラー初期構成及びエラー中間構成を表示するステップと、
を含む、プログラマブルロジックコントローラプログラム分析方法が開示される。
プログラムモデルエラー初期構成を、抽象構文木に対応するエラー初期構成に変換する第1の中間ステップと、
対応する初期構成を用いて抽象構文木を計算し、抽象構文木に対応する内部メモリの中間値を取得する第2の中間ステップと、
を含む。
上述したコンピュータプログラム命令、及び場合により一時的な計算データ等の他のデータも記憶するメモリMEMと、
メモリMEMの内容を読み出すとともに、本発明による方法のステップを実行するプロセッサPROCと、
場合により、プロセッサPROCによって処理されるべき/処理されたデータを(ネットワーク又は他の任意のリンクを通して)受信/送信する入出力インターフェースINTと、
を備える(図7の例に示すような)処理回路PCを備えることができる。
本方法の第1のステップ(TRANS1)の間に、PLCプログラム(PROG)が、プログラムモデル(PMOD)に変換される;
第2のステップ(TRANS2)の間に、機能仕様が、仕様モデル(SMOD)に変換される。この仕様モデル(SMOD)は、プログラムモデル(PMOD)についての論理フレームワークで表され、仕様テンプレートと、PLCプログラムによって使用されるデバイスの選択とを使用して生成される。機能仕様は、有利には、当該機能仕様を形式的に表すのに使用される機能仕様テンプレートを表示するグラフィカルインターフェース上に表される。より正確には、機能仕様テンプレートは、PLCプログラムによって使用されるデバイスの選択とともにグラフィカルインターフェース上に表示される;
第3のステップ(PredT)の間に、検証すべきプロパティが、プログラムモデル(PMOD)と、仕様モデル(SMOD)と、事前定義されたPLC言語形式とから生成される;
本方法の第4のステップ(SMT)の間に、自動化ソルバが使用され、第3のステップにおいて生成されたプロパティが形式的に証明されるか、又は、これらのプロパティに対する反例が見つけられる;
第5のステップ(TRANSB)の間に、存在する場合にはプロパティの反例(PROOF NOK)が、モデル構成、より詳細には初期モデル構成に変換される;
第6のステップ(EXE)の間に、第5のステップにおいて得られたモデルの初期構成から内部メモリの全ての中間値を計算するために、PLCプログラムの実行がシミュレートされる。このステップは、全ての中間値が、第4のステップにおいて返されたプロパティの反例において提供された場合の任意選択のステップである;
第7のステップ(DISP)の間に、モデル中間値が、中間値の情報を用いてPLCプログラムに変換して戻される。使用されるPLC言語がラダーロジックであるとき、結果は、元のラダープログラムと同様に、グラフィカルにユーザに表示される。
本発明による方法を実行する命令を含むとともに、場合によっては一時的な計算データ等の他のデータも含むコンピュータプログラムを記憶するメモリMEMと、
メモリMEMの内容を読み出し、本発明による方法のステップを実行するプロセッサPROCと、
場合によっては、プロセッサPROCによって処理されるべき/処理されたデータを(ネットワーク又は他の任意のリンクを通じて)受信/送信する入出力インターフェースINTと、
を備える。
Claims (10)
- プログラマブルロジックコントローラプログラム分析方法であって、
プログラマブルロジックコントローラプログラムのタイプの元のプログラムを論理フレームワークのプログラムモデルに変換するステップと、
少なくとも前記プログラムモデルに基づいて、ユーザ仕様を論理フレームワークの仕様モデルに変換するステップと、
少なくとも前記プログラムモデルと事前定義された言語形式とから、前記元のプログラムの内部変数に関する一組のプロパティを決定するステップと、
自動化ソルバによって、前記仕様モデルから得られる連動性と結合された前記一組のプロパティの充足可能性を検証し、前記一組のプロパティについてのプロパティの対偶が充足可能である場合には、前記プロパティの対偶が充足可能であるプログラムモデルの入力及び内部メモリ値を表す一組の反例を提供し、又は、前記一組のプロパティが常に充足されている場合には、その確認を提供するステップと、
反例を前記プログラムモデルのエラー初期構成に変換するステップであって、前記エラー初期構成は入力及び内部メモリの初期値を含む、反例を変換するステップと、
前記プログラムモデルの実行を、前記プログラムモデルのエラー初期構成を用いてシミュレートし、実行の開始から前記プロパティの違反までの前記プログラムモデルのシミュレーションのエラー中間構成を記録するステップであって、前記エラー中間構成は内部メモリの中間値を含む、モデル実行をシミュレートするステップと、
前記プログラムモデルの前記エラー初期構成及び前記プログラムモデルのシミュレーションの前記エラー中間構成を前記元のプログラムのエラー初期構成及びエラー中間構成に変換するステップと、
前記元のプログラムのエラー初期構成及びエラー中間構成を表示するステップと、
を含む、プログラマブルロジックコントローラプログラム分析方法。 - ユーザ仕様を仕様モデルに変換する前記ステップは、前記ユーザ仕様が、機能仕様テンプレートと、前記プログラマブルロジックコントローラプログラムによって使用されるデバイスの選択とを使用して表される中間ステップを含む、請求項1に記載のプログラマブルロジックコントローラプログラム分析方法。
- 前記元のプログラムを前記プログラムモデルに変換するステップは、抽象構文木としての前記元のプログラムの表現の第1の中間ステップと、前記抽象構文木(AST)についての前記プログラムモデルの生成の第2の中間ステップとを含む、請求項1又は2に記載のプログラマブルロジックコントローラプログラム分析方法。
- 前記モデル実行をシミュレートするステップは、
前記プログラムモデルのエラー初期構成を、前記抽象構文木に対応するエラー初期構成に変換する第1の中間ステップと、
前記対応する初期構成を用いて前記抽象構文木を計算し、前記抽象構文木に対応する内部メモリの中間値を回収する第2の中間ステップと、
を含む、請求項3に記載のプログラマブルロジックコントローラプログラム分析方法。 - 前記プログラムモデルは、一階述語論理フレームワークで表される、請求項1~4のいずれか一項に記載のプログラマブルロジックコントローラプログラム分析方法。
- 前記元のプログラムを前記プログラムモデルに変換するステップは、静的単一代入変換の中間ステップを含む、請求項1~5のいずれか一項に記載のプログラマブルロジックコントローラプログラム分析方法。
- 前記一組のプロパティを決定するステップ中、前記一組のプロパティは、ダイクストラの最弱事前条件計算法を用いて、前記一組のプロパティに対する事前条件を決定するように計算され、前記一組のプロパティの検証は、その事前条件に基づいて実施される、請求項1~6のいずれか一項に記載のプログラマブルロジックコントローラプログラム分析方法。
- 連動性と結合された前記一組のプロパティの充足可能性は、充足可能性モジュロソルバを使用して検証される、請求項1~7のいずれか一項に記載のプログラマブルロジックコントローラプログラム分析方法。
- プロセッサによって実行されると、請求項1~8のいずれか一項に記載の方法を実行する命令を含むコンピュータプログラム。
- 請求項1~8のいずれか一項に記載のプログラマブルロジックコントローラプログラム分析方法を実行する装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP20315085.9 | 2020-03-31 | ||
EP20315085.9A EP3889703B1 (en) | 2020-03-31 | 2020-03-31 | Method and apparatus for expressing and verifying functional specifications of a programmable logic controller program |
PCT/JP2020/049302 WO2021199552A1 (en) | 2020-03-31 | 2020-12-23 | Method for analyzing a programmable logic controller program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2023506097A true JP2023506097A (ja) | 2023-02-14 |
JP7418608B2 JP7418608B2 (ja) | 2024-01-19 |
Family
ID=70482571
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022561256A Active JP7418608B2 (ja) | 2020-03-31 | 2020-12-23 | プログラマブルロジックコントローラプログラムの解析方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20230030253A1 (ja) |
EP (1) | EP3889703B1 (ja) |
JP (1) | JP7418608B2 (ja) |
CN (1) | CN115398358A (ja) |
WO (1) | WO2021199552A1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11906943B2 (en) * | 2021-08-12 | 2024-02-20 | Nozomi Networks Sagl | Method for automatic translation of ladder logic to a SMT-based model checker in a network |
CN115981225A (zh) * | 2022-11-15 | 2023-04-18 | 福建星云电子股份有限公司 | 一种plc梯形图转换方法、系统、设备及介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108681503A (zh) * | 2018-03-23 | 2018-10-19 | 杭州电子科技大学 | 可编程控制器程序的安全检查方法、装置和设备 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109032056B (zh) * | 2018-06-13 | 2020-01-10 | 华东师范大学 | 可编程逻辑控制器编程语言转换方法 |
EP3715975B1 (en) * | 2019-03-28 | 2023-03-01 | Mitsubishi Electric R&D Centre Europe B.V. | Method and apparatus for analysing a ladder program |
CN110674049B (zh) * | 2019-09-28 | 2023-06-06 | 中电智能科技有限公司 | 一种面向plc逻辑编程的智能形式化验证方法 |
-
2020
- 2020-03-31 EP EP20315085.9A patent/EP3889703B1/en active Active
- 2020-12-23 US US17/788,625 patent/US20230030253A1/en active Pending
- 2020-12-23 WO PCT/JP2020/049302 patent/WO2021199552A1/en active Application Filing
- 2020-12-23 CN CN202080098637.2A patent/CN115398358A/zh active Pending
- 2020-12-23 JP JP2022561256A patent/JP7418608B2/ja active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108681503A (zh) * | 2018-03-23 | 2018-10-19 | 杭州电子科技大学 | 可编程控制器程序的安全检查方法、装置和设备 |
Non-Patent Citations (3)
Title |
---|
山口 智也 ほか: "自動車制御ソフトウェア開発プロセスへのモデル検査の適用", 組込みシステムシンポジウム 2012 [ONLINE], vol. p. 188-196, JPN6023028329, 10 October 2012 (2012-10-10), JP, ISSN: 0005217728 * |
石井 大輔 ほか: "SMTソルバーによるプログラム検証", 情報処理, vol. 第57巻 第8号, JPN6023028328, 15 July 2016 (2016-07-15), JP, pages 734 - 737, ISSN: 0005217729 * |
長谷川 隆三 ほか: "モデル列挙とモデル計数", 人工知能学会誌, vol. 第25巻 第1号, JPN6023028330, 1 January 2010 (2010-01-01), JP, pages 96 - 104, ISSN: 0005217727 * |
Also Published As
Publication number | Publication date |
---|---|
EP3889703B1 (en) | 2023-02-01 |
US20230030253A1 (en) | 2023-02-02 |
JP7418608B2 (ja) | 2024-01-19 |
EP3889703A1 (en) | 2021-10-06 |
WO2021199552A1 (en) | 2021-10-07 |
CN115398358A (zh) | 2022-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7204955B2 (ja) | プログラマブルロジックコントローラプログラムを分析する方法、コンピュータプログラム及び装置 | |
Dhaussy et al. | Reducing state explosion with context modeling for model-checking | |
US20140214396A1 (en) | Specification properties creation for a visual model of a system | |
JP7418608B2 (ja) | プログラマブルロジックコントローラプログラムの解析方法 | |
He et al. | Model-based verification of PLC programs using Simulink design | |
Ferreira et al. | Test coverage analysis of UML state machines | |
Sinha et al. | Reliability and availability prediction of embedded systems based on environment modeling and simulation | |
US20050138602A1 (en) | System and method for deriving a process-based specification | |
Gargantini et al. | Combining formal methods and MDE techniques for model-driven system design and analysis | |
US20240103479A1 (en) | Computer implemented method for checking correctness of plc program | |
Bouali et al. | Formal verification for model-based development | |
Barros et al. | Towards an integrated tool support for the analysis of iopt nets using the spin model checker | |
Zhao et al. | Toward Reliable Programmable Logic Controller Function Block Diagrams | |
Pakonen et al. | Evaluation of visual property specification languages based on practical model-checking experience | |
Lahtinen et al. | Verifying large modular systems using iterative abstraction refinement | |
Peixoto et al. | Model-based testing of software for automation systems using heuristics and coverage criterion | |
KR101601741B1 (ko) | 서로 다른 언어로 작성된 프로그램들의 동일성을 검증하는 검증장치 | |
Bowen et al. | Formal Requirements Specification. | |
Pradhan | User interface test automation and its challenges in an industrial scenario | |
Fantechi et al. | Applications of Formal Methods, Modeling, and Testing Strategies for Safe Software Development | |
Wehrmeister et al. | Towards early verification of UML models for embedded and real-time systems | |
Mishra | Model Based Testing and Model Checking: An Efficient Combination | |
Reicherdt | A framework for the automatic verification of discrete-time MATLAB simulink models using Boogie | |
Graham | A method for the formal testing of program visualization tools | |
Krämer et al. | Computer-Aided Specification and Verification of Process Control |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220609 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220609 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20230614 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230711 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230913 |
|
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: 20231212 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20240109 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7418608 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |