请教各位大神,我在子程序里用了个定时器(不带保持的)。当我激活m0.0的时候定时器(t37延时接通型定时器不带掉电保持的)计时,但当我m0.0掉电重新激活定时器的时候,定时器里时间不会清零而是继续根据上次掉电最后记录的时间继续计时而不是从零开始计,已确定没有重复使用t37,请问下子程序里使用应该注意什么?还有造成这个现象的原因是什么?
最佳答案
转贴S7 200子程序里使用应该注意什么:
1、定时器在子程序中的表现:
在条件调用子程序的主程序中,当停止子程序调用时,如果定时器已经激活正在计时,停止调用这个子程序会造成定时器的失控。不管此时定时器前面的激活条件如何变化,定时器(1ms、10ms 时基的)会一直走到最大值,定时器输出也会在达到设定值时接通;(100ms 时基的定时器会在上述情况下停止计时,但在逻辑上处于失控状态)。
如果用 SM0.0 调用子程序;或者在控制逻辑的时序上做到能够保证定时功能完整执行,定时器会正常运行。使用条件调用含有定时器的子程序时,一定要注意时序逻辑,以免造成程序运行错误。
2、使用定时器加自复位做一个不断重复的计时,调用其他功能或子程序时,为何看起来工作不规律?
请注意《S7-200系统手册》中,或者前文关于三种定时器刷新规律的描述。
按这种方法使用定时器时,定时器的置位、复位可能与程序扫描周期不配合,存在造成上述问题的机制。
定时比较短的定时任务应使用“定时中断”功能,这样更为可靠。
提问者对于答案的评价:
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc202270.html