2 系统软件设计
传统数控系统的使用流程是先由用户编辑G代码或其它格式的加工文件,数控系统根据该文件中代码的意义,控制刀具做出相应的动作。所以在软件方面,系统需要提供文本编辑功能、对加工文件的编译功能、电机驱动功能等。为了使用户验证加工程序的正误,系统还要提供仿真功能,将走刀过程展现给用户。
为了实现网络功能,本系统还移植了嵌入式浏览器Konqueror/Embedded, 这是一款自由软件。由于浏览器可以访问HTTP、FTP、SMTP、NNTP等多种不同协议的服务,故安装浏览器可谓一举多得,移植过程参考文献。软件结构如图3所示。
2.1 操作系统平台的搭建
2.2 伺服电机和步进电机驱动程序
伺服电机需要的信号是PWM 波形控制信号,因此伺服电机驱动程序主要是实现脉宽调制。这个脉宽调制是利用一个定时器,并根据由SPWM 算法得到的延迟时间,控制一个通用I /O端口高低电平持续时间得到的。系统产生的PWM 波形如下图4所示。
而在三个步进电机的设备驱动程序中,向步进电机发送连续信号定义为写操作; 从8253中读数据定义为读操作; 由键盘控制各电机动作作为自定义操作。
2.3 G代码编译
G代码是国际通用的机床加工代码,其编译的思想是: 首先将G代码文件读入流中,逐行分析其意义,并且带有查错功能。当遇到子程序跳转时记录文件指示出其位置和循环次数时,子程序返回后从记录位置继续执行;遇到主轴旋转时,在编译文件中写入旋转标志和PWM 的脉宽; 遇到插补命令时写入脉冲标志和每步的三坐标脉冲信号诸如此类。最后生成记录整套加工步骤的二进制文件。编译流程如图5所示。
2.4 插补算法与刀补算法
数控铣床控制系统使用逐点比较法实现直线和圆弧插补算法。以刀的当前位置为起点,以G代码给定位置为终点,在其间的直线或圆弧上插入拟合点,根据这些点产生一系列三坐标脉冲信号。逐点比较法的缺陷是圆弧插补只能走x 或y 方向的正交线,而缺失了最应该在圆弧插补中出现的由x、y 方向合成的±45/135°斜线,系统根据圆弧相对于x 或y 轴的倾向性,使插补过程中在圆弧的±45 /135°附近尽量使用斜线,使得插补精度更高、步数更少。图6 是由M atlab仿真得到的改进算法和传统算法的比较,如果定义理想曲线和拟和曲线的误差为两曲线相夹的面积(图中灰色部分) , 可看出改进算法的误差较小。
编写加工程序时,一般只考虑刀具中心沿零件轮廓切削,而忽略刀具半径对加工的影响,在实际加工时需要在刀具中心与刀具切削点之间进行位置偏置,补偿上述影响。这种变换过程即为刀具补偿。系统采用的是带有过度连接的C刀具补偿算法,该算法比较复杂,与许多因素有关,为此定义了一个结构作为刀补函数的参数,该函数更改插补始末位置、增加过渡曲线实现刀补功能。参数结构如下,
3 结论
以ARM9微处理器为硬件平台,免费的Linux操作系统为软件平台,开发了嵌入式数控铣床,实现了对步进电机和伺服电机的控制。 在对制作的电路板和编程的系统程序实验的基础上表明,与传统数控系统相比,嵌入式数控系统发挥了其耗能少、成本低、体积小等优势。
转载请注明出处。