При симуляции Timer будет отставать из-за 100мс цикла - в приборе цикл короче - должен успевать:
Owen.jpg
А вот вообще сказка:Код:function_block Timer var_input I : bool; end_var var_output Q : udint; end_var var gen : SYS.BLINK; rt : SYS.RTRIG; end_var gen(I:=I, Th:=T#10ms, Tl:=T#10ms); rt(I:=gen.Q); if rt.Q then Q := Q + 20; end_if if not I then Q := 0; end_if end_function_block
Код:function_block Timer var_input I : bool; end_var var_output Q : udint; end_var var time_prev : udint; end_var if I then Q := time_to_udint(get_time()) - time_prev; else Q := 0; time_prev := time_to_udint(get_time()); end_if end_function_block




Ответить с цитированием
