子程序中可以添加定时么?
刘玉蓉
发布于2014-11-25 17:49
75
0
标签:
子程序中定时器是只在子程序被调用的时候计时,还是只要被调用过,而且定时器线圈能流一直保持的话就不停计时?
例如一个温度处理的子程序:
LD SM0.0
CALL 温度液位报警判断:SBR1
在SBR1的内容如下:
LD SM0.0
LPS
AN T7_2_F:V501.2
AR>= T7:VD558, T7_2:VD634
TON T123, 50
LPP
A T123
S T7_2_F:V501.2, 1
其功能是实际采集到的温度T7高于高温报警设定值T7_2时开始计时,如果连续5秒钟一直保持高于设定值则将T7的超温报警标志T7_2_F置位。
这样的功能可以实现么?
佳答案
在条件调用子程序的主程序中,当停止子程序调用时,如果定时器已经激活正在计时,停止调用这个子程序会造成定时器的失控。不管此时定时器前面的激活条件如何变化,定时器(1ms、10ms 时基的)会一直走到大值,定时器输出也会在达到设定值时接通;(100ms 时基的定时器会在上述情况下停止计时,但在逻辑上处于失控状态)。
如果用 SM0.0 调用子程序;或者在控制逻辑的时序上做到能够保证定时功能完整执行,定时器会正常运行。使用条件调用含有定时器的子程序时,一定要注意时序逻辑,以免造成程序运行错误。
参考资料:西门子 S7-200 · LOGO! · SITOP 参考 Beta Version 1.1