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. Аналогичным образом добавьте агрегаторы событий для предупреждающих и информационных событий.


