子程序在结构化程序设计中是一种方便有效的工具。S7-200PLC的指令系统具有简单、方便、灵活的子程序调用功能。与子程序有关的操作有:建立子程序、子程序的调用和返回。
1.建立子程序
建立子程序是通过编程软件来完成的。可用编程软件“编程”菜单中的“插入”选项选择“子程序”,以建立或插入一个新的子程序。同时,在指令树窗口可以看到新建的子程序图标,默认的子程序名是SBR¯N,编号N从0开始按递增顺序生成,也可以在图标上直接更改子程序的程序名,把它变为更能描述该子程序功能的名宇。在指令树窗口双击子程序的图标就可迸入子程序,并对它迸行编辑。对于CPU226XM,最多可以有128个子程序;对其余CPU,最多可以有64个子程序。
2.子程序的调用指令(CALL)
在使能输入有效时,主程序把程序控制权交给子程序。子程序的调用可以带参数,也可以不带参数。它在梯形图中以指令盒的形式编程,指令格式见表7-5。
3.子程序条件返回指令(CRET)
在使能输入有效时,结束子程序的执行,返回主程序中(返回到调用此子程序的下一条指令)。梯形图中以线圈的形式编程,指令不带参数。指令格式如表7-5所示。
表7-5 子程序调用及条件返回指令格式
4.应用举例
图7-11所示的程序实现用外部控制条件分别调用两个子程序。(www.xing528.com)
图7-11 子程序调用指令应用举例
a)梯形图 b)语句表
5.使用说明
1)CRET多用于子程序的内部,由判断条件决定是否结束子程序调用,RET用于子程序的结束。用Micro/WIN32编程时,编程人员不需要手工输入RET指令,而是由软件自动在内部加到每个子程序结尾。
2)如果在子程序的内部又对另一子程序执行调用指令,则这种调用称为子程序的嵌套。子程序的嵌套深度最多为8级。
3)当一个子程序被调用时,系统自动保存当前的堆栈数据,并把堆栈顶置1,堆栈中的其他值为零,子程序占有控制权。子程序执行结束,通过返回指令自动恢复原来的逻辑堆栈值,调用程序又重新取得控制权。
4)累加器可在调用程序和被调用子程序之间自由传递,所以累加器的值在子程序调用时既不保存也不恢复。
5)子程序中也可以带有参变量,带参数的子程序调用极大地扩大了子程序的使用范围,增加了调用的灵活性。它主要用于功能类似的子程序块的编程。子程序的调用过程如果存在数据的传递,则在调用指令中应包含相应的参数。子程序最多可以传递16个参数,参数在子程序的局部变量表中加以定义。参数包含下列信息:变量名、变量类型和数据类型。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。