
Сообщение от
SeraX
Попробуйте так и первое включение сделайте через кнопку ПР, а все остальные через "Выключатель".
TMRSet - сделайте энергонезависимой, ФБ должен запоминать время удержания кнопки BTN и повторить на выходе при сбросе питания на ПР.
Owen.jpg
Код:
function_block TMRPush
var_input
BTN : bool;
RPT : bool;
TMRSet : udint;
end_var
var_output
TMRValue : udint;
Q : bool;
end_var
var
RT : SYS.RTRIG;
FT : SYS.FTRIG;
TS : time;
TMRRPT : SYS.TP;
end_var
TMRValue := TMRSet;
RT(I:=BTN); if RT.Q then TS := get_time(); end_if
FT(I:=BTN); if FT.Q then TMRValue := time_to_udint(get_time() - TS); end_if
TMRRPT(I:=RPT, T:= udint_to_time(TMRValue));
Q := BTN or TMRRPT.Q;
end_function_block