基于EtherCAT的多轴运动控制系统设计*

2017-03-10 00:49颜钢锋
组合机床与自动化加工技术 2017年2期
关键词:主站实时性内核

谢 锴,颜钢锋

基于EtherCAT的多轴运动控制系统设计*

谢 锴,颜钢锋

(浙江大学 电气工程学院,杭州 310027)

针对多轴控制系统中的同步性问题,设计了一款基于EtherCAT的多轴运动控制系统,并提出了对主站和从站均采用实时操作系统的解决方案。对于EtherCAT主站,在嵌入式平台上,构建了基于Xenomai-Linux和Etherlab的主站方案,人机界面使用Qt来编写,EtherCAT从站采用的是uC/OS-III实时操作系统,通过抢占式内核保证了从站之间的数据实时性。通过主从站的双实时设计方案,保证了系统中多轴之间的同步性。实验结果表明,基于双实时操作系统的EtherCAT运动控制系统,连接便利,同步时间在微秒级别,具有很好的实时性。

实时以太网EtherCAT;ARM;Xenomai-Linux;uC/OS-III;Qt;多轴运动控制系统

0 前言

在传统的数控加工设备,工业机器人和机电一体化中,信号传输主要使用的是电缆或者光纤,由于传输介质的特点,使得多轴在进行协调工作时,存在一定的不同步性,从而影响工业加工的精度,并且传统系统构成比较复杂,成本比较高,维护比较困难。传统的控制系统主要是“PC机+控制卡”或者是“DSP+FPGA”的方案,系统性能受到很大的限制,同时,轴的控制数量不会超过6个,在需要控制的轴数目增多时,控制系统的成本会大大的增加[1]。新时期的发展对多轴之间的实时性和协调性提出了很高的要求,传统的技术已经难以解决新时期的问题。

随着计算机技术和工业以太网技术的发展与融合,工业以太网由于其速度快,成本低,扩展性好,抗干扰性强等特点得到了广泛的应用[2]。目前国际上有很多种实时以太网,EtherCAT(Ethernet for Control Automation Technology)技术是由德国Beckhoff公司提出的一种解决方案,此方案是基于标准的以太网技术,使用特殊的以太网数据帧类型(0x88A4)[3],系统配置简单,数据传输全双工,高速,高效,总线利用率较高,数据有效率达到90%以上[4],支持多种网络拓扑结构,每个系统从站数量可以扩展到65535个。

为适应生产设备的系统化、规模化的发展需求,本多轴控制系统引入EtherCAT技术,针对目前EtherCAT主站复杂等缺点,在嵌入式微处理器上实现EtherCAT主站,在uC/OS-III实时操作系统上实现EtherCAT从站,从而利用双实时操作系统实现了多轴控制,具有实时性好,可扩展性好,易于维护,成本低等多方面优点。

1 系统总体框架

本系统采用实时以太网EtherCAT协议作为多轴控制器系统的底层协议,在主从站均使用实时操作系统,根据EtherCAT协议,系统采用一主多从的结构,拓扑结构上,EtherCAT可以有很多种,其中为了通信的最稳定,这里采用了最简单,应用最为普遍的线性串行结构。主站采用标准的100Base-TX以太网卡[5],将开源的主站软件移植到嵌入式Linux系统上,由于Linux的非实时性,需要对其进行改造,本系统在Linux上移植Xenomai,实现了基于Beaglebone Black的嵌入式实时系统。Xenomai是linux内核的一个实时开发框架,它通过无缝地集成到linux环境中来给用户空间应用程序提供全面的,与接口无关的硬实时性能[6]。系统利用Qt编写上位机程序,对系统进行配置操作。

从站采用自主研发的以STM32为核心的具有EtherCAT网络接口的伺服驱动器,在STM32上运行uC/OS-III实时操作系统,uC/OS-III是一个可固化的,可扩展的,抢占式的实时内核,它管理的任务个数不受限制,优先级数不受限制,具有时间片轮转的功能,是第三代内核,提供了现代实时内核所期待的所有功能包括资源管理,同步,内部任务交流等,比uC/OS-II有很大的进步[7],本系统采用最新的实时性内核,进一步保证了从站代码解析的实时性。主站从站之间采用标准网线进行连接,为了保证实时性和抗干扰性,使用标准在CAT-5e上的电缆进行连接,同时,为了测试多轴系统的兼容性,将Estun公司和Beckhoff公司的伺服进行混合测试,系统总体框架如图1所示。

2 系统硬件设计

2.1 主站硬件选取

传统的EtherCAT主站是在PC机上实现,便携性不够,成本较高。本系统主站在嵌入式Linux上实现,硬件采用Beaglebone Black开发板,便携性与成本均有较大的改善。

2.2 从站硬件设计

