Алексей ПАРШИКОВ
Сергей ЗОЛОТАРЕВ, к. т. н.
BACnet:
вкратце об основных понятиях
Прежде чем перейти к рассмотрению программных продуктов для BACnet компании SCADA Engine, хотелось бы остановиться на самой платформе BACnet, стандартах, составляющих ее основу, и некоторых базовых понятиях. Это короткое вступление полезно для понимания возможностей и назначения программных продуктов компании SCADA Engine для платформы BACnet.
Разработка протокола BACnet (Building Automation and Control network) началась в июне 1987 года. Целью разработки было создание унифицированного, не зависящего от производителей оборудования, стандарта для передачи данных в системах автоматизации зданий. Первоначальная версия BACnet опубликована в 1995 году и стала стандартом ASHRAE 135-1995 (ASHRAE — Американское общество инженеров по отоплению, охлаждению и кондиционированию воздуха). В период с 1995 по июнь 2001 года было выполнено пять дополнений к исходному стандарту. В 2001 году была одобрена новая версия стандарта, включающая в себя все предыдущие дополнения. В 2003 году протокол BACnet стал международным стандартом ISO 16484-5 по системам автоматизации зданий. На данный момент выпушено несколько новых редакций стандарта (ISO 16484-5:2005, ISO 16484-5:2007).
В качестве транспортного уровня протокол BACnet позволяет использовать различ-
Программные средства компании SCADA Engine
для построения систем автоматизации на базе сетевой платформы BACnet
В статье рассматриваются программные средства австралийской компании SCADA Engine (www.scadaengine.com), являющейся одним из мировых лидеров в области разработки программного обеспечения для систем автоматизации зданий, базирующихся на сетевой платформе BACnet. Программные средства компании SCADA Engine включают OPC-сервер и OPC-клиент для BACnet, средства Web-интерфейса, мониторинга и симуляции сетей и устройств BACnet, а также API (интерфейс прикладного программирования) для BACnet в среде Windows и Linux. Приводится сравнение функциональных и стоимостных характеристик продукции SCADA Engine и аналогичных продуктов конкурирующих компаний.
ные пути передачи данных, такие как Ethernet, ARCNET, Master-Slave/Token Passing (MSTP) на базе физической среды RS-485, Point-to-Point (PTP) при удаленном подключении через аналоговые телефонные линии (например, по модемам) или по RS-232, LonTalk на базе различных физических сред (витая пара, оптоволокно, коаксиальный кабель, беспроводные, силовые линии). Для взаимодействия через IP-сети BACnet предусматривает два режима работы:
• BACnet Ethernet (туннелирование IP-сообщений): в этом методе используются специальные, поддерживающие IP, устройства, называемые туннельными маршрутизаторами, которые перехватывают сообщения BACnet, не основанные на IP, и пересылают их маршрутизатору для доставки к устройству назначения.
• BACnet/IP (Annex J): базируется на IP-протоколе сети и допускает режим «подписки» на получение информационных сообщений. Формальная модель протокола BACnet
строится на основе объектно-ориентированной методологии — структурных интерфейсных блоков BIBB (BACnet Interoperability Building Blocks). BIBB предусматривает многоуровневую структурированную модель, состоящую из следующих уровней: BIBB - сервисы - устройства - объекты - свойства. Поддерживаемые блоки BIBB для каждого устройства BACnet перечислены в PICS (Protocol Implementation Conformance Statement). PICS — это документ, детально описывающий тип
данного устройства BACnet и его возможности по взаимодействию с другими устройствами.
В BACnet все свойства подразделяются на несколько функциональных интерфейсных областей (interoperability areas), в каждой из которых определены базовые функции:
• Обмен данными (DS, Data sharing). Функции: получение и предоставление данных от объектов, изменение данных в объектах.
• Обработка тревог (алармов) и событий (AE, Alarm or event management). Функции: генерирование тревог/событий, оповещение о тревогах/событиях, создание списка не квитированных тревог/событий, изменение параметров тревог/событий.
• Календарное планирование (SCHED, Scheduling). Функции: планирование изменения значений аналоговых и дискретных параметров.
• Запись графиков изменения значений (T, Trending).
• Управление устройствами и сетью (DM, Device and NM, Network management). Функции: запрос и выдача информации о статусе устройства/объекта, запрос и выполнение перезагрузки устройства, синхронизации времени, считывание конфигурации устройства.
• Виртуальный терминал (VT, Virual Terminal). Функции: открыть, закрыть, обмен данными. Интерфейсные блоки BIBB классифицируются по вышеописанным интерфейсным областям. Все сервисы (которых сейчас опреде-
Рис. 1. Пример интерфейса пользователя с SE-OPC
лено более 30) имеют классификационный признак клиента (запрос данных) — A и признак сервера (предоставление данных) — B. Например, если BIBB — блок чтения свойства для устройства-клиента DS-RP-A, то интерфейсная область «обмен данных» (DS), тип А — получатель данных, свойство — ReadProperty (RP).
BACnet определяет около 20 типов объектов, таких как аналоговый вход (AI), выход (AO) и значение (AV), дискретный вход (BI), выход (BO), значение (BV), тренд, календарь (Calendar), файл (File), команда (Command), устройство (Device), группа (Group), цикл (Loop), программа (Program), расписание (Schedule), класс уведомления (Notification-Class), регистрация события (Event-Enrollment). BACnet специфицирует более 120 свойств объектов. Из них три свойства являются обязательными для каждого объекта: идентификатор, имя и тип объекта.
Программные средства компании SCADA Engine для BACnet
Австралийская фирма SCADA Engine предлагает на мировом рынке автоматизации зданий программный инструментарий для BACnet: BACnet OPC-сервер, BACnet OPC-клиент, Web-сервисы BACnet в среде Windows NT, 2000, XP, средства программного интерфейса (API) для разработки BACnet-приложений в среде Windows и Linux, рабочую станцию оператора BACnet, симулятор сервера BACnet.
Программное обеспечение компании SCADA Engine работает через драйвер BACnet, который определяет так называемый порт BACnet — общее понятие в сети BACnet, применимое для различных типов коммуникации, включая BACnet Ethernet, BACnet/IP, BACnet MSTP и BACnet PTP. Драйвер BACnet позволяет с помощью маршрутизаторов комбинировать различные типы связи в одной и той же сети. В большинстве случаев в одну сеть объединяются устройства BACnet/IP и BACnet MSTP. Одна из типовых конфигураций (например, для BACnet OPC сервера) — один-единственный порт BACnet/IP и несколько BACnet MSTP устройств, которые доступны через маршрутизаторы BACnet. Каждому порту присваивается уникальный номер сети (Network Number) в диапазоне от 1 до 65 534, который соответствует номеру сети в данном сегменте.
SE-OPC — OPC-сервер BACnet от компании SCADA Engine
SE-OPC — это программное обеспечение в среде Windows (NT 4.0, 2000, XP), которое дает возможность OPC-совместимой рабочей станции считывать и записать свойства BACnet от любого BACnet-совместимого устройства в сети. Интерфейс в стиле проводника позволяет легко конфигурировать свой-
ства BACnet в виде тэгов OPC. Тэги OPC могут быть конфигурированы, изменены и сохранены OPC-сервером в режиме онлайн или оффлайн. Файлы конфигурации возможно модифицировать в Microsoft Excel. SE-OPC успешно прошел все тесты доступа к серверу OPC Data Access v.1, v.2, а также соответствует спецификации “Alarm/event specification v1.0” и работает со многими SCADA-системами (ARC Informatique — PcVue, Wonderware Intouch, Iconics Genesis32, Intellution iFIX, ...). SE-OPC соответствует стандарту ISO 16484-5, что гарантирует работу сервера со всеми продуктами BACnet. Поддерживаются следующие BACnet BIBB: DS-RP-A, DS-RPM-A, DS-WP-A, DS-WPM-A, DS-COV-A, DS-COVU-A, AE-N-A, AE-ACK-A, AE-ASUM-A, AE-ESUM-A, DM-DDB-A, SCHED-A. На рис. 1 приведен пример интерфейса пользователя с SE-OPC.
При работе SE-OPC используется база данных тэгов OPC, которая позволяет отображать (интерпретировать) информацию из сети BACnet при запросах OPC-клиентов. Тэги OPC могут формироваться вручную либо автоматически с помощью BACnet-сервиса ReadPropertyMultiple. Имя тэга OPC составляется из нескольких компонентов точки в сети BACnet: Device ID, Object Type, Instance и Property. Например, SE-OPC поддерживает нестандартные объекты и свойства (Proprietary Objects и Proprietary Properties), которые часто используются производителями BACnet-устройств. Например, тип объекта может иметь номер 501, в то время как стандартные типы нумеруются в диапазоне от 0 до 20.
Сравним возможности OPC-сервера SE-OPC компании SCADA Engine с возможностями аналогичных продуктов от других компаний по числу поддерживаемых BIBB: OPC-BCNET-NA00 от Kepware Technologies [1],
Таблица 1. Сравнение OPC-серверов для BACnet от различных поставщиков по числу поддерживаемых BIBB
SE-OPC OPC-BCNET-NAQQ B21QQ MatriconOPC
DS-RP-A + + + +
DS-RPM-A + + + +
DS-WP-A + + + +
DS-WPM-A + + - +
DS-COV-A + + + +
DS-COVU-A + + - -
AE-N-A + - + -
AE-ACK-A + - + -
AE-ASUM-A + - - -
AE-ESUM-A + - - -
DM-DDB-A + + + +
SCHED-A + - + -
B2100 компании Cimetrics [2], MatriconOPC for BACnet (Annex J) компании Matricon [3]. Результаты сравнения приведены в таблице 1.
Судя по таблице 1, OPC-сервер BACnet от SCADA Engine поддерживает значительно большее число BIBB, чем конкурирующие продукты. Поэтому его использование гарантирует более полную поддержку BACnet-устройств различных производителей, что влечет за собой уменьшение затрат на комплексную интеграцию и предоставляет значительные конкурентные преимущества разработчику (интегратору) конечных систем автоматизации зданий.
Сравним также стоимостные характеристики OPC-сервера SE-OPC [4] компании SCADA Engine с ценами продуктов от других компаний. Цены взяты с официальных сайтов ком-
Таблица 2. Сравнение цен OPC-серверов для BACnet от различных поставщиков
SE-OPC (SCADA Engine) OPC-BCNET- NAQQ (Kepware) B21QQ (Cimetrics) MatriconOPC (Matricon)
Цена, USD 99G 1195 1595 ?
паний: Kepware Tech-nologies [5], Cimetrics [6]. Цены на MatriconOPC for BACnet нет на сайте компании. Результаты сравнения приведены в таблице 2.
Судя по данным таблицы 2, цена OPC-сервера BACnet от SCADA Engine значительно ниже, чем у конкурирующих продуктов.
SE-OPC2B — OPC-клиент для BACnet
SE-OPC2B — OPC-клиент в среде Windows (NT 4.0, 2000, XP) с функцией преобразования данных в объекты BACnet: OPC-клиент считывает данные с OPC-сервера и преобразует информацию в объекты BACnet, расположенные локально на сервере BACnet. Эти объекты BACnet могут читаться любым BACnet-совместимым устройством в сети. Интерфейс в стиле проводника позволяет легко конфигурировать тэги OPC в виде свойств BACnet. Локальные объекты BACnet могут быть сконфигурированы, изменены и сохранены онлайн или оффлайн из приложения. Файлы конфигурации могут быть модифицированы в Microsoft Excel. SE-OPC2B успешно прошел все тесты OPC-клиента. Он полностью совместим с OPC-серверами, удовлетворяющими OPC DA v.1 или v.2, а также соответствует спецификации “Alarm/ event specification v1.0”. SE-OPC2B тоответст-вует стандарту ISO 16484-5, что гарантирует работу сервера со всеми продуктами BACnet. На рис. 2 приведен пример интерфейса пользователя с SE-OPC2B.
Рис. 2. Пример интерфейса пользователя с SE-OPC2B
SE-BWebServ — web-сервисы BACnet
SE-BWebServ — web-сервисы BACnet компании SCADA Engine — предоставляют средства для интегрирования систем контроля и управления инженерными системами зданий и сооружений (BMS, Building Management Systems) с другими приложениями по управлению предприятием, используя технологии SOAP/XML. Это позволяет платформам, таким как Microsoft.Net или Java, обращаться к данным реального времени системы управления BMS, использующей технологию BACnet. Поддержаны все стандартные объ-
Таблица 3. BACnet-сервисы, поддерживаемые web-сервисами SE-BWebServ
BACnet-cepBHCbi Инициализация (Initiate) Выполнение (Execute)
Who Is Да Да
I Am Да Да
Who Has Да Да
I Have Да Да
Read Property Да Да
Write Property Да Да
Device Communication Control Да Да
ReinitializeDevice Да Да
Atomic Read File Да Да
Atomic Write File Да Да
Time Synchronization Да Да
UTC Time Synchronization Да Да
Subscribe COV Да Да
Subscribe COV Property Да Да
Confirmed COV Notification Да Да
Unconfirmed COV Notification Да Да
Read Property Multiple Да Да
Read Range Да Да
Write Property Multiple Да Да
Get Alarm Summary Да Да
Get Event Information Да Да
Get Enrollment Summary Да Да
Acknowledge Alarm Да Да
Confirmed Event Notification Да Да
Unconfirmed Event Notification Да Да
Unconfirmed Text Message Да Да
Confirmed Text Message Да Да
Add List Element Да Да
Remove List Element Да Да
Create Object Да Да
Delete Object Да Да
Unconfirmed Private Transfer Да Да
Confirmed Private Transfer Да Да
Life Safety Operation Да Да
Get Event Information Да Да
Таблица 4. Объекты BACnet, поддерживаемые web-сервисами SE-BWebServ
BACnet-o6teKTbi Может быть создан (Creatable) Может быть удален (Deletable)
AnalogInput Да Да
AnalogOutput Да Да
AnalogValue Да Да
BinaryInput Да Да
BinaryOutput Да Да
BinaryValue Да Да
Calendar Да Да
Command Да Да
EventEnrolment Да Да
Group Да Да
Loop Да Да
MultistateInput Да Да
MultistateOutput Да Да
NotificationClass Да Да
Schedule Да Да
Averaging Да Да
MultistateValue Да Да
TrendLog Да Да
LifeSafetyPoint Да Да
LifeSafetyZone Да Да
Accumulator Да Да
PulseConverter Да Да
екты и сервисы BACnet (табл. З, 4). Также поддержаны все стандартные web-службы.
Web-сервисы BACnet используют понятие пути для того, чтобы ссылаться на значение экземпляра объекта в сети BACnet. Путь создается из адреса в сети BACnet на основе следующего соглашения: /[Network]/ [Device]/[ObjectType]/[Instance]. Таким образом, путь к аналоговому значению AV 0
в устройстве 11, сети 2 будет задаваться в виде /2/11/2/0, и его значение может быть прочитано путем вызова функции getValue («», «/2/11/2/0»). Реализованы следующие функции: getValue, getValues, getRelativeValues, getArray, getArrayRange, getArraySize, setValue, setValues, getDefaultLocale, getSupportedLocals. Кроме того, может быть получено отдельное свойство при использовании следующего соглашения /[Network]/[Device]/[ObjectType]/ [Instance]/[PropertyType]. Web-сервисы реализуют следующие BACnet сервисы (табл. З) и поддерживают следующие BACnet объекты (табл. 4).
Потенциальными областями применения этой технологии являются: отображение данных реального времени на HTML-странице, удаленное управление различными подсистемами, сбор данных об объектах для включения их в таблицы и другие управляющие отчеты.
SE-BSDKDB — набор средств для разработки ПО BACnet для Windows и Linux
SE-BSDKDB — это API cервера BACnet для Windows (динамическая библиотека dll) для Windows 95/NT/2000/XP, которая нужна, чтобы построить сервер BACnet, шлюз или приложение-клиент BACnet, используя языки программирования C++, .Net(C# и VB), VB6, JAVA или Perl. Его цель — сделать информацию реального времени доступной через службы BACnet так, чтобы другие BACnet-устройства могли производить чтение/запись на сервер BACnet. Это обычно применяется как шлюз для не BACnet системы, чтобы дать возможность BACnet-устройствам управлять не BACnet системой. Поддерживаются BACnet/IP, BACnet Ethernet, BACnet MSTP, BACnet PTP и Anex H Data Link Layers. Этот API предлагает законченный набор стандартных объектов и служб BACnet. Доступен также вариант библиотеки для разработки приложений в среде Linux с ядром 2.4 и 2.6 — с исходным текстом или без него.
Рабочая станция оператора BACnet
Рабочая станция оператора BACnet — это система мониторинга сети BACnet, основанная на приложении в среде Windows NT/2000/XP и спроектированная для взаимодействия с сетью BACnet. Рабочая станция отображает дисплеи/тревоги (Displays/Alarms) и временные расписания (Time Schedules) в сети BACnet, как это показано на рис. З.
^ева от экрана приведено дерево, которое используется для навигации по системе, а справа находится область отображения данных, которая обеспечивает графическое представление системы (например, завода или здания) вместе с данными реального времени, полученными из сети BACnet. В состав рабочей станции оператора входит редактор мне-
мосхем, который позволяет пользователю их легко создавать и редактировать.
Дерево системы (в левой части) делится на следующие секции, которые обеспечивают всю необходимую функциональность, требуемую станцией мониторинга:
• Тревоги (Alarms) — в этой секции отображаются все тревоги, полученные станцией.
• Браузер объектов, в котором указаны все объекты в сети BACnet, структурированные по отдельным подсетям и объектам внутри них. Браузер объектов позволяет редактировать объекты.
• Отчеты — эта секция содержит отчеты из базы данных BACnet.
• Безопасность — эта секция используется администратором для конфигурирования прав доступа операторов рабочей станции. Для оператора может быть ограничена функциональность, например, ему может быть
разрешено просматривать объекты в сети BACnet, но без права их редактирования.
• Временные расписания (Time Schedule) — эта секция обеспечивает возможность группирования расписаний по определенному признаку.
• Тренды — секция поддерживает работу с объектами расписания трендов (Trend Schedule).
BACnet Server Simulator
BACnet Server Simulator имитирует устройство BACnet/IP в среде Windows (NT 4.0, 2000, XP). При этом могут создаваться до 10 000 внутренних объектов, редактирование которых происходит случайным образом либо по возрастающему закону. Все сетевые сообщения отображаются на экране, как это показано
We swvtt
Fofcnum •. rrf~ ч r*,*-h (0 Obec* Ы Ooatan Ггк. 0 w T«i5i»iTw ft? 13 50
еле г»' АР) И*-.- *2** Jcdcfe Гкоюпcr ’ tec* CiMfcrm Ы I*tJ n.Vtert J UoM«L Л23 Otiecf Lrt Updefr T -e Dm лrJljVC#» Trm Onu
Six* tnpw £а6** v i6
к«4мп0песап *
KtMdJri г»*">ч ill Иа п>)ж1 N*•00001 Го fffffff*FF FFNKMJ 01 28FFfF ООСЮ Ji 06С0Ав WQ6EAC0fM Pn* OOlo !V1«IO?»B4CO! 81 ГР ГОЛ 01 »FF О ООПС 1И ОБ С0Д8 0006IA1 Pc* 00 fron 142168 01 ЛАШ • tl OB 00 21 01 28 ff ff 00 00 01 06 CC Ав CC № BA Cl N*nnnm с**, rnляnnnsвлrnмы11ni Tenbsmmm гктлпшиагг ы
Рис. 4. Пример работы симулятора BACnet
на рис. 4. Другие BACnet-устройства в сети могут читать значения объектов симулятора.
Поддерживаются следующие BACnet BIBB: DS-RP-A, DS-RPM-A, DS-WP-A, DS-WPM-A, DS-COV-A, DS-COVU-A, AE-N-A, AE-ACK-A, AE-ASUM-A, AE-ESUM-A, DM-DDB-A, SCHED-A.
Заключение
Набор программных средств компании SCADA Engine для автоматизации систем на платформе BACnet является одним из мировых лидеров в секторе автоматизации зданий на базе сетевой платформы BACnet. Приведенные в статье сравнительные характеристики программного обеспечения от SCADA Engine показывают его значительные функциональные и стоимостные преимущества по сравнению с конкурирующими продуктами, что должно заинтересовать разработчиков (интеграторов) конечных систем автоматизации зданий в России. Для ознакомления с программными продуктами SCADA ниже приведены адреса сайтов:
1. www.kepware.com/Spec_Sheets/Bacnet.htm
2. www.cimetrics.com/products/ proddetail.php?prod=B2100&cat=3
3 www.matrikonopc.com/opc-drivers/289/ base-driver-details.aspx#html
4. www.scadaengine.com/sales.html
5. www.kepware.com/Spec_Sheets/Bacnet.htm
6. www.cimetrics.com/products/ proddetail.php?prod=B2100&cat=3 ■