Здравствуйте!
Подскажите, как наличии активных (неквитированных) тревог включить зуммер?
Вид для печати
Здравствуйте!
Подскажите, как наличии активных (неквитированных) тревог включить зуммер?
Добрый день.
В настройках класса тревог можно указать действия при активации и квитировании тревоги.
Вложение 47022
Можно при активации любой тревоги инкрементировать переменную-счетчик, а при подтверждении - декрементировать.
В коде PLC_PRG надо написать:
xBuzzer := (i <> 0);
где xBuzzer - переменная типа BOOL, привязанная в узле Buzzer таргет-файла:
Вложение 47023
Добрый день!
Спасибо.
добрый день! тоже думал о таком способе. Но нет ли более надёжного и прозрачного способа выяснить наличие не квитированных тревог? Как-то не очень я доверяю счётчикам :)
По идее - должен быть какой-то доступ к списку тревог, по которому можно пробежаться и посчитать не квитированные.
Так как-то спокойнее.
Сейчас тоже поищу - если найду ответ - отпишусь тут. (я видел вариант с подпиской на рассылку событий, но это дюже громоздко на мой взгляд).
Чего вы мучаетесь, не понимаю. Использую самописный код квитирования тревог и самих аварий и все замечательно работает. Там кода на 10 строк всего для n-го числа аварий...
Все самописное. Не привык разбираться в чужих кодах, тем более мне такой функционал не нужен. Лог тоже самописный.
Вот пример (на механизм 32 ошибки с квитированием, можно и больше, а механизмов столько, сколько потянет ПЛК):
Вложение 82293
Активные аварии темнокрасные с миганием, пассивные (квитированные) вот такие...
PS Пример кода для квитирования аварий:
Тут не для механизма, а в кучу все...Код://Обработка аварий в полуавтоматическом режиме
//FOR ix:= 1 TO 4 DO
// MU210_402[ix]:= FALSE; //Блокировка управления питателем №ix от пульта
//END_FOR
FOR ix:= 1 TO 8 DO
TMP_STA_ALA[ix]:= FALSE; //Сброс бита аварии
IF NOT MV210_204_2[ix] THEN TMP_ALA_MEM[ix]:= TRUE; END_IF //Взвод бита аварии в память
IF TMP_ALA_MEM[ix] AND TMP_COM_RES THEN TMP_ALA_CON[ix]:= TRUE; END_IF //Взвод бита подтветждения аварии
IF TMP_ALA_CON[ix] AND MV210_204_2[ix] THEN
TMP_ALA_MEM[ix]:= FALSE; //Сброс бита аварии из памяти при отсутствии аварии после подтверждения
TMP_ALA_CON[ix]:= FALSE; //Сброс бита подтветждения аварии при отсутствии аварии после подтверждения
END_IF
IF TMP_ALA_MEM[ix] THEN
TMP_STA_ALA[ix]:= TRUE; //Взведение бита аварии
END_IF
END_FOR
TMP_COM_RES:= FALSE; //Сброс аварии - сбросить бит
FOR ix:= 1 TO 4 DO
MU210_402[ix]:= TMP_STA_ALA[1 + (ix - 1) * 2] OR TMP_STA_ALA[2 + (ix - 1) * 2]; //Блокировка управления питателем №ix от пульта
END_FOR
//Обработка аварий в полуавтоматическом режиме