PLC操作案例详解子程序调用

2019-10-30 09:49 1448 63

今天我们以三菱PLC为例,学习一下什么是子程序。

一套程序可以分为主程序区,还有子程序区,中断程序区等等,主程序区的程序是无时无刻都会扫描执行的,而子程序还有中断程序就必须触发某些条件,子程序才会执行。

那么问题来了,为什么不在主程序里面,加一个常开触点,触点闭合时就执行相应的程序段,这样不是也能够达到一样的效果么?为什么要出现子程序这样的东西呢?

PLC案例详解子程序调用,图文并茂,太实用啦

那是由于PLC的扫描周期引起的,PLC运行的速度,也就是扫描周期,受到I/O数量、通讯、还有程序的大小限制。单独谈论程序大小,扫描的程序越多,扫描周期越长。下面我们拿三菱FX3U-16MT这款plc做了测试。

PLC案例详解子程序调用,图文并茂,太实用啦

如上图,监控PLC的2个特殊寄存器,D8011是扫描程序的最短时间,D8012是扫描程序的最长时间,底下是程序的步数,没有写程序时,扫描周期平均需要5ms,随着程序增加,扫描周期不断变长;到16000步时,平均的扫描周期达到了25ms。由此可见减少扫描程序的必要性,下面我们来看一下,子程序的具体使用方法。

PLC案例详解子程序调用,图文并茂,太实用啦

这段程序分为主程序区和P0子程序两个部分,从程序第一行开始到FEND指令,这些都是主程序,FEND是主程序的结束标志。左边的P0编号到SRET子程序结束指令,这是每一段完整的子程序必有的内容。

该程序中,当M2常开触点触发CALL P0指令时,P0子程序区的程序才能够执行,这时可以触发M1常开触点,Y4线圈会导通;这时有一个需要非常注意的点,在触发Y4的时候,断开M2,也就是停下P0子程序的运行,Y4会保持输出的状态,就算这时M1断开了,Y4也保持输出。除非再次触发P0子程序检测到M1断开了,Y4才会断开。

子程序的调用除了普通的用法,还可以多层嵌套,如下图:

PLC案例详解子程序调用,图文并茂,太实用啦

通过X001调用子程序P11,运行P11时,通过触发X2按钮,调用P12子程序。这样的写法最多支持5层的嵌套。

那么,子程序一般用在哪里呢?比如下面一条传送带,有很多个工艺,假如其中有一些工艺有些人需要,有一些人不需要,那么,就可以采用子程序的用法,在需要时我们就调用相应的工艺程序,不需要时,就不调用

PLC案例详解子程序调用,图文并茂,太实用啦

比如下面的一个分检机构,通过前面的感应器区分大中小部件,然后把部件放到相应的箱子里面,这时候我们也可以使用子程序调用,分别把大中小部件分别写一段子程序。检测到对应的部件时就调用相应的子程序。

PLC案例详解子程序调用,图文并茂,太实用啦

再比如下面这个项目,按下按钮第1、2、3下分别执行不同的控制,我们可以调用不同的子程序进行控制,这题目里面还有用到的知识点还有左循环指令,计数器、位组合元件等用法。

PLC案例详解子程序调用,图文并茂,太实用啦

推荐阅读
降压型DC/DC转换器电路如何选择电容,电感思考步骤、计算公式、实例 2020-03-19 11:56
TP4056芯片在锂电池充电是怎样运行管理? 2020-03-05 16:43
2019诺贝尔物理奖得主:理论宇宙学、太阳与恒星学贡献 2019-10-10 10:51
华为P40 Pro+超大杯与大杯做了哪些加法,10倍光学多反射潜望式长焦? 2020-06-03 14:19
CRADLE:跨后端验证可检测和本地化深度学习库中的错误 2020-06-19 11:26