Вариант:
Owen1.jpg
Код:
function_block tmrEvent
var_input
i1, i2 : bool;
end_var
var_output
tUp : real;
tDown : real;
end_var
var
tsUp : udint;
tsDown : udint;
rt1 : SYS.RTRIG;
ft1 : SYS.FTRIG;
rt2 : SYS.RTRIG;
ft2 : SYS.FTRIG;
end_var
rt1(I:=i1); ft1(I:=i1); rt2(I:=i2); ft2(I:=i2);
if ft1.Q then tsUp := time_to_udint(get_time()); end_if // Начало подъема
if ft2.Q then tsDown := time_to_udint(get_time()); end_if // Начало спуска
if rt2.Q then tUp := udint_to_real(time_to_udint(get_time()) - tsUp) / 1000; end_if // Конец подъема
if rt1.Q then tDown := udint_to_real(time_to_udint(get_time()) - tsDown) / 1000; end_if // Конец спуска
end_function_block