三菱 PLC 子程序调用全攻略

发布时间:2025-02-21
来源:
点击:838
一、什么是子程序

 

在三菱 PLC 的程序结构中,一套程序可分为主程序区、子程序区等。子程序是指只有在被调用时才运行,不调用则不执行的程序部分。与主程序不同,主程序是无时无刻都在执行的,而子程序可以优化程序结构,缩短扫描周期。

 

那么,为什么要使用子程序呢?这是由于 PLC 的扫描周期引起的。PLC 运行的速度即扫描周期,受到 I/O 数量、通讯以及程序大小的限制。扫描的程序越多,扫描周期越长。例如,对三菱 FX3U - 16MT 这款 PLC 进行测试,监控其特殊寄存器 D8011(扫描程序的最短时间)和 D8012(扫描程序的最长时间),可以发现随着程序步数的增加,扫描周期不断变长。由此可见,减少扫描程序是很有必要的,而将一些程序放到子程序区,在不调用时不进行扫描,就能缩短扫描周期。

1.png

二、子程序与主程序的区别

 

简述:从使用、调用、结束三个方面阐述子程序与主程序的不同之处。

 

(一)使用不同

子程序不可以作为独立的加工程序使用,只能通过调用来实现加工中的局部动作。而主程序可以作为独立的加工程序使用。例如在三菱 PLC 中,主程序区的程序是无时无刻都会扫描执行的,而子程序只有在被调用时才会执行。

(二)调用不同

子程序可以被任何主程序或其他子程序调用。比如在三菱 FX5U PLC 中,子程序相关的指令包括子程序调用 CALL 和子程序返回指令 RET/SRET,通过 CALL 指令可以调用指针 P 的子程序进行执行。而主程序不可以被任何其他程序调用。

(三)结束不同

子程序执行结束,自动返回到调用的主程序中。例如当执行子程序中的 SRET 指令时,就会返回到 CALL 指令的下一步执行。而主程序执行结束,整个软件结束运行。

 

 

三、子程序调用指令

 

在三菱 FX3U PLC 中,子程序调用指令 CALL 和子程序返回指令 SRET 起着至关重要的作用。

2.png

(一)功能介绍

子程序调用 CALL:调用指针 P 的子程序进行执行。例如,当程序中需要执行特定功能时,可以通过 CALL 指令调用对应的子程序。

子程序返回SRET:表示子程序的结束。当子程序执行完毕后,通过 SRET 指令返回到 CALL 指令的下一步,继续执行主程序。

 

(二)用法说明

位置要求:子程序在 FEND 指令的后面,以标号 P 开头,以返回指令 SRET 结束。

注意事项:子程序调用指令 CALL 与跳转指令 CJ 不能使用相同的标号 P。

 

 

四、子程序的使用案例

 

一套设备的手动调试程序,下图的M0是自动启动标志位,自动运行时,M0是动作的,只有在自动停止情况下,以下的程序才可以点动触发,通过触摸屏控制M51、M52等等这些点(实际程序中,点动的程序非常长,不止这几步,有好几百步,占用了挺多的扫描时间)

3.png

4.png

五、思考题与解析

 

思考题1为什么要使用子程序呢?

解析:这是由于 PLC 的扫描周期引起的。PLC 运行的速度即扫描周期,受到 I/O 数量、通讯以及程序大小的限制。扫描的程序越多,扫描周期越长。例如,对三菱 FX3U - 16MT 这款 PLC 进行测试,监控其特殊寄存器 D8011(扫描程序的最短时间)和 D8012(扫描程序的最长时间),可以发现随着程序步数的增加,扫描周期不断变长。由此可见,减少扫描程序是很有必要的,而将一些程序放到子程序区,在不调用时不进行扫描,就能缩短扫描周期。

 

 

思考题2位置要求:子程序在 ()指令的后面,以标号 ()开头,以返回指令()结束。

解析:位置要求:子程序在 FEND 指令的后面,以标号 P 开头,以返回指令 SRET 结束。

免责声明:本站所提供信息均来源于网友提供或网络搜集,由本站编辑整理,如涉及版权问题,请联系本站管理员予以更改或删除
旗下服务
在线课程 现场培训
微信公众号
© 2019-现在 版权所有,并保留所有权利。ICP备案证书号:沪ICP备18011190号-4

沪公网安备 31011202007493号