Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

To increase the information content of notifications, users can uses macros. At the time of sending the notifications, macros will be replaced with the corresponding information: Time, sensor name, its value, and so on.

The macros is indicated by the percent sign and the number corresponding to the contained information.

The following macros are available:

Macros

Specification

Illustration sample
%1A verbal description of the triggered logic.

if

    'Onboard Temperature' (id=201001) in state 'high alarm';

and    'Onboard Voltage DC' (id=203001) in state 'high alarm';

then

    'Power-1' (id=304001) changes to state 'on' immediately, once;

    'Simple_Mail' (id=601001) changes to state 'on' immediately, once;

%2The state of the logic circuit elements included in the IF conditions, at the time when the circuit is triggered.

'Onboard Temperature' (id=201001) in state 'high alarm';

'Onboard Voltage DC' (id=203001) in state 'high alarm';

%3Trigger time of the logic circuit.11:32:28 2017/06/13
%4Name of the logic circuit.'Logic_Temp_01'
%5The name of the sensor, the change in state of which led to the activation of the logic circuit. Here is displayed the name of the sensor, from which the logic circuit is triggered.'Onboard Temperature'
%6The state of the sensor that triggered the logic circuit.'high alarm'
%7The sensor value or its logic level at the time of the triggering of the logic circuit.'27.60'
%8ID of the sensor that triggered the logic circuit.'201001'

Macros parameterization

Макросы %5, %6, %7 имеют возможность параметризации по идентификатору элемента {id}. Т.е. для этих макросов возможно указать конкретный элемент, для которого будет вычислен макрос.

В качестве параметра, определяющего элемент, передается ID элемента. ID помещается в фигурных скобках {id} непосредственно после имени макроса.

Пример вычисления макросов:

МакросОписаниеПример
%5{id}Имя датчика с заданным идентификатором.%5{201001} выдаст имя датчика: 'Onboard Temperature'
%6{id}Состояние датчика с заданным идентификатором.%6{201001} выдаст состояние датчика: 'normal'
%7{id}Значение измеренной величины датчика с заданным идентификатором.%7{201001} выдаст значение датчика: '26.50'

В случае если элемент с указанным идентификатором не найден, в текст сообщения вставляется строка — 'id=xxxx not found'.

В случае, если параметр {id} не задан, в текст сообщения вставляется значение, вычисленное для элемента, инициировавшего срабатывание логической схемы.

Макрос детализации модуля, группы и системы

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

Пример использования макроса для обработки модуля.

Создадим такую логическую схему:

При срабатывании в состояние 'Alarm' модуля 'Autodetect', будет осуществлено управление реле и отправлено сообщение на электронную почту.

Состояние модуля, группы и системы

Модуль (группа, система) переходит в состояние 'Alarm', если хотябы один из его подключенных датчиков (аналоговых или дискретных) находится в состоянии 'Alarm', 'High alarm' или 'Low alarm'.

Модуль (группа, система) переходит в состояние 'Warning', если хотябы один из его подключенных датчиков (аналоговых или дискретных) находится в состоянии 'Warning', 'High warning' или 'Low warning' и при этом модуль не находится в состоянии 'Alarm'.

Модуль (группа, система) переходт в состояние 'Normal', если все его подключенные датчики находятся в состоянии 'Normal'.

Рассмотрим какую информацию можно получить с помощью макросов.

Макрос

Результат работы макросаПояснение
%1

if

    module 'Autodetect' (id=2021) in state 'alarm';

then

    'Power-1' (id=304001) changes to state 'on' immediately, once;

    'Power-2' (id=304002) changes to state 'off' immediately, once;

    'Simple_Mail' (id=601001) changes to state 'on' immediately, once;

Словесное описание сработавшей логической схемы. При переходе модуля 'Autodetect' в состояние 'alarm' немедленно (и однократно, без повторов) включается реле 'Power-1', отключается реле 'Power-2' и отправляется почтовое уведомление 'Simple_Mail'. Модуль переходит в состояние 'alarm', если хотябы один из его элементов находится в состоянии 'alarm'.
%2module 'Autodetect' (id=2021) in state 'alarm';Состояние элементов логической схемы, на момент срабатывания схемы, включенных в условия IF. Описан модуль вызвавший срабатывание схемы и его состояние.
%316:14:41 2017/06/13Время срабатывания логической схемы.
%4'Logic_Analog_Sensors'Название логической схемы.
%5'Autodetect'Имя датчика (модуля), изменение состояния которого привело к срабатыванию логической схемы.
%6'alarm'Состояние датчика (модуля), инициировавшего срабатывание логической схемы.
%7'not supported'Значение величины, измеряемой датчиком или его логический уровень на момент срабатывания логической схемы. Модуль не имеет такого поля, поэтому здесь выводится 'not supported'.
%8'107002'Идентификатор датчика, инициировавшего срабатывание логической схемы. Здесь указывается именно идентификатор датчика, который содержится в модуле и который вызвал срабатывание модуля. В данном случае это датчик протечки воды. Использование этого макроса в качестве параметра позволяет определить сработавший внутри модуля датчик.
%5{%8}'Analog-2-WATER'Имя датчика по идентификатору. Запрашиваем по идентификатору датчика от которого сработал модуль.
%6{%8}'alarm'Состояние датчика по идентификатору. Запрашиваем по идентификатору датчика от которого сработал модуль.
%7{%8}'1'Значение величины датчика по идентификатору. Запрашиваем по идентификатору датчика от которого сработал модуль.
%5{201002}'Analog-1-TEMPERATURE'Имя датчика по идентификатору. Запрашиваем один из произвольных датчиков, в данном случае это датчик температуры.
%6{201002}'high warning'Состояние датчика по идентификатору. Запрашиваем один из произвольных датчиков, в данном случае это датчик температуры.
%7{201002}'28.50'Значение величины датчика по идентификатору. Запрашиваем один из произвольных датчиков, в данном случае это датчик температуры.


Из этой информации видно, что сработал в состояние 'alarm' датчик протечки воды 'Analog-2-WATER', при этом он перевел модуль 'Autodetect' также в состояние 'alarm', что и вызвало срабатывание логической схемы и отправку уведомления.

Макросы в групповых уведомлениях

При необходимости в наблюдении за состоянием элементов, предпочтительнее использовать не механизм логических схем, а групповые уведомления. Т.к. при большом числе наблюдаемых элементов групповые уведомления позволяют значительно сократить число логических схем (т.к. не используют их) и упростить настройку устройства. Логические схемы обосновано использовать при сложных реакциях на события, например при управлении внешней нагрузкой, реле.

Рассмотрим использование макросов в групповых уведомлениях. О создании групп и групповых уведомлений подробнее можно прочитать тут: /wiki/spaces/DocRU/pages/44204034.

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


Зададим уведомление которое будет отправляться при переходе группы в состояния 'Normal' и 'High alarm'.


Рассмотрим информацию которую можно получить используя макросы в тексте уведомления.

Макрос

Результат работы макросаПояснение
%1не используйте этот макрос при групповых уведомленияхТ.к. логическая схема здесь не используется, то этот макрос не имеет смысла.
%2не используйте этот макрос при групповых уведомленияхТ.к. логическая схема здесь не используется, то этот макрос не имеет смысла.
%316:14:41 2017/06/13Время срабатывания, соответствует моменту перехода группы в наблюдаемое состояние.
%4'Group_Temperature_Only'Название группы.
%5'vt470-0192-temperature'Имя датчика (модуля), инициировавшего срабатывание. Изменение состояния этого датчика привело к изменению состояния группы и отправке уведомления.
%6'high alarm'Состояние датчика (модуля), инициировавшего срабатывание.
%7'27.30'Значение величины, измеряемой датчиком или его логический уровень на момент срабатывания.
%8'201003'Идентификатор датчика, инициировавшего срабатывание. Здесь указывается именно идентификатор датчика, изменение состояния которого привело к изменению состояния группы и отправке уведомления.
%5{%8}'vt470-0192-temperature'Имя датчика по идентификатору. Запрашиваем по идентификатору датчика от которого сработало групповое уведомление. В данном случае работа макроса аналогична %5.
%6{%8}'high alarm'Состояние датчика по идентификатору. Запрашиваем по идентификатору датчика от которого сработало групповое уведомление. В данном случае работа макроса аналогична %6.
%7{%8}'27.30'Значение величины датчика по идентификатору. Запрашиваем по идентификатору датчика от которого сработало групповое уведомление. В данном случае работа макроса аналогична %7.
%5{201002}'Analog-1-TEMPERATURE'Имя датчика по идентификатору. Запрашиваем один из произвольных датчиков, в данном случае это датчик температуры. Макрос позволяет например вывести данные других датчиков группы.
%6{201002}'high warning'Состояние датчика по идентификатору. Запрашиваем один из произвольных датчиков, в данном случае это датчик температуры. Макрос позволяет например вывести данные других датчиков группы.
%7{201002}'28.50'Значение величины датчика по идентификатору. Запрашиваем один из произвольных датчиков, в данном случае это датчик температуры. Макрос позволяет например вывести данные других датчиков группы.
  • No labels