BACNET. ПУТЬ К ИНТЕГРАЦИИ СИСТЕМ БЕЗОПАСНОСТИ В ОБЩУЮ СИСТЕМУ УПРАВЛЕНИЯ ЗДАНИЕМ. ЧАСТЬ ТРЕТЬЯ


Скачать

ЧАСТЬ ТРЕТЬЯ

С. Левин
главный конструктор НПФ «Сигма-ИС»

СЛУЖБЫ ТРЕВОГ И СОБЫТИЙ BACNET

Эта глава описывает концептуальный подход и прикладные службы BACnet для управления событиями. Типы объектов, которые могут являться источниками этих событий, были описаны в предыдущей статье. Если говорить в общем, события - это изменения значений определенных свойств определенных объектов или изменение их внутренних статусов. Существует три механизма, которые BACnet предоставляет для управления событиями: сообщение об изменении значения, внутренние сообщения и сообщения об алгоритмических изменениях.

Сообщения об изменениях значения (COV - Change Of Value) позволяют COV-клиенту подписаться на COV-сервере на постоянной или временной основе, чтобы принимать отчеты об изменениях определенных значений определенных свойств объектов BACnet. Все стандартные объекты BACnet могут поддерживать COV-сообщения. Если в стандартном объекте настроены COV-сообщения, тогда изменение значений заданных свойств объекта запускает механизм COV-оповещения для отправки одному или нескольким подписанным клиентам.

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

Сообщения об алгоритмических изменениях позволяют клиенту подписаться в сервере оповещений для получения сообщений об изменениях значения любого свойства любого объекта по определенному критерию или алгоритму.

Внутренние и алгоритмические сообщения реализуют подход индивидуального оповещения о конкретном событии. Они связываются со специальном объектом «Класс оповещения» в инициирующем устройстве. Этот класс используется для обработки и маршрутизации событий в один или несколько адресов назначения. Класс оповещения определяет приоритеты для сообщений, оповещающих о событиях, и подтверждение, когда оно требуется от прикладного процесса или человека.

BACnet устройства, которые поддерживают оповещения о событиях, могут определить любое количество уникальных состояний тревог или событий. Тревоги и события распределены по трем возможным группам: ошибки, отличные от нормальных и нормальные. Состояние «Ошибка» определяет какую-либо неисправность. «Ненормальное» состояние -это состояние системы, которое выходит за границы ожидаемого идеального функционирования. Объекты могут идентифицировать свое состояние в любой момент времени с помощью произвольного количества возможных уникальных состояний. Оповещения запускаются при изменении состояния объекта, при переходе от одного уникального состояния к другому. Переход в определенное состояние может быть использован для определения уникального обработчика оповещений, генерируемых объектом, например, управление адресом назначения оповещения или подтверждения перехода в это состояние. Сообщения могут выборочно идентифицироваться по категориям «тревоги» и «события». Объекты указывают эту категорию в свойстве Notify_Type. В BACnet различие между тревогами и всеми остальными событиями определяется тем, что будет ли передаваться сообщение через службу GetAlarmSummary или нет. Во всех других отношениях BACnet не делает никакого различия между тревогами и событиями.

В целом все три механизма могут в равной степени использоваться для управления всеми типами сообщений.

СООБЩЕНИЯ ОБ ИЗМЕНЕНИИ ЗНАЧЕНИЯ

Обычно этот тип сообщений (COV) используется для отправления оповещений в программы верхнего уровня, для сообщений человеку или ведения логов. Подписка осуществляется с помощью специальной службы и устанавливает соединение между детектором изменения значений и механизмом оповещений в COV-сервере, а также процессом в COV-клиенте. Извещения об изменении, формируемые COV-сер-вером, могут быть с подтверждением или без подтверждения. Тип выбирается при подписке. Сервер также несет ответственность за обслуживание списка активных подписок для каждого объекта, поддерживающего COV-сообщения. Список должен быть способен хранить как минимум одну подписку для каждого такого объекта, несколько подписок может поддерживаться опционально в зависимости от реализации сервера. Список представлен в устройстве как сетевая переменная Active_COV_Subscriptions и может быть доступен для чтения по сети. Подписки могут создаваться с ограниченным временем жизни, это означает, что подписка будет автоматически отменена по истечении определенного периода времени. Опционально, время жизни может быть не определено, тогда автоматическая отмена подписки не производится. Тем не менее спецификация COV-сервера не требует гарантированного сохранения подписок после аварий питания или рестарта оборудования. Для поддержания актуального списка можно использовать периодическое обновление подписок с продлением срока их действия.

Некоторые объекты могут рассылать свои данные сообщениями без подтверждения, вообще не используя механизм подписывания. Использование Uncon-firmedCOVNotification сообщений никак не ограничивается, и любой объект может использовать этот механизм для дистрибуции значений своих свойств одному или нескольким абонентам.

ВНУТРЕННИЕ СООБЩЕНИЯ

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

СООБЩЕНИЯ ОБ АЛГОРИТМИЧЕСКИХ ИЗМЕНЕНИЯХ

