Обзор
Industrial HMI Логика управления Interaction design B2B / энергетика

Промышленный ИБП 100 кВт · нефтегазовая отрасль

HMI для промышленного источника
бесперебойного питания

Компания впервые разрабатывала собственный промышленный ИБП — для резервного питания систем автоматики газоперекачивающих агрегатов и компрессорных станций. Я отвечал за логику работы системы, алгоритмы управления и HMI-панель, через которую оператор видит состояние оборудования и управляет им.

Роль
Инженер-разработчик, проектировщик HMI
Срок
6 месяцев от старта до запуска, дизайн HMI — 2 недели
Команда
Я, ГИП, схемотехники, драйверисты, испытатели, отдел технического конструирования
Инструменты
C++, конфигуратор, ПЛК-логика, собственная HMI-панель 1366×768, Figma
6
режимов работы описаны как единая модель состояний
4
системы для разных заказчиков прошли испытания, одна запущена и работает на КС Чикшинская
16
экранов HMI и 11 диалоговых окон спроектированы с нуля

Задача и ограничения

Новое оборудование, которое меняется
прямо во время разработки

Раньше ИБП закупали у сторонних производителей. Компания решила сделать свой — и сразу под реальные объекты заказчиков.

Задача

Спроектировать логику работы ИБП и HMI-интерфейс панели: режимы и переходы между ними, алгоритмы автоматического и ручного управления, обработку аварий, информационную архитектуру и экраны оператора.

Ограничения

Проектирование началось в условиях неопределённости. На старте были только технические схемы, общий список сигналов, базовое описание принципа работы и аппаратные ограничения.

01

Не было основы. Ни архитектуры управления, ни окончательной логики работы, ни структуры HMI, ни примеров готовых экранов, ни стабильной аппаратной конфигурации — всё это предстояло создать.

02

Система меняется на ходу. Оборудование создавалось параллельно с программным обеспечением: схемы, сигналы и даже принципы работы отдельных модулей неоднократно менялись уже во время разработки. Решения нужно было принимать быстро и сразу встраивать изменения в логику и экраны, не останавливая работу.

03

Цена ошибки высокая. Неверная команда оператора — это отключение питания автоматики на объекте. Интерфейс обязан предотвращать опасные действия.

Моя роль

Между инженерной логикой и оператором

Я работал в отделе разработки проектов и один вёл всё направление ИБП: от программной логики до интерфейса. Параллельно создавалось четыре проекта под разные требования заказчиков, поэтому я взял в подчинение двух junior-разработчиков: обучал их, принимал решения в спорных моментах и следил за ходом их проектов. Логику и HMI этой системы я делал сам.

Со всеми смежными отделами — схемотехникой, драйверистами, испытателями, отделом технического конструирования и ГИП — взаимодействовал самостоятельно. Периодически как представитель отдела разработки участвовал в совещаниях с генеральным директором и руководителями других отделов: презентовал решения и участвовал в обсуждениях.

  • Логика и алгоритмы. Режимы, переходы, блокировки, аварийные сценарии — вместе с главным инженером проекта.
  • Оборудование. Внутренняя логика и работа плат инвертора и байпаса — со схемотехниками; таблицы сигналов и состав модулей — с отделом технического конструирования; драйверы связи с инвертором и сторонними устройствами — с драйверистами.
  • HMI. Информационная архитектура, навигация, главный экран, состояния элементов и обратная связь.
  • Испытания. Все внутренние проверки вместе с испытателями и стендовые испытания с заказчиком.

Рабочий процесс

Сначала понять систему, потом рисовать экраны

Вместо классических пользовательских исследований — глубокий разбор предметной области: как устроено оборудование, какие есть состояния и что в каждом из них может и не может делать человек.

  1. 01

    Декомпозиция системы

    Разложил ИБП на функциональные узлы и сигналы.

  2. 02

    Модель состояний

    Описал режимы, допустимые переходы и условия.

  3. 03

    Алгоритмы

    Блок-схемы автоматического и ручного управления.

  4. 04

    Аварии и уставки

    Определил возможные аварии и уставки, составил таблицы сигнализации.

  5. 05

    Архитектура HMI

    Приоритеты информации и уровни экранов.

  6. 06

    Экраны и состояния

    Мнемосхема, индикация, блокировки, подтверждения.

  7. 07

    Испытания

    Внутренние проверки и стендовые испытания с заказчиком.

