Программирование систем управления на триггерах

Программирование систем управления на триггерах

Формализм триггеров предложенный в пакете org.engitex.controllogic (https://control-logic.sourceforge.io/) не является ни IoC-фреймворком, ни расширением для Java (как, например, файлы XML при создании графических Java-приложений).

Напротив, формализм полностью "встроен" в обычный синтаксис Java:

Программирование систем управления на триггерах

Пакет org.engitex.controllogic дает возможность запрограммировать систему управления (моделируемую или реальную) похожим образом, как это делается, например, в RELAP/Simulink. Важно, что теперь такое программирование доступно на Java, т.е. в бесплатной среде разработки с широким применением, а не только в платных пакетах, заточенных под узкие задачи (например, моделирование гидравлических систем).

org.engitex.controllogic позволяет создавать системы управления в реальном времени на ПК (так называемый PC-based control), а также моделировать АСУ, состоящие из реле, ПЛК, итд.

За счет возможности переопределения методов в Java, два режима (т.е. симуляция АСУ и реальное управление с ПК) "живут" в одном и том же формализме. Даже переход от моделируемой системы к реальной делается с минимальными изменениями кода.

Реальная система управления на ПК

Т.н. "триггер" - это 2 логических входа и 1 логический выход. Триггер реализует логику AND, OR и XOR.

Во время исполнения программы каждый триггер приводит к созданию отдельной нити процесса на ПК. Более того, если триггер не только нужен для получения выходного логического значения для каких-то дальнейших операций, но также имеет привязанную задачу (например, отправка http-сообщений), то такой триггер приведет к созданию 2 нитей.

Симуляция АСУ

Как минимум, формализм позволяет отделить основной код программы от кода, который описывает АСУ, для читаемости. Например, пользователь может создать класс MyControl и поместить всю логику триггеров вместе с объектом класса ControlSimulator в него.

Кроме того, наличие логики управления в форме триггеров на этапе симуляции системы упрощает перевод этой же логики в среду программирования ПЛК.

11
Начать дискуссию