EGS workflow скрипты

Материал из Integra-S Wiki
Версия от 09:22, 9 июля 2020; Wikiadmin (обсуждение | вклад) (Трансляция состояний в события (StateEvent))
Перейти к: навигация, поиск

Содержание

Назначение

  1. Вызов хранимой процедуры Базы Данных по расписанию
  2. Копирование команд от элемента к элементу
  3. Копирование состояний от элемента к элементу
  4. Отправка команды при тревоге любого датчика
  5. Трансляция состояний в события (StateEvent)
  6. Трансляция состояний устройств в состояние зоны
  7. Отсечение ложных срабатываний путем перевода зоны в тревогу по минимум двум тревожным устройствам

Примеры

Вызов хранимой процедуры БД (Чистка архива) по расписанию

Для этого необходимо добавить элементы в редакторе СКАДА:

1. Компьютер
2. Acuario Manager
3. EGS Модуль
4. EgsOnSchedule
5. EgsDoCallStored
Добавить связи между элементами:
1. Компьютер: Установленное ПО:SoftwareContainer + Менеджер устройств: ПО:SoftwareContent
2. Менеджер устройств: Менеджер устройств: ManagingContainer + Egs Модуль: Привязка к менеджеру: ManagingContent
3. EGS Модуль: Egs выход:EGSOutput + EgsOnSсhedule: Egs вход:EgsInput
4. EgsOnShedule: Egs следующий:EGSNext + EgsDoCallStored: EGS предыдущий:EgsPrev
Схема процедуры.jpg
Настроить параметры элементов:
1. Указать IP адрес компьютера
2. У EgsOnSchedule:
2.1 Задействовать скрипт установив чекбокс - Включен(enabled)
2.2 В параметре "Расписание"(schedule) указать желаемую дату и время запуска.

Пример расписания:

  • * * * * * * - каждую секунду;
  • 0 10 * * * * - раз в час когда минута будет = 10 (например: в 13часов 10минут 0 сек; 14часов 10минут 0сек)
  • 0 0 9 * * * - каждый день в 13 часов (разница в 4 часа), т.е. для того чтобы запустить расписание в 13 часов необходимо добавить расписание 0 0 9 * * *
  • 0 0 9 3 * * - каждого 3-го числа месяца раз в 13 часов;
  • 0 0 9 3 6 *- запуск расписания 3 июня в 13 часов;
  • 0 0 9 * * 0 - запуск расписания по воскресеньям в 13 часов;
3. У EgsDoCallStored:
3.1 Имя хранимой процедуры БД(proc): graph.clearing_all_archive
3.2 Параметры хранимой процедуры БД(args): "ServerId", "1 month", где первым параметром является идентификатор сервера, на котором выполняется скрипт, а вторым - интервал времени, ранее которого будут удалены записи. Если задать следующий аргумент: "ServerId", "7 days", то будут сохранены записи за 7 дней от текущей даты, остальные будут очищены.
Id serv.jpg
3.3 Таймаут - ожидание ответа от сервера в течении указанного времени, после чего записывает этот ответ в Результат(result) в виде json

Копирование команд Включить(turn_on) и Выключить(turn_off) из StreetLighting в связанный с ним по LogicLink элемент StilSoftRelay

Для этого необходимо добавить элементы в редакторе СКАДА:

1. Компьютер
2. Acuario Manager
3. EGS Модуль
4. EgsOnUpdate
5. EgsIfMatches
6. EgsDoUpdate
7. Уличное освещение (StreetLighting)
8. Реле Стилсофт (StilSoftRelay)
Добавить связи между элементами:
1. Компьютер: Установленное ПО:SoftwareContainer + Менеджер устройств: ПО:SoftwareContent
2. Менеджер устройств: Менеджер устройств: ManagingContainer + Egs Модуль: Привязка к менеджеру: ManagingContent
3. EGS Модуль:Egs выход:EGSOutput + EgsOnUpdate:Egs вход:EgsInput
4. EgsOnUpdate:Egs следующий:EGSNext + EgsIfMatches:EGS предыдущий:EgsPrev
5. EgsIfMatches:Egs следующий:EGSNext + EgsDoUpdate:EGS предыдущий:EgsPrev
Схема StreetLighting.jpg
6. Уличное освещение:Логический вход:LogicInput + Реле Стилсофт:Логический выход:LogicOutput
Схема StreetLighting и реле.jpg
Настроить параметры элементов:
1. Указать IP адрес компьютера
2. У EgsOnUpdate:
2.1 Задействовать скрипт установив чекбокс - Включен(enabled)
2.2 Имя объекта(name) - lamp
2.3 Параметр элемента(param) - command
2.4 Тип элемента(typename) - StreetLighting
3. У EgsIfMatches:
3.1 Значение параметра(pattern) - turn_*
3.2 Имя объекта(name)
3.3 Установить чекбокс - Ожидаемый(expected)
3.4 Параметр элемента(param) - command
4. У EgsDoUpdate:
4.1 Значение(value) - lamp.command, где lamp - это имя объекта указанное в EgsOnUpdate
4.2 Имя объекта(name)
4.3 Параметр объекта(param) - command
5. У линка, соединяющий EgsIfMatches с EgsDoUpdate указать в параметре Путь(path) - LogicInput/StilSoftRelay

