数控车床加工非圆曲线宏程序的编写方法
   来源:现代电子技术     2021年01月11日 22:37

数控车床加工非圆曲线宏程序编程技巧

李雅昔+李晓莉+李星恕

摘 要: 为方便加工零件上不同位置的非圆曲线,采用坐标系平移的方法,将给定非圆曲线表达式的原坐标系向数控车床建立的工件坐标系分别沿x,y轴进行平移,使两坐标系的坐标原点重合,再将待加工的非圆曲线方程转化为数控车床工件坐标系中的非圆曲线方程,最后只需针对数控车床工件坐标系中的非圆曲线方程进行粗车循环与宏程序联合编程,即可方便地实现零件加工。建立了加工不同位置非圆曲线宏程序编写模式。提出的坐标系平移方法,可方便地对不同位置的非圆曲线在建立数控车床工件坐标系中建立新的表达式方程,该方法数学计算简单,适用于各类非圆曲线的宏程序编写。

关键词: 数控加工; 宏程序; 非圆曲线; 坐标系平移

中图分类号: TN911?34; TP393 文献标识码: A 文章编号: 1004?373X(2014)04?0084?03

Compiling method of macro program of machining non?circular curve by CNC lathe

LI Ya?xi1,2, LI Xiao?li3, LI Xing?shu1

(1. College of mechanical and electronic engineering, Northwest Agriculture & Forestry University, Yangling 712100, hina;

2. Shangluo Vocational and Technical College, Shangluo 726000, China; 3. School of Information Engineering, Changan University, Xian 710064, China)

Abstract: In order to manufacture non?circular curves in different positions on a mechanical component conveniently, a method of translating coordinate system is adopted to make the original coordinate system of non?circular curve expressions translated to workpiece coordinate system established by CNC lathe along x and y axes respectively, make the coordinate origins of above?mentioned two coordinate systems coincided, convert original non?circular curve expressions into the new curve expressions of CNC lathe, and then make the combined programming of rough turning and macro program according to the new curve expressions to realize the workpiece machining. The macro programming mode of non?circular curve processing in different positions was established. The method of coordinate system translation, proposed in this thesis, can make non?circular curves processing in different positions on a mechanical component easier to establish a new expressing expression in CNC workpiece coordinate system. The method is simple in mathematics, and suitable for macro programming of all kinds of non?circular curves.

Keywords: CNC machining; macro program; non?circular curve; coordinate system translation

在实际生产中,数控车床很少使用自动编程。对于主要由圆柱面和圆锥面形成的零件来说,编程比较容易实现,但当零件上存在椭圆[1]、抛物线、双曲线等非圆曲线[2]时,一般的编程方法很难实现。针对这种现象,编写宏程序就显得十分重要。本文以华中世纪星HNC?21T数控车削系统为例,结合数控技能大赛与实际生产,针对数控车床加工非圆曲线回转面的宏程序的编写方法进行分析。

1 华中世纪星HNC?21T数控车削系统宏程序简介

使用变量编写可进行算术或逻辑运算,并能控制程序段流向的程序,称为用户宏程序[3]。

华中世纪星HNC?21T数控车削系统为用户配备了强有力的类似于高级语言的宏程序功能,用户可以使用变量进行算术运算、逻辑运算和函数的混合运算,此外宏程序还提供了循环语句、分支语句和子程序调用语句,利于编制各种复杂的零件加工程序,减少乃至免除手工编程时进行繁琐的数值计算,精简程序量。常用的语句主要有以下两种:

(1) 条件判别语句

格式1: IF(条件表达式) … ELSE … ENDIF

格式2: IF(条件表达式) … ENDIF

(2) 循环语句

格式: WHILE(条件表达式) …ENDW

2 公式表达非圆曲线宏程序编制的一般步骤

(1) 根据给定的非圆曲线方程选定自变量并确定自变量的取值范围

非圆曲线方程中的x和z坐标均可选定为自变量。一般根据曲线方程方便情况来选定x或z为自变量,如图1所示,非圆曲线方程为z=[-x220],将x选为自变量较为合适,若选z为自变量还需要进行曲线方程变换,且开二次方表达不太方便。

自变量选定后,还需进一步确定其取值范围。图1中自变量为x,半径取值范围为0~20。

