Model checking programs in process-oriented IEC 61131-3 Structured Text
Modelirovanie i analiz informacionnyh sistem, Tome 31 (2024) no. 1, pp. 32-53.

Voir la notice de l'article provenant de la source Math-Net.Ru

The process-oriented programming is a paradigm based on the process concept where each process is a concurrent finite state machine inside. The paradigm is intended for PLC (programmable logic controllers) developers to write Industry 4.0-enabled software. The poST language is a promising process-oriented extension of the IEC 61131-3 Structured Text (ST) language designed to provide a conceptual consistency of the PLC source code with technological description of the process under control. This language combines the advantages of FSM-based programming with the standard syntax of the ST language. We propose transformational semantics of poST providing rules for translation of poST language statements to Promela — the input language of the SPIN model checker. Following these semantic rules, our Xtext-based translator outputs a Promela model for the poST program. Our contribution is the poST transformational semantics and the method for automatic generation of the Promela code from poST control programs. The resulting Promela program is ready to be verified with SPIN model checker against linear temporal logic requirements to the source poST program. In the paper we provide an overview of related work, as well as a brief description of the poST and Promela languages. Further, the Promela poST translation rules cover control flow statements, process creation and state management constructs, and timeout management. Then we define service processes for modeling the external environment and managing high-level LTL specifications. Then we present the main ideas of implementing the translator poST to Promela. We also illustrate our approach using the example of a system for managing electricity consumption and production, including renewable sources.
Keywords: control software, model checking, process-oriented programming, LTL, SPIN, Structured Text.
@article{MAIS_2024_31_1_a1,
     author = {N. O. Garanina and S. M. Staroletov and V. E. Zyubin and I. S. Anureev},
     title = {Model checking programs in process-oriented {IEC} 61131-3 {Structured} {Text}},
     journal = {Modelirovanie i analiz informacionnyh sistem},
     pages = {32--53},
     publisher = {mathdoc},
     volume = {31},
     number = {1},
     year = {2024},
     language = {ru},
     url = {http://geodesic.mathdoc.fr/item/MAIS_2024_31_1_a1/}
}
TY  - JOUR
AU  - N. O. Garanina
AU  - S. M. Staroletov
AU  - V. E. Zyubin
AU  - I. S. Anureev
TI  - Model checking programs in process-oriented IEC 61131-3 Structured Text
JO  - Modelirovanie i analiz informacionnyh sistem
PY  - 2024
SP  - 32
EP  - 53
VL  - 31
IS  - 1
PB  - mathdoc
UR  - http://geodesic.mathdoc.fr/item/MAIS_2024_31_1_a1/
LA  - ru
ID  - MAIS_2024_31_1_a1
ER  - 
%0 Journal Article
%A N. O. Garanina
%A S. M. Staroletov
%A V. E. Zyubin
%A I. S. Anureev
%T Model checking programs in process-oriented IEC 61131-3 Structured Text
%J Modelirovanie i analiz informacionnyh sistem
%D 2024
%P 32-53
%V 31
%N 1
%I mathdoc
%U http://geodesic.mathdoc.fr/item/MAIS_2024_31_1_a1/
%G ru
%F MAIS_2024_31_1_a1
N. O. Garanina; S. M. Staroletov; V. E. Zyubin; I. S. Anureev. Model checking programs in process-oriented IEC 61131-3 Structured Text. Modelirovanie i analiz informacionnyh sistem, Tome 31 (2024) no. 1, pp. 32-53. http://geodesic.mathdoc.fr/item/MAIS_2024_31_1_a1/

[1] IEC 61131-3: 2013 Programmable controllers-Part 3: programming languages, IEC, 2013 https://webstore.iec.ch/publication/4552

[2] T. M. Antonsen, PLC Controls with Structured Text (ST), V3: IEC 61131-3 and best practice ST programming, Books on Demand, 2020

[3] V. E. Zyubin, “Hyper-automaton: a Model of Control Algorithms”, 2007 Siberian Conference on Control and Communications, 2007, 51–57 | DOI

[4] V. E. Zyubin, A. S. Rozov, I. S. Anureev, N. O. Garanina, and V. Vyatkin, “poST: A Process-Oriented Extension of the IEC 61131-3 Structured Text Language”, IEEE Access, 10 (2022), 35238–35250 | DOI

[5] G. J. Holzmann, The SPIN Model Checker, Primer and Reference Manual, Addison-Wesley, Reading, Massachusetts, 2003

[6] L. Schneider and D. Schultes, “Evaluating Swift-to-Kotlin and Kotlin-to-Swift transpilers”, Proceedings of the 9th IEEE/ACM International Conference on Mobile Software Engineering and Systems, 2022, 102–106 | DOI

[7] E. M. Clarke, T. A. Henzinger, H. Veith, R. Bloem, and others, Handbook of model checking, Springer, 2018 | MR | Zbl

[8] T. Ovatman, “An overview of model checking practices on verification of PLC software”, Software Systems Modeling, 4:15 (2016), 937–960 | DOI

[9] E. M. Clarke, E. A. Emerson, and A. P. Sistla, “Automatic verification of finite-state concurrent systems using temporal logic specifications”, ACM Transactions on Programming Languages and Systems (TOPLAS), 8:2 (1986), 244–263 | DOI | Zbl

[10] C. A. R. Hoare, “Communicating sequential processes”, Communications of the ACM, 21:8 (1978), 666–677 | DOI | MR | Zbl

[11] N. O. Garanina, S. M. Staroletov, V. E. Zyubin, and I. S. Anureev, “Model Checking Programs in Process-Oriented IEC 61131-3 Structured Text”, System Informatics, 22 (2023), 21–30 | DOI

[12] M. Weißmann, S. Bedenk, C. Buckl, and A. Knoll, "Model checking industrial robot systems, Model Checking Software, SPIN 2011, 2011, 161–176

[13] P. Cousot, “Abstract interpretation”, ACM Computing Surveys, 28:2 (1996), 324–328 | DOI

[14] S. Leue and G. Holzmann, “v-Promela: A visual, object-oriented language for SPIN”, Proceedings of the 2nd IEEE International Symposium on Object-Oriented Real-Time Distributed Computing, 1999, 14–23 | DOI

[15] M. Benerecetti et al., “From dynamic state machines to Promela”, International Symposium on Model Checking Software, 2019, 56–73 | MR

[16] B. Lion, S. Chouali, and F. Arbab, “Compiling Protocols to Promela and Verifying their LTL Properties”, Proceedings of 21st MODELS Workshops, 2018, 31–39

[17] A. Klarl, “From Helena ensemble specifications to Promela verification models”, Model Checking Software, SPIN 2015, 2015, 39–45 | DOI | MR

[18] N. Dilley and J. Lange, “Bounded verification of message-passing concurrency in Go using Promela and SPIN”, Proceedings of the 12th International Workshop on Programming Language Approaches to Concurrency- and Communication-cEntric Software, 2010, 34–45 | DOI

[19] N. Dilley and J. Lange, “Automated Verification of Go Programs via Bounded Model Checking”, 36th IEEE/ACM International Conference on Automated Software Engineering (ASE), 2021, 1016–1027

[20] E. Brinksma, A. Mader, and A. Fehnker, “Verification and optimization of a PLC control schedule”, International Journal on Software Tools for Technology Transfer, 4:1 (2002), 21–33 | DOI

[21] M. Xia, M. Sun, G. Luo, and X. Zhao, “Design and implementation of automatic verification for PLC systems”, IEEE 12th International Conference on Cognitive Informatics and Cognitive Computing, 2013, 374–379

[22] P. Liu, G. Luo, M. Xia, and M. He, “Automatic verification of event-driven control programs: a case study”, The Fourth International Workshop on Advanced Computational Intelligence, 2011, 249–256 | Zbl

[23] T. Liakh, R. Sorokin, D. Akifev, S. Patil, and V. Vyatkin, “Formal model of IEC 61499 execution trace in FBME IDE”, IEEE 20th International Conference on Industrial Informatics (INDIN), 2022, 588–593

[24] V. Shatrov and V. Vyatkin, “Promela Formal Modelling and Verification of IEC 61499 Systems with comparison to SMV”, IEEE 19th International Conference on Industrial Informatics (INDIN), 2021, 1–6

[25] A. Ebnenasir, Formalizing Ladder Logic Programs and Timing Charts for Fault Impact Analysis and Verification of Fault Tolerance, CS-TR-23-01, Michigan Technological University, Jan 2023

[26] A. Mader, “A Classification of PLC Models and Applications”, Discrete Event Systems: Analysis and Control, 569 (2000), 239–246 | DOI | MR | Zbl

[27] N. O. Garanina et al., “A Temporal Logic for Programmable Logic Controllers”, Automatic Control and Computer Sciences, 55:7 (2021), 763–775 | DOI

[28] M. Eysholdt and H. Behrens, “Xtext: implement your language faster than the quick and dirty way”, Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion, 2010, 307–309 | DOI

[29] D. Steinberg, F. Budinsky, E. Merks, and M. Paternostro, EMF: Eclipse modeling framework, Pearson Education, 2008, 744 pp.

[30] “ANTLR: A predicated-LL(k) parser generator”, Software: Practice and Experience, 25:7 (1995), 789–810 | DOI

[31] D. Lepri, E. Ábrahám, and P. C. Ölveczky, “Sound and complete timed CTL model checking of timed Kripke structures and real-time rewrite theories”, Science of Computer Programming, 99 (2015), 128–192 | DOI

[32] N. Rhodes and J. McKeehan, Palm OS programming: the developer's guide, O'Reilly Media, Inc., 2002, 681 pp.

[33] R. Miles and K. Hamilton, Learning UML 2.0: a pragmatic introduction to UML, O'Reilly Media, Inc., 2006, 290 pp.