FOR循环指令案例详解
当一个或者多个指令(程序)重复多次(次数可知)时,可使用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指令,除了以上两种,大家平时还有什么用法?
整流、滤波、稳压等电路讲解全集,各种读图要点和举例,太有料
三菱plc编程,FOR循环指令详解
当一个或者多个指令(程序)重复多次(次数可知)时,可使用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指令,除了以上两种,大家平时还有什么用法?
#三菱plc# #循环指令# #工控自动化#
相关问答
三菱fornext循环语句详解?
三菱Fornext循环语句是一种常用于PLC编程的循环结构语句,类似于其他编程语言中的for循环。其基本语法为:Fornext变量名=初始值To终止值Step步长,其中变...
S7-200的循环指令FOR怎么用?能否举一实例?
FOR循环的循环次数实在一个循环周期内完成的。FOR和NEXT指令可以描述需重复进行一定次数的循环体。每条FOR指令必须对应一条NEXT指令。For--Next循环嵌套(一...
西门子200plcFOR语句循环问题怎样循环工作的?
1、打开西门子200plc的主界面,直接利用梯形图输入确定LDX0。2、这个时候,继续利用梯形图输入确定FMOVK6D0K3。3、下一步,需要按F4快捷键转换程序并进行...
三菱for循环怎么用?
方法步骤三菱for循环这样用。三菱FOR循环启动后,先对D0赋初值,D0:=0;在开始循环,每次循环D0加1,BY1;循环到D0大于10,结束循环;每次循环执行一次D1:=D0+D...
plc怎么实现自动循环?
用按钮触发后,用延时器控制自动无限循环运动,配合计数器可实现有限循环。例:用两个按钮一开(X0)一闭(X1)控制一个线圈Y0并自锁Y0的电路谁都会做吧。先...用...
三菱PLC循环指令实例,就是FORNEXT指令,我就是想学到这条指令,不需要讲用其它的方法解决?
感觉那里怪异了.这个是基础常识一类的东西.唯一需要注意的是循环次数多了,要使用看门狗复位指令.否则要超时报警的.指令忘了.好像WTD之类的东东.感觉那...
西门子300PLC,求一循环指令?
FOR和NEXT指令可以描述需重复进行一定次数的循环体。每条FOR指令必须对应一条NEXT指令。For--Next循环嵌套(一个For--Next循环在另一个For--Next循环之内)深度...
西门子PLC怎么完成循环啊S7-200我是用定时器来完成程序的,我TOF以后程序就完成了,怎么回到开头啊?
循环控制吗,那不是很简单,一般都是顺序控制,只要你在最后步执行完了跳转到需要循环开始点就可以了。如果需要多个这样的循环,另外编程,可以调用子程序方式实...
plc往复循环程序怎么写?
PLC往复循环程序的编写方法如下:PLC往复循环程序可以通过使用计数器和跳转指令来实现。往复循环程序的目的是使PLC在一定条件下反复执行一段程序。为了实现这...
plc编程循环问题怎么整?
在PLC编程中,处理循环问题需要注意以下几点:确定循环条件:使用比较指令或逻辑指令对循环条件进行判断,根据判断结果决定是否继续循环。比如,可以使用比较指...