关于定时器的使用
程序中使用了几个定时器,感觉施奈德的定时器使用起来不是特别的方便。
有几个需要注意的地方给大家说下一:
1、使用的时候首先必须在程序的最前面进行定时器声明
VAR
TT:TON;
END_VAR
2、在定时器使用之前必须对定时器进行复位,因为定时器是上升沿触发:TT(IN := FALSE,PT :=T#XXs)
3、复位之后才能触发定时器TT(IN := TRUE,PT :=T#XXs)
4、判断定时器定时是否到,通过TT.Q的值判断:
TT.Q=1 定时到
TT.Q=0 定时未到
5、在判断定时器是否到时,程序必须扫描到TT(IN := TRUE,PT :=T#XXs)语句,否则不能正确判断。
例如: 在第一个扫描周期时,执行TT(IN := FALSE,PT :=T#XXs);TT(IN := TRUE,PT :=T#XXs)定时器启动,从第2个周期开始,程序控制不能扫描到TT(IN := TRUE,PT :=T#XXs),那么 在第n个扫描周期后,定时器定时到,按理说直接判断TT.Q=1应该没有问题,但有一个前提必须是在第 N个扫描周期中,必须扫描到TT(IN := TRUE,PT :=T#XXs),否则的话无法得到TT.Q=1 。