罗 辉,胡自化,崔亚飞
(1.永州职业技术学院 智能制造重点实验室,湖南 永州 425100;2.湘潭大学 机械工程与力学学院,湖南 湘潭 411105)
螺纹联接是最常见的紧固联接方式,被广泛运用于日常生活与工程机械中[1-2].相较于其他螺纹加工方式,螺纹铣削是一种高效螺纹加工技术[3].虽然铣刀与成型螺纹在纵截面上有着共同边界螺纹轮廓,但由于铣刀面与螺纹面的成型原理和旋转中心不同,造成螺纹加工干涉误差,影响了螺纹精度[4-5].在减少螺纹干涉误差方面,研究人员在不断探索新方法.Fromentin等[6]通过研究螺纹铣刀几何形状和标准螺纹轮廓之间的联系,提出了一种分析螺纹铣刀包络线生成的螺纹轮廓的方法,并通过迭代铣刀包络面投影,更改铣刀轮廓来修正干涉误差.Lee等[7]提出了一种试错迭代设计螺纹铣刀齿廓的方法,通过计算机仿真对比加工的螺纹轮廓和标准螺纹轮廓,自适应地修改螺纹铣刀的齿廓,直到加工螺纹轮廓与标准螺纹轮廓一致.唐翊然等[8]根据螺纹铣削过程径向和轴向干涉误差分析,建立了通过调整牙型轮廓特征点位置的少干涉牙型轮廓螺纹铣刀.上述学者都是针对螺纹加工段周铣过程,通过调整铣刀齿廓来达到减少螺纹干涉误差,但没有对螺纹切入与切出段干涉误差进行研究.在数控螺纹铣削加工方面,不少学者做了研究.钟如全[9]和段瑞永等[10]基于华中数控HNC-22M系统,利用该系统的宏编程功能,开发了铣削螺纹固定循环指令.伍文进等[11]以FANUC 0i数控铣床系统为平台,提出应用宏程序定制固定循环指令.秦玉京[12]针对西门子840D系统深孔钻削循环CYCLE83参数设定烦琐的问题,运用该系统中的R参数进行宏指令编程,编制出更直观、易于理解的数控代码.上述学者都是以简化数控代码,降低编程难度和高效加工为目的进行了宏程序编程,但并没有考虑到螺纹在铣削过程中存在的干涉误差问题.综上所述,本文提出了一种以减少螺纹铣削切入与切出段干涉误差为目标,并能广泛运用于数控铣削过程中的自定义G代码指令开发方法.在数控编程中引入刀轨偏心距系数后,能有效控制螺纹切入与切出段干涉误差.
在圆柱内螺纹螺旋铣削过程中,螺纹铣刀的切入与切出过程均会产生加工干涉误差.以采用半螺旋切入切出方式,自下而上铣削时的圆柱内螺纹螺旋铣削为例,分析螺旋切入与切出过程的加工干涉.
采用半螺旋切入方式,自下而上铣削时铣刀轮廓面与标准螺纹轮廓面的干涉误差示意图,如图1所示.图中部分深色的铣刀轮廓面穿出了浅色的标准螺纹轮廓面,该部分即为螺纹铣削切入段加工干涉误差.并且,干涉误差集中在标准螺纹的下螺纹轮廓面.
图1 自下而上,半螺旋切入方式加工干涉误差示意图 图2 自下而上,半螺旋切出方式加工干涉误差示意图
采用半螺旋切出方式,自下而上铣削时铣刀轮廓面与标准螺纹轮廓面的干涉误差示意图,如图2所示.与图1对比可以发现,半螺旋切出时干涉误差集中分布在标准螺纹的上螺纹轮廓面.若将自下而上改为自上而下铣削方式,则原先的切入方式将变为切出方式,切出方式将变为切入方式.因此,螺纹铣刀切入和切出段产生干涉误差的原因基本相同,而铣刀切入、切出段的旋转中心和旋转半径与加工段中的旋转中心和旋转半径不相同.
为减少切入与切出段干涉误差,建立了半螺旋切入、切出段刀轨偏心距系数e.偏心距系数e可改变半螺旋切入与切出段刀轨的起始与终止位置和刀轨螺旋半径Rp,由于半螺旋切入与切出段刀轨对称,故只对半螺旋切入段刀轨的偏心距系数e进行定义与说明,如图3所示.
图3 半螺旋切入段刀轨偏心距系数e示意图 图4 四分之一螺旋切入段刀轨偏心距系数m示意图
图中以Rt为半径的圆周轨迹为螺纹加工段刀轨,以Rp为半径的半圆轨迹为半螺旋切入段刀轨;偏心距Δr1/2为半螺旋切入段刀轨起始点相对于内螺纹中心的距离.偏心距系数e为偏心距离Δr1/2与内螺纹半径D1/2和螺纹铣刀半径d/2之差的比值.偏心距Δr1/2的计算如式(1)所示.
(1)
式中,偏心距系数e满足:-1≤e≤1.
根据图3可知,在螺纹铣削过程中,螺纹中径D2与螺纹铣刀中径d2重合,因此,螺纹加工段刀轨螺旋半径(Rt)由式(2)表示.
(2)
引入半螺旋切入段刀轨偏心距系数e后,半螺旋切入段刀轨螺旋半径Rp关于偏心距系数e的函数由式(3)表示.
(3)
其中式(3)也满足半螺旋切出段刀轨的螺旋半径.
同样建立了四分之一螺旋切入与切出段刀轨偏心距系数m.偏心距系数m可调整四分之一螺旋切入与切出段刀轨起始与终止位置的X、Y轴的轴向分量和刀轨螺旋半径Rt,由于四分之一螺旋切入与切出段刀轨对称,故只针对四分之一螺旋切入段刀轨偏心距系数m进行定义与说明,如图4所示.
偏心距系数m为偏心距离Δr1/4与内螺纹半径D1/2和螺纹铣刀半径d/2之差的比值,偏心距m的计算如式(4)所示.
(4)
式中,偏心距系数m满足:0≤m≤1.
引入四分之一螺旋切入段偏心距系数m后,四分之一螺旋切入段刀轨螺旋半径Rp关于偏心距系数m的函数可由式(5)表示.
(5)
四分之一螺旋切出段刀轨螺旋半径Rp也由式(5)表示.
为探究不同取值的偏心距系数对螺纹干涉误差的影响.利用 VERICUT 软件进行螺纹铣削切入段的加工仿真研究.切削仿真完成后,通过 VERICUT 的“自动-比较”功能得到各段刀轨对应的加工干涉误差.实验加工仿真采用 DMU50 五轴数控铣削中心机床,控制器为 sin840D.探究在螺纹铣刀大径d=18 mm,螺距P=2 mm,铣削内螺纹大径D=36 mm螺纹孔的实验参数下,不同偏心距系数对螺纹铣削切入、切出段干涉误差的影响.如图5所示.
图5 铣削实验平台仿真图
图6 螺纹铣削干涉误差图
在半螺旋铣削偏心距系数e取值范围[-1,1]内,以0.2为间隔共设计11组实验.在四分之一螺旋铣削偏心距系数m取值范围[0,1]内,以0.1位间隔共设计11组实验.半螺旋铣削与四分之一螺旋铣削切入段不同偏心距系数铣削仿真实验方案及结果分别如表1与表2所示.
表1 不同偏心距系数时半螺旋铣削切入段铣削仿真实验结果
表2 不同偏心距系数时四分之一螺旋铣削切入段铣削仿真实验结果
根据加工仿真结果对比可知,半螺旋与四分之一螺旋切入段刀轨偏心距系数的变化会导致螺旋切入过程最大干涉误差发生变化,加工仿真结果如图 6所示.螺旋切入段刀轨偏心距系数e与m的取值越大,螺旋切入过程最大干涉误差越小.
切入、切出段干涉误差会随着刀轨偏心距系数的增大而减小.当偏心系数取最大值时,由式(3)和式(5)可知,刀轨半径会变得很小.无论是半螺旋还是四分之一螺旋铣削,在铣削半径很小的情况下,都等同于铣刀径向直接切入,这将加速螺纹铣刀磨损.
为实现减小螺纹铣削切入、切出段干涉误差的目的,需要将刀轨偏心距应用在广泛的数控螺纹铣削过程中,则开发含有偏心距系数的螺纹铣削循环G指令是很有必要的.
固定循环G指令定制功能如下:
能实现任意系数e与m的螺旋铣削切入、切出段加工;
能实现顺、逆铣;
能实现铣削左旋螺纹、右旋螺纹;
能实现自上而下铣削、自下而上铣削;
能实现对任意孔径螺纹铣削加工;
能实现调用开发出的G100指令实现上述所有要求.
G指令开发格式如下:
G100 D_ B_ R_ F_ S_ E_ C_ U_
D:螺纹孔大径
B:铣刀大径
R:螺距
F:螺纹孔深度
S:选择偏心距系数e或m
E:偏心距系数取值
C:选择顺铣或逆铣
U:选择自上而下或自下而上铣削
其中,程序中写入的参数都保存到对应的变量地址$C_xx 中.表3为参数与变量地址对应关系.
表3 Siemens系统存储地址与变量参数的对应关系
根据所需定制功能的要求,按照螺纹铣削原理与工艺路线,做出程序开发流程图,如图7所示.
图7 程序开发流程图
含有偏心距系数的螺纹铣削G指令开发:
NB100.SPF
R9=$C_C //顺时针铣、逆铣选择//
R10=$C_U //自上而下、自下而上选择//
R19=$C_F //加工螺纹孔深//
R1=(-1)*R19*R10
R2=$C_S //参数e或m的取值//
R6=$C_D //加工螺纹大径//
R8=$C_R //螺距//
R4=R6-5*SQRT(3)/8*R8 //螺纹孔小径计算//
R5=$C_B //铣刀大径//
R3=R2*(R4-R5)/2 //偏心距计算//
R7=(((R4-R5)/2-R3+(R6-R4)/2)/2) //切入半径//
R11=1 //计算切入时铣刀Y方向位置系数,初值1//
R12=$C_E //半螺旋铣削、四分之一铣削选择//
R13=1 //计算切入时铣刀Y方向位置系数//
R14=1 //切入时铣刀Z方向位置,初始值1//
R15=1 //用于判断切入时Z的起点,初始值1//
R16=1 //用于判断切出时Z的终点,初始值1//
IF R12==0.5 //判断半螺旋、四分之一螺旋铣削//
R11=1 R13=0
ElSE R11=2 R13=1
END IF
IF R10==1 //判断自上而下、自下而上螺旋铣削//
R14=R1-R8/2*R10 R15=0 R16=-1
ELSE R14=-R8/2*R10 R15=R1 R16=1
END IF
G1 X=0 Y=0 Z=R14 F100 //快速到铣入Z方向起点//
IF R9==3 GOTOF FFF //判断顺、逆时针螺旋铣削//
GOTOF GGG
FFF:G1 X=R3 Y=R7*R11*R13*(-1)//快速到铣入X与Y方向起点//
G17 G3 CR=(R7*R11)X=(R6/2-R5/2)Y=0 Z=(R1-R15)//逆时针切入段铣削//
CCC:R1=R1+(R8)*R10 //孔深减少一个螺距//
G17 G3 X=(R6/2-R5/2)Y=0 Z=(R1-R15)I=-(R6/2-R5/2)J(0)
//螺纹中间段螺旋周铣//
IF R1*R10<0 GOTOB CCC //未完成中间段周铣循环//
G17 G3 CR=(R7*R11)X=R3 Y=-(R7*R11*R13*R17)Z=(R1-(R8/2)*R16-R15) //逆时针切出段铣削//
GOTOF HHH
GGG:G1 X=R3 Y=R7*R11*R13 //快速到铣入XY起点//
G17 G2 CR=(R7*R11)X=(R6-R5)/2 Y=0 Z=(R1-R15)
//顺时针切入段铣削//
III:R1=R1+(R8)*R10 //孔深减少一个螺距//
G17 G2 X=(R6/2-R5/2)Y=0 Z=(R1-R15)I=-(R6/2-R5/2)J(0)
//螺纹中间段螺旋周铣//
IF R1*R10<0 GOTOB III //未完成中间段周铣循环//
G17 G2 CR=(R7*R11)X=(R3)Y=-(R7*R11*R13)Z=(R1-(R8/2)*R16-R15) //顺时针切出段铣削//
GOTOF HHH
HHH:G1X0Y0 //回原点//
G0Z50M05M30 //退刀程序结束//
上述开发出的螺纹铣削固定循环G指令,实现螺纹铣削过程示意与说明,如表4所示.
表4 自定义G指令螺纹铣削过程示意与说明
在SIEMENS数控系统中,可以通过机床数据10816 $MN_EXTERN_G_NO_MAC_CYCLE以及10817 $MN_EXTERN_G_NO_MAC_CYCLE_NAME配置50个G功能的替代功能.程序中写入的参数都保存到对应的变量 $C_xx 中.
10817 $MN_EXTERN_G_NO_MAC_CYCLE_NAME[n]机床数据用于填写宏程序名.机床数据 10816 $MN_EXTERN_G_NO_MAC_CYCLE[n]用于填写自定义数字,确定调用宏程序的G功能.机床数据在外部编程语言模式 G291中生效.
机床参数设定步骤:
1)选择操作区域“调试”;
2)按下软键“机床数据”和“通用机床数据”;
3)将光标置于所需的机床数据上;
4)将光标定位在需要更改的条目上,并输入需要的数值;
5)按下软键“复位(po)”和“确认”执行热启动.
为验证所开发出的固定循环G指令的正确性与功能调用,在SinuTrain软件平台进行固定循环G指令仿真加工.SinuTrain是西门子基于SINUMERIK Operate操作界面的实用数控系统软件,该软件操作与真实的机床完全相同.
在SinuTrain软件中,将机床数据10816 $MN_EXTERN_G_NO_MAC_CYCLE[0]中的默认初始值-1更改填写为100,激活G100指令调用宏程序功能,如图8所示.
图8 填写G指令调用号的机床数据图 图9 填写G指令调用宏程序的机床数据图
在10817 MN_EXTERN_G_NO_MAC_CYCLE_NAME[0]机床数据中填写宏程序名NB100,使得G100指令与调用宏程序名相匹配,如图9所示.
运用所开发出的G100指令,使用大径为d=20 mm、螺距P=2 mm的螺纹铣刀加工螺纹大径为D=60 mm的螺纹孔,铣削螺纹孔深为30 mm.加工螺纹孔数控程序如下:
P1997.MPF
G00 X0 Y0
G92 G54 X0 Y0 S150 M03
Z50 Z10
G100 D60 B20 R2 F30 S0.50.5 E0.5 C3 U-1
G00 X0 Y0
M30
含有偏向系数的加工刀轨仿真与结果,如图10所示.
图10 西门子840D控制器轨迹仿真图
1)根据螺纹铣削加工原理,分析出圆柱内螺纹切入、切出段铣削过程中,铣刀旋转中心和半径与中间段铣削过程不同,造成了螺纹加工干涉误差.
2)建立了半螺旋铣削与四分之一铣削切入、切出段的偏心距系数e与m,并通过加工仿真分析,偏心距系数能有效控制螺纹铣削干涉误差,误差随着偏心距系数的增大而减小.
3)利用西门子840D数控系统的开放性,开发了带有偏心距系数的切入、切出段少干涉螺纹铣削固定循环G代码,并通过西门子SinuTrain软件平台进行G代码调用仿真加工,能实现对任意孔径、螺纹旋向和切入方式的铣削加工.可见带有偏心距系数的固定循环G代码能广泛地运用于数控螺纹铣削加工过程中,有效减少螺纹干涉误差.