EtherCAT从站控制器ESC是由专门的硬件来实现的,主要负责数据链路层和物理层的协议。ESC与主机设备之间的连接结构方式根据过程数据接口PDI的形式确定[8]。

本系统使用微处理器方式,总体框图如图2所示,图中,STM32负责通讯的应用层部分和伺服电机驱动控制部分。本文重点对通讯的应用层部分进行阐述。

为了对ET1100中的数据进行高速,大批量的读写,这里使用STM32的特殊解决方案——FSMC(灵活静态存储器控制器),如图3所示。

FSMC主要负责将系统总线AHB转化为可以读写相应存储器的形式,可以通过程序来方便的改写读取的速度,位数等,和传统的通过SPI与ET1100进行串行数据交换相比,FSMC屏蔽了对ET1100的具体操作,只要在对应的映射地址空间写入数据即可自动翻译到ET1100,同时数据是并行的,读写速度更快。

这里将ET1100存储器部分映射到STM32的FSMC的第1个BANK的第1个内存区,由于采用的是STM32F103VE只有16位的数据线,需要数据线和地址线复用。在解析出报文之后,将相应的数据解析,发送到驱动部分,然后产生相应的PWM波和数字信号经过高速光耦,经过相应的芯片(PS21A79)处理,产生伺服电机的动力信号。同时,电机的编码器数值经过定时捕捉,在CPLD中进行解算,传到STM32中,构成闭环控制。

3 系统软件设计

3.1 主站软件设计

EtherCAT主站使用的是IgH公司的开源主站代码,在实时Linux框架Xenomai-Linux上实现,软件系统架构如图4所示。

图4 主站软件架构图

从图4中可以看出,主站软件框架有两层需要进行设计,EtherCAT Master和Xenomai-Linux,其中EtherCAT Master为Etherlab代码,API层为用户接口,Master Core为软件系统提供协议解析等,Xenomai-Linux为主站系统实时解决方案,通过Adeos提供实时性的保证。

首先需要进行Xenomai-Linux的移植,设计难点在于修改内核选项,使得内核编译符合硬件配置,然后下载解压Etherlab的主站代码之后,配置源代码,需要使能RTDM,使能周期定时器hrttimer,然后进行编译,编译内核模块,加载到内核部分。这里使能RTDM主要是为了编译出API。

由于硬件采用的是Beaglebone Black开发板,运行的是linux-3.8内核,使用Xenomai版本为2.6.3,在修改内核选项时,需要disable CPU Frequency scaling,同时需要使能Real-time sub-system下的Driver,Testing Driver选项,然后使用arm-linux-gnueabi- 作为交叉编译器,编译内核。

本系统使用Qt来编写应用程序界面,调用生成的API来对设备节点进行操作。

主站软件系统将EtherCAT主站通讯操作封装为ethercat_master类,涉及的主要成员函数为check_domain1_state,check_master_state,check_config_states,write_process_data,cyclic_task等,负责EtherCAT通讯。软件系统将多轴控制算法封装为控制库,主要包括正逆运动算法解算,运动插补等。

图5 主站通讯流程图

主站程序总流程如图5所示,将UI线程与EtherCAT通讯线程分开,开启UI线程,将UI控件信号与处理函数连接,然后开启EtherCAT通讯线程,线程循环等待,处理UI传过来的数据。

3.2 从站软件设计

软件设计讲究分层化和模块化,为了统一化嵌入式微处理器的硬件资源,专注应用层的开发,本设计通过移植操作系统,将硬件进行抽象化。

操作系统内核有抢占式和非抢占式之分。由于使用同一个处理器(STM32)作为伺服控制和通讯应用层的芯片,需要同时处理多个任务,如何将多个任务进行调度和切换是从站软件设计的难点。非抢占式内核是任务主动放弃CPU的使用权,异步事件是由中断来处理的,但是中断服务之后,回到原来被中断的任务,直到任务主动放弃CPU的使用权,高优先级的任务无法主动去获取使用权,导致任务响应时间较慢,响应时间不确定。抢占式内核保证了任务的响应时间,高优先级的任务总是能够获取CPU的使用权,能够最大限度的减少任务调度的时间消耗,保证高优先级任务的实时性[9]。

综上所述,为了更好的发挥EtherCAT的实时性,在从站STM32中移植了uC/OS-III实时操作系统,利用uC/OS-III的抢占式内核特性,保证了通讯的实时性,抢占式内核工作原理如图6所示。

图6 uC/OS-III抢占式内核

软件系统设计分为两个部分,伺服驱动部分和通讯部分。伺服驱动部分主程序流程图如图7所示。

