论文部分内容阅读
摘 要:通过一个典型零件的两种不同的宏程序编程实例,分析每种方法的优缺点,归纳出手工编程中应用宏程序解决复杂零件的数控加工编程问题的作用和技巧。
关键词:宏程序;手工编程;子程序调用;数控加工
数控加工程序编制的关键是刀具相对于工件运动轨迹的计算,即计算加工轮廓的基点和节点坐标或刀具中心的基点和节点坐标。数控机床一般只提供平面直线和圆弧插补功能,对于非圆的平面曲线Y=f(X),采用的加工方法是按编程允许误差,将平面轮廓曲线分割成许多小段。然后用数学计算的方法求逼近直线或圆弧轮廓曲线的交点和切点的坐标。随着计算机数控系统(CNC)的不断发展,CNC不仅能通过数字量去控制多个轴的机械运动,而且具有强大的数据计算和处理功能。编程时只要建立加工轮廓的基点和节点的数学模型,按加工的先后顺序,由数控系统即时计算出加工节点的坐标数据,进而控制加工,这就是数控系统提供的宏编程。宏指令编程像高级语言一样,可以使用变量进行算术运算逻辑运算和函数混合运算进行编程。在宏程序形式中,一般都提供循环判断分支和子程序调用的方法。可编制各种复杂的零件加工程序。熟练应用宏程序指令进行编程,可大大精简程序量,还可以增强机床的加工适应能力。比如可以将抛物线、椭圆等非圆曲线的算法标准化后做成内部宏程序,以后就可以像圆弧插补一样按标准格式编程调用,相当于增加了系统的插补功能。
随着数控系统的不断更新,宏指令应用越来越广泛。以日本FANUC-Oi系统为例,Oi系统使用B类宏指令,在O系列的早期版本中,曾使用A类宏指令,主要特征为使用G65代码为宏指令专用代码,包括宏变量的赋值、运算、条件调用等。B类宏指令功能相对A类而言,其功能更强大,编程更直观。在FANUC-Oi系统的固定循环指令中,毛坯切削循环G71指令内轮廓削循环G73指令内部可以使用宏程序进行编程。
宏指令编程虽然属于手工编程的范畴,但它不是直接算出轮廓各个节点的具体坐标数据,而是给出数学公式和算法,由CNC来即时计算节点坐标,因此对于对于简单直观的零件轮廓不具有优势。若零件结构不能用常规插补指令可以完成编程的,则可采用编制宏程序的方法,将计算复杂数据的任务交由数控系统来完成。对于加工方法和加工方式,零件的加工步骤,走刀路线及对刀点起刀点的位置,以及切入、切出方式的设计还是遵循一般手工编程的规则。编制宏程序时,首先应从零件的结构特点出发,分析零件上各加工表面之间的几何关系,据此推倒出各参数之间的数量关系,建立准确的数学模型。为此,必须注意正确选择变量参数并列出正确的参数方程,同时设定合理有效的循环变量。若采用主子程序调用的编程模式,还注意局部变量和全部变量的设定,了解变量传值关系。特别值得注意的是,为提高程序的通用性,尺寸参数尽可能地用宏变量表示,运行程序前先进行赋值。
宏程序编程实例:如下图所示零件:
程序以FAUNC-Oi-TC系统的格式编写
1、程序计算说明:
由抛物线方程Z=-X2/10得X=10,故直线段起点X坐标值XA=20。
由椭圆方程: ,得出, 并且X为半径值。
椭圆中心在如图编程坐标系中的坐(40,-35)。
2、用仿形车削循环指令G73编程,加工程序如下:
O0001;
G99 G97 M03 S600 T0101F0.2;
G0 X42 Z2;
G73 U20 R15
G73 P10 Q20 U0.5;
N10 G0 X0;
G1 Z0;
#1=0(赋抛物线Z轴起始值)
N11#2=2*SQRT[-10*#1];
G1 X#2 Z[#1-40]; (下转第128页)(上接第126页)
#1=#1-0.5;
IF[#1GE-10]GOTO11;
G1 X30 W-5;
W-7.5;
#3=12.5; (赋椭圆Z轴初始值)
N12 #4=8*SQRT[1-#3*#3/256];
G1 X[40-#4*2]Z[#3-35];
#3=#3-0.5;
IF[#3GE-12.5]GOTO12;
G1 Z-55;
X40;
N20 Z-65;
G00 X100 Z100;
M05;
M00;
M03 S1000 T0101F0.1;
G0 X40 Z2;
G70 P10 Q20;
G0 X100 Z100;
M30;
3、子程序调用M99 M98指令编程
O0002;
G99 G97 M03 S600 T0101F0.2;
G0 X42 Z2;
#100=40;
N30 M98 P0011;
#100=#100-2;
IF[#100GE0.5]GOTO30;
S1000F0.1 T0101;
#100=0;
M98 P0011;
M30;
O0011; (子程序)
#1=0 (赋抛物线Z轴初始值);
N11 #2=2*SQRT[-10*#1 ]+#100;
G1 X#2 Z#1;
#1=#1-0.5;
IF[#1GE-10]GOTO11;
G1 U10 W-5;
W-7.5;
#3=12.5; (赋椭圆Z轴初始值)
N12 #4=40-16*SQRT[1-#3*#3/256]+#100;
G1 X#4 Z[#3-35];
#3=#3-0.5;
IF[#3GE-12.5]GOTO12;
G1 W-7.5;
U10
N20 W-10;
G00 U2 Z2;
U-2;
M99;
综上所述用仿形切削循环G73指令编写宏指令时,可以在精车程序中给变量赋值、进行数学运算、条件转移等,编写时更直观、简便,精简了程序内容,大大提高了编程效率。在程序编制过程中,当遇见许多形状相同或相近的,但尺寸不同的零件结构特征,每次都重新编制程序就很繁琐,这时可以使用变量、算术和逻辑运算及条件转移指令在子程序中体现零件的走刀过程。充分体现留了子程序调用的优势。总结以上所述,编写宏指令程序,当零件的图形没有相同的地方,用仿形切削循环G73指令编写更快捷、简便。当然子程序调用指令M98、M99也有它的优势。
参考文献:
[1]杜国臣.数控机床编程2011.
[2]杨晓平.数控编程技术2010.
关键词:宏程序;手工编程;子程序调用;数控加工
数控加工程序编制的关键是刀具相对于工件运动轨迹的计算,即计算加工轮廓的基点和节点坐标或刀具中心的基点和节点坐标。数控机床一般只提供平面直线和圆弧插补功能,对于非圆的平面曲线Y=f(X),采用的加工方法是按编程允许误差,将平面轮廓曲线分割成许多小段。然后用数学计算的方法求逼近直线或圆弧轮廓曲线的交点和切点的坐标。随着计算机数控系统(CNC)的不断发展,CNC不仅能通过数字量去控制多个轴的机械运动,而且具有强大的数据计算和处理功能。编程时只要建立加工轮廓的基点和节点的数学模型,按加工的先后顺序,由数控系统即时计算出加工节点的坐标数据,进而控制加工,这就是数控系统提供的宏编程。宏指令编程像高级语言一样,可以使用变量进行算术运算逻辑运算和函数混合运算进行编程。在宏程序形式中,一般都提供循环判断分支和子程序调用的方法。可编制各种复杂的零件加工程序。熟练应用宏程序指令进行编程,可大大精简程序量,还可以增强机床的加工适应能力。比如可以将抛物线、椭圆等非圆曲线的算法标准化后做成内部宏程序,以后就可以像圆弧插补一样按标准格式编程调用,相当于增加了系统的插补功能。
随着数控系统的不断更新,宏指令应用越来越广泛。以日本FANUC-Oi系统为例,Oi系统使用B类宏指令,在O系列的早期版本中,曾使用A类宏指令,主要特征为使用G65代码为宏指令专用代码,包括宏变量的赋值、运算、条件调用等。B类宏指令功能相对A类而言,其功能更强大,编程更直观。在FANUC-Oi系统的固定循环指令中,毛坯切削循环G71指令内轮廓削循环G73指令内部可以使用宏程序进行编程。
宏指令编程虽然属于手工编程的范畴,但它不是直接算出轮廓各个节点的具体坐标数据,而是给出数学公式和算法,由CNC来即时计算节点坐标,因此对于对于简单直观的零件轮廓不具有优势。若零件结构不能用常规插补指令可以完成编程的,则可采用编制宏程序的方法,将计算复杂数据的任务交由数控系统来完成。对于加工方法和加工方式,零件的加工步骤,走刀路线及对刀点起刀点的位置,以及切入、切出方式的设计还是遵循一般手工编程的规则。编制宏程序时,首先应从零件的结构特点出发,分析零件上各加工表面之间的几何关系,据此推倒出各参数之间的数量关系,建立准确的数学模型。为此,必须注意正确选择变量参数并列出正确的参数方程,同时设定合理有效的循环变量。若采用主子程序调用的编程模式,还注意局部变量和全部变量的设定,了解变量传值关系。特别值得注意的是,为提高程序的通用性,尺寸参数尽可能地用宏变量表示,运行程序前先进行赋值。
宏程序编程实例:如下图所示零件:
程序以FAUNC-Oi-TC系统的格式编写
1、程序计算说明:
由抛物线方程Z=-X2/10得X=10,故直线段起点X坐标值XA=20。
由椭圆方程: ,得出, 并且X为半径值。
椭圆中心在如图编程坐标系中的坐(40,-35)。
2、用仿形车削循环指令G73编程,加工程序如下:
O0001;
G99 G97 M03 S600 T0101F0.2;
G0 X42 Z2;
G73 U20 R15
G73 P10 Q20 U0.5;
N10 G0 X0;
G1 Z0;
#1=0(赋抛物线Z轴起始值)
N11#2=2*SQRT[-10*#1];
G1 X#2 Z[#1-40]; (下转第128页)(上接第126页)
#1=#1-0.5;
IF[#1GE-10]GOTO11;
G1 X30 W-5;
W-7.5;
#3=12.5; (赋椭圆Z轴初始值)
N12 #4=8*SQRT[1-#3*#3/256];
G1 X[40-#4*2]Z[#3-35];
#3=#3-0.5;
IF[#3GE-12.5]GOTO12;
G1 Z-55;
X40;
N20 Z-65;
G00 X100 Z100;
M05;
M00;
M03 S1000 T0101F0.1;
G0 X40 Z2;
G70 P10 Q20;
G0 X100 Z100;
M30;
3、子程序调用M99 M98指令编程
O0002;
G99 G97 M03 S600 T0101F0.2;
G0 X42 Z2;
#100=40;
N30 M98 P0011;
#100=#100-2;
IF[#100GE0.5]GOTO30;
S1000F0.1 T0101;
#100=0;
M98 P0011;
M30;
O0011; (子程序)
#1=0 (赋抛物线Z轴初始值);
N11 #2=2*SQRT[-10*#1 ]+#100;
G1 X#2 Z#1;
#1=#1-0.5;
IF[#1GE-10]GOTO11;
G1 U10 W-5;
W-7.5;
#3=12.5; (赋椭圆Z轴初始值)
N12 #4=40-16*SQRT[1-#3*#3/256]+#100;
G1 X#4 Z[#3-35];
#3=#3-0.5;
IF[#3GE-12.5]GOTO12;
G1 W-7.5;
U10
N20 W-10;
G00 U2 Z2;
U-2;
M99;
综上所述用仿形切削循环G73指令编写宏指令时,可以在精车程序中给变量赋值、进行数学运算、条件转移等,编写时更直观、简便,精简了程序内容,大大提高了编程效率。在程序编制过程中,当遇见许多形状相同或相近的,但尺寸不同的零件结构特征,每次都重新编制程序就很繁琐,这时可以使用变量、算术和逻辑运算及条件转移指令在子程序中体现零件的走刀过程。充分体现留了子程序调用的优势。总结以上所述,编写宏指令程序,当零件的图形没有相同的地方,用仿形切削循环G73指令编写更快捷、简便。当然子程序调用指令M98、M99也有它的优势。
参考文献:
[1]杜国臣.数控机床编程2011.
[2]杨晓平.数控编程技术2010.