JP2022519776A - プログラマブルロジックコントローラプログラムを分析する方法、コンピュータプログラム及び装置 - Google Patents
プログラマブルロジックコントローラプログラムを分析する方法、コンピュータプログラム及び装置 Download PDFInfo
- Publication number
- JP2022519776A JP2022519776A JP2021566780A JP2021566780A JP2022519776A JP 2022519776 A JP2022519776 A JP 2022519776A JP 2021566780 A JP2021566780 A JP 2021566780A JP 2021566780 A JP2021566780 A JP 2021566780A JP 2022519776 A JP2022519776 A JP 2022519776A
- Authority
- JP
- Japan
- Prior art keywords
- model
- ast
- program
- error
- properties
- 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
- 238000004590 computer program Methods 0.000 title claims description 6
- 238000004088 simulation Methods 0.000 claims abstract description 16
- 238000000034 method Methods 0.000 claims description 33
- 238000004364 calculation method Methods 0.000 claims description 10
- 238000012795 verification Methods 0.000 claims description 10
- 230000003068 static effect Effects 0.000 claims description 9
- 230000009466 transformation Effects 0.000 claims description 8
- 238000012790 confirmation Methods 0.000 claims description 3
- 238000012360 testing method Methods 0.000 description 13
- 238000013519 translation Methods 0.000 description 13
- 230000014509 gene expression Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000006399 behavior Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 101100317372 Arabidopsis thaliana WHY3 gene Proteins 0.000 description 2
- 238000000205 computational method Methods 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
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000010200 validation analysis Methods 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
- G05B19/056—Programming the PLC
-
- 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
- G05B19/0426—Programming the control sequence
-
- 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
- G05B2219/00—Program-control systems
- G05B2219/10—Plc systems
- G05B2219/13—Plc programming
- G05B2219/13004—Programming the plc
-
- 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
- G05B2219/00—Program-control systems
- G05B2219/10—Plc systems
- G05B2219/13—Plc programming
- G05B2219/13052—Display of ladder diagram
-
- 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
- G05B2219/00—Program-control systems
- G05B2219/10—Plc systems
- G05B2219/13—Plc programming
- G05B2219/13142—Debugging, tracing
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Programmable Controllers (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
Description
プログラマブルロジックコントローラプログラムのタイプの元のプログラムを論理フレームワークのモデルに翻訳するステップと、
少なくとも上記モデルと、事前定義された言語形式化とから、上記元のプログラムの内部変数に関する一組のプロパティを決定するステップと、
自動化ソルバーにより、ユーザ仕様に結合された上記一組のプロパティの充足可能性を検証し、上記一組のプロパティからのプロパティの対偶が充足可能である場合、上記プロパティの対偶が充足可能であるモデル入力及び内部メモリ値を表す一組の反例を提供し、又は、上記一組のプロパティが常に充足される場合、その確認を提供するステップと、
反例を、上記モデルのエラー初期構成に翻訳するステップであって、上記エラー初期構成は入力及び内部メモリの初期値を含む、ステップと、
上記モデルのエラー初期構成(IniConf)を用いて、モデルの実行(EXE)のモデルシミュレーションを行い、実行の開始から上記プロパティ違反まで上記モデルシミュレーションのエラー中間構成を記録するステップであって、上記エラー中間構成は内部メモリの中間値を含む、ステップと、
上記モデルのエラー初期構成及び上記モデルシミュレーションのエラー中間構成を、上記元のプログラムのエラー初期構成及び中間構成に翻訳するステップと、
上記エラー初期構成及び中間構成を表示するステップと、
を含む、プログラマブルロジックコントローラプログラム分析方法が開示される。
上記エラー初期構成を、抽象構文木に対応するエラー初期構成に翻訳する第1の中間ステップと、
上記対応する初期構成を用いて抽象構文木を計算し、抽象構文木に対応する内部メモリの中間値を回収する第2の中間ステップと、
を含む。
上述したコンピュータプログラム命令、及び場合により一時的な計算データ等の他のデータも記憶するメモリMEMと、
メモリMEMの内容を読み出すとともに、本発明による方法のステップを実行するプロセッサPROCと、
場合により、プロセッサPROCによって処理されるべき/処理されたデータを(ネットワーク又は他の任意のリンクを通して)受信/送信する入出力インタフェースINTと、
を備える(図6の例に示すような)処理回路PCを備えることができる。
本発明の他の特徴及び利点は、非限定的な例として与えるその実施の形態のうちの1つの以下の詳細な説明から、且つ添付図面を参照して明らかとなる。
ラダープログラムであるプログラマブルロジックコントローラプログラムのタイプの元のプログラムを、ラダープリミティブの事前定義されたモデル化を用いて、論理フレームワークのモデルに翻訳するステップと、
少なくとも上記モデルと、事前定義された言語形式化とから、上記元のプログラムの内部変数に関する一組のプロパティを決定するステップと、
自動化ソルバーにより、ユーザ仕様に結合された上記一組のプロパティの充足可能性を検証し、上記一組のプロパティからのプロパティの対偶が充足可能である場合、上記プロパティの対偶が充足可能であるモデル入力及び内部メモリ値を表す一組の反例を提供し、又は、上記一組のプロパティが常に充足される場合、その確認を提供するステップと、
反例を、上記モデルのエラー初期構成に翻訳するステップであって、上記エラー初期構成は入力及び内部メモリの初期値を含む、ステップと、
上記モデルのエラー初期構成(IniConf)を用いて、モデルの実行(EXE)のモデルシミュレーションを行い、実行の開始から上記プロパティ違反まで上記モデルシミュレーションのエラー中間構成を記録するステップであって、上記エラー中間構成は内部メモリの中間値を含む、ステップと、
上記モデルのエラー初期構成及び上記モデルシミュレーションのエラー中間構成を、上記元のプログラムのエラー初期構成及び中間構成に翻訳するステップと、
上記エラー初期構成及び中間構成を表示するステップと、
を含む、プログラマブルロジックコントローラプログラム分析方法が開示される。
Claims (9)
- プログラマブルロジックコントローラプログラム分析方法であって、
プログラマブルロジックコントローラ(PLC)プログラムのタイプの元のプログラム(PROG)を論理フレームワークのモデル(MOD)に翻訳するステップ(TRANS)と、
少なくとも前記モデル(MOD)と、事前定義された言語形式化とから、前記元のプログラムの内部変数に関する一組のプロパティ(Prop)を決定するステップと、
自動化ソルバー(SMT)により、ユーザ仕様(IntProp)に結合された前記一組のプロパティ(Prop)の充足可能性を検証し、前記一組のプロパティ(Prop)からのプロパティ(Prop)の対偶が充足可能である場合、前記プロパティ(Prop)の対偶が充足可能であるモデル入力及び内部メモリ値を表す一組の反例(PROOF NOK)を提供し、又は、前記一組のプロパティ(Prop)が常に充足される場合、その確認(PROOF OK)を提供するステップと、
反例(PROOF NOK)を前記モデルのエラー初期構成(IniConf)に翻訳するステップであって、前記エラー初期構成(IniConf)は入力及び内部メモリの初期値を含むステップと、
前記モデルのエラー初期構成(IniConf)を用いて、前記モデルの実行(EXE)のモデルシミュレーションを行い、実行の開始から前記プロパティの違反まで前記モデルシミュレーションのエラー中間構成(AST-IntConf)を記録するステップであって、前記エラー中間構成は内部メモリの中間値を含むステップと、
前記モデルのエラー初期構成(IniConf)及び前記モデルシミュレーションのエラー中間構成(AST-IntConf)を、前記元のプログラム(PROG)のエラー初期構成及び中間構成(Lad-IniConf、Lad-IntConf)に翻訳するステップと、
前記エラー初期構成及び中間構成(Lad-IniConf、Lad-IntConf)を表示するステップと
を含む
プログラマブルロジックコントローラプログラム分析方法。 - 前記元のプログラム(PROG)を前記モデル(MOD)に翻訳する前記ステップ(TRANS)は、抽象構文木(AST)としての前記元のプログラム(PROG)の表現の第1の中間ステップ(AST-TRANS)と、前記抽象構文木(AST)からの前記モデル(MOD)の生成の第2の中間ステップ(MOD-TRANS)とを含む
請求項1に記載のプログラマブルロジックコントローラプログラム分析方法。 - モデル実行をシミュレートする前記ステップは、
前記エラー初期構成(IniConf)を、前記抽象構文木(AST)に対応するエラー初期構成(AST-IniConf)に翻訳する第1の中間ステップ(AST-TRANSB)と、
前記対応する初期構成(AST-IniConf)を用いて前記抽象構文木(AST)を計算し、前記抽象構文木(AST)に対応する内部メモリの中間値(AST-IntConf)を回収する第2の中間ステップ(AST-SyEx)と、
を含む
請求項2に記載のプログラマブルロジックコントローラプログラム分析方法。 - 前記モデル(MOD)は、一階述語論理フレームワークで表される
請求項1から請求項3までのいずれか1項に記載のプログラマブルロジックコントローラプログラム分析方法。 - 前記元のプログラム(PROG)を前記モデル(MOD)に翻訳する前記ステップ(TRANS)は、静的単一代入変換(SSAT)の中間ステップを含む
請求項1から請求項4までのいずれか1項に記載のプログラマブルロジックコントローラプログラム分析方法。 - 前記一組のプロパティ(Prop)を決定する前記ステップの間に、前記一組のプロパティ(Prop)は、ダイクストラの最弱事前条件計算法を用いて、前記一組のプロパティ(Prop)に対する事前条件(PreCond)を決定するように計算され、前記一組のプロパティ(Prop)の検証は、その事前条件(PreCond)に基づいて実施される
請求項1から請求項5までのいずれか1項に記載のプログラマブルロジックコントローラプログラム分析方法。 - ユーザ仕様と結合された前記一組のプロパティの充足可能性は、充足可能性モジュロソルバー(SMT)を用いて検証される
請求項1から請求項6までのいずれか1項に記載のプログラマブルロジックコントローラプログラム分析方法。 - プロセッサによって実行されると、請求項1から請求項7までのいずれか1項に記載の方法を実行する命令を含むコンピュータプログラム。
- 請求項1から請求項7までのいずれか1項に記載のプログラマブルロジックコントローラプログラム分析方法を実行する装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP19305408.7 | 2019-03-28 | ||
EP19305408.7A EP3715975B1 (en) | 2019-03-28 | 2019-03-28 | Method and apparatus for analysing a ladder program |
PCT/JP2020/005931 WO2020195313A1 (en) | 2019-03-28 | 2020-02-07 | Method, computer program and apparatus for analysing a programmable logic controller program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2022519776A true JP2022519776A (ja) | 2022-03-24 |
JP7204955B2 JP7204955B2 (ja) | 2023-01-16 |
Family
ID=66323794
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021566780A Active JP7204955B2 (ja) | 2019-03-28 | 2020-02-07 | プログラマブルロジックコントローラプログラムを分析する方法、コンピュータプログラム及び装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US12085911B2 (ja) |
EP (1) | EP3715975B1 (ja) |
JP (1) | JP7204955B2 (ja) |
CN (1) | CN113632018B (ja) |
WO (1) | WO2020195313A1 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3889703B1 (en) * | 2020-03-31 | 2023-02-01 | Mitsubishi Electric R&D Centre Europe B.V. | Method and apparatus for expressing and verifying functional specifications of a programmable logic controller program |
CN112463133B (zh) * | 2020-12-02 | 2022-06-10 | 杭州电子科技大学 | 一种基于Coq的机器人控制系统时序安全性的验证方法 |
EP4047482A1 (en) | 2021-02-19 | 2022-08-24 | Mitsubishi Electric R&D Centre Europe B.V. | Improved checking of correctness of a plc program |
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 |
CN116149253B (zh) * | 2023-03-02 | 2024-09-17 | 山东省计算中心(国家超级计算济南中心) | 一种plc在线监控与调试系统及其实现方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110283147A1 (en) * | 2010-05-12 | 2011-11-17 | Fujitsu Limited | Generating Software Application User-Input Data Through Analysis of Client-Tier Source Code |
WO2017138156A1 (ja) * | 2016-02-12 | 2017-08-17 | 三菱電機株式会社 | エンジニアリングツール |
JP2018133034A (ja) * | 2017-02-17 | 2018-08-23 | 三菱重工エンジニアリング株式会社 | ソフトウェア試験装置、ソフトウェア試験システム、ソフトウェア試験方法およびプログラム |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007528059A (ja) * | 2004-01-22 | 2007-10-04 | エヌイーシー ラボラトリーズ アメリカ インク | ソフトウェアのモデル化、抽象、および分析のためのシステムと方法 |
US7930659B2 (en) * | 2005-06-03 | 2011-04-19 | Nec Laboratories America, Inc. | Software verification |
US8935674B2 (en) * | 2012-08-15 | 2015-01-13 | International Business Machines Corporation | Determining correctness conditions for use in static analysis |
EP3304312B1 (en) * | 2015-06-06 | 2020-02-12 | The Board of Trustees of the Leland Stanford Junior University | Post-silicon validation and debug using symbolic quick error detection |
CN106294148B (zh) * | 2016-08-08 | 2018-12-11 | 清华大学 | 基于扩展符号变迁系统的c语言程序软件验证方法及装置 |
US10360004B2 (en) * | 2017-02-27 | 2019-07-23 | International Business Machines Corporation | Using dynamic information to refine control flow graphs |
CN108681503B (zh) * | 2018-03-23 | 2021-10-22 | 杭州电子科技大学 | 可编程控制器程序的安全检查方法、装置和设备 |
CN109032056B (zh) * | 2018-06-13 | 2020-01-10 | 华东师范大学 | 可编程逻辑控制器编程语言转换方法 |
CN109143953B (zh) * | 2018-06-26 | 2020-04-24 | 华东师范大学 | 一种基于中间语言的plc程序验证方法 |
CN109117362B (zh) * | 2018-06-26 | 2020-08-25 | 华东师范大学 | 一种基于中间语言的plc程序验证系统 |
-
2019
- 2019-03-28 EP EP19305408.7A patent/EP3715975B1/en active Active
-
2020
- 2020-02-07 CN CN202080023211.0A patent/CN113632018B/zh active Active
- 2020-02-07 WO PCT/JP2020/005931 patent/WO2020195313A1/en active Application Filing
- 2020-02-07 US US17/429,782 patent/US12085911B2/en active Active
- 2020-02-07 JP JP2021566780A patent/JP7204955B2/ja active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110283147A1 (en) * | 2010-05-12 | 2011-11-17 | Fujitsu Limited | Generating Software Application User-Input Data Through Analysis of Client-Tier Source Code |
WO2017138156A1 (ja) * | 2016-02-12 | 2017-08-17 | 三菱電機株式会社 | エンジニアリングツール |
JP2018133034A (ja) * | 2017-02-17 | 2018-08-23 | 三菱重工エンジニアリング株式会社 | ソフトウェア試験装置、ソフトウェア試験システム、ソフトウェア試験方法およびプログラム |
Also Published As
Publication number | Publication date |
---|---|
US20220137586A1 (en) | 2022-05-05 |
CN113632018B (zh) | 2024-07-26 |
EP3715975A1 (en) | 2020-09-30 |
JP7204955B2 (ja) | 2023-01-16 |
WO2020195313A1 (en) | 2020-10-01 |
US12085911B2 (en) | 2024-09-10 |
CN113632018A (zh) | 2021-11-09 |
EP3715975B1 (en) | 2023-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7204955B2 (ja) | プログラマブルロジックコントローラプログラムを分析する方法、コンピュータプログラム及び装置 | |
Machado et al. | Safe controllers design for industrial automation systems | |
He et al. | Model-based verification of PLC programs using Simulink design | |
JP7418608B2 (ja) | プログラマブルロジックコントローラプログラムの解析方法 | |
Xavier et al. | Cyber-physical automation systems modelling with IEC 61499 for their formal verification | |
Sinha et al. | Reliability and availability prediction of embedded systems based on environment modeling and simulation | |
Sülflow et al. | Verification of PLC programs using formal proof techniques | |
Castillo et al. | Formal modeling methodologies for control of manufacturing cells: Survey and comparison | |
JP7531728B2 (ja) | Plcプログラムの正しさをチェックするコンピュータ実施方法 | |
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 | |
Burnard et al. | Verifying and validating automatically generated code | |
Le Parc et al. | Grafcet revisited with a synchronous data-flow language | |
Garro et al. | RAMSAS4Modelica: a Simulation-driven Method for System Dependability Analysis centered on the Modelica language and related tools | |
Peixoto et al. | Model-based testing of software for automation systems using heuristics and coverage criterion | |
de Assis Barbosa et al. | On the automatic generation of timed automata models from isa 5.2 diagrams | |
Cousineau et al. | A Methodological Guide for the Validation of Logic Modelling of Ladder Instructions | |
Kunze | Automated test case generation for function block diagrams using java path finder and symbolic execution | |
Jeon et al. | Verification of function block diagram through verilog translation | |
Hametner | Test driven software development for improving the quality of control software for industrial automation systems | |
Krapfenbauer et al. | Improving component testing of industrial automation software | |
Bernardeschi et al. | Debugging PVS specifications of control logics via event-driven simulation | |
Ferrarini et al. | Conceptual framework for the design of logic control | |
Buzhinsky | Assessment of formal nuclear I&C logic models using behavior examples | |
Lee | Development of Safety-Critical Software Exhaustive Testing Framework for Nuclear Power Plant Digital I&C System |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210726 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210726 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20220712 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20220719 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220927 |
|
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: 20221206 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20221228 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7204955 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |