BACnet и Modbus в одном здании: стратегия mapping через шлюз
Когда BMS работает на BACnet, а чиллер, частотные преобразователи и счётчики энергии на объекте понимают только Modbus RTU или Modbus TCP, решение -- не второй диспетчерский пункт, а задокументированный mapping через шлюз BACnet/Modbus.
Как мы планируем mapping
Аудит каждого устройства Modbus
Составляем список всех чиллеров, частотников, счётчиков и контроллеров на объекте и получаем карту регистров -- адрес, тип данных, масштабирование и function code -- из документации производителя, а не по предположениям.
Черновик списка объектов BACnet
Для каждого регистра решаем, станет ли он AI (показание) или AV/BV (управляемая точка), и согласуем конвенцию Object_Name до того, как кто-то тронет настройки шлюза.
Настройка шлюза и назначение прав записи
Программируем перевод регистров в объекты на шлюзе и фиксируем, какое одно устройство -- BMS или локальный контроллер -- владеет правом записи на каждую точку.
Пусконаладка и проверка в BMS
Перед сдачей проверяем корректность Present_Value для каждого объекта, контролируем Status_Flags при потере связи и сверяем список точек с исходной картой регистров Modbus.
Что должно быть учтено в mapping
Каждый регистр Modbus становится нативным объектом BACnet
Правильно настроенный шлюз представляет каждый holding- или input-регистр Modbus отдельным объектом BACnet -- обычно Analog Input для показаний, Analog Value или Binary Value для управляемых точек -- так что весь список точек Modbus появляется в графике BMS как обычное нативное устройство BACnet.
Карта регистров, а не догадки
У Modbus нет самоописывающейся модели объектов -- адрес регистра, тип данных и коэффициент масштабирования нужно задокументировать по мануалу устройства до создания объекта на шлюзе.
Тип объекта соответствует точке
Показания превращаются в Analog Input; управляемые уставки и точки старт/стоп -- в Analog Value или Binary Value, с теми же конвенциями Present_Value и Status_Flags, что и у нативных устройств BACnet.
Единая конвенция имён, без AI-1/BO-14
Объекты, созданные шлюзом, получают то имя, которое задаст интегратор -- без той же конвенции этаж-система-точка, что и на нативных устройствах BACnet, графика BMS становится нечитаемой.
Право записи -- у одного устройства
Заранее решаем, у кого право записи на точку -- у BMS или у локального контроллера. Priority_Array решает конфликты между клиентами BACnet, но не спасёт от конфликта между записью BACnet и Modbus в один и тот же регистр.
Проверка PICS шлюза до монтажа
PICS шлюза точно показывает, какие типы объектов и сервисы BACnet он поддерживает как сервер -- это проверяется до проектирования mapping, а не после.
Что входит в пакет mapping
Документация, которую монтажник, интегратор или служба эксплуатации могут получить и использовать дальше.
- Карта регистров Modbus для каждого исходного устройства (адрес, тип данных, масштабирование, function code)
- Целевой список объектов BACnet с согласованной конвенцией Object_Name и Description
- Таблица прав записи с указанием, какое устройство пишет в какую точку
- Запись конфигурации шлюза и сверка с PICS
- Чек-лист пусконаладки для проверки Present_Value и Status_Flags после запуска
Частые вопросы
Может ли BMS на BACnet напрямую общаться с устройствами Modbus RTU?
Нет -- BACnet и Modbus это разные протоколы с разными моделями объектов. Шлюз BACnet/Modbus стоит между ними, опрашивает устройство Modbus и представляет каждый регистр как объект BACnet, так что сама BMS никогда не говорит на Modbus.
В какой тип объекта BACnet превращать holding-регистр Modbus?
Это зависит от точки, а не от типа регистра. Показание только для чтения обычно становится Analog Input; регистр, в который должна писать BMS, становится Analog Value или Binary Value -- в зависимости от реального использования точки.
У какой стороны должно быть право записи на точку в mapping?
Право записи должно быть ровно у одного устройства -- либо у BMS через шлюз, либо у локального контроллера напрямую на устройстве Modbus. Это фиксируется по каждой точке; если пишут обе стороны в один регистр, возникают периодические и трудно диагностируемые конфликты.
Нужен ли BBMD для такой схемы со шлюзом?
Только если шлюз и сервер BMS находятся в разных IP-подсетях и широковещательным сообщениям BACnet/IP -- Who-Is/I-Am -- нужно пересекать эту границу. Шлюзу в той же подсети, что и сервер BMS, обычно BBMD не требуется.
Чем это отличается от моста OPC-UA?
Шлюз BACnet/Modbus -- это прямой, узкоспециализированный перевод между двумя полевыми протоколами. OPC-UA обычно добавляют как более широкий уровень интеграции, когда те же данные нужны третьей системе -- SCADA, MES или платформе аналитики; подробнее об этом на странице моста OPC-UA / BACnet / Modbus.
Подключаете устройства Modbus к BMS на BACnet?
Пришлите список устройств -- поможем спланировать mapping регистров в объекты до настройки шлюза.