先对控制器的外设寄存器进行初始化,包括PWM定时器TIM1,电流电压采样ADC,通讯口USART等,然后建立与CPLD的通讯,故障自检,进行IPM控制电路自举电容充电,最后母线上电,完成伺服部分的初始化[10]。

再对EtherCAT通讯部分进行初始化。先是初始化STM32内部的IO引脚,外部中断,串口,总线等等,然后对EtherCAT协议相关变量进行初始化,包括清除事件屏蔽器,事件请求寄存器,读取SM通道,改变状态机等。

图7 伺服系统程序流程图

通讯部分为EtherCAT通信,总共创建三个任务,Task_Start,Task_ControlSWScan,Task_RemoteControl,优先级分别为28,32和30。Task_Start任务为工作LED的闪烁指示,Task_ControlSWScan为扫描外接按键的输入,Task_RemoteControl为EtherCAT的工作状态转换,解析得到的数据等。

其中,EtherCAT状态机有四个状态,初始化(Init),预运行(Pre-Operational),安全运行(Safe-Operational)和运行(Operational)。不同的阶段进行不同的工作,按照各个阶段的状态进行各个状态之间的转化,转化关系图如图8所示。

图8 从站状态机转化示意图

正如前面所述,STM32通过FSMC机制对ESC的DPRAM读写,首先映射ESC的DPRAM内存,起始地址为0x60000000,根据ET1100的时序,在STM32中设置FSMC的时序,如图9所示。对于数据的读写,直接通过读取FSMC中对应的地址空间即可,这是通讯实现的基础核心部分。

图9 FSMC时序设置

为了保证通讯的实时性,这里将通讯的三个任务等级设为高优先级,在执行伺服控制的时候,CPU可以被通讯任务抢占。

和传统软件设计相比,此次软件设计将实时操作系统uC/OS-III应用在EtherCAT从站设计中,一方面,将EtherCAT通讯任务设为高优先级任务,在数据到来时,能够抢占CPU资源,最大限度的保证了通讯实时。另一方面,方便对嵌入式资源进行统一化管理。

4 系统调试分析

基于图1所搭建的多轴运动控制平台,进行了控制系统测试分析。

4.1 Xenomai Latency测试

安装好Xenomai实时框架之后,进行latency测试,在/usr/xenomai/bin下,latency可以通过设置参数测试内核层,用户层的实时任务调度延迟时间和定时器中断实时性测试,使用命令latency-tX-s-TXX-pXXX,X数值可以为0,1,2,分别表示用户态,内核态和定时器中断[11]。

用户态测试如表1,执行命令为latency-t0-s-T10-p1000,测试时间为10s,采样周期为1000μs。

表1 用户态延时测试

由于篇幅的限制,这里只是截取其中的一部分,在表中可以看出,用户态下,最大延迟有44μs,最小为1μs,平均在5μs左右。

内核态测试如表2,执行命令为latency-t1-s-T10-p1000,测试时间为10s,采样周期为1000μs。

表2 内核态延时测试

从表中可以看出,内核态下最大延迟小于10μs,最小延迟小于1μs,平均延迟小于1μs,在内核态下有较好的调度延迟。

定时器中断实时性测试数据如表3,执行命令为latency-t2-s-T10-p1000,测试时间为10s,采样周期为1000μs。

表3 定时中断延时测试

从上表中看出,定时器中断最大延迟在6μs,最小延迟小于3μs,平均延迟小于3μs。以上的测试结果表明基于Xenomai-Linux的系统在内核态和用户态有很好的实时性,能够满足EtherCAT主站实时性要求。

4.2 多轴系统功能测试

硬件连接框图如图1所示,主站为Beaglebone Black嵌入式控制器,从站由三个部分组成,自制具有EtherCAT通讯功能的伺服控制器,Estun伺服和Beckhoff伺服。系统通讯拓扑采用传统菊花链的结构,每个设备上有EtherCAT通讯的IN和OUT,IN接口连接上一设备,OUT连接下一设备,通过网线相连,连接硬件如图10所示。

图10 总体硬件连接图 图11 带有EtherCAT通讯 功能的控制板

本系统首先设计了具有EtherCAT通讯功能的伺服驱动器(图11),然后在Beaglebone Black上实现Xenomai-Linux实时Linux系统,并实现EtherCAT主站,最后使用Qt实现上位机,实现了伺服电机的转动,在功能上实现多轴控制器系统。

4.3 性能测试分析

就搭建的运动控制系统进行测试,在Beaglebone Black上直接使用wireshark进行包的抓取。在Xenomai-Linux的主站控制下,数据负载较小时候,截取部分数据,分析如表4。

表4 低负荷情况下时间统计 单位ms

报文2ms循环一次,延时在70μs,延时局限在Beaglebone Black网卡的能力和处理器的处理能力上,现在实时性保证在μs级别,这样的实时性能和通讯速度已经非常出色。