На практике шаги шли не строго по порядку. После испытаний менялись схемы, платы и сигналы — я возвращался к модели состояний и алгоритмам, дорабатывал проект и экраны.

Система ИБП

Из чего состоит система

Прежде чем проектировать интерфейс, нужно было понять, какие узлы есть в ИБП, какие данные от них приходят и какие состояния критичны. ИБП собран из девяти шкафов, а его узлы делятся на три группы: питание — вводы, выпрямители, инверторы, электронный и ремонтный байпасы; накопление — аккумуляторные батареи, их заряд, разряд и время автономной работы; окружение — нагрузка, климат и вентиляция шкафов.

Для каждого узла я определил, какие данные он даёт, какое состояние нормальное, какие бывают переходные и аварийные, какие действия оператору доступны и что для них нужно. Это напрямую повлияло на структуру HMI.

ремонтный байпас 02-QS2 ввод 1 → байпас шина 110 В Ввод 1ШЛ6 · байпас Электронныйбайпас Ввод 2ШЛ5 · ИБП Выпрямителишкафы 3–5 Инверторы6 модулей Платабайпасашкаф 7 Нагрузка4 потребителя АКБ 1–3QF71–QF73 ЗВУ 1, 3заряд АКБ Климатдатчики, вентиляторы
Питание Накопление Окружение Основной путь: ввод 2 → инверторы Байпас от ввода 1 Постоянный ток 110 В Ремонтный байпас

Режимы и переходы

Шесть режимов — одна модель состояний

Ключевое решение: описать поведение ИБП не набором сигналов, а конечным набором режимов с явными условиями перехода. Эта модель стала основой и для алгоритмов, и для интерфейса.

Работа

Нормальный режим: нагрузка питается через инвертор.

АКБ

Пропало входное питание — нагрузка работает от батарей.

Ремонтный байпас

Обслуживание: нагрузка питается напрямую, минуя ИБП.

Параллельная работа

Совместная работа с ИБП 2 на общую нагрузку.

Аварийный останов

Критическая авария — система безопасно останавливается.

Отключён

Система выключена, выходного питания нет.

Как ИБП переходит между режимами

Всего в ИБП 17 переходов, и у каждого есть конкретное условие. Других путей нет: например, из аварийного останова ИБП возвращается в работу только через режим «Отключён». Ниже — по одному переходу в каждый режим, остальные раскрываются по кнопке.

  • ОтключёнРабота

    Алгоритм автоматического пуска дошёл до конца: инвертор запущен, нагрузка переведена на него.

  • РаботаАКБ

    На вводе 2 пропало нормальное напряжение — инвертор без паузы переходит на питание от АКБ.

  • РаботаАКБРемонтный байпас

    Алгоритм перевода в ремонт завершён — нагрузка питается напрямую, ИБП можно обслуживать.

  • РаботаПараллельная работа

    На обоих ИБП включены автоматы питания от параллельного ИБП.

  • Любой рабочий режимАварийный останов

    Сработал алгоритм аварийного останова — это возможно из любого режима, где ИБП питает нагрузку.

01

У переходов есть приоритет. Если условия нескольких переходов выполнились одновременно, срабатывает тот, что выше в таблице. Аварийный останов стоит первым — его не перебьёт ничто.

02

Из аварии — только через «Отключён». Поэтому в аварии экран управления не предлагает «вернуть работу», а показывает причину и шаги.

03

Каждый переход — понятный сигнал. Пропало напряжение, включён автомат, завершён алгоритм. Эти же формулировки оператор видит в журнале и строке статуса.

Алгоритмы

Алгоритмы как часть проектирования поведения

Для каждого сценария — запуск, переход на АКБ, байпас, авария — я описал последовательность шагов, условия и блокировки. Фактически это проектирование взаимодействия на уровне системы: что происходит, когда оператор нажимает кнопку, и что — когда он ничего не делает.

Пример: запуск ИБП в режим «Работа»

