任何数控加工只要能够用宏程序完整地表达,即使再复杂,其程序篇幅都非常有限,可以说任何一个比较合理、优化的宏程序,极少会超过60行,换算成字节数,至多不过2KB。一方面,宏程序天生短小精悍,即使是最廉价的机床数控系统,其内部程序存储空间再小也会有个10KB左右(FANUC 0i系统的标准配置一般为128KB或256KB,其他常见的数控系统也与此大体相仿),完全容纳得下任何“庞大”的宏程序,因此根本无需考虑机床与外部电脑的传输速度对实际加工速度的影响(事实上还没有什么数控系统或DNC软件支持以DNC方式运行宏程序来进行在线加工)。
另一方面,为了对复杂的加工运动进行描述,宏程序必然会最大限度地使用数控系统内部的各种指令代码,例如直线插补G01指令、圆弧(螺旋)插补G02/G03指令等,因此机床在执行宏程序时,数控系统的计算机可以直接进行插补运算,运算速度极快,伺服电动机响应快,机床反应迅速,加工效率极高。
而对于CAD/CAM软件生成的程序,情况则要复杂得多!下面笔者将结合自己多年使用CAD/CAM软件的心得与经验,对此进行比较深入、详细的阐述。
首先,CAD/CAM软件生成的程序通常都比较大,非常容易就突破机床数控系统内部程序存储空问的限制(通俗地说就是系统装不下程序),因此一般来说,除了相对简单的孔系加工、二维轮廓或口袋加工以外,其余绝大部分程序都不得不以DNC方式进行在线加工,显然机床与电脑之间的传输速度成为了影响加工速度的第一个“瓶颈”因素。除了那些机床系统内置硬盘、或机床与电脑之间以FDDI、以太网等形式进行组网的新型数控机床(主要是高速加工机床)之外,目前凡是运用CAD/CAM软件进行数控编程的数控铣/加工中心绝大多数都是通过RS232口的串口通信来实现DNC在线加工的。
绝大多数主流的中档数控系统,如FANUC 0M、0i,三菱M52、M64,西门子8021)、810D等,系统所支持的RS232口最大传输速度(即波特率Baud rate)基本上都是19200,而大多数DNC软件(如V24,PCIN,AIC等)支持的最大波特率多数也不过红19200~38400,即使在19200的波特率下工作,当计算精度较高、进给速度,值又较大(如F1800~F2500)时,程序传输速度往往还是;跟不上机床的节拍,在实际加工中可以看到机床的进给;运动有明显的断续、迟滞,对于FANUC系统,即使打开DNC缓冲,或设置C51.1参数,也难以有大的改观。
经验证明,由于RS232口通信抗干扰能力有限,其传输效果实际上还涉及到传输线是否屏蔽良好、是否长度适中、机床与电脑两端接地是否良好等,波特率越高,传输越不稳定,实际中往往被迫限制在9600甚至更低,如此一来DNC在线方式下的加工效率更打折扣。
其次,从用户使用的层面上说,使用CAD/CAM软件来生成刀路及程序是非常容易的事,但是剖析CAD/CAM软件计算刀路的原理,就知道它存存一定的弊端。在CAD/CAM软什中,无论构造规则或不规则的曲面,都有一个数学运算的过程,也必然存在着计算的误差和处理,而在对其生成三维加工刀路时,软件是根据你选择的加工方式、设定的加工参数,并结合所设定的加工误差(或称为曲面的计算精度),使刀具与加工表面接触点(相交点或相切点)逐点移动完成加工,从本质上看,其实就是在允许的误差值范围内沿每条路径用直线去逼近曲面的过程。
这样任意曲面自然都能对付,而且也是完全合理的做法,但是在加工规则曲面如球面时,工艺上就出现了一些问题。由于CAD/CAM软件构造曲面的底层数学模型所限,也由于CAD/CAM软件对曲面生成刀路的逼近原理所限,在走事实上真正的整圆或圆弧时,软件无法智能地判断这里其实是“真正的整圆或圆弧”,生成的程序并不是G02/G03指令,而是G01逐点逼近形成的“圆”——可以想象为用正N边形去逼近一个圆,只不过这个N非常巨大而已。如果整圆或圆弧是座落在G18或G19平面内,更加没有机会生成G02/G03指令。这也正能解释为什么CAD/CAM软件生成的程序“天生”就庞大无比。程序执行时,相邻的每两个逼近点之间数控系统都要进行直线插补运算,系统的计算机工作量巨大,反映到机床上,必然表现为运动迟钝、不连贯。
如下图所示,表面上看起来都是同样的半球,但是在CAD时其实是有多种不同的建模方法,图1是把ZX平面内的一段1/4圆弧作为母线,以Z轴为轴线旋转360º得出的半球曲面;图2是把XY平面内的一段1/2圆弧作为母线,以X轴为轴线旋转180º得出的半球曲面。即使是采用实体造型(如Pro/E、SolidWorks之类),在其底层草图构造的数学机理上,也有类似的差别。
由此可以看出,两种情况下构成半球曲而的UV流线是截然不同的,各种CAD/CAM软件在生成半球曲面精加工的刀路时,也必然存在差别。简单地说,即使是被业界普遍认为是最杰出的数控编程软件之一的Cima-tron软件,也只有在极少数情况下(如下面的图1),并以Surmill方式(类似与Mastercam中的曲面流线加工)加工,Cimatron软件才能判断出这里其实是“真正的整圆”,生成的刀路轨迹本身才是“真正的整圆”,后处理出来的程序才都足主要由G02/G03指令构成。如果使用srfpkt、3D_step等其他走刀方式,则绝对都是用G01逼近的结果。
再举另外一个很简单的例子,例如用铣刀以螺旋方式加工内圆孔,使用宏程序不仅程序非常短,区区20行都不到!而且机床实际运行时进给速度f=2000mm/min都可以保持非常均匀、快速的螺旋运动;而在Cimatron软件中,即使通过使用外部用户功能user中的helicprf,虽然也可以生成相似的刀路,但是刀路是根据给定的误差值(通常给0.01)用G01逐段逼近的,程序字节数根本就是比宏程序大两个数量级,而且即使把整个程序都存人到机床的控制器中,机床实际运行时速度根本上不去,在F600以下还不明显,如果F值打到F1200左右,就可以看到机床在明显的“颤抖”。
对于数控系统支持NURBS曲线插补的高速机床来说,如果使用拥有高速加工功能的CAD/CAM软件来配合编程,当然没有太大的问题;但是对于绝大多数的数控系统来说始终都是问题。
其实CAD/CAM软件厂商也不可能没有意识到这个问题,事实上,各个CAD/CAM软件也捉供了一些其他途径来对此加以改善,但都不是在根本上解决先天性的问题,而是在“后天”的环节上做文章。众所周知,CAD/CAM软件进行编程的原理是首先生成一个仅包含纯粹几何意义的刀位点文件(即刀路轨迹),这个过程对于使用者来说往往是后台的、不透明的,例如Pro/E的CL文件(Cutter Location File)、UG的CLF文件、Mastercam的NCI文件,Cimatron的APT文件等,然后要经过一道非常重要的环节即后处理,才能生成真证的程序。
CAD/CAM软件所能做的,就是在不改变刀位点文件(即用G01直线逼近曲线的刀路轨迹)的前提下,在后处理上做文章。例如Mastercam软件后处理的环节中,允许使用者设定最小半径值和最大半径值来生成G02/G03指令,其实就是用G02/G03来逼近(准确地说应是“拟合”)相邻的若干段直线段,以达到减少程序字节,提高机床实际运行速度的目的。
而Cimatron软件也是采用相似的做法,即使用者不用通常使用的GPP后处理,而是用另外一个非常专业的后处理软件IMs,这是个第三方软件,可以外挂在众多的知名CAD/CAM软件上运行,使用者可以根据自己的需要度身订作,设置最适合自己的后处理选项,不过一般的软件用户很少拥有运行IMS软件的权限。笔者曾经在2002年专门针对Cimatron软件的GPP和IMS两种后处理进行研究,并在一家台资模具厂进行实际加工测试和评估,撰。写过一篇内部文章,结论是:改善较大,但不能从根本上解决。
在后处理上做文章有一个根本的弊端:它并没有改变、改良或优化刀路轨迹本身,只是增加了一个“二次逼近”的计算过程,必然会导致额外的误差积累,也不可能从根本上解决问题。