
Мониторинг, диагностика и облачный сайт
В первой части (https://habr.com/ru/articles/1059594/) я рассказал, как Wiren Board заменил дефицитную плату защиты и управления компрессорами в чиллере Carrier 30HXA. На тот момент основной задачей было сохранить штатный центральный контроллер и интерфейс оператора, но заменить для начала одну из специализированных плат CPM (CCP) доступным промышленным контроллером.
После запуска эмулятора стало понятно, что одной замены платы теперь недостаточно. Чиллер снова работает и для более продвинутой эксплуатации нужны ответы на практические вопросы:
что происходило с машиной несколько часов назад;
почему компрессор не получил разрешение на запуск;
какая авария появилась первой;
как менялись давления, температуры, токи и положение регулирующих клапанов;
можно ли увидеть состояние нескольких чиллеров на одном сайте;
что останется от диагностики, если пропадёт интернет.
В результате рядом с эмулятором появились ещё два локальных приложения и облачный сайт. В этой части я опишу именно их функции и общую архитектуру.
Почему система разделена на несколько приложений
Первоначально было заманчиво собрать всё в одном процессе: эмуляцию платы, опрос центрального контроллера, графики, диагностику и отправку данных на сервер. Для промышленного оборудования это оказалось плохой идеей, так как для нормальной работы оборудования задержки ответа от эмулятора более чем на 2мкс оказались критическими.
Эта часть должна быть как можно меньше и предсказуемее. Ошибка в построении графика или недоступность облачного сервера не должны влиять на управление компрессором. Поэтому функции разделены на четыре уровня.
CPM Emulator — Заменяет штатные платы компрессоров, обрабатывает защиты и управляет выходами
Navigator Monitor — Пассивно читает центральный контроллер, сохраняет телеметрию, аварии и тренды
Edge Diagnostics — Анализирует накопленные данные и формирует инженерные предупреждения
Облачный сайт — Показывает несколько объектов, историю, аварии и архивы
CPM Emulator: локальное управление и защиты
Эмулятор постепенно вырос из программы для одной платы в приложение, которое может заменить две платы и обслуживать до четырёх компрессоров: A1, A2, B1 и B2. Каждый канал включается в конфигурации отдельно, поэтому одна и та же версия подходит для машин с двумя, тремя или четырьмя компрессорами.
Локальная панель эмулятора
В оперативной памяти хранится до 12 часов трендов. На графике отображается часовое окно, которое можно двигать влево и вправо.
Для сложных случаев предусмотрены три уровня журналирования:
недельный кольцевой журнал событий;
полный дамп, включаемый оператором на время эксперимента;
автоматический предаварийный «чёрный ящик» с историей до события и продолжением записи после него.
Navigator Monitor: телеметрия всего чиллера
Приложение работает в пассивном режиме: читает данные центрального контроллера и ничего не записывает обратно. Уставки не изменяются, аварии не сбрасываются, тестовые режимы не включаются.
Монитор собирает данные по следующим группам:
температуры входящей и выходящей воды;
текущая уставка и ограничение мощности;
состояние протока и общий режим машины;
давления и температуры обоих холодильных контуров;
перегрев, переохлаждение и температуры нагнетания;
давление масла, перепад фильтра, насосы, нагреватели и соленоиды;
состояние и нагрузка каждого разрешённого компрессора;
положение основных регулирующих клапанов;
состояние вентиляторов воздушного конденсатора;
текущие штатные аварии;
наработка, количество пусков и редко меняющиеся параметры конфигурации.
Edge Diagnostics: предупреждение до штатной аварии
Штатный контроллер хорошо защищает оборудование, но многие проблемы развиваются постепенно. Например, температурный напор конденсатора может несколько дней расти из‑за загрязнения теплообменника, а перепад масляного фильтра — приближаться к нежелательному уровню без немедленной остановки машины.
Для таких случаев сделана отдельная служба Edge Diagnostics. Она не опрашивает промышленную шину и не управляет оборудованием. Источниками служат база Navigator Monitor, локальный API эмулятора.
Раз в пять минут программа анализирует окно последних 15 минут. В текущей версии проверяются:
повышенный температурный напор конденсаторов A и B;
перегрев двигателей всех компрессоров;
недостаточный перепад давления масла;
высокий перепад масляного фильтра;
длительное нахождение регулирующего клапана около ограничения при отклонении перегрева;
наличие и регистрация мобильного модема;
уровень сигнала и реально выбранный внешний канал;
свободное место на диске;
состояние очередей передачи данных.
У каждого правила есть минимальное число достоверных отсчётов. Если данных недостаточно, вывод не делается. Это важнее, чем попытка обязательно показать зелёный или красный индикатор.
Заключения имеют жизненный цикл: появление, изменение уровня и закрытие после нормализации. В активной карточке видны текущее значение, оценка за окно и порог срабатывания. Кнопка «Инфо» показывает список действующих проверок и порогов прямо из конфигурации.
Передача данных в облако
Navigator Monitor передаёт три независимых типа данных:
Периодическую телеметрию — обычно один раз в пять минут.
Появление и отмену аварии — сразу после записи локального события.
Суточный ZIP‑архив — после его формирования.
Аварии обслуживаются отдельно от обычной телеметрии и больших архивов. Поэтому загрузка суточного ZIP не блокирует срочное сообщение о новой неисправности.
При появлении аварии сервер отправляет сообщение в Telegram. В сообщении указываются:
здание или блок;
этаж;
помещение;
название оборудования;
код и описание аварии.
Что в итоге получилось
Wiren Board в этой системе выполняет уже не одну, а несколько независимых задач:
заменяет дефицитные платы компрессоров;
сохраняет штатный центральный контроллер и привычный Navigator;
добавляет локальные графики и подробные причины блокировок;
ведёт историю аварий и суточные архивы;
выполняет раннюю инженерную диагностику;
контролирует мобильную связь и собственное состояние;
переживает длительное отсутствие интернета без потери локальных функций;
передаёт данные на единый сайт нескольких объектов;
отправляет аварийные уведомления в Telegram.
При этом облачный сайт не управляет чиллером. Я намеренно оставил управление, межблокировки и защиты на объекте. Удалённая часть отвечает только за наблюдение, историю и уведомления.
Такой подход не превращает старый чиллер в современную машину конструктивно. Но эксплуатация становится заметно прозрачнее: вместо единственного кода на четырёхстрочном дисплее появляются тренды, последовательность событий, состояние отдельных компрессоров и возможность сравнить несколько объектов.
Выводы
Первая часть проекта решала задачу ремонта: заменить устаревшую специализированную плату.
Вторая решила задачу эксплуатации: сделать работу чиллера наблюдаемой и понятной.
Материал основан на собственных наблюдениях и программной интеграции законно эксплуатируемого оборудования. В статье не публикуются структура закрытого промышленного протокола, адреса, команды, форматы кадров и сведения, достаточные для воспроизведения обмена. Торговые марки принадлежат их правообладателям и используются только для идентификации оборудования. Автор не связан с производителями упомянутых устройств. Неправильное применение решений к промышленному холодильному оборудованию может привести к повреждению техники и создать угрозу безопасности.