Этот тип сообщений позволяет BACnet устройству предоставлять один или несколько источников тревог или событий, определенных объектами регистрации событий для генерации оповещений о тревогах и событиях одному или нескольким адресатам. Любые из стандартизованных алгоритмов могут быть использованы для определения критериев формирования изменений. Эти алгоритмы определены в стандарте BACnet и широко применяются в системах автоматизации, в таблице 2 приведены некоторые из них.

Табл. 1. Примеры стандартных объектов и свойств, которые поддерживают внутренние сообщения

 

Критерий

Тип события

Дверь Точки Доступа

Если Door_Alarm_State переходит в новое значение на время дольше, чем Time_Delay, и изменение состояния доступно в Event_Enable

CHANGE_OF_STATE

Точка Доступа

Если Access_Event_Time изменяется и Access_Event равно одному из значений в списке Access_Event_List

ACCESS_EVENT

Зона Доступа

Если параметр Occupancy_State становится равным одному из значений, содержащихся в списке Alarm_Values, и остается равным любому значению в этом списке на время большее, чем Time_Delay, и изменение состояния доступно в Event_Enable

CHANGE_OF_STATE

ПЕРЕДАЧА СОБЫТИЙ И ТРЕВОГ

Связь между наступлением события и передачей сообщения об оповещении одному или нескольким адресатам устанавливается одним или несколькими способами, в зависимости от типа сообщений. События изменения значений подключаются к подписчикам через службу Sub-scribeCOV. Внутренние события подключаются к адресатам косвенно через объект Класс Оповещения. Алгоритмические события подключаются через объект Регистрации Событий.

Табл. 2

Алгоритм

Формальная запись алгоритма

Описание

CHANGE_OF_BITSTRING

Property & Bitmask = value in List_Of_Bitstring_Values for Time_Delay seconds

Событие наступает, когда значение свойства становится равным одному из значений в списке List_Of_Bitstring_Values после применения битовой маски Bitmask, и значение сохраняется в течение времени Time_Delay.

CHANGE_OF_STATE

Property = value in

List_Of_ Values for Time_Delay

seconds

Событие наступает, когда значение свойства становится равным одному из значений в списке List_Of_Values, и значение сохраняется в течение времени Time_Delay.

CHANGE_OF_VALUE

|New Property value - Old Property value| >Property_ Increment for Time_Delay seconds

Событие наступает, когда абсолютное значение изменения значения свойства больше, чем значение Property_Increment в течение времени Time_Delay.

COMMAND_FAILURE

Property

Feedback_Property for Time_ Delay seconds

Событие наступает, если значение свойства не совпадает с значением свойства Feedback_Property в течение времени большего, чем Time_Delay. Это может использоваться, например, для проверки, произошли ли нужные изменения после записи значения. Этот тип события применим только к свойствам с дискретными значениями.

CHANGE_OF_LIFE_SAFETY

Property = value in List_Of_Life_Safety_Alarm_ Values for Time_Delay seconds

Событие наступает, если значение свойства становится равным одному из значений в списке List_Of_Life_Safety_Alarm_Values и остается равным любому из значений этого списка в течение времени Time_Delay.

ACCESS_EVENT

Связанное свойство Access_ Event_Time изменяется и Property = value in List_Of_ Access_Events

Событие наступает, если значение свойства Access_Event_Time изменяется и значение свойства Access_Event становится равным одному из значений, содержащихся в списке List_Of_Access_Events. Этот тип события может быть применим только со свойствами типа BACnetAccessEvent.

Табл. 3

Приоритет тревог и событий

Сетевой приоритет

00-63

Жизненно важные сообщения

64-127

Критические сообщения оборудования

128-191

Срочные сообщения

192-255

Нормальные сообщения

Критерии для детекции наступления события определяются через свойства объектов, который могут формировать оповещения о событиях, и использование параметров службы SubscribeCOV. Все объекты, которые могут формировать события, имеют свойства, показывающие состояние объекта в отношении обработки тревог и событий, и каждый такой объект может явно разрешать или запрещать генерацию сообщений о событиях. Внутренние события и события от объектов регистрации событий могут управляться объектом Класс Оповещения.

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

Объект Класс Оповещения определяет устройства назначения для сообщений оповещения, используя BACnetRecipients. Приемниками могут быть индивидуальные устройства, группы устройств при мультиадресации или все устройства, доступные при широковещательной адресации. Если используется широковещательный режим, цель может быть ограничена всеми устройствами в простой сети или расширена до охвата всех устройств в межсети BACnet.

Службы оповещения о событиях содержат параметр Метка Времени, который показывает хронологический порядок событий. Метка Времени может быть актуальным временем локальных часов реального времени устройства или, если устройство часов не имеет, просто числовой последовательностью. Этот счетчик должен монотонно нарастать до максимального значения с последующим переходом через ноль. Устройство может иметь простой счетчик для всех объектов, генерирующих события, или может иметь отдельный счетчик для каждого объекта.