5 结束语

EtherCAT实时以太网技术是未来工业以太网的发展趋势,将其应用在多轴运动控制系统更是大势所趋。笔者利用Xenomai-Linux实时系统,采用了开源主站,在嵌入式上实现了EtherCAT主站,在STM32上移植uC/OS-III实时操作系统,并采用分时多任务实现了从站通讯,同时将从站和驱动器相连,实现了具有EtherCAT通讯功能的伺服驱动器,最后完成了多轴运动控制系统的设计。实验表明,在有三个从站的情况下,同步时间在微秒级。从而说明,基于Xenomai-Linux实时系统的嵌入式主站和uC/OS-III的嵌入式从站构成的双实时多轴控制系统具有良好的实时性和精确的多轴同步控制性能。

[1] 刘文涛,张杰,翁正新. 基于EtherCAT总线的多轴运动控制系统[J]. 测控技术,2014(10):79-81.

[2] 李备备,栾勇,王超,等. 基于AM3358处理器的嵌入式实时EtherCAT主站的构建[J]. 组合机床与自动化加工技术,2015(5):1-5.

[3] 李志洲,郑民欣,王锦锦,等. 基于EtherCAT网络的三轴伺服控制系统设计[J]. 组合机床与自动化加工技术,2012(2):63-65.

[4] 刘艳强,王健,单春荣. 基于EtherCAT的多轴运动控制器研究[J]. 制造技术与机床,2008(6):100-103.

[5] 单春荣,刘艳强,郇极. 工业以太网现场总线EtherCAT及驱动程序设计[J]. 制造业自动化, 2007(11):79-82. [6] Moon Y, Ko N Y, Lee K, et al. Real-time EtherCAT Master Implementation on Xenomai for a Robot System[J]. International Journal of Fuzzy Logic &,2009.

[7] 逯玉兰,燕振刚,李广. uC/OS-III 内核在 STM32 F103 VET6芯片上的移植研究[J]. 计算机与现代化,2014(9):132-136.

[8] 史殿坤. 基于STM32的工业以太网EtherCAT从站的设计和实现[D].哈尔滨:哈尔滨工业大学,2013.

[9] 赵明印,黄道平,刘少君. 基于Xenomai的嵌入式Linux数控系统平台研究[J]. 测控技术,2013(8):119-122.

[10] Xing H, Jia H, Yanqianga L. Motion Control System using SERCOS over EtherCAT[J]. Procedia Engineering,2011, 24: 749-753.

[11] 曹玉华,游有鹏. 基于Xenomai的嵌入式数控系统实时性研究[J]. 制造技术与机床,2011(6):51-55.

(编辑 李秀敏)

Design of Motion Control System Based on EtherCAT

XIE Kai,YAN Gang-feng

(College of Electrical Engineer, Zhejiang University, Hangzhou 310027, China)

For the shortages of current multi-axis motion control system in synchronization and the control ability, a multi-axis motion control system based on EtherCAT is designed. The master station and slave station are constructed using real-time operating system. A solution of building embedded EtherCAT master is presented, which uses IgH EtherCAT Master open source components for RT-Linux, and Qt for GUI. The slave of this system is based on uC/OS-III operating system, which uses preemptive kernel to guarantee the real-time data among slaves. Thus, this system can ensure the synchronization among multi-axis. The results shows that, the multi-axis motion control system based on EtherCAT has a facilitate connection and the synchronization time is at microsecond level, which can meet the requirement of real-time and synchronization.

EtherCAT; ARM; Xenomai-Linux; uC/OS-III; Qt; servo motion control system

1001-2265(2017)02-0068-05

10.13462/j.cnki.mmtamt.2017.02.017

2016-05-31;

2016-06-27

国家自然基金(61175106)

谢锴(1991—),男,河南商丘人,浙江大学硕士研究生,研究方向为工业以太网和机器人技术,(E-mail)xk2010@163.com;通信作者:颜钢锋(1959—),男,浙江大学教授,博士生导师,研究方向为大系统以及混杂系统的建模和控制、数码纺织系统工程、电气传动及其控制、企业综合自动化,(E-mail) ygf@zju.edu.cn。

TH166;TG659

A

猜你喜欢
主站实时性内核
多内核操作系统综述①
强化『高新』内核 打造农业『硅谷』
活化非遗文化 承启设计内核
基于S7-1200 PLC的DP总线通信技术在马里古伊那水电站泄洪冲沙孔门机上的应用
微软发布新Edge浏览器预览版下载换装Chrome内核
航空电子AFDX与AVB传输实时性抗干扰对比
多表远程集抄主站系统
计算机控制系统实时性的提高策略
县级配电自动化主站系统的设计
可编程控制器的实时处理器的研究