基于MasterCAM平台的数控编程后处理程序应用开发

2012-06-05 09:35 优胜模具

一、前言
 
 MasterCAM是由美国CNC Software公司率先开发的CAD/CAM软件系统,其丰富的三维曲面造型设计、数控加工编程的功能尤其适合航空航天、汽车、模具等行业。它的数控加工编程功能轻便快捷,特别适合车间级和小型公司的生产与发展,目前,在国内外得到了非常广泛的应用。MasterCAM系统可提供2~5轴铣削、车削、变锥度线切割4轴加工等编程功能。目前三轴铣削在模具和其他行业的应用最为广泛,随着数控加工技术不断朝高速、超高速、高精密、多轴联动及工艺的复合化加工的方向发展,数控五轴铣削加工应用的范围将不断扩大。五轴铣削加工不再仅限于叶轮、叶片等复杂零件的加工,对于模具行业等涉及空间曲面的凸凹模、大型整体零件的结构特征应用范围逐渐扩大,通过利用立铣刀的侧刃和底刃,五轴铣削加工可以避免球头刀的零速切削、零件的多次定位装夹等缺陷,可在很大程度上提高产品的加工效率和质量。
 
 由于五轴数控机床的配置多样,有工作台双摆动、主轴双摆动、工作台旋转与主轴摆动合成等多种形式,所以五轴铣削加工编程的难点在于后处理程序的二次开发上。MasterCAM提供了五轴后处理程序模板,用户在此基础进行修改即可满足实际的需要。
 
 二、MasterCAM数控编程后处理技术应用
 
 1. MasterCAM数控编程后处理简介
 
 后置处理程序将CAM系统通过机床的CNC系统与机床数控加工紧密结合起来。后置处理最重要的是将CAM软件生成的刀位轨迹转化为适合数控系统加工的NC程序,通过读取刀位文件,根据机床运动结构及控制指令格式,进行坐标运动变换和指令格式转换。通用后置处理程序是在标准的刀位轨迹以及通用的CNC系统的运动配置及控制指令的基础上进行处理的,它包含机床坐标运动变换、非线性运动误差校验、进给速度校验、数控程序格式变换及数控程序输出等方面的内容。只有采用正确的后置处理系统才能将刀位轨迹输出为相应数控系统机床能正确进行加工的数控程序,因此编制正确的后置处理程序是五轴数控铣削编程与加工的前提条件之一。
 
 后处理的主要任务是根据具体机床运动结构形式和控制指令格式,将前置计算的刀位轨迹数据变换为机床各轴的运动数据,并按其控制指令格式进行转换,成为数控机床的加工程序。五轴加工后处理程序的难点是机床坐标运动变换。对刀位轨迹进行后处理转换时,首先根据具体的机床运动结构来确定运动变换关系,由此将前置计算的刀位轨迹数据变换并分解到机床的各个运动轴上,获得各坐标轴的运动分量。运动变换关系取决于具体机床的运动结构配置,机床坐标轴的配置不同,其变换关系也不相同。这里要考虑机床种类及机床配置、程序起始控制、程序块及号码、准备功能、辅助功能、快速运动控制、直线圆弧插补进给运动控制、暂停控制、主轴控制、冷却控制、子程序调用、固定循环加工控制、刀具补偿、程序输出格式转换、机床坐标系统变换及程序输出等。格式转换主要包括数据类型转换与圆整、字符串处理、格式输出等内容。算法处理主要包括坐标运动变换、跨象限处理、进给速度控制等内容。CAD/CAM软件包提供的数控程序后处理模式一般流程如图1所示。

图1 数控编程后置处理流程

MasterCAM后处理程序采用的是纯文本格式文件接口,该文本是以脚本文件和源代码文件混合而构成的,要求数控人员具备软件基础开发的经验和对数控系统的熟练掌握才能编制出正确的后处理程序模板。机床与数控系统接口文件(企业级数控系统接口文件),主要控制相应的数控机床格式及数控程序文件内容输出,使其满足数控机床的正确配置。它是正确配置程序输出的重点,也是难度最大的,它的源代码采用的是宏程序形式,采用条件判断、循环、跳转等逻辑方式,根据实际需要来编写相关代码,因此编写时需要用到软件开发的基本知识。MasterCAM提供的通用五轴铣削加工编程的后处理程序文件为MPGEN5X.PST。用户可以通过修改该后处理程序文件,满足相应数控系统的要求。

