Верификация моделей программ на процесс-ориентированном расширении языка Structured Text стандарта IEC 61131-3
https://doi.org/10.18255/1818-1015-2024-1-32-53
Аннотация
Процессно-ориентированное программирование — это парадигма, основанная на концепции процесса. Каждый процесс представляет собой конечный автомат. Эта парадигма предназначена для разработчиков ПЛК (программируемых логических контроллеров) для написания программного обеспечения с поддержкой Индустрии 4.0. Язык poST является многообещающим процессно-ориентированным расширением языка структурированного текста (ST) МЭК 61131-3, предназначенным для обеспечения концептуальной согласованности исходного кода ПЛК с технологическим описанием управляемого процесса. Этот язык сочетает в себе преимущества программирования на основе конечных автоматов со стандартным синтаксисом языка ST. Мы предлагаем трансформационную семантику poST, заданную правилами перевода операторов языка poST в Promela — входной язык средства проверки моделей SPIN. Следуя этим правилам, наш транслятор, основанный на технологии Xtext, строит модель Promela для программы poST. Основной вклад нашей статьи — это трансформационная семантика poST и метод автоматической генерации кода Promela из программ управления PoST. Полученная модель Promela готова к проверке с помощью системы верификации моделей SPIN на соответствие требованиям к исходной программе poST, выраженных в терминах линейной темпоральной логики LTL. В статье мы приводим обзор связанных работ, а также краткое описание языков poST и Promela. Представленные далее правила трансляции poST в Promela покрывают операторы потока управления, конструкции создания процессов и управления их состояниями, а также операторы для таймаутов. Отдельно определены сервисные процессы для моделирования внешней среды и задания высокоуровневых LTL спецификаций. Затем мы останавливаемся на основных идеях реализации транслятора poST в Promela, и далее иллюстрируем наш подход на примере системы управления потреблением и производством электроэнергии, в том числе из возобновляемых источников.
Ключевые слова
MSC2020: 68N30
Об авторах
Наталья Олеговна ГаранинаРоссия
Сергей Михайлович Старолетов
Россия
Владимир Евгеньевич Зюбин
Россия
Игорь Сергеевич Ануреев
Россия
Список литературы
1. IEC, “IEC 61131-3: 2013 Programmable controllers-Part 3: programming languages.” 2013, [Online]. Available: 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,” in 2007 Siberian Conference on Control and Communications, 2007, pp. 51–57, doi: 10.1109/SIBCON.2007.371297.
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, vol. 10, pp. 35238–35250, 2022, doi: 10.1109/ACCESS.2022.3157601.
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,” in Proceedings of the 9th IEEE/ACM International Conference on Mobile Software Engineering and Systems, 2022, pp. 102–106.
7. E. M. Clarke, T. A. Henzinger, H. Veith, R. Bloem, and others, Handbook of model checking. Springer, 2018.
8. T. Ovatman, “An overview of model checking practices on verification of PLC software,” Software & Systems Modeling, vol. 4, no. 15, pp. 937–960, 2016.
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), vol. 8, no. 2, pp. 244–263, 1986.
10. C. A. R. Hoare, “Communicating sequential processes,” Communications of the ACM, vol. 21, no. 8, pp. 666–677, 1978.
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, vol. 22, pp. 21–30, 2023, doi: 10.31144/si.2307-6410.2023.n22.p21-30.
12. M. Weissmann, S. Bedenk, C. Buckl, and A. Knoll, “Model checking industrial robot systems,” in Model Checking Software. SPIN 2011, 2011, pp. 161–176.
13. P. Cousot, “Abstract interpretation,” ACM Computing Surveys, vol. 28, no. 2, pp. 324–328, 1996, doi: 10.1145/234528.234740.
14. S. Leue and G. Holzmann, “v-Promela: A visual, object-oriented language for SPIN,” in Proceedings of the 2nd IEEE International Symposium on Object-Oriented Real-Time Distributed Computing, 1999, pp. 14–23.
15. M. Benerecetti et al., “From dynamic state machines to Promela,” in International Symposium on Model Checking Software, 2019, pp. 56–73.
16. B. Lion, S. Chouali, and F. Arbab, “Compiling Protocols to Promela and Verifying their LTL Properties,” in Proceedings of 21st MODELS Workshops, 2018, pp. 31–39.
17. A. Klarl, “From Helena ensemble specifications to Promela verification models,” in Model Checking Software. SPIN 2015, 2015, pp. 39–45.
18. N. Dilley and J. Lange, “Bounded verification of message-passing concurrency in Go using Promela and SPIN,” in Proceedings of the 12th International Workshop on Programming Language Approaches to Concurrency- and Communication-cEntric Software, 2010, pp. 34–45, doi: 10.4204/EPTCS.314.4.
19. N. Dilley and J. Lange, “Automated Verification of Go Programs via Bounded Model Checking,” in 36th IEEE/ACM International Conference on Automated Software Engineering (ASE), 2021, pp. 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, vol. 4, no. 1, pp. 21–33, 2002, doi: 10.1007/s10009-002-0079-0.
21. M. Xia, M. Sun, G. Luo, and X. Zhao, “Design and implementation of automatic verification for PLC systems,” in IEEE 12th International Conference on Cognitive Informatics and Cognitive Computing, 2013, pp. 374–379.
22. P. Liu, G. Luo, M. Xia, and M. He, “Automatic verification of event-driven control programs: a case study,” in The Fourth International Workshop on Advanced Computational Intelligence, 2011, pp. 249–256.
23. T. Liakh, R. Sorokin, D. Akifev, S. Patil, and V. Vyatkin, “Formal model of IEC 61499 execution trace in FBME IDE,” in IEEE 20th International Conference on Industrial Informatics (INDIN), 2022, pp. 588–593.
24. V. Shatrov and V. Vyatkin, “Promela Formal Modelling and Verification of IEC 61499 Systems with comparison to SMV,” in IEEE 19th International Conference on Industrial Informatics (INDIN), 2021, pp. 1–6.
25. A. Ebnenasir, “Formalizing Ladder Logic Programs and Timing Charts for Fault Impact Analysis and Verification of Fault Tolerance,” Michigan Technological University, CS-TR-23-01, Jan. 2023.
26. A. Mader, “A Classification of PLC Models and Applications,” Discrete Event Systems: Analysis and Control, vol. 569, pp. 239–246, 2000.
27. N. O. Garanina et al., “A Temporal Logic for Programmable Logic Controllers,” Automatic Control and Computer Sciences, vol. 55, no. 7, pp. 763–775, 2021, doi: 10.3103/S0146411621070038.
28. M. Eysholdt and H. Behrens, “Xtext: implement your language faster than the quick and dirty way,” in Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion, 2010, pp. 307–309.
29. D. Steinberg, F. Budinsky, E. Merks, and M. Paternostro, EMF: Eclipse modeling framework. Pearson Education, 2008.
30. “ANTLR: A predicated-LL(k) parser generator,” Software: Practice and Experience, vol. 25, no. 7, pp. 789–810, 1995.
31. D. Lepri, E. 'Abrah'am, and P. C. "Olveczky, “Sound and complete timed CTL model checking of timed Kripke structures and real-time rewrite theories,” Science of Computer Programming, vol. 99, pp. 128–192, 2015.
32. N. Rhodes and J. McKeehan, Palm OS programming: the developer's guide. O'Reilly Media, Inc., 2002.
33. R. Miles and K. Hamilton, Learning UML 2.0: a pragmatic introduction to UML. O'Reilly Media, Inc., 2006.
Рецензия
Для цитирования:
Гаранина Н.О., Старолетов С.М., Зюбин В.Е., Ануреев И.С. Верификация моделей программ на процесс-ориентированном расширении языка Structured Text стандарта IEC 61131-3. Моделирование и анализ информационных систем. 2024;31(1):32-53. https://doi.org/10.18255/1818-1015-2024-1-32-53
For citation:
Garanina N.O., Staroletov S.M., Zyubin V.E., Anureev I.S. Model checking programs in process-oriented IEC 61131-3 Structured Text. Modeling and Analysis of Information Systems. 2024;31(1):32-53. (In Russ.) https://doi.org/10.18255/1818-1015-2024-1-32-53