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

Материал из Integra-S Wiki
Версия от 15:46, 2 февраля 2022; 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) атрибутом устаревший, если он не изменялся в течении этого таймаута.
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