PDA

Просмотр полной версии : Зуммер на тревоги



RamesIV
02.02.2020, 19:38
Здравствуйте!

Подскажите, как наличии активных (неквитированных) тревог включить зуммер?

Евгений Кислов
03.02.2020, 07:53
Добрый день.

В настройках класса тревог можно указать действия при активации и квитировании тревоги.

47022

Можно при активации любой тревоги инкрементировать переменную-счетчик, а при подтверждении - декрементировать.

В коде PLC_PRG надо написать:

xBuzzer := (i <> 0);

где xBuzzer - переменная типа BOOL, привязанная в узле Buzzer таргет-файла:

47023

RamesIV
03.02.2020, 11:16
Добрый день!

Спасибо.

Нидвораич
01.03.2025, 20:14
Можно при активации любой тревоги инкрементировать переменную-счетчик, а при подтверждении - декрементировать.



добрый день! тоже думал о таком способе. Но нет ли более надёжного и прозрачного способа выяснить наличие не квитированных тревог? Как-то не очень я доверяю счётчикам :)
По идее - должен быть какой-то доступ к списку тревог, по которому можно пробежаться и посчитать не квитированные.
Так как-то спокойнее.
Сейчас тоже поищу - если найду ответ - отпишусь тут. (я видел вариант с подпиской на рассылку событий, но это дюже громоздко на мой взгляд).

МихаилГл
02.03.2025, 07:45
Чего вы мучаетесь, не понимаю. Использую самописный код квитирования тревог и самих аварий и все замечательно работает. Там кода на 10 строк всего для n-го числа аварий...

Нидвораич
03.03.2025, 11:42
Чего вы мучаетесь, не понимаю. Использую самописный код квитирования тревог и самих аварий и все замечательно работает. Там кода на 10 строк всего для n-го числа аварий...


я только начинаю въезжать в Кодесис, поэтому не полностью пока что очевидна внутренняя кухня работы её частей. Вы к список тревог получаете через какую-то библиотеку? Или просто при возникновении/снятии тревоги вызываете самописные ФБ для подсчёта активных тревог?

МихаилГл
03.03.2025, 11:48
я только начинаю въезжать в Кодесис, поэтому не полностью пока что очевидна внутренняя кухня работы её частей. Вы к список тревог получаете через какую-то библиотеку? Или просто при возникновении/снятии тревоги вызываете самописные ФБ для подсчёта активных тревог?

Все самописное. Не привык разбираться в чужих кодах, тем более мне такой функционал не нужен. Лог тоже самописный.
Вот пример (на механизм 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
//Обработка аварий в полуавтоматическом режиме

Тут не для механизма, а в кучу все...