Промышленный ИБП 100 кВт · нефтегазовая отрасль
HMI для промышленного источника
бесперебойного питания
Компания впервые разрабатывала собственный промышленный ИБП — для резервного питания систем автоматики газоперекачивающих агрегатов и компрессорных станций. Я отвечал за логику работы системы, алгоритмы управления и HMI-панель, через которую оператор видит состояние оборудования и управляет им.
Задача и ограничения
Новое оборудование, которое меняется
прямо во время разработки
Раньше ИБП закупали у сторонних производителей. Компания решила сделать свой — и сразу под реальные объекты заказчиков.
Задача
Спроектировать логику работы ИБП и HMI-интерфейс панели: режимы и переходы между ними, алгоритмы автоматического и ручного управления, обработку аварий, информационную архитектуру и экраны оператора.
Ограничения
Проектирование началось в условиях неопределённости. На старте были только технические схемы, общий список сигналов, базовое описание принципа работы и аппаратные ограничения.
Не было основы. Ни архитектуры управления, ни окончательной логики работы, ни структуры HMI, ни примеров готовых экранов, ни стабильной аппаратной конфигурации — всё это предстояло создать.
Система меняется на ходу. Оборудование создавалось параллельно с программным обеспечением: схемы, сигналы и даже принципы работы отдельных модулей неоднократно менялись уже во время разработки. Решения нужно было принимать быстро и сразу встраивать изменения в логику и экраны, не останавливая работу.
Цена ошибки высокая. Неверная команда оператора — это отключение питания автоматики на объекте. Интерфейс обязан предотвращать опасные действия.
Моя роль
Между инженерной логикой и оператором
Я работал в отделе разработки проектов и один вёл всё направление ИБП: от программной логики до интерфейса. Параллельно создавалось четыре проекта под разные требования заказчиков, поэтому я взял в подчинение двух junior-разработчиков: обучал их, принимал решения в спорных моментах и следил за ходом их проектов. Логику и HMI этой системы я делал сам.
Со всеми смежными отделами — схемотехникой, драйверистами, испытателями, отделом технического конструирования и ГИП — взаимодействовал самостоятельно. Периодически как представитель отдела разработки участвовал в совещаниях с генеральным директором и руководителями других отделов: презентовал решения и участвовал в обсуждениях.
- Логика и алгоритмы. Режимы, переходы, блокировки, аварийные сценарии — вместе с главным инженером проекта.
- Оборудование. Внутренняя логика и работа плат инвертора и байпаса — со схемотехниками; таблицы сигналов и состав модулей — с отделом технического конструирования; драйверы связи с инвертором и сторонними устройствами — с драйверистами.
- HMI. Информационная архитектура, навигация, главный экран, состояния элементов и обратная связь.
- Испытания. Все внутренние проверки вместе с испытателями и стендовые испытания с заказчиком.
Рабочий процесс
Сначала понять систему, потом рисовать экраны
Вместо классических пользовательских исследований — глубокий разбор предметной области: как устроено оборудование, какие есть состояния и что в каждом из них может и не может делать человек.
- 01
Декомпозиция системы
Разложил ИБП на функциональные узлы и сигналы.
- 02
Модель состояний
Описал режимы, допустимые переходы и условия.
- 03
Алгоритмы
Блок-схемы автоматического и ручного управления.
- 04
Аварии и уставки
Определил возможные аварии и уставки, составил таблицы сигнализации.
- 05
Архитектура HMI
Приоритеты информации и уровни экранов.
- 06
Экраны и состояния
Мнемосхема, индикация, блокировки, подтверждения.
- 07
Испытания
Внутренние проверки и стендовые испытания с заказчиком.
На практике шаги шли не строго по порядку. После испытаний менялись схемы, платы и сигналы — я возвращался к модели состояний и алгоритмам, дорабатывал проект и экраны.
Система ИБП
Из чего состоит система
Прежде чем проектировать интерфейс, нужно было понять, какие узлы есть в ИБП, какие данные от них приходят и какие состояния критичны. ИБП собран из девяти шкафов, а его узлы делятся на три группы: питание — вводы, выпрямители, инверторы, электронный и ремонтный байпасы; накопление — аккумуляторные батареи, их заряд, разряд и время автономной работы; окружение — нагрузка, климат и вентиляция шкафов.
Для каждого узла я определил, какие данные он даёт, какое состояние нормальное, какие бывают переходные и аварийные, какие действия оператору доступны и что для них нужно. Это напрямую повлияло на структуру HMI.
Режимы и переходы
Шесть режимов — одна модель состояний
Ключевое решение: описать поведение ИБП не набором сигналов, а конечным набором режимов с явными условиями перехода. Эта модель стала основой и для алгоритмов, и для интерфейса.
Нормальный режим: нагрузка питается через инвертор.
Пропало входное питание — нагрузка работает от батарей.
Обслуживание: нагрузка питается напрямую, минуя ИБП.
Совместная работа с ИБП 2 на общую нагрузку.
Критическая авария — система безопасно останавливается.
Система выключена, выходного питания нет.
Как ИБП переходит между режимами
Всего в ИБП 17 переходов, и у каждого есть конкретное условие. Других путей нет: например, из аварийного останова ИБП возвращается в работу только через режим «Отключён». Ниже — по одному переходу в каждый режим, остальные раскрываются по кнопке.
- ОтключёнРабота
Алгоритм автоматического пуска дошёл до конца: инвертор запущен, нагрузка переведена на него.
- РаботаАКБ
На вводе 2 пропало нормальное напряжение — инвертор без паузы переходит на питание от АКБ.
- РаботаАКБРемонтный байпас
Алгоритм перевода в ремонт завершён — нагрузка питается напрямую, ИБП можно обслуживать.
- РаботаПараллельная работа
На обоих ИБП включены автоматы питания от параллельного ИБП.
- Любой рабочий режимАварийный останов
Сработал алгоритм аварийного останова — это возможно из любого режима, где ИБП питает нагрузку.
- АКБРабота
На вводе 2 снова нормальные 400 В, 50 Гц — ИБП сам возвращается с батарей на сеть.
- Ремонтный байпасРабота
Алгоритм выхода из ремонта завершён — нагрузку вернули с байпаса на инвертор.
- Параллельная работаРабота
На одном из ИБП отключили автомат питания от соседнего — параллель распалась, каждый работает сам.
- Параллельная работаАКБ
Напряжение пропало на вводах 2 обоих ИБП — оба уходят на батареи.
- ОтключёнАКБ
Холодный старт: сети нет, ИБП запускается сразу от батарей.
- Ремонтный байпасАКБ
Выходим из ремонта, а сети нет — после выхода из ремонта выполняется холодный старт.
- Параллельная работаРемонтный байпас
Перевод в ремонт из параллельной работы завершён — у этого сценария свой алгоритм.
- ОтключёнРемонтный байпас
В шкафу ввода вручную включён ремонтный байпас.
- АКБПараллельная работа
Сеть вернулась, а автоматы параллели уже включены — ИБП сразу встаёт в параллель, минуя одиночную работу.
- Ремонтный байпасПараллельная работа
Выход из ремонта в параллель завершён, и автоматы параллели на обоих ИБП включены.
- Аварийный остановОтключён
Останов отработан до конца — ИБП остаётся в безопасном «Отключён» и ждёт оператора.
- Старт контроллераОтключён
После включения контроллер на втором цикле программы всегда ставит «Отключён» — сам ИБП в работу не уходит.
У переходов есть приоритет. Если условия нескольких переходов выполнились одновременно, срабатывает тот, что выше в таблице. Аварийный останов стоит первым — его не перебьёт ничто.
Из аварии — только через «Отключён». Поэтому в аварии экран управления не предлагает «вернуть работу», а показывает причину и шаги.
Каждый переход — понятный сигнал. Пропало напряжение, включён автомат, завершён алгоритм. Эти же формулировки оператор видит в журнале и строке статуса.
Алгоритмы
Алгоритмы как часть проектирования поведения
Для каждого сценария — запуск, переход на АКБ, байпас, авария — я описал последовательность шагов, условия и блокировки. Фактически это проектирование взаимодействия на уровне системы: что происходит, когда оператор нажимает кнопку, и что — когда он ничего не делает.
Пример: запуск ИБП в режим «Работа»
Так выглядит один алгоритм, если перевести его с языка документации на обычный. Семь шагов складываются в четыре этапа. На схемах видно, откуда в каждый момент питается нагрузка: сначала от сети через байпас, потом — через инвертор. Каждый шаг ждёт своего условия, и пока оно не выполнено, алгоритм дальше не идёт.
-
Этап 1 · шаги 0–2
Проверки
Нагрузка без питания
Ничего не включается, пока контроллер не убедится, что пуск безопасен.
Шаги и условия перехода
- 0Автоматический режим, ремонтный байпас заблокирован, преобразователи отключены
- 1Панель оператора включена
- 2Оба ввода включены, напряжение в норме
-
Этап 2 · шаги 3–4
Нагрузка на байпас
Питание через байпас
Сначала нагрузку питают напрямую от сети, пока инвертор ещё не готов.
Шаги и условия перехода
- 3Приоритетный вход 2 — это ввод 1 от сети
- 4Режим «приоритетный, с возвратом», выход байпаса включён
-
Этап 3 · шаг 5
Запуск инвертора
Питание через байпас
Инвертор запускается, но нагрузку пока не берёт: 30 секунд он синхронизируется с сетью.
Шаги и условия перехода
- 5Инвертор запущен и проработал 30 секунд
-
Этап 4 · шаг 6
Нагрузка на инвертор
Питание через инвертор
Плата байпаса переключает нагрузку на преобразователи, байпас остаётся в резерве.
Шаги и условия перехода
- 6Приоритетный вход 1 — это ввод 2 через выпрямители и инвертор
Панель ведёт по шагам
Панель показывает, какие условия система уже проверила и какой автомат включить следующим, вместе с номером шкафа. Каждый включённый автомат отмечается, как только контроллер получает сигнал. Когда все условия выполнены, ИБП запускается сам — порядок шагов соблюдается без отдельной команды.
Результат виден на мнемосхеме
Каждый шаг алгоритма сразу отражается на главном экране: включается байпас, запускается инвертор, подсвечиваются линии под напряжением, а стрелки показывают, откуда сейчас питается нагрузка. Оператор видит запуск вживую, а не ждёт итогового сообщения.
Защиты системы
Защиты системы
Отдельная часть документации описывает, какие защиты предусмотрены в ИБП. Каждая защита описана в таблице: текст сообщения, условие, задержка, когда сигнализация взводится и сбрасывается, сигнал-источник. Защиты разделены по последствиям: что-то только предупреждает оператора, что-то требует его вмешательства, а что-то останавливает ИБП.
Например, повышенная температура АКБ или напряжение на вводе не в норме. ИБП работает дальше, оператор видит жёлтую подсветку и запись в журнале.
Например, аварийно высокая температура или отключение автомата группы АКБ. ИБП не останавливается, но оператор должен разобраться и квитировать аварию.
Перегрев платы байпаса выше 100 °C. Это единственное событие, после которого ИБП останавливается сам: защита формирует сигнал «Сработала защита, вызывающая АО», и алгоритм переводит систему в аварийный останов.
Один датчик — несколько порогов
Для одного и того же датчика задаётся несколько порогов. Оператор узнаёт о проблеме заранее, а не в момент, когда что-то уже отключилось.
Текст из таблицы — готовое сообщение на экране. Он без правок выводится в журнал и строку статуса, поэтому из него сразу понятно, что случилось и где: «ИБП1: Авар.-высок. температура АКБ (Шкаф 10)».
Задержка отсекает ложные срабатывания. Тревога по температуре шкафа поднимается, только если перегрев держится 2 секунды. Короткий скачок показаний датчика не отвлекает оператора.
Сигнализация привязана к работе ИБП. Она взводится при включении и сбрасывается при выключении — пока ИБП отключён, журнал не засоряется сообщениями о его же остановленном оборудовании.
Главный экран
Всё, что выше, — на одном экране
Главный экран — мнемосхема. За секунду она отвечает на три вопроса: откуда идёт питание, какой режим активен и есть ли проблема. Цвет и положение элементов повторяют физическую схему, поэтому оператор узнаёт её сразу.

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

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

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