Так выглядит один алгоритм, если перевести его с языка документации на обычный. Семь шагов складываются в четыре этапа. На схемах видно, откуда в каждый момент питается нагрузка: сначала от сети через байпас, потом — через инвертор. Каждый шаг ждёт своего условия, и пока оно не выполнено, алгоритм дальше не идёт.

  1. Этап 1 · шаги 0–2

    Проверки

    Нагрузка без питания

    Ничего не включается, пока контроллер не убедится, что пуск безопасен.

    Шаги и условия перехода

    • 0Автоматический режим, ремонтный байпас заблокирован, преобразователи отключены
    • 1Панель оператора включена
    • 2Оба ввода включены, напряжение в норме
  2. Этап 2 · шаги 3–4

    Нагрузка на байпас

    Питание через байпас

    Сначала нагрузку питают напрямую от сети, пока инвертор ещё не готов.

    Шаги и условия перехода

    • 3Приоритетный вход 2 — это ввод 1 от сети
    • 4Режим «приоритетный, с возвратом», выход байпаса включён
  3. Этап 3 · шаг 5

    Запуск инвертора

    Питание через байпас

    Инвертор запускается, но нагрузку пока не берёт: 30 секунд он синхронизируется с сетью.

    Шаги и условия перехода

    • 5Инвертор запущен и проработал 30 секунд
  4. Этап 4 · шаг 6

    Нагрузка на инвертор

    Питание через инвертор

    Плата байпаса переключает нагрузку на преобразователи, байпас остаётся в резерве.

    Шаги и условия перехода

    • 6Приоритетный вход 1 — это ввод 2 через выпрямители и инвертор
Шаг 7 · пуск завершён, ИБП в режимеРабота

Панель ведёт по шагам

Панель показывает, какие условия система уже проверила и какой автомат включить следующим, вместе с номером шкафа. Каждый включённый автомат отмечается, как только контроллер получает сигнал. Когда все условия выполнены, ИБП запускается сам — порядок шагов соблюдается без отдельной команды.

Результат виден на мнемосхеме

Каждый шаг алгоритма сразу отражается на главном экране: включается байпас, запускается инвертор, подсвечиваются линии под напряжением, а стрелки показывают, откуда сейчас питается нагрузка. Оператор видит запуск вживую, а не ждёт итогового сообщения.

Защиты системы

Защиты системы

Отдельная часть документации описывает, какие защиты предусмотрены в ИБП. Каждая защита описана в таблице: текст сообщения, условие, задержка, когда сигнализация взводится и сбрасывается, сигнал-источник. Защиты разделены по последствиям: что-то только предупреждает оператора, что-то требует его вмешательства, а что-то останавливает ИБП.

Предупреждение
34 сообщения

Например, повышенная температура АКБ или напряжение на вводе не в норме. ИБП работает дальше, оператор видит жёлтую подсветку и запись в журнале.

Тревога
25 сообщений

Например, аварийно высокая температура или отключение автомата группы АКБ. ИБП не останавливается, но оператор должен разобраться и квитировать аварию.

Аварийный останов
1 защита

Перегрев платы байпаса выше 100 °C. Это единственное событие, после которого ИБП останавливается сам: защита формирует сигнал «Сработала защита, вызывающая АО», и алгоритм переводит систему в аварийный останов.

Один датчик — несколько порогов

Для одного и того же датчика задаётся несколько порогов. Оператор узнаёт о проблеме заранее, а не в момент, когда что-то уже отключилось.

Плата байпасатемпература, шкаф 7
t > 80 °C · повышенная→t > 90 °C · высокая→t > 100 °C · аварийный останов
АКБтемпература, шкаф 10
t > 25 °C · повышенная→t > 30 °C · высокая→t > 60 °C · тревога
01

Текст из таблицы — готовое сообщение на экране. Он без правок выводится в журнал и строку статуса, поэтому из него сразу понятно, что случилось и где: «ИБП1: Авар.-высок. температура АКБ (Шкаф 10)».

02

Задержка отсекает ложные срабатывания. Тревога по температуре шкафа поднимается, только если перегрев держится 2 секунды. Короткий скачок показаний датчика не отвлекает оператора.

03

Сигнализация привязана к работе ИБП. Она взводится при включении и сбрасывается при выключении — пока ИБП отключён, журнал не засоряется сообщениями о его же остановленном оборудовании.

Главный экран

Всё, что выше, — на одном экране

Главный экран — мнемосхема. За секунду она отвечает на три вопроса: откуда идёт питание, какой режим активен и есть ли проблема. Цвет и положение элементов повторяют физическую схему, поэтому оператор узнаёт её сразу.

