恭喜,你发布的帖子
发布于 2017-05-08 17:01:48
5楼
PLC因为是操作系统循环调用用户程序,所以有超时的问题。高级语言中的WHILE和REPEAT则不存在这个问题。用看门狗解决不了问题。
这两条指令和FOR指令不是一回事。For指令循环一万次也要不了多少时间。而WHILE和REPEAT指令可能延长任意长的时间。
下面是SCL语言使用WHILE指令的例子:
WHILE MW10<>MW14 DO
MW30 := 20;
END_WHILE;
只要MW10和MW14的值不相等,就会执行DO后面的指令。二者相等时,程序将从END_WHILE后继续执行。
其实上述要求可以用下面的梯形图程序来实现。
MW10和MW14的值不相等时执行DO后面的指令,SCL程序是在一个扫描周期内完成的,CPU干不了别的事。而梯形图是每个扫描周期只花“一点点”时间来完成同样的任务。
请填写推广理由:
分享
只看
楼主