plc循环指令编程实例 FOR循环指令案例详解

小编 78 0

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控制小车五位自动循环往返运行?

一、任务目标

该任务是定时器指令相关应用案例。西门子S7-1200 PLC定时器种类比较多,在实际的应用中,读者可根据实际的应用场景选择对应的定时器指令。本任务要求读者掌握以下几个内容。

1.定时器指令的分类

2.定时器各管脚的含义

3.定时器配合其他指令的使用方法

二、任务描述

如图所示(2-2-1)用三相异步电机拖动一辆小车在A、B、C、D、E五点之间自动循环往返运行,小车五位行程控制的示意图如图所示。小车初始在A点,按下启动按钮,小车依次前进到B、C、D、E点,并分别停止5S返回到A点停止。

图2-2-1小车延时自动往返示意图

三、相关知识

本案例需要使用的是基本位逻辑和定时器指令。位逻辑指令在其他的章节中已有介绍,此处为读者介绍定时器指令的相关知识。

1、定时器指令

西门子S7-1200PLC有4种常用的定时器:

①TP:脉冲定时器,可生成具有预设宽度时间的脉冲。

②TON:接通延时定时器,输出Q在预设的延时后设置为ON。

③TOF:关断延时定时器,输出Q在预设的言时后重置为OFF。

④TONR:保持型接通延时定时器,输出Q在预设的延时后设置为ON,在使用R输入重置经过的时间之前,会一直累加跨越多个定时时段经过的时间。

2、如图2-2-2所示,在指令窗口中选择“定时器操作中”的TON指令,并将其拖入程序段中(见图2-2-3),这时会跳出一个“调用数据块”窗口,选择自动编号后,会直接生成DB1数据块,也可以选择手动编号,根据用户需要生成DB数据块。

图2-2-2 定时器指令

图2-2-3 TON指令调用数据块

在项目树的“程序块”中可以看到自动生成的IEC_Timer_0_DB[DB1]数据块(见图2-2-4)双击进入,即可读取DB1定时器的各个数据,变量的数据类型为IEC_Timer,见表2-2-5。

图2-2-4 DB1数据块位置

TON指令就是接通延迟定时器,输出Q在预设的延时后设置为ON。TON指令形式如图2-2-6。TON的参数及数据类型见表2-2-7。在2-2-7表中,R参数一般用于TONR等指令。参数IN从0跳为1时将启动定时器TON。

表2-2-5 DB1数据块IEC_Timer_0_DB的内容

图2-2-6 TON指令形式

表2-2-7 TON的参数及数据类型

参数

数据类型

说明

IN

Bool

启用定时器输入

R

Bool

将TONR经过的时间重置为0

PT

Bool

预设的时间值输入

Q

Bool

定时器输出

ET

Time

经过的时间值输出

定时器数据块

DB

指定要使用RT指令复位的定时器

在定时器中PT(预设的时间)和ET(经过的时间)的数据大小以有符号、双精度的32位整数形式表示毫秒时间,见表2-2-8。TIME数据使用T#标识符,以简单时间单元“T#200ms”或者复合时间单元“T#2S_200ms”的形式输入。

表2-2-8 TON的参数及数据类型

数据类型

大小

有效数值范围

TIME

32位存储形式

T#-24d_20h_31m_23s_648ms 到 T#24d_20h_31m_23s_647ms 以 -2,147,483,648 ms 到 +2,147,483,647 ms

TON指令的应用与时序图如图2-2-9和图2-2-10所示。在时序图中PT=5S。

图2-2-9 TON指令的应用

图2-2-10TON指令的时序图

TOF关断延时定时器的指令与TON类似。图2-2-11和图2-2-12为TOF指令的应用和时序图。在时序图中PT=5S。

图2-2-11TOF指令的应用

图2-2-12TOF指令的时序图

TP脉冲定时器指令的应用如图2-2-13,时序图如图2-2-14所示。在时序图中PT=5S。

图2-2-13TP指令的应用

图2-2-14TP指令的时序图

四、任务实施

本任务的实施步骤主要分为PLC接线、IO地址分配以及程序设计思路:

1、PLC接线如图2-2-14

图2-2-14PLC接线图

2、IO地址分配

输入地址

说明

输出地址