2. FIDIA KR214五轴后处理程序设置

FIDIA KR214为带旋转工作台的六轴五联动高速铣削加工中心,其机床类型如图2a所示,其中C轴为主动轴、A轴为从动依附轴、旋转工作台为W轴。现有的CAM软件大多不支持六轴联动的数控程序后处理,且实际加工中,一般的五轴联动足够满足生成的需要。针对该机床加工的特性,根据需要可编制三个线性轴X、Y、Z与A/C五轴联动后处理程序以及包括三个线性轴与A/W的五轴后处理程序。这两种后处理程序方案即可满足工程需求。下面详细说明在MPGEN5X.PST后处理程序的基础上,修改适合KR214(或KR211)数控机床的后处理程序的过程。

图2 多轴铣削机床运动配置示意图

(1)圆弧输出设置 

 用于对圆弧插补的输出进行控制,如圆心的表达(R或IJK)、圆弧打断、整圆输出等。
 
 #Arc output settings
 breakarcs: 0 #Break arcs, 0 = no, 1 = quadrants, 2 = 180 arcs
 arcoutput: 0 #0 = IJK, 1 = R no sign, 2 = R signed neg. over 180
 arctype : 2 #Arc center 1=abs, 2=St-Ctr, 3=Ctr-St, 4=unsigned inc.
 do_full_arc : 1 #Allow full circle output? 0=no, 1=yes
 helix_arc: 1 #Support helix arc output, 0=no, 1=all planes, 2=XY plane only
 arccheck : 1 #Check for small arcs, convert to linear
 atol : .01#Angularity tolerance for arccheck = 2
 
 (2)五轴机床构造及运动设置
 
 用于对典型的五轴机床运动方式进行配置,可对工作台双摆动、主轴头双摆动、主轴摆动及工作台摆动、工作台复合摆动(回转)、主轴复合摆动(回转)等典型五轴机床进行设置。主轴回转或摆动对应于相应机床,可处于主动轴或从动轴的形式。针对KR214机床的配置Mtype设为2。
 
 #Machine rotary routine settings
 mtype : 2 #Machine type (Define base and rotation plane below)
 #0 = Table/Table
 #1 = Tilt Head/Table
 #2 = Head/Head
 #3 = Nutator Table/Table
 #4 = Nutator Tilt Head/Table
 #5 = Nutator Head/Head
 head_is_sec : 2 #Set with mtype 1 and 4 to indicate head is on secondary
 
 (3)旋转轴矢量平面设置
 
 用于设置主动轴及从动旋转轴矢量方向,设置主轴或工作台复合摆动轴矢量方向。根据KR214(KR211)的C、A轴的运动配置,其C轴在XY平面内旋转,A轴在YZ平面内摆动,因而设置如下:
 
 #Primary planeXY XZ YZ
 #Secondary or XZ XY XY
 #Secondary YZ YZ XZ
 rotaxis1 = vecy #Zero
 rotdir1 = vecx #Direction
 rotaxis2 = vecz #Zero
 rotdir2 = vecy #Direction
 p_nut_restore #Postblock, restores original axis settings
 result = updgbl(rotaxis1, vecy) #Zero
 result = updgbl(rotdir1, vecx) #Direction
 result = updgbl(rotaxis2, vecz) #Zero
 result = updgbl(rotdir2, vecx) #Direction
 nut_ang_pri : -45
 
 对于旋转平面不在坐标平面的特殊主轴复合摆动或工作台复合摆动的五轴机床,且Mtype设置为3~5的特殊类型时,如DMU125P和DMU50P的机床需要正确设置Nut_ang_pri参数。只有当Mtype设置为3~5时,该参数才起作用。
 
 (4)旋转轴中心、偏心设置及刀具轴输出设置
 
 根据KR214(或KR211)机床运动轴配置特点,其g7_tilt参数应设为2。
 saxisx: 0 #The axis offset direction?
 saxisy: 0 #The axis offset direction?
 saxisz: 0 #The axis offset direction?
 r_intersect : 1 #Rotary axis intersect on their center of ratations
 g7_tilt : 2 #With mill_plus and nutating, select toolplane output
 #0 = Post selects G7 rotation axis
 #1 to 4, user selected G7 rotation axis
 #1 = Primary C : X zero, Secondary B
 #2 = Primary C : Y zero, Secondary A
 #3 = Primary C : -X zero, Secondary B
 #4 = Primary C : -Y zero, Secondary A
 shift_90_s : 1 #Shift pos.=1, neg.=-1
 
 (5)机床行程及转角限位设置
 
 坐标运动轴的行程及软件限位设置的正确性,直接影响五轴机床数控程序输出的正确性,下述分别为KR214的各坐标轴的行程及A/C轴的转角行程设置。
 
 1)X、Y、Z线性轴行程设置
 
 adj2sec : 1
 use_stck_typ : 2 #0=Off, 1=Stock def., 2=Limits
 up_x_lin_lim : 1350#X axis limit in positive direction
 up_y_lin_lim : 900#Y axis limit in positive direction
 up_z_lin_lim : 1400#Z axis limit in positive direction
 lw_x_lin_lim : -1350 #X axis limit in negative direction
 lw_y_lin_lim : -200 #Y axis limit in negative direction
 lw_z_lin_lim : 200#Z axis limit in negative direction
 
 2)主动轴C和从动轴A的转角设置
 
 auto_set_lim : 1 #Set the type from the angle limit settings (ignore these)
 pri_limtyp : 1
 sec_limtyp : 1
 #Set the absolute angles for axis travel on primary
 pri_limlo: -200
 pri_limhi: +200
 #Set intermediate angle, in limits, for post to reposition machine
 pri_intlo: -200
 pri_inthi: +200
 #Set the absolute angles for axis travel on secondary
 sec_limlo: -115
 sec_limhi: +90
 #Set intermediate angle, in limits,for post to reposition machine
 sec_intlo: -200
 sec_inthi: +200
 
 五坐标机床后处理程序的验证可通过下面的测试进行。例如,我们根据KR214的需求进行了多种测试,如X/W轴联动、固定A轴、变A轴、旋转C轴、五轴底刃、五轴侧刃等典型的五轴加工程序测试。其测试的刀具轨迹与部分程序代码如图3~图5所示。