-
Аварийный останов. Красная строка с причиной и кнопкой «Квитировать».

-
После квитирования. Строка остаётся, пока причина не устранена, но перестаёт кричать.

-
Параллельная работа. Работа вместе с ИБП 2.

-
Ремонтный байпас. Нагрузка питается в обход ИБП.

-
Отключён. ИБП отключён вручную.

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





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


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

-
Плата байпаса. Напряжение и ток, логика платы и диагностика. Изменить приоритет — ссылка в «Управление».

-
ЗВУ 1. Сеть, выход, состояние и десять выпрямителей. Нажатие на выпрямитель открывает его параметры.

-
Инвертор 2, ведомый. Тот же шаблон, что у мастера: выход, шина, IGBT, флаги состояния.

-
Ввод 2 без напряжения. Нули подсвечены красным, в дереве слева узел тоже красный.

-
Таблица пределов. Что вышло за уставку — красная плашка со значком, остальное серым. Ячейка не меняет ширину, поэтому таблица не прыгает. Уставки рядом.

-
Дополнительные параметры. Показатели качества электроэнергии нужны редко, поэтому убраны в окно.

-
Выпрямитель. Сигналы и измерения одного выпрямителя ЗВУ.

-
Нагрузка. Выход ИБП: фазы, мощности, межфазное напряжение.

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






