Smart Zone

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

Назначение

  1. Трансляция состояний устройств в состояние зоны.
  2. Отсечение ложных срабатываний путем перевода зоны в тревогу по минимум двум тревожным устройствам.
  3. Трансляция команд от Зоны в устройства(При отправки команды "Снять с охраны/Взять под охрану" у зоны, всем устройствам подключенным к этой зоне будет так же транслироваться данная команда.)

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

В редакторе СКАДА необходимо добавить элементы, для этого необходимо:

1. Перейти на вкладку "Типы элементов" и выбрать в списке элемент Компьютер (Computer).
Computer.jpg
2. Дважды нажать на элемент Компьютер, после чего появится окно для добавления элемента.
Add element.jpg
3. Нажать кнопку "Добавить". Элемент появится на рабочей области.
4. Аналогично пункту 2 добавить элементы: Менеджер устройств (AcuarioManager), EGS Модуль (EGSModule).
5. Smart Zone (Скрипт необходимо сохранить отсюда Smart Zone). Для того, чтобы импортировать скрипт необходимо в редакторе СКАДА нажать на меню Действия > Импорт элементов > выбрать сохраненный скрипт.

Необходимо добавить следующие связи:

1. Smart Zone: EGS вход:EGSInput + EGS Модуль: EGS Выход:EGSOutput.
2. Менеджер устройств: Менеджер устройств:ManagingContainer + EGS Модуль: Привязка к менеджеру:ManagingContent.
3. Менеджер устройств: ПО:SoftwareContent + Компьютер или Сервер: Установленное ПО:SoftwareContainer.
Базовая схема умнойЗоны.jpg

Настройка

1. У компьютера/сервера должен быть настроен параметр сетевой адрес (ip).
2. Параметры Smart Zone:

1. Включен (enabled) - задействовать триггер.
2. Настройки (settings) - настройки скрипта имеют следующие параметры:
Настройки скрипта.jpg
1. alarm_timeout - интервал в течении которого датчик подключенный к зоне считается тревожным, даже если тревожное состояние уже сброшено.
2. interval - фиксированный интервал пересчета состояния зоны.
3. precedence - типы тревожных состояний зоны, с указанием минимальных значений суммарного precedence(приоритет обработки) для перехода зоны в это состояние.
4. alarm_info - информация о состоянии зоны:
1. alarms_only - информировать только о тревожных датчиках.
2. changes_only - информировать только при смене состояния зоны.
5. importance - таблица соответствия типа члена зоны маске состояния данного типа и далее числовому значению importance (важности) этого состояния. В данном параметре указываются типы элементов и их состояния с числовым значением.
3. У зоны должны быть настроены следующие параметры:
1. alarm_factor - суммарный вес датчиков, достаточный для перехода зоны в тревогу, по умолчанию: 2.
4. У линка ZoneLink, соединяющего датчик с зоной, должны быть настроены следующие параметры:
1. weight - вес данного датчика в зоне, по умолчанию: 1.

3. Параметры Зоны:

1. Суммарный вес датчиков для перехода зону в тревогу (alarm_weight), если:
1. У зоны суммарный вес > 0, то означает минимальный необходимый суммарный вес входящих в зону датчиков для перевода зоны в состояние Тревога(alarm.alarm). Вес датчика определяется параметром Вес(weight) у Связь с зоной(ZoneLink) соединяющим датчик с зоной.
2. У зоны суммарный вес = 0, то используется алгоритм с тремя тревожными состояниями Маловероятная тревога(alarm.unlikely), Вероятная тревога(alarm.likely) и Тревога(alarm.alarm), вес которых указывается в настройках Smart Zone(precedence). Вес датчика рассчитывается по формуле: вес * приоритет обработки датчика * importance.
2. Область (area) - заполняется при создании зоны через клиент Интегра планета Земля.

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

