基于嵌入式实时操作系统的数控程序译码实现.pdf
《基于嵌入式实时操作系统的数控程序译码实现.pdf》由会员分享,可在线阅读,更多相关《基于嵌入式实时操作系统的数控程序译码实现.pdf(4页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2 0 0 7,4 3(2 8)1 引言为了适应嵌入式应用的复杂性和多样性,并缩短其开发周期,嵌入式实时操作系统(R T O S)应运而生。如:V x Wo r k s、R T L i n u x、C/O S-I I 等。目前,在嵌入式数控系统的设计中,对于许多熟悉计算机应用的生产厂家,往往采用 P C+运动控制器的设计方式,在操作系统的选择上更多地选用桌面操作系统或对其进行实时性扩展后的操作系统。而嵌入式实时操作系统具有桌面操作系统不可比拟的如下优点:(1)可裁减性和可扩展性好。桌面操作系统的研发宗旨是在尽可能不改变自身的前提下具有更广泛的适应性。而 R T O S体现了一种新的设计思想和一
2、个开放的软件框架,它以任务管理的方式来组织系统的运行结构,系统软件的扩展简化为对任务模块的增加、删除和修改 1。(2)实时性强。桌面操作系统是由分时操作系统发展而来,其基本设计原则是 2:尽量缩短系统的平均响应时间并提高系统的吞吐率,在单位时间内为尽可能多的用户请求提供服务。由此可以看出,分时操作系统注重平均表现性能,不注重个体表现性能。对于整个系统来说,注重所有任务的平均响应时间而不关心单个任务的响应时间,对于单个任务来说,注重每次执行的平均响应时间而不关心某次特定执行的响应时间。而实时操作系统所遵循的最重要的设计原则是 2:采用各种算法和策略,始终保证系统行为的可预测性。可预测性是指在系统
3、运行的任何时刻,在任何情况下,实时操作系统的资源调配策略都能为争夺资源(包括 C P U、内存、网络带宽等)的多个实时任务合理地分配资源,使每个实时任务的实时性要求都能得到满足。因此,实时操作系统注重的是个体表现,要求每个实时任务在最坏情况下都要满足其实时性要求,实时性很强。(3)移植性好。桌面操作系统体积庞大,移植困难。而 R T O S却小巧简捷,具有很好的移植性。因此,嵌入式实时操作系统更适合于要求实时性强和可靠性高的数控系统。桌面操作系统即使进行了实时性扩展,但是由于其一般不可裁减,代码庞大,所以扩展后仍很难与嵌入式实时操作系统相媲美。所以本文所述的数控系统就是采用R T O S 为软
4、件平台。具体的实施办法就是:选择一种性价比比较高的嵌入式实时操作系统(本系统采用 C/O S-I I),将其移植到设计好的嵌入式硬件平台上,然后对上层的应用软件进行开发。至于该系统的整体设计,已另有它文论述。本文重点探讨译码任务实现过程中的若干关键问题。基于嵌入式实时操作系统的数控程序译码实现许爱芬,王太勇,王涛,赵丽X UA i-f e n,WA N GT a i-y o n g,WA N GT a o,Z H A OL i天津大学 机械学院,天津 3 0 0 0 7 2M e c h a n i c a l E n g i n e e r i n gD e p a r t m e n t,
5、T i a n j i nU n i v e r s i t y,T i a n j i n3 0 0 0 7 2,C h i n aE-m a i l:j j x y x a f 1 2 6.c o mX U A i-f e n,WA N G T a i-y o n g,WA N G T a o,e ta l.R a l i z a t i o no fc o d i n gf o rC N C p r o g r a m b a s e do ne mb e d d e-r t o s.C o mp u t e rE n g i n e e r i n ga n dA p p l i c
6、a t i o n s,2 0 0 7,4 3(2 8):9 5-9 8.A b s t r a c t:T h ef e a s i b i l i t ya n dn e c e s s i t yt h a te m b e d d e d-R T O Sc a nb eu s e di nC N Ci sd i s s e r t a t e d,a n db a s e do nt h ee m b e d d e dR T O S,t h ec o d i n ga l g o r i t h m o fC N C p r o g r a m i sr e a l i z e d.
7、T h ek e yq u e s t i o n sa n di t sa t t e m p e rt a c t i ca r ea n a l y z e di nd e t a i l.T h ec o d i n ga l g o r i t h m h a sb e e n a p p l i e d i n s e l f-r e s e a r c h e d C N C o fT D N C L 4 M,I ti sp r o v e d i n e m u l a t i o n a n d p r a c t i c et h a tt h ea l g o r i t
8、 h m i se f f i c i e n t a n du s e f u l.K e yw o r d s:e m b e d d e ds y s t e m;R T O S;C N C;d e c o d i n g;C/O S I I摘要:论述了嵌入式实时操作系统用于数控系统的可行性和必要性。基于嵌入式实时操作系统实现了数控系统译码任务的算法,对于译码算法中的关键问题及其调度策略进行了详尽地分析。该算法已经用于本实验室自行研发的 T D N C L 4 M数控系统中,经仿真和联机运行证明该算法是可行的。关键词:嵌入式系统;实时操作系统;数控系统;译码;C/O S I I文章编号:
9、1 0 0 2-8 3 3 1(2 0 0 7)2 8-0 0 9 5-0 4文献标识码:A中图分类号:T P 2 7 3;T G 6 5 9基金项目:国家自然科学基金(t h eN a t i o n a l N a t u r a l S c i e n c eF o u n d a t i o no f C h i n au n d e rG r a n t N o.5 0 4 7 5 1 1 7);天津市应用基础研究计划重点项目(N o.0 5 Y F J Z J C 0 1 8 0 0)。作者简介:许爱芬(1 9 7 2-),女,博士研究生,研究方向:开放式数控技术和嵌入式控制系统;
10、王太勇(1 9 6 2-),男,教授,博士生导师,从事数控技术,信号测试与分析,网络化制造方向的研究工作;王涛(1 9 7 9-),男,博士研究生,研究方向:开放式数控技术和嵌入式控制系统;赵丽(1 9 7 8-),女,博士研究生,研究方向:数控技术和刀具路径规划的研究。C o m p u t e rE n g i n e e r i n ga n dA p p l i c a t i o n s 计算机工程与应用9 5C o m p u t e rE n g i n e e r i n ga n dA p p l i c a t i o n s 计算机工程与应用2 0 0 7,4 3(2 8
11、)2 译码任务的功能划分和设计流程2.1 基于 R T O S 的数控系统运行任务的划分数控系统是一个专用的实时多任务计算机系统。实时性是指数控系统在某个确定的有限的时间内,必须对外部产生的随机事件做出响应,并在确定的时间内完成相应任务的处理;多任务并行处理则要求数控系统必须具有在同一时刻或同一时间间隔内完成两种或两种以上性质相同或不相同任务的能力 3。按照任务运行实时性的强弱,可以将数控系统的任务划分为控制任务和管理任务(图 1)。其中控制任务的工作与数控加工直接相连,实时性强,是 C N C系统的核心任务。主要包括指令译码、插补运算、位置控制和 P L C等;管理任务是 C N C系统各部
12、分协调工作的保证。主要包括人机交互、数据图形显示、通讯联网、系统状态监测和诊断等。不同任务之间的并行处理关系如图 2 所示。在实际的设计中,可以根据需要对各个子任务进行进一步的细分,形成一个任务集合。集合中的每一个任务都必须根据外部事件即时被激活运行,同时结合具体的加工情况,由 C/O S-I I 同一调度。C/O S-I I 是一个源码开放的抢占式实时操作系统,性价比高,内核可以裁减,执行时间可以确定,短小精悍,具有很强的移植性 4。2.2 译码任务的功能划分和设计流程译码是数控系统不可或缺的一个重要组成部分。数控系统中的译码与普通的编译器不同,它必须要结合数控系统自身的特点,按照数控系统总
13、体设计的规定,采用某种方式产生特定的编译执行结果,而不是产生二进制可执行代码。数控系统中的译码功能是整个数控系统运动控制的基础,负责完成用户输入的繁杂的信息处理,产生插补功能所需要的插补信息,从而使插补功能可以只专注于几种运动方式的插补实现,不必关心插补信息的获取过程。可以说,数控系统的译码功能在一定程度上决定了整个数控系统性能的优劣。因此,研究和开发功能强大、高准确性和高可靠性的数控系统的译码功能是一个很重要的研究课题,对提高我国数控系统的档次和水平,推广普及数控机床在制造行业的应用,缩小同发达国家在数控技术上的差距有着重要的意义。数控系统的译码是将每一个数控加工程序段转换成数控执行机构的相
14、应控制指令,同时还要对数控程序代码的正确性进行校验。因此,译码任务要完成两个功能,一个是代码的预处理,即对读取的每一个程序段进行词法、语法、语义的检查;另一个是各功能代码的数据翻译,即将经过预处理后的加工代码翻译成执行机构可以识别的目标码。其数据流动过程如图 3所示。按照编译原理,数控系统的译码主要有两种方式 5:(1)解释方式是对零件加工程序逐条进行解释、插补、控制,即在插补模块定时中断进行插补的同时,解释程序预解释下一条程序,等本条程序插补完成后,再将下条程序预解释的结果交插补模块。这种方法实现简单,但各模块间的控制是顺序的、串行的,加工效率低,不易处理各程序段间的转接,易形成停顿与过切。
15、(2)编译方式编译程序预先对要加工的零件程序全部编译,将结果放入缓冲区中,当开始加工时,直接启动插补中断程序,从缓冲区中取出编译好的零件程序,进行计算并控制程序加工。这种方法加工速度快、效率高,但需要较大的内存空间,并且编译与加工之间存在时间间隔。当利用小直线段进行插补或零件程序较为复杂时,极容易造成系统资源紧张,降低系统总体性能。考虑到解释方式与编译方式的优缺点,结合嵌入式数控系统开发的实际特点,本系统采用了解释编译的方式。编译程序第一次扫描零件加工程序时,主要进行程序格式分析以及词法分析,并进行简单的词义考察,但并不处理有关的数据。如果零件加工程序没有语法格式错误,则进行第二次扫描,也就是
16、各功能字的翻译和数据处理工作。3 译码任务调度机制的实现3.1 译码和轨迹插补之间的任务切换在本系统中,根据实际加工的需要,控制任务按照优先级由高到低的顺序排列如下:位置控制轨迹插补、误差控制、I/O控制、指令译码、实时监控、故障诊断;而管理任务的优先级要比控制任务的优先级都低。各个任务由 C/O S-I I 统一调度,C/O S-I I 支持内核抢占式优先级调度法,也就是说系统总是试图运行就绪任务中优先级最高的任务。插补任务是生成加工轨迹的一个最基本也是最重要的子任务,它的优先级高于译码任务。但是插补能够得以进行的前提是必须要先译码。为了保证轨迹插补的顺畅进行,在两个任务之间必须要建立良好的
17、调度机制。事件是任务之间、中断和任务之间通信的主要手段,包括信号量、消息邮箱、消息队列和标志等。本文巧妙地运用这些事件,实现数控程序“译一条,发一条,插补一条”的策略,真正实现和保证插补的实时性和正确性。译码和插补的任务函数分别如下:v o i dT a s k C o d e T r a n(v o i d*p A r g)/译码任务f o r(;)S t a r t N C l i n e s=(c h a r*)J B Wa i t M b o x(G c o d e M B o x);E r r F l a g=f a l s e;9 62 0 0 7,4 3(2 8)/检错L i n
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 嵌入式 实时 操作系统 数控 程序 译码 实现
限制150内