fjimin
一个程序需要在中间等待5S,然后继续往下执行
A I 0.0
L S5T#5S
SD T 1
WAIT: L T 1 //把T1的时间值装入ACC1,如果时间没到,ACC1值不为0,一直循环。
+ 1 //如果T1时间到了,ACC1的值为0,+1后,ACC1的值为1
LOOP WAIT //LOOP指令,ACC1-1的值为0,则循环结束。
程序下载后,一运行就出错,PLC上的SF红灯亮,请各位高手指点,到底哪里有问题
谢谢
yuanle
您这不是相当于在循环体内改变循环变量的值么,这是循环操作之大忌,不清楚为何您要这样使用,使用系统提供的秒脉冲配合计数器来使用不是更简单且符合逻辑么。
wingwf2000
谢谢两位高手指点,“超出PLC的默认循环周期运行时间”能说得具体点吗?我把程序改为:
WAIT: L 1
LOOP WAIT
程序就能正常运行了,我想这个循环时间和原先的程序也差不多。怎么就可以了呢?
miy_gongkong
PLC 程序 不能做这样的死循环, LOOP 指令就是一个死循环指令,要恰当的用,负责会报看门狗错误的。
kskstiy-王者之师军团
A I 0.0(没问题)
L S5T#5S(没问题)
SD T 1(没问题)
WAIT: L T 1 (装载时间值到累加器中,没问题)
(+1,肯定写错了,应该是 )
L 1
+I
LOOP WAIT (恭喜你进入死循环。。。GAME OVER )
不知道你想要循环什么
WAIT: L 1 (这个1相当于你的循环次数,所以程序能正常执行)