4.4.2.3.3. Создание агрегаторов

 
Агрегация событий – это объединение событий объекта в единую структуру.
Агрегация по объекту выполняется только для событий объекта, не включая события вложенных в
него объектов.
Агрегация по группе объектов называется агрегацией по ветке. Выполняется и для событий объекта,
и для событий всех вложенных в него объектов.
 
Использование агрегации позволяет:
  определять наличие активных и/или неквитированных событий в объекте;
 определять максимальную важность среди событий в объекте;
 квитировать сразу все активные события в объекте.
 
Для агрегации событий объекта, нужно добавить в него агрегатор.
Агрегатор агрегирует события только того объекта, в который он вложен, не включая вложенные в него объекты.
 
Чтобы агрегировать все события в ветке (в объекте и во всех вложенных объектах), необходимо добавить агрегатор в каждый вложенный объект. Они будут передавать агрегируемую информацию агрегатору, который находится в объекте выше.
Чтобы информация передавалась между агрегаторами, они должны быть одного типа.
 
Чтобы создать агрегаторы событий, необходимо выполнить следующие действия:
 
1. Перейдите в определения проекта "MyLib" двойным кликом по объекту "Определения" в обозревателе решений.
 
 
2. Добавьте на рабочую область "Пространство имен" из панели элементов путем перетаскивания.
 
 
3. Задайте добавленному элементу имя "Aggregators" и перейдите в него, кликнув по названию.
 
 
4. Добавьте в пространство имен "Aggregators" элемент "Логический тип" из панели элементов.
 
 
5. Задайте добавленному логическому типу имя "Agg_Fault".
 
Данный агрегатор будет отвечать за агрегацию отказов.
 
6. Выделите тип "Agg_Fault" и в окне "События" установите флаг "Агрегировать события".
Если окно "События" не отображается, выполните команду в главном меню "Вид" → "События".
 
 
 
7. Чтобы добавить диапазон важностей для агрегации отказов, в контекстном меню таблицы выберите команду "Добавить диапазон важностей".
 
 
8. Укажите минимум и максимум диапазона важностей в соответствии с цветовой схемой для журнала событий.
 
Если агрегаторы по ветке должны агрегировать события разных объектов ветки, добавьте созданному типу атрибут Категория агрегатора (Om.Server –> AlarmAndEvent -> Aggregation). Значение можно оставить пустым, либо указать любое значение по умолчанию. Агрегаторам этого типа, находящимся в разных объектах одной ветки, можно будет указать разные названия категорий агрегатора. Тогда агрегаторы разных категорий будут агрегировать события с разных объектов одной ветки.
 
 
9. Перейдите в объект "Agg_Fault", кликнув по его названию.
 
 
10. Добавьте в логический тип элементы-сокеты из набора Om.Server.AlarmAndEvent.Aggregation и элемент Result из панели элементов.
 
 
Описание сокетов и параметров из готовых наборов представлено ниже:
 

Описание сокетов

 
Название сокета
Назначение параметров сокета
Acknowledge_IN
Выполнение квитирования всех событий, прошедших агрегацию по
объекту
AcknowledgeForeign_IN
Выполнение внешнего квитирования всех внешних событий,
прошедших агрегацию по объекту
AcknowledgeForeignInBranch_IN
Выполнение внешнего квитирования всех внешних событий,
прошедших агрегацию по ветке
AcknowledgeInBranch_IN
Выполнение квитирования всех событий, прошедших агрегацию по
ветке
Result_IN
Воздействия на результаты агрегации событий по объекту
Result_OUT
Результаты агрегации событий по объекту
ResultAcknowledge_OUT
Результаты агрегации по квитированию событий по объекту
ResultAcknowledgeInBranch_OUT
Результаты агрегации по квитированию событий по ветке
ResultActive_OUT
Результаты агрегации по активности событий по объекту
ResultActiveInBranch_IN
Выполнение формирования результатов агрегации событий по активным объектам в ветке
ResultActiveInBranch_OUT
Результаты агрегации по активности событий по ветке
ResultForeignAcknowledge_OUT
Результаты агрегации по внешнему квитированию внешних событий по объекту
ResultForeignAcknowledgeInBranch_OUT
Результаты агрегации по внешнему квитированию внешних событий по ветке
ResultInBranch_IN
Воздействия на результаты агрегации событий по ветке
ResultInBranch_OUT
Результаты агрегации событий по ветке
 

Описание параметров, предоставляющие результаты агрегации

 
Название параметра
Тип
Описание
ActiveEventsFlag
bool
Наличие активных событий
MaxSeverity
uint2
Максимальная важность среди активных событий
MaxSeverityUnacked
uint2
Максимальная важность среди активных неквитированных событий
AllAcknowledged
bool
Индикатор квитирования всех событий
ActiveCount
uint4
Количество активных событий
ForeignUnackedCount
uint4
Количество событий не квитированных во внешней модели событий
ActiveEventsFlagInBranch
bool
Наличие активных событий в ветке
MaxSeverityInBranch
uint2
Максимальная важность среди активных событий в ветке
MaxSeverityUnackedInBranch
uint2
Максимальная важность среди активных неквитированных событий в ветке
AllAcknowledgedInBranch
bool
Индикатор квитирования всех событий в ветке
ActiveCountInBranch
uint4
Количество активных событий в ветке
ActiveObjects
string
Список идентификаторов активных объектов
ActiveObjects.Build
bool
Сигнал-триггер для формирования результатов агрегации по активным объектам в ветке
ForeignUnackedCountInBranch
unit4
Количество событий не квитированных во внешней модели событий в ветке
 

Описание параметров, предоставляющие возможность квитирования

 
Название параметра
Тип
Описание
Acknowledge
bool
Выполнить квитирование событий по объекту
Acknowledge.Comment
string
Комментарий квитирования событий по объекту
Acknowledge.User
string
Имя пользователя, выполнившего квитирование по объекту
AcknowledgeInBranch
bool
Выполнить квитирование событий по ветке
AcknowledgeInBranch.Comment
string
Комментарий квитирования событий по ветке
AcknowledgeInBranch.User
string
Имя пользователя, выполнившего квитирование по ветке
AcknowledgeForeign
bool
Выполнить квитирование внешних событий по объекту
AcknowledgeForeign.User
string
Имя пользователя, выполнившего квитирование внешних событий по объекту
AckInfoForeign
string
Информация для квитирования во внешней модели
AcknowledgeForeignInBranch
bool
Выполнить квитирование внешних событий по ветке
AcknowledgeForeignInBranch.User
string
Имя пользователя, выполнившего квитирование внешних событий по ветке
AckInfoForeignInBranch
string
Информация для квитирования во внешней модели по ветке
 
11. Свяжите добавленные элементы служебной связью, для этого наведите на выход сокета мышкой и после появления прицела с зажатой левой кнопкой мыши проведите линию связи до логического объекта Result.
 
Аналогичным образом, проведите служебную линию связи от логического объекта Result до сокета Result_OUT.
 
Создание агрегатора для отказов (Agg_Fault) завершено.
 
12. Создайте копию логического типа "Agg_Fault" и переименуйте его в "Agg_Alarm".
Для создания копии используйте горячие клавиши Ctrl+C, Ctrl+V.
 
 
13. Выделите агрегатор "Agg_Alarm" и в окне "События" укажите диапазон важностей в соответствии с цветовой схемой для журнала событий.
 
 
14. Аналогичным образом добавьте агрегаторы событий для предупреждающих и информационных  событий.