S7-200可编程控制器系统手册 P213
分辨率对定时器的影响[COLOR=BLUE]
对于1ms分辨率的定时器来说,定时器位和当前值的更新不与扫描周期同步。对于大于1ms的程序扫描周期,定时器位和当前值在一次扫描内刷新多次。
对于10ms分辨率的定时器来说,定时器位和当前值在每个程序扫描周期的开始刷新。定时器位和当前值在整个扫描周期过程中为常数。在每个扫描周期的开始会将一个扫描累计的时间间隔加到定时器当前值上。
对于100ms分辨率的定时器来说,定时器位和当前值在指令执行时刷新。因此,为了使定时器保持正确的定时值,要确保在一个程序扫描周期中,只执行一次100ms定时器指令。[/COLOR]
100mS的定时器已经用程序验证过了,确实是在扫描到定时器线圈时也就是在指令执行时刷新的.所以版主所说的第一个定时程序如果用100mS的时基转化为S7-200的定时程序在S7-200里面是可以无误执行的.
下面的程序用于验证10mS的定时器,
10mS时基的定时器是在两次扫描之间进行更新的
在用100mS时基的定时器时,Q0.1能接通,因为虽然程序处于死循环中但100mS时基的定时器是在程序执行时更新的.但是用以上程序时,Q0.1不能接通了,这是因为10mS时基的定时器是在两次扫描之间进行更新的,因为死循环的原因,此次扫描不会结束,所以T33的值不会更新,Q0.1也就不会接通了.
下面的程序用于验证1mS的定时器,
1mS时基的定时器是异步于扫描周期的,其工作机理为:当扫描到定时器线圈接通时,PLC以1mS的间隔更新定时器的值,当扫描到定时器线圈断开时定时器值归零,其内部实现的机理可能用中断的机制完成的,此种更新需占用大量的CPU资源,所以S7-200的1mS定时器数量很少.

在用100mS时基的定时器时,Q0.1不能接通,因为不能扫描到T103的线圈,但是在以上程序中,Q0.1确能接通,其原因就是异步更新机制.而且在Q0.0接通以后马上断开I0.0,Q0.1也能接通.因为CPU没扫描到T32线圈断开,所以一直更新其值.
以上程序在S7-200中测试过.
注意:如果有网友按以上程序进行测试(包括测试100mS时基的程序)时,当程序运行时下载程序,或监视程序可能会产生通迅错误,此原因可能是因为:CPU是在扫描之间处理外界通迅请求的.所以下载程序时请将PLC置于STOP状态.管理员注:本帖已被纳入此次探讨整理结果,请
点此详阅。