a)五轴底刃刀具轨迹及其模拟

b)五轴侧刃刀具轨迹及其模拟
 图3 五轴铣削加工功能测试示意图

图4 五轴侧刃铣削加工程序

图5 五轴底刃铣削加工程序

3. MAHO1600w立卧转换加工中心后置处理
 德马吉公司的MAHO1600w为带旋转工作台的四轴立卧转换加工中心,由于其立卧轴只能单独加工,不像DMU125P或DMU50P等五轴立卧转换加工中心,DMU125P为主轴复合摆动,DMU50P为工作台复合摆动,刀具平面相对于XY平面可以倾斜,所以MAHO1600w后处理程序可分别对立轴和卧轴进行单独处理。数控编程时根据主轴立卧的状态,选择相应的后处理程序即可满足要求。其卧轴为标准的旋转四轴配置,而立轴多数情况下工作台只起分度作用。
 
 下面以采用立轴加工某产品高精度同轴的内外圆弧段过程中,MAHO1600w所出现的旋转工作台中心与主轴中心的同轴度机床精度超差问题为例,给出以X(Y)、B轴联动来避免XY两轴联动而出现的零件超差的作法,其刀具轨迹如下图6所示。由于MasterCAM所自带的MAHO系统的后处理程序均为三轴后处理,针对四轴的情况,用户可以MPFAN.PST提供的四轴后处理程序文件为基础进行改编,开发出MAHO1600w的立卧两种状态下的后处理程序。MAHO1600w机床卧式铣削加工时,其运动配置如图2(b)所示。下面通过修改MPFAN.PST文件中的部分关键内容实现X(Y)、B、Z三轴联动,来满足上述产品的加工需要,用旋转B轴替待Y轴来联动插补加工。

