文章:如何通过更改变量来调用子程序?

所有者:我的一生全靠浪(呢称); 发布时间:2019-04-01 03:16:23; 更新时间:2019-04-01 03:16:23

阅读所需积分:0; 

简介:有时客户想把子程序名以变量的方式在主程序中调用,怎么实现呢?本期我们就来介绍一下字符串的链接指令,它可以帮助我们解答前面的问题。

有时客户想把子程序名以变量的方式在主程序中调用,怎么实现呢?本期我们就来介绍一下字符串的链接指令,它可以帮助我们解答前面的问题。这个指令功能可使单个的字符串组合在一起,通过运算符“<<”实现级联,这个运算符适用于所有基本类型CHAR,BOOL,INT,REAL 和 STRING的组合,最终变成目标类型字符串。

 

问题举例:

如下图所示,系统中有AF1,AF2,AF3,3个子程序(注意:子程序名类似并且含有数字是为了方便使用变量调用),我们想在主程序中编写相同的内容,但可以任意调用这个3个子程序,如何实现呢?

1.jpg

解决问题思路:

在主程序中,我们使用西门子系统的宏变量R参数作为调用子程序的变量,比如使用R1变量,修改R1=1时,调用AF1子程序;R1=2时,调用AF2子程序;R1=3时,调用AF3子程序。

解决问题方法:

我们使用字符串的链接指令“<<”来实现,主程序就可以编写如下:

2.jpg

主程序中将“字符AF”与”R1“,通过字符串的链接指令“<<”连接起来,这时,当我们赋值R1=1时,主程序中相当于CALL AF1,调用名字为AF1子程序;如下图:

3.jpg

依此类推,如果设置R1=2时,调用AF2子程序;R1=3时,调用AF3子程序。




来源“ Siemens数控技术应用