| |||||||
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 将预处理后的数控代码程序加帧头“0xAA55AA”和帧尾“0x55AA55”后以RS232 方式下载到运动控制器中。通信格式设为:“38400,E,8,1”。
5 试验实例
为了试验数控代码的运行效果,用北航海尔的CAXA 软件设计一个“TEST”字符串的加工轮廓(CAXA 软件自动刀具补偿),生成数控G 代码PC 对G 代码预处理后下载到运动控制器中运行。记录笔记录的加工轨迹符合设计的预期轮廓。
N10G90G54G00Z60.000
N12S1000M03
N14X-24.992Y-8.481Z60.000
N16Z50.000
N18Z10.000
N20G01Z0.000F100
N22X-24.588Y-8.455F800
N24X-24.342Y-8.402
N26X-24.188Y-8.335
N28X-24.092Y-8.264
......
N890G02X21.410Y-8.481I0.927J-0.376
N892G01Z50.000F800
N894G00Z60.000
N896M05
N898M30
结束
本文将所设计出的运动控制器应用于经济型数控铣床的改造中,研究了应用方法,关键在于将数控代码转换成对MCX314A 的命令封装了的API 函数,充分利用MCX314A 自带的插补功能。