RTAI 的实时性测试及在 CNC 控制器的应用

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

RTAI 或 RTLinux 等实时方案来实现数控系统的控制器。基于 RTAI 在 Linux 上定义了实时 硬件抽象层,比 RTLinux 更具有可移植性,本项目采用 RTAI 来实现数控系统的控制器。 1 RTAI 的构架及实时性测试 1.1 RTAT 的实现构架
RTAI 是实时应用接口 Real-Time Application Interface 的缩写,RTAI 项目是由意大利的 DIAPM(Dipartimento di Ingegneria Aerospaziable - Politecnico di Milano)发起开发的遵循 GPL 的开源项目。RTAI 由五大部分组成,分别是硬件抽象层(HAL)、Linux 兼容层、实时操作 系统核、LX/RT(Linux Real-Time)、扩展功能包。硬件抽象层为硬件提供接口,Linux 和硬 实时操作系统核运行在其之上。Linux 兼容层为 Linux 操作系统提供了接口,通过这个接口 Linux 的任务管理器可以管理 RTAI 的任务。实时操作系统核为任务调度、中断处理等提供 硬实时功能,这部分与 RTLinux 等其它实时系统基本一样。LX/RT 是 RTAI 的特色之一,它 在内核和用户空间提供了对称的实时 API,使在 Linux 的内核和用户空间的任务都可以具有 软实时和硬实时的特性。扩展功能包提供了很多有用的额外功能,例如进程间通信的几种方
1. 创建 5 个进程反复进行开平方根操作; 2. 创建 5 个进程反复进行内存的分配和释放操作; 3. 创建 5 个进程反复进行大文件的写操作。 对内核空间进行 2 个小时的周期为 100000ns 的响应测试,测试结果如图 1 所示。图 1 中 lat_min 表示每一秒内响应提前的最长时间,负号表示响应提前;ovl_min 表示自开始测试到 当前响应提前的最长时间;lat_avg 表示每一秒内响应偏差的平均值;lat_max 表示每一秒内 响应延时的最长时间;ovl_max 表示自开始测试到当前响应延时的最长时间;overruns 表示 响应偏差大于 100000ns 的次数。图中响应的最大提前为 2068ns,响应的最大延时为 38108ns, 可见 RTAI 的响应可以达到几十 us 以内,实时性能较好。假如采用与本平台不一样的 PC 机 进行测试,测试结果不佳,可考虑在 PC 机的 CMOS 和配置 Linux 时更改与下列等因素相关 的选项,这些对实时性能有一定影响的因素有: 1. 繁多的 DMA 访问; 2. 使用了加速视窗服务器; 3. USB 相关设备的支持; 4. APM 和 ACPI 等电源管理; 5. 系统管理中断。
RTAI-3.5 indicates that RTAI `s real-time performance is good. RTAI is applied to construct the controller of CNC based its good read-time performance. Block diagram、hardware composition
式、网络、串行驱动、POSIX 接口、为 Labview、Comedi 和 Real-Time Workshop 工具软件 提供接口、软件狗等等。
1.2 RTAI 的实时性测试 在采用任何实时系统进行开发前应该对其进行相关的实时性测试。本测试的硬件平台
是 PC 机,CPU 为 AMD 的 Sempron2500+,主板是 ONDA 的 N61G,内存 512M;测试的软
introduced. The excellent architecture of RTAI lays the good foundation for its real-time performance and the result of the latency test in a platform built by PC、Linux-2.6.17 and
图 2 数控系统基本构成
图 3 数控系统控制器结构 2.1 数控系统控制器的硬件构成
由图 3 可见,组成数控系统控制器的硬件有进行 PID 运算的上位机、D/A 转换器、伺 服电机和编码器,同时还有图 3 没有显示的用 FPGA 实现的功能模块,这些模块包括有 PCI 总线模块、D/A 转换器驱动模块和计数编码器模块。上位机就是进行 RTAI 实时性能测试的 PC 机;D/A 转换器采用的是 BB 公司 16 位的 DAC714,其内部集成有运算放大器可以直接 输出模拟电压驱动伺服电机;伺服电机为 YASKAWA 的型号为 SGMAH 的伺服电机,选取 速度控制模式;编码器为与伺服电机配套的编码器,其反馈伺服电机的位置输出值;FPGA 中的功能模块采用 VHDL 语言编程实现,PCI 总线模块实现 PCI 总线,使得上位机可以与 FPGA 通信;D/A 转换器驱动模块实现 DAC714 的驱动时序,驱动 D/A 转换器把速度给定 值从数值量转换为模拟量;计数编码器模块实现对编码器进行计数,从而记录了位置输出的 当前值。
陈永茂:硕士研究生
1
基金项目:广东省科技攻关项目(2003C101002)
件平台是 Linux-2.6.17 内核和 RTAI-3.5。测试步骤如下:首先安装 RTAI 对 Linux 内核的补 丁包,此包在“RTAI 源码目录/base/arch/”目录下;接着配置、编译和安装 Linux 内核,配 置内核时 RTAI 要求选上“User register arguments”和“Interrupt pipeline”选项,去掉“Module versioning support”选项;然后配置、编译和安装 RTAI,配置按照需求进行配置即可;最后 运行 RTAI 的测试包文件,这些文件在“/usr/realtime/testsuite/”目录下,这里有两个文件夹, 一个是测试用户空间的实时性能,另一个是测试内核空间的实时性能,每个文件夹中包含三 项测试,分别为响应(latency)测试、切换(switches)测试、抢占(preempt)测试。由于 本项目的数控系统控制器是利用模块实现的周期性运行的任务,所以只需对内核空间进行响 应测试。在系统负载如下:
RTIME now, period; init_PID (); init_read_encoder (); init_write_DAC (); rt_linux_use_fpu (1);
//初始化 PID 运算 //初始化读编码器 //初始化写 D/A 转换器 //设置允许浮点运算
rt_task_init (&thread, motController, 0, 50000, 0, 1, 0);
……
}
}
static void cleanup_module (void) Nhomakorabea{
…… rt_task_delete (thread); //删除线程 cleanup_write_DAC (); //清除写 D/A 转换器 cleanup_read_encoder (); //清除读编码器 cleanup_PID (); //清除 PID 运算
return 0;
}
void motController (long t)
{
……
while (1)
{ rt_task_wait_period (); // 悬挂,等待下个周期的到来
…… read_encoder (); PID (); write_DAC ();
// 读编码器 // 进行 PID 运算 // 写 D/A 转换器
为了满足社会经济发展和科技发展的需要,数控系统正朝着高精度、高速度、高可靠
性、多功能、智能化、集成化、网络化及其开放性等方向发展。而 Linux 操作系统在可靠性、 网络化和开放性等方面有杰出的性能,而且还具有源代码开放、内核可裁减、适用多种硬件
平台等特点。因此越来越多的人采用 Linux 操作系统来开发数控系统。但是由于 Linux 操作 系统并不是实时操作系统,它并不能满足数控系统控制器的硬实时性要求,这样必须增加
and software structure of the controller are briefly introduced also. CNC is developed by my lab
with this controller works well.
Key words: RTAI; Real-time test; CNC; Controller 0 引言
} 3. 结论
RTAI 具有优秀的构架,实时性能较好。基于 RTAI 可以实现实时性要求较高的数控系 统控制器,该控制器应用到本试验室开发的数控系统中,取得良好的效果。
本文作者创新点:
1. 在 PC 机+Linux-2.6.17+RTAI-3.5 的平台中进行响应实时性能测试; 2. 应用 RTAI 开发数控系统的控制器。 参考文献:
RTAI 的实时性测试及在 CNC 控制器的应用
Real-time Test for RTAI and Application of RTAI to CNC Controller (华南理工大学)陈永茂 刘少君 裴海龙
CHEN YONGMAO LIU SHAOJUN PEI HAILONG 摘要:主要介绍 RTAI 的实时性测试及其在数控系统控制器的应用。RTAI 优秀的实现构架 为其实时性奠定良好的基础,在 PC 机+Linux-2.6.17+RTAI-3.5 的平台中进行响应测试,结 果表明 RTAI 的实时性能较好。基于 RTAI 的实时性能好,应用 RTAI 到数控系统控制器的 实现中。该数控系统控制器的结构框图、硬件组成和软件框架在文中得到简要介绍。该控制
图 1 响应测试结果 2 基于 RTAI 的数控系统控制器
本实验室开发的数控系统基本上由加工代码解释器、插补器和控制器组成,它们的关
2
系如图 2 所示。加工代码解释器负责解释加工的程序代码,插补器进行插补运算,它们对实 时性的要求不高,在 Linux 中实现;而控制器需要较高的响应速度才能保证数控系统的快速 性和精度,对实时性要求很高,故在 RTAI 中实现。本数控系统控制器的组成如图 3 所示。 采用此控制器的数控系统安装到一台雕铣机上进行加工实验,稳定性、快速性和精度都基本 达到要求。
//初始化实时任务
…… period = start_rt_timer (nano2count(PERIOD)); //设置任务周期为 PERIOD 纳秒
3
now = rt_get_time (); rt_task_make_periodic (&thread, now + period, period); //使实时任务周期运行
2.2 数控系统控制器的软件模块 数控系统控制器的软件主要包括读编码器、PID 运算和写 D/A 转换三部分,由于其对
实时性要求很高,故在内核空间采用运行周期任务的模块实现。软件的实现框架如下:
static RT_TASK thread;
static int init_module (void)
{
……
器应用在本实验室开发的数控系统,工作效果良好。
关键词:RTAI;实时性测试;数控系统;控制器 中图分类号:TP316.2
文献标识码:B
Abstract: The real-time test for RTAI and the application of RTAI to CNC controller are mainly
[1] Herman Bruyninckx. Real-Time and Embedded Guide. November, 2002
[2] Giovanni Racciu, Paolo Mantegazza. RTAI 3.4 User Manual rev 0.3. October, 2006 [3] 李俊平等. 基于 Linux 的实时平台的研究[J]. 微计算机信息,2005, 7:21-23 [4] 王永章. 机床的数字控制技术[M]. 哈尔滨工业大学出版社,1995, 7
相关文档
最新文档