CTUD

Аргументы:
CU BOO вход для счета вверх (считать когда CU равно TRUE)
CD BOO вход для счета вниз (считать когда CD равно TRUE)
RESET BOO команда сброса (доминанта)
(CV=0 когда RESET = TRUE)
LOAD BOO команда загрузить (CV=PV когда LOAD = TRUE)
PV INT планируемое максимальное значение
QU BOO переполнение: TRUE если CV = PV
QD BOO переполнение: TRUE если CV = 0
CV INT результат счета
Предупреждение:
Блок CTUD не определяет передний и задний фронты входа (CU и CD). Для того чтобы создать импульсный счетчик, его нужно связать с блоками “R_TRIG” или “F_TRIG”.
Описание:
Считает от 0 до заданного значения по 1 или от заданного значения вниз до 0 по 1.
(* FBD программа использующая блок "CTUD" *)

(* ST Эквивалент: Мы предполагаем, что R_TRIG1 и R_TRIG2 - это экземпляры блока R_TRIG и CTD1 - это экземпляр блока CTUD *)
CTUD1(R_TRIG1(add_elt), R_TRIG2(sub_elt), reset_cmd, load_cmd,100);
full := CTUD1.QU;
empty := CTUD1.QD;
nb_elt := CTUD1.CV;
(* IL Эквивалент: *)
LD add_elt
ST R_TRIG1.clk
CAL R_TRIG1
LD R_TRIG1.Q
ST CTUD1.cu
LD sub_elt
ST R_TRIG2.clk
CAL R_TRIG2
LD R_TRIG2.Q
ST CTUD1.cd
LD reset_cmd
ST CTUD1.reset
LD load_cmd
ST CTUD1.load
LD 100
ST CTUD1.pv
CAL CTUD1
LD CTUD1.QU
ST full
LD CTUD1.QD
ST empty
LD CTUD1.CV
ST nb_elt