Централизация упрощает координацию и аналитику, а децентрализация сохраняет локальные функции при отказе связи или верхнего уровня. Для автономного объекта выбор делают не по названию технологии, а по последствиям каждого возможного отказа.
Три варианта архитектуры
| Архитектура | Где выполняется логика | Сильная сторона | Основной риск |
|---|---|---|---|
| Централизованная | На одном центральном контроллере или сервере | Единая точка координации и изменения алгоритмов | Отказ центра может остановить несколько систем |
| Децентрализованная | В независимых контроллерах зон и установок | Локальная живучесть и ограниченная зона отказа | Сложнее согласовывать общие режимы |
| Гибридная | Базовые функции локально, координация на верхнем уровне | Совмещает локальную устойчивость и общую оптимизацию | Требует ясного распределения ответственности |
Что оставляют на локальном уровне
Локальный контроллер должен выполнять функции, задержка или потеря которых создаёт риск либо сразу ухудшает эксплуатацию. В зависимости от проекта это могут быть:
- защитные и блокировочные алгоритмы;
- поддержание температуры отдельной зоны;
- управление освещением и исполнительными устройствами;
- реакция на протечку;
- безопасное состояние при потере связи.
Состав функций фиксируют в проекте. Само наличие локального контроллера ещё не гарантирует автономность сценария.
Что передают центральному уровню
Верхний уровень удобен для координации зон, журналирования, интерфейса оператора, расписаний и энергетической оптимизации. Он видит объект целиком и может выбирать согласованный режим, не подменяя встроенные защиты оборудования.
Если центральный уровень недоступен, локальные контуры переходят в заранее определённое состояние и продолжают разрешённые функции.
Как проверить проект
Архитектуру проверяют сценариями отказа:
- отключают внешнюю сеть и интернет;
- разрывают связь между верхним и локальным уровнями;
- перезапускают центральный узел;
- проверяют сохранение локальных уставок и защит;
- подтверждают корректное восстановление обмена без ложных команд.
Результат проверки должен быть записан в протокол, а не оставаться предположением разработчика.
