【VC++开源代码栏目提醒】:网学会员VC++开源代码为您提供基于Lex和Yacc的电火花加工机床数控系统代码解释器开发(论文) - 生活指南参考,解决您在基于Lex和Yacc的电火花加工机床数控系统代码解释器开发(论文) - 生活指南学习中工作中的难题,参考学习。
上海交通大学硕士学位
论文基于Lex和Yacc的电火花加工机床数控系统
代码解释器开发别:硕士专业:航空宇航制造工程指导教师:赵万生20090201基于Lex和Yacc的电火花加工机床数控系统
代码解释器开发 第 I 页 基于Lex和Yacc的电火花加工机床数控系统
代码解释器开发 摘 要 本文介绍了电火花数控加工数控系统
代码解释器的研究现状,指出当前各大厂商的
代码解释器主要由高级语言开发,存在开发周期长、工作量大、易产生疏漏、改进和维护难度大等问题,研究使用Lex和Yacc工具开发数控
代码解释器的方法,使加工程序
代码解释器更加完备、高效、安全和稳定,且易于扩展和维护。
本文研究了应用该工具在
代码解释器开发方面的实现方法和流程,结合电火花加工数控
代码的具体实例分别实现了3B和ISO
代码的数控
代码解释器。
在此基础上,着重研究并实现了多数控
代码解释器的共存。
解释器生成的目标
代码经过插补计算得到脉冲信号,通过串口传输给单片机实现了从
代码解释到加工的完整过程。
本文的数控
代码解释器建立在Linux平台上,利用Qt设计电火花数控系统的人机界面,该界面除了数控
代码解释器还包括界面布局模块、
代码输入编辑模块、图形模拟与插补仿真模块以及插补信号数据通讯模块。
该人机界面系统经Qtopia编译移植至嵌入式开发板上,实际运用到电火花线切割数控机床并切割出零件,验证了数控
代码解释器的准确性和高效性,作为本课题的验证案例,已将所研发的数控
代码解释器成功应用于基于嵌入式Linux系统的往复走丝电火花线切割加工数控加工数控系统上。
基于Lex和Yacc的电火花加工机床数控系统
代码解释器开发 第 II 页 关键词:数控系统,电火花加工,
代码解释器,Lex和Yacc,Linux DEVELOPMENT OF CODE INTERPRETER FOR EDM CNC SYSTEM BASED ON LEX AND YACC 第 III 页 DEVELOPMENT OF CODE INTERPRETER FOR EDM CNC SYSTEM BASED ON LEX AND YACC ABSTRACT It introduces the background of the code interpreter for EDM CNC system. The research shows that most companies use high-level language to develop the code interpreter which means long-term development mass work and some problems in improvement and maintenance. For the purpose of being more perfect efficiency safety stable and easier to extend and maintain Lex amp Yacc are used to develop the code interpreter. The realization and procedure about code interpreter by Lex amp Yacc is studied 3B code and ISO code interpreter are realized through programming on Lex amp Yacc. Based on this the multi code interpreter is studied and realized. The target code which interpreter generates will be transmitted to the single chip via serial after interpolation computation. The code interpreter is developed on Linux system Qt is used to develop the user interface of EDM CNC system. The user interface includes code interpreter surface layout code input and edit graph and interpolation simulator interpolation data trans
mission. The user interface is transplanted to the development board by Qtopia programming and applied to the WEDM in cutting the components which confirms the accuracy and high efficiency of the code interpreter. As a successful case to this project the code interpreter has been applied in WEDM system base on embedded Linux. Key
words: CNC system EDM code interpreter Lex amp Yacc Linux 上海交通大学 学位
论文版权使用授权书 本学位
论文作者完全了解学校有关保留、使用学位
论文的规定,同意学校保留并向国家有关部门或机构送交
论文的复印件和电子版,允许
论文被查阅和借阅。
本人授权上海交通大学可以将本学位
论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位
论文。
保密□,在_____年解密后适用本授权书。
本学位
论文属于 不保密√。
(请在以上方框内打“√”) 学位
论文作者签名: 徐笠云 指导教师签名:赵万生 日期: 2009年 2月 16日 日期: 2009年 2月 16日 上海交通大学 学位
论文原创性声明 本人郑重声明:所呈交的学位
论文,是本人在导师的指导下,独立进行研究工作所取得的成果。
除文中已经注明引用的内容外,本
论文不包含任何其他个人或集体已经发表或撰写过的作品成果。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律结果由本人承担。
学位
论文作者签名:徐笠云 日期: 2009年 2月 16日 1 1 1 绪论 1.1 引言 数控技术是利用数字量和符号发出指令并实现机械设备控制的技术。
数控机床是把数控技术与机床的控制结合起来以数字量作为指令信息,通过数字逻辑电路或计算机的控制,使机床按指令或程序自动完成零件加工的一种灵活高效的自动化机床1。
随着微电子技术、计算机技术、自动控制和精密测量技术的不断发展和迅速应用,数控技术和数控机床不断更新换代,并向高速度、多功能、智能化、开放型以及高可靠性等方面迅速发展2。
电火花加工在1943年由苏联学者拉扎连科夫妇研究发明的,而电火花线切割机床也于1960年发明于前苏联,我国是最早将其应用于工业生产的国家之一。
数控电火花加工是在一定的绝缘介质中,利用两极(工具电极与工件电极)之间脉冲性火花放电所产生的电腐蚀现象对材料进行加工,以达到一定的形状尺寸和表面粗糙度要求的加工方法3。
数控电火花加工主要用于加工具有复杂形状型孔和型腔的模具和零件以及各种硬、韧、脆材料(如硬质合金和淬火钢等),以及加工深细孔、异形孔、深槽、窄缝和切割薄片等。
还可以用于加工各种成形刀具、样板和螺纹环规等工具和量具。
而数控电火花线切割加工是一种非常普及的高精度特种加工技术,在机械制造业得到了广泛的应用,尤其是模具制造方面,已经成为一种必不可少的制造技术4。
1.2 电火花加工数控
代码解释器的研究背景 1.2.1 电火花数控加工的研究现状 电火花加工不用机械能量,不靠切削力去除金属,而是直接利用电能和热能来去除金属,已成为常规切削、磨削加工的重要补充,相对于机械切削加工而言,电火花加工具有以下一些特点: (1) 适合于用传统机械加工方法难以加工的材料加工。
因为材料的去除是靠放电热蚀作用实现的,材料的加工性主要取决于材料的热学性质,如熔点、比热容、导热系1 2 数等,几乎与其硬度、韧性等力学性能无关。
(2) 可加工特殊及复杂形状的零件。
由于电极和工件之间没有切削运动,不存在传统机械加工时的切削力,因此适宜于低刚度工件和细微零件加工。
此外,还特别适用于薄壁、低刚性、弹性、微细及复杂形状表面的加工,如复杂的型腔模具的加工。
(3) 可实现加工过程自动化。
加工过程中的电参数较机械量易于实现数字控制、自适应控制、智能化控制,能方便地进行粗、半精、精加工各工序,简化工艺过程。
(4) 可以改进结构设计,改善结构的工艺性5。
目前,电火花加工在制造业尤其在模具制造业中的应用越来越广泛,加工范围日益扩大,大到汽车行业的覆盖件冲模,小到微细孔的加工。
至于中小型复杂型腔的加工,则更是电火花加工的特长,形状越复杂,其优越性就越突出。
由于电火花加工设备和工艺水平的不断提高,目前加工精度可达到几个微米,表面粗糙度甚至可达到Ra0.1??m以下。
数控电火花成型机的发展重点向精密、复杂、微细加工、深型腔加工、深槽窄缝加工、内清角或棱边清晰的型腔加工、超硬材料及特殊零件的加工等方向发展。
1.2.2 数控
代码解释器的现状和发展趋势 数控
代码(NC
代码)是驱动整个数控加工运作的执行依据。
数控
代码解释器的作用是将数控
代码中的各种数据及信息提取出来,以约定的格式存放在缓冲区中,插补模块再从缓冲去中取出数据进行插补运算。
随着数控加工动态仿真系统功能的日益增强、扩大,以及对仿真系统要求的提高,综观国内外发展状况,作为数控动态仿真系统的三个核心组成部分之一,数控
代码解释器技术有了较大的进展。
数控
代码解释器发展至今已涌现出许多类型。
按其使用范围的不同来分6,有专用数控
代码解释器,即只能对专门的数控系统进行提取
代码信息的处理,不能用于其他数控系统;通用数控
代码解释器,即能对不同类型数控系统的数控加工程序进行识别并提取
代码信息的处理;介于专用与通用之间的数控
代码解释器,即在一定程度上保证特定的数控系统的加工信息不遗失的前提下,能够对多种数控系统的加工程序进行处理。
按数控
代码解释器处理对象的不同一般分为以下两类:基于刀位文件的
代码解释器,多为早期数控系统所用;基于数控加工程序的
代码解释器,即
代码解释器的输入部分是用于处理数控加工的加工程序。
当今普遍流行的数控系统都是以数控程序来驱动的。
选择合适的工具开发数控
代码解释器直接关系到整个数控系统的准确性和效率。
最初,为了提高人工输入
代码的准确性,使用常开常闭按钮表示数控
代码和指令,靠按动1 3 按钮输入程序,提高准确性7。
随着PC机和高级语言的引入,在BorlandC3.1 for DOS环境下开发出了C语言的解释器程序8。
接着,在Windows基础上,运用
VC开发出了较为成熟的数控
代码解释器9。
目前存在的数控
代码解释器大多数是使用高级语言直接开发,这就使开发
代码解释器的
工作量大,开发周期长,不仅易产生疏漏,且改进和维护的难度大大增强。
一个高效、安全和稳定的加工程序
代码解释器,对于数控系统来说具有重要意义10。
近些年,国内外学者基于Lex和Yacc开发数控
代码解释器进行了的研究和探索,例如南昌大学的曾国、大连铁道学院的沙智华、哈尔滨工业大学的郑君民、清华大学的游华云11 12 13等。
1.3 现有数控系统开发平台的概况 操作系统作为系统的软件平台,可以分为三类: (1) 批处理操作系统。
即单任务操作系统,如DOS系统。
(2) 分时操作系统。
它是指在系统的一台主机上,允许多个用户以分时方式共享一台主机的操作系统。
例如Windows系列和Linux都属于分时操作系统。
(3) 实时系统。
它是指系统能及时响应外部事件的请求,在规定时间内对该事件进行处理,并控制所有实时任务协调一致地运行的操作系统。
主要有RTLinux、VxWorks、QNX等。
目前广泛适用的电火花加工数控系统的操作系统平台,多采用通用操作系统,如DOS或Windows,这两种操作系统用于CNC尚有不少欠缺。
DOS本质上是一种单任务操作系统,在DOS下的多任务只能通过中断技术来实现。
而且DOS的系统接口简单,造成软件的低水平重复开发,
代码复用率低。
而Windows平台的封闭性、不稳定性和非实时性使其无法很好地用于工业控制。
近几年,Linux操作系统以其真正的多任务、源
代码全开放、极佳的稳定性、虚拟内存、共享库、按照需求装载、优秀的内存管理以及强大的网络支持功能风靡全世界。
Linux作为UNIX系统的一个变种,在继承了UNIX稳定、开放、易于移植等优点的同时,源
代码对用户是完全公开的。
这些优点使其非常适合用于工业控制14。
Linux从1991年问世到现在,已发展成为一个功能强大、设计完善的操作系统,它有着诸多优点:多任务、多用户、多平台、多处理器;系统稳定、可靠;性能简捷、快速;兼容性好、硬件支持多;强大的网络支持;实时性能可扩展等15。
1 4 虽然,Linux操作系统在服务器和台式机上的应用己经有多年,并且在服务器操作系统市场占据了相当的市场份额,IBM、戴尔、惠普、康柏、Oracle,以及其他一些知名的企业都对Linux表现出了信任的态度。
但是,桌面系统仍是Windows的天下。
然而,在嵌入式系统纷争的年代里,继PalmOS、VxWorks、pSOS、Neculeus和WindowsCE之后,嵌入式Linux终于在各个行业领域得到全面的开发与应用16。
由于Windows的价格和安全因素,以及Linux在桌面系统的迅速发展,Linux已可以与各种传统的商业操作系统分庭抗礼,占据了一部分市场份额,且有明显增长趋势。
Linux不只在服务器领域取得了成功,在嵌入式领域,Linux同样获得了飞速发展。
嵌入式系统被定义为:以应用为中心、以计算机技术为基础、软件硬件可裁剪,适应于对功能、可靠性、成本、体积、功耗严格要求的专用
计算机系统。
嵌入式计算机在应用数量上远远超过了各种通用计算机,在制造工业、通讯、航空、航天、军事装备、消费类产品等方面均是嵌入式计算机的应用领域。
嵌入式系统有如下特征: (1) 嵌入式系统是面向用户、面向应用的,它和具体应用有机地结合在一起,具有较长的生命周期。
(2) 为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片或单片机本身中,而不一定是存贮于磁盘等载体中。
(3) 从节约存储空间角度考虑,
程序编写是高质量、高效率的,从而减少程序二进制
代码长度17。
采用Linux进行嵌入式系统开发具有以下优点: (1) 内核微小、功能强大、系统稳定。
一个功能完备的Linux内核要求大约1MB内存。
而Linux微内核只占其中很小一部分内存,包括虚拟内存和所有核心的操作系统功能在内,只需占用Pentium CPU系统的100K内存。
只要有500K的内存,一个有网络栈和基本实用程序的完全的Linux
系统就可以在一台8位总线(SX)的Inte1386微处理器上运行的很好了。
核心Linux操作系统本身的内核体系结构相当简单。
网络和文件系统以模块形式置于内核的上层。
驱动程序和其它部件可在运行时作为可加载模块编译添加到内核。
这为构造定制的可嵌入系统提供了高度模块化的构建方法。
因此它可以被定制为一个符合嵌入式市场需求的轻量级操作系统。
(2) 资源丰富、应用软件众多、开发方便。
嵌入式系统也常常要求通用的功能,这些功能的实现运用了许多现成的程序和驱动程序,它们可以用于公共外设和应用。
Linux可以在外设范围广泛的多数微处理器上运行,并早已经有了现成的应用库。
Linux还具备一整套工具链,容易自行建立嵌入式系1 5 统的开发环境和交叉运行环境,并且可以跨越嵌入式系统开发中仿真工具的障碍。
Linux海洋般丰富的自由资源是其具有无限吸引力的关键所在。
(3) 硬件支持广泛。
Linux具有广泛的硬件支持特性,无论是RISC还是CISC体系结构,32位或64位等各种处理器,Linux都能运行。
Linux最通常使用的微处理器是Intel x86芯片家族,但它同样能运行于Motorola公司的68K系列CPU和IBM、Apple、Motorola公司的PowerPC CPU以及Intel公司的Strong ARM CPU等处理器系统,这意味着嵌入式Linux将具有更广泛的应用前景。
当然,Linux的最大优点还在于它不是某个公司的私有财产,它是一个免费且源
代码公开的操作系统。
Linux在不断的发展中,越来越多的人加入了开发和应用的行列。
Linux现在有一个庞大的技术开发与支持群体,其中很多人都为它编写驱动程序和其它的更新程序,且免费通过Internet进行分发。
人们不必花钱就可以从Internet新闻组得到强大的Linux技术支持和帮助。
Linux遵循GPL(GNU General Public License)协议,只要不违反GPL协议的规定,就可以
免费获得、修改、分发Linux的拷贝。
这对于一般的开发者而言,是个极大的优势。
市面上其他一些商用嵌入式操作系统动辄数十万元(例如:VxWorks为24万元,Nucleus为18万元),这让普通的开发者不堪重负。
Linux同样有遵循GPL规定的C、C、Java等等一系列的软件工具开发包,从功能角度看,不亚于商用开发包,同时可以极大地降低开发成本。
这是其他商用操作系统无法比拟的18。
虽然Linux在更新硬件驱动的步伐上有些缓慢,但是目前,大量的硬件厂商开始提供驱动。
同时大量的硬件人员也开始为Linux书写一些驱动。
这样我们在驱动方面可以省下大量的时间与人力、物力19。
目前国内外已经有一些企业、院校和个人组织开展了基于Linux平台的数控系统的研究工作。
EMC2(Enhanced Machine Controller 2)是在美国NIST(National Institute of Standards and Technology)的领导下开发的一个
开源软件项目,使用RTLinux和RTAI作为实时操作系统平台。
EMC2系统包括G
代码解释器、人机界面、运动控制模块等部分,可以控制步进电机或伺服电机。
EMC2的GUI系统可以由用户自由选择,包括文本式的、基于X Window的、基于Tcl/Tk或
Java的等几种选择20。
上海交通大学提出了一种开放式数控系统——WLONCSWindows NT and Linux based Open Numerical Control System。
WLONCS把数控系统的功能实现抽象为一系列功能模块、把操作系统的任务实现表示为一组任务框架WLONCS的任务模块是可独立1 6 运行的实现某种控制功能的程序模块21。
清华大学基于RTLinux开发了开放式数控系统THHP-222。
华中科技大学提出了基于RTLinux或RTAI的多任务管理的基本结构和实现途径23。
另外,北京航空航天大学和华南理工大学也分别利用实时Linux开发了数控系统,实现了软硬件模型24 25。
1.4 本
论文的研究目的和意义 本文的研究目的是采用Linux操作系统作为电火花加工数控系统的操作系统
软件平台,研究基于Linux的新一代电火花加工数控系统的体系结构、系统构建、数控
代码解释器等关键技术。
该数控系统利用Linux下的工具开发其主要模块:使用搭载最新版本内核的嵌入式Linux系统作为开发系统平台;使用Qt工具开发电火花加工数控系统的人机界面;利用Lex和Yacc工具开发电火花加工数控
代码解释器;使用QCAD工具实现CAD绘图以及源
代码转换;使用串口通讯实现Linux系统与单片机和下位机的数据通讯等。
本文在各模块实现的过程中重点研究了Lex和Yacc工具的数控
代码解释器的实现方法,介绍了该工具在
代码解释中的特点和优势,并在多数控
代码解释器共存方面作了深入研究,
设计了多数控
代码解释器的共存方法,并将中间
代码进行软件插补计算,得到所有的坐标增量运动控制信号转换成串口信号传输给下位机,实现五相十拍步进电机电机的运动控制。
另外,作为验证实例,利用Qt工具软件开发了基于Linux的电火花线切割的人机界面,实现各模块的功能。
通过加工实验,验证了本课题
方案的可行性。
本文选择电火花加工机床数控系统作为研究对象,并针对往复走丝电火花线切割加工机床的数控系统进行了系统原型验证实验。
数控系统作为电火花加工机床的核心部件,是保证被加工的产品得到稳定的加工质量、提高加工的自动化程度和生产效率、缩短加工时间和生产周期的关键因素。
也是提高电火花机床市场竞争力的核心关键技术。
目前我国的电火花加工数控系统还有相当大的比例使用DOS作为操作系统,不能实现多任务、强大的网络支持、最新的外设支持等现代操作系统的性能,是一个已经被淘汰的过时系统。
而Windows系统的实时性、安全性不强,系统不开放等一系列不足,Linux系统可以进克服上述
问题,为数控系统提供了一个新的研究开发思路和平台选择。
本文将Linux操作系统应用到电火花加工数控系统中,使电火花加工技术向着开放式、网络化、高可靠性、低成本的方向发展。
同时为电火花加工机床的智能化应用提供了非常好的系统开发平台。
这对我国的电加工行业的发展是具有重要现实意义的。
由于1 7 Linux系统固有的性能优势,在开发过程中,本文将部分控制系统交由上位机软件实现,在嵌入式开发板上实现大部分控制功能,将平台设计成与硬件无关,也就是说该软件平台可以在各大厂商的硬件系统上搭载,实现开放式电火花加工数控系统的雏形。
另外,本文采用Lex和Yacc工具实现电火花加工数控系统的
代码解释器。
该系统将每一条数控加工程序段转换为插补系统可以识别的参数集,同时还要对
代码的正确性进行校验和纠错。
解释器的效率和正确性关系到整个数控系统的精确性。
当前的各大厂商的数控
代码解释器都运用高级语言独立开发,其主要问题在于开发周期较长,功能单一且不易于扩展,往往一种解释器只适用于一个型号的机床,源
代码维护起来也很不方便。
Lex和Yacc工具具有格式化的简易程序,能缩短开发者的开发周期,同时维护和扩展非常也很方便,相对于其他开发工具,该工具还具有免费的特点。
本文使用该工具实现多数控
代码解释器的共存,可以同时解释ISO和3B
代码,根据本文提出的设计方法,还可轻易扩展至其他类型的
代码。
另外,根据不同型号机床的
代码规范,只需对模板稍作修改,就能轻松地编写相应的解释器。
因此,该工具在
代码解释器中的应用非常实用有效,符合开放式数控系统的发展趋势。
1.5 本
论文的主要研究方向 本文主要工作是基于Linux操作系统构建电火花加工数控系统的软件平台,对其主要模块进行研究和设计,并对电火花加工数控系统
代码解释器进行了详细深入的研究,实现了基于Lex和Yacc的数控系统
代码解释器,完成了多数控
代码解释器的共存集成,实现软件插补功能,并将插补后的各运动轴增量控制信号传输给下位机实现零件的加工。
本文的总体内容有七章,具体的内容安排如下: 第一章:概述了电火花加工数控系统的研究现状,分析了数控系统
代码解释器的发展现状以及发展趋势,列举了现有数控系统开发平台的运用情况,指出DOS和Windows系统在现有电火花加工数控系统开发中所存在的缺陷和不足,强调了嵌入式Linux在电火花加工数控系统开.