BACnet (англ. Building Automation and Control network) — сетевой протокол, применяемый в системах автоматизации зданий и сетях управления.
BACnet-устройство — это устройство системы автоматизации (ПЛК, компьютер, датчик, исполнительный механизм), поддерживающее протокол BACnet. Система пожарной сигнализации тоже может использовать BACnet для интеграции в экосистему умного дома.
Сеть BACnet — промышленная сеть, состоящая из BACnet-устройств.
Каждое устройство в сети BACnet описывается набором стандартных объектов. Количество одинаковых объектов, составляющих устройство, не ограничено. Стандарт определяет следующие типы объектов:
- Аналоговый вход (AI)
- Аналоговый выход (AO)
- Аналоговое значение (AV)
- Двоичный вход (BI)
- Двоичный выход (BO)
- Двоичное значение (BV)
- Вход со многими состояниями (Multi-State Input)
- Выход со многими состояниями (Multi-State Output)
- Календарь (Calendar)
- Регистрация события (Event Enrollment)
- Файл (File)
- Класс уведомления (Notification Class)
- Группа (Group)
- Цикл (Loop)
- Программа (Program)
- Расписание (Schedule)
- Команда (Command)
- Устройство (Device)
- HVAC (Heating Ventilating Air-Conditioning)
В процессе развития стандарта могут появиться новые стандартные объекты.
Каждый объект в сети BACnet характеризуется набором свойств, которые описывают его поведение или управляют его работой.
Классы прикладных задач
Стандарт определяет классы прикладных задач, которые выполняют устройства:
- Тревоги и события
- Доступ к файлам
- Доступ к объектам
- Управление удалённым устройством
- Виртуальный терминал
Службы
Классы прикладных задач описываются набором служб(сервисов), которые используются для общения между устройствами.
Например, класс управления удалённым устройством включает следующие службы:
- DeviceCommunicationControl
- ConfirmedPrivateTransfer
- UnconfirmedPrivateTransfer
- ReinitializeDevice
- ConfirmedTextMessage
- UnconfirmedTextMessage
- TimeSynchronization (синхронизация времени)
- Who-Is (поиска устройства)
- I-Am (ответ устройства)
- Who-Has (поиска объекта)
- I-Have (ответ устройства, содержащего объект)
Для класса доступа к объектам заданы службы:
- CreateObject (создать объект)
- DeleteObject (удалить объект)
- ReadProperty (прочитать свойство)
- ReadPropertyConditional (прочитать свойство – по условию)
- ReadPropertyMultiple (прочитать группу свойств)
- WriteProperty (записать свойство)
- WritePropertyMultiple (записать группу свойств)
- AddListElement (внести элемент в список)
- RemoveListElement (удалить элемент из списка)
В качестве канального/физического уровней BACnet использует следующие технологии: