数控宏程序变量用法详解(#1xx~#5xx变量+运算+条件判断+实例)

宏程序(Macro Program)是FANUC系统的高级编程功能,通过使用变量和运算逻辑,可以编写出比普通G代码更灵活、更高效的加工程序。本文详细讲解宏程序中变量的用法,从基础到进阶,帮助编程员掌握这一实用技能。

一、变量的三种类型

1.1 局部变量(#1~#33)

局部变量只在当前宏程序中有效,程序结束或调用子程序时会被清空。G65调用时可通过自变量传递。

变量号 对应的G65地址 用途
#1 A 第一自变量
#2 B 第二自变量
#3 C 第三自变量
#7 D
#8 E
#9 F 进给速度
#11 H
#13 M 辅助功能
#18 R 圆弧半径/参考点
#19 S 主轴转速
#20 T 刀具号
#21 U
#22 V
#23 W
#24 X X坐标
#25 Y Y坐标
#26 Z Z坐标

1.2 公共变量(#100~#199/#500~#999)

  • #100~#199:断电清零的公共变量(临时数据)
  • #500~#999:断电保持的公共变量(可长期保存参数)

公共变量在所有程序中共享,可用于程序间传递数据。

1.3 系统变量(#1000~)

系统变量用于读取和写入机床状态信息:

变量范围 含义
#1000~#1035 接口信号输入(DI)
#1100~#1135 接口信号输出(DO)
#2001~#2064 刀具磨损补偿值
#3000 报警变量(赋值后触发报警)
#3001/#3002 时钟变量(毫秒/小时)
#4001~#4120 模态信息(当前G/M代码等)
#5001~#5006 工件坐标系当前位置
#5021~#5026 机床坐标系当前位置

二、变量赋值与运算

2.1 赋值语句

#1 = 100    (将100赋值给#1)
#2 = #1     (将#1的值赋给#2)
#3 = 50 + 25 (运算后赋值)

2.2 算术运算

运算符 功能 示例
+ 加法 #1 = #2 + 10
减法 #1 = #2 – 5
* 乘法 #1 = #2 * 3
/ 除法 #1 = #2 / 2
SIN[] 正弦 #1 = SIN[30] (结果为0.5)
COS[] 余弦 #1 = COS[60] (结果为0.5)
TAN[] 正切 #1 = TAN[45] (结果为1.0)
SQRT[] 平方根 #1 = SQRT[16] (结果为4.0)
ABS[] 绝对值 #1 = ABS[-5] (结果为5)
ROUND[] 四舍五入 #1 = ROUND[1.6] (结果为2)
FIX[] 舍去小数 #1 = FIX[1.9] (结果为1)
FUP[] 小数进位 #1 = FUP[1.1] (结果为2)

三、条件判断与循环

3.1 IF条件判断

IF [#1 GT 100] GOTO 10  (如果#1大于100,跳转到N10)
...
N10 G00 X0 Y0

3.2 比较运算符

运算符 含义
EQ 等于(Equal)
NE 不等于(Not Equal)
GT 大于(Greater Than)
LT 小于(Less Than)
GE 大于等于(Greater or Equal)
LE 小于等于(Less or Equal)

3.3 WHILE循环

WHILE [#1 LE 10] DO 1  (当#1小于等于10时循环)
  G01 X#1 Y0 F200
  #1 = #1 + 1
END 1

四、宏程序调用方法

4.1 G65调用(带参数传递)

G65 P9010 A50 B30 R10

调用O9010程序,并传递:A→#1=50, B→#2=30, R→#18=10

4.2 G66模态调用

G66 P9010 A10
G00 X0 Y0  (自动调用O9010)
X10 Y10    (再次自动调用)
G67        (取消模态调用)

五、实用宏程序实例:圆周均布孔加工

需求:在半径R=50mm的圆周上均布8个孔

O9010 (圆周孔宏程序)
#1 = 50    (半径R)
#2 = 8     (孔数N)
#3 = 360 / #2  (角度间隔)
#4 = 0     (当前角度)
#5 = 1     (计数器)
WHILE [#5 LE #2] DO 1
  #10 = #1 * COS[#4]  (X坐标)
  #11 = #1 * SIN[#4]  (Y坐标)
  G81 X#10 Y#11 Z-10 R3 F100
  #4 = #4 + #3
  #5 = #5 + 1
END 1
G80
M99

六、宏程序编程技巧

  1. 变量使用前初始化赋值,避免遗留值干扰
  2. 复杂计算分步写,便于调试和检查
  3. 加注释说明变量含义(用圆括号)
  4. 先用图形模拟验证,再上机试切
  5. 利用#500以上变量保存常用参数(如安全高度)

相关阅读:

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部