3.2 Qtapia4的交叉编译
本课题采用QVQtopia工具进行应用程序开发。要在ARM板上移植、运行Qt4开发的应用程序,必须交叉编译Qtapia4并进行库移植。采用arm-linux-gcc-3.4.1版本的交叉编译器编译进行编译,主要编译配置如下:#./configure-v-little-endian-embedded:arm-prefix/mnt/nfs/qtopia_arm,配置结束后使用#make &make install命令后即可在/mntlnfs/qtapia_arm目录下生成所需的嵌入式库文件系统。
3.3 NFS运行方式
NFS(Network File System,即网络文件系统),它是一种将远程主机上的目录通过网络连接到本地主机的一种机制。通过对网络文件系统的支持,用户可以很方便地在本地主机上操作远程主机上的共享目录。通过建立网络文件系统能够实时在线地对程序进行编辑、调试、运行,极大地提高了嵌入式Linux下的应用程序的开发的效率。启动开发板,在终端命令窗口下运行命令:# mount-t nfs-o nolack192.168.1.200:/mnt/nfs/mnt/nfs即可以把主/mndnfs目录下的内容挂载到开发板相应目录上,其中192168.1.200是主机的IP地址。进入该文件夹,设置好必要环境变量就可以启动运行应用程序。应用程序在PC主机和ARM开发板上运行效果分别如图3a图3(b)所示。
图3-a 应用程序PC主机运行 图3-b应用程序ARM上运行
4 嵌入式Linux线切割数控软件设计
数控系统CUI界面的设计要求美观、操作方便,能适合车间实际生产环境及操作者使用习惯等要求。软件设计内容主要分为以下几个部分:
4.1文件及图形操作
本系统的设计能够读取常用的数控代码,且能够对其编辑、修改及存储;能根据程序指令生成轨迹图形、模拟仿真加工以及对图形的缩放、移动等操作。Qt4的二维图形引擎是基于QPaint类的,可以绘制点、线、圆弧等几何图形,也可以绘制文字及图像等。文章作者经过开发实践,发现在嵌入式Qtopia库中图形显示模块,必须采用QPaint类中的paintEvent()函数进行绘图功能操作,否则在ARM9开发板运行时图形不能够正常显示。
4.2机床操作及参数设置
对机床操作的功能有启动、停止、移动、找边、回零、设置参考点、自动找内外中心等,系统操作上支持鼠标点击和键盘快捷键;系统能够设置工艺参数及实时调整,自动检测电机缺相、短路回退及电极丝半径补偿设定等功能。
为了实际操作方便及预防断电等事故发生,程序设计了系统定时自动保存加工状态参数功能,待每次机床重新开机运行后,自动提取并加载先前的加工状态参数,快速恢复到加工状态。
为了实现线切割加工机床的短路回退控制,须定义一个环形缓冲区保存一定长度的已加工轨迹,并且能够对这个轨迹缓冲区进行存人和取出两个操作。在进行回退控制时,取出环形存储器中所记忆的路径,进行回退处理,对于要求回退路径较长的情况,采用逆向插补功能可对整段程序进行全程逆向插补。
4.3数控代码解释器
数控代码解释器的作用是将用户编写的数控程序重新编排,按约定格式解释成加工数据存储在代码缓冲区中。在代码缓冲区中的数据再经过后续的预处理后,放到插补缓冲区,以供插补线程进行插补运算。本文所实现的线切割数控系统是利用Lex和Yacc工具构造数控代码解释器的。
实现对NC代码的解释,首先要对NC代码进行词法和语法格式检查,同时获取NC代码中的加工信息,生成中间数据信息。接着根据NC代码所代表的功能,如涉及电极丝半径补偿指令,还需进行电极丝半径补偿处理,同时对NC代码进行语义分析,检查其语义错误,最后生成数控系统插补模块所需的运动轨迹及相关加工数据。