Smart Zone
Материал из Integra-S Wiki
Назначение
- Трансляция состояний устройств в состояние зоны.
- Отсечение ложных срабатываний путем перевода зоны в тревогу по минимум двум тревожным устройствам.
- Трансляция команд от Зоны в устройства(При отправки команды "Снять с охраны/Взять под охрану" у зоны, всем устройствам подключенным к этой зоне будет так же транслироваться данная команда.)
Построение схемы
В редакторе СКАДА необходимо добавить элементы, для этого необходимо:
- 1. Перейти на вкладку "Типы элементов" и выбрать в списке элемент Компьютер (Computer).
- 2. Дважды нажать на элемент Компьютер, после чего появится окно для добавления элемента.
- 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.
Настройка
1. У компьютера/сервера должен быть настроен параметр сетевой адрес (ip).
2. Параметры Smart Zone:
- 1. Включен (enabled) - задействовать триггер.
- 2. Настройки (settings) - настройки скрипта имеют следующие параметры:
- 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:
- alarm_factor - значение параметра alarm_factor зоны.
- alarm_precedence - суммарный precedence (weight * precedence * importance) тревожных членов зоны.
- state_before - предыдущее состояние зоны.
- state_after - текущее состояние зоны.
- members - информация о членах зоны со следующими полями:
- type - тип устройства.
- state - состояние устройства (текущее или последнее тревожное, если не вышел таймаут alarm_timeout).
- datetime - время перехода устройства в состояние указанное в state.
- weight - вес устройства в зоне, т.е. значение параметра weight линка ZoneLink соединяющего устройство с зоной.
- precedence - значение параметра precedence устройства.
- importance - важность состояния указанного в state в соответствии с таблицей settings.importance.
- alarm - флаг указывающий является ли состояние в state тревожным.
- 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 для всех зон вообще (это нужно для сброса "недавней" тревоги). Таким образом вне зависимости от частоты изменений состояний членов зоны, управляя этими параметрами, можно добиться какой-то фиксированной нагрузки на сервер АМ. Так же пересчет состояний всех зон происходит при запуске скрипта. Ниже указаны параметры по изменению которых зона помечается как измененная и соответственно требующая пересчета своего состояния:
- state - состояние самой зоны либо какого-то устройства подключенного к ней.
- alarm_factor - параметр зоны.
- precedence - параметр члена зоны.
- weight - параметр линка ZoneLink соединяющего зону с устройством.
- settings - параметр зоны, при изменении настроек скрипт пересобирается и перезапускается.
- 6. Важно при использовании отладочной настройки settings.alarm_info.changes_only не оставить ее в значении false, потому что в таком режиме параметр alarm_info зоны обновляется по таймеру в результате изменений указанных выше даже в том случае, если состояние зоны в результате пересчета не поменялось, например только в таком режиме возможно, чтобы alarm_info.state_before содержало такое же значение, что и alarm_info.state_after.
- 7. Информация о состоянии зоны в параметре alarm_info обновляется в тех случаях если:
- settings.changes_only == false.
- состояние зоны изменилось.
- alarm_info - пусто.
- в зоне новая тревога, т.е. тревога члена зоны произошла позднее смены состояния зоны.
Пример работы
Для построения схемы необходимо:
1. Создать схему по выше описанному алгоритму (см. Построение схемы).