Вышел из положения таким образом не знаю может и не очень правильно но в симуляторе вроде работает
Код:
FUNCTION_BLOCK EL
VAR_INPUT
start: BOOL;
stop: BOOL;
alarm_RESET:BOOL;
podpor:BOOL;
sped_kontrol:BOOL;
END_VAR
VAR_OUTPUT
lamp: BOOL;
OUT_1: BOOL;
alarm_out:BOOL;
END_VAR
VAR
tim1:TON;(*таймер аварии по подпору продуктом*)
tim2:TON;(*таймер аварии по контролю скорости*)
END_VAR
=============================================================
(*----------Кнопки старт стоп----------------------------------*)
IF start=TRUE THEN
OUT_1:=TRUE;
lamp:=TRUE;
END_IF
IF stop=TRUE THEN
OUT_1:=FALSE;
lamp:=FALSE;
END_IF
(*-----------Контроль перегруза продуктом------------------------------------*)
IF podpor=TRUE THEN
tim1(in:=podpor, pt:=t#3s);
alarm_out:=Tim1.Q;
ELSE
tim1(in:=FALSE, pt:=t#3s);
END_IF
(*--------------Контроль скорости механизма----------------------------------*)
IF sped_kontrol=TRUE THEN
tim2(in:=FALSE, pt:=t#3s);
END_IF
IF out_1=TRUE THEN
tim2(in:=out_1, pt:=t#3s);
alarm_out:=Tim2.Q;
ELSE
tim2(in:=FALSE, pt:=t#3s);
END_IF
(*---------------Сброс аварии (квитирование)------------------------------*)
IF alarm_RESET=TRUE THEN
alarm_out:=FALSE;
tim1(in:=FALSE, pt:=t#3s);
tim2(in:=FALSE, pt:=t#3s);
END_IF
(*-------------------Выключение механизма при аварии--------------------*)
IF alarm_out=TRUE THEN
OUT_1:=FALSE;
lamp:=FALSE;
END_IF
(*---------------------------------------------------------------------------*)