图6 X、B联动轮廓加工刀具轨迹示意图

设置机床类型为立轴加工、旋转轴为绕Z轴逆时针方向,将其中的Vmc参数设置为1,Rot_On_X设置为3,实现工作台立式绕Z轴旋转的目的。同时,为了提高输出曲线曲面的精度,将相关参数Atol、Vtol设为等精度。由于在MasterCAM环境下的观测坐标系与Maho1600w的X方向相反,因此,加入Scalex参数进行反向。同时,在输出格式上将旋转轴输出设置为B轴,并将Y和Z交换。在MasterCAM中以旋转轴参与轮廓联动加工时,其界面设置如下图7所示。我们用这种方法加工出了合格的产品,其加工程序的部分代码如图8所示。实践证明,在加工二维轮廓时,适当采用线性轴和旋转轴进行联动插补可以提高产品的精度。在实际加工中,为提高加工的表面光洁度,可适当降低加工的进给率。

vmc: 1 #0 = Horizontal Machine, 1 = Vertical Mill
rot_on_x : 3 #Default Rotary Axis Orientation, See ques. 164.
#0 = Off, 1 = About X, 2 = About Y, 3 = About Z
rot_ccw_pos : 1 #Axis signed dir, 0 = CW positive, 1 = CCW positive
scalex: -1.0 # Scaling of .NCI at input - x,y,z,i,j,k
scaley: 1.0 # Scaling of .NCI at input - x,y,z,i,j,k
scalez: 1.0 # Scaling of .NCI at input - x,y,z,i,j,k
atol : .005#Angularity tolerance for arccheck = 2
ltol : .001 #Length tolerance for arccheck = 1
vtol : .0001 #System tolerance
ltol_m: .002#Length tolerance for arccheck = 1, metric
vtol_m: .001 #System tolerance, metric
格式输出
fmt X 2xabs #X position output
fmt Z 2yabs #Y position output
fmt Y 2zabs #Z position output
fmt X 3xinc #X position output
fmt Z 3yinc #Y position output
fmt Y 3zinc #Z position output
fmt B 11 cabs #C axis position
fmt B 14 cinc #C axis position
fmt B 4indx_out #Index position
fmt I 3i #Arc center description in X
fmt J 3j #Arc center description in Y
fmt K 3k #Arc center description in Z
fmt R 2arcrad#Arc Radius
fmt F 15 feed #Feedrate
fmt P 11 dwell #Dwell
fmt M 5cantext #Canned text

图7 轮廓加工旋转轴拟合设置界面

4. 常用的三轴数控铣削编程后置处理

在模具、航空航天等行业中,数控铣削加工中的三轴联动切削应用最为广泛。MasterCAM系统提供了如FANUC、MAHO、Heidenhane、Century6X等众多数控系统的三轴铣削编程后处理程序,但是由于在程序起始控制、刀具说明、输出格式、程序传输等方面各数控系统有所差异,且企业为实现其程序的可读性、简洁性、可复用性、易管理性、减少手工的修改量等方面的要求,必须对后处理程序进行二次开发。下面为针对典型的数控系统,如FANUC、Century6X等对象,在输出格式、程序起始、刀具等方面介绍了如何修改其后处理程序,并以实例的形式进行了说明。

图8 X、B轴联动加工程序代码

(1)字符输出格式的控制

下面的内容主要用于单位输出和精度等方面的控制,系统可以mm、μm为单位输出,同时对小数点后的输出精度、绝对值和增量值进行输出控制。系统参数变量fs2存储不同的数字1~15,实现其输出格式的控制。

