史卫朝, 张猛
(1.西安理工大学,西安 710082;2;西安应用光学研究所,西安 710065)
随着工业产品的不断发展,数控车削中经常遇到双曲线轮廓。在数控加工中,对于复杂轮廓的程序,一般采用自动编程实现,但由于编程软件生成的双曲线轮廓程序长、不易修改、难以控制加工精度,因此编程人员只能花费大量时间手工编写双曲线程序,编写效率低。
我们根据双曲线轮廓参数方程,采用华中系统为用户配置的高级编程语言,结合数控插补原理,编写了双曲线轮廓的“插补指令”及源代码程序[1],不仅减少了程序段数目,而且控制了加工精度。编程人员根据双曲线轮廓的尺寸,设定“插补指令”参数,便可获得双曲线轮廓的数控加工程序。
所谓“插补”是指数控系统根据曲线起点和终点的坐标,运用特定的数学算法,自动地在起点与终点之间生成一系列的坐标数据,即数据点的密化处理。插补运算的任务就是要以最简单的数学计算方法,用微小的直线段去逼近工件的成形轮廓[2]。数控系统中,一般都有直线和圆弧插补功能,而双曲线等特殊轮廓的插补功能需要编程人员根据数控系统的语言构建。
下面将根据华中系统的编程原则及双曲线轮廓的特点,实现双曲线轮廓“插补”功能。
首先确定数控加工的双曲线方程一般为:
其曲线图如图1所示。
图1 双曲线示意图
以双曲线焦点位置不同,分两种情况讨论双曲线参数方程[3]:
1)当焦点在x轴时,以双曲线方程中的Z为自变量,X为因变量,参数方程为:
其中:a为实半轴长;b为虚半轴长;x0和z0为双曲线中心点坐标。
2)当焦点在z轴时,以双曲线方程中的以X为自变量,Z为因变量,参数方程为:
方程中的参数含义同式(2)一致。
华中系统G代码调用子程序时,系统会将当前程序段的内容拷贝到子程序执行时的局部变量#0~#25中,同时拷贝当前通道轴的绝对位置(机床绝对坐标)到子程序执行时的局部变量#30~#38。插补计算程序中的局部变量对应着插补指令的地址符,编程人员按字符含义为地址符赋值,插补计算程序中的局部变量也会得到相应数值。表1为双曲线轮廓插补计算时需要设置的参数。
根据数控插补原理规定,插补运算之前应给定插补曲线起点和终点的坐标值、双曲线实轴和虚轴长度、中心点坐标值、自变量增加值等。自变量增加值的大小决定工件表面质量及加工精度,双曲线插补运算具体流程图如图2 所示。
表1 双曲线插补变量参数定义及处理
图2 双曲线插补流程图
1)当焦点在x轴时,双曲线轮廓的插补计算程序如下:
%9999
IF[#12]EQ[#13]M99
ENDIF
IF[#12*#13]LT 0
M99
ENDIF
IF#12 GT#13 ;走刀方向判断
#14=-#14
ENDIF
#3=#12 ;双曲线起点Z坐标
#3=#3+#16 ;双曲线Z方向中间点位置偏移
#4=(#0/#1)*SQRT[#1*#1+#3*#3];双曲线 X 方向中间点计算
WHILE ABS[#12]NE ABS[#13] ;用步长#14段小直线逼近双曲线
IF ABS[#13-#12]LE ABS[#14] ;终点判别
#12=#13
ELSE
#12=#12+#14 ;自变量增加
ENDIF
#5=#12
#5=#5+#16
#6=(#0/#1)*SQRT[#1*#1+#6*#6]
G91 G01 U[2*[#6-#4]]W[#5-#3] ;采用增量方式直线走刀
#12=#12 ;坐标点替换
ENDW
M99
2)当焦点在Z轴时,双曲线轮廓的插补计算程序如下:
%9998
IF[#12]EQ[#13]M99
ENDIF
IF[#12*#13]LT 0
M99
ENDIF
IF#12 GT#13 ;走刀方向判断
#14=-#14
ENDIF
#3=#12 ;双曲线起点X坐标
#4=(#0/#1)*SQRT[#1*#1+#3*#3] ;双曲线Z方向中间点计算
#4=#4+#16 ;双曲线Z方向中间点位置偏移
WHILE ABS[#12]NE ABS[#13] ;用步长#14段小直线逼近双曲线
IF ABS[#13-#12]LE ABS[#14] ;终点判别
#12=#13
ELSE
#12=#12+#14 ;自变量增加
ENDIF
#5=#12
#6=(#0/#1)*SQRT[#1*#1+#6*#6]
#6=#6+#16
G91 G01 U[2*[#5-#3]]W[#6-#4];采用增量方式直线走刀
#12=#12 坐标点替换
ENDW
M99
指令格式:
M98__P__M__N__O__Q__A__B__;
其中:M98为调用程序;P为双曲线插补计算程序名称;M为双曲线起点X或Z坐标值;N为双曲线终点X或Z坐标值;O为自变量增加值;Q为双曲线中心点X或Z坐标值;A为实轴长度;B为虚轴长度。
图3 加工零件图
在华中数控车床上加工如图3所示的零件[4],采用尺寸为φ32 mm×70 mm的铝毛坯,工件坐标系原点设置在工件右端面与轴线交点处,双曲线中心点的坐标为(X0,Z-29.5),起点坐标为(X30,Z-15),终点坐标为(X30,Z-44)。
加工程序:
T0101
M03 S700 ;主轴正转,转速700r/min G00 X35 Z5 ;刀具到达加工起点
G01 X30 ;刀具到达加工轮廓位置
Z-63 ;车削外轮廓
G00 X32 Z-15 ;刀具到达双曲线起点
M98 P9999 M-15 N-44 O0.5
Q-29.5 A10 B13 ;加工双曲线轮廓
G90 G00 X100 Z100 ;退刀
M02 ;程序结束。
工件加工后的效果见图4所示,测量后发现,零件实际尺寸与要求尺寸一致,这表明构建的双曲线轮廓“插补指令”是正确的。
图4 工件加工后的效果图
本文采用插补思想,使用华中系统高级编程语言编写了双曲线轮廓的“插补指令”,提高了编程效率。该指令具有以下特点:
1)简洁易读,编程者编写双曲线程序时,不必读懂双曲线插补代码,仅需根据双曲线的尺寸对“插补指令”中的参数赋值。
2)可控制加工精度,工件的加工精度与插补代码中的自变量增加值大小有关,增加值越小,加工精度越高,但也会增加计算量。
3)适用性强,编程人员使用双曲线“插补指令”时,根据双曲线焦点的位置,调用对应的双曲线插补计算程序,便可完成双曲线加工程序的编写。
[1] 呼刚义,刘振.基于华中数控车宏程序的椭圆轮廓“插补指令”构建与实现[J].制造业自动化,2012,34(9):35-36.
[1] 姬清华.数控原理与应用[M].北京:北京理工大学出版社,2007.
[1] 关颖.基于FANUC系统的双曲线宏程序编制与加工解析[J].机床与液压,2012,40(8):59-60.
[4] 关雄飞.数控加工工艺与编程[M].北京:机械工业出版社,2011.