8-900-374-94-44
[email protected]
Slide Image
Меню

Bacnet ip протокол описание – Немного о BACnet / Связь железа с компьютером. / Сообщество EasyElectronics.ru

Немного о BACnet / Связь железа с компьютером. / Сообщество EasyElectronics.ru

В связи с повышенным интересом к теме умного дома хочу немного осветить тему BACnet -одного из свободных протоколов обмена. И поделиться проектом небольшого модуля на BACnet MS/TP.
UNDER CONSTRUCTION
BACnet это коммуникационный протокол, разработанный и принятый в качестве стандарта ASHRAE (В России его тоже подводят к стандарту), поддерживается всеми мажорными производителями BMS/HVAC оборудования такими как: JCI, Siemens, Honeywell, Trane, Carrier и т.п. www.bacnet.org/Gallery/index.html и он имеет все перспективы в ближайшем будущем стать основным протоколом для сферы автоматизации зданий и умных домов. В отличие от остальных широко распространенных свободных протоколов BACnet достаточно сложен и прожорлив до кода, по этой причине самостоятельное написание кода для его реализации достаточно сложно и еще BACnet это книга (которая денег стоит но можно найти в сети) и отсутствует стандартная свободная реализация протокола (есть платные стэки и чипы у Cimetrics, Polarsoft и т.п.). Но! Есть на свете Steve Karg — со своим свободным стэком BACnet и его портами на многие платформы sourceforge.net/projects/bacnet/ и этот момент добавляет оптимизма. Да еще данный протокол поддерживает несколько физических типов среды передачи данных, самые распространенные это BACnet IP и BACnet MS/TP (Master Slave Token Passing это сеть на RS-485) в качестве полевого уровня.
Когда пару лет назад я нашел этот стэк я был вне себя от счастья… но недолго, что-то ничего не собиралось… потом через год еще потыкал, но безуспешно. Данная итерация была удачной да и Steve сделал порт на STM32 правда на IAR и достаточно своеобразный, что создало определенные трудности при переносе в CoIDE т.к. очень много файлов в сорсах и не все они нужны.
Некоторое время тому назад я опубликовал проектец I/O модуля c Modbus на STM32F100C8T6 на его базе все и будет построено we.easyelectronics.ru/STM32/stm32-pervaya-osmyslennaya-konstrukciya-i-o-modul-na-modbus-modbus-chast-2.html
Поговорим немного о BACnet MS/TP- это мультимастерный протокол, в отличие от протоколов обмена типа Modbus RTU — все контроллеры на сети BACnet MS/TP в диапазоне MAC адресов 0-127 равноправны (кроме BACnet slave 128- 255 — но не о них речь) и могут напрямую P2P обмениваться сообщениями друг с другом (при наличии соответствующих сервисов). Как это происходит на BACnet MS/TP, ведь при мультимастерности неизбежны коллизии? BACnet MS/TP это решает передачей токена(метки) и только контроллер который ее имеет может в данный момент разговаривать с другими устройствами определенное количество раз, затем метка передается следующему. Плюс наличие механизма Auto Discovery который позволяет узнать какие сетевые точки храняться в устройстве (они автоматически показываются) и какие сервисы поддерживаются. Здесь подробнее написано ru.wikipedia.org/wiki/BACnet. При наличии кучи плюсов -как совместимости со многими устройствами и вендорами, удобства в работе с сетью, тем не менее BACnet MS/TP имеет два очевидных минуса. Первый я уже освещал — сложность реализации. Второй — относительно небольшая скорость при работе в стиле polling без механизма cov, что происходит из стиля работы — т.к. тратится время на передачу токена и каждая сетевая точка имеет много свойств которые периодически считываются.
Что делает мой проект? -это модуль ввода вывода с интерфейсом BACnet MS/TP на 4DI/4DO +хранение мак адреса и Device Instance в eeprom. AV-0 это MAC адрес, AV-1 -модификатор адреса устройства, он умнжается на 100000 и складывается с MAC см. картинку.

Так выглядит устройство в BACnet программе для настройки контроллеров (сразу скажу дать не могу), но есть много свободных или условно бесплатных программ для работы с BACnet — например BACnet Browser и на вскидку есть OPC сервер от SCADA Engine который работает в демо режиме.
Что сделал я спросите вы? Перенес порт на CoIDE попутно разобравшись в куче файлов которые нужны и не нужны данному проекту+ привязал реальные входы и выходы и если посмотрите оригинальный порт на STM32 то там всего 2BO и автомак(который струдом был прибит) + у меня на нем плохо работал автодисковери и при оптимизации -O2 ничего не работало вообще, сейчас нормально. Короче говоря это фактически законченное устройство, а это мне кажется немало.
Написал я все это т.к. ничего подобного не нашел в инете и решил заполнить пробел+ так сказать это мой посильный вклад в развитие BACnet.
Проект в CoIDE и плата приложены + у меня есть еще порт на Atmega128. Пока все.
зы Далеко не все программы работают с MS/TP напрямую — им нужен BACnet IP router

we.easyelectronics.ru

Протокол BACNet

BACnet (Building Automation and Control Networks) – это открытый сетевой протокол передачи данных, предназначенный для систем автоматизации зданий и сетей управления. Специализация протокола – инженерные системы зданий. Основная концепция BACnet – осуществление и стандартизация связи и взаимодействия различных устройств и программного обеспечения систем автоматизации от различных производителей.

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

Суть технологии BACnet и принцип ее функционирования состоит в том, что физическая форма устройств в системе автоматики не имеет никакого значения, потому что BACnet – это не что иное, как набор правил, по которым устройства системы автоматизации взаимодействуют между собой. Таким образом, есть возможность выбрать оптимальное оборудование от каждого производителя и соединить их в одну систему. Вместо привязанности к определенному бренду, появляется свобода в компоновке оборудованием, как новых систем управления, так и уже функционирующих. Новые устройства легко интегрируются с ранее установленными.

Под понятием BACnet устройство понимается устройство системы автоматизации, будь то контроллер, датчик или еще что-то, поддерживающее протокол BACnet.

Для осуществления взаимодействия между устройствами, что гарантируется технологией BACnet, необходимо, что бы все алгоритмы работы этих устройств были описаны с помощью стандартных функциональных блоков BIBB (BACnet Interoperability Building Block). Эти блоки легко взаимодействуют между собой, что упрощает работу инженеров, программистов и прочих специалистов. Все поддерживаемые блоки BIBB, свойства их взаимодействия, детальное описание типа для каждого из устройств BACnet описаны в специальном документе — PICS (Protocol Implementation Conformance Statement).

Поскольку протокол BACnet построен на объектно-ориентированном принципе, каждое устройство BACnet описывается как стандартный объект или их набор. Количество элементов в наборе не ограничено.

В стандарте определены следующие объекты и типы:

1. Аналоговый Вход (AI)
2. Аналоговый Выход (AO)
3. Аналоговое Значение (AV)
4. Двоичный Вход (BI)
5. Двоичный Выход (BO)
6. Двоичное Значение (BV)
7. Вход Со Многими Состояниями (Multi-State Input)
8. Выход Со Многими Состояниями (Multi-State Output)
9. Календарь (Calendar)
10. Регистрация события (Event-Enrollment)
11. Файл (File)

12. Класс уведомления (Notification-Class)
13. Группа (Group)
14. Цикл (Loop)
15. Программа (Program)
16. Расписание (Schedule)
17. Команда (Command)
18. Устройство (Device)
19. HVAC

Все в том же стандарте, описаны прикладные задачи, которые выполняют объекты BACnet. Среди них представлены:

1) Доступ к файлам
2) Доступ к объектам
3) Создание и обработка событий
4) Удаленное управление устройствами
5) Виртуальный терминал