Состояния и обратная связь
Единый язык состояний
Цвет на панели везде значит одно и то же: в шапке, на карточке шкафа, в журнале и в списке сигнализаций. Палитра взята из соглашений, привычных для промышленной автоматики, поэтому её не нужно заучивать. Цвет всегда дублируется словом — «Норма», «Предупреждение», «Авария».
Зелёный
Норма. Узел работает, значения в пределах.
Жёлтый
Предупреждение. Значение выше уставки, ИБП продолжает работу.
Красный
Авария. Индикатор режима, строка под шапкой, счётчик журнала.
Синий
Действие. Основная кнопка и выбранный вариант в переключателе. Навигация — в чёрных тонах.
Серый
Неактивно. Узел выключен или кнопка неактивна.
Исключение — мнемосхема. На ней цвета как в электрике: красный ключ замкнут, зелёный разомкнут, бирюзовая линия под напряжением, серая — без напряжения. Бирюзовый намеренно отличается от синего цвета действий. Так электрик привык читать схему. Чтобы не путать, под схемой есть легенда, а об аварии говорят строка под шапкой и красная рамка аварийного узла, а не цвет линий.



Экраны панели
Все экраны
Панель 1366×768 стоит в двери шкафа управления. Здесь все 50 экранов и состояний, по разделам: от штатной работы до аварии, ручного режима и входа в систему.
Кликабельный прототип панели: экраны, команды, окна подтверждения. Режимы оборудования (авария, работа от АКБ, байпас) переключаются в полноэкранной версии.
Испытания и запуск
Проверено на реальном оборудовании
Сначала логику и интерфейс проверили у себя, затем на стенде вместе с заказчиком. Прогнали:
- переходы между режимами;
- аварийные сценарии и срабатывание защит: аварии имитировали сигналом, без реального перегрева платы;
- потерю связи с модулями и контроллером;
- отклик интерфейса: легко ли управлять системой и быстро считывать состояния.

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






























