数控系统本质上就是一台微机,支持计算机编程语言,数控系统的宏程序是为了特定的功能,由用户自己编写的一个子程序或者子模板,可以方便用户后期的灵活使用。西门子数控系统可以完美支持计算机编程的判断语句(IF)、循环语句(FOR、WHILE、 LOOP)等逻辑控制语句,控制系统自动按编程顺序处理各个程序段,在每个子程序之内,嵌套的层数可以达到 16 个标准控制结构。
变量顾名思义就是程序执行过程中变化的数量或者文本信息,西门子数控系统常见的变量有如下几类:
R 变量:系统自带的变量。
局部用户变量(LUD):局部用户变量 (LUD) 是在执行时不是主程序的 NC 程序中定义的变量。此指令在调用 NC 程序时创建,并在程序结束复位或下一次启动控制系统时删除。只能在定义 LUD 的 NC 程序中存取该 LUD。
程序全局用户变量(PUD):程序全局用户变量 (PUD) 是在作为主程序的 NC 程序中定义的变量。此指令在调用 NC 程序时创建,并在程序结束复位或下一次启动控制系统时删除。可在主程序及所有子程序中存取 PUD。
全局用户变量(GUD):全局用户变量 (GUD) 是在数据块 (SGUD、MGUD、UGUD、GUD4 ... GUD9) 中定义的 NC 或通道全局变量,此变量在程序结束复位或下一次启动控制系统后依然保留。在所有 NC 程序中都可访问 GUD。
不同变量的特点:
R 变量是无需特别设置客户直接可以在用户程序中使用。PUD 和 LUD 必须在 NC 程序的定义段中定义。GUD 必须在定义文件_N_DEF_DIR/_N_UGUD_DEF 中定义 。
以主轴热机程序作为例子,机床开机后运行主轴热机程序,机床主轴转速以每分钟提高转速 1000 转/分钟,直到最高转速 10000 转,热机时间 10 分钟。编写三种不同变量的使用方法,具体如下:
1. R变量的编程
R10=0
LAB1:
IF R10<10
R10=R10+1
M03S=1000*R10
G4F60
GOTO LAB1
ENDIF
R10=0
M05
M30
2. 程序全局用户变量(PUD)或者局部用户变量(LUD)的程序编写
DEF INT SPEED
SPEED=0
LAB:
IF SPEED<10
SPEED=SPEED+1
M03S=1000*SPEED
G4F60
GOTO LAB
ENDIF
SPEED=0
M05
M30
未完,待续