PLC案例详解子程序调用,图文并茂,太实用啦
今天我们以三菱PLC为例,学习一下什么是子程序。
一套程序可以分为主程序区,还有子程序区,中断程序区等等,主程序区的程序是无时无刻都会扫描执行的,而子程序还有中断程序就必须触发某些条件,子程序才会执行。
那么问题来了,为什么不在主程序里面,加一个常开触点,触点闭合时就执行相应的程序段,这样不是也能够达到一样的效果么?为什么要出现子程序这样的东西呢?
那是由于PLC的扫描周期引起的,PLC运行的速度,也就是扫描周期,受到I/O数量、通讯、还有程序的大小限制。单独谈论程序大小,扫描的程序越多,扫描周期越长。下面我们拿三菱FX3U-16MT这款plc做了测试。
如上图,监控PLC的2个特殊寄存器,D8011是扫描程序的最短时间,D8012是扫描程序的最长时间,底下是程序的步数,没有写程序时,扫描周期平均需要5ms,随着程序增加,扫描周期不断变长;到16000步时,平均的扫描周期达到了25ms。由此可见减少扫描程序的必要性,下面我们来看一下,子程序的具体使用方法。
这段程序分为主程序区和P0子程序两个部分,从程序第一行开始到FEND指令,这些都是主程序,FEND是主程序的结束标志。左边的P0编号到SRET子程序结束指令,这是每一段完整的子程序必有的内容。
该程序中,当M2常开触点触发CALL P0指令时,P0子程序区的程序才能够执行,这时可以触发M1常开触点,Y4线圈会导通;这时有一个需要非常注意的点,在触发Y4的时候,断开M2,也就是停下P0子程序的运行,Y4会保持输出的状态,就算这时M1断开了,Y4也保持输出。除非再次触发P0子程序检测到M1断开了,Y4才会断开。
子程序的调用除了普通的用法,还可以多层嵌套,如下图:
通过X001调用子程序P11,运行P11时,通过触发X2按钮,调用P12子程序。这样的写法最多支持5层的嵌套。
那么,子程序一般用在哪里呢?比如下面一条传送带,有很多个工艺,假如其中有一些工艺有些人需要,有一些人不需要,那么,就可以采用子程序的用法,在需要时我们就调用相应的工艺程序,不需要时,就不调用
比如下面的一个分检机构,通过前面的感应器区分大中小部件,然后把部件放到相应的箱子里面,这时候我们也可以使用子程序调用,分别把大中小部件分别写一段子程序。检测到对应的部件时就调用相应的子程序。
再比如下面这个项目,按下按钮第1、2、3下分别执行不同的控制,我们可以调用不同的子程序进行控制,这题目里面还有用到的知识点还有左循环指令,计数器、位组合元件等用法。
(本文为技成原创, 作者:陈育鑫,未经授权不得转载,违者必究!)
往期优秀文章回顾:
WinCC通讯的案例讲解,图文都有
子程序调用该怎么操作?这份PLC案例教会你
今天我们以三菱PLC为例,学习一下什么是子程序。
一套程序可以分为主程序区,还有子程序区,中断程序区等等,主程序区的程序是无时无刻都会扫描执行的,而子程序还有中断程序就必须触发某些条件,子程序才会执行。
那么问题来了,为什么不在主程序里面,加一个常开触点,触点闭合时就执行相应的程序段,这样不是也能够达到一样的效果么?为什么要出现子程序这样的东西呢?
那是由于PLC的扫描周期引起的,PLC运行的速度,也就是扫描周期,受到I/O数量、通讯、还有程序的大小限制。单独谈论程序大小,扫描的程序越多,扫描周期越长。下面我们拿三菱FX3U-16MT这款plc做了测试。
如上图,监控PLC的2个特殊寄存器,D8011是扫描程序的最短时间,D8012是扫描程序的最长时间,底下是程序的步数,没有写程序时,扫描周期平均需要5ms,随着程序增加,扫描周期不断变长;到16000步时,平均的扫描周期达到了25ms。由此可见减少扫描程序的必要性,下面我们来看一下,子程序的具体使用方法。
这段程序分为主程序区和P0子程序两个部分,从程序第一行开始到FEND指令,这些都是主程序,FEND是主程序的结束标志。左边的P0编号到SRET子程序结束指令,这是每一段完整的子程序必有的内容。
该程序中,当M2常开触点触发CALL P0指令时,P0子程序区的程序才能够执行,这时可以触发M1常开触点,Y4线圈会导通;这时有一个需要非常注意的点,在触发Y4的时候,断开M2,也就是停下P0子程序的运行,Y4会保持输出的状态,就算这时M1断开了,Y4也保持输出。除非再次触发P0子程序检测到M1断开了,Y4才会断开。
子程序的调用除了普通的用法,还可以多层嵌套,如下图:
通过X001调用子程序P11,运行P11时,通过触发X2按钮,调用P12子程序。这样的写法最多支持5层的嵌套。
那么,子程序一般用在哪里呢?比如下面一条传送带,有很多个工艺,假如其中有一些工艺有些人需要,有一些人不需要,那么,就可以采用子程序的用法,在需要时我们就调用相应的工艺程序,不需要时,就不调用
比如下面的一个分检机构,通过前面的感应器区分大中小部件,然后把部件放到相应的箱子里面,这时候我们也可以使用子程序调用,分别把大中小部件分别写一段子程序。检测到对应的部件时就调用相应的子程序。
再比如下面这个项目,按下按钮第1、2、3下分别执行不同的控制,我们可以调用不同的子程序进行控制,这题目里面还有用到的知识点还有左循环指令,计数器、位组合元件等用法。
(本文为技成原创, 作者:陈育鑫,未经授权不得转载,违者必究!)
往期优秀文章回顾:
WinCC通讯的案例讲解,图文都有
相关问答
plc怎么看主程序里面调用没调用块?
在PLC主程序中,要查看某个块是否被调用,可以通过以下步骤进行检查。首先,打开PLC编程软件,并加载主程序。然后,浏览主程序的各个部分,查找是否存在对目标...
plc怎么查看fc块调用没调用?
1.可以通过查看PLC程序中的调用关系来确定FC块是否被调用。2.在PLC程序中,FC块通常被其他块(如OB块、FC块、FB块)调用。可以通过查看这些块之间的调用关系来...
plc的堆栈数据如何调用?
PLC的堆栈数据可以通过堆栈指针来调用。堆栈指针指向当前堆栈顶部的位置,可以用来读取和写入堆栈数据。要调用堆栈数据,首先将堆栈指针指向需要访问的数据位...
西门子PLC如何在主程序,写入调用子程序的命令?
你既然说主程序和子程序,通常就是指西门子200PLC中,我就以Micro/Win软件的操作来说明一下。如下图:当你建立一个子程序后,该子程序会出现在“调用子程序”...
西门子PLC带参数调用子程序怎么实现的?
西门子PLC带参数调用子程序实现方法先在编辑菜单下,插入一个新的子程序,切换到该子程序,这时在子程序的上方会出现局部变量参数的编辑区,里面有IN、OUT等等。...
200plc如何调用子程序?
在PLC编程中,调用子程序通常是通过以下步骤实现的:首先,你需要创建一个子程序。子程序是一个独立的程序块,可以完成特定的任务或计算。在子程序中,你可以定...
三菱plc调用子程序编程实例?
你好,以下是一个简单的三菱PLC调用子程序编程实例:1.首先,在主程序中定义一个子程序,例如:M8000:子程序开始MOVD0,#100;将100存储到D0寄存器中RET...
PLC什么情况下要调用中断程序?中断程序怎么用?
因为程序是顺序执行的,如果程序大的话,完整扫描时间的就长,如果程序小完整执行时间就短,如果需要定时执行的程序就需要使用中断,例如PID功能就必须使用中断...
怎么通过电脑读出PLC程序-ZOL问答
不管是什么PLC读取PLC程序的方法基本都一样。第一步:在电脑上安装与PLC对应的编程软件(一般买PLC时就随机带光盘,没有就网上下载)第二步:要有该PLC对应的数据...
plc扩展模块的地址怎么按位置扩展?
PLC扩展模块的地址按位置扩展通常是指按照物理位置来分配地址。这种方式可以使得PLC程序更加直观和易于维护。以下是按位置扩展PLC扩展模块地址的步骤:确定扩...