Копирование состояний ok_true, ok_false и error_defective из StilSoftRelay в связанный с ним по LogicLink элемент StreetLighting

Для этого необходимо добавить элементы в редакторе СКАДА:

1. Компьютер
2. Acuario Manager
3. EGS Модуль
4. EgsOnUpdate
5. EgsIfMapped
6. EgsDoUpdate
7. Уличное освещение (StreetLighting)
8. Реле Стилсофт (StilSoftRelay)
Добавить связи между элементами:
1. Компьютер: Установленное ПО:SoftwareContainer + Менеджер устройств: ПО:SoftwareContent
2. Менеджер устройств: Менеджер устройств: ManagingContainer + Egs Модуль: Привязка к менеджеру: ManagingContent
3. EGS Модуль:Egs выход:EGSOutput + EgsOnUpdate:Egs вход:EgsInput
4. EgsOnUpdate:Egs следующий:EGSNext + EgsIfMapped:EGS предыдущий:EgsPrev
5. EgsIfMapped:Egs следующий:EGSNext + EgsDoUpdate:EGS предыдущий:EgsPrev
Схема копи состояний.jpg
6. Реле Стилсофт:Логический вход:LogicInput + Уличное освещение:Логический выход:LogicOutput
Схема копи состояний реле.jpg
Настроить параметры элементов:
1. Указать IP адрес компьютера
2. У EgsOnUpdate:
2.1 Задействовать скрипт установив чекбокс - Включен(enabled)
2.2 Имя объекта(name) - relay
2.3 Параметр элемента(param) - state
2.4 Тип элемента(typename) - StilSoftRelay
3. У EgsIfMapped:
3.1 Имя объекта(name) - lampstate
3.2 Установить чекбокс - Ожидаемый(expected)
3.3 Параметр элемента(param) - state
3.4 Таблица соответствий (mapping) - { "ok_true": "ok_active", "ok_false": "ok_inactive", "error_defective": "error_defective" }, где ok_true - это состояние Реле Стилсофт(StilSoftRelay), ok_active - Уличное освещение)StreetLighting
4. У EgsDoUpdate:
4.1 Значение(value) - lampstate
4.2 Имя объекта(name)
4.3 Параметр объекта(param) - state
5. У линка, соединяющий EgsIfMapped с EgsDoUpdate указать в параметре Путь(path) - LogicInput/StreetLighting


По тревоге от любого устройства источника BaseObject(например: Ip видеокамера) отправка команды turn_on всем прожекторам StreetLighting в той же зоне

Для этого необходимо добавить элементы в редакторе СКАДА:

1. Компьютер
2. Acuario Manager
3. EGS Модуль
4. EgsOnUpdate
5. EgsIfMatches
6. EgsDoUpdate
7. Ip видеокамера
8. Уличное освещение(StreetLighting)
9. Зона
Добавить связи между элементами:
1. Компьютер: Установленное ПО:SoftwareContainer + Менеджер устройств: ПО:SoftwareContent
2. Менеджер устройств: Менеджер устройств: ManagingContainer + Egs Модуль: Привязка к менеджеру: ManagingContent
3. EGS Модуль:Egs выход:EGSOutput + EgsOnUpdate:Egs вход:EgsInput
4. EgsOnUpdate:Egs следующий:EgsNext + EgsIfMatches:Egs предыдущий:EgsPrev
5. EgsIfMatches:Egs следующий:EgsNext + EgsDoUpdate:Egs предыдущий:EgsPrev
On light.jpg
6. Ip видеокамера:Привязка к зоне:ZoneInputPin + Зона:ZoneOutputPin
7. Уличное освещение:Привязка к зоне:ZoneInputPin + Зона:ZoneOutputPin
Зона камер.jpg
Настроить параметры элементов:
1. Указать IP адрес компьютера
2. У EgsOnUpdate:
2.1 Задействовать скрипт установив чекбокс - Включен(enabled)
2.2 Имя объекта(name)
2.3 Параметр элемента (param) - state
2.4 Тип элемента(typename) - BaseObject
3. У EgsIfMatches:
3.1 Имя объекта(name)
3.2 Установить чекбокс - Ожидаемый(expected)
3.3 Параметр элемента(param) - state
3.4 Значение параметра(pattern) - alarm_*
4. У EgsDoUpdate:
4.1 Значение(value) - turn_on
4.2 Имя объекта(name)
4.3 Параметр объекта(param) - command
5. У линка, соединяющий EgsIfMatches с EgsDoUpdate указать в параметре Путь(path) - Link/Zone/Link/StreetLighting

