Pump Station Simulator

Показать путь данных от OPC UA до SQL и HMI

Этот кейс не про отдельный экран. Я собрал путь данных одного насоса: команды и feedback в OPC UA, модель процесса в Gateway, снимки в SQLite и состояние, которое оператор видит в Perspective.

Сначала задал теги и поведение насоса. Затем вынес сохранение в Named Queries и проверил, что SQL показывает тот же процесс с понятной разницей во времени. Только после этого собрал экран, где live-состояние и последняя запись базы видны рядом.

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

OPC UA → SQL → HMI

один насос · снимок каждые 5 секунд
Ignition Perspective
Pump Station Simulator Summary
OPC UA и Gateway

Дать HMI и SQL один источник данных

Начал с программируемого OPC UA-устройства. Сначала проверил endpoint, namespace и доступные nodes через browsing. Затем разделил команды, статусы, процессные значения и счётчики. Gateway Timer раз в секунду читает запросы, рассчитывает отклик насоса и пишет только фактическую обратную связь.

Pump Station Simulator Overview
Endpoint и namespace

Сначала подключился к OPC UA endpoint и проверил namespace. Это задаёт, откуда Ignition читает данные и какие node paths использует проект.

Browsing и контракт nodes

Через browsing проверил структуру Pump_01 и закрепил nodes для команд, статусов, процесса и счётчиков. StartRequest остаётся запросом, а не фактическим состоянием насоса.

Subscriptions и feedback

Подписки обновляют Running, FaultActive, скорость, давление, температуру и расход. Их рассчитывает Gateway-модель, а затем те же значения читают HMI и SQL-логгер.

Pump Station Simulator Step
SQLite и Named Queries

Сохранить процесс отдельно от экрана

После модели добавил второй Gateway Timer. Он каждые пять секунд сохраняет снимок в SQLite. Named Queries возвращают последнюю строку для SQL-панели и последние десять минут истории для таблицы.

Pump Station Simulator Overview
Что попадает в снимок

Каждая строка хранит время, Pump_01, состояние, скорость, давление, температуру и расход. Так база фиксирует не экран, а факт процесса.

Последняя SQL-запись

GetLatestPumpSnapshot отдаёт самый свежий сохранённый снимок для отдельной панели. Это не копия live-тегов, а результат записи в SQLite.

История за 10 минут

GetPumpHistoryWindow возвращает последние записи с новой строкой сверху. Во время разгона небольшая разница с live-значением ожидаема: SQL пишется раз в пять секунд.

SQLite · schema and insert
CREATE TABLE IF NOT EXISTS process_snapshot (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    captured_at TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP,
    equipment_id TEXT NOT NULL,
    running INTEGER NOT NULL,
    fault_active INTEGER NOT NULL,
    speed_actual REAL NOT NULL,
    pressure_bar REAL NOT NULL,
    temperature_c REAL NOT NULL,
    flow_m3h REAL NOT NULL
);

INSERT INTO process_snapshot (
    equipment_id,
    running,
    fault_active,
    speed_actual,
    pressure_bar,
    temperature_c,
    flow_m3h
) VALUES (
    :equipment_id,
    :running,
    :fault_active,
    :speed_actual,
    :pressure_bar,
    :temperature_c,
    :flow_m3h
);
Ignition Perspective

Проверить весь путь на одном сценарии

Когда обмен и сохранение стали стабильными, собрал операторский экран. Здесь рядом находятся команды, live OPC UA-состояние, последняя SQL-запись и история. Так можно проверить не отдельный тег или запрос, а весь путь от команды до сохранённого результата.

Pump Station Simulator Overview
Останов и охлаждение

После STOP экран показывает STOPPED: скорость, давление и расход обнуляются, температура снижается к ambient, а SQL сохраняет весь след охлаждения.

Нормальный запуск

После уставки и START насос переходит в RUNNING и разгоняется к target. В SQL видно изменение скорости, давления, температуры и расхода.

Fault и восстановление

При trip-condition модель останавливает насос и сохраняет переход к аварийному охлаждению. После охлаждения RESET разрешает новый запуск.

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

  1. Как OPC UA, Gateway, SQLite и HMI работают как одна цепочка
  2. Как проверить процесс одновременно в live-тегах и сохранённой истории
  3. Как показать полный сценарий: start, run, persist, fault, stop, reset и restart
Pump Station Simulator Step

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

Conveyor Sorting Project

Conveyor Sorting

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

Смотреть кейс Arrow
Smart Balancing — Flex4 Project

Smart Balancing — Flex4

Кросс-платформенный продукт для мониторинга оборудования, настройки, читаемых данных и tablet-флоу.

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

Monitoring — UPL

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

Смотреть Arrow