工控课堂

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

工控课堂 首页 工控文库 PLC学习 查看内容

详解讲解PLC编程FOR循环指令的使用方法

2019-11-3 15:41| 发布者: gkket| 查看: 1| 评论: 0|原作者: 陈育鑫|来自: 技成培训

摘要: 当一个或者多个指令(程序)重复多次(次数可知)时,可使用FOR指令。FOR为有限次循环指令。 如上图,程序的执行过程主要分为3个步骤,输入检测、程序扫描、输出刷新。这是PLC一个工作周期的工作顺序,在扫描的时候某 ...
当一个或者多个指令(程序)重复多次(次数可知)时,可使用FOR指令。FOR为有限次循环指令。

如上图,程序的执行过程主要分为3个步骤,输入检测、程序扫描、输出刷新。这是PLC一个工作周期的工作顺序,在扫描的时候某些程序段需要执行多遍,这个时候我们可以使用FOR指令。让程序中的某一段反复执行多遍,然后再往下扫描。
那么,在哪些地方用到它呢。下面我们来看2个应用案例。


程序的0到9步,触发X0的上升沿信号,把M0导通,Z0、D10全部清空;第9到23步,是一段循环指令,FOR K10表示这段程序循环10遍。

第一遍,由于变址寄存器Z0里面的数字为0,D0Z0这个地址变为D0(具体参考变址寄存器的用法),ADD D10 D0Z0 D10,这条指令把D10加D0的数据放到D10里面了,由于在程序上面用了D10,所以一开始D10保存的数据为0,经过加法指令,D10里面保存数据就是D0,然后通过INC Z0加一指令,让Z0自加1,等于1.然后进入循环第二遍.

第二遍,Z0里面的数据为1,D0Z0这个地址变为D1,ADD D10 D0Z0 D10这条指令把D10(经过第一遍扫描,D10里面保存了D0)加D1的数据放到D10里面了,那么 D10里面的数据变为D0+D1,然后通过INC Z0加一指令,让Z0自加1,等于2.然后进入循环第三遍。… …第10遍,Z0里面的数据为9,D0Z0这个地址变为D9,ADD D10 D0Z0 D10这条指令把D10(经过第9遍扫描,D10里面保存了D0+D1+… +D8)加D9的数据放到D10里面了,那么 D10里面的数据变为D0到D9里面全部数据的总和,然后通过INC Z0加一指令,然后退出循环,进入下一步。

M8000常通触点段开M0,当进入PLC下一个工作周期时,由于循环指令里面的程序都是由M0常开触点触发的,这是就不会再触发了,也就是,经过一个PLC的工作周期,就把D0到D9里面的数据加起来,放到了D10里面了。

当然,我们也可以写程序来做一些其他的计算。下面我们来看下另外一个应用案例:有54个X点,对应启动54个Y点,需要保持自锁,当按下按钮M0时所有输出停止

面对这样一个要求,在没有学习循环指令之前,你可能会一段一段的写,需要写54段程序,今天,我们来尝试下用FOR指令来写,如下图。


每次进行扫描都会先把Z0清0,然后进入循环(54次),第一遍Z0=0,这时X000Z0的地址是X000,Y000Z0的地址是Y000,X000触发Y000线圈并形成自锁,通过INC指令Z0自加1;第二遍,Z0等于1,这时X000Z0的地址是X001,Y000Z0的地址是Y001,X001触发Y001线圈并形成自锁,通过INC指令Z0自加1;
… …这样的话,就把本来很冗长的一大段简化成了一小段,节省程序步数的同时减少了编程的时间。

关于FOR指令,除了以上两种,大家平时还有什么用法?

技成培训原创,作者:陈育鑫

t01e47ca7156ab39cff.jpg

路过

雷人

握手

鲜花

鸡蛋

相关阅读

最新评论

热门文章

QQ|免责声明|本站介绍|工控课堂 ( 沪ICP备14007696号-3 )|网站地图

GMT+8, 2019-11-3 15:41 , Processed in 0.053601 second(s), 42 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

返回顶部