(2) 根据非圆曲线方程确定因变量相对于自变量的表达式[5]

如图1所示,非圆曲线方程为z=[-x220],自变量为x,因变量为z,则z的表达式为z=[-x220],正负号的选取与抛物线的凹凸有关。

(3) 根据给定的非圆曲线方程确定相对于工件坐标系的偏移量

具体确定方法见本文第四个问题中论述非圆曲线方程坐标原点与工件坐标系不重合时,宏程序编写方法的应用实例分析。

(4) 编写程序。因为一般毛坯存在较大的加工余量,故一般需采用外圆内孔粗车循环指令G71[4]与宏程序嵌套的方法编写程序。

图1 非圆曲线(毛坯尺寸为Φ50,未注倒角C1)(一)

3 非圆曲线方程坐标原点与工件坐标系重合

时,宏程序编写方法

(1) 首先确定抛物线的表达式与自变量的取值范围。根据图1中给定的抛物线,为便于编程,选取抛物线的顶点为原点,可以轻易得出此抛物线的两种表达式:即z=[-x220]与x=±SQRT(-20z)。

根据上文所述,可确定表达式为z=[-x220],其自变量x的取值范围为0~20。

(2) 进行宏程序编写(本例仅分析非圆曲线宏程序的编写方法,平端面与切断不在程序中体现)如下:

%0001

G92 X80 Z200 (换刀点)

/M03 S600 T0101 (设定粗车转速)

G95 (设定进给为每转进给)

/G00 X52 Z2 (设定粗车循环G71的循环起点)

/G71 U1 R0.5 P1 Q2 X0.2 Z0.1 F0.1 S600 T0101(粗车循环,循环体为N1与N2间程序段,在粗车时进给量为0.1 mm/r)

/G00 X80 Z200 (粗车循环结束后刀具回换刀点)

/M00 (程序暂停,便于粗车后测量工件尺寸,修改刀具磨损补偿值后进行精车)

M03 S900 T0101 (精车提速)

G00 G42 X0 Z3 (精车时建立刀具右补偿)

N1 G01 X0 Z0 F0.2 (精车起点亦为抛物线起点)

#10=0 (给自变量x赋值的初始值,x的初始值为0)

WHILE #10 LE 20 (建立循环条件:判断自变量x达到20,若x的取值小于等于20,则程序一直在WHILE循环体中循环,若x的取值大于20,则程序退出WHILE循环体)

#11=[#10*#10*0.05] (因变量z的取值,即z=[x220)]

