Программные средства компании SCADA Engine для построения систем автоматизации на базе сетевой платформы BACnet
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 позволяет использовать различные пути передачи данных, такие как Ethernet,
ARCNET, Master-Slave/Token Passing (MSTP)
на базе физической среды RS-485, Point-toPoint (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 классифицируются по вышеописанным интерфейсным областям. Все сервисы (которых сейчас определено более 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), класс уведомления (NotificationClass), регистрация события (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 работает через драйвер BAСnet,
который определяет так называемый порт
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, DMDDB-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-сервера SEOPC
компании SCADA Engine с возможностями аналогичных продуктов от других компаний по числу поддерживаемых BIBB: OPCBCNET-NA00 от Kepware Technologies [1],
B2100 компании Cimetrics [2], MatriconOPC
for BACnet (Annex J) компании Matricon [3].
Результаты сравнения приведены в таблице 1.
Таблица 1. Сравнение OPC-серверов
для BACnet от различных поставщиков
по числу поддерживаемых BIBB
SE-OPC | OPC-BCNET-NA00 | B2100 | 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 | + | – | + | – |
Судя по таблице 1, OPC-сервер BACnet от
SCADA Engine поддерживает значительно
большее число BIBB, чем конкурирующие продукты. Поэтому его использование гарантирует более полную поддержку BACnet-устройств различных производителей, что влечет
за собой уменьшение затрат на комплексную
интеграцию и предоставляет значительные
конкурентные преимущества разработчику
(интегратору) конечных систем автоматизации зданий.
Сравним также стоимостные характеристики OPC-сервера SE-OPC [4] компании SCADA
Engine с ценами продуктов от других компаний. Цены взяты с официальных сайтов компаний: Kepware Tech-nologies [5], Cimetrics [6].
Цены на MatriconOPC for BACnet нет на сайте компании. Результаты сравнения приведены в таблице 2.
Таблица 2. Сравнение цен OPC-серверов для BACnet
от различных поставщиков
SE-OPC (SCADA Engine) |
OPC-BCNET- NA00 (Kepware) |
B2100 (Cimetrics |
MatriconOPC (Matricon) |
|
Цена, USD | 990 | 1195 | 1595 | ? |
Судя по данным таблицы 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 cоответствует стандарту ISO 16484-5, что гарантирует
работу сервера со всеми продуктами BACnet.
На рис. 2 приведен пример интерфейса пользователя с SE-OPC2B.
SE-BWebServ—
web-сервисы BACnet
SE-BWebServ — web-сервисы BACnet компании SCADA Engine—предоставляют средства для интегрирования систем контроля
и управления инженерными системами зданий и сооружений (BMS, Building Management
Systems) с другими приложениями по управлению предприятием, используя технологии
SOAP/XML. Это позволяет платформам, таким как Microsoft.Net или Java, обращаться
к данным реального времени системы управления BMS, использующей технологию
BACnet. Поддержаны все стандартные объекты и сервисы BACnet (табл. 3, 4). Также поддержаны все стандартные web-службы.
Таблица 3. BACnet-сервисы,
поддерживаемые web-сервисами SE-BWebServ
BACnet-сервисы | Инициализация (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-объекты | Может быть создан (Creatable) | Может быть удален (Deletable) |
AnalogInput | Да | Да |
AnalogOutput | Да | Да |
AnalogValue | Да | Да |
BinaryInput | Да | Да |
BinaryOutput | Да | Да |
BinaryValue | Да | Да |
Calendar | Да | Да |
Command | Да | Да |
EventEnrolment | Да | Да |
Group | Да | Да |
Loop | Да | Да |
MultistateInput | Да | Да |
MultistateOutput | Да | Да |
NotificationClass | Да | Да |
Schedule | Да | Да |
Averaging | Да | Да |
MultistateValue | Да | Да |
TrendLog | Да | Да |
LifeSafetyPoint | Да | Да |
LifeSafetyZone | Да | Да |
Accumulator | Да | Да |
PulseConverter | Да | Да |
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 сервисы (табл. 3)
и поддерживают следующие 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,
как это показано на рис. 3.
Cлева от экрана приведено дерево, которое
используется для навигации по системе,
а справа находится область отображения данных, которая обеспечивает графическое представление системы (например, завода или здания) вместе с данными реального времени,
полученными из сети 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 внутренних объектов, редактирование которых
происходит случайным образом либо по возрастающему закону. Все сетевые сообщения
отображаются на экране, как это показано
на рис. 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
ниже приведены адреса сайтов: