找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 4309|回复: 15

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

 火.. [复制链接]
  • 打卡等级:常驻代表
  • 打卡总天数:34
  • 打卡月天数:6
  • 打卡总奖励:9027
  • 最近打卡:2025-12-17 23:15:51

2823

主题

541

回帖

2万

积分

管理员

积分
22569
发表于 2021-2-21 20:27:17 | 显示全部楼层 |阅读模式
来源:工控人(头条)

今天有同学问到这样一个问题,如下图中的四个半径数据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采用循环指令和子程序去计算多个面积的举例说明,你理解了吗?欢迎留言讨论!







工控课堂 www.gkket.com

0

主题

110

回帖

264

积分

注册会员

积分
264
发表于 2021-2-21 23:11:58 | 显示全部楼层
看完楼主的帖子,我的心情竟是久久不能平息,受教了
工控课堂 www.gkket.com

0

主题

314

回帖

2270

积分

高级会员

积分
2270
发表于 2021-2-21 23:12:09 | 显示全部楼层
看了楼主的帖子,不由得精神一振,豁然开朗,牛掰
工控课堂 www.gkket.com

0

主题

92

回帖

134

积分

新手上路

积分
134
发表于 2025-11-12 23:14:36 | 显示全部楼层
已转发给朋友,一起感受这份快乐~
工控课堂 www.gkket.com

0

主题

87

回帖

129

积分

新手上路

积分
129
发表于 2025-11-12 23:34:41 | 显示全部楼层
这评论区卧虎藏龙,个个都是人才!
工控课堂 www.gkket.com

0

主题

73

回帖

108

积分

新手上路

积分
108
发表于 2025-11-12 23:38:57 | 显示全部楼层
理性围观,感觉大家说的都有道理~
工控课堂 www.gkket.com

0

主题

114

回帖

180

积分

新手上路

积分
180
发表于 2025-11-12 23:42:40 | 显示全部楼层
笑不活了,评论区比正文还精彩!
工控课堂 www.gkket.com

0

主题

95

回帖

142

积分

新手上路

积分
142
发表于 2025-11-12 23:46:37 | 显示全部楼层
这逻辑绝了,分析得太到位了吧
工控课堂 www.gkket.com

0

主题

162

回帖

441

积分

注册会员

积分
441
发表于 2025-11-12 23:47:56 | 显示全部楼层
不请自来,只为说一句:太精彩了!
工控课堂 www.gkket.com

0

主题

109

回帖

177

积分

新手上路

积分
177
发表于 2025-11-12 23:48:04 | 显示全部楼层
学到了学到了,这波分享太实用啦!
工控课堂 www.gkket.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|手机版|免责声明|本站介绍|工控课堂 ( 沪ICP备20008691号-1 )

GMT+8, 2025-12-22 16:58 , Processed in 0.080575 second(s), 25 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表