Приложение "Страж-Сервер" (сервер) > Сценарии >

Переменные

Назад   Вперед

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

 

Для этих целей используются переменные. Переменные выделяются в тексте сообщения символом процента (%) в начале и в конце переменной, и при обработке текста вместо текста переменной внтури %% подставляется реальное текущее значение переменной.

 

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

 
Дата/время

%Time% - текущее время

Параметры:

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

%DTime% - день/месяц и время

Пример (для текущей даты и  времени 05.12.2011 10:45):

%DTime% - 05/12 10:45

%DateTime% - текущие дата и время

Текущая дата и время в формате, заданном в региональных настройках системы (Windows).

Пример (для текущей даты и  времени 05.12.2011 10:45):

%DateTime% - 05.12.2011 10:45

Состояниие всех датчиков

%Sensors.State% - текущее состояние всех датчиков

Пример (для системы с 25-ю датчиками температуры):

ОПРОС ВЫКЛ. – не включен опрос устройств

ok all – опрос идет, аварий нет и ошибок нет

off all – все датчики выключены

err 1, alarm 7, ok 17 – опрос идет, есть 1 датчик с ошибками и 7 с авариями, 17 - в норме

err all - все датчики с ошибками (вероятно обрыв линии связи)

 
%Sensors.List% - текущие значения всех датчиков

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

"Норма"
 

Параметры:

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.ListAlarm% - текущие значения всех датчиков

То же что и %Sensors.List%, но выводятся только датчики с авариями.

%Sensors.ListEvent% - текущие значения всех датчиков

То же что и %Sensors.List%, но выводятся только датчики, вызвавшие текущее событие.

 

Состояние конкретного датчика

Переменная сенсора вначале содержит обращение к конкретному сенсору вида Sensors["1.1.T"]
 
%Value% - текущее значение сенсора

Параметры:

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

%Name% - имя датчика

Имя сенсора ("Температура", "Влажность", ...).

%Code% - адрес датчика

Код сенсора ("Т", "H", ...)

%Path% - путь к сенсору

Адреса всех устройств, от адаптера до датчика, через точку ("1.1.Т", "1.2.H", ...)

%FullName% - имя устройства и имя датчика

Имя датчика и имя сенсора. Если имя датчика не задано, используется адрес ("Склад.Температура", "1.Температура")

%FullCode% - адрес датчика

Имя датчика, имя сенсора, путь к сенсору. Если имя датчика не задано, используется адрес ("Склад.Температура (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% - Склад.Температура

 
%Parent.Name% - имя модуля

Имя модуля.

%Parent.Code% - адрес модуля

Адрес модуля.

%High% - макс. уставка датчика

Значение верхней уставки датчика.

Параметры аналогичны параметрам переменной %Value%

%Low% - мин. уставка датчика

Значение нижней уставки датчика

Параметры аналогичны параметрам переменной %Value%

 


Адрес страницы: http://softron.com.ua/alarm/help/index.html?commandvars.htm