本文将通用嵌入式运动控制器用于一台立式铣床x8126 的数控改造试验。改造中保留了原有的主轴系统和冷却系统,用步进电机驱动系统对铣床进行x、y、z 三轴数控改造。此次改造后步进距离是0.001mm/脉冲。
2 数控基本原理
2.1 数控系统的工作过程
(1) 把零件加工程序、控制参数和补偿数据等输入给数控系统。
(2) 加工程序译码与数据处理。
(3) 插补。运动轨迹是多轴协调运动的结果,为了实现期望的轨迹,必须控制相关轴的运动。直接的方法是把各轴的每一步运动情况事先确定好,存入计算机的存储器,再现轨迹时,根据存储的数据来控制各轴。但是这意味着要存储大量数据,在实际应用中不现实。实际上,轮廓或运动轨迹一般由直线、圆弧组成,对于一些非圆曲线轮廓则用直线或圆弧去逼近。可以根据一些少量的基本数据(起点和终点即可*确定一条直线,圆弧只需要给定起点、终点、半径及方向即可确定),通过计算,将工件的轮廓或运动轨迹描述出来,边计算边根据计算结果向各坐标发出进给指令。这就是插补(interpolating)的基本思想,即插补计算就是数控系统根据给定的曲线类型(如直线、圆弧或高次曲线)、起点、终点以及速度,在起点和终点之间进行数据点的密化。当然,单轴运动就不存在插补问题。
数控系统的插补功能主要由软件来实现,主要有两类插补算法。一种是脉冲增量插补,它的特点是每次插补运算结束产生一个进给脉冲;另一种是数字增量插补,它的特点是插补运算在每个插补周期进行一次,根据指令进给速度计算出一个微小的直线数据段。mcx314a 芯片内部含有高速高精度的直线和圆弧插补功能。
(4) 伺服控制。将计算机送出的位置进给脉冲或进给速度指令,经变换和放大后转化为伺服电机(步进电机或交、直流伺服电机)的转动,从而带动工作台移动。
(5) 刀具补偿。在轮廓加工中,当采用不同尺寸的刀具加工同一轮廓工件,或同一名义的刀具因磨损而因此尺寸变化时,为了保证控制精度和编程方便,数控系统通常应有刀具补偿功能。
2.2 数控加工程序
符合 iso-840 标准的nc 指令代码编程是一种较通用的数控编程方法。常用的指令有准备功能g 代码、辅助功能m 代码、主轴速度s 代码、刀具t 代码等。数控程序就是由这些功能代码和数据构成。如n0666 g01x20 y20 f 300 表示直线插补,xy 同时进给到目标点(20,20),速度300mm/min。
pro/engineer、北航海尔caxa 等cad/cam 软件能够依据零件cad 轮廓生成相应的加工轨迹,生成数控代码程序。
3 硬件组成
如图 1 所示,基于arm 和mcx314a 的运动控制器是系统的控制核心。图2 是接口板和驱动器的接口图。mcx314a 输出的脉冲/方向信号经接口板(26amls31 变成差动信号)与驱动器对应的脉冲/方向端子相连。各轴限位开关信号和原点信号、急停信号经接口板光电隔离后连接mcx314a 的nlmtp、nlmtm、xin0 和emgn 引脚。
图 1 改造后的铣床数控结构图
图 2 转接板和步进驱动器的连接图
pc 机通过串口与lpc2214 相连,作为数控加工程序的编程人机界面;在数控加工时,lpc2214 将mcx314a 各轴的逻辑位置和状态反馈给pc。不过,pc 将数控加工程序下载给运动控制器后,可以脱开,运动控制器具备独立运行能力。
4 软件设计
利用pc 的良好人机界面和数据处理能力,pc 用作数控编程的人机界面,对数控程序进行语法检查,对数控程序进行预处理。pc 预处理后,将数控程序下载给运动控制器,lpc2214 将数控加工程序存入flash 中。数控加工时,lpc2214 从flash 中读出加工代码,进行数控加工程序的译码,译码完成后调用api 函数,实现数控功能。
上位 pc 作为数控系统的人机交互界面,完成数控代码编辑(或接收cad/cam 软件生成的加工程序)、语法检查、代码预处理功能,并能和运动控制器进行通信,将处理后的数控代码参数上载到控制器,并能接收到控制器的(逻辑)位置反馈和驱动状态信息,实现对整个系统的监控。上位pc 的程序用visual basic 开发完成。
在已经奠定了运动控制器的软、硬件基础平台后,实现数控应用的关键点在于把数控代码转换成对api 函数的调用,核心内容是进行数控加工程序的译码。
图 3 数控加工程序译码流程
(1) 数控加工程序的译码。
定义一个数据结构体 cnccodebuf,将一个数控代码行的译码结果存入其中。将g 代码和m 代码分为ga~gf、mx~my 组别,以节省存储空间,提高译码效率。译码流程见图3。
struct cnccodebuf
{
short n;//存储数控代码n 后的编号
int x,y,z;//存储x、y、z 代码后的数值
int i,j,k;//存储i、j、k 代码后的数值
int f;//存储f 代码后的数值
int s;//存储s 代码后的数值
short t;//存储t 代码后的数值
unsigned char ga,gb,gc,gd,ge,gf;//存储分组后g 代码的序号
unsigned char mx,my,mz;//存储分组后m 代码的序号
}cncbuf;
一行代码译码完成后,代码数据存储于变量cncbuf 中,然后需要作的事是将其变换为对api 函数的调用。方法是从变量cncbuf 的成员中读取g、m 代码功能号,根据功能号对应的api 函数要求逐一完成api 调用的入口参数设置。
(2) 通信。上位pc 将预处理后的数控代码程序加帧头“0xaa”和帧尾“0x55”后以rs232 方式下载到运动控制器中。通信格式设为:“38400,e,8,1”。
德国JUMO久茂PK型铂陶瓷温度传感器的功能和特点
气相色谱仪色谱工作站的优势
立式钻床在散热上的设计
不锈钢止回阀的工作原理
一次风机9-26No8d右90°
嵌入式运动控制器的数控改造试验
烟囱钢内筒防腐维修对技术的要求
斯*蠕动泵如何解决腐蚀问题?
Acuvim-390
当前玻璃棉卷毡一般价格是多少钱?行业报价
《橡胶 用硫化仪测定硫化特性 第2部分:圆盘振荡硫化仪》征求意见
移印机日常维护-福建荣龙
想知道如何操作光照计不妨来看看这些吧
ASCO电磁阀的分类及选型参考
SMC电磁阀的特点及适用性
负离子检测仪器的优势
便携式压力露点仪 - DP 400 mobile
SMC过滤器安装方法,SMC过滤器原理
XSENS传感器MTi-7特征描述及应用原理介绍
PHOENIX菲尼克斯设备断路器工作原理 CB TM1 6A