Инструментальная поддержка интерпретации и динамической компиляции языков программирования систем промышленной автоматизации
А. В. Дроздов
Сибирский федеральный университет, Красноярск, Россия
DOI: https://doi.org/10.47813/2782-5280-2022-1-1-0201-0216
Ключевые слова: виртуальная машина, среда исполнения, промышленная автоматизация, МЭК 61131-3, интерпретация, компиляция, динамическая компиляция, байткод, автоматизированное управление.
Аннотация
Работа посвящена исследованию различных реализаций сред исполнения для языков промышленной автоматизации стандарта МЭК 61131-3 и проектированию среды исполнения, отличающейся от аналогов подходом к трансляции и выбором целевой платформы. Рассмотрена модель реализации, включающая в себя синтаксический разбор программного кода на языке ST стандарта МЭК 61131-3 посредством алгоритма LALR, последующая его интерпретация на виртуальной машине Java и динамическая компиляция в Java байткод. Рассмотрены и спроектированы части виртуальной машины, специфичные для языков промышленной автоматизации – планировщик задач и модуль управления конфигурацией подключаемых устройств. Разработана модель взаимодействия частей программы с применением архитектуры на основе плагинов.
Биография автора
А. В. Дроздов, Сибирский федеральный университет, Красноярск, Россия
Дроздов Александр Витальевич, Сибирский Федеральный Университет, кафедра информатики института космических и информационных технологий, Красноярск, Российская Федерация
Библиографические ссылки
Karl-Heinz John, Michael Tiegelkamp, IEC 61131-3: Programming Industrial Automation Systems. Concepts and Programming Languages, Requirements for Programming Systems, Aids to Decision-making Tools. 2001; 376.
CODESYS Control SoftPLC [Электронный ресурс] Режим доступа: https://www.codesys.com/products/codesys-runtime.html
IEC 61131-3 on ECLR (The PLCnext Runtime) [Электронный ресурс] Режим доступа: http://plcnext-runtime.com/ch05-03-iec-programs.html
International Standard IEC 61131-3 [Электронный ресурс] Режим доступа: https://d1.amobbs.com/bbs_upload782111/files_31/ourdev_569653.pdf
Dick Grune, Ceriel J.H. Jacobs. Parsing Techniques A Practical Guide. 2003; 302.
JavaCC [Электронный ресурс] Режим доступа: https://github.com/javacc/javacc
ANTLR [Электронный ресурс] Режим доступа: https://www.antlr.org/
Расширенная форма Бэкуса-Наура [Электронный ресурс] Режим доступа: https://standards.iso.org/ittf/PubliclyAvailableStandards/s026153_ISO_IEC_14977_1996(E).zip
SableCC [Электронный ресурс] – Режим доступа: https://sablecc.org/
GNU Bison [Электронный ресурс] Режим доступа: https://www.gnu.org/software/bison/manual/html_node/Java-Bison-Interface.html
J. W. Cooper. Java Design Patterns. A Tutorial. 2000; 257.
Richard Jones, Rafael Lins., Garbage Collection. Algorithms for Automatic Dynamic Memory Management. 1996; 257.
Шэнг Лиенг. Интерфейс JNI. Руководство по программированию и спецификация. 2022; 1.
REFERENCES
Karl-Heinz John, Michael Tiegelkamp, IEC 61131-3: Programming Industrial Automation Systems. Concepts and Programming Languages, Requirements for Programming Systems, Aids to Decision-making Tools. 2001; 376.
CODESYS Control SoftPLC [Elektronnyj resurs] Rezhim dostupa: https://www.codesys.com/products/codesys-runtime.html
IEC 61131-3 on ECLR (The PLCnext Runtime) [Elektronnyj resurs] Rezhim dostupa: http://plcnext-runtime.com/ch05-03-iec-programs.html
International Standard IEC 61131-3 [Elektronnyj resurs] Rezhim dostupa: https://d1.amobbs.com/bbs_upload782111/files_31/ourdev_569653.pdf
Dick Grune, Ceriel J.H. Jacobs. Parsing Techniques, A Practical Guide. 2003; 302.
JavaCC [Elektronnyj resurs] Rezhim dostupa: https://github.com/javacc/javacc
ANTLR [Elektronnyj resurs] Rezhim dostupa: https://www.antlr.org/
Rasshirennaya forma Bekusa-Naura [Elektronnyj resurs] Rezhim dostupa: https://standards.iso.org/ittf/PubliclyAvailableStandards/s026153_ISO_IEC_14977_1996(E).zip
SableCC [Elektronnyj resurs] – Rezhim dostupa: https://sablecc.org/
GNU Bison [Elektronnyj resurs] Rezhim dostupa: https://www.gnu.org/software/bison/manual/html_node/Java-Bison-Interface.html
J. W. Cooper. Java Design Patterns. A Tutorial. 2000; 257.
Richard Jones, Rafael Lins., Garbage Collection. Algorithms for Automatic Dynamic Memory Management. 1996; 257.
Sh. Lieng. Interfejs JNI. Rukovodstvo po programmirovaniyu i specifikaciya. 2022; 1.