если еще актуально, то мой вариант на эту тему:
FUNCTION_BLOCK example
VAR_INPUT
iVar: INT;
END_VAR
VAR_OUTPUT
END_VAR
VAR
timer: TON;
iReg: INT;
END_VAR
--------------------------------------
timer(IN:= NOT timer.Q, PT:=T#1s ); (* вызов таймера с самосбросом*)
IF timer.Q (* присваивание регистру (iReg) значения iVar будет происходить раз в 1 сек*)
THEN
iReg:=iVar;
END_IF





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