BACnet
BACnet () — сетевой протокол, применяемый в системах автоматизации зданий и сетях управления.

BACnet-устройство — это устройство системы автоматизации (контроллер, датчик, исполнительный механизм), поддерживающее протокол BACnet.

Сеть BACnet — промышленная сеть, состоящая из BACnet-устройств.

Создание 
Разработка протокола BACnet началась в июне 1987. Цель разработки состояла в создании унифицированного, не зависящего от производителей оборудования, стандарта для передачи данных в системах автоматизации здания. BACnet стал в 1995 году стандартом ASHRAE/ANSI (135), а в 2003 году стандартом ISO (16484-5). Стандарт постоянно совершенствуется в различных рабочих группах.

Концепция 
BACnet гарантирует возможность взаимодействия между устройствами различных производителей, если алгоритмы этих устройств реализованы на основе стандартных функциональных блоков BIBB (BACnet Interoperability Building Block). Блоки BIBB используются для обмена данными между устройствами. Они разработаны для упрощения работы инженеров, которым достаточно написать краткие спецификации, описывающие требования к взаимодействию различных устройств, входящих в систему BACnet. Поддерживаемые блоки BIBB для каждого устройства BACnet перечислены в PICS (Protocol Implementation Conformance Statement). PICS - это документ, детально описывающий тип данного устройства 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 использует следующие технологии:
 ARCNET
 Ethernet
 BACnet/IP
 PTP (Point-To-Point) через RS-232
 MS/TP (Master-Slave/Token-Passing) через RS-485
 LonTalk

Ссылки 
 веб-сайт BACnet
 BIG-RU — Ассоциация по автоматизации зданий и системам управления инженерным оборудованием на базе протокола BACnet
 Реализация протокола BACnet с открытым исходным кодом для Linux
 Реализация протокола BACnet с открытым исходным кодом для встраиваемых систем

Сетевые протоколы
Промышленные сети
Промышленная автоматика