Добрый!
А чем Вас не устраивает стандартный?
Owen.jpg
А так, в принципе, - да!
Но я бы сделал так:
Код:function_block CTN var_input U, D, R : bool; N : udint; end_var var_output Q : udint; end_var var UTrig, DTrig : SYS.RTRIG; init : bool; end_var UTrig(I := U); DTrig(I := D); if UTrig.Q and Q < 100 then Q := Q + 1; end_if if DTrig.Q and Q > 0 then Q := Q - 1; end_if if R or not init then Q := N; end_if init := true; end_function_block