研选课堂
HOME
研选课堂
正文内容
plc编程循环举例 plc子程序和循环指令的举例说明,带你走进plc高级编程
发布时间 : 2025-04-29
作者 : 小编
访问数量 : 23
扫码分享至微信

plc子程序和循环指令的举例说明,带你走进plc高级编程

今天有同学问到这样一个问题,如下图中的四个半径数据D0~D3,分别求取4个数值的面积,并对其求和,要求是必须采用循环指令和采用子程序来完成。

问题描述

从外面顺控编程来看,这个问题很简单,D0*D0*3.14=D10,...,D3*D3*3.14=D16,D10+D12+D14+D16=D100,按照顺序编写即可完成最后的计算结果。但是如实数据量较多,比如20个,50个的数据求面积,我们难道要编写梯形图重复50多次,显然不合理,所以这位同学的要求很是很好的,今天我们就来介绍下循环指令和子程序的使用。

循环指令,从FOR指令开始到NEXT(FNC 09)指令之间的程序按指定次数重复运行,重复了指定次数后,执行NEXT指令后的步处理,可以对FOR-NEXT指令进行嵌套编程,最多嵌套5层。

循环指令

子程序,在顺控程序中,对想要共同处理的程序进行调用的指令,可以减少程序的步数,更加有效地设计程序。当指令输入为ON时,执行CALL指令,向标记指针Pn跳转,接着,执行标记Pn处的子程序,执行SERT指令后返回CALL指令的下一步,在主程序的最后用FEND指令编程。

子程序

说明了这两个指令,我们开始分析编写梯形图程序,因为是4个数据,所以循环次数是4,首先是第一次循环计算D0数据的面积,这里因为要求子程序,我们把计算面积的公式作为子程序编程,把D0传送到D20并调用子程序把计算结果传送到D10中,并对面积进行一次加法结果保存到D100中,这时候第一次循环就结束了,开始第二次循环,计算D1的面积同上,这里我们采用变址寄存器V对数据D0V0进行软元件的修改,方便我们循环,这个D0V0是什么意思呢,如果V0的值等于1,则D0V0表示D1,V0=3,D0V0表示D3,在D0软元件的编号上加V0值。每次循环完成,对V进行加1或者加2,这样就可以用D0V0和D10V1表示D0~D3,D10~D16。

分析了以上的情况,我们开始变形梯形图,总共有100步,第1步到第8步是数据的初始化,包括变址寄存器V0、V1和总面积D100的清零操作。FOR K4就是循环4次,每一次循环计算一个数值的面积并累积总面积。CALL P1就是调用计算面积的子程序,面积计算完成返回到循环内,把数据进行浮点转整数的int指令并传送到D10,接着对变址寄存器V0加1,V2加2,以及累积面积D100,这样一次完整的计算循环就完成了,接着进行下一次循环,知道循环4次。P1处到END指令就是计算面积的子程序。

计算梯形图

编写完成我们分别对D0~D3(3、4、5、6)进行赋值验算看程序计算是否正确,计算结果是269,忽略3.14浮点的误差。

以上就是三菱plc采用循环指令和子程序去计算多个面积的举例说明,你理解了吗?欢迎留言讨论!

热门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中,可以使用循环语句或者定时器来实现程序的重复循环。循环语句可以使用LAD、FBD或者STL等编程语言编写,通过判断循环次数或者循环条件来实现重复执行程...

西门子plc循环指令?

使用这条指令时,当你设定好当前循环计数(INDX)、起始值(INIT)和结束值(FINAL)后,每次I0.1动作,就会执行一次FOR到NEXT之间的循环,循环结束后INDX值就会...使...

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

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

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

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

plc怎么写循环指令?

在PLC的程序中,循环执行可以通过使用循环指令来实现。PLC的循环指令通常分为两种:定长循环和条件循环。1.定长循环定长循环指令是由一个计数器和一个定值组...

西门子PLC怎么使程序循环?

使用这条指令时,当你设定好当前循环计数(INDX)、起始值(INIT)和结束值(FINAL)后,每次I0.1动作,就会执行一次FOR到NEXT之间的循环,循环结束后INDX值就会...使...

plc系统循环是什么意思?

说的通俗点,PLC系统循环就是从上到下,从左到右循环执行用户程序,每循环一次就是顺便扫描一遍元件的状态。并按程序指令来执行相应的动作,这个周期就是所谓的P...

信捷plc跑马灯循环程序怎么维持?

信捷PLC的跑马灯循环程序可以通过设置计时器来实现。具体步骤如下:1.在程序中定义跑马灯所需的IO口,并初始化。2.创建一个计时器,设置定时时间为跑马...

西门子plcfor…to循环的用法?

您好,西门子PLC的循环用法可以通过使用循环指令来实现。循环指令可以在程序中重复执行一段代码,直到满足某个条件为止。常见的循环指令有以下几种:1.FOR循...

西门子PLC中如何实现自动循环?

在西门子PLC中实现自动循环通常可以使用计时器和定时器来实现。以下是一种常见的方法:1.使用一个计时器(TON)步来设置循环的时间间隔。该计时器的触发可以通...

 拉什迪  四川省第十二次党代会 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2025  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部