牛皮不是吹的:今天编程用到S7-300的两个定时器,T1和T2,一个定时5秒,一个定时60秒,到点然后清零再开始重复定时……仿真时发现运行一段时间以后,两个定时器的个位出现了异步的情况,秒级的差距,请高手指点一下是什么情况?
另外想问一下,定时之间存在系统误差吗?精度如何?
下面是我的回帖:
楼主观察到的现象不奇怪,S7-300/400的定时器自动选择时间基准,从仿真和上图中定时器的当前值可以看出,预设值为6s和60s的定时器的时间基准分别为10ms和100ms。定时器的定时是有误差的,仅仅因为时间基准不同,也会使两个定时器的积累误差不同。
S7-200的10ms和100ms的定时器的运行机制完全不同,100ms的定时器与指令的执行有关,10ms定时器是在每个扫描周期开始时处理时间当前值的。S7-300/400也有可能这样处理。
楼主采用的定时器电路在前后两段定时的切换时需要一个扫描周期。这也会影响到两个定时器的时间同步。
对于一般的应用,这种误差无关紧要。要求准确的定时可采用循环中断组织块。
最后修改:2014/1/11 9:17:24