回复:SCL的WHILE和REPEAT指令的问题

shine

  • 帖子

    8803
  • 精华

    39
  • 被关注

    157

论坛等级:至圣

注册时间:2003-06-06

普通 普通 如何晋级?

发布于 2017-05-21 22:06:58

20楼

展开查看
以下是引用Automann在2017-05-19 12:53:04的发言 >18楼

所谓效果一样,是指宏观上效果一样。while条件满足时,以微秒级的周期执行赋值指令。梯形图中条件满足时,每个扫描周期执行一次MOVE指令。操作人员能感觉到二者的区别吗?工控领域还没有需要用While的微秒级的周期执行什么指令的要求吧?

二者的区别在于while条件满足时CPU被它的运行“霸占”了,别的什么事都干不了,还导致循环超时。而梯形图在“宏观”上完成While同样的任务的同时,CPU还可以“同时”完成很多别的任务。

我的意思是惹不起就躲开While和Repead,改用梯形图实现相同的功能。

以下是引用shine在2017-05-12 09:33:27的发言 >14楼:怎么会是一样的效果...

引用14楼详细内容:

怎么会是一样的效果呢?如果一样为啥while repeat会超时,而那个LAD程序却不会呢?

while repeat是一个循环指令,条件满足就一直只需其间的指令,而那个LAD,只执行一次后面的MOVE,我说的是一个扫描周期内。

while repeat用于不定次数的循环

以下是引用Automann在2017-05-12 08:15:35的发言 >13楼:这个LAD和While...

引用13楼详细内容:

这个LAD和While只是从效果上看是一样的,不是直接转换得到的。

我想知道各位有用SCL的WHILE和REPEAT指令吗?如果用,怎样处理超时的问题?

以下是引用shine在2017-05-09 09:05:44的发言 >10楼:这个LAD和while...

引用10楼详细内容:

这个LAD和while完全没有关系好不好。

高级语言如果陷入死循环同样会有问题。只不过人家是多线程的话,其中一个死了,别的可能还会有响应。

以下是引用Automann在2017-05-08 17:01:48的发言 >5楼:PLC因为是操作...

引用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干不了别的事。而梯形图是每个扫描周期只花“一点点”时间来完成同样的任务。



指令用错了就是用错了,别扯宏观微观的概念了。

如果你真的用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已经不仅仅局限于逻辑控制了,以前用不到得指令会逐渐得变得常用,而且还会引入更多新得指令

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1500系列

共有10698条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。