Главный экран: режим «Работа»
1 2 3 4 5 6 7 8
  1. Режим ИБП — первое, что читается. Цвет фона повторяет тон режима.
  2. Строка статуса — одна на всю панель: нет аварий, есть неквитированная авария или нет связи.
  3. Связь с модулями — 7/7. Если ответили не все, индикатор становится жёлтым.
  4. Подчёркнутое открывает экран. Ввод, инвертор, ЗВУ, АКБ ведут на свою страницу в «Модулях».
  5. Плата байпаса — устанавливаем приоритетный ввод и видим, куда сейчас идёт нагрузка.
  6. Ремонтный байпас заблокирован, и это должно быть хорошо видно.
  7. Холодный старт — возможность запустить ИБП от батарей при нужных условиях.
  8. Время работы от АКБ — сколько ИБП проработает под нагрузкой.

Больше тысячи сигналов за одним экраном

Режимы, алгоритмы и защиты из инженерной части — это больше тысячи сигналов. Оператору они не нужны по отдельности: ему нужно понять, что происходит, насколько это опасно и что делать. Поэтому сигналы собраны в состояния узлов, состояния узлов — в режим системы, а всё вместе — в главный экран.

378

Аналоговых параметров

Напряжения и токи по фазам, температуры, уставки.

951

Дискретный сигнал

Положения автоматов, состояния модулей, команды, сигнализации.

1

Главный экран

На котором оператор видит режим, путь питания и что требует внимания.

Пример: пропали оба ввода

ИБП перешёл на батареи. Вот что увидит оператор в этот момент.

Главный экран: работа от АКБ
1 2 3 4 5 6 7 8
  1. Режим «Работа от АКБ» — оба ввода без питания, система продолжает работу.
  2. Строка статуса — самая свежая неквитированная сигнализация и её время.
  3. Вводы «Нет напряжения» — напряжение на всех трёх фазах обоих вводов ниже порога.
  4. Инвертор «В работе» и путь под напряжением через него — инвертор запущен и продолжает преобразовывать напряжение.
  5. Напряжение шины постоянного тока — показывается прямо на линии.
  6. Ключи QF71–QF73 и «Разряд» на АКБ — положения автоматов групп и направление тока батареи.
  7. ≈ 38 мин — сколько ИБП сможет питать нагрузку, рассчитывается из заряда и тока батареи.
  8. Активные сигнализации — три предупредительных сигнализации, с временем и квитированием.

Один экран — все режимы

Строка режима и статуса меняется вместе с системой. Ниже — три основных состояния, остальные раскрываются по кнопке.

  • Работа. Неквитированных аварий нет, предупреждения квитированы.

    Режим «Работа»
  • Работа от АКБ. Жёлтый тон: ничего не сломано, но время ограничено.

    Режим «Работа от АКБ»
  • Аварийный останов. Красная строка с причиной и кнопкой «Квитировать».

    Аварийный останов

Архитектура HMI

Разделы панели

В панели пять разделов: Главная, Модули, Климат, Журнал и Управление. В шапке всегда видны основное меню, статус системы, пользователь и связь с модулями. Строка статуса закреплена вместе с шапкой, поэтому последняя неквитированная авария видна на любом экране.

Главная
Вся система на мнемосхеме: режим, путь питания, нагрузка, АКБ и активные сигнализации.

Каждый элемент на схеме — интерактивный

Нажатие на любой элемент на Главной сразу открывает его экран с параметрами. Например, «Инвертор» ведёт в «Модули» на мастер-инвертор, без поиска по дереву.

Главная: подпись «Инвертор» — ссылка
Главная. Подпись «Инвертор» подчёркнута — значит, она открывает экран.
Модули: инвертор 1, мастер
Модули. Открыт нужный узел, в дереве слева он выделен.

Модули

Слева — дерево узлов системы в порядке установки шкафов, справа — параметры узла. У однотипных узлов одинаковый шаблон, чтобы оператор быстрее считывал состояние системы. То, что нужно редко, убрано в «Дополнительные параметры».

  • Ввод 1. Параметры по фазам, межфазное напряжение и сеть — одной таблицей.

    Ввод 1

Безопасность действий

Защита от ошибочных действий

