(机械制造及其自动化专业论文)数控系统平台nc代码编译器的设计与开发.pdf_第1页
(机械制造及其自动化专业论文)数控系统平台nc代码编译器的设计与开发.pdf_第2页
(机械制造及其自动化专业论文)数控系统平台nc代码编译器的设计与开发.pdf_第3页
(机械制造及其自动化专业论文)数控系统平台nc代码编译器的设计与开发.pdf_第4页
(机械制造及其自动化专业论文)数控系统平台nc代码编译器的设计与开发.pdf_第5页
已阅读5页,还剩59页未读 继续免费阅读

(机械制造及其自动化专业论文)数控系统平台nc代码编译器的设计与开发.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 摘要 在数控( n c ) 加工过程中,对于复杂工件,如何保证其n c 程序的正确性,己成为一 个突出的问题。只有正确的、符合加工设备标准的n c 代码才能准确地反映操作人员的加工 意图;同时,数控系统不能直接执行n c 代码,需代码翻译模块将其转换成计算机易于处理 的数据信息,即数控指令的翻译。为此,本文针对上述问题,研究了数控代码编译器的技术 构成,开发出了一个基于m p c 0 3 运动控制卡+ p c 硬件环境的n c 代码编译系统。 ( 1 ) 本文对n c 代码编译器的发展和应用进行了深入调研,并对其国内外研究现状及存 在问题进行了分析和讨论。针对该研究领域存在问题和实际情况,提出了基于面向对象思想 的n c 代码编译器设计方法的解决方案。 ( 2 ) 从n c 代码结构和格式入手,进行深入分析,整理出n c 程序中常见错误类型,并对 每种错误原因进行清楚界定。研究了编译技术,针对n c 代码的特点,对n c 代码进行了文 法描述,并设计了n c 代码编译器的总体结构。 ( 3 ) 研究了l e x & y a c c 正则表达式在n c 代码编译器中的应用。将编译技术引入n c 代码 分析处理过程中,把n c 代码编译过程分为词法分析、语法分析以及目标代码生成和错误处 理几个阶段。以m p c 0 3 运动控制卡+ p c 为硬件依托,以w m d o w sx ps p 2 系统为开发平台, 以v c 卜 6 0 与p a r s e rg e n e t o r2 0 为开发工具,应用正规文法和l a l 埘1 ) 方法对n c 程序进 行词法、语法分析,利用专用编译工具l e x & y a c c 开发出n c 代码编译模块,保证了词法、 语法分析的全面性和准确性,为运动控制模块和图形仿真模块提供了数据接口。 ( 4 ) 开发了软件系统中的图形代码转换模块。此模块允许用户在a u t o c a d 中绘制d x f 格式的实体图形,然后将此图形导入本数控系统中,调用图形代码转换模块生走刀路径代码, 并对实体数据进行排序,去除冗余加工信息。 本文设计的n c 代码编译器,可以快速、准确地检查出n c 程序中的词法和语法错误; 并能对以文本文件格式保存的n c 代码进行读取和识别,从而得到刀具运动轨迹的坐标值和 其他有关信息。同时图形代码转换功能也可大幅度提高数控加工的效率,减少使用者繁重的 手动编程工作。 关键词代码编译;数控;n c 代码;自动编程 a b s t r a c t i i_ _ i ! - _ _ ! _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 一 a bs t r a c t i nt h ep r o c e s so f n c p r o d u c i n g ,f o rc o m p l e xw o r k p i e c e ,h o wt oe n s u r et h ec o r r e c t n e s so f n c p r o g r a mh a sb e c 锄eap r o m i n e n ti s s u e t h ei n t e n t i o no fo p e r a t o rc a l lb er e f l e c to n l yb yt h en c c o d ew h i c hi sc o r r e c ta n dm e e tt h es t a n d a r do fd e v i c e ;m e a n w h i l e , n cs y s t e mc a n n o tc a r r yo u t n cc o d ed i r e c t l y , t h en cc o d es h o u l db et r a n s l a t e db yt h et r a n s l a t i o nm o d u l ei n t ot h ed a t aw h i c h c a nb ea c c e p t e db yt h eh a r d w a r e ( 1 ) t h ea u t h o rr e s e a r c h e st h ed e v e l o p m e n ta n da p p l i c a t i o no fn cc o d ec o m p i l e r , a n d a n a l y s e sa n dd i s c u s s e si t ss t a t u sa n dp r o b l e m si nh o m ea n da b r o a d b a s e do nt h ec h a r a c t e r so ft h a t , t h i sa r t i c l ep r o v i d e st h ea c t u a ls i t u a t i o na n dp r o b l e m si n t h i sf i e l d t h eo b j e c to r i e n t e dd e s i g n m e t h o do fg e n e r a lc o m p i l e ri ss u m m a r i z e d ( 2 ) o nt h eb a s i so fa ni n - d e p t ha n a l y z i n gs t r u c t u r ea n df o r m a to f n cc o d e , s o r t i n go u ti nt h e c o m m o nt y p eo fe r r o r so ft h en cc o d ea n dd e f i n i n gt h ec a u s eo fe a c he r r o rc l e a r l y t h e d i s s e r t a t i o ng i v e st h en cc o d ed e s c r i p t i o na i m st ot h ec h a r a c t e r i s t i c so fi t ,a n da l s od e s i g nt h e s t m o t u r eo f n cc o d ec o m p i l em o d u l eo ft h eo p e nn cs y s t e m ( 3 ) r e s e a r c ht h er e g u l a re x p r e s s i o no fl e x & y a c cw h i c hi sa p p l i c a t e di nt h en cc o d e c o m p i l e r i n t r o d u c i n gt h ec o m p i l e rt e c h n o l o g yt ot h en cc o d ea n a l y s i sp r o c e s s ,t h en cc o d e c o m p i l i n gp r o c e s si sd i v i d e di n t ol e x i c a la n a l y s i s ,g r a m m a ra n a l y s i s ,o 场e c tc o d eg e n e r a t i o na n d e r r o rh a n d l i n gs t a g e s t h i sm o d u l es u p p l yt h ei n t c r f a c , eo f d a t a ( 4 ) d e v e l o p st h eg r a p h i cc o n v e r s i o nm o d u l e t h i sm o d u l ea l l o w su s o r st od r a wt h e w o r k p i e c ei na u t o c a da n ds a v et h eg r a p h i c s 鹊d x f f o r m a tg r a p h i c se n t i t i e s ,a n dt h e ni m p o r tt h i s g r a p h i ci n t ot h en cs y s t e m , c a l l e dt h eg r a p h i cc o n v e r s i o nm o d u l eg e n e r a t e dn cc o d e ,a n d o p t i m i z et h et o o lp a t h t h ed e s i g no ft h en cc o d ec o m p i l e r , w h i c hi sm e n t i o n e di nt h i sp a p e r , c a nc h e c kt h en c p r o g r a mq u i c k l ya n da c c u r a t e l yi nt h el e x i c a la n dg r a m m a t i c a lm i s t a k e s ,a n dr e a da n di n d e n t i f y t h en cc o d ew h i c hi ss a v e di nt x tf o r m a t ,t h e r e b y 托= c e i v et o o lt r a j e c t o r ya n dt h ec o o r d i n a t e s o t h e rr e l e v a n ti n f o r m a t i o n a tt h es a m et i m eg r a p h i cc o n v e r s i o nf u n c t i o nc a na l s os u b s t a n t i a l l y i m p r o v et h ee f f i c i e n c yo f n c k e y w o r d sc o m p i l ec o d e ;n c ;n cc x x l e ;a u t o m a t i cp r o g r a m m i n g 独创性声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究成果。尽 我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的 研究成果,也不包含为获得北京工业大学或其它教育机构的学位或证书而使用过的材料。与 我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。 躲越眺划 关于论文使用授权的说明 本人完全了解北京工业大学有关保留、使用学位论文的规定,即:学校有权保留送交 论文的复印件,允许论文被查阅和借阅;学校可以公布论文的全部或部分内容,可以采用影 印、缩印或其他复制手段保存论文。 ( 保密的论文在解密后应遵守此规定) 躲触导师签名越奎魄盟刁 第1 章绪论 1 1课题背景 第1 章绪论 数字控制( n u m e r i c a lc o n t r 0 1 n c ) 简称数控,是用数字信号对机床运动及 加工过程进行控制的一种方法。国际信息处理联盟( i n t e r n a t i o n a lf e d e r a t i o no f i n f o r m a t i o np r o c e s s i n g - i f i p ) 第五技术委员会对n c 机床作了如下定义:n c 机床 是一个装有程序控制系统的机床【l 】。其中提及的程序控制系统即为数控系统,它 可以自动阅读输入载体上已经给定的数字量,并将其译码,从而驱动机床动作。 数控机床自2 0 世纪4 0 年代末数字计算机诞生至今,历经半个多世纪的发展和应 用,数控机床的拥有量及其年产量已经成为一个国家制造能力的重要标志。 n c 机床最初是在美国发展起来的 2 1 。1 9 4 7 年美国密执安州特拉弗斯城帕森 公司为精确制造直升飞机叶片,构想了用电子管来控制坐标锉床的方案。1 9 4 9 年美国空军后勤司令部为在短时间内制造出设计方案经常变更的火箭零件,与帕 森公司及麻省理工学院( m r r ) 伺服机构研究所合作,于1 9 5 2 年研制成功了世 界上第一台n c 机床一三坐标立式铣床,其n c 系统采用了电子管。1 9 5 9 年3 月,克耐杜列克公司开发了称为“m i 埘队u k e e - m a t i c 一的加工中心。它是 一种具有自动换刀装置的n c 机床,在其刀具库中装有丝锥、钻头、铰刀及铣刀 等刀具,可根据穿孔指令自动选择刀具,能实现一次装卡即可进行多工序加工。 从1 9 6 0 年开始,其他一些工业国家,如英国、德国、日本都陆续开发、生产及 使用n c 机床。1 9 6 7 年,英国首先把几台n c 机床连接成具有柔性的加工系统, 这就是最初的柔性制造系统( f m s ) 。之后,美、日本及欧洲一些国家也相继进 行了开发和应用。1 9 7 4 年微处理器直接用于n c 机床,进一步促进了n c 机床的 普及应用和飞速发展。8 0 年代初,国际上又出现了以l ( 或2 3 ) 台加工中心为 主体,再配上工件自动装卸和监控检验装置的柔性制造单元( f m c ) 。这种单元 投资少、见效快,既可单独长时间少人看管运行,也可集成到f m s 或更高级的 集成制造系统中使用,因此发展很快。据1 9 8 5 年统计,美国、日本和西欧就有 f m c 约2 1 0 0 套。当前,f m s 正从切削加工向板件冷却、焊接、装配等领域扩展, 从大批量向中小批量,乃至单件生产发展。1 9 8 5 年初,据欧洲经济委员会不完 全统计,全世界已有3 3 9 3 4 9 套f m s 和f m c 和f m s 被认为是实现计算机集成 制造( c i m s ) 的必经阶段和基础。 北京工业大学丁学硕七学位论文 1 2 编译原理概述 编译源于高级程序语言。其作用在于把用高级程序设计语言书写的源程序, 翻译成等价的计算机汇编语言或机器语言的目标程序的翻译程序【7 l 。但是,作为一 个具有实际应用价值的编译系统,除了基本功能之外,还应具备语法检查、调试 措施、修改手段、覆盖处理、目标程序优化、不同语言合用以及人一机联系等重 要功能。 编译过程依据源程序在不同阶段所被转换成的表示形式可分为词法分析、语 法分析、语义分析、中间代码生成、代码优化和目标代码生成6 个阶段。 为了便于构造或分析一个编译程序,可将一个编译程序分为八个逻辑部分: 词法分析、语法分析、语义分析、中间代码生成、代码优化、目标代码生成、信 息表管理、出错处理。 其逻辑结构如图1 1 所示。 图1 - 1 编译程序逻辑结构 f i g 1 ll o g i c a ls t r u c t u r eo f c o m p i l i n gp r o g r a m 编译程序的工作过程如下: 调用词法分析程序将高级语言源程序转换成单词符号表示的程序。即将字符 串程序转换成单词符号串源程序; 调用语法分析程序对单词符号串源程序进行语法归类检查; 调用语义分析程序进行语义检查; 调用中间代码生成程序,生成中间的代码程序; 第1 章绪论 调用代码优化程序对中间代码进行优化; 调用目标生成程序将优化后的中间代码程序转换成目标代码程序。 在编译程序的各个阶段,都要涉及到符号表管理和错误处理。编译程序在整 个过程中需要建立一些表格,以登记源程序中所提供的或在编译过程中产生的信 息,在随后的编译过程中同时又要不断地查找这些表格中的信息,因此需要一个 表格管理程序。规模较大的源程序难免有多种错误,编译程序必须要有错误处理 功能,即能侦察错误,并能及时报告给用户错误的性质和位置,以便用户修改源 程序。错误处理能力的优劣是衡量编译程序质量好坏的一个重要指标。 1 3 课题的提出 1 3 1 数控编程简介 在n c 机床上加工零件前,首先要将零件的工艺过程、工艺参数、刀具位移 量与方向以及其它辅助动作( 换刀、冷却、夹紧等) ,按运动顺序和所用n c 机 床规定的指令代码及程序格式编制成一定的表格( 这种表格称为“零件加工程序 单 ,或简称“程序单 ) ,再将程序单中的全部内容记录在控制介质( 如穿孔纸 带、磁带等) 上,然后输送给n c 系统,从而驱动n c 机床运动,进行零件加工。 从分析零件图样到制成n c 机床所需控制介质的整个过程称为n c 程序编制。由 于n c 机床直接受n c 程序驱动,因此,n c 程序的编制效率与质量直接影响n c 机床的加工效率。目前,常用n c 编程方法有以下几种【8 】: ( 1 ) 手工编程 即编制零件n c 加工程序的各个步骤,从零件图样分析、工艺 处理、确定加工路线和工艺参数、几何计算、编写加工程序直至程序检验,均由 人工来完成,它是最早采用的n c 编程方法。 ( 2 ) a p t 语言自动编程为解决n c 加工中程序编制效率及准确度问题,5 0 年代,m r r 设计了一种专门用于机械零件n c 加工程序编制的语言,称为a p t ( a u t o m a t i c a l l yp r o g r a m m e dt 0 0 1 ) 。其后,a p t 几经发展,形成了诸如a p t i i , a p t i i i ( 立体切削用) 、a p t i v ( 算法改进,增加多坐标曲面加工编程功能) 、 a p t - a c ( a d v a n c 烈ic o n t o u r i n g ) 及a p t - i s s ( s c u l p t u r c ds u r f a c e ) 等更新版本。采用 a p t 语言编制n c 程序具有程序简炼、走刀控制灵活等优点,使n c 加工编程从 面向机床指令的“汇编语言 级,走向模拟式“高级语一言 级,提高了编程效 率。但a p t 仍有许多不足之处,如:采用语言定义零件形状的方法,难以描述 复杂几何形体,缺乏几何直观性;缺少对零件形状、刀具运动轨迹的直观图形显 示和刀具轨迹的验证手段:难以和c a d 系统及c a p p 系统有效连接;难以实现 集成化。 北京_ t 业大学工学硕十学位论文 ( 3 ) c a d c a m 集成系统n c 编程针对a p t 语言的缺点,1 9 7 8 年,法国达 索飞机公司开始开发集三维设计、分析及n c 加工于一体c a t i a 。随后很快出现 了诸如u g i i ,p r o e n g i n e e r i n g ,m a s t e r c a m 等系统,这些系统都能进行图象式 n c 编程。其主要特点是零件几何形状可在设计阶段采用c a d c a m 集成系统的 几何设计模块在图形交互方式下进行定义、显示和修改。n c 编程的一般过程包 括刀具定义或选择、刀具相对于零件表面运动方式定义、切削加工参数的确定及 走刀轨迹生成等,这些内容都可通过屏幕菜单或命令驱动等图形交互方式完成。 1 3 2n c 代码编译技术现状 最早采用的n c 代码错误检查方法为人工检查法,即通过检查者阅读加工程 序、或借助坐标纸及其它一些绘图工具来检查加工时的刀具轨迹,从而发现其中 的错误,其优点是比较方便、灵活,但不适用于大而复杂的程序,且易再次出现 错误,目前已经不适应现实需要。 为提高n c 代码编译效率,采用高级语言式编译技术开发n c 编译系统是未 来n c 系统编译技术发展方向。国内外对此都作了许多研究工作。 1 3 2 1 国外研究现状 目前,n c 代码解释器在国外已有不少成型的产品,并 已投入应用剀。 日本a i k o k ua l p h a 公司的s u p e rv e r i f y 是一款功能强大的n c 代码编译和检 验软件,它不仅能验证n c 代码的正确性,并可进行代码优化、缩短加工时间。其 适用范围广,包括车削、铣削、车铣等从两轴到五轴联动的多种加工形式,集成 了大多数知名的数控系统。 美国的s i r i u ss y s t e mc o r p 在c n c 仿真校验技术上成果卓著,它开发的 v i t u r a lc o n t r o l l e r 是一个功能强大的通用反后处理器,可模拟c n c 的加工周期。 将特定机床的g 代码、m 代码等指令翻译成通用的a p t - c l 文件或其它用户需要的 数据格式,进行n c 代码检验及优化,并可进行3 到5 轴铣削、2 到4 轴车削、车铣 和线切割加工仿真。在仿真过程中,可精确解释和描述n c 代码的每个指令和功 能,准确再现加工过程。v i t u r a lc o n t r o l l e r i q 置1 0 0 多个c n c 控制系统,用户可根 据预先配置的c n c 数控系统来进行n c 代码校验、仿真或转化,还可根据自身需 要对其进行定制。 美i $ 1 n c c s ( n u m e r i c a lc o n t r o lc o m p u t e rs c i e n c e s ) 公司现为美国西海岸最大 的n c 服务中心,其开发的多轴加工软件p o s t w o r k s 是一个通用后处理软件,其范 围可覆盖从两轴到十轴的车、铣、线切割等加工,它可对n c 代码进行词法、语 法检查,进行加工过程全景仿真,并支持不同格式n c 代码之间的转换i 俄罗斯4 c k 系统的编译模块采用自顶向下的编译方式进行开发,以c 语言 第1 章绪论 为开发语言,将匹配到的字符压入符号表进行语法校验。 1 3 2 2 国内研究现状目前我国也在该领域进行不断尝试,并己取得一定的 效果。 由清华大学清华大学国家c i m s t 程技术研究中心开发的n c 代码翻译器可 完成对n c 代码的检错和翻译工作,该n c 代码翻译器的检错过程可按照特定数控 系统的编程规定和有关数控加工常识,对n c 代码进行词法分析、语法分析和语 义分析,从而检查出该n c 代码的词法错误、语法错误或逻辑错误【l o 】。 华中理工大学开发的n c 程序检验仿真系统n c c p v s s ,能实现对n c 程序编制 过程中出现的错误进行离线检验,可提高n c 设备的调试手段和效率【l 。 大连铁道学院成功开发- j n c c o m p i l e r l 0 ,该系统在编译效果方面较传统数 控编译系统有显著的提高,可准确高效的检查n c 程序中的错误,并可辅助进行 错误修改工作。该系统利用“分层递进一树形数据处理模式有效的避免了数据冗 余,确保数据存取的有序性和高效性,并解决了不同n c 系统之间的n c 代码格式 转换问题,节省了编程时间,提高了编程效率【1 2 1 。 此外,西南交通大学、华侨大学、合肥工业大学、西北工业大学等院校也对 n c 代码的编译进行了一定程度的研究。 1 3 3 课题的来源 本文所述n c 程序编译器为数控系统软件部分的模块之一。该数控系统的硬 件平台核心部分主要由通用p c + m p c 0 3 f a 运动控制卡构成。数控系统在硬件平 台搭建完毕的基础上,需要有相应的数控系统软件来执行用户的命令。因为系统 无法直接执行n c 代码,需要将它转换为计算机易于处理的数据信息,在n c 代 码的转换过程当中,又包括了n c 代码检错、n c 代码翻译等过程、各模块间的 数据同步等。 1 4 课题主要研究工作 1 4 1 课题的研究意义 n c 程序中不可避免的存在一些可能的错误,例如词法错误、语法错误、机 械参数错误、刀具和工件发生碰撞等。早在手工编程阶段,人们就很重视数控程 序的正确性,并试图寻找一种能检查程序准确的方法,尤其在实现了自动编程以 后,数控程序变得更加复杂,这就需要就显得更加迫切,人们自然有选择了计算 机强大的处理能力,利用计算机进行数控程序检查和仿真。 在实际的科研和工作中,n c 代码编译器主要有这两个用途: 北京工业大学丁学硕十学位论文 第一,用在p c 机做上位机驱动控制卡的数控c n c 中。其中的n c 代码的 解释及实现,都要由n c 代码编译模块来处理转化为实际的加工代码来驱动控制 卡,进而控制机床运动。 第二,用在虚拟系统的数控仿真加工中。在数控仿真加工中,刀具在三维图 象模块中的仿真运动是由实际机械刀具使用的n c 程序代码来控制的。n c 代码 编译器用来检查n c 程序,并且根据这些程序计算生成驱动虚拟刀具运动的命令 代码。如果n c 程序源代码发现错误,n c 代码编译模块可以将相关的错误信息 反馈到n c 源代码生成模块中,以便于做相应的修改。 本文研究的n c 代码编译器软件,可以验证数控加工程序的准确性,避免了 人工进行繁琐枯燥的n c 代码错误检查,从而减轻了编程人员的工作强度,提高 了编程效率。同时可以生成虚拟加工代码,这样n c 代码编译器就可以成为n c 源代码生成模块( 例如使用c a m 软件) 和仿真加工控制模块之间的枢纽。 1 4 2 课题的研究内容 本文研究开发的通用n c 代码编译器,把高级程序语言编译技术引入到n c 程序调试及代码转换中,丰富了n c 代码编译的概念,并提出了系统定制的方法, 从理论上建立了一个新的n c 代码编译模式,该模式可突破传统n c 代码编译的 缺陷,并显著提高n c 代码编译效率。 第一,以主流数控系统为模拟对象,对其数控机床的操作面板进行模拟,以 交互方式进行参数的设置以及加工条件的设定。 第二,从n c 代码结构和格式入手,进行深入分析,整理出n c 程序中常见 错误类型,并对每种错误原因进行清楚界定。研究了编译技术,针对n c 代码的 特点,对n c 代码进行了文法描述,并设计了n c 代码编译器的总体结构。具体 来说,可将其划分为如下三个阶段: 词法分析首先根据机床n c 系统指令库,构造指令字符集和指令格式集,然 后扫描整个n c 程序,依次取出其中每个字符,检查其是否属于指令字符集以及 其格式是否正确。该过程实现起来较简单。 语法分析首先提取n c 代码语法规则,然后应用语法规则检验由词法分析返 回的单词,如正确则继续进行,否则进行出错处理。和词法分析相比,语法分析 则要复杂得多。 出错处理对词法和语法分析遇到的错误,给出在源程序中出错位置和错误性 质。 第三,以信息流的方式实现模块间的同步,即运动控制和逻辑控制的协调和 同步进行以及控制任务和管理任务的同步进行。将代码翻译成目标代码,以链表 第1 章绪论 = 竺= 竺= 皇! 詈鼍詈詈詈! ! 詈暑巴! 苎苎! ! ! ! ! ! = ! ! 詈! ! ! 苎苎i i i i 暑i 为存储结构对数据进行存取。 第四,设计实现图形代码转换模块,能导入d x f 格式文件,根据该文件生成 加工代码,并对实体信息进行排序,使刀具以最短的路径完成加工。 北京t 业大学t 学硕十学位论文 第2 章编译器的总体设计 2 1系统需求分析与功能描述 2 1 1系统需求分析 本编译器最终应用于基于m p c 0 3 f a 运动控制卡与p c 机搭建的数控系统硬 件平台,以数控代码控制数控平台的运动。 2 1 1 1 数控系统上位机软件部分本数控系统的p c 端的上位机软件以 w i n d o w s x p 操作系统作为开发环境,v c + + 6 0 为主要开发工具,采用面向对象 技术和模块化的思想进行开发。上位机软件分为管理模块和控制模块【1 3 】。管理模 块包括人机界面、输入输出、故障诊断和状态显示等逻辑控制,控制模块负责g 代码的编译、刀补以及插补的运算等运动控制。整个数控软件平台的结构如图 2 1 所示。 。控制程序 吲圈国引 图2 - i 软件平台结构 f i g 2 1s t r u c t u r eo f s o t a r ep l a t f o r m 本文所论述的为人机界面、程序编译以及图形代码转换模块的开发。其中, 数控程序编译器是整个数控平台软件部分的核心部分1 1 4 1 。错误的n c 程序输入到 n c 机床会导致数控平台产生运动错误或者无法驱动数控平台运动,需要花费大 量的时间进行调试,从而使得生产效率低下以及劳动强度增大f 1 5 1 。如事先经过编 译可确保代码的正确性,不仅可减少系统的占用时间,提高生产率,而且可以降 低操作人员的劳动强度。所以在数控机床执行n c 程序以前要对n c 程序进行检 第2 章编译器的总体设计 错和编译。对于形状、工艺比较复杂的零件,其n c 程序较长,易出错,且难以 进行人工检查。较为方便的做法是在数控程序编制完成后,能通过编译系统检查 其正确性。 因此,当本数控平台的软件系统打开所要执行的n c 程序之后,会调用逻辑 控制部分的编译模块对程序进行检错和译码,即首先检查n c 程序的正确性,使 错误得到及时的更正,保证加工的精度和效率,然后将正确的n c 代码转换成硬 件平台所能够识别的目标代码,控制硬件平台的运动,最终实现整个数控平台按 照要求运转。 2 1 1 2 硬件系统平台介绍本系统硬件构成的核心为p c 机和运动控制卡。 以p c 机和运动控制卡为基础构建数控系统的硬件平台具有经济、方便、快捷等 特点,因为p c 机批量生产,价格便宜,速度性能好,而且升级换代快,可以满 足作为数控系统核心部件的要求,选择p c 机可以获得高标准的硬件结构配置和 优异的性价比;而运动控制卡也是标准化模块化产品,我们只需根据具体的需求, 选配合适的p c 机、运动控制卡、执行部件及辅助单元,然后进行相应的连接, 即可建立数控系统的硬件平台。硬件平台结构如图2 - 2 所示。 图2 - 2 硬件平台结构 f i g 2 - 2s 扛u c t t t r eo f h a r d w a r ep l a t f o r m 本平台所选用的运动控制卡为m p c 0 3 f a 型运动控制卡,这是一款4 轴步迸 电机或数字伺服电机的上位控制器,每轴可输出脉冲和方向信号,用以控制电机 的运转。m p c 0 3 f a 运动控制卡内部采用d s p 芯片处理,具有梯形和s 形升降曲 线,最高输出频率可达7 5 m h z ,并带有编码器反馈接口,另外每卡提供1 6 路输 入和1 6 路输出通用i o 接口,所有的输入输出信号均采用光电隔离,大大提高 北京工业大学t 学硕十学位论文 了运动控制卡的可靠性和抗干扰能力【l 刚。 m p c 0 3 f a 运动控制卡通过p c i 插槽内嵌到p c 机中,该运动控制卡在硬件 方面采用d s p 构成独立的子系统结构,其专用c p u 与p c 机的c p u 构成主从式 双c p u 控制模式。p c 机主要负责人机界面和发送指令等系统管理工作,运动控 制卡上专用c p u 负责处理运动控制的细节,例如升降速计算、行程控制、多轴 插补等,而且不占用p c 机资源,从而提高了系统的稳定性和高效性【1 7 】。图2 2 中所示的执行部件选择了步进电机有限公司生产的d m 5 6 7 6 型步进电机,驱动器 型号为d m d 4 0 2 ,并为每个电机配置了增量式光电编码器,型号为 c h a 1 1 0 0 b m g ,用来获取反馈值,监控执行部件的执行动作。 2 1 2 系统功能描述 综上所述,本编译系统应当具有如下特点: ( 1 ) 强大的词法、语法检错功能高效、全面的查找当前数控程序打开的n c 程序中的词法、语法错误,并能够准确的定位错误位置,方便用户对程序进行修 正。 ( 2 ) 高效的译码功能快速、准确的将文本格式的n c 代码转换成硬件平台能 够识别的形式,控制硬件平台的运动执行部件按照用户的要求运动。 ( 3 ) 模块问数据的传输整个数控平台软件系统分为若干模块,各个模块需 要协调和同步运行,包括数据的传输与命令流的传递。 ( 4 ) 完善的交互界面人机交互界面友好,操作方便,运行稳定。 作为一个软件系统,除了需要具有以上功能外,根据数控加工过程的需求以 及现有的数控系统的研究成果,还须具备以下特性: ( 1 ) 可移植性系统接口简单,对硬件的依赖性小,既可以作为一个单独的 系统使用,也可以方便的嵌入到其它系统中,作为一个模块被整个数控系统调用。 ( 2 ) 扩展性整个数控系统采用模块化结构设计,便于维护和修改,并可根 据实际需要方便的进行扩充。 2 2 数控程序格式分析 2 2 。1 数控程序的概念 数控机床是一种高效的自动化加工设备,它严格按照加工程序,自动的对被 加工工件进行加工。我们把从数控系统外部输入的直接用于加工的程序称为数控 加工程序,简称为数控程序,它是机床数控系统的应用软件。 第2 章编译器的总体设计 i i n c 机床常用代码有i s o 代码和e i a 代码两种【l 引。编写程序时,要了解n c 系统能够接受那种格式的数控代码信息,才能够正确的控制n c 系统执行要求的 动作。大多数数控机床对两种格式的代码均可兼容。 ( 1 ) i s o 代码( i s or 8 4 0 ) i s o 标准的数控代码主要应用于计算机和数据通 信,1 9 6 5 年以后才开始在n c 系统中使用。其特点是表示字符的孔数目必须是 偶数。为保证纸带宽度方向上的孔的数目是偶数,第8 孔道用来补偶,故常称第 8 孔道为偶数校验孔。 ( 2 ) e i a 代码( e i ar 2 4 4 - a ) e i a 码是美国电子工业协会制定的n c 系统上 常用的一种代码,其主要特点是表示字符的孔数目必须是奇数。其第5 孔道用来 补奇,故也称奇数校验孔。 n c 程序可分为主程序和子程序。通常,n c 机床依照程序指令动作。当程 序段中有调用子程序的指令时,n c 机床就按子程序动作,读到返回到主程序指 令时,机床继续按主程序指令动作。程序一般由程序开始标志、程序体、注释和 程序结束标志等四部分组成。程序开始部分通常包括程序号和程序开始标志,依 据系统不同而有所差别;程序体由多个程序段组成;注释不驱动机床工作,仅协 助操作者读懂程序;程序结束部分由程序结束符构成,机床读到此标志就停止加 工。 程序段由多个程序字组成,而地址字通常由地址符、数字及符号组成。例如: n 0 1g 0 1x 5 0 0 y 4 5 0z 6 4 2f 1 0 0 ;例中 1 4 0 1 ,g 0 1 竹,竹x 5 0 0 ”, y 4 5 0 什, z 6 4 0 ,竹f1 0 0 及”:均为程序字。其中n ,g ,x ,y ,z ,f 分别为相应程序 字中的地址符,其中n 表示程序段号,g 表示准备功能,x ,y ,z 表示坐标地 址,f 表示进给功能,什;”为符号,表示程序段结束。 根据本数控平台的要求以及构建数控平台的硬件特性,总结了适合本数控平 台的数控程序字如下: ( 1 ) 准备功能( g 代码)用来指定机床动作,由地址符g 及两位数字构成, 如g 0 0 表示快速定位。我国j b 3 2 0 8 8 3 规定了从g 0 0 到g 9 9 共1 0 0 个g 代码, 其主要特点如下所示: 根据功能不同,将g 代码分为1 9 个组,同一程序段中可指定多个不同组的 g 代码。若在同一程序段中指定多个同组g 代码,则只有最后g 代码有效。 g 代码有模态和非模态之分,只有第o o 组g 代码为非模态,其他组均为模 态代码。模态g 代码在同组g 代码出现以前一直有效。 ( 2 ) 辅助功能( m 代码)用来指定机床辅助功能及状态,由地址字m 和两 位数字组成。j b 3 2 0 8 8 3 规定辅助功能从m 0 0 到m 9 9 共1 0 0 个。 ( 3 ) 主轴功能( s 代码) 用来指定机床主轴转速,由地址字s 及四位数字组 成。在n c 程序中,指定主轴转速后,还应当使用辅助功能指定主轴的旋转方向, 北京工业大学t 学硕士学位论文 m 0 3 表示正转,m 0 4 表示反转。 ( 4 ) 进给功能( f 代码)用来指定坐标轴的进给速度,用地址字f 及四位数 字组成,在快速进给功能g 0 0 后不应有f 代码。 ( 5 ) 尺寸字尺寸字一般按如下顺序排列:x ,y ,z ,u ,v ,w ,p ,q ,i , j ,k ,a ,b ,c ,d ,e ,r 。在本数控系统软件部分的编写中,暂时只对尺寸 字x ,y ,z ,i ,j ,k 进行判定,其他尺寸字留待今后扩展。 2 2 2 数控程序的错误分析 n c 程序格式,亦称规则,在一个n c 程序中,如果某些指令和其中一条规 则不匹配,就会产生错误。n c 程序可能产生的错误主要为词法错误和语法错误。 ( 1 ) 词法错误n c 程序中出现了机床不能识别的命令。其中包含两种情况: 地址符错误。n c 程序中出现了n c 系统中没有定义的地址符。以本系统为 例:u ,v ,w 为留待日后扩展用的尺寸字,在系统中尚未定义,而如果在程序 中出现u ,v ,w 中任一地址符,则视为地址符错误。 程序字格式不正确。组成程序字的地址符正确,但是其后的数字或符号格式 不正确。 ( 2 ) 语法错误某些程序字格式虽然正确,但在程序段或程序的结构中不符 合n c 系统文法规则。 2 3 系统总体框架 2 3 1 数控程序的错误分析 n c 代码编译模块的功能是针对特定系统,对调入的n c 代码进行词法、语 法分析,更正其中的错误,并根据用户要求,按照n c 代码驱动硬件平台运动, 该模块又可分为四个子模块:词法分析、语法分析、出错处理和代码转换。本模 块编译过程采用一趟扫描方式,以语法分析程序为核心,词法分析程序、代码转 换程序都作为一个独立的处理过程,当语法分析需要读单词时就调用词法分析程 序,而当语法分析正确需生成相应的目标代码时,则调用代码转换程序。出错处 理程序对词法和语法分析遇到的错误给出出错位置和错误性质。 ( 1 ) 词法分析其功能是将n c 程序转换成计算机能够识别的标识,并检查 n c 指令中是否使用了非法指令字,以构造语法分析及代码转换的输入流。本系 统针对n c 程序特点,采用正规式描述词法规则,利用专用编译工具l e x 自动 生成词法分析程序。即提取n c 代码中各指令的词法规则,构建其正规式形式, 第2 章编译器的总体设计 并针对各个指令编写该指令被执行时所采取的语义动作,形成词法规范文件( l e x 源程序) ,然后自动生成符合c 语言语法的词法分析程序。 正规式亦称正则表达式,由正文字符与正规式运算符组成,正文字符组成基 本正规式,表示某一个符号串;正规式运算符则将基本正规式组合成复杂正规式, 表示字符串集合。正规式构建简单,可与正规文法相互转换,适应大多数程序设 计语言词法规则需要,并可利用l e x 自动生成词法分析程序,是一种便捷的词 法分析方法。 ( 2 ) 语法分析编译程序的核心部分,其作用是识别由词法分析给出的单词 序列是否符合给定文法。和词法分析相比,语法分析复杂得多,用通常手段难以 全面地检测出所有语法错误。本系统采用l r 分析,利用专用编译工具y a c c 自 动构造了一个l a l r ( 1 ) 语法分析器。具体来说,对n c 程序结构进行分析,提取 其语法规则,并构造符合该语法规则时执行的动作,形成语法规范文件( y a c c 源程序) ,然后自动生成符合c 语言语法的语法分析程序。 l r 分析法是自底向上语法分析的一种形式,即从左至右扫描和自底向上进 行语法分析,且在分析的每一步,只需根据分析栈当前己移进和归约出的全部文 法符号,并至多再向前查看k 个输入符号,就能确定相对于某一产生式左部符 号的句柄是否己在分析栈的顶部形成,从而便可确定当前所应采取的分析动作 ( 是移进还是按某一产生式进行归约等) 。根据k 值不同,可形成相应l r ( k ) 分 析器。l a l r ( 1 ) 语法分析器即向前l r 分析器,它通过构造l r ( 0 ) 项目集并添加 相应的向前搜索符号而形成。l a l r ( 1 ) 分析器功能强大,实现起来不太复杂,且 有自动生成工具( 如y a c c 和o c c s 等) ,是一种实用的语法分析方法。 ( 3 ) 出错处理对于一个n c 程序,往往会出现多个错误,就词法、语法分析 而言,在编译过程中遇到错误时,并不希望就此停止工作,而希望记录错误位置 及错误类型,并继续进行编译工作,直到程序编译完成后再打印所有错误信息, 以便进行错误处理。本系统错误处理实现也是遵循了这条原则。另外,对一种错 误进行更正时,有多种更正方法都可避免再次出现词法或语法错误,但其执行意 义却有很大差别,修改不当会造成实际加工错误。因此,本系统错误处理方面只 提供错误信息打印和错误位置回溯等功能,而把对错误更正工作留给用户根据实 际情况自行完成。 2 3 2 总体框架分析 整个数控平台的编译部分主要由检错模块和译码模块两部分构成。两部分各 自功能独立,又相互联系。其总体结构如图2 - 3 所示。 北京_ 丁业大学丁学硕十学位论文 图2 - 3 系统流程图 f i g 2 - 3f l o wc h a l to fs y s t e mr e a l i z a t i o n ( 1 ) 词法分析词法分析任务是对数控程序段进行初级错误检查。主要有包 括程序以数字或非法字符开头、负号前面出现了非坐标功能字、负号后边出现了 非数字、小数点前面出现数字、字母后边缺少必要的数据等。 ( 2 ) 语法分析语法分析任务是在词法分析的基础上,根据数控指令的规则 对数控代码进行逐行检查,检查出一些较高级的语法错误。这些错误主要有:非 法指令代码、功能相近或功能相斥的指令代码重用、圆弧数据错误、x 和u 同 时出现或z 和w 同时出现、加工指令中间没有任何的位置指令等。 ( 3 ) 目标代码生成n c 源程序代码做分析、检查,要生产目标代码,这包括 然后提取信息,将经过检查的n c 程序转换成用户指定n c 系统格式的程序。本 系统中,提取的加工信息,将其生成为数控程序的仿真的输入数据流。 ( 4 ) 错误处理就词法、语法分析而言,在编译过程中遇到错误时,并不希 望就此停止工作,而希望记

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论