⼲货分享——三菱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下分别执⾏不同的控制,我们可以调⽤不同的⼦程序进⾏控制,这题⽬⾥⾯还有⽤到的知识点还有左循环指令,计数器、位组合元件等⽤法。
最后这⼀个案例程序我已经写好了,各位可以参考⼀下。
调用子程序的例子
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论