Ошибка оператора может оставить нагрузку без питания. Поэтому интерфейс не даёт выполнить команду, если для неё нет условий, а перед критическими действиями показывает, что произойдёт. Если что-то пошло не так — команда отклонена, авария или пропала связь, — интерфейс говорит об этом прямо.

Управление глазами оператора
Недоступное не скрываем. Кнопка всегда называет действие. Если выполнить его сейчас нельзя, кнопка неактивна, а рядом сказано, что нужно или кто это может сделать: «Меняет супервизор», «Есть напряжение на вводе».

Состояния и обратная связь

Единый язык состояний

Цвет на панели везде значит одно и то же: в шапке, на карточке шкафа, в журнале и в списке сигнализаций. Палитра взята из соглашений, привычных для промышленной автоматики, поэтому её не нужно заучивать. Цвет всегда дублируется словом — «Норма», «Предупреждение», «Авария».

Зелёный

Норма. Узел работает, значения в пределах.

Жёлтый

Предупреждение. Значение выше уставки, ИБП продолжает работу.

Красный

Авария. Индикатор режима, строка под шапкой, счётчик журнала.

Синий

Действие. Основная кнопка и выбранный вариант в переключателе. Навигация — в чёрных тонах.

Серый

Неактивно. Узел выключен или кнопка неактивна.

Исключение — мнемосхема. На ней цвета как в электрике: красный ключ замкнут, зелёный разомкнут, бирюзовая линия под напряжением, серая — без напряжения. Бирюзовый намеренно отличается от синего цвета действий. Так электрик привык читать схему. Чтобы не путать, под схемой есть легенда, а об аварии говорят строка под шапкой и красная рамка аварийного узла, а не цвет линий.

Журнал сигнализаций
Журнал сигнализаций. Класс, состояние и квитирование — в отдельных столбцах. Неквитированные строки подсвечены цветом класса, в них кнопка «Квитировать».

Экраны панели

Все экраны

Панель 1366×768 стоит в двери шкафа управления. Здесь все 50 экранов и состояний, по разделам: от штатной работы до аварии, ручного режима и входа в систему.

Главный экран панели: штатная работа

Кликабельный прототип панели: экраны, команды, окна подтверждения. Режимы оборудования (авария, работа от АКБ, байпас) переключаются в полноэкранной версии.

  • Главная · работа
    Главная · работа
  • Главная · работа от АКБ
    Главная · работа от АКБ
  • Главная · параллельная работа
    Главная · параллельная работа
  • Главная · приоритет на вводе 1, нагрузка через байпас
    Главная · приоритет на вводе 1, нагрузка через байпас
  • Главная · ремонтный байпас
    Главная · ремонтный байпас
  • Главная · аварийный останов
    Главная · аварийный останов
  • Главная · аварийный останов, квитировано
    Главная · аварийный останов, квитировано
  • Главная · ИБП отключён
    Главная · ИБП отключён
  • Главная · нет напряжения на вводах, доступен холодный старт
    Главная · нет напряжения на вводах, доступен холодный старт
  • Главная · модуль не ответил, значения прочерками
    Главная · модуль не ответил, значения прочерками
1 / 10

Испытания и запуск

Проверено на реальном оборудовании

Сначала логику и интерфейс проверили у себя, затем на стенде вместе с заказчиком. Прогнали:

  • переходы между режимами;
  • аварийные сценарии и срабатывание защит: аварии имитировали сигналом, без реального перегрева платы;
  • потерю связи с модулями и контроллером;
  • отклик интерфейса: легко ли управлять системой и быстро считывать состояния.
6 мес.
от старта до запуска
4
системы прошли испытания и уехали на объекты
1
в эксплуатации на КС Чикшинская, три ждут ввода
Шкафы УБП 600 с сенсорной панелью в двери
Шкафы УБП 600, панель в двери шкафа инвертора

Итоги

Что показывает этот кейс

  • Системное мышление Разобрал ИБП до уровня режимов, переходов и защит и собрал из этого логику, по которой работает панель.
  • Проектирование поведения Спроектировал не только экраны, но и то, как система ведёт себя между ними: подтверждения, блокировки, реакция на потерю связи.
  • Предотвращение ошибок Блокировки и подтверждения там, где ошибка оператора отключает питание нагрузки.
  • Работа в неопределённости Строил логику и HMI, пока оборудование, схемы и сигналы ещё менялись, и быстро встраивал изменения в систему.