Отправка команды "Выключить" включенным прожекторам StreetLighting по истечении таймаута после включения и только в том случае, если не находится в тревоге ни одна из зон, в которых находятся другие прожекторы StreetLighting подключенные к одному и тому же исполнительному устройству StilSoftRelay

Для этого необходимо добавить элементы в редакторе СКАДА:

1. Компьютер
2. Acuario Manager
3. EGS Модуль
4. EgsIfMatches(2шт)
5. EgsIfElapsed
6. EgsOnSchedule
7. EgsDoUpdate
9. Ip видеокамера
10. Уличное освещение(StreetLighting)
11. Реле Стилсофт
12. Зона
Добавить связи между элементами:
1. Компьютер: Установленное ПО:SoftwareContainer + Менеджер устройств: ПО:SoftwareContent
2. Менеджер устройств: Менеджер устройств: ManagingContainer + Egs Модуль: Привязка к менеджеру: ManagingContent
3. EGS Модуль:Egs выход:EGSOutput + EgsOnSchedule:Egs вход:EgsInput
4. EgsOnSchedule:Egs следующий:EgsNext + EgsIfMatches:Egs предыдущий:EgsPrev
5. EgsIfMatches:Egs следующий:EgsNext + EgsIfElapsed:Egs предыдущий:EgsPrev
6. EgsIfElapsed:Egs следующий:EgsNext + EgsIfMatches:Egs предыдущий:EgsPrev
7. EgsIfMatches:Egs следующий:EgsNext + EgsDoUpdate:Egs предыдущий:EgsPrev
Выкл прожекторов.jpg
8. Ip видеокамера:Привязка к зоне:ZoneInputPin + Зона:ZoneOutputPin
9. Уличное освещение:Привязка к зоне:ZoneInputPin + Зона:ZoneOutputPin
10. Реле Стилсофт:Логический выход:LogicOutput + Уличное освещение:Логический вход:LogicInput
Выкл прожекторов2.jpg
Настроить параметры элементов:
1. Указать IP адрес компьютера
2. У EgsOnSchedule:
2.1 Задействовать скрипт установив чекбокс - Включен(enabled)
2.2 Имя объекта(name)
2.3 Указать в расписание желаемое время запуска
3. У EgsIfMatches:
3.1 Имя объекта(name) - lamp
3.2 Установить чекбокс - Ожидаемый(expected)
3.3 Параметр элемента(param) - state
3.4 Значение параметра(pattern) - ok_active
4. У EgsIfElapsed:
4.1 Параметр элемента - state
4.2 Таймаут - например 00:00:30. Т.е. если включается освещение, то только по истечении 30 секунд будет отправлена команда выключить.
5. У EgsIfMatches:
5.1 Параметр элемента - state
5.2 Значение параметра - alarm_*
5.2 Задействовать чекбокс - Соединение
6. У EgsDoUpdate:
6.1 Значение параметра(pattern) - turn_off
6.2 Имя объекта(name)
6.3 Параметр объекта(param) - command
7. У линка, соединяющий EgsOnSchedule с EgsIfMatches указать в параметре Путь(path) - */StreetLighting
8. У линка, соединяющий EgsIfElapsed с EgsIfMatches указать в параметре Путь(path) - LogicInput/StilSoftRelay/LogicOutput/StreetLighting/ZoneLink/Zone
9. У линка, соединяющий EgsIfMatches с EgsDoUpdate указать в параметре Путь(path) - lamp

Отправка команды Запустить(start) совместно с соответствующим параметром "Идентификатор файла(fileId)" на "Слаботочная сирена МЕТА(LowCurrentSirenMeta)" находящийся с датчиком источником либо в одном пространстве либо в одной зоне

Для этого необходимо добавить элементы в редакторе СКАДА:

