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

Материал из Integra-S Wiki
Версия от 15:36, 20 сентября 2021; Ipe (обсуждение | вклад) (Пример работы)
Перейти к: навигация, поиск

Зависимости

Скрипт зависит от какого-либо другого модуля поставляющего географические координаты движущихся объектов базе трекинга, т.е. меняющего значение параметра Расположение(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) атрибутом устаревшийe, если он не изменялся в течении этого таймаута.
Zc settings.jpg
3. Охраняемая зона(Zone) должна быть настроена следующим образом:
  1. Область(area) - полигон зоны(Заполняется при создании зоны в клиенте Интегра Планета Земля). Например: POLYGON((50.22228403 53.2363014,50.2224350 53.23636588,50.2224236 53.2362976,50.22228403 53.2363014)).
  2. Высота области(area_heights) - высоты точек из полигона(Заполняется при создании зоны в клиенте Интегра Планета Земля). Например: 121.9 121.6 121.5. Массив чисел должен быть разделен, используя клавишу Enter.
  3. Дополнительный делитель числового приоритета для зоны(trace_factor). Для назначения разной важности различным зонам.
  4. Настройки слежения(trace_settings):
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. область (area): POLYGON((50.22228403 53.2363014,50.2224350 53.23636588,50.2224236 53.2362976,50.22228403 53.2363014));
  2. высота области (area_heights): 121.9 121.6 121.5. Массив чисел должен быть разделен, используя клавишу Enter;
  3. приоритет зоны (trace_priority) : normal.

Замечания:

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 должен быть одним и тем же.

Результат:

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

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

ZoneEvent.jpg

После этого будет отображен список событий в зоне. Так как скорость военного корабля превышала максимальную допустимую скорость, то генерируется событие too_fast.

ZoneEvent non.jpg

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

Add info ZE.jpg