Сообщения об авариях и предупреждения в протоколе BACnet

Протокол BACnet является американским и международным стандартом, и по праву считается одним из самых распространенных стандартов в области автоматизации инженерных систем зданий. Этот протокол отличается разнообразием возможных технологий передачи данных: от EIA-485 до Интернета.

Сообщения об авариях и предупреждения в протоколе BACnet


Александр Андреев
Александр Андреев, Генеральный директор ООО «Симетрикс»

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

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

Кроме базовых функций доступа к данным, в протоколе с самого начала были стандартизированы механизмы для генерации и рассылки предупреждений («alarms»), сообщения о происшествиях («events») и уведомлений об авариях («fault notifications»). В последней версии стандарта BACnet-2012 их описание значительно улучшено. Над улучшениями трудилась специальная рабочая группа в течение нескольких лет. Как всегда, комитет очень внимательно отнесся к проблеме совместимости со старыми версиями протокола, и все добавления и изменения сделаны так, чтобы старые устройства продолжали бы соответствовать стандарту, даже в новой редакции. Старые устройства могут не поддерживать новые функции и механизмы.

В терминологии BACnet «предупреждения» («alarms») – это частный случай «происшествий» («events»). Предупреждения адресованы обслуживающему персоналу и обычно требуют вмешательства оператора, в частности, подтверждения, что оператор получил предупреждение («Alarm Acknowledgment»). Сообщения о событиях, напротив, преимущественно предназначены для взаимодействия между различными приборами.

Предупреждения и сообщения об ошибках (авариях) в протоколе BACnet связаны с объектами. Объект, поддерживающий генерацию предупреждений или сообщений об аварии, называется «объектом, порождающим события» («event-initiating objects»). Приборы, содержащие такие объекты, называются «серверами, посылающими уведомления» («notification servers»). Приборы и рабочие станции, принимающие и обрабатывающие уведомления, называются «получателями» («notification-clients»).

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

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

В стандарте BACnet уведомления об изменении значения («COV reporting») рассматривается, как частный случай посылки предупреждений. С практической точки зрения это не удобно, так как этот механизм, на самом деле, является более эффективной альтернативой опросу значений. Вместо того, чтобы постоянно опрашивать значения, рабочая станция, или SCADA, подписывается на уведомления об изменениях интересующих ее величин. Обычно это происходит «автоматически» и не отображается, как «события» или «предупреждения». Поэтому мы не будем здесь рассматривать уведомления об изменении значения.
События, о которых рассылаются уведомления, бывают трех видов: «внутренние» события («Intrinsic reporting»), алгоритмически обнаруженные события («Algorithmic reporting») и произвольные предупреждения («Alerts»).

Факт возникновения «внутренних» событий определяется на основании параметров, находящихся в самом объекте, в котором это событие возникает. С другой стороны, параметры для «алгоритмически обнаруживаемых» событий хранятся в специальном объекте, назваемом «Event Enrollment Object». Объект «Event Enrollment» позволяет использовать более сложные алгоритмы для обнаружения событий, чем механизм «внутренних» событий. Наконец, произвольные предупреждения, стандартизованные только в 2012 году, позволяют производителям посылать предупреждения на основании алгоритмов и параметров, вообще не представленных на сети.

Уведомления о событиях рассылаются порождающим объектом одному или нескольким получателям. Обычно получателем является какой-либо «процесс», исполняющийся внутри прибора или рабочей станции диспетчера. Такой «процесс» обычно либо добавляет запись в журнал событий, либо уведомляет о событии оператора. Протокол BACnet предоставляет гибкие механизмы для настройки рассылки уведомлений. Благодаря стандартизации специального типа объекта для пересылки уведомлений («Notification Forwarder object»), теперь даже самые слабые устройства могут рассылать уведомления любому количеству получателей.

Предупреждения, которые требуют вмешательства оператора, обычно необходимо «подтвердить»: сообщить системе автоматизации, что оператор получил уведомление. Поэтому предупреждение может находиться в одном из двух состояний: «подтвержденное» или «неподтвержденное». Если одно и то же предупреждение могут получить разные операторы, то считается, что подтвердить получение может любой оператор, и одного подтверждения достаточно. Поэтому подтверждение, посланное любым оператором, рассылается по всему списку получателей оригинального предупреждения. Рабочая станция в диспетчерской покажет неподтвержденное предупреждение красным цветом, а как только получение этого предупреждения будет подтверждено любым оператором, цвет изменится на нейтральный.

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

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

Возврат к списку




AlfaSystems massmedia K3FN2SA