BACnet
BACnet (Building Automation and Control Network) — это открытый коммуникационный протокол, предназначенный для обмена данными между системами автоматизации зданий (Building Automation System, BAS). Он обеспечивает взаимодействие оборудования различных производителей, включая системы отопления, вентиляции и кондиционирования воздуха (HVAC), освещения, пожарной сигнализации, контроля доступа и управления энергопотреблением. Протокол стандартизирован как ANSI/ASHRAE Standard 135 и ISO 16484-5.
История
Разработка BACnet началась в 1987 году по инициативе Американского общества инженеров по отоплению, охлаждению и кондиционированию воздуха (ASHRAE). Основной целью было создание единого протокола, который позволил бы интегрировать оборудование разных вендоров в единую систему управления зданием без необходимости использования проприетарных шлюзов. До появления BACnet производители систем автоматизации использовали закрытые протоколы, что затрудняло модернизацию и расширение систем.
Первая версия стандарта (ANSI/ASHRAE 135-1995) была опубликована в 1995 году. Она описывала базовые функции для управления HVAC, включая передачу данных о температуре, давлении, состоянии клапанов и приводов. В последующие годы стандарт неоднократно обновлялся: в 2001 году была добавлена поддержка веб-сервисов (BACnet/WS), в 2004 году — расширенные возможности для систем безопасности, в 2012 году — поддержка IPv6 и улучшенная безопасность (BACnet Secure Connect). В 2020 году вышла версия 135-2020, которая включила новые объекты для систем освещения и электропитания.
В России BACnet начал применяться с начала 2000-х годов, преимущественно в крупных коммерческих и административных зданиях. Стандарт не является обязательным к применению, но широко используется при проектировании систем «умного дома» и автоматизации промышленных объектов.
Архитектура и модель данных
BACnet основан на клиент-серверной архитектуре, где устройства могут выступать как в роли клиентов (инициирующих запросы), так и в роли серверов (предоставляющих данные). Модель данных протокола строится на трёх ключевых понятиях: объекты, свойства и службы.
Объекты
Объекты представляют собой абстрактные представления физических или логических элементов системы. Каждый объект имеет уникальный идентификатор (Object Identifier) и набор свойств. Стандарт определяет более 60 типов объектов, среди которых:
- Analog Input/Output/Value — аналоговые входы, выходы и значения (например, температура, давление, уставки).
- Binary Input/Output/Value — дискретные входы, выходы и значения (например, состояние контакта реле, сигнал тревоги).
- Device — объект, представляющий само устройство BACnet (контроллер, шлюз, панель управления). Содержит информацию о производителе, версии прошивки, поддерживаемых службах.
- Schedule — объект для управления временными расписаниями (например, включение отопления по часам).
- Calendar — объект для хранения календарных событий (праздничные дни, периоды).
- Trend Log — объект для ведения журнала данных (архивирование показаний датчиков).
- Notification Class — объект для настройки уведомлений о событиях (аварии, превышение порогов).
Свойства
Каждый объект обладает набором свойств, которые описывают его состояние и конфигурацию. Свойства могут быть обязательными (например, Object_Identifier, Object_Name) и опциональными (например, Units для аналоговых объектов). Примеры свойств:
- Present_Value — текущее значение объекта.
- Out_Of_Service — признак вывода объекта из эксплуатации.
- Event_State — текущее состояние события (нормальное, аварийное, предупреждение).
- Priority_Array — массив приоритетов для управления выходными значениями (позволяет задавать приоритеты команд от разных источников).
Службы
Службы (services) — это операции, которые устройства могут выполнять друг с другом. Стандарт определяет около 40 служб, разделённых на группы:
- Службы доступа к данным — ReadProperty, WriteProperty, ReadPropertyMultiple, WritePropertyMultiple. Позволяют считывать и изменять свойства объектов.
- Службы управления — DeviceCommunicationControl (управление связью), ReinitializeDevice (перезагрузка устройства), TimeSynchronization (синхронизация времени).
- Службы событий и уведомлений — SubscribeCOV (подписка на уведомления об изменении значений), AcknowledgeAlarm (квитирование тревоги), GetEventInformation (получение информации о событиях).
- Службы файлового доступа — AtomicReadFile, AtomicWriteFile (чтение/запись файлов, например, конфигураций или журналов).
Физические уровни и транспорт
BACnet не привязан к одному физическому носителю; стандарт поддерживает несколько вариантов передачи данных:
- BACnet/IP — передача через IP-сети (Ethernet, Wi-Fi). Наиболее распространённый вариант в современных системах. Использует UDP-порт 47808 (0xBAC0) для обмена данными.
- BACnet MS/TP (Master-Slave/Token Passing) — последовательная шина на основе RS-485. Применяется для соединения контроллеров на небольших расстояниях (до 1200 метров без повторителей). Работает на скоростях от 9,6 до 76,8 кбит/с.
- BACnet PTP (Point-to-Point) — соединение через модемы или последовательные порты (RS-232). Используется редко, в основном для удалённого доступа.
- BACnet Ethernet — прямая передача через Ethernet-кадры (IEEE 802.3). Менее распространён, чем BACnet/IP.
- BACnet Secure Connect (BACnet/SC) — расширение, добавленное в 2012 году, обеспечивающее шифрование и аутентификацию через TLS. Предназначено для использования в открытых сетях (Интернет).
Применение
BACnet применяется в системах автоматизации зданий различного масштаба:
- Коммерческие здания — офисные центры, торговые комплексы, гостиницы. Протокол используется для интеграции систем HVAC, освещения, учёта энергоресурсов.
- Промышленные объекты — заводы, склады, логистические центры. BACnet позволяет объединять климат-контроль, системы вентиляции и пожаротушения.
- Общественные здания — больницы, учебные заведения, аэропорты. В таких объектах важна надёжность и возможность централизованного мониторинга.
- Жилые комплексы — системы «умный дом», где BACnet может взаимодействовать с контроллерами отопления, кондиционерами и датчиками.
Примеры производителей оборудования, поддерживающего BACnet: Siemens, Honeywell, Johnson Controls, Schneider Electric, Delta Controls, Tridium (организация признана нежелательной в РФ? — нет, Tridium является американской компанией, не внесённой в реестр нежелательных организаций в РФ), а также российские разработчики, такие как «ОВЕН» и «Эридан».
Преимущества и недостатки
Преимущества
- Открытость — стандарт не привязан к одному производителю, что позволяет выбирать оборудование разных брендов.
- Масштабируемость — поддержка тысяч устройств в одной сети.
- Гибкость — возможность использования различных физических сред и топологий.
- Долговечность — стандарт развивается с 1995 года и обратно совместим.
Недостатки
- Сложность реализации — для настройки BACnet-сетей требуются квалифицированные специалисты.
- Ограниченная скорость — на низкоскоростных шинах (MS/TP) возможны задержки при большом количестве устройств.
- Безопасность — базовые версии BACnet (до BACnet/SC) не имеют встроенного шифрования, что делает их уязвимыми для атак в открытых сетях.
- Фрагментация — некоторые производители реализуют не все опции стандарта, что может приводить к несовместимости.
Интересные факты
- Название BACnet расшифровывается как Building Automation and Control Network, но изначально проект назывался BAC (Building Automation and Control), а буква «net» была добавлена для указания на сетевой характер протокола.
- BACnet является одним из немногих протоколов автоматизации зданий, который имеет статус международного стандарта ISO.
- В 2018 году была выпущена версия BACnet/SC (Secure Connect), которая использует WebSocket и TLS, что позволяет безопасно передавать данные через Интернет.
- В России BACnet активно применяется в системах управления зданиями «Москва-Сити» и в ряде крупных торговых центров.
Критика
Основная критика BACnet связана с его сложностью и избыточностью для небольших систем. Для простых задач (например, управление одним кондиционером) протокол может быть излишне громоздким. Также отмечается, что из-за большого количества опций и необязательных функций производители часто реализуют только подмножество стандарта, что приводит к проблемам совместимости. В ответ на это ASHRAE разработала программу сертификации BACnet Testing Laboratories (BTL), которая проверяет устройства на соответствие стандарту.
Источники
- ANSI/ASHRAE Standard 135-2020 — BACnet: A Data Communication Protocol for Building Automation and Control Networks.
- ISO 16484-5:2022 — Building automation and control systems — Part 5: Data communication protocol.
- BACnet International. «BACnet: The Global Standard for Building Automation». — 2023.
- Книга: С. А. Ковалёв. «Протоколы автоматизации зданий». — М.: Энергоатомиздат, 2018.
- Официальный сайт BACnet International (bacnet.org).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →