Детектор слежения за целями в зоне (Zone Controller)
Содержание
Зависимости
Скрипт зависит от какого-либо другого модуля поставляющего географические координаты движущихся объектов базе трекинга, т.е. меняющего значение параметра Расположение(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.22228403 53.2363014,50.2224350 53.23636588,50.2224236 53.2362976,50.22228403 53.2363014)).
- Высота области(area_heights) - высоты точек из полигона(Заполняется при создании зоны в клиенте Интегра Планета Земля). Например: 121.9 121.6 121.5. Массив чисел должен быть разделен, используя клавишу Enter.
- Дополнительный делитель числового приоритета для зоны(trace_factor). Для назначения разной важности различным зонам.
- Настройки слежения(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. Выполнить настройку элементов как это описано в настройке элементов.
Далее если объект не движется, можно запустить скрипт "Симулятор движения", описание которого приведено на странице Симулятор движения, и настроить в свойствах триггера параметр:
- Данные о движении объекта (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.
- Цель(target) - */WarShip.
Результат:
Для просмотра результата необходимо зайти в Менеджер событий.
Настроить вкладку на необходимый сервер и параметр "Событие в зоне".
После этого будет отображен список событий в зоне.
По нажатию на кнопку "Показать информацию" раскроется подробная информация о событии.