




已阅读5页,还剩52页未读, 继续免费阅读
(计算机应用技术专业论文)高性能数控系统解释技术的研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 数控系统是计算机技术在机械制造领域的一种典型应用,它集计算机、机械 加工、自动控制等多项技术于一体,是近年来应用领域中发展十分迅速的一项高 新技术。从目前世界上高性能数控系统的发展趋势来看,其研究热点主要在于: 高速、高精加工技术;智能化、开放式、网络化数控系统;基于s t e p - n c 的数控 系统。随着高性能数控系统的不断发展,对解释技术也提出了新的要求。高速高 精加工时,解释器必须更快地处理相应的数控程序代码,并及时向底层运动部件 传送信息,以避免数控系统的计算速度和信息传递速度无法跟上进刀速度而造成 数据饥饿。如何设计解释器的结构使其满足网络化制造的需要,并增加对 s t e p n c 标准的支持,也成为亟待解决的问题。 本文针对高性能数控系统中解释器面临的要求,分析了现有数控系统中解释 器存在的不足,设计并实现了一种高性能加工代码解释器,并对基于x m l 的 s t e p n c 解释器进行了初步的研究,主要包括以下两方面内容: ( 1 ) 通过深入分析现有数控系统中解释器及与之交互的任务控制器的主要功 能及实现方法,指出其在高速高精加工时存在的不足,在此基础上设计并实现了 一种高性能加工代码解释器。首先从解释器采用的译码方法、内部模块结构、相 关数据结构、与其它模块的协作四个方面详细阐述了设计过程,然后重点介绍了 实现时采用的两种关键技术:r t a i l x r l 机制和多线程技术,接着对其性能进行 了分析,并用两组实验验证了此设计的有效性。 ( 2 ) 通过分析s t e p - n c 数据模型及程序结构,指出了i s 0 1 0 3 0 3p a n 2l 物理文 件格式数控程序不适合在网络上传输的缺点。在对现有数控系统进行基于 s t e p - n c 的改造时,采用l 作为s t e p n c 数控程序的文件格式,并提出了面 向网络化制造s t e p - n c 数控系统的基本框架,阐述了各组成模块的功能。同时从 数据存储结构、解析x m l 、信息提取方法三个方面重点介绍了基于x m l 的 s t e p - n c 程序解释器的设计与实现。最后通过一个实验验证了该设计的正确性。 关键词:数控系统,解释器,g & m 代码,s t e p - n c ,网络制造,高速高精加工 a b s t r a c t a b s t r a c t c o m p u t e r i z e dn u m e r i c a lc o n t r o ls y s t e m ( c n c ) i sat y p i c a l k i n do fc o m p u t e r t e c h n o l o g ya p p l i e d i n t ot h em a n u f a c t 嘶n ga r e a a c c o r d i n g t 0t h ew o r l d w i d e d e v e l o p m e n to fh i 幽p e r f o r m a n c ec n cs y s t e m ,t h er e s e a r c hf o c u sm a i n l yl i e s i n : h i 曲s p e e d& h i 曲p r e c i s i o n m a c h i n i n g ,i n t e l l i g e n t&o p e n _ a r c h i t e c t l j r e & n e t 、0 r k - b a l s e dc n cs y s t e m ,a 1 1 ds t e p n cb a s e dc n cs y s t e m a sar e s u l t ,t h e a d v a i l c e di n t e 印r e t i n gt e c h n o l o g yi sr e q u i r e d d u r i n gt h eh i 曲s p e e d & h i 曲p r e c i s i o n m a c h i n i n i no r d e rt oa v o i dt h ed a t ah u n g e rt h a t 印p e a r sw h e nt h ec a l c u l a t i o na j l d d a _ t a 眦l s m i s s i o ns p e e dc a n tc a t c hu p 丽t ht h ef e e dr a t e ,t h ei n t e 印r e t e rs h o u l d p r o c e s sn cc o d e sr a p i d l ya n dm a k es u r et h em e s s a g e i st r a l l s m i t t e dt ot h e 岫d e r l y i n g m o t i o nc o m p o n e n t si nt i m e h o wt od e s i g nt h ei n t e r p r e t e rt om e e tt h en e e d so t w e b - b a s e dm a n _ u f a c t u r i n ga n ds u p p o r ts t e p - n cs t a l l d a r di sa l s oac h a l l e n g e t h i sp 叩e rp r e s e n t st h ed e s i g no fah i g h - p e r f o m a n c en cc o d ei m e r p r e t e ra n d d o e ss o m er e s e a k ho nx m l - b a s e ds t e p n ci n t e 印r e t e r ,i n c l u d i n gt w op a r t s ( 1 ) b a s e do nt h ei n d e p t ha n a l y s i so ft h ei n t e 印r e t e ra n dt a s km o d u l e si nt h e e x i s t i n gc n cs y s t e m ,s o m ed i s a d v a n t a g e sa r ep r e s e n t e d ,a n dah i 曲- p e 墒m a j l c en c c o d ei n t e 印r e t e ri sd e s i g n e d f i r s t ,t h ed e s i g n i n gp r o c e s si n c l u d i n gt h ei n t e 印r e t i n g m e t h o d t h ei n t e m a lm o d u l es t m c t u r e s ,t h er e l e v a md a t a s m j c t u r e sa i l dm e c o l l a b o r a t i o n 谢t ho t h e rc o m p o n e n t si se x p l a i n e di nd e t a i l t h e n ,t h er 1 a i l x r t m e c h a n i s ma n dt h em u l t i t h i e a dm e t h o d ,w h i c ha r et h et 、0i m p o r t 锄tt e c h n o l o g l e s d u 曲gt h ei m p l e m e n t a t i o n ,a r ei 腑o d u c e d f i n a l l y ,t h ep e 响m a n c e i si l l u s 仃a t e da n d s o m ee x p e r i m e n tr e s u l t sa r eg i v e nt 0c o n f i r mt h i si d e a ( 2 ) a 船ra i l a l y z i n gt h es t e p - n cd a t am o d e la n dp r o g r a ms t m c t u i e ,t l l i sp a p e r p o i n t so u tt h ed e f e c t so fs t e p n cn 啪e r i c a lc o n t r o lp r o 酽锄i n t h ei s o1 0 3 0 3p 砒 21p h y s i c a lf i l ef o 咖a t t h e r e f o r e ,w h i l ea i le x i s t i n gc n cs y s t e mi s r e t r o f i t t e dt o s u p p o r ts t e p n c ,x m li sa d o p t e da sf i l e f o 衄a to fn cp r o g r 锄a n dap r o p e r s t e p j n ce n a b l e d 、e b b a s e dm a n u f a c t u r i n gs y s t e m 行a m e 、o r ki sp r o p o s e d a n d t h e na nx m l - b a s e ds t e p j n ci n t e 印r e t e ri se x p a t i a t e di nd e t a i lf r o mt h ep o i m so f d a t as t o r a g es t m c t u r e ,x m lp a r s i n ga 1 1 di n f o n i l a t i o ne x t r a c t i o nm e t h o d f i n a l l y ,t h e e m c i e n c yo ft h es y s t e mi sd e m o n s t r a t e db yac o r r e s p o n d i n ge x p e n m e n t k e y w o r d s :c n c ,i n t e 印r e t e r ,g & mc o d e ,s t e p - n c ,w e b - b a s e dm 孤u f a c t u r i n g , h i g hs p e e d & h i g hp r e c i s i o nm a c h i n i n g 中国科学技术大学学位论文原创性和授权使用声明 本人声明所呈交的学位论文,是本人在导师指导下进行研究工作 所取得的成果。除已特别加以标注和致谢的地方外,论文中不包含任 何他人已经发表或撰写过的研究成果。与我一同工作的同志对本研究 所做的贡献均已在论文中作了明确的说明。 本人授权中国科学技术大学拥有学位论文的部分使用权,即:学 校有权按有关规定向国家有关部门或机构送交论文的复印件和电子 版,允许论文被查阅和借阅,可以将学位论文编入有关数据库进行检 索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论文。 保密的学位论文在解密后也遵守此规定。 作者签名:季筱。飘 汐弼年年月f d 日 第l 章引言 第1 章引言 1 1 研究背景 计算机技术是近3 0 年来发展最快的技术之一,随着计算机技术的快速发展, 其应用已广泛地渗透并影响着社会生产和社会生活的各个领域,并在全球形成了 一场新的技术革命。数控系统是计算机技术在机械制造领域的一种典型应用,它 集计算机、机械加工、微电子和自动控制等多项技术于一体,是近年来应用领域 中发展十分迅速的一项高新技术【。从上世纪7 0 年代以来,以数控机床为代表 的现代机械已成为制造工业最重要的技术特征,数控机床水平的高低和机床数控 化率的高低已成为衡量国家工业化水平高低的重要标志。 数控技术的应用不但给传统制造业带来了革命性的变化,使制造业成为工业 化的象征,而且随着数控技术的不断发展和应用领域的扩大,它对国计民生的一 些重要行业( 汽车、轻工、医疗等) 的发展起着越来越重要的作用。从目前世界 上高性能数控系统的发展趋势来看,其研究热点主要有以下几个方面。 1 1 1 高速、高精加工技术 效率、质量是先进制造技术的主体。高速、高精加工技术可极大地提高效率, 提高产品的质量和档次,缩短生产周期和提高市场竞争能力【2 】。为此日本先端技 术研究会将其列为五大现代制造技术之一,国际生产工程学会( c i i 冲) 将其确定为 二十一世纪的中心研究方向之一。 高速:在大多数情况下,机床的生产率仅达2 0 3 0 理论的能力,通过高 速化大幅度缩短切削工时是提高其生产率的有效手段。一般切削速度、进给速度 高于常规值5 1 0 倍以上,称为高速加工1 3 j 。9 0 年代以来,欧、美、日各国争相 开发应用新一代高速数控机床,加快机床高速化发展步伐。高速主轴单元( 电主 轴,转速1 5 0 0 0 1 0 0 0 0 0 r m i n ) 、高速且高加减速度的进给运动部件( 快移速度 6 0 1 2 0 删,m i n ,切削进给速度高达6 0 m ,m i n ) 、高性能数控和伺服系统以及数控 工具系统都出现了新的突破,达到了新的技术水平。 高精:从精密加工发展到超精密加工,是世界各工业强国致力发展的方向。 精度从微米级到亚微米级,乃至纳米级( w a i t 函数。它首先计算出为使 本周期结束的时刻是p e r i o d 的整数倍,任务控制器需要休眠的时间,然后调用 s e l e c t 函数做的定时器来实现进程的休眠。虽然理论上s e l e c t 做的定时器是号称 微秒级别的,但由于l i n u ) ( 的时钟中断是l o m s ,所以在实际运行时,对于定时 时间小于1 0 m s 的应用,s e l e c t 函数无法起到准确的定时作用。 在高速高精加工中,任务控制器的周期一般小于l m s ,s e l e c t 函数显然难以 达到定时精度的要求,任务控制器的周期无法保证。这时,“周期 已经失去了 其本身的意义,任务控制器何时开始下一次执行,何时发送命令队列中队首的控 制操作给运动控制器,都成为无法预知的事情。可以肯定的是,由于任务控制器 的周期远小于l i n u x 的时钟中断,任务控制器在这个不准确的t i m e r 控制下,事 实上执行一次的时间大多大于预设的p e r i o d 。“周期”的失效导致了信息传递的 1 4 第3 章一种高性能加:亡代码解释器的设计与实现 紊乱,当运动控制器试图从共享缓冲区中取出数据时,命中率受到了极大的影响。 任务控制器作为解释器与运动控制器之间传递信息的媒介,它的失职直接导 致解释器解释加工代码所生成的控制命令无法及时有效地传递给运动控制器,这 时解释器自身速度再快没有任何意义。数控系统作为一个各模块分工合作的复杂 系统来说,提高解释器的性能不仅要减少解释器独立运行时平均解释一行g 代 所需要的时间,更重要的是把解释器生成的控制命令及时传递给高速运动部件。 对于本系统来说,解决这个问题的关键是用一个高精度定时器来保证任务控制器 的周期,使其在高速高精加工时依然能按照预设的周期把解释器生成的控制命令 发送给运动控制器。而高精度的定时器则需要实时系统的支持。 ( 2 ) 造成数据饥饿现象。 由于任务控制器在每个处理周期内,只有等到解释器把程序控制流程返回 后,才能读取消息队列队首的控制操作,发送给运动控制器。因而一旦解释器无 法及时完成任务,任务控制器在本周期就来不及向运动控制器发送控制操作,这 样当运动控制器试图从共享缓冲区中取出数据时,其命中率就受到了影响。一旦 缓存中没有数据,由于c n c 系统的计算速度和信息传递速度无法跟上进刀速度, 机床将暂时停止运动,这种问题被称为数据饥饿。 定义任务控制器没来得及向运动控制器发送控制操作的周期为失效周期。失 效周期越多,则运动控制器试图从共享缓冲区中取出数据时,命中率越低,数据 饥饿现象越严重。反之,失效周期越少,则数据饥饿现象发生得越少,数控系统 运行效率越高。 在任务控制器周期得到保证的前提下,只要任务控制器能及时地取得控制 权,就不会有失效周期的存在,系统也不会出现数据饥饿。虽然解释器在大多数 时候能够及时把控制权返回给任务控制器,但以下三个原因的存在使得解释器无 法及时完成指定的任务,导致本周期成为失效周期: 第一,如图3 2 所示,任务控制器在每个处理周期内,都要循环调用解释器 的r e a d 和e x e c u t e 函数解释零件加工程序中的g 代码,将生成的控制命令添加到消 息队列中,直到消息队列填满2 3 或者当前周期解释的g 代码程序段超过1 0 0 0 段为 止。而任务控制器只读取消息队列队首的一条控制操作,如果当前命令的执行条 件满足,发送给运动控制器。则从消息队列空开始的前几个周期,解释器将分别 解释1 0 0 0 段左右g 代码,直到填满消息队列的2 3 。接下来的每个周期,解释器一 般解释l 条g 代码,任务控制器向下发送一条控制命令。当解释器解释到探测指 令时,则需要等到i n t e 印l i s t 中的指令全部执行完后,系统把探测到的当前位置返 回给解释器,解释器才能继续解释后续指令。从以上分析可知,在一个周期的时 间里,解释器最多解释l 0 0 0 条g 代码,最少一条都不解释,负载极度不平衡。当 1 5 第3 章一种高性能加j j r 代码解释器的设计与实现 解释器负载过重时,必然无法及时把控制权返回给任务控制器。 第二,数据在硬盘上是分磁道、分簇存储的,经常的读写操作后,往往数据 并不是连续排列在同一磁道上,所以磁头在读取数据时需要在磁道之间反复移 动,这种情况下,由于目前较为先进的硬盘平均寻道时间为1 2 m s 左右,极有可 能发生待解释的g 代码文件被分散存储,以至于解释器在从硬盘上的程序文件中 读入g 代码时所产生i 0 操作时间远大于任务控制器的周期。 第三,随着数控技术的高速发展,样条加工等技术将逐渐广泛应用于数控系 统中。对于同一个复杂曲面来说,在相同的精度条件下,用样条拟合后,其g 代 码文件的大小不会超过用微小直线段方法的1 1 0 ,数控程序员的负担部分转移到 了解释器上1 2 训。解释器在解释采用样条方法编写的一条g 代码时,需要远多于普 通g 代码的时间,甚至超过了任务控制器的周期。 失效周期造成的数据饥饿,降低了运动控制器从共享缓冲区取出数据时的命 中率,影响了数控系统的运行效率。 3 2 一种高性能加工代码解释器的设计 为了弥补现有数控系统解释器在高速高精加工时存在的不足,本文在此基础 上设计并实现了一种高性能加工代码解释器。下面从解释器采用的译码方法、内 部模块结构、相关数据结构、与其它模块的协作四个方面详细阐述设计过程。 3 2 1 译码方法 对数控程序进行预处理,即译码,主要有以下三种方法【2 5 j 。 解释方法:基本思想是边处理边执行,即预处理模块每处理一条,插补模块 就执行一条。优点是:占用内存小,处理时间短,在需要时容易实现与运动部件 的同步。但该方法具有以下严重问题:一是程序没有可预见性,不能实现高速微 段程序加工的前瞻性自动加减速;二是预处理和插补间没有缓冲,一旦插补速度 过快,预处理又跟不上时,会造成插补停顿,影响加工质量。 编译方法:在插补模块运行前,预处理模块就将零件程序一次性编译完,同 时把刀具偏置计算、前瞻处理等其他任务也全部完成,并将处理结果放入内存缓 冲区中。然后启动插补模块运行,从缓冲区中读出数据进行插补。优点是:程序 可预见性大,容易进行前瞻处理,对于由大量微小线段构成的复杂零件表面的高 速加工,容易实现自动加减速控制,从而可获得较高的加工质量和加工效率:此 外,不会出现数据饥饿问题。存在的问题是:预处理时间长,占用内存大,并且 不能在需要时实现与底层运动部件的同步。 1 6 第3 章一种高性能加:| :代码解释器的设计与实现 动态批处理方法:其基本思想可用“批发+ 零售来形容。即预处理相当于 批发,对零件程序进行分批处理;插补相当于零售,自己仅维持一小库存,然后 逐条执行。该方法在占用内存少、加工延迟短的前提下,可以实现较强的前瞻处 理功能,减少数据饥饿问题的发生,满足高速加工的需要,并且可以在需要时与 底层运动部件同步。 表3 1 三种数控程序译码方法的比较 比较项目解释方法编译方法 动态批处理方法 占用内存小大较小 处理时间短长较短 前瞻处理不可行容易进行可行 数据饥饿严重不会出现 较少出现 与底层同步容易实现不能实现容易实现 由表3 1 所示三种数控程序译码方法的比较可以看出,动态批处理方法结合 了解释方法和编译方法的优点,故本文采用它作为解释器的译码方法。 3 2 2 内部模块结构 图3 3 解释器的工作流程 1 7 第3 章一种高性能加:i 二代码解释器的设计与实现 本文解释器采用一趟扫描的方式,如图3 3 所示,首先读入一行n c 程序源 代码,然后进行词法和语法分析,最后生成目标代码,插入与任务控制器传递信 息的命令队列,此过程一直反复直到程序结束为止。前瞻处理则可根据加速度及 其变化率的约束,按照减速特征识别方法,对命令队列中存放的各线段信息,逐 条进行分析,及时发现刀具路径的突变并进行处理,以从整体上实现速度、加速 度和加速度变化率的最优化。前瞻处理是下一步的工作内容,本文不作深入研究。 下面主要介绍语法& 词法分析和目标代码生成这两个解释器中的核心模块。 词法& 语法分析:用一个指针指向缓冲区内的一段加工程序尚未处理部分的 开始位置。当用如图3 4 所示的多个分析函数顺序处理该缓冲区内的数据时,函 数完成各自的语法分析后移动指针到正确的位置。利用s e t u p 中保存的参数信息, 完成全部词法和语法分析后,所有的加工信息数据被转化成内部的信息格式存储 在b l o c k 数据结构中,最后检查加工的合法性。本模块主要完成了以下功能: 图3 4 词法& 语法分析中的分析函数 萼至三墨 图3 5 目标代码生成过程中主要函数调用结构 ( 1 ) 依次读取程序段中的一个语法单位,分析出其中的w o r d 及参数,并写入 1 8 第3 章一种高性能加工代码解释器的设计与实现 b l o c k 中。 ( 2 ) 完成所有变量和表达式的求值计算。变量可以采用多次间接寻址方式。 ( 3 ) 根据具体条件选择合适的执行路径以实现预定的控制逻辑。 ( 4 ) 对b l o c k 中的数据进行合法性分析,包括对于语法和工艺参数的检查。 目标代码生成:安排各种加工操作的先后顺序,依次读取存储在b i o c k 中的 加工信息并完成坐标转换等处理后,调用规范加工模块生成目标代码即控制命令 并送入命令队列,最后更新当前解释器的状态信息,以备继续处理和输出当前的 模态g 代码和m 代码信息。图3 5 所示为此过程中主要函数调用结构,其中比较重 要的是处理m 代码和g 代码的c o n v e r tm 和c o i e r tg 函数。在c o n v e r tg 中调用 c o n v e n - m o t i o n 函数处理运动操作,包括直线进给、圆弧进给和固定循环加工。 所有运动操作中都包含刀具补偿时的加工路径计算,而一个固定循环操作将被转 换为一系列的基本运动操作。 3 2 3 相关数据结构 b b c ks e l u d 昌b an u m b e rd d u b i e5 b 地a 砖出dd 叫b | e 罨蛐n u m b e r :d o ub i e自移a ac u 卸ld 伽聊e 晟圮n u m b e rd o ub i e自t 撇口 g i n 嘛甚如u 啊e a 毫圮o m m e n t l 2 5 6 】,c h 甜 g b 8 ba x 瓷。| s 宣d 叫b l e e dn u m b 蔷:i n ig bc u 钟td o u 嘲e 自 en u m b e r jd o u 纠e朗bo i 蛳a 船最d o u 埘e 6 簖n u m b 钟:d o u h e 耽ca 病o | s e 【d 伽划e 曼组m o d e s 【15 】i n t g cc u r r 朗td 伽b l e 彩hn u m b e ri n t自托co i 咖口如茸d o u b i e 雷朗n u m b 贸d o u n e 8 c l 陡gc 。d 船【a 佣v egc o d e s 】i n i 自勃n u m b 针jd o u 纠e 彩a c c mc 础e s f a c l l v emc o d e s l i n f 出n u m b e r d o u “e 鳅i ”e _ s 鲥n 9 s 泸衄v es e t l l n g s j d o 洲e 昀n u m b 耵:j n t 劬撕so f i s e txd o u b i e 勘_ n en u m b e r :讯 易a j ;sa f i s 敢yd 伽b l e 易m o t j o nt o b e :i l l t 勃撕s 嘣j e lz d o u b i e 岛mc o t j ni n t a 蝴。c i 吐e 删f i e l e n 】妇 b mm o d e 1 1 1 :i 嗽目b ( c u 盯e n ts i o ti f l t 彩u s e rm + i n t 6 k u f r 雠x 。d o u b l e 彩pn u m b 静d o u n e g 扯u 眦y :d o u “e g 阳n u m b e f + d o ub i e g 轨u f r e mz 如u b i e d 移rn u m b e rd o u b i e 目k u t t e fc 唧pr a d i u sd o u 蜕e 移sn u m b 盯:d o u b i e 占k u l t 斟c o m p3 i d e i m a 孰n u m b e r + h l t 础c cd o u b l e 髟xn u m b e r + d o u 纠e 自k v c l eid o u 0 轨n u m b 封d o ub l e 自如y c el d o u b 培 彩zn u m b 甜d o u u e g 阮y c i ekjd o l l b i e 髟。魄猷i 口 6 k l ei 眦 目跏t y p e i n t 5 孰v e i edd o l 削e 彩on u m 抛f :i n t # 酞涮eq a 口u 翱e 舞k 二- m o r 1 - e d dc 等螅d a 口6 氍月e 1 一一d a 图3 6b l o c k & & s e t u p 数据结构 b i o c k 数据结构:存储了一段加工程序经过语法分析后所生成的所有信息。 加工程序语言的语法单位是一个“词,一个词可以是一个g 代码、m 代码、轴 坐标或者其他的加工参数。在b l o c k 结构中,主要存储了一段程序中的所有出现 1 9 第3 章一种高性能加:r :代码解释器的设计与实现 的词和相应的参数数值,主要包括各轴在当前编程坐标系中的终点坐标、圆心坐 标、刀具参数、进给速度、主轴转速等加工参数。此外还包括当前程序段的注释 信息、标号、g 代码和m 代码的个数,并保留了存储当前有效模态g 代码、m 代码和运动g 代码的空间。 s e t u p 数据结构:存储了解释器的所有参数和全局信息,解释器内所有模块 都将对该数据进行相应的操作。s e t u p 中包括当前语法分析得到的加工操作信息, 该操作信息保存在上述b l o c k 数据结构的变量中。另外s e t u p 中还有:有效的模 态g 代码和m 代码,当前运动功能g 代码:加工点当前坐标、当前编程坐标系 原点偏移、强制定义当前点坐标产生的轴偏移和在刀补有效时的当前点编程坐标 等与坐标相关的参数;i 、j 、k ( x y z 轴偏移) 、l ( 重复次数) 、p ( 暂停时间) 、 q ( 每次钻孔深度增量) 、r ( 退刀位置) 等与固定循环加工的相关参数;加工程 序文件名、文件指针、当前程序段代码、行号信息等工件加工程序信息;刀具号、 刀具长度和半径数据、左刀补或右刀补、刀具表数据等刀具信息;当前的模式和 状态信息数据,包括运动轨迹模式、绝对或增量编程模式、速度或时间倒数进给 模式、当前加工平面、固定循环退刀模式和修调开关状态、主轴转向、快速移动 速度、解释器配置文件中的参数数组、英制或公制单位、冷却开关状态、当前编 程坐标系索引号、进给率、主轴转速等。 图3 7 解释器类结构图 解释器类结构:采用面向对象的方法,把解释器封装成一个类,将数据和操 作这些数据的函数紧密地连结在一起,通过对外提供接口,隐藏具体实现细节, 解释器类结构如图3 7 所示。图3 8 描述了解释器与外部交互的四类接口函数, 箭头所示为函数调用方向。其中,解释器功能函数让解释器完成一件任务,比如 第3 章一种高性能加:r 代码解释器的设计与实现 读入一行n c 代码或者生成目标代码:解释器信息函数把解释器内部信息返回给 调用者;规范加工函数被解释器调用以生成控制命令并送入命令队列:机床信息 函数将机床本身的信息送给解释器。 解释器功能函数规范加工函数 解释器 解释器信息函数机床信息函数 3 2 4 与其它模块的协作 图3 8 解释器接口函数 现有数控系统数据饥饿的根源在于解释器受任务控制器的调用,占用了任务 控制器每个周期的执行时间。让解释器作为一个独立的线程来运行,则提供了一 个良好的解决方案。 在操作系统满足优先级较高的运动控制器和任务控制器周期执行的前提下, 解释器在剩下的空闲时间里得到执行的机会,一条一条地从文件中读入数控加工 程序,经过词法分析和语法分析后,解释生成数控系统能识别的目标代码,即控 制指令,并插入到消息队列中。任务控制器在每个周期只需要读取消息队列队首 的控制操作发送给运动控制器,而不需要调用解释器解释加工程序。图3 9 所示 为解释器与系统其它模块的协作图。 图3 9 解释器与其它模块协作图 3 3 采用的关键技术 本文采用l i r 嗽下p o s i x 标准线程库中提供的p t l 鹏a d j 类型来创建解释器 2 l 第3 章一种高性能加1 :代码解释器的设计与实现 线程,并用s e m j 来解决它与其它模块的同步问题。为了保证解释器生成的控制 命令能及时有效地传递给底层运动部件,采用r r a i l x r t 机制对信息传递中介 任务控制器进行改进,以提高信息传递效率。 3 。3 1 多线程技术 本文设计的高性能加工代码解释器是任务控制器创建的一个线程,由操作系 统调度,图3 1 0 所示为其状态转换图。当任务控制器进入自动执行状态,开始 执行一个加工程序文件时,建立个解释器线程。一旦建立,解释器线程受操作 系统的调度,进入就绪态或直接进入运行态。处于运行态时,当碰到以下两种情 况解释器将进入等待态:一是命令队列满,二是解释器解释到探测指令,需要等 到i n t e r pl i s t 中的指令全部被运动控制器执行后,系统把探测到的当前位置返回 给解释器,解释器才能继续解释后续指令。相应地,处于等待态时,当命令队列 空出l 3 的位置或探测指令的同步条件得到满足,解释器进入就绪态。解释器线 程被操作系统调度选中或时间片用完时,将在就绪态和运行态之间转换。当程序 解释完成或出现错误时,解释器线程退出。 图3 1 0 解释器状态转换图 本文采用l i n u x 下p o s 标准线程库中提供的p t h r e a d j 类型来创建解释器 线程。解释器把控制命令写入命令队列,任务控制器从命令队列中读出。如图 3 1 1 所示,二者形成了典型的“生产者 与“消费者 关系,需要解决命令队列 满、命令队列空以及数控系统某些指令如探测指令所要求的同步问题。解释器与 任务控制器间同步操作用信号量s e n u 来实现。 图3 1 l 解释器与任务控制器间“生产者”与“消费者”关系 2 2 第3 章一种高性能加工代码解释器的设计与实现 3 3 2r t a l l x r t 机制 如3 1 2 节所述,现有数控系统中解释器解释加工代码生成的控制指令无法 及时有效地传递给运动控制器,造成这个问题的主要原因是作为信息传递中介的 任务控制器周期性无法保证,一个高精度的定时器是解决问题的关键,而高精度 的定时器则需要实时系统的支持。由于任务控制器是用c + + 编写的,需要使用 c + + 库函数,而r 1 阪i 实时空间不提供对c + + 库函数的支持,因而不能直接把它 移植到实时空间。r 耶d 提供的另外一种机制l x r t ( l i n u ) 【r i e a ln m e ) 可以实现用 户进程的实时性。把任务控制器作为用户空间的实时进程来运行,使用r 1 隗i 提 供的定时器,其周期可以得到有效的保证。 i ,x r t 是r 1 队i 的一个主要模块,它向r t a i 实时任务和l i r l u x 用户进程提供对 称的a p i ,即在用户空间,i ,x r t 模块允许用户使用r 1 渔i 的a p i 函数开发实时任务。 在用户空间开发的实时任务运行在自己独立的内存空间,其所占用的内存得到了 保护,并且可以使用l i i 姒的系统调用和其中的库函数。l 玎模块的另一个特点 就是允许应用程序中软、硬实时方式的动态转换。实时任务不再以模块方式实现, 因此也不再依赖内核的版本,方便了实时应用程序的移植。在用户空间运行实时 任务前,需要加载觚a i 主模块、r r a i 调度模块和l x i 盯模块【2 6 】。 l i n u x 内核实现了3 种不同的调度策略:s c h e df i f o 、s c h e di 汛以及 s c h e do t h e r 。s c 脏do t h e r 调度策略是标准l i n u x 用户进程使用的默认调 度策略。s c h e df i f o 调度策略适应于基于静态优先级的调度,并支持抢占调度, 进程的静态优先级为1 9 9 。s c h e di 汛调度策略给每个进程都分配一个时间片, 时间片结束意味着正在执行的进程会立刻停止,使用s c h e dr r 调度策略进程 的静态优先级为0 。这就意味着当s c h e df i f o 进程就绪时,可以抢占s c h e dr r 进程。l 玎模块为在用户态运行的进程提供了r 1 陡i 的a p i ,用户进程需要把 l i n u ) 【默认的s c h e do t h e r 调度策略改为s c h e df i f o 调度策略,以增强l 玎 软实时的执行性能。 用户进程得到软实时的执行性能,对普通l i n u x 而言是一个很大的进步。但 是当c p u 频繁处理中断事件或实时任务时,就可能导致这些软实时任务无法得到 及时响应。l x r t 模块提供了把用户进程转换成硬实时任务的功能,具体实现是 为该用户进程创建实时a g e m 任务,该a g e n t 任务使用r 1 队i 调度器进行调度,代表 用户进程执行实时服务,同时还需使用系统调用m l o c k a l l ( ) 对进程所使用的内存 加锁,以防被置换出内存。在完成从用户空间到内核空间的切换后,把该a g e n t 实时任务插入到实时调度器处理的队列中去。图3 1 2 显示了用户任务和其a g e n t 任务间的关系【2 7 j 。完成实时服务后,返回到用户进程。 第3 章一种高性能加:t :代码解释器的设计与实现 图3 1 2 用户任务和其a g e n t 任务间的关系 标准l i n u x 采用了较大时间粒度的定时器,时钟中断周期为1 0 m s ,加大了任 务响应的延迟,无法满足高速高精加工时任务控制器对时间精度的要求。r 1 队i 通过提高系统时钟精度改写了时钟处理程序,使之支持更高分辨率的定时器。引 入了两种定时器模式:p e r i o d i c ( 周期性) 和o n es h o t ( 一次性) 。对于任务控制 器这种周期性强的任务,应该采用p e r i o d i c 模式,只需要在初始化时对定时器进 行设置,保证了处理效率。一旦定时器到期,内核便能够立刻响应,内核的响应 开销只由中断服务的时间所决定。定时器的精度达到了纳秒级的水平,完全可以 满足任务控制器的要求。 使用r 1 队i l x r t 的机制,让任务控制器作为用户空间的实时进程来运行, 则可提高任务控制器的优先级,并利用r 1 队i 提供的细粒度定时器,保证高速高 精加工时任务控制器的实时性和周期性。程序的主体框架如下【2 8 】【2 9 1 。 n m a i n ( i n ta r g c ,c h a r 宰a r g v 口) t a s ks t a n u p ( ) ;木任务控制器初始化木 s c h e ds e t s c h e d u l e r ( ) ;牛可重新设置调度策略掌 “o c k a l l ( m c lc u r r e n tm c lf u t u r e ) ;产对进程所使用的内存加 锁,以防被置换出内存母 r tt a s k 宰m a i n a g e n t ; m a i n a g e n t = n _ 1 眺k - i n i t ( ) ;或m a i n a g e m = n - t a s k - i 1 1 i t - s c l l i i l o d ( ) ;木创建 一个a g e n t 任务,后者可同时设置调度策略+ r ts e tp e r i o d i cm o d e ( ) ;严设置定时器模式为周期模式| s t a r tr tt i m e r ( p e r i o d ) ;乖启动定时器,周期以纳秒为单位木 r tm a k eh a r dr e a lt i m e ( ) ;严在适当的时候使任务由软实时转换为硬实 时奄| r c - t a s k _ _ m a l 哆j e r i o d i c ( ) ;产设置任务启动时间和循环周期长度宰 w h i l e ( ! d o n e ) 2 4 第3 章一种高性能加j t 代码解释器的设计与实现 t a s l 凹l a n ( ) ;宰任务控制器周期执行的两个主要子函数之一幸 t a s k j x e c u t e ( ) ;严任务控制器周期执行的两个主要子函数之一 蛳k _ _ v 吼i t j ,丽o d ( ) ;幸主动放弃c p u ,等待下次调度宰 r c _ r n a k e j o 也- r e a l j i m e ( ) ;产返回到用户进程 t 且s k j e l e t e ( t a s k ) ;严删除任务幸 t a s l t _ s h u t d o w n ( ) ; 3 4 解释器性能分析 本文提出的高性能加工代码解释器以动态批处理方法作为解释器的译码方 法,在占用内存少、加工延迟短的前提下,可以为前瞻处理提供足够的资源,并 且在需要时容易实现与底层运动部件同步。相比于原有数控系统,对系统性能主 要有如下改进。 3 4 1 解释器向运动控制器信息传递及时 使用r 1 队i l 玎的机制,让任务控制器作为用户空间的实时进程来运行,利 用r r a i 提供的细粒度定时器,保证了高速高精加工时任务控制器的实时性和周 期性。这样解释器生成的控制命令能及时地被任务控制器放到与运动控制器共享 的缓冲区中,系统总体性能得到有效提高。 3 4 2 避免数据饥饿 如图3 1 3 所示,任务控制器作为用户空间的实时进程来运行,并创建了解 释器这个子线程。两者之间通过i m e 印l i s t 队列传送消息。运动控制器运行在实 时空间,它与任务控制器的通信采用r c s 库所提供的共享内存的方式。 任务控制器和解释器作为不同的线程接受操作系统的调度。任务控制器采用 了r 1 队i l 机制,其优先级较高,周期性和实时性能得到保证。任务控制器 执行完自己的任务后,解释器在剩下的空闲时间里获得执行的机会。由于解释器 平均执行速度很快,i n t e 印l i s t 队列里总会有很多条控制命令,因而任务控制器 第3 章一种高性能加一j :代码解释器的设计与实现 每个周期总能取到队首的控制命令,发送给运动控制器,大大减少了失效周期数, 提高了和运动控制器的通信效率。 图3 1 3 解释器、任务控制器、运动控制器三者之间的通信方式 3 4 3 可扩展性强 由于软件功能总是随着版本的递增而逐渐完善和增加,因而可扩展性已成为 软件开发中一个重要的指导思想。随着数控技术的进步和行业标准的不断提高, 解释器也将承担更多任务,需要调整以适应新增的系统需求。比如前瞻处理和数 控系统多道程序设计必将引起解释器的相应改进。当解释器不受任务控制器的调 用,而自己作为一个整体运行时,由于对解释器部分的任何改动不会影响任务控 制器,因而编程效率更高,实现效果也更好。 3 5 实验结果及分析 通过以上分析,本文主要解决了现有数控系统在高速高精加工时解释器向 运动控制器信息传递不及时和解释器造成的数据饥饿这两个问题,为了对比改进 前后的效果,有针对性地采集了两组实验数据。 实验平台:c p u 奔腾m 1 g h z ,内存5 1 2 m ,数控系统任务控制器周期为5 m s , 运动控制器伺服周期为1 m s 。 3 5 1 实验一 实验内容:采集改进前后任务控制器每个周期的开始时间,计算相邻时间的 差值,得到每个周期实际执行时间,并用m a t l a b 绘制曲线图。横坐标为采集的周 期,纵坐标为相应周期的实际执行时间。 第3 章
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 湖南成人自考考试试题及答案
- 内勤公务员面试题及答案
- 特岗物理考试试题及答案
- 技能针灸考试题及答案
- 校园安全知识培训总结课件
- 社区工作中级考试试题及答案
- 校园危化品安全知识培训课件
- 护士儿科试题及答案
- 印江社工面试题及答案
- 亚洲航空考试题及答案
- 2025年副高卫生职称-公共卫生类-妇女保健(副高)代码:093历年参考题库含答案解析(5卷)
- 医疗放射安全知识培训课件
- 2025年南京保安考试题库
- 2025年药剂科转正考试题及答案
- 2025年《中小学校会计制度》试题及答案
- 基孔肯雅热防控技术指南2025版培训课件
- 轻食健康饮食课件
- 2025年电竞馆电脑采购合同范本
- 压疮PDCA降低长期卧床患者压疮发生率
- 2025版挖掘机采购合同及配件供应范本
- 腹透的居家护理
评论
0/150
提交评论