Код:
function_block CTUD // CTUD
var_input //объявление входных переменных
U : bool; //входная переменная с типом данных bool
D : bool;
Res : bool; //входная переменная с типом данных bool
N : udint; //входная переменная для значения счетчика после сброса
end_var
var_output //объявление выходных переменных
Q : bool;
CU : udint; //выходная переменная с типом данных udint
end_var
var //объявление локальных переменных
RT: bool; //переменная для определения переднего фронта на входе «U»
x:bool;
end_var
if Res or not x then
CU := 0; x:=TRUE; end_if // CU := N; x:=TRUE;end_if
if U and not RT and not Res then
CU := (CU + 1); RT := U; end_if
if D and not RT and not Res then
CU := (CU - 1); RT := D; end_if
if not U and not D and RT then
RT := false; end_if
Q:=CU=N;
end_function_block