Tank Level Control

Собрать управление уровнем от PLC до HMI

Этот кейс не про отдельный экран. Я собирал понятную цепочку управления уровнем: условия в ladder-логике, обмен по Modbus TCP и состояние, которое оператор видит в Ignition.

Сначала настроил режимы и interlocks в OpenPLC. Затем связал Runtime с Ignition, проверил адреса и качество тегов. Только после этого добавил HMI в Perspective.

Цель была практической: видеть путь команды от оператора до процесса и обратно. Это учебный прототип, не промышленная и не safety-certified система.

PLC → HMI

режимы, interlocks и Modbus TCP
OpenPLC
Ignition
Tank Level Control Summary
OpenPLC и ladder

Режимы, пороги и interlocks

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

Tank Level Control Overview
Режимы управления

Сначала заданы два режима. В Auto PLC держит уровень сам. В Manual оператор отправляет запрос, но финальная команда всё равно проходит через ladder-логику.

Рабочий диапазон

Сценарий простой: насос включается на 35% и отключается на 70%. Так видно базовое удержание уровня без PID-регулятора.

Interlocks

High-high блокирует насос. Low-low закрывает клапан. E-stop снимает обе команды. Эти ограничения действуют в любом режиме.

Tank Level Control Step
Modbus и Ignition

Проверить цепочку сигналов

После логики подключил OpenPLC Runtime к Ignition по Modbus TCP. Для каждого сигнала зафиксировал адрес, тип и направление. Затем проверял цепочку по шагам: PLC-бит, OPC-тег, качество Good и только потом отображение на HMI.

Tank Level Control Overview
OpenPLC Runtime

Runtime открывает PLC-память для Ignition. После загрузки логики проверил, что Modbus активен и порт 502 доступен.

Карта тегов

У каждого сигнала есть адрес, тип, направление и владелец. Это помогает отличить проблему связи от конфликта writers.

Проверка цепочки

Проверка шла по одному сигналу: PLC-бит, OPC-тег, качество Good, отображение на HMI. Так интерфейс не маскирует проблему связи.

Tank Level Control Step
Ignition Perspective

Показать состояние в контексте процесса

Когда обмен стал стабильным, собрал операторский экран в Perspective. Здесь есть режимы, команды, текущий уровень, состояния оборудования, аварии и тренд. Экран читает состояние из PLC, а не хранит его локально.

Tank Level Control Overview
Операторский экран

На одном экране собраны режимы, команды, уровень, фактические состояния и аварии. HMI отображает данные PLC, а не локальное предположение о состоянии.

Тренд уровня

15-минутный тренд показывает, что случилось с уровнем после команды. Для realtime-окна включён polling.

Проверка сценариев

Проверил Auto-fill, ручные команды, high-high, low-low и E-stop. Важен был не только экран, а весь путь сигнала.

Что показал этот проект:

  1. Как ladder-логика, Modbus и HMI работают как одна цепочка
  2. Как проверять процесс в Ignition, а не отдельные теги и рунги
  3. Повторяемую основу для следующих controls-проектов
Tank Level Control Step

Другие проекты

Part Production Cell — MES & OEE Project

Part Production Cell — MES & OEE

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

Смотреть кейс Arrow
Conveyor Sorting Project

Conveyor Sorting

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

Смотреть кейс Arrow
Monitoring — UPL Project

Monitoring — UPL

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

Смотреть Arrow