# Format statements - n=nonmodal, l=leading, t=trailing, i=inc, d=delta
#Default english/metric position format statements
fs2 10.7 0.6 #Decimal, absolute, 7 place, default for initialize (:)
fs2 20.4 0.3 #Decimal, absolute, 4/3 place
fs2 30.4 0.3d #Decimal, delta, 4/3 place
#Common format statements
fs2 41 0 1 0 #Integer, not leading
fs2 52 0 2 0l #Integer, force two leading
fs2 63 0 3 0l #Integer, force three leading
fs2 74 0 4 0l #Integer, force four leading
fs2 90.1 0.1 #Decimal, absolute, 1 place

(2)程序起始说明与控制

主要用于实现其程序起始在加工产品对象、坐标系定义等方面的规范控制。

# Start of File and Toolchange Setup
psof0 #Start of file for tool zero
……
"%", e
# *progno, e
"", sprogname, "", e
"(Product:)", e
pbld,"", *smetric, e
pbld,"", "", "", "", "", "", "", e
……
if stagetool >= zero, pbld,"", *t, "M6","(Tools:)", e
pindex
if mi1 > one, absinc = zero
pcan1, pbld,"", "G00 G17 G40 G49 G80 G54", *sgabsinc, pwcs, pfxout, pfyout,
"", *speed, *spindle, pgear, strcantext, e
pbld,"", "G43", *tlngno, pfzout, scoolant, next_tool, e
……
c_msng #Single tool subprogram call

(3)刀具交换与注释说明

用于刀具交换及返回参考点等方面的控制功能。

ptlchg #Tool change
pcuttype
toolchng = one
if mi1 = one, #Work coordinate system
[
pfbld, "", *sg28ref, "", "Y200.", e
pfbld, "", "G92", *xh, *yh, *zh, e
]
pbld,"", "M01", e
pcom_moveb
c_mmlt #Multiple tool subprogram call
ptoolcomment
comment
pcan
pbld,"", *t, "M6","(Toolnotes:)", e
……
c_msng #Single tool subprogram call

(4)程序结束输出控制

不同的数控系统在程序结束时有所不同,下述代码为例。
pretract #End of tool path, toolchange
……
pcan
pbld,"", sccomp, psub_end_mny, e
pcan1, pbld,"", "", "G00 G49", "G30 Z250.M05", scoolant, strcantext, e
pbld,"", *sg28ref, "", "Y50.", "", e
pcan2
absinc = sav_absinc
coolant = sav_coolant

(5)数据传输与系统设置

下面的参数分别用于数控程序传输和系统参数的设置。例如,程序传输方面实现波特率为1200,数字位7位,2位停止位,偶校验,ACSII码输出控制等。容许旋转工作台联动,机床回原点和参考点为激活状态,采用绝对坐标方式,G54为工作坐标系,以G28方式回参考点。

80. Communications port number for receive and transmit (1 or 2) ? 2
81. Data rate (600,1200,2400,4800,9600,14400,19200,38400)? 1200
82. Parity (E/O/N)? E
83. Data bits (7 or 8)? 7
84. Stop bits (1 or 2)? 2
85. Strip line feeds? N
86. Delay after end of line (seconds)? 0
87. Ascii, Eia, or Binary (A/E/B)? A

161. Enable Home Position button? y
162. Enable Reference Point button? y
163. Enable Misc. Values button? y
164. Enable Rotary Axis button? Y
301. Work Coordinates [0-1=G92, 2=G54's] (mi1)? 2
302. Absolute or Incremental [0=ABS, 1=INC] (mi2)? 0
303. Reference Return [0=G28, 1=G30] (mi3)? 0

图9为某零件的三轴数控铣削加工刀具轨迹示意图,根据FANUC 6M和Century 6X数控系统的特点,分别修改其后处理程序,实现数控程序输出的零手工修改,从而提高数控程序的编制及输出的质量和效率。图10和图11分别是与相应数控系统匹配的程序代码。

图9 三轴铣削加工轨迹示意图

图10 FANUC 6M数控系统程序代码

图11 Century 6X数控系统程序代码

四、结束语

本文以实例的形式简略介绍了MasterCAM数控编程后处理关键技术,相关的内容还有很多,但限于篇幅在此不再过多介绍,读者可参考其中,举一反三。