冯永星
(中国航发西安航空发动机有限公司,西安 710021)
向寄存器中输入刀具偏移(俗称刀补)数值是数控加工中最常见的操作之一,操作者需要通过该操作来调整被加工零件的尺寸,以保证产品质量。因此操作者在输入刀补时要确保输入数值的正确性,一旦输入的数据出现错误则必然会引起被加工零件的质量问题。本文以数控车加工为例,介绍了一种基于FANUC系统宏程序编制思路及方法,可有效地对操作者输入的刀补数值进行判断,从而起到预防人为输入失误的作用,减少质量事故的发生。
根据车加工所用刀具及被加工部位的特征来分,常见的操作有端面加工、内型面加工、外型面加工、内外槽加工及螺纹加工等。图1中显示了3种最为常见的典型加工,分别为内型面加工、外型面加工及槽加工,下面对这3种典型加工部位的刀补状况进行分析。
加工内型面时,需要控制Z-及X+方向的刀补数据,因为这两个方向的刀补数据过大会导致零件尺寸超差且无余量进行补加工。而Z+及X-方向的刀补数据过大只会导致零件未加工到位,因此可不作控制或选择性地控制。
与加工内型面的情形相似,在加工外型面时需要控制Z-及X-方向的刀补数据,对于Z+及X+方向的数据可不作控制。
槽类特征及形状类似U形的型面特征比较特殊,在加工时有一个方向的刀补需要严格控制,这时就要根据具体情况进行操作。通常情况下,外圆及内孔槽类特征加工对Z向的刀补要求较严;端面槽类特征加工对X向的刀补要求较严。图1所示外环槽在加工时需要控制X-方向的刀补数据,Z+及Z-方向基本不允许调整。
图1 几种典型加工情况
FANUC控制系统的刀补数据存储在特定的系统变量中,这些数据是可以被宏程序读取的。在程序编制时,可根据被加工特征的具体情况对加工刀具的刀补数值进行预设,规定某个方向允许的极限刀补数值。同时,利用宏程序读取操作者输入的刀补数据,将程序的预设值与操作者向机床内输入的数据进行对比,如果输入的刀补数据超过预设值则会导致被加工零件出现质量问题,这时程序停止运行或报警提示。
根据上述思路,可以通过多种编程方式来实现,得到的程序各有利弊,在使用时可根据具体的操作习惯或使用情况进行选择。
2.2.1 方法一
在编制数控程序时,针对不同的加工特征单独编写对应的宏程序来进行判断,这种方法可适用于任何加工环境,灵活性与适用性也最高,其缺点是对每个加工特征都要独立编写宏程序,工作量较大,不利于程序的推广使用。
2.2.2 方法二
先对车加工中常见的加工特征进行分类,将每种特征类别加工时调整刀补的规律进行总结与归纳。再根据每种特征加工需要控制刀补的情况分别编写相应的宏程序,将其集成在同一个子程序中。使用时只需在主程序中给定特征编号及X、Z方向上允许的最大刀补数值即可。图2所示为8种常见的加工类型,通常情况下加工这8种类型对刀补的要求如表1所示。
表1 各类型特征刀补
图2 常见的加工特征类型
可以看出,方法二是对方法一的归类与集成,根据加工车间的产品结构简化或者细分各类特征,使得同一个子程序可以满足不同零件的加工要求,减少程序编制的工作量,降低出错概率。
2.2.3 方法三方法三是
本文介绍的重点,它以刀沿方向作为依据来对操作者输入的刀补进行判断,主要适用于轮廓编程的程序中。大家都知道在使用轮廓编程的程序时,操作者要在对刀这一步骤向机床寄存器输入刀沿方向,因为刀沿方向是控制器进行补偿运算的一项很关键的数据。在绝大部分情况下,可根据刀沿方向对操作者输入的刀补进行判断。
在使用该方法时要遵守两个原则:1)(槽刀)对刀时所使用的刀尖一定是该刀具所加工的所有尺寸中公差最严的;2)操作者严格按照要求(规定的刀具类型)进行对刀。在这2个原则的约束下,根据刀具类型来判断刀补方向就很容易了。图3所示的编号为3的刀沿,根据其定义,在对刀时的对刀点如图4 所示,综合前面的两条规则,可以得出:1)刀具在Z-方向的刀补要受到严格控制,在Z+方向上的刀补可放松;2)刀具在X-方向的刀补要受到严格控制,在X+方向上的刀补可放松。
图3 典型刀具类型(刀沿方向)图
图4 典型3号类型
由于刀沿方向可以直接从机床对刀数据寄存器中读取,因此这种方法相比方法二又有了进一步的简化,在主程序中只需给出相应XZ方向上允许的误差即可,不足之处是不适用于刀心编程的程序。
为便于使用,将整个防误宏程序分为主程序与子程序两部分,刀补预设值放在主程序中进行,而读取当前刀沿方向、根据刀沿方向进行刀补数值判断及刀补数值超出预设时的报警提示则在子程序中进行。此处还是以编号为3的刀沿方向(3号类型)为例,介绍具体程序。
主程序段如下:
N15行通过变量#15对X向允许的最大刀补进行预设,N20则通过变量#16对Z向允许的最大刀补进行预设,N25呼叫子程序。
子程序段如下:
为便于讲解,此处只列举了3号刀沿方向(3号类型)的程序部分,其它刀沿方向的程序类似,只是在判断与跳转部分稍有差异。N1行读取当前刀补,N2、N3行读取当前刀位的刀沿方向并进行跳转,N2003及N4行读取当前X、Z刀补数值,N5、N6行进行判断及跳转,N3007及N3008行进行报警提示。
在实际应用中,每一个程序都会使用到多种类型的刀具,这些刀具的刀补控制是多样的,针对每种刀具去编制独立的防误子程序是一件非常繁琐的事情。因此,要尽量将这些多样化刀补调整方式的防误集成在同一个子程序中,这样就只需要编制一次程序,既可节约工作时间,又便于使用、推广。
本文以车加中工常用的1、2、3、4号刀沿为例来进行说明,具体程序如下:
此程序中:N10~N35为读取当前刀具的刀沿方向编号并根据刀沿方向编号跳转至相应的判断程序段;N2001、N2002、N2003、N2004分别为1、2、3、4号刀沿防误程序段的起始段;N3007及N3008如前文所述为报警提示程序段。
在这里有两点需要特别说明:1)各功能的程序段(模块)之间需要用M99隔开,以便正确跳转回主程序;2)某些机床在程序传输时会在M99处停止传输或自动将一个程序分开成几个不同的独立程序,从而造成错误。为避免此类问题,在向这些机床传输程序时,可将M99临时更改为M00或其它代码,待传输至机床后再更改回M99即可。
如何降低人为原因造成的废品损失是技术工作者需要不断研究的课题,在航空零件加工领域,一个小小的人为失误可能会造成几十万元甚至百万元的损失,本文介绍的这种宏程序编制思路及方法可在最大限度上减少因刀补输入错误而造成的废品损失。当然同一个编程思路可能会有多样化的程序编制方式,如何使编制出的程序符合各自单位的具体工作习惯及使用要求就需要我们结合自身情况去做调整了。