恭喜,你发布的帖子
发布于 2017-05-21 22:06:58
20楼
所谓效果一样,是指宏观上效果一样。while条件满足时,以微秒级的周期执行赋值指令。梯形图中条件满足时,每个扫描周期执行一次MOVE指令。操作人员能感觉到二者的区别吗?工控领域还没有需要用While的微秒级的周期执行什么指令的要求吧?
二者的区别在于while条件满足时CPU被它的运行“霸占”了,别的什么事都干不了,还导致循环超时。而梯形图在“宏观”上完成While同样的任务的同时,CPU还可以“同时”完成很多别的任务。
我的意思是惹不起就躲开While和Repead,改用梯形图实现相同的功能。
指令用错了就是用错了,别扯宏观微观的概念了。
如果你真的用while指令来实现你的LAD的功能,区别操作工会感觉不到?才怪,一个能正常工作,一个不能。
while和for/next类似,是一个循环指令,用于那些需要在一次扫描中完成的多次循环的场合。你可以把while指令看作是一个带exit的for循环。一般来说while的条件会根据循环而变化,而不会是在一个扫描周期内都是固定的,而且肯定得要一个退出循环得条件。否则的话,要么不执行,要么死循环。
比如,一批零件的重量保存在一个数组中,零件的数量是可变的,要在这些零件中找到一个和设定重量偏差在一定范围内的零件,而且只要找到一个就可以了。那么,可以用for/next循环,按数组的最大值作为循环次数,找到符合条件的用exit退出循环,也可以用while 语句,
while index<= 最大数量 or 重量[index]不在范围内
index :=index +1 ;
do
if index<=最大数量,
符合条件的零件就是index指向的哪个,否则,没找到合适的
以前的PLC ,主要用于逻辑控制,while之类的语句,确实没什么需要用到的场合,但现在,PLC已经不仅仅局限于逻辑控制了,以前用不到得指令会逐渐得变得常用,而且还会引入更多新得指令
请填写推广理由:
分享
只看
楼主