理论教育 CALL指令的应用及注意事项

CALL指令的应用及注意事项

时间:2023-06-29 理论教育 版权反馈
【摘要】:1.子程序CALL指令西门子S7-200 PLC为了解决主程序语句过多的问题,通常可以采用“调用子程序指令”将控制转换给子程序。

CALL指令的应用及注意事项

1.子程序CALL指令

西门子S7-200 PLC为了解决主程序语句过多的问题,通常可以采用“调用子程序(CALL)指令”将控制转换给子程序(SBR_n)。用户可以使用带参数或不带参数的“调用子程序"指令。如图4-9所示为CALL语句。

在子程序完成执行后,控制返回至“调用子程序”之后的指令。每个子程序调用的输入/输出参数最大限制为16。如果下载的程序超过此限制,则会返回错误信息。用户可以为子程序指定一个符号名,例如USR_NAME,该符号名会出现在指令树的“子程序"文件夹中。

将参数值指定给子程序中的局部内存时应遵循以下几点:

1)参数值指定给局部内存的顺序由CALL指定,参数从Lx.0开始。

978-7-111-41181-9-Chapter04-12.jpg

图4-9 CALL语句

978-7-111-41181-9-Chapter04-13.jpg

图4-10 子程序调用说明

2)1~8个连续位参数值被指定给从Lx.0开始持续至Lx.7的单字节。

3)字节、字和双字数值被指定给局部内存,位于字节边界(LBx、LWx或LDx)位置。

4)在带参数的“调用子程序”指令中,参数必须与子程序局部变量表中定义的变量完全匹配。

5)参数顺序必须以输入参数开始,其次是输入/输出参数,然后是输出参数。(www.daowen.com)

2.CALL调用示例

需要注意的是,在西门子S7-200 PLC程序中,不使用RET指令终止子程序,也不得在子程序中使用END(结束)指令。

图4-10所示为子程序的调用说明,其中箭头所指语句不用编程,由STEP7-Micro/WIN自动处理。

图4-11所示为子程序调用示例。

用于SBR_0的局部变量表。

978-7-111-41181-9-Chapter04-14.jpg

图4-11 子程序调用示例

a)变量定义 b)主程序

从图中可以调用参数类型见表4-2。

表4-2 可以调用的参数类型

978-7-111-41181-9-Chapter04-15.jpg

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

我要反馈