Triggers an action
Yess; 16.1.04
в Alarm Logging создал Analog Alarm на превышение уставок
датчиков.
в одиночных сообщениях поставил triggers an action,
на них вызывается GmsgFunction.
эту функцию я переписал под необходимые действия.
Они все выполняются как нужно мне, но функция вызывается без
конца
пока авария еще существует.
как сделать чтоб GmsgFunction выполнялась один раз ?
в принципе можно сделать чтоб функция вызывалась один раз,
создать переменную или тэг,
которая будет взводится при первом выполнение.
но как потом её сбросить когда аварию устранят?
я не силён в Си, подскажите какое-нибудь решение
можно ли получить через какую-либо функцию номер одиночного
сообщения
которое вызвало GmsgFunction ?
Re: Triggers an action
Макс
Прилепский, ОАО "ЗСМК"; 19.1.04
Можно в GMsgFunction анализировать сообщения только по состоянию
"пришло"
функция GMsgFunction:
... разбор строки функцией sscanf и заполнение структуры mRT,
имеющей тип MSG_RTDATA_STRUCT (код функции по умолчанию)...
if(mRT.dwMsgState==MSG_STATE_COME)
{
здесь выполняются необходимые действия
}
Тогда, при исчезновении сообщения из очереди сообщений никакие
действия выполняться не будут. А номер сообщения, которое
инициировало вызов функции находится в элементе dwMsgNr структуры
mRT.
Например:
SetTagDWord("Current_Msg",mRT.dwMsgNr); //Номер сообщения
записывается в тег<<br>