|
马上注册,结交更多好友,享用更多功能,让你轻松玩转磨削论坛
您需要 登录 才可以下载或查看,没有账号?注册会员
×
摘要:本文研究了运动控制器应用于铣床数控改造的应用方法。首先介绍了数控系统的工作过程,然后重点分析了其硬件组成与软件设计,并通过试验实现了数控代码的预期功能,表明该通用嵌入式的运动控制器应用于经济型数控机床改造是可行的,具有广阔的前景。+ d n+ C# t, L- c
关键字:铣床;运动控制器;嵌入式;数控
3 R" Z Z; r1 e' T+ _中图分类号:TP393 文献标识码:A
5 i' e0 V6 U: u3 @6 _Study of the Digital Control Milling Machine based on the Embedded Motion Controller0 d: r; V7 A5 \2 |9 u6 Y% S' m
TONG Ruiyang, SHAO Guojin
7 u/ c- Q: }" s6 k1 M8 q(Pingdingshan Institute of Technology; Pingdingshan 467064; China); F7 c* U9 W: \. e L* A
Abstract: The method how to apply the motion controller to milling machine reform is studied in, z4 J" f Y. N' ^# h3 c: s
this paper. Firstly the work process of the digital control system was introduced, and then the
# k/ ?6 Y# u0 G3 v7 E% U3 }' Zhardware structure and software design are focused. The experiment can achieve the expecting& H5 [4 p i1 ]6 S0 b. s# k
purpose, which can prove that the feasibility of applying the motion controller into the
" @; T9 g: Y* wimprovement of digital control milling machine, and have a wide foreground.3 T' ^4 {7 `4 x( \) w' Y
Keywords: Milling Machine; Motion Controller; Embedded; Digital Control) F; U* Y8 w0 n. V% d
1 引言( W: J" R3 t6 q X4 r) h6 w
数控机床可以实现加工的自动化,比传统机床提高了生产效率,而且加工零件的精度高,尺寸分散度小。我国有广阔的机床数控化改造的市场。本文将通用嵌入式运动控制器用于一台立式铣床X8126 的数控改造试验。改造中保留了原有的主轴系统和冷却系统,用步进电机驱动系统对铣床进行X、Y、Z 三轴数控改造。此次改造后步进距离是0.001mm/脉冲。
! a, X' a1 a5 ^2 数控基本原理# w; ~- K7 i3 b
2.1 数控系统的工作过程 g' i) H& O6 F* G6 S, ?7 ^
(1) 把零件加工程序、控制参数和补偿数据等输入给数控系统。+ g/ O/ ]& o8 [: ?
(2) 加工程序译码与数据处理。- f F" Y2 D5 G: F
(3) 插补。运动轨迹是多轴协调运动的结果,为了实现期望的轨迹,必须控制相关轴的运动。直接的方法是把各轴的每一步运动情况事先确定好,存入计算机的存储器,再现轨迹时,根据存储的数据来控制各轴。但是这意味着要存储大量数据,在实际应用中不现实。实际上,轮廓或运动轨迹一般由直线、圆弧组成,对于一些非圆曲线轮廓则用直线或圆弧去逼近。可以根据一些少量的基本数据(起点和终点即可唯一确定一条直线,圆弧只需要给定起点、终点、半径及方向即可确定),通过计算,将工件的轮廓或运动轨迹描述出来,边计算边根据计算结果向各坐标发出进给指令。这就是插补(Interpolating)的基本思想,即插补计算就是数控系统根据给定的曲线类型(如直线、圆弧或高次曲线)、起点、终点以及速度,在起点和终点之间进行数据点的密化。当然,单轴运动就不存在插补问题。
0 \* L- ], G* q' J 数控系统的插补功能主要由软件来实现,主要有两类插补算法。一种是脉冲增量插补,它的特点是每次插补运算结束产生一个进给脉冲;另一种是数字增量插补,它的特点是插补运算在每个插补周期进行一次,根据指令进给速度计算出一个微小的直线数据段。MCX314A 芯片内部含有高速高精度的直线和圆弧插补功能。
' c: W% }) G5 v$ F# T7 @(4) 伺服控制。将计算机送出的位置进给脉冲或进给速度指令,经变换和放大后转化为伺服电机(步进电机或交、直流伺服电机)的转动,从而带动工作台移动。
. b* f( h& n7 y( J(5) 刀具补偿。在轮廓加工中,当采用不同尺寸的刀具加工同一轮廓工件,或同一名义的刀具因磨损而因此尺寸变化时,为了保证控制精度和编程方便,数控系统通常应有刀具补偿功能。
' s _' R, G) f4 O. a; f2.2 数控加工程序
$ O9 s0 f$ U6 ]4 @* p/ r& w- j9 S 符合 ISO-840 国际标准的NC 指令代码编程是一种较通用的数控编程方法。常用的指令有准备功能G 代码、辅助功能M 代码、主轴速度S 代码、刀具T 代码等。数控程序就是由这些功能代码和数据构成。如N0666 G01X20 Y20 F 300 表示直线插补,XY 同时进给到目标点(20,20),速度300mm/min。. d1 S3 N% N" S* t2 N' }
Pro/Engineer、北航海尔CAXA 等CAD/CAM 软件能够依据零件CAD 轮廓生成相应的加工轨迹,生成数控代码程序。8 r7 ^ `+ w/ V
3 硬件组成 M n% f* O' p1 V+ \
如图1所示,基于ARM 和MCX314A 的运动控制器是系统的控制核心。图2是接口板和驱动器的接口图。MCX314A 输出的脉冲/方向信号经接口板(26AMLS31 变成差动信号)与驱动器对应的脉冲/方向端子相连。各轴限位开关信号和原点信号、急停信号经接口板光电隔离后连接MCX314A 的nLMTP、nLMTM、Xin0 和EMGN 引脚。4 o" P, V* L/ G) H. T/ _
9 o" {* e9 F) T( i1 `+ Q2 x
图1 改造后的铣床数控结构图
5 e0 T* i$ f. M. Z H e$ `8 l; A
3 H7 c, O( G) O$ N; F
图2 转接板和步进驱动器的连接图
& t' n! Q. K5 g1 }% @4 VPC 机通过串口与LPC2214 相连,作为数控加工程序的编程人机界面;在数控加工时,LPC2214 将MCX314A 各轴的逻辑位置和状态反馈给PC。不过,PC 将数控加工程序下载给运动控制器后,可以脱开,运动控制器具备独立运行能力。, s8 i0 T8 ?. N. h
4 软件设计! \( ~% ^1 Z7 W: a9 u! u
利用PC 的良好人机界面和数据处理能力,PC 用作数控编程的人机界面,对数控程序进行语法检查,对数控程序进行预处理。PC 预处理后,将数控程序下载给运动控制器,LPC2214 将数控加工程序存入Flash 中。数控加工时,LPC2214 从Flash 中读出加工代码,进行数控加工程序的译码,译码完成后调用API 函数,实现数控功能。
! I e# F5 ^* i; l% h/ S- |( B 上位 PC 作为数控系统的人机交互界面,完成数控代码编辑(或接收CAD/CAM 软件生成的加工程序)、语法检查、代码预处理功能,并能和运动控制器进行通信,将处理后的数控代码参数上载到控制器,并能接收到控制器的(逻辑)位置反馈和驱动状态信息,实现对整个系统的监控。上位PC 的程序用Visual Basic 开发完成。! W' }- U2 J+ H0 n0 x' ~5 B; d
在已经奠定了运动控制器的软、硬件基础平台后,实现数控应用的关键点在于把数控代码转换成对API 函数的调用,核心内容是进行数控加工程序的译码。" e1 b1 }7 L2 @# k) W6 m
! N4 p- S! L) a7 m; R图3 数控加工程序译码流程3 O j2 \; w y: s
(1) 数控加工程序的译码。
I t9 B% G4 s, x. f; U7 F 定义一个数据结构体 CNCcode Buf,将一个数控代码行的译码结果存入其中。将G 代码和M 代码分为GA~GF、MX~MY 组别,以节省存储空间,提高译码效率。译码流程见图3。
O; n) A3 P& X# `2 I, h+ ? struct CNCcodeBuf
0 Y9 ^; H7 Y8 m8 E' k; P4 j; s% q1 ? {
- f8 t4 T' G4 Y. a( ~$ v6 j short N;//存储数控代码N 后的编号) O' n9 S* e/ b' x
int X,Y,Z;//存储X、Y、Z 代码后的数值# } m l# j! d( i9 U
int I,J,K;//存储I、J、K 代码后的数值
' G1 u8 n0 ~$ _! L: J int F;//存储F 代码后的数值5 y$ L: j' k) g
int S;//存储S 代码后的数值! D% c* \; u( D) ^! } d" P2 ?
short T;//存储T 代码后的数值2 y/ a( Y* ?! a# u$ h+ v
unsigned char GA,GB,GC,GD,GE,GF;//存储分组后G 代码的序号0 ]. u4 e [) |8 b% O" s
unsigned char MX,MY,MZ;//存储分组后M 代码的序号
! F/ s$ W9 M& A$ X% b- [! c }CNCBuf;
5 v) T1 t6 k- d. V7 g 一行代码译码完成后,代码数据存储于变量CNCBuf 中,然后需要作的事是将其变换为对API 函数的调用。方法是从变量CNCBuf 的成员中读取G、M 代码功能号,根据功能号对应的API 函数要求逐一完成API 调用的入口参数设置。' `# o8 z% B, p% }0 }+ X
(2) 通信。上位PC 将预处理后的数控代码程序加帧头“0xAA55/ q1 Z3 x. Q( f. X1 q3 w$ |
AA”和帧尾“0x55AA55”后以RS232 方式下载到运动控制器中。通信格式设为:“38400,E,8,1”。$ _% i5 h7 G+ Q# j: I
5 试验实例2 [5 V* s% Q4 Y" F$ V7 z, ]) t
为了试验数控代码的运行效果,用北航海尔的CAXA 软件设计一个“TEST”字符串的加工轮廓(CAXA 软件自动刀具补偿),生成数控G 代码PC 对G 代码预处理后下载到运动控制器中运行。记录笔记录的加工轨迹符合设计的预期轮廓。, R6 J2 Q( J( v
N10G90G54G00Z60.000) M' T" R E: V' Z) z: }
N12S1000M034 o9 S; Y' K# |) ~ P9 c
N14X-24.992Y-8.481Z60.000
% Y& W1 ^$ {- D- ?9 |* P* F N16Z50.000
/ e6 x; ^7 r# Z+ ^+ m& _ N18Z10.000
f9 b; r2 s7 ]2 ? L9 ^ N20G01Z0.000F100
0 }$ l: ]; j; G& N( n N22X-24.588Y-8.455F8003 p: b* Z9 g) @0 I1 w# F
N24X-24.342Y-8.402
+ F1 y: B9 e$ U( f. O# a N26X-24.188Y-8.335* R: X) p! a# D: [- u
N28X-24.092Y-8.264! c l# }+ p. ~" ^" ?+ S$ I
......
, g/ D% ^0 y0 r* J5 v, T- d, [ N890G02X21.410Y-8.481I0.927J-0.3760 ^1 \4 ^, G; F7 Y& J6 t0 ?
N892G01Z50.000F800
* v# A8 ?! G" g, F/ o3 N6 o/ Y; m. I N894G00Z60.000
. [4 ~, B7 Z0 ?; Y N896M051 l1 |. d. |% t9 H( g
N898M30
" b3 I+ \6 v7 O' E( [本文创新点:
& `& p( [' O, D* I2 B c2 j) @ 本文将所设计出的运动控制器应用于经济型数控铣床的改造中,研究了应用方法,关键在于将数控代码转换成对MCX314A 的命令封装了的API 函数,充分利用MCX314A 自带的插补功能。【MechNet】
! b0 v/ k8 r( b; y% i文章关键词: |
|