在SINUMERIK数控系统中,用户变量可以分为如下几种:
- GUD 全局变量,可以在所有NC程序中使用
- LUD 局部变量,只能在定义变量的程序中使用
- PUD 全局变量,需要定义在主程序中,通过参数设置将定义在主程序中的 LUD变量转变为了PUD变量,这样,所有的子程序和主程序都能使用。
1. 关于GUD变量的描述,请参考如下文章:
2. 关于LUD和PUD变量,通过设置参数MD11120=1可以激活程序全局变量的扩展,即实现主程序中定义的变量由LUD转变为PUD。
可以在系统参数界面下的用户变量界面查看LUD(局部用户变量)与PUD(程序用户变量)的变化(下文示例中可见),注意只有程序运行时才能查看变量的实际状态。
举个简单的应用例子给大家(设置了参数MD11120=1),供您参考。其中包括一个主程序WK.mpf,两个子程序SUB2.spf 和SUB3.spf,运行主程序时,不同的用户变量,在主程序、子程序及它们之间会有不同的意义。
主程序: WK.mpf
PROC MAIN ;定义主程序
DEF INT VAR1 ;VAR1作为PUD定义(如果是在子程序中就是LUD),如下图所示
G91G01X1000F200
SUB2 ;调用子程序SUB2
G91G01Y1000F200
M30
子程序1: SUB2.spf
PROC SUB2 ;定义子程序
DEF INT VAR2 ;VAR2作为LUD定义,如下图所示
G91G01Z1000F200
IF (VAR1==0) ;读取主程序中定义的PUD
VAR1=VAR1+1
VAR2=1 ;操作本程序中的LUD
ENDIF
SUB3 ;调用子程序SUB3
G01G90X0F1000
M17
子程序2: SUB3.spf
PROC SUB3 ;定义子程序
G90G01Y0F1000
IF (VAR1==1) ;读取主程序中定义的PUD
VAR1=VAR1+1
VAR2=2 ;注意因为VAR2是LUD(局部变量),在实际运行时就会出现报警,如下图所示
ENDIF
G90G01Z0F1000
M17
问答社区 发起问答 报警查询 技术文章 维修服务 资料下载 加交流群 申请 VIP
本文转载来自【公众号:Siemens数控技术应用】,仅供大家学习交流,如侵权请联系站长删文。