EGS workflow скрипты
Содержание
- 1 Назначение
- 2 Примеры
- 2.1 Вызов хранимой процедуры БД (Чистка архива) по расписанию
- 2.2 Копирование команд Включить(turn_on) и Выключить(turn_off) из StreetLighting в связанный с ним по LogicLink элемент StilSoftRelay
- 2.3 Копирование состояний ok_true, ok_false и error_defective из StilSoftRelay в связанный с ним по LogicLink элемент StreetLighting
- 2.4 По тревоге от любого устройства источника BaseObject(например: Ip видеокамера) отправка команды turn_on всем прожекторам StreetLighting в той же зоне
- 2.5 Отправка команды "Выключить" включенным прожекторам StreetLighting по истечении таймаута после включения и только в том случае, если не находится в тревоге ни одна из зон, в которых находятся другие прожекторы StreetLighting подключенные к одному и тому же исполнительному устройству StilSoftRelay
- 2.6 Отправка команды Запустить(start) совместно с соответствующим параметром "Идентификатор файла(fileId)" на "Слаботочная сирена МЕТА(LowCurrentSirenMeta)" находящийся с датчиком источником либо в одном пространстве либо в одной зоне
- 2.7 Трансляция состояний в события (StateEvent)
- 2.8 Открытие шлагбаума по sip при вхождении цели в зону
Назначение
- Вызов хранимой процедуры Базы Данных по расписанию
- Копирование команд от элемента к элементу
- Копирование состояний от элемента к элементу
- Отправка команды при тревоге любого датчика
- Трансляция состояний в события (StateEvent)
- Трансляция состояний устройств в состояние зоны
- Отсечение ложных срабатываний путем перевода зоны в тревогу по минимум двум тревожным устройствам
Примеры
Вызов хранимой процедуры БД (Чистка архива) по расписанию
Для этого необходимо добавить элементы в редакторе СКАДА:
- 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
- Настроить параметры элементов:
- 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 дней от текущей даты, остальные будут очищены.
- 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
- 6. Уличное освещение:Логический вход:LogicInput + Реле Стилсофт:Логический выход:LogicOutput
- Настроить параметры элементов:
- 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
- 6. Реле Стилсофт:Логический вход:LogicInput + Уличное освещение:Логический выход:LogicOutput
- Настроить параметры элементов:
- 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
- 6. Ip видеокамера:Привязка к зоне:ZoneInputPin + Зона:ZoneOutputPin
- 7. Уличное освещение:Привязка к зоне:ZoneInputPin + Зона:ZoneOutputPin
- Настроить параметры элементов:
- 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
- 8. Ip видеокамера:Привязка к зоне:ZoneInputPin + Зона:ZoneOutputPin
- 9. Уличное освещение:Привязка к зоне:ZoneInputPin + Зона:ZoneOutputPin
- 10. Реле Стилсофт:Логический выход:LogicOutput + Уличное освещение:Логический вход:LogicInput
- Настроить параметры элементов:
- 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
- 7.Зона:Привязка к зоне:ZoneOutPutPin + Слаботочная сирена МЕТА:Привязка к зоне:ZoneInputPin
- 8.Зона:Привязка к зоне:ZoneOutPutPin + Болид Пожарная кнопка:Привязка к зоне:ZoneInputPin
- Настроить параметры элементов:
- 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
- Настроить параметры элементов:
- 1. Указать IP адрес компьютера
- 2. У EgsOnUpdate:
- 2.1 Задействовать скрипт установив чекбокс - Включен(enabled)
- 2.2 Дополнительное имя(alias) - source
- 2.3 Параметр элемента(param) - state
- 2.4 Тип элемента (typename) - если необходимо получать событие состояния(state event) со всех типов датчиков на схеме, то указываем BaseObject, если только с одного типа датчика, то например IpVideoCamera, если с нескольких типов датчиков (например Видеокамера, Зона, Болид пожарный датчик), то добавить на схему количество элементов EgsOnUpdate = количеству типов датчиков с которых необходимо получать событие состояния.
- 3. У EgsIfMatches:
- 3.1 Значение параметра(pattern) - возможно указать как одно значение (например alarm_*), так и несколько (alarm_*|error_*) или полностью наименование (alarm_alarm), где:
- alarm_* - все тревоги;
- alarm_*|error_* - все тревоги и все ошибки;
- alarm_alarm - только определенное значение (тревога).
- 3.2 Параметр элемента(param) - state
- 3.3 Соединение(joint) -
- 3.1 Значение параметра(pattern) - возможно указать как одно значение (например alarm_*), так и несколько (alarm_*|error_*) или полностью наименование (alarm_alarm), где:
- 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
Открытие шлагбаума по sip при вхождении цели в зону
Данная схема предназначена для открытия шлагбаума по sip при вхождении указанных целей. Для создания данной схемы необходимо добавить следующие элементы:
- Zone Controller (Скрипт необходимо импортировать отсюда http://maps.integra-s.com:5434/resources/typedef2017/egs/Zone%20Controller.put)
- Компьютер или Сервер (Computer/Server)
- Менеджер устройств (AcuarioManager)
- EGS Модуль (EGSModule)
- EGS активация обновления (EgsOnUpdate)
- EGS обновление параметра (EgsDoUpdate)
- IntegraVideo7Sip
- Зона (Zone) - создать через редактор зон клиента Интегра планета Земля. Как это сделать, можно посмотреть по ссылке
- Шлагбаум (Bascule_barrier)
- Движущийся объект (например Автобус)
Для того, чтобы импортировать скрипт необходимо сначала скопировать и вставить вышеуказанную ссылку в адресную строку браузера, нажать на клавиатуре Enter, в окне браузера нажать правой кнопкой мыши, в появившемся контекстном меню нажать на сохранить как и выбрать удобное для Вас местоположения сохранив скрипт с расширением .put.
В редакторе СКАДА нажать на меню Действия > Импорт элементов > выбрать сохраненный скрипт.
Необходимо добавить следующие связи:
- Компьютер или Сервер: Установленное ПО:SoftwareContainer + Менеджер устройств: ПО:SoftwareContent
- Менеджер устройств: Менеджер устройств: ManagingContainer + IntegraVideo7Sip: Привязка к менеджеру: ManagingContent
- IntegraVideo7Sip: Логический выход: LogicOutput + Шлагбаум: Логический вход: LogicInput
- Шлагбаум: Логический вход: LogicInput + Зона: Логический выход: LogicOutput
- Менеджер устройств: Менеджер устройств: ManagingContainer + EGS Модуль: Привязка к менеджеру: ManagingContent
- EGS Модуль: EGS Выход: EGSOutput + Zone Controler: EGS вход:EGSInput
- EGS Модуль: EGS Выход: EGSOutput + EgsOnUpdate: EGS вход:EGSInput
- EgsOnUpdate: Следующий:EgsNext + EgsDoUpdate: Предыдущий: EgsPrev
Далее необходимо настроить параметры элементов в свойствах элемента:
- Компьютер или Сервер - настроить сетевой адрес
- IntegraVideo7Sip - Сетевой адрес sip, пароль sip, порт sip, Адрес URL, Логин, Пароль. При отправки команды на шлагбаум если соответствующий номер прописан, на сервер Интегра-Видео VII sip будет послана команда sip:invite
- Zone Controller:
- Настройки (settings):
- values - числовые значения для некоторых приоритетов:
- high - повышенный приоритет (1 < high < MaxValue)
- low - пониженный приоритет (0 < low < 1)
- server - строка содержащая либо гуид сервера, на который следует отправлять события, либо имя параметра самого события, содержащего этот гуид, например: server
- values - числовые значения для некоторых приоритетов:
- Настройки (settings):
- EgsOnUpdate:
- Включен(enabled)
- Параметр элемента(param) - trace_zones
- Тип элемента(typename) - Тип движущегося объекта, например MoveableObject(все движущиеся объекты)
- EgsDoUpdate:
- Значение(value) - open
- Параметр элемента(param) - command
- EgsFlow (связь между EgsOnUpdate и EgsDoUpdate) - trace_zones/Zone/Pin/Bascule_barrier
- Зона(Zone):
- Область обслуживания(area), высоты области(area_heights), дополнительный делитель числового приоритета для зоны(trace_factor) заполняются после создания зоны через редактор зон.
- Настройки слежения по зоне(trace_settings) можно посмотреть по ссылке
- Шлагбаум - высота, расположение, номер телефона для открытия шлагбаума.