众所周知,S7-200 SMART PLC有三种分辨率定时器:分别是1ms,10ms和100ms。在选用这些定时器时我们需要注意以下几点:
1)1ms分辨率定时器:每隔1ms刷新一次,与扫描周期和程序无关,因而当扫描周期较长时,定时器在一个周期内可能被多次刷新,其当前值在一个扫描周期内不一定保持一致。
2)10ms分辨率定时器:在每个扫描周期开始自动刷新,由于每个扫描周期只刷新一次,故在每次程序处理期间,当前值保持不变。
3)100ms分辨率定时器:在定时器指令执行时被刷新,下一条执行的指令即可与使用刷新后的结果,使用方便可靠,但应当注意,如果定时器的指令不是每个周期都执行,定时器就不能及时刷新,可能导致出错。
下面我们就用几个例子来说明定时器刷新对程序的影响:
Ø例1(1ms定时器):使用计数器C1实现1秒加1的功能
解:
情况1:如“图1”,由于1ms定时器值的刷新与扫描周期无关,定时器的值(T32)随时都在变化。假定程序在执行网络段1的位置定时器的值为1000ms,那么此时网络段2的T32常闭点则变成常开,T32定时器的值为0,网络4中的Q0.0为0,C1的计数器的值不累加。
情况2:如“图1”,假定程序在执行网络段3的位置定时器的值为1000ms,则网络4中的T32常开点闭合,Q0.0也接通,则网络5中的C1会累加1。
由于以上两种情况的出现,所以C1计数器的值有时候累加,有时候不加。
图1
Ø例2(10ms定时器):使用计数器C1实现1秒加1的功能
解:
如“图2”,由于10ms分辨率定时器,在每个扫描周期开始自动刷新。PLC在还没执行网络段1时,先检查定时器的值。假定第N个扫描周期开始,检查T33的值到达1000ms,则网络段1中的T33常闭点断开,T33定时器值清0,网络段2中的Q0.0不接通。网络3中的C1计数器不累加1。
由于10ms分辨率定时器,在每个扫描周期开始自动刷新,则C1计数器一直都为0。
图2
Ø例3(100ms定时器):使用计数器C1实现1秒加1的功能
如“图3”,由于100ms分辨率定时器在定时器指令执行时被刷新。当网络段1中的T37常闭点接通时,T37的值才会更新。由于指令执行需要时间,假定:T37常闭点导通,第0ms,从何导通T37,定时器的值不为0,可能为2ms(假定值)。当T37累积到1000ms时,接通网络2中的T37。网络段3中C1的值累加1。
由于100ms分辨率定时器在定时器指令执行时被刷新,C1可以实现1秒加1的功能
图3
若想利用1ms或者10ms的定时器实现“图3”的功能,其实也很简单,如图4:利用Q0.0的常闭触点代替定时器的常闭触点即可
图4