Детектор слежения за целями в зоне (Zone Controller) — различия между версиями

Материал из Integra-S Wiki
Перейти к: навигация, поиск
(Настройка элементов)
(Пример работы)
 
(не показано 18 промежуточных версий этого же участника)
Строка 28: Строка 28:
  
 
== Настройка элементов ==
 
== Настройка элементов ==
 +
 
:1. У компьютера должен быть настроен параметр ip.
 
:1. У компьютера должен быть настроен параметр ip.
 
:2. У Zone Contoller должны быть настроены следующие параметры:
 
:2. У Zone Contoller должны быть настроены следующие параметры:
Строка 37: Строка 38:
 
:### server - строка содержащая либо гуид сервера, на который следует отправлять события, либо имя параметра самого события, содержащего этот гуид, например: server.
 
:### server - строка содержащая либо гуид сервера, на который следует отправлять события, либо имя параметра самого события, содержащего этот гуид, например: server.
 
:### target_position_timeout - помечать параметр Расположение(position) движущейся цели (MoveableObject) атрибутом устаревший(outofdate), если он не изменялся в течении этого таймаута, например: 00:01:00.
 
:### target_position_timeout - помечать параметр Расположение(position) движущейся цели (MoveableObject) атрибутом устаревший(outofdate), если он не изменялся в течении этого таймаута, например: 00:01:00.
:### undefined_position_timeout - помечать параметр Расположение неопределенной цели (UndefinedTarget) атрибутом устаревшийe, если он не изменялся в течении этого таймаута.
+
:### undefined_position_timeout - помечать параметр Расположение неопределенной цели (UndefinedTarget) атрибутом устаревший, если он не изменялся в течении этого таймаута.
 
[[File:zc_settings.jpg|центр]]
 
[[File:zc_settings.jpg|центр]]
 
:3. Охраняемая зона(Zone) должна быть настроена следующим образом:
 
:3. Охраняемая зона(Zone) должна быть настроена следующим образом:
:# Область(area) - полигон зоны(Заполняется при создании зоны в клиенте Интегра Планета Земля). Например: POLYGON((50.22228403 53.2363014,50.2224350 53.23636588,50.2224236 53.2362976,50.22228403 53.2363014)).
+
:# Область(area) - полигон зоны(Заполняется при создании зоны в клиенте Интегра Планета Земля). Например: POLYGON((50.12812594949071 53.23328164882935, 50.13439158974951 53.235959498381746, 50.14404754220308 53.23652594498775, 50.154733462918436 53.23281815778138, 50.14241675912204 53.221641347171484, 50.12812594949071 53.23328164882935)).
 
:# Высота области(area_heights) - высоты точек из полигона(Заполняется при создании зоны в клиенте Интегра Планета Земля). Например: 121.9 121.6 121.5. Массив чисел должен быть разделен, используя клавишу Enter.
 
:# Высота области(area_heights) - высоты точек из полигона(Заполняется при создании зоны в клиенте Интегра Планета Земля). Например: 121.9 121.6 121.5. Массив чисел должен быть разделен, используя клавишу Enter.
:# Дополнительный делитель числового приоритета для зоны(trace_factor). Для назначения разной важности различным зонам.
+
:# Дополнительный делитель числового приоритета для зоны(1 по умолчанию). Для назначения разной важности различным зонам.
 
:# Настройки слежения(trace_settings):
 
:# Настройки слежения(trace_settings):
 +
<pre>
 +
{
 +
  "defaults": {
 +
    "WarShip": "normal"
 +
  },
 +
  "detectors": [
 +
    {
 +
      "enabled": true,
 +
      "exit_threshold": 0,
 +
      "speed_limit": 7,
 +
      "speed_change_threshold": 20,
 +
      "heading_change_threshold": 90,
 +
      "stop_threshold": 0.4,
 +
      "approach_threshold": 1,
 +
      "types": [
 +
      "WarShip"
 +
      ],
 +
      "alarm_actions": [ "exit",
 +
        "enter"],
 +
      "attention_actions": [
 +
        "exit",
 +
        "enter"
 +
      ]
 +
    }
 +
  ]
 +
}
 +
</pre>
 
[[File:trace.jpg|центр]]
 
[[File:trace.jpg|центр]]
 
::::: 1. defaults - таблица соответствия типа цели приоритету(указываются типы движущихся объектов с приоритетами слежения)
 
::::: 1. defaults - таблица соответствия типа цели приоритету(указываются типы движущихся объектов с приоритетами слежения)
Строка 72: Строка 100:
 
После запуска скрипта в параметре Хеш появится хеш текста скрипта, который должен быть равен тексту по следующей  [http://maps.integra-s.com:5434/resources/typedef2017/jsonpath.php?url=/egs/Zone%20Controller.put&path=0/params/hash/value ссылке], в том случае если скрипт не был изменен.
 
После запуска скрипта в параметре Хеш появится хеш текста скрипта, который должен быть равен тексту по следующей  [http://maps.integra-s.com:5434/resources/typedef2017/jsonpath.php?url=/egs/Zone%20Controller.put&path=0/params/hash/value ссылке], в том случае если скрипт не был изменен.
  
== Замечания ==
+
== Дополнительно ==
  
 
# Для целей в зоне с приоритетом ignore осуществляются все расчеты, однако никакие события не генерируются.
 
# Для целей в зоне с приоритетом ignore осуществляются все расчеты, однако никакие события не генерируются.
Строка 92: Строка 120:
 
[[File:schemas_ship.jpg|800px|центр]]
 
[[File:schemas_ship.jpg|800px|центр]]
  
3. Выполнить настройку элементов как это описано в [[Детектор слежения за целями в зоне (Zone Controller)#Настройка элементов|настройке элементов]], а так же элементу Зона(Zone) настроить параметр Настройки слежения(trace_settings):
+
3. Выполнить настройку элементов как это описано в [[Детектор слежения за целями в зоне (Zone Controller)#Настройка элементов|настройке элементов]].
  
#область ('''area'''): POLYGON((50.22228403 53.2363014,50.2224350 53.23636588,50.2224236 53.2362976,50.22228403 53.2363014));
+
Далее если объект не движется, можно запустить скрипт "Симулятор движения", описание которого приведено на странице [[Симулятор движения]], и настроить в свойствах триггера параметр:  
#высота области (area_heights): 121.9 121.6 121.5. Массив чисел должен быть разделен, используя клавишу Enter;
+
:1. Данные о движении объекта ('''settings.input'''):  
#приоритет зоны ('''trace_priority''') : normal.
+
<pre>
 
+
50.12812594949071,53.23328164882935,0
6. У объекта TraceDetectorSettings настроить следующие параметры:
+
50.13439158974951,53.235959498381746,0
#список типов целей, на которые распространяются данные настройки ('''types'''): WarShip;
+
50.14404754220308,53.23652594498775,0
#список идентификаторов целей, на которые распространяются данные настройки ('''guids'''): 385352c9-e5b2-4c92-af47-c2679806a742;
+
50.154733462918436,53.23281815778138,0
#максимальная допустимая скорость ('''speed_limit'''): 7;
+
50.14241675912204,53.221641347171484,0
#генерировать тревожное или обычное событие по превышению скорости скорости ('''speed_limit_alarm'''): true;
+
50.12812594949071,53.23328164882935,0.
#порог изменения скорости ('''speed_change_threshold'''): 20;
+
</pre>
#генерировать тревожное или обычное событие по резкому изменению скорости ('''speed_change_alarm'''): true;
+
:2. Цель(target) - */WarShip.
#порог изменения направления ('''heading_change_threshold'''): 40;
 
#генерировать тревожное или обычное событие по резкому изменению направления ('''heading_change_alarm'''): true;
 
#порог отсутствия движения ('''stop_threshold'''): 0.6;
 
#генерировать тревожное или обычное событие по началу или окончанию движения ('''stop_alarm'''): true;
 
#минимальное допустимое расстояние между целями ('''approach_threshold'''): 20;
 
#генерировать тревожное или обычное событие по опасному сближению ('''approach_alarm'''): true.
 
 
 
Для ввода идентификатора необходимо зайти в свойства элемента WarShip и нажать на ссылку "WarShip". Идентификатор будет скопирован в буфер обмена. В данном случае это: 385352c9-e5b2-4c92-af47-c2679806a742.
 
[[File:TraceDetector_12.png|центр]]
 
 
 
''Замечания:''
 
 
 
:''1. При добавлении нескольких элементов TraceDetectorSettings каждый из них можно настроить на свой список целей и на различную скорость.''
 
 
 
:''2. Если приоритет цели, либо приоритет зоны равен ignore, то события по ним не генерируются.''
 
 
 
:''3. Если у зоны отсутствуют настройки TraceDetectorSettings, то события по ней не генерируются.''
 
 
 
Далее если объект не движется, можно запустить скрипт "Симулятор движения (Position Simulator 1)", описание которого приведено на странице [[Симулятор движения (Position simulator 1)]], и настроить в свойствах триггера параметр: данные о движении объекта ('''settings.input'''): 50.22196217,53.23618268,0 50.22209225,53.23620757,0 50.22223978,53.23623004,0 50.22231622,53.23626456,0 50.22236718,53.23632315,0 50.22231085,53.23636007,0 50.22231086,53.23636008,0 50.22219015,53.23638496,0 50.22204666,53.23636007,0 50.22187902,53.23633359,0 50.22184013,53.23623807,0. ''Элемент в Position Simulator 1 и в Trace detector 1 должен быть одним и тем же.''
 
  
 
'''Результат''':
 
'''Результат''':
Строка 129: Строка 138:
 
Для просмотра результата необходимо зайти в [[Онлайн мониторинг событий | Менеджер событий]].
 
Для просмотра результата необходимо зайти в [[Онлайн мониторинг событий | Менеджер событий]].
  
Настроить вкладку на необходимый сервер и параметр "Событие в зоне".
+
Настроить вкладку на необходимый сервер и тип "Событие в зоне".
  
 
[[File:ZoneEvent.jpg|центр]]
 
[[File:ZoneEvent.jpg|центр]]
  
После этого будет отображен список событий в зоне. Так как скорость военного корабля превышала максимальную допустимую скорость, то генерируется событие too_fast.
+
После этого будет отображен список событий в зоне.
 
+
[[File:ZoneEvent_non.jpg|1400px|центр]]
[[File:ZoneEvent_non.jpg|центр]]
 
  
 
По нажатию на кнопку "Показать информацию" [[File:manager_38.PNG]] раскроется подробная информация о событии.
 
По нажатию на кнопку "Показать информацию" [[File:manager_38.PNG]] раскроется подробная информация о событии.
  
[[File:add_info_ZE.jpg|центр]]
+
[[File:add_info_ZE.jpg|1400px|центр]]

Текущая версия на 15:46, 2 февраля 2022

Зависимости

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

Назначение

  1. Определение вхождения целей (Движущиеся объекты) в охраняемые зоны Zone.
  2. Расчет и сохранение списка зон, в которые входит цель trace_zones(Зоны слежения).
  3. Расчет числового приоритета (очередности) цели trace_order.
  4. Генерирование событий ZoneEvent(Событие в зоне):
    1. Вход цели в зону и выходе цели из зоны.
    2. Резкое изменении скорости и направления цели.
    3. Остановка и начало движения после остановки.
    4. Превышение скорости и возврат к нормальной скорости.
    5. Начало и окончание опасного сближения.

Создание схемы

  1. Добавить следующие элементы в редакторе СКАДА:
    1. Компьютер или сервер.
    2. Менеджер устройств(Acuario Manager).
    3. EGS Модуль.
    4. Зона.
    5. Скрипт Zone Сontroller (Скрипт можно импортировать отсюда).
  2. Связать элементы:
    1. Zone Controler: EGS вход:EGSInput + EGS Модуль: EGS Выход: EGSOutput
    2. EGS Модуль: Привязка к менеджеру: ManagingContent + Менеджер устройств: Менеджер устройств: ManagingContainer
    3. Менеджер устройств: ПО:SoftwareContent + Компьютер или Сервер: Установленное ПО:SoftwareContainer
Schemas.jpg

Настройка элементов

1. У компьютера должен быть настроен параметр ip.
2. У Zone Contoller должны быть настроены следующие параметры:
  1. Включен(enabled) - задействовать триггер.
  2. Настройки:
    1. values - числовые значения для некоторых приоритетов:
      1. high - повышенный приоритет (1 < high < MaxValue).
      2. low - пониженный приоритет (0 < low < 1).
      3. server - строка содержащая либо гуид сервера, на который следует отправлять события, либо имя параметра самого события, содержащего этот гуид, например: server.
      4. target_position_timeout - помечать параметр Расположение(position) движущейся цели (MoveableObject) атрибутом устаревший(outofdate), если он не изменялся в течении этого таймаута, например: 00:01:00.
      5. undefined_position_timeout - помечать параметр Расположение неопределенной цели (UndefinedTarget) атрибутом устаревший, если он не изменялся в течении этого таймаута.
Zc settings.jpg
3. Охраняемая зона(Zone) должна быть настроена следующим образом:
  1. Область(area) - полигон зоны(Заполняется при создании зоны в клиенте Интегра Планета Земля). Например: POLYGON((50.12812594949071 53.23328164882935, 50.13439158974951 53.235959498381746, 50.14404754220308 53.23652594498775, 50.154733462918436 53.23281815778138, 50.14241675912204 53.221641347171484, 50.12812594949071 53.23328164882935)).
  2. Высота области(area_heights) - высоты точек из полигона(Заполняется при создании зоны в клиенте Интегра Планета Земля). Например: 121.9 121.6 121.5. Массив чисел должен быть разделен, используя клавишу Enter.
  3. Дополнительный делитель числового приоритета для зоны(1 по умолчанию). Для назначения разной важности различным зонам.
  4. Настройки слежения(trace_settings):
{
  "defaults": {
     "WarShip": "normal"
  },
  "detectors": [
    {
      "enabled": true,
      "exit_threshold": 0,
      "speed_limit": 7,
      "speed_change_threshold": 20,
      "heading_change_threshold": 90,
      "stop_threshold": 0.4,
      "approach_threshold": 1,
      "types": [
       "WarShip"
      ],
      "alarm_actions": [ "exit",
        "enter"],
      "attention_actions": [
        "exit",
        "enter"
      ]
    }
  ]
}
Trace.jpg
1. defaults - таблица соответствия типа цели приоритету(указываются типы движущихся объектов с приоритетами слежения)
2. detectors - список различных настроек детекторов, содержит следующие параметры:
1. enabled - включить\выключить детектор.
2. types - список типов, для которых настраивается данный детектор.
3. exit_threshold - погрешность позиции для определения выхода из зоны, например: 10.
4. speed_limit - максимальная допустимая скорость, например: 7.
5. speed_change_threshold - порог изменения скорости, например: 20.
6. heading_change_threshold - порог изменения направления, например: 40.
7. stop_threshold - порог отсутствия движения, например: 0.6.
8. approach_threshold - минимальное допустимое расстояние между целями, например: 20.
3. alarm_actions - список флагов для выбора действий по зоне, которые считаются тревожными. Определяются следующие действия цели в зоне:
1. enter - вход в зону.
2. exit - выход из зоны.
3. stop - остановка.
4. start - начало движения.
5. too_fast - превышение скорости.
6. not_too_fast - прекращение превышения скорости.
7. severe_speed_change - резкое изменение скорости.
8. severe_heading_change - резкое изменение направления.
9. dangerous_approach - опасное сближение.
10. no_dangerous_approach - прекращение опасного сближения.
4. attention_actions - список флагов для выбора действий по зоне, по которым необходимо привлечение внимания.

Проверка

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

Дополнительно

  1. Для целей в зоне с приоритетом ignore осуществляются все расчеты, однако никакие события не генерируются.
  2. Для целей в зоне с позицией, помеченной outofdate, расчеты не осуществляются и события не генерируются, однако сами цели не удаляются из зоны.
  3. Для целей в зоне с пустой позицией расчеты не осуществляются, события не генерируются и сами цели удаляются из зоны.
  4. Если цель без указанного пользователем приоритета (т.е. DEFAULT) входит сразу в несколько зон с различными настройками приоритетов по умолчанию defaults, то выбирается наибольший, т.к. такая ситуация может сложиться только в том случае, если зоны пересекаются.
  5. Скрипту необходима актуализация параметра position целей (пометка как outofdate или сброс в null) и trace_enabled поворотного устройства.
  6. Цель считается вошедшей в зону, если ее позиция входит внутрь соответствующего полигона зоны.
  7. Цель считается вышедшей из зоны, если круг радиуса exit_threshold вокруг позиции цели полностью выходит из соответствующего полигона зоны.

Пример работы

Для построения схемы необходимо:

1. Создать схему по выше описанному алгоритму (см. Создание схемы).

2. Добавить элемент Военный корабль "WarShip".

Schemas ship.jpg

3. Выполнить настройку элементов как это описано в настройке элементов.

Далее если объект не движется, можно запустить скрипт "Симулятор движения", описание которого приведено на странице Симулятор движения, и настроить в свойствах триггера параметр:

1. Данные о движении объекта (settings.input):
50.12812594949071,53.23328164882935,0
50.13439158974951,53.235959498381746,0
50.14404754220308,53.23652594498775,0
50.154733462918436,53.23281815778138,0
50.14241675912204,53.221641347171484,0
50.12812594949071,53.23328164882935,0.
2. Цель(target) - */WarShip.

Результат:

Для просмотра результата необходимо зайти в Менеджер событий.

Настроить вкладку на необходимый сервер и тип "Событие в зоне".

ZoneEvent.jpg

После этого будет отображен список событий в зоне.

ZoneEvent non.jpg

По нажатию на кнопку "Показать информацию" Manager 38.PNG раскроется подробная информация о событии.

Add info ZE.jpg