|
|
马上注册,结识高手,享用更多资源,轻松玩转三维网社区。
您需要 登录 才可以下载或查看,没有帐号?注册
x
数控加工后置处理的研究
% J* D5 o t# C# E5 D一.引言 1 J k1 Z! t) S F
+ m5 e+ A3 n- z( l
随着生产力与加工精度的不断提高,数控机床在工业生产中起到了越来越重要的作用,而为了提高机床利用率,传统的示教式编程已经不能适应生产的需要,离线编程成为数控机床运用中不可缺少的一部分。
; V7 ]9 g# F: _/ p9 L2 j2 d4 x. z* a5 _- f F l( d
离线编程需要先建立零件的CAD模型,并产生其刀位文件。现在多数的商用CAD/CAM软件,如:catia,UG等,其数控仿真生成的为APT格式的刀位代码,无法被数控机床直接运用,需要对其进行后置处理生成可以直接对机床进行操作的NC代码。而后置处理的过程直接决定了NC代码的精度与好坏,对数控加工过程起到了至关重要的作用。 . D6 |$ }: _# Q! e3 K3 O, M" S
4 H' Y7 y, D6 z3 O% h% h& n
一般的商用CAD/CAM软件,如:catia,也会提供了NC代码的产生。它们使用了一个库文件来作为后置处理的配置文件直接生成可使用的NC代码。但是由于机床的不通用性,这些软件只提供了少数常用机床的NC代码的生成,且生成的代码过于烦冗,不易于修改。故大部分后置处理的过程还是需要另行实现。
7 ~1 N0 f7 y1 @$ O# m3 P, |" F, g# J+ B
二.后置处理的编制方法
, z1 i" i1 D# z+ Y" e3 t& c- k% d: @. M6 W. E7 f
目前各机床的编程语言不具备通用性,即使是同一制造商生产的机床,在其前后期也可能不具备通用性。尽管国际上曾试图通过标准化来推广一种通用的机床语言,但是由于制造商的缘故,一直难以得到广泛的推广[1]。因为机床语言的不通用性,一般的商用CAD/CAM软件难以按照用户的需要提供全部机床的NC代码生成,只提供了一部分常用的机床的NC代码生成,大部分还是需要用户自己由其产生的APT文件来自行处理生成NC代码。 ) O7 X- J# V6 }5 v
) h, A* G' [) H% f$ D
对于简单的数控过程,用户可以直接对APT代码进行翻译,实现APT到NC代码的转化,但是对于大部分零件来说,用户需要借助计算机的帮助来实现代码的转化。通常使用的转换方式有三种[2]: + z* } v7 G! P( {+ K, ?* F
. e* d. ~; f6 k
1.通用语言编写
! O- P1 t1 h& y9 k5 c5 L/ h1 _, K3 j2 E, j, Y4 ^' ?% l L: Y
使用一般的编程语言,如:Visual C++,Java等语言都能够实现后置处理,完成APT文件到NC代码的转换。这种方法的优点是,只要熟悉所需编写的机床和通用语言就能进行操作,不需要其他的软件辅助或培训。缺点是,专用性太强,需要专门的程序员,且程序设计后不具备通用性,修改困难。 5 {9 l- r9 z" c, x A2 `5 c+ {' K
?! Z- j n8 t! W9 ~3 {! u
2.通用软件
9 _" W$ {' C/ x) ~: G. k5 X
6 T: A/ u! \! o# n# ~使用一定的通用代码转换软件,如[3]中提到的M SPOST和[3]中研究开发的KD-NCtool等,来实现APT文件到NC代码的转换。其大致过程如下: 5 ]( M- A/ b/ T, X
通过一个机床配置信置文件来对机床进行描述,并用这个描述来控制后置处理的模块。使用这个后置处理翻译模块便可以将由CAD/CAM系统产生的APT文件翻译成可执行的NC程序。机床配置信置文件的取得一般是通过回答用户对话框。这种对话框通常会需要用户对机床的一些特性进行描述,以此获得所需的信息来构成翻译模块。
/ _1 y4 x0 g/ s这种方法的优点是,用户只需了解机床就可直接实现APT到NC代码的转化。缺点是,由于机床的多样性,一个简单的对话框没有办法描述所有的机床,很可能生成无效的或是错误的NC代码,且无法对信息配置文件进行细节修改,得到的NC代码也不易修改完善。
% \( a# ?! y$ E. h4 h: {( s! o" h& V+ a- k. O" W% l0 Z: P. H
3.专用语言编写 / }" G# R! F1 H! T6 {' ]
0 A1 C% t2 u7 f: ]
使用一些专用的后置处理程序编制语言来编写后置处理文件,这种语言专门为后置处理文件的编写设置,具有自己独特的语法,并提供一些固定的宏来方便后置处理文件的编写。这种方法的特点是既提高了程序格式的灵活性,又使程序编制方法比较简单。但是,需要学习一种专门的语言是这种方法的不便之处。[2]中提到的GNC中使用的POST软件包就是这种方法。 8 u7 }6 K& v) s% W0 S3 C
4 X/ B" j: H3 I& f+ R& p R. a$ t R- m" H
三.后置处理的具体过程 8 u, n7 i2 X2 ]* C! I
8 ^1 y1 R q" k( h1 e
尽管后置处理的编制方法有三种,但大致过程都是一致,即对运动语句的处理与对非运动语句的处理。运动语句主要是用几何算法对其进行处理,而非运动语句则是编码的对应。 2 X1 n9 T$ f, J2 ?! |( h) Q
2 ]; s1 o0 O) D0 f' E' |% k! H运动语句主要包括:
1 ]; V0 q. e% \: o8 r6 m) u. b; Y* T$ T1 v7 ~# O4 {9 y! ]
1) 刀具空走(无切削的空行程) 程序段;
2 n T1 T$ {; E8 K2 p2 E' E" X ^/ }2) 刀具走直线程序段(有刀补或无刀补) ; 0 E9 S/ ?" q5 O
3) 刀具走圆弧程序段(有刀补或无刀补) ; # t) c, i" X7 F
4) 刀具上升(抬刀) 程序段;
- _0 \& l9 m6 q( h5 F; \: n5) 刀具下降(下刀) 程序段。 9 i$ C0 o; _1 Z
8 r2 ?; A. A7 p. j
非运动语句主要包括: ( K- G9 e3 f9 P2 k, J* c ]( i
" n4 L9 i, p. @% U1) 生成加工程序起始符(倒带停止符); ( ]0 h$ E b+ ]# v5 x6 ?0 S4 m# N
2) 编辑生成起刀点位置程序段;
6 Z3 l. |* G4 ~7 ^: K9 |( G3) 编辑生成启动机床主轴、换刀、开关冷却液等程序段;
: W2 V; B1 m5 u/ ]8 F4) 各类刀具运动程序段的编辑;
0 w7 f. V) b; v/ Y0 i, v5) 其他辅助功能(M指令) 程序段的编辑等。
& T1 Y) X- w8 D" Z" |9 X. w
/ W, S, p9 e' U2 E下面是一个由Catia自动生成的APT格式文件: + l0 g# l: U0 h) H# T, A/ ~
% u4 K) T c. d4 g1 ]PARTNO NAME: EXAMPLE
+ e! d2 T! ^( e: R0 c- p% Y6 G0 LPPRINT MODEL=CAT_M q4 ~; z, I# B/ F! I$ C
PPRINTNC SET=CAT_NS
5 Z1 L, [& i8 s9 P3 KMULTAX
2 Y Y9 c8 }7 q$ P h8 aCUTTER/ 40.0000,2.0000,18.0000,0,0000,0,0000,0.0000,100.0000
; M% p7 W; A/ C/ X6 O% KFROM/ 0.0000,0.0000,100,00000,0,000000,0.000000,1.000000PT 1
/ a4 H5 s( t* V1 ^# lMACHIN/BAMTRI,5,230.0
4 ]1 x; l4 ]$ `# N3 t! r; C. [SPINDL/300
4 f! K f: F! b5 O" H; UCOOLNT/ON / o2 y6 _2 o2 M( G9 m" `
FEDRAT/500.0000
b' M, {+ Y" W/ AGOTO/ 0.00000,0.000000,5.0000,0.000000,0.034899,0.999391PT 2
8 x9 I7 z. V( s0 J# s( c' [GOTO/40.0000,20,00000,5.0000,0.00000,0.033965,0.9999423PT 3
5 d5 K3 Y6 s" C; C$ \# L………… 0 l5 P& l+ V U) S: }) u5 p; G
SPINDL/OFF , s" W" e5 P# E3 h& |1 r
STOP - n+ E& h, {# v+ m
FINI
" D/ ]. n. X: z$ u( S9 s- y" O; N. `7 I, o- ]
其中CUTTER、SPINDL/300、STOP、FINI等为非运动语句,它们所对应的含义会在后文提到。
( {# M9 e1 f6 ~: r/ i: R5 [5 \/ G3 E f& u! v% B: A) ]3 R3 M) V M) r" i
GOTO/ 0.00000,0.000000,5.0000,0.000000,0.034899,0.999391PT 2为运动语句。 : L3 U3 u/ L; t* d7 n5 Z1 z% c6 Z
# v1 b }/ A+ [# m$ T$ J1 |- S其中0.00000,0.000000,5.0000为刀头在工件坐标系中的X,Y,Z值,0.000000,0.034899,0.999391为刀头在工件坐标系中的单位矢量方向。这两组数据用来描述刀具所在的空间位置,这个位置需要在后置处理中改成机床所接受的描述方式。PT 2表示这是刀具的第2次走刀后到达的位置。 ( [7 a( O$ K: l' G8 d0 K4 q
' \' X- R2 g( H, Z( o8 _6 t. k. d1.后置处理的几何算法 ; l7 k5 O: H' ?4 P4 t
( e: `: X" Q% \+ K$ V( w使用商用CAD/CAM软件得到的是APT格式的文件,这种文件使用的是工件坐标系,给出的是刀头的位置与刀具的矢量方向。而一般五轴机床是以转轴中心为控制点,所需的是转轴中心点的位置与刀具旋转的角度A,B以及进刀因数E。故,需要进行几何运算实现坐标系的转换。对于具体的计算过程,在[4]与[5]、[6]中均有较为详细的描述。 0 y' u1 N0 _: K( A
* y! V/ T% V+ E对于不同的机床,其所需描述刀具位置的因素也可能不同,甚至坐标系的确定也不一致。故,难以有较为统一的算法来确定坐标上的转换。但是坐标转化的思想是相同的,即通过空间几何的方法,将APT文件中的机床刀头位置与刀具矢量方向转变为具体机床所需的数字量。 0 W8 f8 M% K( h) @9 m1 | P f
n3 U+ {; `4 i8 \5 q1 h! ]1 K; E
2.后置处理的译码
c) D9 L. @ J
u7 L! ?0 J& ?3 JAPT文件中并不包含一般机床所用的G代码或是M代码,而是用GOTO、STOP等语句来描述机床的动作,后置处理的译码既是将这些一般性语句改成专门的机床运动语句。下面是一些APT中的常用语句所代表的含义。读者可以根据机床的语法来对应相应的描述。 ' l9 l8 c, O* a* E7 {1 I$ t2 ~
表1APT常用语语意 9 g& Y" w; i3 [2 ~) w& f
| APT语句 [td]所表示的含义 | | FROM/x,y,z, a,b,c [td]无切削移动至位置(表示因素由机床决定) | | GOTO/x,y,z a,b,c [td]切削至位置(表示因素由机床决定) | | FEDRAT/n [td]进给量 | | CUTTER [td]刀具 | | SPINDL/n,cw(ccw) [td]旋转速率顺时针,(逆时针) | | /off [td]停止旋转 | | COOLNT on [td]打开冷却液 | | off [td]关闭冷却液 | | RAPID [td]快速进给至 | | STOP [td]停止运动 | | FINI [td]程序结束 |
3.程序设计框图 : a I1 ?8 Q2 _/ d
这是[4]中给出的一个后置处理过程图,其进行了由大型商用软件Catia所产生的APT文件到MACS5000五坐标数控龙门铣床数控程序的后置处理文件的编写。从过程上看,后置处理分为运动语句的后置处理与非运动语句的后置处理两部分,运动语句的处理主要是位置因素的计算,而非运动语句则是APT语句到NC代码语句的转化。这个流程图代表了一般后置处理的过程。 0 e' k( q3 ]' P0 B9 [8 V- K' z F$ j) V: M
; ?5 b7 l3 D% B! `, I: R& f
四.结论 7 ^. h% c" B& [
6 E' K6 l( x) U) P3 z7 Z% {
总体来说,由于机床程序的多样性,很难找到一个通用的方法对APT文件进行后置处理。使用最广乏的仍旧是一对一的编程方式。在程序的编制过程中,对机床坐标转化的把握,以及机床语言的熟悉程度是决定后置处理程序好坏的关键。对机床的了解主要包括,刀具位置描述所需的因素,坐标原点的位置,进给量、转速等的描述方法,运动的描述以及一些特殊的语法。
1 q4 h7 c6 R6 B1 Y; H) X# [! l- o, e* \( B! G9 I* x4 c7 S) x
后置处理得到的结果可能是错误的,其原因可能是因为后置处理的翻译过程存在问题。也可能是APT刀轨本身具有一定的问题,需要通过一定的手段来检验NC代码的准确性。一般可以直接运行来检验其正确性,也可以使用一定的数控仿真软件进行模拟仿真来验证其准确性。
6 o; K* p: B$ {" D- W4 n( b# v4 h2 N) g, v3 i4 ?4 l6 C5 |
后置处理的研究是机床程序语言不通用性的产物,也必然会随着机床控制通用性的实现而消亡。而机器人操作PC化的趋势也许会使机床的控制的通用性成为现实,那时,后置处理也会越来越少的受人关注。 (end) |
|