毛文亮,杨小平
(1.甘肃机电职业技术学院,甘肃 天水 741001; 2.甘肃农业大学科学 技术处,甘肃 兰州 730000)
精密复杂零件制造是一个国家制造业水平的集中体现。随着我国数控加工技术的飞速发展,对在线检测技术提出了更高要求。当前国内的大量在线检测软件受机床系统、测头品牌等的限制,编程繁琐,价格昂贵,无法通用,开发一套宏程序在线检测库,引入到数控机床系统中,通过调用宏程序并赋值,生成所需要的在线检测程序,控制加工中心自动完成检测任务,不但可以有效提高产品检测精度、效率,还可以大大降低检测成本。
复杂零件通常由圆孔、圆柱、圆锥、凸台、凹槽、椭圆等几种基本体组合而成,将一个复杂零件按照不同特征分解为不同的基本体,在计算机上生成基本体在线检测宏程序,将基本体在线检测宏程序由RS-232通讯接口传输给数控机床,通过调用基本体在线检测宏程库中的在线检测宏程序并赋值,生成所需要的在线检测程序[1],机床伺服系统驱动测头对被测件上的点、线、面、圆孔、圆柱、圆锥、凸台、凹槽、球、椭圆等基本体进行测量,测头测量时发出的触发信号,通过测头与数控系统的专用接口转变为数控系统可识别的信号,数控系统接收信号后,记录下测量点坐标,最后对各测量点坐标进行处理,便可获得组合体的测量结果。
检测路径的规划对工件检测精度影响很大,检测路径规划时既要避免测头碰撞工件,又要避免测头超程。测量曲面时,测头接触测点的方向有沿着轴线方向接触和沿着法线方向接触两种方式[2]。测头沿着轴线方向接触测点如图1所示,这种方式中,测头以测点A的Z轴方向接触工件时,测头与实际工件表面接触的是B点,检测系统返回的是点C的坐标值,由于测点B的法矢方向未知,难以通过C点求出测点B坐标值,一般不采用。测头沿着法线方向接触零件表面测点如图2所示,这种方法被广泛应用,测量时,测头与实际工件表面B点接触,检测系统返回的是点C的坐标值,可沿法矢方向测头半径补偿测量值方便地计算出A点的加工误差,具体检测时,测头以Z轴方向接近某测点,到达预设高度点时停止,停留片刻后沿工件曲面模型法线方向接触测点,检测完毕后沿原法矢方向返回到预设高度,往复重复以上动作,直到所有测点检测完毕。
图1 测头轴向接近测点 图2 测头法向接近测点
G31 是在线检测程序中最常用的基本检测指令,它是FANUC Oi数控系统自定义的带有续效性的跳步指令。指令格式为: G31 IP_ F_ ;IP 为X、Y、Z中一个轴的移动。当测头碰触工件表面时,接触信号发生,控制系统接收此信号,将X、Y、Z坐标值储存起来并保持不变,仅当下一个跳越信号发出后才能改变,然后立即停止执行该程序段的剩余部分,转向下一个程序段[3]。
G92 是工件坐标系设定指令,功能是设定工件坐标系原点。
M02 为程序结束指令,功能是在完成程序段的所有指令后,使主轴进给停止。
G65为宏程序调用指令,指令格式为:G65 P(程序号)L(重复次数)<宏变量传递值>。
外部输出指令是加工中心在线测量系统与外部处理器进行通讯的重要指令,主要包括开通指令 POPEN;关闭指令 PCLOS;数据输出指令BPRNT 和 DPRNT。
FANUC Oi数控系统中,宏变量用地址符#和后面的数字来表示,分为空变量(#0)、局部变量(#1-#33)、公共变量(#100- 149和#500-#531)和系统变量(#1000-)。空变量的值总是NULL,若没有值可置成这种类型;局部变量在一个宏程序中用来保存数据,系统掉电时局部变量成NULL,被调用时参数赋值给变量;公共变量可被不同宏程序分享,系统掉电时,#100-#149成NULL,#500-#531可保持[3];系统变量是用来读写CNC系统指令或数据的变量。
编制点、线、面、圆孔、圆柱、圆锥、凸台、凹槽、球、椭圆等基本体的在线检测宏程序组成在线检测宏程序库,测量时,通过调用宏程库中的宏程序并赋值,生成所需要的实际测量程序,就可以对工件进行测量了,下面以凸台在线检测宏程序编制来具体说明。
(1) 调用格式
G65 P9661 X Y Z U V B M F C E Q D H;
(2) 变量定义
变量的定义如表1所示。
表1 变量的定义
O9661
IF [#21 EQ #0] GOTO 991 (X未赋值,报警)
IF [#22 EQ #0] GOTO 991 (Y未赋值,报警)
IF [#23 EQ #0] GOTO 991 (Z未赋值,报警)
IF [#11 EQ #0] GOTO 991 (H未赋值,报警)
IF [#24 EQ #0] GOTO 991 (U未赋值,报警)
IF [#25 EQ #0] GOTO 991 (V未赋值,报警)
#31=#5002 (保存G指令模态值)
#32=#5003
G00 G43 H45 Z70.0
IF [#2 NE #0] GOTO 110(若障碍物高度没赋值,以0处理)
#2=0
N110 G90 G00 X#21 Y#22
Z[#23+20.0]
G91 G31 Z-[#8+#17+20.0] F#9(测头对第一点测量)
G01 Z#8 F#9
G31 Z-[#8+#17] F#3
#105=#6063(保存Z向坐标值)
G91 G00 Z[30.0+#2] (测头抬起越过障碍物)
G90 X#23 Y#24
G91 G31 Z-[#11+#8+#17+#2+30.0] F#9(测头对第二点二次测量)
G01 Z#8 G31 Z-[#8+#17] F#3
#106=#5063(保存Z向坐标值)
DPRNT[Z#105[35] Z#106[35]](输出测量结果)
G91 G28 Z0.0(测头返回原点)
G#31 G#32 (恢复G指令模态值)
GOTO 999
N991#3001=160 (ARGUMENT X Y Z H U V NOT ASSIGNED产生报警信息)
N999 M99 (宏程序结束返回主程序)
为验证有效性,本文采用 FANUC 0i VMC-850B三轴立式加工中心,雷尼绍TP20型触发式测头,通过调用在线检测宏程序库中点、线、面、圆孔、凸台等基本体在线检测宏程序(见图3),并赋值。
图3 在线检测宏程序测量
对精密复杂零件的点、线、面、圆孔、凸台进行了在线检测,并将检测结果与三坐标测量机的测量结果进行了对比,结果显示,检测零件各项数据符合技术要求,与三坐标测量机测量结果基本一致。检测零件上选取的5个测量点的检测结果与三坐标测量机检测结果的比较如表2所示。
表2 宏程序检测数据与CMM检测数据比较 /mm
在数控机床中引入圆孔、圆柱、圆锥、凸台、凹槽、球等基本体在线检测宏程序库,通过调用赋值,对精密复杂零件进行在线检测,不但精准、高效,而且非常简捷、低廉,通过不断完善在线检测宏程序库,在线检测宏程序可以完成部分三坐标测量机的功能,在以后的研究中,将不断完善,使这项技术被广泛推广应用。