三菱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# #循环指令# #工控自动化#
想学好PLC必须掌握的循环扫描工作过程!
1 CPU自检阶段
CPU自检阶段包括CPU自诊断测试和复位监视定时器。
在自诊断测试阶段,CPU检测PLC各模块的状态,若出现异常立即进行诊断和处理,同时给出故障信号,点亮CPU面板上的LED指示灯。当出现致命错误时,CPU被强制为STOP方式,停止执行程序。CPU的自诊断测试将有助于及时发现或提前预报系统的故障,提高系统的可靠性。
监视定时器又称看门狗定时器WDT,它是CPU内部的一个硬件时钟,是为了监视PLC的每次扫描时间而设置的。CPU运行前设定好规定的扫描时间,每个扫描周期都要监视扫描时间是否超过规定值。这样可以避免由于PLC在执行程序的过程中进入死循环,或者由于PLC执行非预定的程序造成系统故障,从而导致系统瘫痪。如果程序运行正常,则在每次扫描周期的内部处理阶段对WDT进行复位(清零)。如果程序运行失常进入死循环,则WDT得不到按时清零而触发超时溢出,CPU将给出报警信号或停止工作。采用WDT技术也是提高系统可靠性的一个有效措施。
2 通信处理阶段
在通信处理阶段,CPU检查有无通信任务,如果有则调用相应进程,完成与其他设备(例如,带微处理器的智能模块、远程I/O接口、编程器、HMI装置等)的通信处理,并对通信数据做相应处理。
3 读取输入
在读取输入阶段,PLC扫描所有输入端子,并将各输入端的通/断状态存入相对应的输入映像寄存器中,刷新输入映像寄存器的值。此后,输入映像寄存器与外界隔离,无论外设输入情况如何变化,输入映像寄存器的内容也不会改变。输入端状态的变化只能在下一个循环扫描周期的读取输入阶段才被拾取。这样可以保证在一个循环扫描周期内使用相同的输入信号状态。因此,要注意输入信号的宽度要大于一个扫描周期,否则很可能造成信号的丢失。
4 执行程序阶段
可编程控制器的用户程序由若干条指令组成,指令在存储器中按顺序排列。当PLC处于运行模式执行程序时,CPU对用户程序按顺序进行扫描。如果程序用梯形图表示,则按先上后下、从左至右的顺序逐条执行程序指令。每扫描到一条指令,所需要的输入信号的状态均从输入映像寄存器中读取,而不是直接使用现场输入端子的通/断状态。在执行用户程序过程中,根据指令做相应的运算或处理,每一次运算的结果不是直接送到输出端子立即驱动外部负载,而是将结果先写入输出映像寄存器中。输出映像寄存器中的值可以被后面的读指令所使用。
5 刷新输出阶段
执行完用户程序后,进入刷新输出阶段。可编程控制器将输出映像寄存器中的通/断状态送到输出锁存器中,通过输出端子驱动用户输出设备或负载,实现控制功能。输出锁存器的值一直保持到下次刷新输出。
在刷新输出阶段结束后,CPU进入下一个循环扫描周期。
相关问答
三菱PLC怎样控制循环次数?
1.如果用变址寄存器V、Z来修改对象软元件编号时,利用程序可修改可修改对象软元件编号。这种方法对于有使用次数限制的指令来说,可得到和同一指令多次编程相同...
三菱plc状态循环记忆程序怎么写?
三菱PLC状态元件为S,在多个S内循环,思路是:1、用步进方法,最后跳转到前面某一个状态,进行循环。2、用循环移动指令三菱PLC状态元件为S,在多个S内循环,思路...
三菱plc循环移位指令使用方法?
1、打开三菱PLC的主界面,在X000那里利用梯形图输入确定“MOVK5D0”这条位移指令。2、下一步,需要在M8013那里继续利用梯形图输入确定“OUTC0K3”这条位移...
三菱plcfornext指令用法?
三菱PLC的FORNEXT指令是一种循环指令,用于执行重复的程序块。它的用法如下:FORNEXT指令由三个部分组成:FOR、NEXT和程序块。FOR指定循环的起始值和结束值,NEX...
三菱plc循环指令怎样编写书籍?
你好,对于三菱PLC循环指令的书籍,一般需要包含以下内容:1.循环指令的基本概念和原理:介绍循环指令的概念和作用,以及在PLC中的应用场景和原理。2.循环指...
三菱PLC控制广告彩灯的设计16盏灯按下启动后从1到16每隔一秒...
[最佳回答]用左移,启动ldx0setm0停止ldx1rstm0停止时用传送指令清零ldim0movk0k4y0,启动时第一个脉冲置数ldpm0movk1k4y0右移指令,ld...
三菱plc编程指令?
展开全部以下是三菱plc常用的指令,还有不懂的可以问我一程序流程控制指令—FNC00~0900CJ条件转移01CALL子程序调用02SRET子程序返回03IRET中断...
用三菱plc(FX2N)编程控制线性的运动,输出模块FX2N-4DA?
编程思路:1、初始化输出模块:参照FX2N-4DA手册用TO指令设置参数,模块置为-10v~10v输出模式。这样数字量0~1000对应输出0~5V。2、赋值D1=0,D2=1000,将用...
三菱plc步进程序怎么写?
要写三菱PLC步进程序,需要先确定控制的对象和算法,然后使用三菱PLC编程软件编写程序。在编写程序过程中,需要设置控制模块的输入输出口和各种参数,分配内存,...
三菱plc递加指令的使用?
三菱PLC的递加指令是利用指令来实现对寄存器值的递加操作,它可以对寄存器的值进行累加并保存结果。使用时,首先需要设定好要进行递加操作的寄存器和递加的数值...