G01 X[2*#10] Z[?#11] F0.2(小段直线插补,逼近抛物线轮廓。2*#10表示每次横向进刀的终点坐标,为直径值,-#11表示每次纵向进刀的终点坐标,此处取负值,是为了得到z=-[x220)]

#10=[#10+0.1] (x步进值为0.1,即每次x的取值增加0.1,并判断增加了0.1的x值是否满足循环条件x≤20,此处若步进值取值过大影响精度,取值过小加重系统运算负担,应在保证精度的前提下尽可能取较大值)

ENDW (循环结束:当x的取值大于20时,程序退出WHILE循环体)

G01 X46 (加工Φ48圆柱的右端面)

G01 X48 Z?21 (在Φ48圆柱的右端面倒角,满足未注倒角C2)

G01 Z?46 (加工Φ48圆柱外圆,此处z取-46是为后续切断时,切刀能平稳的切入,所有z方向比实际零件多加工6 mm)

N2 G01 X52 (刀具从Φ48圆柱的左端面切出,亦为精车终点)

G00 G40 X80 Z200 (取消刀具补偿,刀具退回换刀点,为后续切断准备)

M30 (程序结束)

执行上述程序时,一定要确保没有选择程序跳段功能。程序中加/的程序段是为了在粗车循环结束,等刀具回换刀点后,可手动停止程序,并根据测量工件尺寸修正刀具磨损补偿后,能够确保精加工的精度(在精加工前,按系统面板上的程序跳段键,待程序跳段键指示灯亮后,方可重新循环启动)。

4 非圆曲线方程坐标原点与工件坐标系不重合

时,宏程序编写方法

(1) 非圆曲线z方向有偏移量的宏程序编写方法

确定抛物线的表达式与自变量的取值范围。根据图2中给定的抛物线,结合数控车编程的习惯,选取编程坐标系的原点O1为抛物线右端面中心。此时编程坐标系的原点O1与图2中给定的抛物线方程的原点O并不重合,即O1与O在z轴方向偏移了5 mm。根据坐标系平移的原理,可以得出在编程坐标系x1O1z中,抛物线表达式变为z=[-x220+5],与上例不同的是此时自变量x的取值范围为10~20。

图2 非圆曲线(毛坯尺寸为Φ50,未注倒角C1)(二)

非圆曲线部分宏程序如下:

%0001

......(机床转速,刀具等设定略)

/G00 X52 Z2 (设定粗车循环G71的循环起点)

/G71 U1 R0.5 P1 Q2 X0.2 Z0.1 F0.1 S600 T0101

/G00 X80 Z200 (粗车循环结束后刀具回换刀点)

/M00 (程序暂停,粗车后测量工件尺寸,修改刀具磨损补偿值)

M03 S900 T0101 (精车提速)

G00 G42 X20 Z2

N1 G01 X20 Z0 F0.2 (精车起点亦为抛物线起点)

#10=10 (给自变量x赋值的初始值,x的初始值为10)

WHILE #10 LE 20 (建立循环条件:判断自变量x达到20,若x的取值小于等于20,则程序一直在WHILE循环体中循环,若X的取值大于20,则程序退出WHILE循环体)

#11=[#10*#10*0.05] (给因变量z赋值,即z=[-x220])

G01 X[2*#10] Z[?[#11?5]] F0.2(小段直线插补,逼近抛物线轮廓,2*#10表示每次横向进刀的终点坐标,为直径值,-[#11-5]表示每次纵向进刀的终点坐标,此处取负值,是为了得到z=[-x220]+5)

#10=[#10+0.1] (x步进为0.1)

ENDW

......(台阶面与外圆加工程序略)

M30

(2) 非圆曲线x方向与z方向均有偏移量的宏程序编写方法

确定抛物线的表达式与自变量的取值范围。根据图3中给定的抛物线,选取编程坐标系的原点为Φ10圆柱右端面中心。此时编程坐标系的原点O1与图3中给定的抛物线方程的原点O在x轴方向偏移了6 mm,同时在z轴方向偏移了4 mm。在给定的抛物线方程的坐标系xOz中,分别以x与z为自变量,可以看出,若以z为自变量,则z的取值范围很容易确定,为-12~-30,因此在本例中选取z为自变量建立抛物线方程。根据坐标系平移的原理,可以得出此时在编程坐标系x1Oz1中抛物线表达式变为x+6=4+SQRT(-1.5z)。

图3 非圆曲线(毛坯尺寸为Φ35,未注倒角C1)

非圆曲线部分宏程序如下:

%0001

......(机床转速,刀具等设定略)

/G00 X37 Z3 (设定粗车循环G71的循环起点)

/G71 U1 R0.5 P1 Q2 X0.2 Z0.1 F0.1 S600 T0101

/G00 X60 Z200 (粗车循环结束后刀具回换刀点)

/M00 (程序暂停,粗车后测量工件尺寸,修改刀具磨损补偿值)

M03 S900 T0101 (精车提速)

G00 G42 X4 Z3

N1 G01 X4 Z2 (精车起点,右端面倒角延长线)

G01 X10 Z?1

G01 Z?8

G01 X20.486 (抛物线起点)

#11=-12 (给自变量z赋值的初始值, x的初始值为-12)

WHILE #11 GE (-30)(建立循环条件:判断自变量z达到-30,若z的取值大于等于-30,则程序一直在WHILE循环体中循环,若z的取值小于-30,则程序退出WHILE循环体)

#10=SQRT[-1.5*[#11]] (给因变量x赋值,即x=SQRT(-1.5z))

G01 X[2*[#10+6]] Z[#11+4] F0.2 (小段直线插补,逼近抛物线轮廓,2*[#10+6]表示每次横向进刀的终点坐标,为直径值,#11+4表示每次纵向进刀的终点坐标,此时刀具运动轨迹由建立的x+6=4+SQRT(-1.5z)控制)

#11=#11?0.05 (z步进为0.05)

ENDW

...... (台阶面与外圆加工程序略)

M30

5 结 语

利用数控车床加工非圆曲线时,应注意以下几点:

(1) 合理选择步距。车削后零件的精度与编程时所选择的步距有关,步距值越大,加工精度越低,但为提高加工精度,过多地减小步距值会造成数控系统运算负担,影响进给速度的提高,从而降低加工效率,因此必须根据加工精度的要求合理的选择步距,一般应在保证加工精度的前提下,尽可能选择较大的步距值。

(2) 对于非圆曲线方程坐标原点与工件坐标系不重合时,需将工件坐标系进行偏置。

(3) 内轮廓程序的编写与外轮廓程序的编写相似,可根据中心点位置及起止点位置的具体情况,套用本文中的宏程序进行编写。

本文中选取的实例均已在华中世纪星HNC?21T系统的数控车床上实际加工,实例中给定的F,S,ap等参数可根据实际加工情况进行设定,给定值可供参考。

参考文献

[1] 葛卫国.基于宏程序在数控车床编程中的运用与探讨[J].制造业自动化,2010,32(4):32?35.

[2] 何玉山.数控车床加工非圆曲线宏程序编写技巧[J].CAD/CAM与制造业信息化,2009(10):88?89.

[3] 冯阳,陈元景,袁晓波.数控车床加工简化编程:用户宏程序[J].中国高新技术企业,2008(24):331?333.

[4] 孟生才.数控车床宏程序在不同系统循环中的应用[J].机械加工:冷加工,2010(22):66?68.

[5] 叶海见.斜椭圆宏程序在数控车床上的应用[J].机床与液压,2009,37(1):194?195.

[6] 姜晓彤,赵正旭.基于OpenGL技术的数控车床虚拟仿真系统研究[J].现代电子技术,2007,30(1):90?92.

图2 非圆曲线(毛坯尺寸为Φ50,未注倒角C1)(二)

非圆曲线部分宏程序如下:

%0001

......(机床转速,刀具等设定略)

/G00 X52 Z2 (设定粗车循环G71的循环起点)

/G71 U1 R0.5 P1 Q2 X0.2 Z0.1 F0.1 S600 T0101

/G00 X80 Z200 (粗车循环结束后刀具回换刀点)

/M00 (程序暂停,粗车后测量工件尺寸,修改刀具磨损补偿值)

M03 S900 T0101 (精车提速)

G00 G42 X20 Z2

N1 G01 X20 Z0 F0.2 (精车起点亦为抛物线起点)

#10=10 (给自变量x赋值的初始值,x的初始值为10)

WHILE #10 LE 20 (建立循环条件:判断自变量x达到20,若x的取值小于等于20,则程序一直在WHILE循环体中循环,若X的取值大于20,则程序退出WHILE循环体)

#11=[#10*#10*0.05] (给因变量z赋值,即z=[-x220])

G01 X[2*#10] Z[?[#11?5]] F0.2(小段直线插补,逼近抛物线轮廓,2*#10表示每次横向进刀的终点坐标,为直径值,-[#11-5]表示每次纵向进刀的终点坐标,此处取负值,是为了得到z=[-x220]+5)

#10=[#10+0.1] (x步进为0.1)

ENDW

......(台阶面与外圆加工程序略)

M30

(2) 非圆曲线x方向与z方向均有偏移量的宏程序编写方法

确定抛物线的表达式与自变量的取值范围。根据图3中给定的抛物线,选取编程坐标系的原点为Φ10圆柱右端面中心。此时编程坐标系的原点O1与图3中给定的抛物线方程的原点O在x轴方向偏移了6 mm,同时在z轴方向偏移了4 mm。在给定的抛物线方程的坐标系xOz中,分别以x与z为自变量,可以看出,若以z为自变量,则z的取值范围很容易确定,为-12~-30,因此在本例中选取z为自变量建立抛物线方程。根据坐标系平移的原理,可以得出此时在编程坐标系x1Oz1中抛物线表达式变为x+6=4+SQRT(-1.5z)。

图3 非圆曲线(毛坯尺寸为Φ35,未注倒角C1)

非圆曲线部分宏程序如下:

%0001

......(机床转速,刀具等设定略)

/G00 X37 Z3 (设定粗车循环G71的循环起点)

/G71 U1 R0.5 P1 Q2 X0.2 Z0.1 F0.1 S600 T0101

/G00 X60 Z200 (粗车循环结束后刀具回换刀点)

/M00 (程序暂停,粗车后测量工件尺寸,修改刀具磨损补偿值)

M03 S900 T0101 (精车提速)

G00 G42 X4 Z3

N1 G01 X4 Z2 (精车起点,右端面倒角延长线)

G01 X10 Z?1

G01 Z?8

G01 X20.486 (抛物线起点)

#11=-12 (给自变量z赋值的初始值, x的初始值为-12)

WHILE #11 GE (-30)(建立循环条件:判断自变量z达到-30,若z的取值大于等于-30,则程序一直在WHILE循环体中循环,若z的取值小于-30,则程序退出WHILE循环体)

#10=SQRT[-1.5*[#11]] (给因变量x赋值,即x=SQRT(-1.5z))

G01 X[2*[#10+6]] Z[#11+4] F0.2 (小段直线插补,逼近抛物线轮廓,2*[#10+6]表示每次横向进刀的终点坐标,为直径值,#11+4表示每次纵向进刀的终点坐标,此时刀具运动轨迹由建立的x+6=4+SQRT(-1.5z)控制)

#11=#11?0.05 (z步进为0.05)

ENDW

...... (台阶面与外圆加工程序略)

M30

5 结 语

利用数控车床加工非圆曲线时,应注意以下几点:

(1) 合理选择步距。车削后零件的精度与编程时所选择的步距有关,步距值越大,加工精度越低,但为提高加工精度,过多地减小步距值会造成数控系统运算负担,影响进给速度的提高,从而降低加工效率,因此必须根据加工精度的要求合理的选择步距,一般应在保证加工精度的前提下,尽可能选择较大的步距值。

(2) 对于非圆曲线方程坐标原点与工件坐标系不重合时,需将工件坐标系进行偏置。

(3) 内轮廓程序的编写与外轮廓程序的编写相似,可根据中心点位置及起止点位置的具体情况,套用本文中的宏程序进行编写。

本文中选取的实例均已在华中世纪星HNC?21T系统的数控车床上实际加工,实例中给定的F,S,ap等参数可根据实际加工情况进行设定,给定值可供参考。

参考文献

[1] 葛卫国.基于宏程序在数控车床编程中的运用与探讨[J].制造业自动化,2010,32(4):32?35.

[2] 何玉山.数控车床加工非圆曲线宏程序编写技巧[J].CAD/CAM与制造业信息化,2009(10):88?89.

[3] 冯阳,陈元景,袁晓波.数控车床加工简化编程:用户宏程序[J].中国高新技术企业,2008(24):331?333.

[4] 孟生才.数控车床宏程序在不同系统循环中的应用[J].机械加工:冷加工,2010(22):66?68.

[5] 叶海见.斜椭圆宏程序在数控车床上的应用[J].机床与液压,2009,37(1):194?195.

[6] 姜晓彤,赵正旭.基于OpenGL技术的数控车床虚拟仿真系统研究[J].现代电子技术,2007,30(1):90?92.

图2 非圆曲线(毛坯尺寸为Φ50,未注倒角C1)(二)

非圆曲线部分宏程序如下:

%0001

......(机床转速,刀具等设定略)

/G00 X52 Z2 (设定粗车循环G71的循环起点)

/G71 U1 R0.5 P1 Q2 X0.2 Z0.1 F0.1 S600 T0101

/G00 X80 Z200 (粗车循环结束后刀具回换刀点)

/M00 (程序暂停,粗车后测量工件尺寸,修改刀具磨损补偿值)

M03 S900 T0101 (精车提速)

G00 G42 X20 Z2

N1 G01 X20 Z0 F0.2 (精车起点亦为抛物线起点)

#10=10 (给自变量x赋值的初始值,x的初始值为10)

WHILE #10 LE 20 (建立循环条件:判断自变量x达到20,若x的取值小于等于20,则程序一直在WHILE循环体中循环,若X的取值大于20,则程序退出WHILE循环体)

#11=[#10*#10*0.05] (给因变量z赋值,即z=[-x220])

G01 X[2*#10] Z[?[#11?5]] F0.2(小段直线插补,逼近抛物线轮廓,2*#10表示每次横向进刀的终点坐标,为直径值,-[#11-5]表示每次纵向进刀的终点坐标,此处取负值,是为了得到z=[-x220]+5)

#10=[#10+0.1] (x步进为0.1)

ENDW

......(台阶面与外圆加工程序略)

M30

(2) 非圆曲线x方向与z方向均有偏移量的宏程序编写方法

确定抛物线的表达式与自变量的取值范围。根据图3中给定的抛物线,选取编程坐标系的原点为Φ10圆柱右端面中心。此时编程坐标系的原点O1与图3中给定的抛物线方程的原点O在x轴方向偏移了6 mm,同时在z轴方向偏移了4 mm。在给定的抛物线方程的坐标系xOz中,分别以x与z为自变量,可以看出,若以z为自变量,则z的取值范围很容易确定,为-12~-30,因此在本例中选取z为自变量建立抛物线方程。根据坐标系平移的原理,可以得出此时在编程坐标系x1Oz1中抛物线表达式变为x+6=4+SQRT(-1.5z)。

图3 非圆曲线(毛坯尺寸为Φ35,未注倒角C1)

非圆曲线部分宏程序如下:

%0001

......(机床转速,刀具等设定略)

/G00 X37 Z3 (设定粗车循环G71的循环起点)

/G71 U1 R0.5 P1 Q2 X0.2 Z0.1 F0.1 S600 T0101

/G00 X60 Z200 (粗车循环结束后刀具回换刀点)

/M00 (程序暂停,粗车后测量工件尺寸,修改刀具磨损补偿值)

M03 S900 T0101 (精车提速)

G00 G42 X4 Z3

N1 G01 X4 Z2 (精车起点,右端面倒角延长线)

G01 X10 Z?1

G01 Z?8

G01 X20.486 (抛物线起点)

#11=-12 (给自变量z赋值的初始值, x的初始值为-12)

WHILE #11 GE (-30)(建立循环条件:判断自变量z达到-30,若z的取值大于等于-30,则程序一直在WHILE循环体中循环,若z的取值小于-30,则程序退出WHILE循环体)

#10=SQRT[-1.5*[#11]] (给因变量x赋值,即x=SQRT(-1.5z))

G01 X[2*[#10+6]] Z[#11+4] F0.2 (小段直线插补,逼近抛物线轮廓,2*[#10+6]表示每次横向进刀的终点坐标,为直径值,#11+4表示每次纵向进刀的终点坐标,此时刀具运动轨迹由建立的x+6=4+SQRT(-1.5z)控制)

#11=#11?0.05 (z步进为0.05)

ENDW

...... (台阶面与外圆加工程序略)

M30

5 结 语

利用数控车床加工非圆曲线时,应注意以下几点:

(1) 合理选择步距。车削后零件的精度与编程时所选择的步距有关,步距值越大,加工精度越低,但为提高加工精度,过多地减小步距值会造成数控系统运算负担,影响进给速度的提高,从而降低加工效率,因此必须根据加工精度的要求合理的选择步距,一般应在保证加工精度的前提下,尽可能选择较大的步距值。

(2) 对于非圆曲线方程坐标原点与工件坐标系不重合时,需将工件坐标系进行偏置。

(3) 内轮廓程序的编写与外轮廓程序的编写相似,可根据中心点位置及起止点位置的具体情况,套用本文中的宏程序进行编写。

本文中选取的实例均已在华中世纪星HNC?21T系统的数控车床上实际加工,实例中给定的F,S,ap等参数可根据实际加工情况进行设定,给定值可供参考。

参考文献

[1] 葛卫国.基于宏程序在数控车床编程中的运用与探讨[J].制造业自动化,2010,32(4):32?35.

[2] 何玉山.数控车床加工非圆曲线宏程序编写技巧[J].CAD/CAM与制造业信息化,2009(10):88?89.

[3] 冯阳,陈元景,袁晓波.数控车床加工简化编程:用户宏程序[J].中国高新技术企业,2008(24):331?333.

[4] 孟生才.数控车床宏程序在不同系统循环中的应用[J].机械加工:冷加工,2010(22):66?68.

[5] 叶海见.斜椭圆宏程序在数控车床上的应用[J].机床与液压,2009,37(1):194?195.

[6] 姜晓彤,赵正旭.基于OpenGL技术的数控车床虚拟仿真系统研究[J].现代电子技术,2007,30(1):90?92.

程序 自变量 抛物线