Обычно для действий в сценариях нужно знать состояние системы на момент выполнения действия, а именно: текущее время, значения и состояния датчиков и т.д.
Для этих целей используются переменные. Переменные выделяются в тексте сообщения символом процента (%) в начале и в конце переменной, и при обработке текста вместо текста переменной внтури %% подставляется реальное текущее значение переменной.
Переменная может иметь параметры для тонкой настройки значения. Параметры указываются в скобках после имени переменной и отделятся друг от друга запятой.
Параметры:
1.[Format: String = "mm/yy hh:nn"] - формат отображение значения времени.
Допустимые символы: dd - день, mm - месяц, yyyy - год, hh - часы, nn - минуты
Пример (для текущего времени 05.12.2021 10:45):
%Time% - 12/21 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
Пример (для текущей даты и времени 05.12.2011 10:45):
%DTime% - 05/12 10:45
Текущая дата и время в формате, заданном в региональных настройках системы (Windows).
Пример (для текущей даты и времени 05.12.2011 10:45):
%DateTime% - 05.12.2011 10:45
Пример (для системы с 25-ю датчиками температуры):
ОПРОС ВЫКЛ. – не включен опрос устройств
ok all – опрос идет, аварий нет и ошибок нет
off all – все датчики выключены
err 1, alarm 7, ok 17 – опрос идет, есть 1 датчик с ошибками и 7 с авариями, 17 - в норме
err all - все датчики с ошибками (вероятно обрыв линии связи)
Список имен и значений всех датчиков. Выключенные датчики не отображаются. Если датчик составной (например, температура и влажность), то будут отображаться только не выключенные сенсоры и для которых задан параметр "Мин" или "Макс" или
Параметры:
1.[NameProp: String = ''FullCode"] - переменная датчика, используемая в качестве имени датчика
2.[ValueProp: String = ''Value"] - переменная датчика, используемая в качестве значения датчика
3.[NameAndValueSeparator: String = '' = "] - разделитель имени и значения датчика
4.[DeviceSeparator: String = ''; "] - разделитель между датчиками
5.[SensorSeparator: String = '' "] - разделитель между значениями датчика
Примеры (для системы с 3-мя датчиками температуры и влажности, для каждого датчика задано имя: "Склад", "Морозильник", "Техотдел", работает только первые два датчика):
Все параметры по умолчанию:
%Sensors.List%
Склад (1.1) = 48,8% 22,2°C; Морозильник (1.2) = 40,6% -5,2°C; Техотдел (1.3) = err
%Sensors.List("FullCode", "Value(-1, True, 1)", " = ", "; ", " ")%
Не показываем адрес датчика:
%Sensors.List("FullName")%
Склад = 48,8% 22,2°C; Морозильник = 40,6% -5,2°C; Техотдел = err
Оставили настройки Мин/Макс только для сенсоров температуры, минимум символов - не показываем единицы измерения, показываем только адрес датчика
%Sensors.List("Code", "Value(-1, False, 1)", ": ", "; ", " ")%
1: 22,2; 2:-5,2; 3: err
Первый датчик с алармом:
%Sensors.List%("FullName")
Склад = 48,8% !30,4°C; Морозильник = 40,6% -5,2°C; Техотдел = err
Отображение аларма в расширеном виде:
%Sensors.List("FullName", "Value(-1, True, 2)")%
Склад = 48,8% !(30,4°C>25°C); Морозильник = 40,6% -5,2°C; Техотдел = err
Раделитель датчиков - перенос строки (для email):
%Sensors.List("FullCode", "Value(-1, True, 1)", " = ", "\n", " ")%
Склад (1.1) = 48,8% 22,2°C
Морозильник (1.2) = 40,6% -5,2°C
Техотдел (1.3) = err
То же что и %Sensors.List%, но выводятся только датчики с авариями.
То же что и %Sensors.List%, но выводятся только датчики, вызвавшие текущее событие.
Параметры:
1.[FracCount: Integer = -1] - количество знаков после запятой, -1 означает, что определяется автоматически.
2.[AddUnits: Boolean = True] - добавлять ли единицы измерения к значению датчика
3.[ShowAlarm: Integer = 1] - показывать ли состояние аварии датчика
Например для текущего значениее датчика 20°C и макс. уставки 15°С:
при ShowAlarm = 0 будет выведено "20.0°C"
при ShowAlarm = 1 будет выведено "!20.0°C"
при ShowAlarm = 2 будет выведено "!(20.0°C>15.0°C)"
В зависимости от текущего состояния датчика, может быть такие значения:
err - ошибка устройства
off - устройство выключено
20.0°C - текущее значение датчика (при условии что устройство работает нормально, уставки не превышены)
!20.0°C - текущее значение датчика (устройство работает нормально, превышены уставки), параметр ShowAlarm = 1
!(20.0°C>15.0°C) - текущее значение датчика (устройство работает нормально, превышены уставки), параметр ShowAlarm = 2
Пример (обращение идет к датчику с адресом 1):
%Sensors["1.1.T"].Value% - 20.0°C
%Sensors["1.1.T"].Value(-1, True)% - 20.0°C
%Sensors["1.1.T"].Value(-1, False)% - 20.0
%Sensors["1.1.T"].Value(0, False)% - 20
%Sensors["1.1.T"].Value(0, False)% - !(20>15) (превышены уставки)
%Sensors["1.1.T"].Value(-1, False, 1)% - !20.0 (превышены уставки)
%Sensors["1.1.T"].Value(-1, False, 0)% - 20.0 (превышены уставки)
%Sensors["1.1.T"].Value(0, True)% - 20°C
%Sensors["1.1.T"].Value(1, False)% - 20.0
%Sensors["1.1.T"].Value(2, False)% - 20.00
Имя сенсора ("Температура", "Влажность", ...).
Код сенсора ("Т", "H", ...)
Адреса всех устройств, от адаптера до датчика, через точку ("1.1.Т", "1.2.H", ...)
Имя датчика и имя сенсора. Если имя датчика не задано, используется адрес ("Склад.Температура", "1.Температура")
Имя датчика, имя сенсора, путь к сенсору. Если имя датчика не задано, используется адрес ("Склад.Температура (1.1.T)", "1.Температура (1.1.T)")
Примеры (для датчика 1 не задано имя, для датчика 2 задано имя "Склад"):
%Sensors["1.1.T"].Name% - Температура
%Sensors["1.1.T"].Code% - T
%Sensors["1.1.T"].PathId% - 1.1.T
%Sensors["1.1.T"].FullCode% - 1.Температура (1.1.T)
%Sensors["1.1.T"].FullName% - 1.Температура
%Sensors["1.2.T"].Name% - Температура
%Sensors["1.2.T"].Code% - T
%Sensors["1.2.T"].PathId% - 1.2.T
%Sensors["1.2.T"].FullCode% - Склад.Температура (1.2.T)
%Sensors["1.2.T"].FullName% - Склад.Температура
Значение верхней уставки датчика.
Параметры аналогичны параметрам переменной %Value%
Значение нижней уставки датчика
Параметры аналогичны параметрам переменной %Value%
Адрес страницы: http://softron.com.ua/alarm/help/index.html?commandvars.htm