Поскольку BACnet построен на модели «клиент-сервер», сообщения протокола являются по сути сервисными запросами. Поддерживаются 35 видов сообщений, которые подразделяются на 5 групп (или классов).
BACnet поддерживает 5 типов локальных сетей:
— Ethernet (IEEE 802.3/ISO 8802-3)
— ARCNET (ANSI/ATA 878.1)
— MS/TP-a
— PTP
— LonTalk

Внешний вид и интерфейс систем протоколом BACnet не описывается.
Идеальным применением для BACnet является верхний и средний уровень АСУТП, однако существуют разработки и для полевого уровня.

Tags BacNet

 

autoworks.com.ua

Устройства для работы с протоколом BACnet. Конвертеры BACnet. Шлюзы BACnet.

Данный раздел включает следующее оборудование для работы с протоколом BACnet:

Конвертеры протокола BACnet / шлюзы BACnet / адаптеры BACnet / Репиторы BACnet.

BACnet CAN

BACnet CANopen

BACnet M-Bus

BACnet Modbus

BACnet Modbus TCP

BACnet NMEA 2000

BACnet PROFIBUS

BACnet PROFINET

BACnet J1939

BACnet DeviceNet

 

Описание протокола BACnet

BACnet (англ.Building Automation and Control network)-сетевой протокол, применяемый в системах автоматизации зданий и сетях управления.

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

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

 

Концепция

 

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 использует следующие технологии:

asu-info.ru

Новый ОРС-сервер для протокола BACnet

Компания ИнСАТ представляет новый ОРС-сервер для протокола BACnet, поддерживающий наиболее распространенную редакцию протокола – BACnet IP, работающую по сетям TCP/IP (Ethernet, Wi-Fi, GPRS). Данный протокол применяется в крупных системах автоматизации зданий и сооружений (торговые и бизнес-центры, аэропорты, вокзалы и прочее). BACnet отличает высокая степень универсальности и гибкости, поскольку протокол поддерживает большое количество объектов и типов данных для опроса различных физических параметров.

BACnet MasterOPC Server реализован в виде плагина к Multi-Protocol MasterOPC Server, что позволяет предоставлять данные OPC клиентам по стандартам OPC DA, OPC HDA и  OPC UA. ОРС-сервер поддерживает групповое чтение объектов и сегментацию, что делает опрос устройств быстрым, а гибкие настройки связи позволяют адаптировать сервер под различные типы сетей.

BACnet MasterOPC Server поддерживает наиболее распространенную редакцию протокола – BACnet IP, работающую по сетям TCP/IP (Ethernet, Wi-Fi, GPRS). Он поддерживает стандарты OPC DA (передача текущих данных), OPC HDA (передача архивных данных) и современный стандарт OPC UA.

Основные характеристики BACnet OPC-сервера:

  • Поддержка наиболее распространенных объектов BACnet;
  • Поддержка сегментации и группового чтения переменных, что приводит к высокой скорости опроса;
  • Мониторинг значений переменных;
  • Гибкие настройки параметров опроса, что позволяет адаптировать работу под различные типы сетей;
  • Подключение одновременно к нескольким устройствам;
  • Работа одновременно с несколькими клиентами (как по OPC DA, так и по OPC UA).

Кроме того, чтобы сложность протокола BACnet была незаметной для пользователя, а конфигурирование OPC-сервера максимально автоматизировано, в программном продукте реализована специализированная утилита, позволяющая вести автоматический импорт устройств и тегов. Утилита позволяет получить полный набор объектов контроллера, зная только его BACnet адрес (если же адрес неизвестен, то возможно осуществить автопоиск, чтобы найти все доступные устройства в сети).

Основные характеристики утилиты импорта для BACnet OPC-сервера:

  • Поиск устройство по BACnet адресу, IP адресу или автоматический поиск всех доступных устройств;
  • Просмотр параметров найденных устройств;
  • Возможность группового выделения импортируемых тегов, возможность выбора только определенных типов переменных и объектов, что ускоряет перенос тегов;
  • Ведение подробного лога поиска устройств.
comments powered by HyperComments

cleverhouse.club

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *