Обычно для действий в сценариях нужно знать состояние системы на момент выполнения действия, а именно: текущее время, значения и состояния датчиков и т.д.
Для этих целей используются переменные. Переменные выделяются в тексте сообщения символом процента (%) в начале и в конце переменной, и при обработке текста вместо текста переменной внтури %% подставляется реальное текущее значение переменной.
Переменная может иметь параметры для тонкой настройки значения. Параметры указываются в скобках после имени переменной и отделятся друг от друга запятой.
Системные переменные
%Time% - текущее время
Параметры:
| 1. | [Format: String = "hh:nn"] - формат отображение значения времени. Допустимые символы: dd - день, mm - месяц, yyyy - год, hh - часы, nn - минуты |
Пример (для текущего времени 05.12.2011 10:45):
| • | %Time% - 10:45 |
| • | %Time("dd.mm hh:nn")% - 05.12 10:45 |
| • | %Time("yy_mm_dd")% - 11_12_05 |
| • | %Time("yy_mm_dd__hh_mm")% - 11_12_05__10_45 |
%DateTime% - текущие дата и время
Текущая дата и время в формате, заданном в региональных настройках системы (Windows).
Пример (для текущей даты и времени 05.12.2011 10:45):
| • | %DateTime% - 05.12.2011 10:45 |
%Sensors.State% - текущее состояние датчиков сценария
В сценарии «За подією» учитываются только устройства и датчики, выбранные в условиях сценария. В сценарии «За часом» учитываются все датчики. Макрос %Sensors.StateAll% всегда учитывает всю систему.
Пример (для системы с 25-ю датчиками температуры):
| • | no poll – не включен опрос устройств |
| • | 25: all ok – опрос идет, аварий нет и ошибок нет |
| • | 25: error – 1, alarm – 7, ok - 17 – опрос идет, есть 1 датчик с ошибками и 7 с авариями, 17 - в норме |
| • | 25: error all - все датчики с ошибками (вероятно обрыв линии связи) |
%Sensors.List% - текущие значения датчиков сценария
В сценарии «За подією» выводятся только устройства и датчики, выбранные в условиях сценария. Выбор устройства включает его датчики, а выбор отдельного датчика не включает соседние датчики того же устройства. В сценарии «За часом» выводятся все датчики. Макрос %Sensors.ListAll% всегда выводит всю систему. Выключенные датчики не отображаются.
Параметры:
| 1. | [NameProp: String = ''FullCode"] - переменная датчика, используемая в качестве имени датчика |
| 2. | [ValueProp: String = ''Value"] - переменная датчика, используемая в качестве значения датчика |
| 3. | [NameAndValueSeparator: String = ''-"] - разделитель имени и значения датчика |
| 4. | [SensorSeparator: String = ''; "] - разделитель отдельных датчиков |
Примеры (для системы с 4-мя датчиками температуры):
| • | %Sensors.List% - 11-err; 12-20.0°C; 13-22.0°C; 14-alarm(30.0°C>25.0°C) |
11-err - модуль с адресом 11 с ошибкой
12-20.0°C - датчик с адресом 12 имеет текущее значение 20.0°C
13-20.0°C - датчик с адресом 13 имеет текущее значение 22.0°C
14-alarm(30.0°C>25.0°C) - датчик с адресом 14 с аварией - имеет текущее значение 30.0°C, что больше верхней уставки (25.0°C)
| • | %Sensors.List("Parent.Name")% - Камера1-err; Склад-20.0°C; Бункер-22.0°C; Сушилка-alarm(30.0°C>25.0°C) В качестве имени датчика задан не адрес модуля, а имя модуля. |
| • | %Sensors.List("Parent.Code", "Value(0, False)", "-", " ")% - 11-err 12-20; 13-22; 14-alarm(30>25) Максимальное компактное представление, актуально при отправке SMS "Parent.Code" - в качестве имени датчика используется переменная устройства "Parent.Code" "Value" - в качестве значения датчика используется переменная устройства "Value" "0" - формат значения датчика без цифр после запятой False - не добавлять единицы измерения к значению датчика "-" - разделитель имени и значения датчика " " - разделитель отдельных датчиков (пробел) |
Переменная датчика вначале содержит обращение к конкретному датчику вида Sensors["x"], где x - путь к датчику
%Value% - текущее значение датчика
Параметры:
| 1. | [FracCount: Integer = -1] - количество знаков после запятой, -1 означает, что определяется автоматически. |
| 2. | [AddUnits: Boolean = True] - добавлять ли единицы измерения к значению датчика |
| 3. | [ShowAlarm: Boolean = True] - показывать ли состояние аварии датчика. Например для текущего значениее датчика 20°C и макс. уставки 15°С: при ShowAlarm = True будет выведено "alarm(20.0°C>15.0°C)" при ShowAlarm = False будет выведено "20.0°C" |
В зависимости от текущего состояния датчика, может быть такие значения:
| • | err - ошибка устройства |
| • | off - устройство выключено |
| • | 20.0°C - текущее значение датчика (при условии что устройство работает нормально, уставки не превышены) |
| • | alarm(20.0°C>15.0°C) - текущее значение датчика (устройство работает нормально, превышены уставки) |
Пример (обращение идет к датчику с путем 1.11.T):
| • | %Sensors["1.11.T"].Value% - 20.0°C |
| • | %Sensors["1.11.T"].Value(-1, True)% - 20.0°C |
| • | %Sensors["1.11.T"].Value(-1, False)% - 20.0 |
| • | %Sensors["1.11.T"].Value(0, False)% - 20 |
| • | %Sensors["1.11.T"].Value(0, False)% - alarm(20>15) (превышены уставки) |
| • | %Sensors["1.11.T"].Value(0, True)% - 20°C |
| • | %Sensors["1.11.T"].Value(1, False)% - 20.0 |
| • | %Sensors["1.11.T"].Value(2, False)% - 20.00 |
%High% - макс. уставка датчика
Значение верхней уставки датчика.
Параметры аналогичны параметрам переменной %Value%
%Low% - мин. уставка датчика
Значение нижней уставки датчика
Параметры аналогичны параметрам переменной %Value%
%Name% - имя датчика
Пример (в системе один модуль температуры и влажности):
| • | %Sensors.List("Name", "Value", "", True, ": ", ", ") - Температура: -10°C, Влажность: 65% |
%Parent.Name% - имя модуля
%FullName% - имя устройства и имя датчика
Если модуль содержит несколько датчиков, то к имени модуля будет добавлено имя датчика.
Пример (в системе один модуль температуры ("Склад1") и один модуль температуры и влажности ("Улица")):
| • | %Sensors.List("FullName", "Value", "", True, ": ", ", ") - Склад1: 15°C, Улица.Температура: -10°C; Улица.Влажность: 65% |
%Code% - адрес датчика
Адрес датчика ("Т", "H", ...)
Пример (в системе один модуль температуры и влажности):
| • | %Sensors.List("Code") - T-20°C; H-75% |
%Parent.Code% - адрес модуля
Адрес датчика. Если модуль содержит несколько датчиков, то к адресу модуля будет добавлен адрес датчика ("Т", "H", ...)
Пример (в системе два модуля температуры и два модуля температуры и влажности):
| • | %Sensors.List("Code") - 11-20°C; 12-21°C; 13T-20°C; 13H-75%; 14T-23°C; 14H-65% |
%Path% - путь к датчику
Адреса всех устройств, от порта до датчика, через точку.
Пример (в системе два модуля температуры на одном порту и один модуль температуры и влажности на втором порту):
| • | %Sensors.List("Path") - 1.11.T-20°C; 1.12.T-21°C; 2.21.T-23°C; 2.21.H-75% |
Адрес страницы: http://softron.com.ua/alarm/help/index.html?commandvars.htm