最新新闻
我要投稿
联系电话:027-87592219/20/21转188
投稿邮箱:tb@e-works.net.cn
您所在的位置:首页 > 智库 > 智能生产

RTAI在开放式数控系统运动控制器中的应用

发布时间:2013-11-30 作者:陆胜 曾高荣 刘锬  来源:万方数据
关键字:RTAI 运动控制器 开放式 
由于Linux不具有硬实时性,在开放式数控系统运动控制器中采用RTAI(Real Time ApplicationInterrace)妻时方案来解决嵌入式Linux数控平台的实时问题。RTAI能够实现内核的可抢占性,实时中断机制以及动态优先级调度等基本实时机制;同时它完全开放源码,方便针对嵌入式控制应用的内核调度机制进行改造。文章对RTAI的特性及在基于Mpe5200数控系统运动控制器中的改造和应用进行了研究分析。实验证明该方案能够满足嵌入式控制系统的实时性需求。

  2.2 软件结构设计

  在实时Linux下,为了保证数控系统的实时任务能够即时响应。所有和实时相关的任务都必须放在内核层下,每个任务用一个独立的内核进程来执行,实时进程是通过调用RTAI的rt—task—init()函数来实现的。而非实时任务则放在用户层下,它们在任何时候都不会打断实时任务的运行,只有在实时任务结束后才会执行。

  嵌入式数控的基本功能由各种功能模块共同来实现的。在以linux为操作系统的开放式平台上集成RTAI的实时内核。通过模块化的设计思想,可以将整个控制系统按照实时性的要求分为用户层模块,内核层实时模块两个大的模块,同时在两个大的模块下又根据不同的子功能分为代码解释模块,人机交互及刀具仿真图形模块,文件管理模块,位置控制模块,插补运算模块,状态监测模块等,如图4所示。

系统软件结构图
图4系统软件结构图 

  内核层和用户层之间进程的通讯主要是依靠RTAI提供的实时nFo,通过调用函数rlf_create()来创建管道实现数据传输。FIFO的通信是单向的,因此用户层和内核层的信息交互必须至少创建两条管道才能实现。

3 实时控制的软件实现

  根据对开放式运动控制器的运行机制分析,将各实时任务模块分别设置相应的定时器工作方式。优先级及通信队列等。

  实时功能模块实现方式如下:位置控制任务moor()决定电机控制精度。计算下一周期的实际坐标增量,输出到伺服单元驱动步进电机工作。因此将其设计成周期性RTAI线程.运行周期为4ms,1级优先权。

  功能控制任务control()是利用fifo从用户层向内核层传递控制命令,并实现对I/O口的控制。此任务采用实时中断策略,在接受到控制命令,内核挂起位置控制任务。

  状态检测任务monitor()要对状态进行实时监控。因此设置此任务运行周期为lOms.优先级为3级。运动控制器软件的所有实时任务和函数包含在实时模块main—program.o中。通过编{t}/etc/rc.sysinit文件,在系统启动时加载到Linux内核中。当实时模块加入到内核中。实时模块中创建的线程和函数就可以访问系统的底层资源。

  实时任务模块的加载和卸载在Linux中由initmodule()和cleanup—module()两个函数实现的,同时可以通过这两个函数进行资源的分配和回收,以及线程和处理函数的创建。

函数
函数.

4 结束语

  本文在深入研究Linux实时操作系统的基础上。将Linux操作系统移植到数控机床上具有实用价值的嵌人式微处理器MPC5200上,证明了数控嵌人式系统完全可以实现一定程度的开放性,且移植Linux也是开发嵌人式数控运动控制器操作平台一种比较好的方案。具有明显的先进性和实用性。

  通过一系列的实验分析和应用研究,现已成功将MPC5200运动控制器应用于自主开发的一种基于CAN总线的嵌入式线束机控制系统,该系列机床已经通过项目成果鉴定,目前正在进行产业化推广工作。在此也希望本文能为开发和推广我国具有自主知识产权的嵌人式Linux运动控制系统提供一定的借鉴和帮助。  

2
本文为授权转载文章,任何人未经原授权方同意,不得复制、转载、摘编等任何方式进行使用,e-works不承担由此而产生的任何法律责任! 如有异议请及时告之,以便进行及时处理。联系方式:editor@e-works.net.cn tel:027-87592219/20/21。