黄佳琪,胡晓军,徐云杰,卢辰杰
(湖州师范学院 工学院,浙江 湖州 313000)
随着现代化产品对制孔直径、制孔质量和制孔效率要求的不断提高,传统孔加工方法由于受刀具尺寸或加工原理的限制,已无法完全满足制孔要求.螺旋铣孔刀具的运动轨迹为螺旋线,其加工孔径不受刀具尺寸的限制,且按维度可以分为二维螺旋铣孔和三维螺旋铣孔.二维螺旋铣孔常用于大直径的深孔分层铣削粗加工,运用该加工方式,刀具受力均匀、工件毛刺较少、加工效率较高;三维螺旋铣孔是刀具做切钻复合运动的切削过程(自转、公转、轴向进给复合运动)[1],具有刀具切削力小、磨损小、加工表面光滑等优点,常用于孔的粗加工和半精加工[2].相对钻孔加工,采用螺旋铣孔进行加工,其刀具所受的切削力和刀具磨损度更小,加工质量和加工效率更高.
目前,国内主流的数控操作系统有西门子、法兰克、三菱等,但其并未提供螺旋铣孔人机操作界面及循环指令.国内外学者主要借助专用的CAM软件(该类软件需花费大量的时间学习,且对编程人员的技能水平要求较高)生成螺旋刀具路径,然后对刀具路径下游处理生成G代码,最后传输至机床进行螺旋铣孔加工.其研究重点为螺旋铣孔的切削力分析、表面质量优化等[2-3],对数控系统的螺旋铣孔二次开发研究较少.
SinuTrain是由西门子公司开发的数控机床模拟软件,具有与真实数控机床一致的操作界面和系统内核,并能提供灵活的二次开发方法和工具[4-6].本文以SinuTrain为软件平台,对螺旋铣孔HMI和螺旋铣孔循环指令进行二次开发,并利用该循环指令编制程序进行仿真实验.该编程方法的编程效率和程序加工精度较高,对编程人员的技术水平要求较低,不易出现人为失误.
西门子公司为用户提供扩展用户接口编程、HMI 编程包编程和WinCC Flexible 编程3种人机界面开发方法[6],每种方法的特点如表1所示.为兼顾编程效率和二次开发的经济性,本研究采用扩展用户接口方式完成二次开发任务.
表1 3种界面开发方法的特点比较
SinuTrain相关界面系统配置文件主要存储在软件安装目录user、oem、siemens 3个文件夹下,且三者的优先级依次降低.螺旋铣孔HMI开发主要通过命令、变量、函数运算等,实现人机交互、参数输入、图形显示、代码编译等功能[7].
定义程序界面水平第5个软键为“Helical milling”按钮,点击该按钮触发螺旋铣孔界面加载,加载程序代码为:LM("LXXK").在界面加载时,需定义界面名称和界面实例图片,代码为://M{LXXK, hd = "螺旋铣孔", hlp="pmlx.png"}.
螺旋铣孔编程需向系统提供参考高度、安全高度、刀具进给速度、加工类型、铣削方式、制孔中心坐标、制孔起始高度、制孔直径、制孔深度、刀具XY向步距、刀具Z向步距、粗加工侧壁余量、粗加工底部余量、刀具直径、螺距等参数.以上参数需使用“DEF”语句定义,部分代码为:DEF VARA2={TYP="r3",wr=2,st="SC",TXT_x=370,TXT_w=30,x=400,w=90}.此外,定义输入框下拉菜单、鼠标停放提示、数据单位等,还需对“TGL”“TT”“LINK_TGL”等参数进行相应设置.
编程时,在完成螺旋铣孔参数设置后,为将对应界面的软键控制参数输入数控系统并返回主界面,还需定义“确定”和“退出”两个软键,部分代码为:VS7=(SOFTKEY_OK,ac7,se1).
螺旋铣孔依据其走刀路径的不同,可分为二维螺旋铣孔和三维螺旋铣孔.不同的加工方式需输入的参数和示例图片存在差异.为减轻编程工作量,避免出现人为失误,当采用二维螺旋铣孔时,界面需自动隐藏与其无关的变量,当采用三维螺旋铣孔时亦是如此.为实现上述功能,当改变铣削类型时,需使用“change”指令改变对应变量的“WR”属性,以实现变量的隐藏和显示,部分代码为:
change(VARA24)
IF VARA24.VAL==1
VARA10.WR=4
....
ELSE
VARA10.WR=2
....
ENDIF
end_change
在完成参数设置后,需用“OUTPUT”指令完成NC程序变量的输出,并通过“确认”软键触发NC代码自动编译,并加载至铣削主程序,代码为:GC("CODE1").
通过上述流程,完成螺旋铣孔HMI的二次开发,结果见图1.
图1 螺旋铣孔HMI
螺旋铣孔固定循环指令的二次开发需在“系统数据”的“用户循环”界面进行.根据加工工艺要求,编制参数化子程序.螺旋铣孔固定循环指令程序框架代码为:
PROC CYCLE996(REAL YL_RP,...)SAVE SBLOF DISPLOF ;指令声明
DEF REAL DDXY,...;变量定义
G90 G17
G0 Z100
IF YL_XL==0
.... ;二维螺旋铣孔代码
ELSE
.... ;三维螺旋铣孔代码
ENDIF
M17 ;子程序结束返回主程序
二维螺旋铣孔是指刀具按用户需求在XY平面进行平面螺旋运动.为降低编程复杂度,提高运算效率,平面螺旋刀具路径需由多个相切的半圆组成.刀具路径规划如图2所示.外侧圆环为孔的轮廓特征,圆环中心与工件坐标系在XY平面的原点重合;内部螺旋线为平面螺旋铣削刀具路径.
图2 二维螺旋铣孔刀具路径规划
在进行平面螺旋粗加工时,直径方向所需去除的毛坯量为:
D1=D-2Uxy-ø0,
(1)
其中,D1为粗加工直径方向毛坯去除总量,D为待加工孔标注直径,Uxy为侧壁精加工余量,ø0为刀具直径.
粗加工螺旋线所需半圆数量为:
(2)
其中,N为粗加工螺旋线所需半圆数量,Dxy为用户设置XY方向加工步距;Roundup代表上取整运算.
实际加工步距为:
(3)
由图2可知,螺旋线第一段圆弧起点和终点均与Y轴重合,该圆弧Y方向起点坐标YS1、终点坐标YZ1和圆弧半径R1分别为:
(4)
(5)
(6)
通过以上公式类推,可得第N段圆弧Y方向的起点坐标YSn、终点坐标和YZn圆弧半径Rn分别为:
(7)
(8)
(9)
通过上述计算,可确定螺旋线各关键点坐标和各圆弧半径.通过“FOR”循环语句配合G02/G03插补指令,即可完成二维螺旋铣孔参数化程序开发.部分程序代码为:
FOR YK_NXY= 0 TO IINXY1-2
XHJS1=-XHJS1
G2
Y=YL_Y0+XHJS1*(YK_YX1+2*YK_YX1*(YK_NXY+1))I=AC(YL_X0)J=AC(XHJS1*YK_YX1+YL_Y0) F=YL_F
ENDFOR
如图2所示,当刀具沿螺旋线加工至终点时,孔壁精加工余量不均匀.为解决上述问题,刀具需要以平面螺旋线的终点为起始点,以工件坐标系为圆心,沿刀具运动方向走一个整圆轨迹.
三维螺旋铣孔不仅要求刀具沿着XY平面铣圆,还要沿着Z方向做进给运动,刀具中心的运动轨迹呈空间螺旋线分布[8].首先沿Z方向将螺旋线拆分成多个单螺距螺旋线,然后将单螺距螺旋线在XY方向拆分成360段短直线,最后通过三角函数计算各线段的空间坐标值,并通过直线插补方式完成切削.其具体开发流程与二维螺旋铣孔开发过程类似,部分开发代码为:
FOR NLXDZ=0 TO NLXDZ1-1
FOR LXJD= 0 TO 360
G1 X=YL_X0+LXRR*COS(LXJD) Y=YL_Y0-LXRR*SIN(LXJD)
Z=YL_Z0-(NLXDZ+LXJD/360)*YL_25
ENDFOR
ENDFOR
利用二维螺旋铣削固定循环,在长为100 mm、宽为100 mm、高为100 mm的方块中心,铣削直径为60 mm、深度为5 mm的孔.在程序编辑界面,点击“Helical milling”进入参数编辑界面,设置的铣削方式为“平面式”,圆心坐标为(0,0,0),XY方向步距为刀具直径的40%,每刀切削深度为1 mm,侧壁精加工余量为0.2 mm,Z向精加工余量为0,刀具直径为10 mm.在程序编写完毕后,点击“模拟”按钮进行仿真验证,结果如图3所示.刀具按照平面螺旋方式分5层完成孔的切削.在粗加工完成后,刀具Y坐标显示为 24.80 mm(模拟时,在设置轮廓加工结束后,XY方向停留在加工结束位置,Z方向直接抬刀).因刀具直径为10 mm,此时在Y轴正方向,刀具轮廓距孔中心最远处的坐标值应为29.80 mm,与设置的侧壁精加工余量一致.
图3 二维螺旋铣孔仿真
利用三维螺旋铣孔固定循环,在长为40 mm、宽为40 mm、高为30 mm的方块中心,铣削直径为 16 mm、深度为4 mm的孔.设置圆心坐标为(0,0,0),侧壁精加工余量为0.2 mm,Z向精加工余量为0,刀具直径为10 mm,并进行仿真验证,结果如图4所示.刀具中心按照空间螺旋线方式完成孔的切削,且在粗加工完成后刀具X坐标值为2.80 mm.在X轴方向,刀具轮廓距孔中心最远处坐标值应为7.80 mm,与设置的侧壁精加工余量一致.
图4 三维螺旋铣孔仿真
本文以SinuTrain软件为平台,在建立的数控铣床虚拟样机中分别完成螺旋铣孔HMI的设计和螺旋铣孔固定循环指令的二次开发,并运用螺旋铣孔固定循环指令编程进行孔加工仿真实验.在螺旋铣孔界面输入的实验参数可正确传递至螺旋铣孔参数化程序中,数控系统可稳定运行螺旋铣孔参数化程序,完成孔的粗、精加工,并达到预期的精度要求.通过对螺旋铣孔的二次开发,无须借助专用的CAM软件,即可完成螺旋铣孔复杂路径的手工编程[9],从而减少加工过程中的误操作,降低编程人员的劳动强度.