(安徽理工大学机械工程学院 安徽 淮南 232001)
当机械零件表面含有抛物线、双曲线、椭圆等较为复杂的轮廓曲线时,利用计算机软件绘图然后再自动生成加工程序,这无疑是最简单方便的方式。但当车间里没有电脑等条件的时候,那么我们必须能够利用其它方式来完成加工任务,这时就需要用到宏程序来编程加工了。宏程序具有较好的适应性和通用性,能够进行各种逻辑运算和算术运算。下面以FANUC0i-TD数控系统为例说明数控车削中宏程序的编程方法与运用。
所谓数控宏程序编程,就是用变量的方式来进行数控加工编程。FANUC系统的变量用变量符号“#”和其后面的变量号指定。例如:#1、#2、#3等。变量有三种类型,即局部变量(变量号为#1~#33)、公共变量(变量号为#100~#199和#500~#999)、系统变量(变量号为#1000以上)。在宏程序的编程中主要使用局部变量。对于局部变量的赋值有直接赋值和间接赋值两种方式。
(1)算术运算符
算术运算符有:“+”、“—”、“*”、“/”,分别为加、减、乘、除四种运算符号。
(2)逻辑运算符
逻辑运算符有:AND(与)、OR(或)、XOR(非)。
(3)条件运算符
条件运算符有:EQ(等于)、NE(不等于)、GT(大于)、GE(大于等于)、LT(小于)、LE(小于等于)。
(4)函数运算符
宏程序中常用的函数运算符及函数表达式如表1所示:
表1 常用函数运算符及表达式
(1)无条件转向语句
格式:GOTO N (N为程序段号)
例如:GOTO 100 表示无条件转移至标记有程序段号为N100的程序段(不论N100是在转向语句之前还是之后)。
(2)条件转向语句
格式1:IF[表达式]GOTO N
例如:IF[#1GT#2]GOTO 100 表示如果#1大于#2,就转移到标记有程序段号为100的程序段执行,如果#1小于等于#2,则执行下一个程序段。
格式2:IF[表达式]THEN
例如:IF[#1LE#2]THEN #3=1 表示如果#1小于等于#2,就把数值“1”赋值于#3。
(3)功能循环语句
格式:WHILE DO m (m=1,2,3)
……
END m
表示在满足WHILE后的条件表达式时,就执行从下一个程序段到END m 程序段之间的程序,否则就跳转到END m 之后的程序段执行。
图1所示右端带椭圆头的轴类零件,若左段部分已经加工完成。现请完成右轴段椭圆及小端直径为35mm锥段的加工。
我们把椭圆方程的x坐标设为自变量,则z坐标为因变量,由椭圆方程可推导出他们之间的换算关系表达式。
由于数控车床编程X方向为直径值,在编写宏程序中应将自变量x乘以2得到X方向的坐标值。
此外,由于椭圆的中心在编程的坐标原点(0,0)点的左侧30mm处,所以在宏程序中的Z方向坐标值应为因变量z减去30mm,得到所需的程序加工刀具运动轨迹如图2所示。
图1 工件示意图
图2 程序加工刀具运动轨迹
该加工该零件右段部分的参考程序为:
O8888
T0101
M03S1000
G00X45Z5
G71U1.5R0
G71P1Q3U0.5W0F0.3
N1G00X0
G01Z0
#1=15 椭圆短半轴赋值
#2=30 椭圆长半轴赋值
#3=0.1 宏程序拟合步距赋值
#4=0 自变量x的赋值
N2#5=2*SQRT[#1*#1 - #4*#4] 因变量z的赋值
G01X[2*#4]Z[#5 - #2] 椭圆加工直线拟合(注意:自变量x*2,因变量z-30)
#4=#4+#3 自变量x向外移动一个步距
IF[#4 LE #1]GOTO2 若小于等于15则调到N2程序段执行
G01X35
X41Z-33
N3G00X45
M03S1500
G70P1Q3F0.1
G00X100Z100
M30