1. Компьютер
2. Acuario Manager
3. EGS Модуль
4. EgsOnUpdate
5. EgsIfMapped
6. EgsDoUpdate(2шт.)
7. Слаботочная сирена МЕТА(LowCurrentSirenMeta)
8. Болид Пожарная кнопка(BOLID_FireButton)
9. Зона
Добавить связи между элементами:
1. Компьютер: Установленное ПО:SoftwareContainer + Менеджер устройств: ПО:SoftwareContent
2. Менеджер устройств: Менеджер устройств: ManagingContainer + Egs Модуль: Привязка к менеджеру: ManagingContent
3. EGS Модуль:Egs выход:EGSOutput + EgsOnUpdate:Egs вход:EgsInput
4. EgsOnUpdate:Egs следующий:EgsNext + EgsIfMapped:Egs предыдущий:EgsPrev
5. EgsIfMapped:Egs следующий:EgsNext + EgsDoUpdate:Egs предыдущий:EgsPrev
6. EgsDoUpdate:Egs следующий:EgsNext + EgsDoUpdate:Egs предыдущий:EgsPrev
Схема запуска сирены.jpg
7.Зона:Привязка к зоне:ZoneOutPutPin + Слаботочная сирена МЕТА:Привязка к зоне:ZoneInputPin
8.Зона:Привязка к зоне:ZoneOutPutPin + Болид Пожарная кнопка:Привязка к зоне:ZoneInputPin
Схема сирены.jpg
Настроить параметры элементов:
1. Указать IP адрес компьютера
2. У EgsOnUpdate:
2.1 Задействовать скрипт установив чекбокс - Включен(enabled)
2.2 Имя объекта(name)
2.3 Параметр элемента(param) - state
2.4 Тип элемента (typename) - BOLID_FireButton
3. У EgsIfMapped:
3.1 Имя объекта(name) - fileId
3.2 Установить чекбокс - Ожидаемый(expected)
3.3 Параметр элемента(param) - state
3.4 Таблица соответствий(mapping) - {"alarm_*": "2", "error_*": "1" }
4. У линка, соединяющий EgsIfMapped с EgsDoUpdate указать в параметре Путь(path) - Link/Space|Zone/Link/LowCurrentSirenMeta
5. У EgsDoUpdate:
5.1 Параметр элемента(param) - fileId
5.2 Значение параметра(value) - fileId
6. У EgsDoUpdate:
6.1 Параметр элемента(param) - command
6.2 Значение параметра(value) - start

Трансляция состояний в события (StateEvent)

Для этого необходимо добавить элементы в редакторе СКАДА:

1. Компьютер
2. Acuario Manager
3. EGS Модуль
4. EgsOnUpdate
5. EgsIfMatches
6. EgsDoCreate
Добавить связи между элементами:
1. Компьютер: Установленное ПО:SoftwareContainer + Менеджер устройств: ПО:SoftwareContent
2. Менеджер устройств: Менеджер устройств: ManagingContainer + Egs Модуль: Привязка к менеджеру: ManagingContent
3. EGS Модуль:Egs выход:EGSOutput + EgsOnUpdate:Egs вход:EgsInput
4. EgsOnUpdate:Egs следующий:EgsNext + EgsIfMatches:Egs предыдущий:EgsPrev
5. EgsIfMatches:Egs следующий:EgsNext + EgsDoCreate:Egs предыдущий:EgsPrev
State event.jpg
Настроить параметры элементов:
1. Указать IP адрес компьютера
2. У EgsOnUpdate:
2.1 Задействовать скрипт установив чекбокс - Включен(enabled)
2.2 Дополнительное имя(alias) - source
2.3 Параметр элемента(param) - state
2.4 Тип элемента (typename) - если необходимо получать событие состояния(state event) со всех типов датчиков, то указываем BaseObject, если только с одного типа датчика, то например VideoCamera
EGSupdate.jpg
3. У EgsIfMatches:
3.1 Значение параметра(pattern) - возможно указать как одно значение (например alarm_*), так и несколько (alarm_*|error_*) или полностью наименование (alarm_alarm)
3.2 Параметр элемента(param) - state
3.3 Соединение(joint) -
4. У EgsDoCreate:
4.1 Имена параметров(identity) - owner,state
4.2 Обновляемые параметры(novelty) - event_status
4.3 Таблица соответствий(mapping) - {"owner":"source.Id","server":"source.ServerId","position":"source.position","state":"source[\"state\"].Text?.Replace?('_', '.')","datetime":"source[\"state\"].DateTime","version":"source[\"state\"].Version","itemtype":"source.MyType","name":"source.name","alarm_info":"(source as Zone)?.alarm_info"}
4.4 Тип элемента(typename) - StateEvent