
Part Production Cell — MES & OEE
OpenPLC, Ignition Perspective и SQLite: порядок в событиях, KPI и причинах простоев.
Этот кейс не про отдельный экран. Я собирал понятную цепочку управления уровнем: условия в ladder-логике, обмен по Modbus TCP и состояние, которое оператор видит в Ignition.
Сначала настроил режимы и interlocks в OpenPLC. Затем связал Runtime с Ignition, проверил адреса и качество тегов. Только после этого добавил HMI в Perspective.
Цель была практической: видеть путь команды от оператора до процесса и обратно. Это учебный прототип, не промышленная и не safety-certified система.

Начал с того, что определяет PLC. В ladder собраны Auto и Manual, пороги уровня, E-stop и блокировки насоса и выпускного клапана. Важно было определить, какая логика имеет право отправлять команду, а не просто включить выход.

Сначала заданы два режима. В Auto PLC держит уровень сам. В Manual оператор отправляет запрос, но финальная команда всё равно проходит через ladder-логику.
Сценарий простой: насос включается на 35% и отключается на 70%. Так видно базовое удержание уровня без PID-регулятора.
High-high блокирует насос. Low-low закрывает клапан. E-stop снимает обе команды. Эти ограничения действуют в любом режиме.
После логики подключил OpenPLC Runtime к Ignition по Modbus TCP. Для каждого сигнала зафиксировал адрес, тип и направление. Затем проверял цепочку по шагам: PLC-бит, OPC-тег, качество Good и только потом отображение на HMI.

Runtime открывает PLC-память для Ignition. После загрузки логики проверил, что Modbus активен и порт 502 доступен.
У каждого сигнала есть адрес, тип, направление и владелец. Это помогает отличить проблему связи от конфликта writers.
Проверка шла по одному сигналу: PLC-бит, OPC-тег, качество Good, отображение на HMI. Так интерфейс не маскирует проблему связи.
Когда обмен стал стабильным, собрал операторский экран в Perspective. Здесь есть режимы, команды, текущий уровень, состояния оборудования, аварии и тренд. Экран читает состояние из PLC, а не хранит его локально.

На одном экране собраны режимы, команды, уровень, фактические состояния и аварии. HMI отображает данные PLC, а не локальное предположение о состоянии.
15-минутный тренд показывает, что случилось с уровнем после команды. Для realtime-окна включён polling.
Проверил Auto-fill, ручные команды, high-high, low-low и E-stop. Важен был не только экран, а весь путь сигнала.
Что показал этот проект:

OpenPLC, Ignition Perspective и SQLite: порядок в событиях, KPI и причинах простоев.

OpenPLC и Ignition: ladder-логика, Structured Text state machine, обратная связь датчиков и проверяемые циклы.

Enterprise-мониторинг для АЭС: состояния системы, инженерные ограничения и 3D-логика хранилищ.