首页 理论教育 子程序指令优化:如何提高程序效率

子程序指令优化:如何提高程序效率

时间:2023-06-27 理论教育 版权反馈
【摘要】:表5-49 子程序指令说明子程序指令使用要点如下:1)CRET指令多用于子程序内部,该指令是否执行取决于它前面的条件,该指令执行的结果是结束当前的子程序返回调用程序。若I0.3触点闭合,转入执行子程序1后,如果I0.5触点处于闭合状态,条件返回指令执行,提前从子程序1返回到主程序,子程序1中的网络2指令无法执行。

子程序指令优化:如何提高程序效率

子程序指令有两条:子程序调用指令(CALL)和子程序条件返回指令(CRET)。

1.指令说明

子程序指令说明见表5-49。

表5-49 子程序指令说明

978-7-111-55193-5-Chapter05-95.jpg

子程序指令使用要点如下:

1)CRET指令多用于子程序内部,该指令是否执行取决于它前面的条件,该指令执行的结果是结束当前的子程序返回调用程序。

2)子程序允许嵌套使用,即在一个子程序内部可以调用另一个子程序,但子程序的嵌套深度最多为9级。

3)当子程序在一个扫描周期内被多次调用时,在子程序中不能使用上升沿、下降沿、定时器和计数器指令。

4)在子程序中不能使用END(结束)指令。(www.xing528.com)

2.子程序的建立

编写子程序要在编程软件中进行,打开STEP 7-Micro/WIN编程软件,在程序编辑区下方有“主程序”、“SBR_0”、“INT_0”三个标签,单击“SBR_0”标签即可切换到子程序编辑页面,如图5-31所示,在该页面就可以编写名称为“SBR_0”的子程序。

978-7-111-55193-5-Chapter05-96.jpg

图5-31 切换与建立子程序

如果需要编写第2个或更多的子程序,可执行菜单命令“编辑→插入→子程序”,即在程序编辑区下方增加一个子程序名为“SBR_1”的标签,同时在指令树的“调用子程序”下方也多出一个“SBR_1”指令。在程序编辑区下方子程序名标签上单击鼠标右键,在弹出的菜单中选择重命名,标签名变成可编辑状态,输入新子程序名即可。

3.子程序指令使用举例

子程序指令使用如图5-32所示,其中图5-32a为主程序的梯形图和指令语句表,图5-32b为子程序0的梯形图,图5-32c为子程序1的梯形图。

主、子程序执行的过程是,当I0.0触点闭合时,调用子程序0指令执行,转入执行子程序0,在子程序0中,如果I0.1触点闭合,则将Q0.0线圈置位,然后又返回到主程序,开始执行调用子程序0指令的下一条指令(即网络2),当程序运行到网络3时,如果I0.3触点闭合,调用子程序1指令执行,转入执行子程序1,如果I0.3触点断开,则执行网络4指令,不会执行子程序1。若I0.3触点闭合,转入执行子程序1后,如果I0.5触点处于闭合状态,条件返回指令执行,提前从子程序1返回到主程序,子程序1中的网络2指令无法执行。

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

我要反馈