蒙 斌,吴 凡
(1.宁夏大学 机械工程学院,宁夏 银川 750021;2.宁夏永宁中学,宁夏 银川 750021)
加工中心是带有刀库和自动换刀装置的数控机床,零件一次装夹就可完成铣、钻、镗、扩、铰等多道工序。而不同的刀具就会有长度的差异,必须知道每把刀的长度,才能在使用中运用刀具长度补偿功能。常规的方法是采用机外对刀仪测量每把刀的长度,这就必须专门购买机外对刀仪,必然会增加成本,而平时不使用时又会造成资源的闲置和浪费。除此之外,也可以使用试切法确定实际刀具与标刀之间的长度差异,但这种方法确定的刀具长度值不够精确,而且每把刀的长度测量都需要进行手动操作试切,会很繁琐,而且增加了对刀的辅助时间,降低了整个零件加工的效率。应用宏程序编制刀具长度的在线自动测量程序,就可以简便的确定出每把刀具的长度补偿值,直接存入其补偿寄存器中,从而使得刀具长度补偿的建立操作快捷、高效[1]。下面以FANUC0i系统为例来说明。
G31跳转指令主要用于和数控机床上的测量传感器一起使程序的执行发生跳转。G31一般用于自动测量时的跳转,需要外部输入信号来触发,输入信号的地址是X4.7(信号名SKIP)。程序执行时,如果没有SKIP信号输入,则G31和G01的作用完全一样。如果 SKIP 信号由“0”置“1”,则在 SKIP 信号置“1”的位置中止现行程序段的执行,并清除剩余的运动量,而转去执行下一个程序段,并将4个进给轴的当前坐标值存储在#5061~#5064这4个系统变量(具体作用后面见表3)中,供刀具长度测量程序在自动计算刀具长度补偿时调用[2]。
指令格式:G31 Z___;
G31为非模态指令,Z后数值为未跳转时Z轴的指令位置。
在执行G31G91X100.0;Y50.0;时,如果没有跳过信号,如图1所示。则按图中的虚线执行,即按程序指令位置执行,如果跳过信号有效,则按图中实线执行,而剩余运动量不再执行。
图1 G31跳转功能的执行Fig.1 Execution of G31 Jump Function
目前的数控系统对于常规的直线和圆弧轮廓,可以直接采用直线和圆弧插补指令编程,而对于非圆曲线轮廓(如椭圆、抛物线等),则没有直接的插补指令,必须借助于系统的宏指令功能,采用直线或圆弧小段不断逼近曲线轮廓,从而实现非圆曲线轮廓的编程,这是宏指令功能的最基本应用[3]。但宏指令的功能远比这种应用要强大,借助于该功能用户可以在数控系统基本编程功能不能满足需要时进行编程功能的扩展,实现旋转简化编程、自动去余量编程、缩放编程、循环编程等功能。也可以利用宏功能对数控系统的控制功能进行二次开发,实现工件的自动计数、自动刀具补偿和刀具管理等功能[4]。
表1 FANUC 0i系统的宏变量Tab.1 Macro Variables of FANUC 0i System
3.2.1 宏变量
#加变量号即可构成一个宏变量,如#1,#10,#100等,宏变量可以赋值、运算,可以被调用。
3.2.2 宏变量赋值
可以把常亮、变量、表达式的值赋给一个宏变量。如#1=10,#1=#1+1,#1=#2*SIN[#3],都是宏变量赋值的形式。如果给变量#1赋值#1=100,则常规编程G01X10Y10F100可写成G01X10Y10F#1,这样常规编程变为带有宏变量的编程。
3.2.3 宏变量的类型
FANUC0i系统宏变量的类型,如表1所示。通常在编写一般宏程序时只用局部变量实现赋值和运算即可,但在用于读写CNC运行过程中各种数据时,就需要用到系统变量。系统变量有只读的,也有可读写的。比如#3901是用于已加工零件计数的,如果在MDI方式下输入#3901=100,然后执行一下,则已加工零件的计数就变成100了[5]。系统变量有很多功能的,用系统变量可以读和写刀具补偿值,在编写刀具长度自动测量时用到的系统变量,如表2所示。
表2 与刀具补偿值有关的系统变量Tab.2 System Variables Associated with Tool Compensation Values
实际应用时,具体要用到的系统变量数可根据所使用的刀具数及刀补数确定,有时还要将刀具长度分为有外形有关的补偿和与刀具磨损有关的补偿,这样需要的系统变量数就会多。而当刀库容量小或者需要的刀补数少时,只使用变量#2001~#2400就足够了[6]。
在使用跳转功能时,还需要获取刀具当前位置信息,所以还需要用到与位置信息有关的系统变量,如表3所示。
表3 与位置信息有关的系统变量Tab.3 System Variables Related to Location Information
表3中第1位代表轴号(从1~3)。如前所述,当G31程序段中跳转信号接通时,刀具位置就会自动存储在系统变量#5061~5063,当G31程序段中跳转信号接未通时,这些变量中存储指定程序段的终点值[7]。
为了自动获取刀具长度补偿值,用宏程序编制使用接触式传感器自动测量刀具长度补偿值的程序,如图2所示。
具体测量动作如下:
(1)在XY面上将刀具快速定位到测量位置上。
(2)给定当前刀具长度补偿值。
(3)Z轴向下移动#1的距离(移至测量趋近点)。
(4)使用G31跳转功能,使Z轴向下移动2*#2的距离。
(5)进行长度补偿值测量,随后Z轴返回测量起始点。
系统自动计算刀具长度补偿量,写入相应的刀具补偿存储器中。
图2 刀具长度自动测量Fig.2 Automatic Measurementof Tool Length
这里需要注意的是,存储在系统变量#5063中的Z轴的跳转信号位置是读取跳转信号时的指令位置。而机床的伺服系统都存在伺服位置偏差量,在确定跳转信号位置时,必须考虑伺服位置偏差量。从系统自动读取的跳步位置减去伺服位置偏差量,即可求出正确的跳转信号位置[8]。
通常跳转功能在进给速度倍率模式时无效,在计算伺服位置偏差量时,是按如下公式进行。
伺服回路增益由参数1825中得到。
进给跳转时,系统会自动读取诊断画面显示的伺服位置偏差量。伺服位置偏差的诊断号为300号。从上面公式可以看出,改变跳转进给功能的进给速度时,伺服位置偏差量也会发生变化[9-10]。
这里使用非模态调用指令G65,其调用格式为:
G65 P__L__<自变量表>;
P为被调用的程序号,L为重复调用次数,自变量表为传递到宏变量的数据内容。
(1)调用程序编写
G65P1111Hh;
H为刀具长度补偿号(#11)。
(2)测量宏程序编写
O1111;
#20=#4001;G00、G01、G02、G03 等模态信息
#21=#4003;G90、G91等模态信息
#22=#4109;F代码
#1=300;原点与趋近点的距离
#2=100;传感器与趋近点的距离
G28G91Z0;
#4=#5003;存机床原点的绝对坐标值(在工件坐标系中)
G00G90G53X200.0Y150.0;在机床坐标系中使X、Y轴快速定位到传感器上方
G91G43Z-#1H#11;Z轴快速下移#1的距离到趋近点,长度补偿有效
#5=#5003-#2;计算传感器表面绝对坐标值(在工件坐标系中)
G31Z-[#2*2]F300;使用跳转功能测量
G00G90G49Z#4;Z轴退回测量起始点(机床原点)
#6=#5063-#[11000+#11];接触到传感器时的绝对坐标(在工件坐标系中)
IF[#6LE[#5-#2]]GOTO8;若刀具长度不够没接触到传感器,则转到N8
#[11000+#11]=#5063-#5;求刀具长度补偿值,存入补偿号#11对应的系统变量 #[11000+#11]中
G#20G#21F#22;读取当前模态代码信息
M99;
N8#3000=1(无法测量);
为了验证程序自动测量的正确性,编制确认程序进行验证,如图3所示。将接触式传感器固定在机床工作台上,其中心在机床坐标系中的位置为X200、Y150,将其检测接口与PLC的输入端连接,输入信号(SKIP)的地址是X4.7。加工中心上安装有两把刀,1号刀的长度为100,2号刀的长度为120。先将1号刀换到主轴上,作为标刀进行对刀,以传感器上表面为Z向零点,再将2号刀换到主轴上,用测量宏程序通过实验测量2号刀的长度补偿值。实验过程中,数控系统得到PLC的触发信号,即SKIP信号由“0”置“1”时,G31指令便会发生跳转,紧接着由测量宏程序自动完成2号刀具长度补偿值的测量及存储。按下面的步骤进行实验并验证测量结果的准确性。
图3 刀具长度测量实验现场Fig.3 Experiment Site of Tool Length Measurement
(1)在1号刀具长度补偿地址中,输入测量前的刀具长度补偿量100.0。
(2)执行下列程序,确认动作。
O0001;
G28G91X0Y0Z0;
G92X0Y0Z400.0;
G65P1111H1;
M30;
(3)用G31指令Z轴下降时,当刀具接触到传感器表面时,输入跳转信号。
(4)程序结束后,查看刀具补正画面,如图4所示。1号长度补偿地址中设定的刀具长度补偿量为20。
图4 刀具长度补偿值的自动测量结果Fig.4 Automatic Measurement Result of Tool Length Compensation Value
(1)测量起点绝对位置#4=400;(2)趋近点绝对位置#4-#1=100;(3)传感器表面绝对位置 #5=#5003-#2=100-100=0;(4)由于 2号刀比1号刀长20,刀具接触到传感器时的跳转位置#5063=20;(5)刀具长度补偿值 #[11000+#11]=#5063-#5=20。通过分析,刀具长度补偿值应为20,而实验得出的1号长度补偿地址中设定的刀具长度补偿量为也20,理论分析与实验结果相吻合。
实验过程和结果说明这种方法的正确性和可行性,用宏功能编制程序实现刀具长度补偿量的自动测量,不需要购买专门的对刀仪,既节省了成本,又方便机床操作者使用,可以广泛应用在加工中心刀具自动换刀时的刀具长度补偿设置中。