说明

I0.0

启动

Q0.0

小车前进

I0.1

A点位置

Q0.1

小车后退

I0.2

B点位置

I0.3

C点位置

I0.4

D点位置

I0.5

E点位置

3、程序设计思路

任务中,小车需要到达5个工位,首先判断小车前进的条件是:按下了启动按钮或者从B、C、D、E点任意一点返回到A点后。

小车停止前进的条件是:小车到达了B、C、D、E点或者触碰到了E点位置。

判断小车后退的条件是:B、C、D、E点位置到达了,然后延时时间到了则小车后退。

4、程序设计

五、经验与总结

1、在这个案例中主要使用的是常开、常闭、线圈、定时器指令。案例中有5个工位,当按下启动按钮后,小车启动。到达B、C、D、E任何一点都需要停止小车前进(使用M0.0标志位断开小车前进),然后再延时,延时时间到达后后退。

2、小车后退到达A点位置后,小车又继续前进。假定前一次到达的位置是B点,则这一次需要到达的是C点位置。到达C点位置就会触碰到B点的限位开关,故使用标志位(M0.1)断开小车在B点前进功能。

(技成培训网原创,作者:郭彪,未经授权不得转载,违者必究)

特别推荐:

手机版电工专用计算器,1分钟快速搞定复杂的电工计算

13种电气计算EXCEL表格,自动生成!从此计算不求人(超实用)

6款免安装的超实用电气计算软件,值得下载

相关问答

plc如何实现不同程序循环?

要用PLC实现程序的无限循环,我们可以使用时间顺序循环的指令,指令如下:1、用时间继电器T0驱动T1。2、再由T1驱动T2。3、T2驱动T3。4、直到最后一个,用TN...

plc编程最后循环到第一步怎么编?

plc编程实现循环有多种方法,可以用到跳转指令,蛮方便的,也可以用调用指令,看个人习惯,跳转和调用指令都可用来做手动自动的转换,不过用它们的话,手动和自动的...

plc八个灯循环指令有哪些?

移位指令一共有四个循环右移、循环左移、右移、左移循环移位指令(左、右)八个位是循环移动的也就是说循环左移1位就是向左移动1位最高位移到最低位处循环...

【plc循环控制系统设计一个8路彩灯控制器,彩灯实现按一定规...

[最佳回答]1,用右位移指令.2,还是用右移指令+左移+补位.3,用左移指令+补位.

西门子PLC怎么完成循环啊S7-200我是用定时器来完成程序的,我TOF以后程序就完成了,怎么回到开头啊?

循环控制吗,那不是很简单,一般都是顺序控制,只要你在最后步执行完了跳转到需要循环开始点就可以了。如果需要多个这样的循环,另外编程,可以调用子程序方式实...

plc”第一循环标志”在程序中起什么作用?

第一次循环任务:因为PLC是循环扫描方式运行的,所以“第一次循环”可以理解为,PLC首次把内部所有程序扫描一遍。那么“第一次循环任务”就是在PLC首次把内部所...

plc循环一个程序怎么结束循环?

plc结束循环最简单的办法是编写循环终止程序,编程思路如下:在编好的循环程序后再在别的地方加一条程序,用一个停止位(x1)置位一个位(m0),将这个m0添加到...p...

PLC设计中,一个自动循环的过程,假如我想让这个过程暂停,接着按一下继续按钮继续循环,暂停怎么处理?

哪你要有个自动循环到哪一步的寄存器了。。然后在按下暂停时把下步该干什么记录好,然后停止运行,在启动时先判断是不是第一次运行,是就从头开始,不是就读出...

求三菱FX2N编程高手PLC梯形图,8盏流水灯,开启时,灯1亮一灭后...

FX2N只要会PLC的都是高手我也来个另类的吧:x0为启动按钮,x1为停止按钮。y0~y7为8盏灯。程序在按下启动按钮后,灯1先亮,5秒(T0延时)后灭,灯2亮,依次循环。当...

三菱plc启动电机3s停2s又启动,循环的程序怎么编?

给你个思路,先做出三个一小时循环的plc,三台任意一台故障,就好比三个触点其中一个接通,去控制一个辅助继电器,然后断开三个循环的plc,做一个两个循环的plc...