Отображение алармов

Отображение алармов

Сообщение HakMax » Пт июл 06, 2007 2:50 pm

Не совсем понятна работа с алармами.Допустим аналоговый тег со всеми алармами т.е. LoLo, Lo, HiHi, Hi.Как определить какой именно из алармов(или какое событие не знаю как правильно) наступил?
HakMax
 
Сообщения: 9
Зарегистрирован: Ср июн 06, 2007 12:09 am

Re: Отображение алармов

Сообщение Admin » Пт июл 06, 2007 3:18 pm

Сначала Вы сами задаете уставки Alarm Value Lo LoLo Hi HiHi.
Например Lo=15 LoLo=10 Hi=85 HiHi=90.
Кроме этого Вы можете указать приоритет Priority для каждой устаки.
Priority = 1..1000 и чем он меньше тем "важнее" событие.

Добавляете в свое окно ActiveX AlarmViewerCtrl и там наблюдаете алармы, ActiveX можно настроить double-click->Properties.
ACK/UnACK - это текущий статус аларма (acknowledge) устанавливается оператором.
Можно определить группы алармов и тогда нагляднее использовать AlarmTreeViewerCtrl, по умолчанию все алармы имеют группу $System.

Как узнать какое событие произошло? Если лень читать, то
double-click -ом на нужном аларме в списке

Кроме того имеются встроенные Quick-функции для работы с алармами.
например almSelectAll - выделяет все алармы.
almAckAll - квитирует выделенные алармы.
Admin
Site Admin
 
Сообщения: 294
Зарегистрирован: Пт май 04, 2007 7:32 pm

Сообщение HakMax » Пт июл 06, 2007 5:17 pm

С AlarmTreeViewerCtrl понятно.Я про другое.Например при наступлении аларма Hi вызывается один скрипт а при HiHi другой.
HakMax
 
Сообщения: 9
Зарегистрирован: Ср июн 06, 2007 12:09 am

Сообщение Admin » Пн июл 09, 2007 12:53 pm

За исключением логгирования,в InTouch не предусмотрено функций для работы с событиями. Предполагается что оператору нужен лишь
определенный класс событий, характеризующий критичное состояние системы - алармов.
Алармы сами по себе - это в общем то условия.
Если E > HiLimit делать то и то. А сами события "alarm notifications", например мигание ActiveX. Поэтому чтобы "поймать" свое событие
надо писать Condition Script.

Например если Вам нужен момент когда переменная E принимает значения между 10 и 15 не включая, Вы можете написать

E.HiLimit = 10;
E.HiHiLimit = 15;

IF ( E.HiStatus == 1 ) ..
ENDIF

когда значение превысит 15 HiStatus сбросится на ноль, а HiHiStatus станет равен 1.
Admin
Site Admin
 
Сообщения: 294
Зарегистрирован: Пт май 04, 2007 7:32 pm


Вернуться в Общие вопросы

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 14