Подсистема реакций и сценариев (Reflex Center) — различия между версиями
Wikiadmin (обсуждение | вклад)  | 
				Wikiadmin (обсуждение | вклад)   | 
				||
| Строка 1: | Строка 1: | ||
__FORCETOC__  | __FORCETOC__  | ||
== Назначение ==  | == Назначение ==  | ||
| − | # Отслеживание изменения параметра объекта источника  | + | # Отслеживание изменения параметра объекта источника.  | 
| − | # Поиск связанного с источником объекта приемника  | + | # Поиск связанного с источником объекта приемника.  | 
| − | # Выполнение действий с объектом приемником в соответствии с условием  | + | # Выполнение действий с объектом приемником в соответствии с условием.  | 
== Базовая схема ==  | == Базовая схема ==  | ||
В редакторе СКАДА необходимо добавить элементы:<br />  | В редакторе СКАДА необходимо добавить элементы:<br />  | ||
| − | # Reflex Center (Скрипт необходимо импортировать отсюда [http://maps.integra-s.com:5434/resources/typedef2017/egs/Reflex%20Center.put Reflex Center])  | + | # Reflex Center (Скрипт необходимо импортировать отсюда [http://maps.integra-s.com:5434/resources/typedef2017/egs/Reflex%20Center.put Reflex Center]).  | 
| − | ## Для того, чтобы импортировать скрипт необходимо сначала скопировать и вставить вышеуказанную ссылку в адресную строку браузера, нажать на клавиатуре Enter, в окне браузера нажать правой кнопкой мыши, в появившемся контекстном меню нажать на сохранить как и выбрать удобное для Вас местоположения сохранив скрипт с расширением .put. В редакторе СКАДА нажать на меню Действия > Импорт элементов > выбрать сохраненный скрипт  | + | ## Для того, чтобы импортировать скрипт необходимо сначала скопировать и вставить вышеуказанную ссылку в адресную строку браузера, нажать на клавиатуре Enter, в окне браузера нажать правой кнопкой мыши, в появившемся контекстном меню нажать на сохранить как и выбрать удобное для Вас местоположения сохранив скрипт с расширением .put. В редакторе СКАДА нажать на меню Действия > Импорт элементов > выбрать сохраненный скрипт.  | 
| − | # Компьютер или Сервер (Computer/Server)  | + | # Компьютер или Сервер (Computer/Server).  | 
| − | # Менеджер устройств (AcuarioManager)  | + | # Менеджер устройств (AcuarioManager).  | 
| − | # EGS Модуль (EGSModule)  | + | # EGS Модуль (EGSModule).  | 
Необходимо добавить следующие связи:<br />  | Необходимо добавить следующие связи:<br />  | ||
| − | #Reflex Center: EGS вход:EGSInput + EGS Модуль: EGS Выход: EGSOutput<br />  | + | #Reflex Center: EGS вход:EGSInput + EGS Модуль: EGS Выход: EGSOutput.<br />  | 
| − | #EGS Модуль: Привязка к менеджеру: ManagingContent + Менеджер устройств: Менеджер устройств: ManagingContainer<br />  | + | #EGS Модуль: Привязка к менеджеру: ManagingContent + Менеджер устройств: Менеджер устройств: ManagingContainer.<br />  | 
| − | #Менеджер устройств: ПО:SoftwareContent + Компьютер или Сервер: Установленное ПО:SoftwareContainer<br />  | + | #Менеджер устройств: ПО:SoftwareContent + Компьютер или Сервер: Установленное ПО:SoftwareContainer.<br />  | 
[[File:base connection reflex.jpg|центр]]  | [[File:base connection reflex.jpg|центр]]  | ||
== Настройка ==  | == Настройка ==  | ||
| − | # У компьютера/сервера должен быть настроен параметр сетевой адрес (ip)  | + | # У компьютера/сервера должен быть настроен параметр сетевой адрес (ip).  | 
# Параметры триггера:  | # Параметры триггера:  | ||
| − | ## [http://maps.integra-s.com:5434/resources/typedef2017/jsonpath.php?url=/egs/Reflex%20Center.put&path=0/params/script/value Текст скрипта (script)]  | + | ## [http://maps.integra-s.com:5434/resources/typedef2017/jsonpath.php?url=/egs/Reflex%20Center.put&path=0/params/script/value Текст скрипта (script)].  | 
| − | ## Включен (enabled) - задействовать триггер  | + | ## Включен (enabled) - задействовать триггер.  | 
## Настройки (settings) - список сценариев, имеющих следующие параметры:  | ## Настройки (settings) - список сценариев, имеющих следующие параметры:  | ||
| − | ### enabled - включить/выключить сценарий  | + | ### enabled - включить/выключить сценарий;  | 
| − | ### source - список гуидов и/или имен типов объектов источников  | + | ### source - список гуидов и/или имен типов объектов источников;  | 
| − | ### target - путь от объекта источника к объекту приемнику  | + | ### target - путь от объекта источника к объекту приемнику;  | 
| − | ### condition - условия, применяемые к объекту источник (source)  | + | ### condition - условия, применяемые к объекту источник (source);  | 
| − | ### action - действия, применяемые к объекту приемника (target)  | + | ### action - действия, применяемые к объекту приемника (target);  | 
| − | ### params - список параметров рефлексов в виде таблицы ключ/значение, где ключ - имя параметра рефлекса, а значение - строковая форма значения параметра, подставляется в condition и action в виде {paramname}, где paramname - имя параметра  | + | ### params - список параметров рефлексов в виде таблицы ключ/значение, где ключ - имя параметра рефлекса, а значение - строковая форма значения параметра, подставляется в condition и action в виде {paramname}, где paramname - имя параметра;  | 
| − | ### tree - дерево из трех уровней где ключами являются значения числовых параметров condition и action, т.е. вида {0}, {1} и {2}, подходящей по смыслу ветки, где номер обозначает глубину, тогда как значение нижнего уровня подставляется вместо {3}  | + | ### tree - дерево из трех уровней где ключами являются значения числовых параметров condition и action, т.е. вида {0}, {1} и {2}, подходящей по смыслу ветки, где номер обозначает глубину, тогда как значение нижнего уровня подставляется вместо {3};  | 
### operation - список указывающий операции сервера для запуска сценария:  | ### operation - список указывающий операции сервера для запуска сценария:  | ||
| − | #### create - создание объекта  | + | #### create - создание объекта;  | 
| − | #### update - изменение объекта  | + | #### update - изменение объекта;  | 
| − | #### delete - удаление объекта  | + | #### delete - удаление объекта;  | 
| − | # sсhedule - опциональный список расписаний для запуска скрипта (вместо запуска по событию) в расширенном формате cron  | + | # sсhedule - опциональный список расписаний для запуска скрипта (вместо запуска по событию) в расширенном формате cron;  | 
| − | # comment - комментарий пользователя, описание сценария  | + | # comment - комментарий пользователя, описание сценария.  | 
== Замечания ==  | == Замечания ==  | ||
| − | # Скрипт запускается либо по расписанию (если указано), либо по событию  | + | # Скрипт запускается либо по расписанию (если указано), либо по событию.  | 
| − | # Можно указывать несколько расписаний (так, например, можно настроить запуск действия во вторник в час дня и среду в два часа дня)  | + | # Можно указывать несколько расписаний (так, например, можно настроить запуск действия во вторник в час дня и среду в два часа дня).  | 
| − | # Последним элементом target должен быть указан желаемый тип приемника (даже если он совпадает с источником)  | + | # Последним элементом target должен быть указан желаемый тип приемника (даже если он совпадает с источником).  | 
| − | # После запуска скрипта в параметре hash появится хеш текста скрипта, который должен быть равен тексту по следующей ссылке [http://maps.integra-s.com:5434/resources/typedef2017/jsonpath.php?url=/egs/Reflex%20Center.put&path=0/params/hash/value ХEШ], в том случае если скрипт не был изменен  | + | # После запуска скрипта в параметре hash появится хеш текста скрипта, который должен быть равен тексту по следующей ссылке [http://maps.integra-s.com:5434/resources/typedef2017/jsonpath.php?url=/egs/Reflex%20Center.put&path=0/params/hash/value ХEШ], в том случае если скрипт не был изменен.  | 
# Формат расписания cron расширен секундами следующим образом:  | # Формат расписания cron расширен секундами следующим образом:  | ||
[[File:cron.jpg|центр]]  | [[File:cron.jpg|центр]]  | ||
| Строка 50: | Строка 50: | ||
==== Схема "Рассчитывание скорости и направления у движущегося объекта по предыдущему и текущему значению Расположения (position)" ====  | ==== Схема "Рассчитывание скорости и направления у движущегося объекта по предыдущему и текущему значению Расположения (position)" ====  | ||
Пример работы:<br />  | Пример работы:<br />  | ||
| − | Версия Acuario Manager не ниже 2.11.1.229  | + | Версия Acuario Manager не ниже 2.11.1.229.  | 
| − | Для создания данной схемы необходимо добавить элементы и связи как описано в [[#Базовая схема| Базовой схеме]], так же элементы Автобус (Bus), Симулятор движения (Position Simulator 1),описание которого приведено на странице [[Симулятор движения (Position simulator 1)]], и настроить в свойствах Симулятора движения параметры  | + | Для создания данной схемы необходимо добавить элементы и связи как описано в [[#Базовая схема| Базовой схеме]], так же элементы Автобус (Bus), Симулятор движения (Position Simulator 1),описание которого приведено на странице [[Симулятор движения (Position simulator 1)]], и настроить в свойствах Симулятора движения параметры.<br />  | 
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
В параметре Настройки (settings) элемента Reflex Center удалить присутствующий сценарий и добавить следующий:<br />  | В параметре Настройки (settings) элемента Reflex Center удалить присутствующий сценарий и добавить следующий:<br />  | ||
  {"speed and heading": {  |   {"speed and heading": {  | ||
Версия 17:13, 10 марта 2020
Содержание
Назначение
- Отслеживание изменения параметра объекта источника.
 - Поиск связанного с источником объекта приемника.
 - Выполнение действий с объектом приемником в соответствии с условием.
 
Базовая схема
В редакторе СКАДА необходимо добавить элементы:
-  Reflex Center (Скрипт необходимо импортировать отсюда Reflex Center).
- Для того, чтобы импортировать скрипт необходимо сначала скопировать и вставить вышеуказанную ссылку в адресную строку браузера, нажать на клавиатуре Enter, в окне браузера нажать правой кнопкой мыши, в появившемся контекстном меню нажать на сохранить как и выбрать удобное для Вас местоположения сохранив скрипт с расширением .put. В редакторе СКАДА нажать на меню Действия > Импорт элементов > выбрать сохраненный скрипт.
 
 - Компьютер или Сервер (Computer/Server).
 - Менеджер устройств (AcuarioManager).
 - EGS Модуль (EGSModule).
 
Необходимо добавить следующие связи:
- Reflex Center: EGS вход:EGSInput + EGS Модуль: EGS Выход: EGSOutput.
 - EGS Модуль: Привязка к менеджеру: ManagingContent + Менеджер устройств: Менеджер устройств: ManagingContainer.
 - Менеджер устройств: ПО:SoftwareContent + Компьютер или Сервер: Установленное ПО:SoftwareContainer.
 
Настройка
- У компьютера/сервера должен быть настроен параметр сетевой адрес (ip).
 -  Параметры триггера:
- Текст скрипта (script).
 - Включен (enabled) - задействовать триггер.
 -  Настройки (settings) - список сценариев, имеющих следующие параметры:
- enabled - включить/выключить сценарий;
 - source - список гуидов и/или имен типов объектов источников;
 - target - путь от объекта источника к объекту приемнику;
 - condition - условия, применяемые к объекту источник (source);
 - action - действия, применяемые к объекту приемника (target);
 - params - список параметров рефлексов в виде таблицы ключ/значение, где ключ - имя параметра рефлекса, а значение - строковая форма значения параметра, подставляется в condition и action в виде {paramname}, где paramname - имя параметра;
 - tree - дерево из трех уровней где ключами являются значения числовых параметров condition и action, т.е. вида {0}, {1} и {2}, подходящей по смыслу ветки, где номер обозначает глубину, тогда как значение нижнего уровня подставляется вместо {3};
 -  operation - список указывающий операции сервера для запуска сценария:
- create - создание объекта;
 - update - изменение объекта;
 - delete - удаление объекта;
 
 
 
 - sсhedule - опциональный список расписаний для запуска скрипта (вместо запуска по событию) в расширенном формате cron;
 - comment - комментарий пользователя, описание сценария.
 
Замечания
- Скрипт запускается либо по расписанию (если указано), либо по событию.
 - Можно указывать несколько расписаний (так, например, можно настроить запуск действия во вторник в час дня и среду в два часа дня).
 - Последним элементом target должен быть указан желаемый тип приемника (даже если он совпадает с источником).
 - После запуска скрипта в параметре hash появится хеш текста скрипта, который должен быть равен тексту по следующей ссылке ХEШ, в том случае если скрипт не был изменен.
 - Формат расписания cron расширен секундами следующим образом:
 
Сценарии:
Схема "Рассчитывание скорости и направления у движущегося объекта по предыдущему и текущему значению Расположения (position)"
Пример работы:
Версия Acuario Manager не ниже 2.11.1.229.
Для создания данной схемы необходимо добавить элементы и связи как описано в  Базовой схеме, так же элементы Автобус (Bus), Симулятор движения (Position Simulator 1),описание которого приведено на странице Симулятор движения (Position simulator 1), и настроить в свойствах Симулятора движения параметры.
В параметре Настройки (settings) элемента Reflex Center удалить присутствующий сценарий и добавить следующий:
{"speed and heading": {
   "enabled": true,
   "source": [
     "MoveableObject" 
   ],
   "target": [
     "MoveableObject" 
   ],
   "condition": "position; true",
   "action": "let pos0 = it[\"position\"].Trace(0) \r\nlet pos1 = it[\"position\"].Trace(1)\r\nlet secs = (pos0.DateTime - pos1.DateTime).TotalSeconds\r\nlet pos0 = try GeoPoint(string(pos0.Value)) else GeoPoint(double.NaN) \r\nlet pos1 = try GeoPoint(string(pos1.Value)) else GeoPoint(double.NaN) \r\n\r\nspeed   = pos1.Distance(pos0) / secs\r\nheading = pos1.RhumbBearing(pos0) ",
   "params": {},
   "tree": {},
   "operation": [
     "update" 
   ],
   "schedule": [],
   "comment": "" 
 }}
Далее необходимо запустить Acuario Manager. В клиенте Интегра планета Земля у движущегося объекта будет отображаться Скорость (speed) а так же направление в зависимости от изменения расположения.


