我用S7定时器做了1秒和1分钟的脉冲,用来累计时间,方法类似下面程序,但是客户反映累计时间小于实际运行时间,分钟计数的运行一个小时以上后,误差有五六分钟。我自己用PLCSIM仿真时发现,居然一次也累计不了,各位大神有知道为什么的吗?
ANT1
LS5T#1S
SDT1
AT1
JNBM001
LMW100
+1
TMW100
M001:NOP0
图片说明:
bbaba9e3675e0edCE37a6f67e423080d
最佳答案
如果需要时间的累加,建议使用OB35中断组织块中做。
1)在硬件组态中,设置OB35中断时间为1000mS(1秒)(系统默认100mS
2)新建组织块OB35,在OB35中直接编辑
AI0.0//开始计时
JNB_001
LMW100
L1
+I
TMW100
_001:NOP0
AI0.1//清除计时
JNB_002
L0
TMW100
_002:NOP0
因为西门子S5T#定时器工作于异步扫描周期。
提问者对于答案的评价:
谢谢您的讲解,下面是我自己查的资料,希望别人能更明白一点。
定时器的刷新不受循环扫描周期的影响,定时时间到可能出现在程序执行的任意一刻,对于PLC来说时序对程序的执行是很重要的,定时器定时时间到出现的位置不同对程序是有影响的,你那段代码不累加的原因就是,定时器定时时间到出现在定时器指令和累加指令之间的概率太小,几乎为零。