1. Информация о состоянии зоны в параметре alarm_info:
  1. alarm_factor - значение параметра alarm_factor зоны.
  2. alarm_precedence - суммарный precedence (weight * precedence * importance) тревожных членов зоны.
  3. state_before - предыдущее состояние зоны.
  4. state_after - текущее состояние зоны.
  5. members - информация о членах зоны со следующими полями:
  6. type - тип устройства.
  7. state - состояние устройства (текущее или последнее тревожное, если не вышел таймаут alarm_timeout).
  8. datetime - время перехода устройства в состояние указанное в state.
  9. weight - вес устройства в зоне, т.е. значение параметра weight линка ZoneLink соединяющего устройство с зоной.
  10. precedence - значение параметра precedence устройства.
  11. importance - важность состояния указанного в state в соответствии с таблицей settings.importance.
  12. alarm - флаг указывающий является ли состояние в state тревожным.
  13. value - реальное текущее значение состояния устройства, может отличаться от значения в state в том случае, если state указывает на недавнюю, но уже сброшенную тревогу.
2. Таблица соответствия порогов тревожных приоритетов тревожным состояниям зоны settings.precedence:

Конфигурация использующая все три тревожных состояния зоны:

 "precedence": {
   "alarm_unlikely": 10.0,
   "alarm_likely": 60,
   "alarm_alarm": 90
 },

При необходимости можно убирать или добавлять тревожные состояния зоны:

 "precedence": {
   "alarm_alarm": 90
 },

Таблица важности состояний settings.importance Для типа BOLID_ContactSensor отключить тревогу по тревожному состоянию alarm_openCase, а для состояния alarm_longOpen наоборот повысить "тревожность" вдвое:

 "importance": {
   "BOLID_ContactSensor": {
     "alarm_openCase": 0.0,
     "alarm_longOpen": 2.0
   }

Не учитывать состояние всех датчиков типа StreetLighting:

 "importance": {
   "StreetLighting": {
     "*": 0.0,
   }
3. Если в зоне нет ни одного устройства, состояние зоны устанавливается в none.unknown.
4. Команды activate и deactivate транслируются в соответствующие команды членов зоны с ненулевым весом.
5. Пересчет состояния зон происходит не по изменению параметров самих зон либо их членов, но по таймеру с частотой не превышающей settings.interval для зон которых что-то поменялось с последнего пересчета, а так же с частотой не превышающей settings.alarm_timeout для всех зон вообще (это нужно для сброса "недавней" тревоги). Таким образом вне зависимости от частоты изменений состояний членов зоны, управляя этими параметрами, можно добиться какой-то фиксированной нагрузки на сервер АМ. Так же пересчет состояний всех зон происходит при запуске скрипта. Ниже указаны параметры по изменению которых зона помечается как измененная и соответственно требующая пересчета своего состояния:
  1. state - состояние самой зоны либо какого-то устройства подключенного к ней.
  2. alarm_factor - параметр зоны.
  3. precedence - параметр члена зоны.
  4. weight - параметр линка ZoneLink соединяющего зону с устройством.
  5. settings - параметр зоны, при изменении настроек скрипт пересобирается и перезапускается.
6. Важно при использовании отладочной настройки settings.alarm_info.changes_only не оставить ее в значении false, потому что в таком режиме параметр alarm_info зоны обновляется по таймеру в результате изменений указанных выше даже в том случае, если состояние зоны в результате пересчета не поменялось, например только в таком режиме возможно, чтобы alarm_info.state_before содержало такое же значение, что и alarm_info.state_after.
7. Информация о состоянии зоны в параметре alarm_info обновляется в тех случаях если:
  1. settings.changes_only == false.
  2. состояние зоны изменилось.
  3. alarm_info - пусто.
  4. в зоне новая тревога, т.е. тревога члена зоны произошла позднее смены состояния зоны.


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

1. Когда суммарный вес(alarm_weight) датчиков для перехода зоны в тревогу > 0.

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

1. Создать схему по выше описанному алгоритму (см. Создание схемы).
2. Добавить элемент Зона и 3 IP видеокамеры, соединив пины "Зона:ZoneOutputPin" у Зоны и "Привязка к зоне:ZoneInputPin" у IP видеокамер.
Добавлена зона.jpg
3. В свойствах элемента Зона установить суммарный вес датчиков для перехода зоны в тревогу = 2.
Sum zone.jpg
4. Установить в 2 IP видеокамерах состояние "Тревога", в результате у Зоны устанавливается состояние "Тревога".
State zone.jpg