Детектор слежения за целями в зоне (Zone Controller) — различия между версиями
Ipe (обсуждение | вклад) (→Пример работы) |
Ipe (обсуждение | вклад) (→Пример работы) |
||
(не показано 13 промежуточных версий этого же участника) | |||
Строка 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) атрибутом | + | :### undefined_position_timeout - помечать параметр Расположение неопределенной цели (UndefinedTarget) атрибутом устаревший, если он не изменялся в течении этого таймаута. |
[[File:zc_settings.jpg|центр]] | [[File:zc_settings.jpg|центр]] | ||
:3. Охраняемая зона(Zone) должна быть настроена следующим образом: | :3. Охраняемая зона(Zone) должна быть настроена следующим образом: | ||
− | :# Область(area) - полигон зоны(Заполняется при создании зоны в клиенте Интегра Планета Земля). Например: POLYGON((50. | + | :# Область(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. | ||
− | :# Дополнительный делитель числового приоритета для зоны( | + | :# Дополнительный делитель числового приоритета для зоны(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)#Настройка элементов|настройке элементов]] | + | 3. Выполнить настройку элементов как это описано в [[Детектор слежения за целями в зоне (Zone Controller)#Настройка элементов|настройке элементов]]. |
− | Далее если объект не движется, можно запустить скрипт "Симулятор движения", описание которого приведено на странице [[Симулятор движения]], и настроить в свойствах триггера параметр: | + | Далее если объект не движется, можно запустить скрипт "Симулятор движения", описание которого приведено на странице [[Симулятор движения]], и настроить в свойствах триггера параметр: |
+ | :1. Данные о движении объекта ('''settings.input'''): | ||
+ | <pre> | ||
+ | 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. | ||
+ | </pre> | ||
+ | :2. Цель(target) - */WarShip. | ||
'''Результат''': | '''Результат''': | ||
Строка 100: | Строка 138: | ||
Для просмотра результата необходимо зайти в [[Онлайн мониторинг событий | Менеджер событий]]. | Для просмотра результата необходимо зайти в [[Онлайн мониторинг событий | Менеджер событий]]. | ||
− | Настроить вкладку на необходимый сервер и | + | Настроить вкладку на необходимый сервер и тип "Событие в зоне". |
[[File:ZoneEvent.jpg|центр]] | [[File:ZoneEvent.jpg|центр]] | ||
− | После этого будет отображен список событий в зоне. | + | После этого будет отображен список событий в зоне. |
− | + | [[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.
Назначение
- Определение вхождения целей (Движущиеся объекты) в охраняемые зоны Zone.
- Расчет и сохранение списка зон, в которые входит цель trace_zones(Зоны слежения).
- Расчет числового приоритета (очередности) цели trace_order.
- Генерирование событий ZoneEvent(Событие в зоне):
- Вход цели в зону и выходе цели из зоны.
- Резкое изменении скорости и направления цели.
- Остановка и начало движения после остановки.
- Превышение скорости и возврат к нормальной скорости.
- Начало и окончание опасного сближения.
Создание схемы
- Добавить следующие элементы в редакторе СКАДА:
- Компьютер или сервер.
- Менеджер устройств(Acuario Manager).
- EGS Модуль.
- Зона.
- Скрипт Zone Сontroller (Скрипт можно импортировать отсюда).
- Связать элементы:
- Zone Controler: EGS вход:EGSInput + EGS Модуль: EGS Выход: EGSOutput
- EGS Модуль: Привязка к менеджеру: ManagingContent + Менеджер устройств: Менеджер устройств: ManagingContainer
- Менеджер устройств: ПО:SoftwareContent + Компьютер или Сервер: Установленное ПО:SoftwareContainer
Настройка элементов
- 1. У компьютера должен быть настроен параметр ip.
- 2. У Zone Contoller должны быть настроены следующие параметры:
- Включен(enabled) - задействовать триггер.
- Настройки:
- values - числовые значения для некоторых приоритетов:
- high - повышенный приоритет (1 < high < MaxValue).
- low - пониженный приоритет (0 < low < 1).
- server - строка содержащая либо гуид сервера, на который следует отправлять события, либо имя параметра самого события, содержащего этот гуид, например: server.
- target_position_timeout - помечать параметр Расположение(position) движущейся цели (MoveableObject) атрибутом устаревший(outofdate), если он не изменялся в течении этого таймаута, например: 00:01:00.
- undefined_position_timeout - помечать параметр Расположение неопределенной цели (UndefinedTarget) атрибутом устаревший, если он не изменялся в течении этого таймаута.
- values - числовые значения для некоторых приоритетов:
- 3. Охраняемая зона(Zone) должна быть настроена следующим образом:
- Область(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.
- Дополнительный делитель числового приоритета для зоны(1 по умолчанию). Для назначения разной важности различным зонам.
- Настройки слежения(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" ] } ] }
- 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 - список флагов для выбора действий по зоне, по которым необходимо привлечение внимания.
Проверка
После запуска скрипта в параметре Хеш появится хеш текста скрипта, который должен быть равен тексту по следующей ссылке, в том случае если скрипт не был изменен.
Дополнительно
- Для целей в зоне с приоритетом ignore осуществляются все расчеты, однако никакие события не генерируются.
- Для целей в зоне с позицией, помеченной outofdate, расчеты не осуществляются и события не генерируются, однако сами цели не удаляются из зоны.
- Для целей в зоне с пустой позицией расчеты не осуществляются, события не генерируются и сами цели удаляются из зоны.
- Если цель без указанного пользователем приоритета (т.е. DEFAULT) входит сразу в несколько зон с различными настройками приоритетов по умолчанию defaults, то выбирается наибольший, т.к. такая ситуация может сложиться только в том случае, если зоны пересекаются.
- Скрипту необходима актуализация параметра position целей (пометка как outofdate или сброс в null) и trace_enabled поворотного устройства.
- Цель считается вошедшей в зону, если ее позиция входит внутрь соответствующего полигона зоны.
- Цель считается вышедшей из зоны, если круг радиуса exit_threshold вокруг позиции цели полностью выходит из соответствующего полигона зоны.
Пример работы
Для построения схемы необходимо:
1. Создать схему по выше описанному алгоритму (см. Создание схемы).
2. Добавить элемент Военный корабль "WarShip".
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.
Результат:
Для просмотра результата необходимо зайти в Менеджер событий.
Настроить вкладку на необходимый сервер и тип "Событие в зоне".
После этого будет отображен список событий в зоне.
По нажатию на кнопку "Показать информацию" раскроется подробная информация о событии.