Всего в BACnet определено 11 служб для управления событиями:

  • AcknowledgeAlarm,
  • SubscribeCOV,
  • SubscribeCOVProperty,
  • ConfirmedCOVNotification,
  • UnconfirmedCOVNotification,
  • ConfirmedEventNotification,
  • UnconfirmedEventNotification,
  • GetAlarmSummary,
  • GetEnrollmentSummary,
  • GetEventInformation,
  • LifeSafetyOperation.

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

Рассмотрим подробнее назначение служб управления событиями, прежде всего в контексте использования их в системах безопасности на базе BACnet.

СЛУЖБА ACKNOWLEDGEALARM

В системах безопасности устройство должно знать, что оператор видел сообщение о тревоге. Эта служба используется для подтверждения того, что человек видел сообщение и отреагировал на него. Конечно, ответственность за то, что подтверждение реально пришло от человека, лежит на реализации прикладного приложения. Эта служба может использоваться в связке со службами Con-firmedEventNotification или Uncon-firmedEventNotification.

СЛУЖБА SUBSCRIBECOV

Эта служба используется для оповещения подписчиков об изменениях, которые могут происходить в определенных свойствах каких-либо объектов. В зависимости от типа подписки сообщения могут передаваться с подтверждением или без. В качестве транспорта передачи используются службы ConfirmedCOVNotifi-cation или UnconfirmedCOVNotification соответственно.

СЛУЖБА SUBSCRIBECOVPROPERTY

Эта служба используется для оповещения подписчиков об изменениях, которые могут происходить в любых свойствах каких-либо объектов. В зависимости от типа подписки сообщения могут передаваться с подтверждением или без. В качестве транспорта передачи используются службы ConfirmedCOVNotification или UnconfirmedCOVNotification соответственно. Отличие это службы от SubscribeCOV в том, что здесь не ограничен перечень свойств, изменения которых можно обрабатывать.

СЛУЖБА CONFIRMEDCOVNOTIFICATION

Эта служба используется для передачи сообщений оповещения подписчикам служб SubscribeCOV и SubscribeCOV-Property. При этом приемное устройство автоматически отправляет подтверждение об успешном получении события. Данный метод может быть использован для передачи таких данных, как, например, количество человек, прошедших через точку доступа или находящихся в данное время в какой-либо зоне доступа.

СЛУЖБА UNCONFIRMEDCOVNOTIFICATION

Служба используется для передачи сообщений оповещения подписчикам служб SubscribeCOV и SubscribeCOVProperty или для рассылки значений широкому кругу адресатов одновременно без организации подписки. При этом подтверждение о приеме сообщения не производится. Как мы видим, здесь нет гарантированной доставки, но зато и накладные расходы на рассылку сообщений значительно сокращаются. В системе безопасности данный способ может подойти для передачи часто меняющихся второстепенных данных, например, некритичных изменений аналоговых значений измеряемых параметров в адресно-аналоговых пожарных извеща-телях: текущее значение температуры для тепловых датчиков или уровень сигнала в дымовой камере.

СЛУЖБА CONFIRMEDEVENTNOTIFICATION

Эта служба используется сервером оповещения для сообщения удаленному устройству, что требуемое событие наступило и сервер оповещения нуждается в подтверждении приема сообщения о событии. При этом подтверждение означает лишь успешное получение сообщения приемным устройством. И в отличие от AcknowledgeAlarm это не означает, что человек увидел данное сообщение.

Метод может быть использован для передачи таких событий, как постановка на охрану или включение исполнительного устройства.

СЛУЖБА UNCONFIRMEDEVENTNOTIFICATION

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

СЛУЖБА GETALARMSUMMARY

Служба используется для получения сводки об «активных тревогах». Этот термин относится к стандартным объектам BACnet и обозначает свойства, состояние которых в данный момент не соответствует стандартному определению NORMAL, и тип сообщения задан как тревога. В системе безопасности это могут быть состояния тревоги и неисправности.

СЛУЖБА GETENROLLMENTSUMMARY

Это более общий случай службы GetA-larmSummary. Используется для получения сводки о произвольных состояниях объектов. Запрос формируется с помощью гибко настраиваемых фильтров, позволяющих получить нужные состояния различных объектов. Например, сколько датчиков находится сейчас под охраной или сколько дверей открыто в данный момент.

СЛУЖБА GETEVENTINFORMATION

Служба используется для получения сводки обо всех «активных состояниях». Этот термин относится к стандартным объектам BACnet и обозначает свойства, состояние которых в данный момент не соответствует стандартному определению NORMAL или в свойстве Acked_Transitions хотя бы один бит из TO_OFFNORMAL, TO_FAULT, TO_NORMAL имеет значение

FALSE. СЛУЖБА LIFESAFETYOPERATION

Эта служба как раз специально предназначена к использованию в системах безопасности с целью реализации механизма специальных инструкций от человека для достижения следующих целей:

  • включение звукового или визуального оповещения,
  • отключение звукового или визуального оповещения,
  • сброс тревоги.

Несложно заметить, что BACnet вполне подходит для организации передачи данных между устройствами системы безопасности.

Продолжение следует...

 

Источник: Журнал "Алгоритм безопасности", № 3,2012

Архив публикаций