Таймеры в CoDeSys

TP Функциональный блок ‘таймер’.

TP(IN, PT, Q, ET) Входы IN и PT типов BOOL и TIME соответственно. Выходы Q и ET аналогично типов BOOL и TIME.

Пока IN равен FALSE, выход Q = FALSE, выход ET = 0. При переходе IN в TRUE выход Q устанавливается в TRUE и таймер начинает отсчет времени (в миллисекундах) на выходе ET до достижения длительности, заданной PT. Далее счетчик не увеличивается. Таким образом, выход Q генерирует импульс длительностью PT по фронту входа IN.

Временная диаграмма работы TP:


 

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

TPInst : TP;

Пример IL:

CAL TPInst(IN := VarBOOL1, PT := T#5s)

LD TPInst.Q

ST VarBOOL2

Пример FBD:

Пример ST:

TPInst(IN := VarBOOL1, PT:= T#5s);

VarBOOL2 :=TPInst.Q;

TON Функциональный блок ‘таймер с задержкой включения’.

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.

Временная диаграмма работы TON:

 

 

 

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

TONInst : TON ;

Пример IL:

CAL TONInst(IN := VarBOOL1, PT := T#5s)

LD TONInst.Q

ST VarBOOL2

Пример FBD:

Пример ST:

TONInst(IN := VarBOOL1, PT:= T#5s);

TOF Функциональный блок ‘таймер с задержкой выключения’.

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.

Временная диаграмма работы TOF:

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

TOFInst : TOF ;

Пример IL:

CAL TOFInst(IN := VarBOOL1, PT := T#5s)

LD TOFInst.Q

ST VarBOOL2

Пример FBD:

Пример ST:

TOFInst(IN := VarBOOL1, PT:= T#5s);

VarBOOL2 :=TOFInst.Q;