欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    基于嵌入式实时操作系统的数控程序译码实现.pdf

    • 资源ID:70343408       资源大小:616.21KB        全文页数:4页
    • 资源格式: PDF        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于嵌入式实时操作系统的数控程序译码实现.pdf

    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体现了一种新的设计思想和一个开放的软件框架,它以任务管理的方式来组织系统的运行结构,系统软件的扩展简化为对任务模块的增加、删除和修改 1。(2)实时性强。桌面操作系统是由分时操作系统发展而来,其基本设计原则是 2:尽量缩短系统的平均响应时间并提高系统的吞吐率,在单位时间内为尽可能多的用户请求提供服务。由此可以看出,分时操作系统注重平均表现性能,不注重个体表现性能。对于整个系统来说,注重所有任务的平均响应时间而不关心单个任务的响应时间,对于单个任务来说,注重每次执行的平均响应时间而不关心某次特定执行的响应时间。而实时操作系统所遵循的最重要的设计原则是 2:采用各种算法和策略,始终保证系统行为的可预测性。可预测性是指在系统运行的任何时刻,在任何情况下,实时操作系统的资源调配策略都能为争夺资源(包括 C P U、内存、网络带宽等)的多个实时任务合理地分配资源,使每个实时任务的实时性要求都能得到满足。因此,实时操作系统注重的是个体表现,要求每个实时任务在最坏情况下都要满足其实时性要求,实时性很强。(3)移植性好。桌面操作系统体积庞大,移植困难。而 R T O S却小巧简捷,具有很好的移植性。因此,嵌入式实时操作系统更适合于要求实时性强和可靠性高的数控系统。桌面操作系统即使进行了实时性扩展,但是由于其一般不可裁减,代码庞大,所以扩展后仍很难与嵌入式实时操作系统相媲美。所以本文所述的数控系统就是采用R T O S 为软件平台。具体的实施办法就是:选择一种性价比比较高的嵌入式实时操作系统(本系统采用 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,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 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.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 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文章编号: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-),女,博士研究生,研究方向:开放式数控技术和嵌入式控制系统;王太勇(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)2 译码任务的功能划分和设计流程2.1 基于 R T O S 的数控系统运行任务的划分数控系统是一个专用的实时多任务计算机系统。实时性是指数控系统在某个确定的有限的时间内,必须对外部产生的随机事件做出响应,并在确定的时间内完成相应任务的处理;多任务并行处理则要求数控系统必须具有在同一时刻或同一时间间隔内完成两种或两种以上性质相同或不相同任务的能力 3。按照任务运行实时性的强弱,可以将数控系统的任务划分为控制任务和管理任务(图 1)。其中控制任务的工作与数控加工直接相连,实时性强,是 C N C系统的核心任务。主要包括指令译码、插补运算、位置控制和 P L C等;管理任务是 C N C系统各部分协调工作的保证。主要包括人机交互、数据图形显示、通讯联网、系统状态监测和诊断等。不同任务之间的并行处理关系如图 2 所示。在实际的设计中,可以根据需要对各个子任务进行进一步的细分,形成一个任务集合。集合中的每一个任务都必须根据外部事件即时被激活运行,同时结合具体的加工情况,由 C/O S-I I 同一调度。C/O S-I I 是一个源码开放的抢占式实时操作系统,性价比高,内核可以裁减,执行时间可以确定,短小精悍,具有很强的移植性 4。2.2 译码任务的功能划分和设计流程译码是数控系统不可或缺的一个重要组成部分。数控系统中的译码与普通的编译器不同,它必须要结合数控系统自身的特点,按照数控系统总体设计的规定,采用某种方式产生特定的编译执行结果,而不是产生二进制可执行代码。数控系统中的译码功能是整个数控系统运动控制的基础,负责完成用户输入的繁杂的信息处理,产生插补功能所需要的插补信息,从而使插补功能可以只专注于几种运动方式的插补实现,不必关心插补信息的获取过程。可以说,数控系统的译码功能在一定程度上决定了整个数控系统性能的优劣。因此,研究和开发功能强大、高准确性和高可靠性的数控系统的译码功能是一个很重要的研究课题,对提高我国数控系统的档次和水平,推广普及数控机床在制造行业的应用,缩小同发达国家在数控技术上的差距有着重要的意义。数控系统的译码是将每一个数控加工程序段转换成数控执行机构的相应控制指令,同时还要对数控程序代码的正确性进行校验。因此,译码任务要完成两个功能,一个是代码的预处理,即对读取的每一个程序段进行词法、语法、语义的检查;另一个是各功能代码的数据翻译,即将经过预处理后的加工代码翻译成执行机构可以识别的目标码。其数据流动过程如图 3所示。按照编译原理,数控系统的译码主要有两种方式 5:(1)解释方式是对零件加工程序逐条进行解释、插补、控制,即在插补模块定时中断进行插补的同时,解释程序预解释下一条程序,等本条程序插补完成后,再将下条程序预解释的结果交插补模块。这种方法实现简单,但各模块间的控制是顺序的、串行的,加工效率低,不易处理各程序段间的转接,易形成停顿与过切。(2)编译方式编译程序预先对要加工的零件程序全部编译,将结果放入缓冲区中,当开始加工时,直接启动插补中断程序,从缓冲区中取出编译好的零件程序,进行计算并控制程序加工。这种方法加工速度快、效率高,但需要较大的内存空间,并且编译与加工之间存在时间间隔。当利用小直线段进行插补或零件程序较为复杂时,极容易造成系统资源紧张,降低系统总体性能。考虑到解释方式与编译方式的优缺点,结合嵌入式数控系统开发的实际特点,本系统采用了解释编译的方式。编译程序第一次扫描零件加工程序时,主要进行程序格式分析以及词法分析,并进行简单的词义考察,但并不处理有关的数据。如果零件加工程序没有语法格式错误,则进行第二次扫描,也就是各功能字的翻译和数据处理工作。3 译码任务调度机制的实现3.1 译码和轨迹插补之间的任务切换在本系统中,根据实际加工的需要,控制任务按照优先级由高到低的顺序排列如下:位置控制轨迹插补、误差控制、I/O控制、指令译码、实时监控、故障诊断;而管理任务的优先级要比控制任务的优先级都低。各个任务由 C/O S-I I 统一调度,C/O S-I I 支持内核抢占式优先级调度法,也就是说系统总是试图运行就绪任务中优先级最高的任务。插补任务是生成加工轨迹的一个最基本也是最重要的子任务,它的优先级高于译码任务。但是插补能够得以进行的前提是必须要先译码。为了保证轨迹插补的顺畅进行,在两个任务之间必须要建立良好的调度机制。事件是任务之间、中断和任务之间通信的主要手段,包括信号量、消息邮箱、消息队列和标志等。本文巧妙地运用这些事件,实现数控程序“译一条,发一条,插补一条”的策略,真正实现和保证插补的实时性和正确性。译码和插补的任务函数分别如下: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 e N C C o u n t=S t a r t E r r o r C h e c k i n g(S t a r t N C l i n e s,N C c o d e A r r a y);i f(E r r F l a g)c o n t i n u e;I n i t i a l P r o g r a m(S t a r t P o i n t);J B P o s t S e m(S t a r t I n t e r p o l S e m);/开始译码f o r(j=0;j L i n e N C C o u n t;j+)j=S t a r t C o d e T r a n(N C c o d e A r r a y j ,j,N C c o d e A r r a y,L i n e N C C o u n t);v o i ds a v e(v o i d)/保存译码结果后以消息队列或邮箱的形式发给插补任务/发送译码数据f o r(;)a=J B P o s t M s g Q(M s g Q G c o d e T r a n,&R e s u l t D a t a D a t a N o ,J B _N O R M A L);i f(a=0)b r e a k;e l s eJ B Wa i t S e m(R e p o s t S e m);c o n t i n u e;v o i dT a s k I n t e r p o l(v o i d*p A r g)/插补任务f o r(;)J B Wa i t S e m(S t a r t I n t e r p o l S e m);f o r(;)C o d e T r a n R e s u l t=J B Wa i t M s g Q(M s g Q G c o d e T r a n);J B P o s t S e m(R e p o s t S e m);3.2 译码和出错报警之间的任务切换译码任务的功能之一就是检查数控加工程序,有错及时报警。因此,二者之间联系比较紧密。译码任务中的检错分为两个进程,第一次对程序进行扫描时,主要是检错。如果程序有错,则向报错任务发送信号量,使得译码任务被挂起,转入出错报警任务。直到程序没有语法和词法错误(E r r F l a g=t r u e)。而语义错误只有在第二次扫描时才能被检出,比如用半径 R描述了整圆,这在数控编程中是禁止的。此时,译码任务再度被挂起,直到程序准确无误,译码任务才能顺利完成。报错任务的相关函数如下:v o i dT a s k E r r o r(v o i d*p A r g)U c h a rT e m p E r r o r N u m;p A r g=p A r g;f o r(;)T e m p E r r o r N u m=*(U c h a r*)J B Wa i t M b o x(E r r o r N u m M B o x);L a s t M a i n I n t e r a c t=M a i n I n t e r a c t;M a i n I n t e r a c t=E R R O R;D i s p E r r o r V i e w(T e m p E r r o r N u m);f o r(;)i f(B a c k F r o m E r r o r=t r u e)B a c k F r o m E r r o r=f a l s e;b r e a k;v o i dS a v e E r r o r(v o i d)/保存错误的相关信息后发邮箱给主任务函数U c h a rn u m;s t r c p y(E r r o r D a t a.L i n e N u m b e r,L i n e N u m b e r);s t r c p y(E r r o r D a t a.c o d e,E r r o r C o d e);s t r c p y(E r r o r D a t a.E r r o r I n f o,E r r o r I n f o);E r r o r D a t a.E r r o r T y p e=E r r o r T y p e;n u m=(U c h a r)E R R O R _ P R _ C O D E T R A N;J B P o s t M b o x(E r r o r N u m M B o x,&n u m,J B _ M B O X _ T O _ A L L);J B P o s t M b o x(E r r o r M b o x,&E r r o r D a t a,J B _ M B O X _ T O _ A L L);E r r F l a g=t r u e;4 实例分析和验证下面以“天大”的加工程序代码为例,具体分析上述算法的运行机制。N 0 0 1 0 G O O X 1 0 Y 3 0 S 5 0 0 M 0 3;N 0 0 2 0 G 0 1 X 2 0 F 5 0 0;N 0 0 3 0 G 0-0 X 7 Y 2 0;N 0 0 4 0 G 0 1 X 2 3;N 0 0 5 0 G 0 0 X 1 5 Y 3 0N 0 0 6 0 G 0 1 Y 2 0;N 0 0 7 0 G 0 2 X 0 Y 5 R 1 5;N 0 0 8 0 G 0 0 X 1 5 Y 2 0;N 0 0 9 0 G 0 3 X 3 0 Y 5 R 1 5;N 0 1 0 0 G 0 0 X 3 7 Y 2 5N 0 2 0 0 G 0 1 X 5 3;N 0 3 0 0 G 0 0 X 4 5 Y 3 0;N 0 4 0 0 G 0 1 Y 2 5;N 0 5 0 0-G 0 2 X 3 5 Y 5 R 2 0;N 0 6 0 0 G 0 0 X 4 5 Y 2 5N 0 7 0 0 G 0 3 X 5 5 Y 5 R 2 0;N 0 8 0 0 G 0 0 X 0 Y 0;N 0 9 0 0 M 0 2由于插补任务的优先级比译码任务要高,所以按下“自动加工”键后,系统首先进入插补任务。插补任务要等待译码任务发送的信号“S t a r t I n t e r p o l S e m”和邮箱“M s g Q G c o d e T r a n”的内容,因此,插补任务被挂起,转入译码任务。在译码任务中,首先进行程序检错,如果成序在输入的过程中存在错误,系统会报警,如图 4 中的(a)、(b)。系统译完第一段程序后,将相应的数据,比如终点值(1 0,3 0)、G代码(0)、进给速度(F G 0 0)等以邮箱的形式发给插许爱芬,王太勇,王涛,等:基于嵌入式实时操作系统的数控程序译码实现9 7C 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)为 8 幅,识别率为 9 6%。显然,由于考虑了分类识别信息,本文的方法要好于简单应用傅里叶特征进行人脸识别的方法。另外,由于应用遗传算法进行特征选取,从而使人脸图像模式的存储量也有所下降。应用文献 3 给出的方法存储的特征数为 1 0 2 4,而应用本文给出的方法存储的特征数为 5 5 6。相对于文献 3 ,本文方法人脸模式的存储量下降了 4 5.7%。显然,本文方法无论是在识别率上,还是在人脸模式存储量上都要好于简单应用傅里叶特征进行脸识别的方法。3.2 本文方法和基于核影射的人脸识别方法的对比实验为了对比分析,本文进行了和文献 6 给出的基于核影射的人脸识别方法的对比实验。本文方法所选参数和上一小节相同,在 2 0 0 个测试样本的情况下,错误识别数为 4。文献 6 在相近的图像分辨率 2 8 2 3 下,给定 2 0 0 个相同的测试样本,错误识别数为 1 0 1 5 不等。在最优情况下,文献 6 方法的错误识别数为 4 或 5。显然本文方法在识别率上要优于或等于文献 6 方法给出的性能。遗传算法求得的解是局部最优解,遗传算法中初始个体的选择,种群的大小,交配概率和变异概率的设置都会对求解结果产生影响。另外,适应函数的定义非常重要,其必须能反映出类与类之间的差别,同时又要使计算结果具有一定的泛化能力。合理地选择遗传算法的各种参数,适当地定义遗传算法的适应函数,基于傅里叶变换特征的人脸识别方法期望会得到更好的结果。(收稿日期:2 0 0 7 年 7 月)参考文献:1 T u r kM A,P e n t l a n dA.E i g e n f a c e sf o rr e c o g n i t i o n J .J o u r n a l o f C o g-n i t i v eN e u r o s c i e n c e,1 9 9 1,3(1):7 1-8 6.2 B e l h u m e u rPN,H e s p a n h aJP,K r i e n g m a nD J.E i g e n f a c e sv s.F i s h-e r f a c e s:r e c o g n i t i o n u s i n gc l a s ss p e c i f i cl i n e a rp r o j e c t i o n J .I E E ET r a n so nP A M I,1 9 9 7,1 9(7):7 1 1-7 2 0.3 L a iJH,Y u e nP C,F e n gG C.S p e c t r o f a c e:aF o u r i e r-b a s e da p-p r o a c hf o rh u m a nf a c er e o g n i t i o n C /P r o c e e d i n go ft h eS e c o n dI n t e r n a t i o n a lC o n f e r e n c e o n M u l t i m o d a l I n t e r f a c e,H o n g K o n g,1 9 9 9,6:1 1 5-1 2 0.4 L a iJH,Y u e n P C,F e n gG C.F a c er e c o g n i t i o n u s i n gh o l i s t i cF o u r i e r i n v a r i a n t f e a t u r e s J .P a t t e r nR e c o n i t i o n,2 0 0 1,3 4(1):9 5-1 0 9.5 赖剑煌,颜鑫弘,邓东皋.完善频谱脸人像识别的分类器设计 J .中国图象图形学报,2 0 0 2,7 A(5):4 6 6-4 7 1.6 张春雨,陈贺新,陈绵书.基于核影射的无相关鉴别矢量集算法 J .吉林大学学报:工学版,2 0 0 6,3 6(4):5 7 4-5 7 8.(上接 1 1 页)补任务,译码任务也就此挂起,系统转入刀具的加工或图形仿真,如图 5 中的(a)、(b)。此后,基于这种任务调度机制,译码任务就在各个插补周期内进行,与不采用嵌入式操作系统的前后台的译码机制相比,节省了时间,提高了效率,保证了插补的实时性。图 6 是实际零件的加工图。5 结束语选择嵌入式实时操作系统!C/O S-I I 作为数控系统运行的软件平台,实现了数控系统译码任务的算法,并与其它任务之间建立了健康良好的运行机制。经验证,设计的软件达到了数控系统的基本要求,表明具有可行性,为进一步提高系统的性能与精度打下了基础。本文所述的译码算法中,检错模块有被重复执行的可能,这是本课题有待于再研究和提高之处。(收稿日期:2 0 0 7 年 4 月)参考文献:1 李宏伟.基于 6 8 3 3 2 的嵌入式数控系统开发平台的研究 D .天津:天津大学机械工程学院,2 0 0 3-0 3.2 h t t p:/w w w.c h i n a r t o s.c o m.3 卢胜利,王睿鹏,祝玲.现代数控系统原理、构成与实例 M .北京:机械工业出版社,2 0 0 6.4 华亮,杨世锡.基于!C/O S-I I 的嵌入式系统应用平台的构建 J .计算机工程,2 0 0 4,3 0(1 5):1 8 4-1 8 6.5 孟健.数控系统译码模块的研究 D .辽宁:辽宁工程技术大学,2 0 0 6-0 1.6 J e a nJL.嵌入式实时操作系统!C/O S-I I M .邵贝贝,译.2 版.北京:北京航空航天大学出版社,2 0 0 3.7 周虹.开放式数控系统译码软件的设计 J .现代制造工程,2 0 0 6,9:5 2-5 5.9 8

    注意事项

    本文(基于嵌入式实时操作系统的数控程序译码实现.pdf)为本站会员(asd****56)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开