Пример ST:
объявление:

PROGRAM PLC_PRG
VAR
Var1:BOOL;
Var2:BOOL;
timer:TON;
END_VAR

**************************************************
timer(in:=Var1, pt:=T#5s);
Var2:=timer.Q;

ну как то так ну в разных языках это выглядит по разному ищите в справке TON и TOF
TON
Входит в standard.lib.
Функциональный блок 'таймер с задержкой включения'.
TON(IN, PT, Q, ET) Входы IN и PT типов BOOL и TIME соответственно. Выходы Q и ET аналогично типов BOOL и TIME.
Пока IN равен FALSE, выход Q = FALSE, выход ET = 0. Как только IN становится TRUE, начинается отсчет времени (в миллисекундах) на выходе ET до значения, равного PT. Далее счетчик не увеличивается. Q равен TRUE, когда IN равен TRUE и ET равен PT, иначе FALSE. Таким образом, выход Q устанавливается с задержкой PT от фронта входа IN.

TOF
Входит в standard.lib.
Функциональный блок 'таймер с задержкой выключения'.
TOF(IN, PT, Q, ET) Входы IN и PT типов BOOL и TIME соответственно. Выходы Q и ET аналогично типов BOOL и TIME.
Если IN равен TRUE, то выход Q = TRUE и выход ET = 0. Как только IN переходит в FALSE, начинается отсчет времени (в миллисекундах) на выходе ET. При достижении заданной длительности отсчет останавливается. Выход Q равен FALSE, если IN равен FALSE и ET равен PT, иначе - TRUE.
Таким образом, выход Q сбрасывается с задержкой PT от спада входа IN.