理论教育 子程序指令:优化控制程序的关键操作

子程序指令:优化控制程序的关键操作

时间:2023-06-27 理论教育 版权反馈
【摘要】:子程序通常是与主程序分开的、完成特定功能的一段程序。子程序执行完后用子程序返回指令 RET,返回主程序继续执行。SBR_N是子程序名,标志子程序入口地址。在子程序调用期间,若I0.1闭合,则线圈Q0.0接通。在子程序的最后,编程软件将自动添加子程序的无条件结束指令RET。子程序的嵌套深度最多为8层。

子程序指令:优化控制程序的关键操作

程序中有些部分可能要实现相同的功能,而且这些功能需要经常用到,用子程序实现这个功能是很适合的。子程序通常是与主程序分开的、完成特定功能的一段程序。当主程序(调用程序)需要执行这个功能时,就可以调用该子程序(被调用程序)。于是,程序转移到这个子程序的起始处执行。当运行完子程序后,再返回调用它的主程序。子程序由主程序执行子程序调用指令 CALL来调用。子程序执行完后用子程序返回指令 RET,返回主程序继续执行。CALL和RET指令均不影响标志位。

1.指令格式

STL: CALL SBR_N CRET

LAD:

2.指令功能

CALL:子程序调用指令。当 EN条件满足时,将主程序转到子程序入口开始执行子程序。SBR_N是子程序名,标志子程序入口地址

CRET:有条件子程序返回指令。在其逻辑条件成立时,结束子程序执行,返回主程序中的子程序调用处继续向下执行。

3.指令应用(见图4-46)

图4-46 子程序调用指令应用

(1)当 I0.0闭合时,调用子程序 SBR_0,子程序所有指令执行完毕,返回主程序调用处,继续执行主程序。每个扫描周期,此程序运行一次,直到I0.0断开。在子程序调用期间,若I0.1闭合,则线圈Q0.0接通。

(2)在 M1.0闭合期间,调用子程序 SBR_1,执行过程同子程序 SBR_0。在子程序SBR_1执行期间,若I0.3闭合,则线圈Q0.1接通;若I0.4断开且I0.5闭合,则MOV_B指令执行;若I0.4闭合,则执行有条件子程序返回指令CRET,程序返回主程序继续执行,MOV_B指令不执行。

4.指令说明(www.daowen.com)

① CRET多用于子程序内部,在条件满足时起结束子程序的作用。在子程序的最后,编程软件将自动添加子程序的无条件结束指令RET。

② 子程序可以嵌套运行。子程序的嵌套深度最多为8层。

要调用子程序,首先要建立子程序。下面给出3种建立子程序的方法:

(1)打开编辑软件,选择“编辑”菜单中“插入”子菜单下的“子程序”选项来建立一个新的子程序,如图4-47所示。

(2)打开编程软件,单击鼠标右键,选择“插入”→“子程序”选项,如图4-48所示。

(3)打开编程软件,在软件的下方 SBR_0处,单击鼠标右键,选择“插入”→“子程序”选项,如图4-49所示。

图4-47 子程序建立方法1

图4-48 子程序建立方法2

图4-49 子程序建立方法3

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