Подсистема реакций и сценариев (Reflex Center) — различия между версиями

Материал из Integra-S Wiki
Перейти к: навигация, поиск
(Базовая схема)
Строка 17: Строка 17:
 
#EGS Модуль: Привязка к менеджеру: ManagingContent + Менеджер устройств: Менеджер устройств: ManagingContainer<br />
 
#EGS Модуль: Привязка к менеджеру: ManagingContent + Менеджер устройств: Менеджер устройств: ManagingContainer<br />
 
#Менеджер устройств: ПО:SoftwareContent + Компьютер или Сервер: Установленное ПО:SoftwareContainer<br />
 
#Менеджер устройств: ПО:SoftwareContent + Компьютер или Сервер: Установленное ПО:SoftwareContainer<br />
[[Файл:base connection reflex.jpg|центр]]
+
[[File:base connection reflex.jpg|центр]]
  
 
== Настройка ==
 
== Настройка ==

Версия 12:41, 10 марта 2020

Назначение

  1. Отслеживание изменения параметра объекта источника
  2. Поиск связанного с источником объекта приемника
  3. Выполнение действий с объектом приемником в соответствии с условием

Базовая схема

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

  1. Reflex Center (Скрипт необходимо импортировать отсюда Reflex Center)
    1. Для того, чтобы импортировать скрипт необходимо сначала скопировать и вставить вышеуказанную ссылку в адресную строку браузера, нажать на клавиатуре Enter, в окне браузера нажать правой кнопкой мыши, в появившемся контекстном меню нажать на сохранить как и выбрать удобное для Вас местоположения сохранив скрипт с расширением .put. В редакторе СКАДА нажать на меню Действия > Импорт элементов > выбрать сохраненный скрипт
  2. Компьютер или Сервер (Computer/Server)
  3. Менеджер устройств (AcuarioManager)
  4. EGS Модуль (EGSModule)

Необходимо добавить следующие связи:

  1. Reflex Center: EGS вход:EGSInput + EGS Модуль: EGS Выход: EGSOutput
  2. EGS Модуль: Привязка к менеджеру: ManagingContent + Менеджер устройств: Менеджер устройств: ManagingContainer
  3. Менеджер устройств: ПО:SoftwareContent + Компьютер или Сервер: Установленное ПО:SoftwareContainer
Base connection reflex.jpg

Настройка

  1. У компьютера/сервера должен быть настроен параметр сетевой адрес (ip)
  2. Параметры триггера:
    1. Текст скрипта (script)
    2. Включен (enabled) - задействовать триггер
    3. Настройки (settings) - список сценариев, имеющих следующие параметры:
      1. enabled - включить/выключить сценарий
      2. source - список гуидов и/или имен типов объектов источников
      3. target - путь от объекта источника к объекту приемнику
      4. condition - условия, применяемые к объекту источник (source)
      5. action - действия, применяемые к объекту приемника (target)
      6. params - список параметров рефлексов в виде таблицы ключ/значение, где ключ - имя параметра рефлекса, а значение - строковая форма значения параметра, подставляется в condition и action в виде {paramname}, где paramname - имя параметра
      7. tree - дерево из трех уровней где ключами являются значения числовых параметров condition и action, т.е. вида {0}, {1} и {2}, подходящей по смыслу ветки, где номер обозначает глубину, тогда как значение нижнего уровня подставляется вместо {3}
      8. operation - список указывающий операции сервера для запуска сценария:
        1. create - создание объекта
        2. update - изменение объекта
        3. delete - удаление объекта
  3. sсhedule - опциональный список расписаний для запуска скрипта (вместо запуска по событию) в расширенном формате cron:
  4. comment - комментарий пользователя, описание сценария

Замечания

  1. Скрипт запускается либо по расписанию (если указано), либо по событию
  2. Можно указывать несколько расписаний (так, например, можно настроить запуск действия во вторник в час дня и среду в два часа дня)
  3. Последним элементом target должен быть указан желаемый тип приемника (даже если он совпадает с источником)
  4. После запуска скрипта в параметре hash появится хеш текста скрипта, который должен быть равен тексту по следующей ссылке ХEШ, в том случае если скрипт не был изменен
  5. Формат расписания cron расширен секундами следующим образом:
Cron.jpg

Сценарии:

Схема "Рассчитывание скорости и направления у движущегося объекта по предыдущему и текущему значению Расположения (position)"

Пример работы:
Версия Acuario Manager не ниже 2.11.1.229 Для создания данной схемы необходимо добавить элементы и связи как описано в Базовой схеме, так же элементы Автобус (Bus), Симулятор движения (Position Simulator 1),описание которого приведено на странице Симулятор движения (Position simulator 1), и настроить в свойствах триггера параметры:
Данные о движении объекта (settings.input) (широта, долгота, высота):
50.21979884154713,53.23603280606231,124 50.21992758757987,53.236084301430914,124 50.2200241471044,53.23613257828248,124 50.220136799883,53.236164762819776,124 50.22022263057147,53.23619372888256,124 50.22028700358784,53.23621303958015,124 50.22035137660421,53.2362387871633,124 50.220447936128735,53.236280626952755,124 50.2214349890462,53.23690500046691,124 50.220496215891025,53.23744568766287,124 50.21941260344898,53.23688247168483,124 50.22066251284994,53.23696936835009,124 50.220539131235235,53.23689856367324,124 50.22052303798115,53.23685994289082,124 50.22046939380084,53.23681810367033,124 50.220383563112364,53.23676660918871,124 50.22027091033376,53.236705459408626,124 50.22021190173542,53.236682930521006,128 50.22007242686663,53.23665396479085,128 50.21994368083395,53.236621780623125,128 50.2198632145635,53.236589596431095,128 50.21978811271108,53.2365702859042,128 50.21973446853077,53.23656063063748,128 50.21964327342427,53.23653488324884,128 50.21950379855548,53.23649626213669,128 50.21922484881795,53.23643189353865,128
Цель (гуид движущегося объекта (в данном примере 4858fbeb-c619-4849-b01f-e56f46465f11)). Для того чтобы узнать гуид элемента необходимо перейти в меню Редактирование > Настройки > включить Расширенный режим, далее выбрать свойство необходимого элемента, нажать ЛКМ на название элемента, после чего выполнится копирование гуида в буфер обмена.

Гуид элемента.png

В параметре Настройки (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) а так же направление в зависимости от изменения расположения.

Speed bus.jpg