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