《电子技术应用》

基于EtherCAT实时通信的电机驱动控制

2017年微型机与应用第10期 作者:林梦云1,2,马文礼1,熊皑3,钱俊璋1,2
2017/6/23 22:08:00

  (1.中国科学院光电技术研究所,四川 成都 610209;2.中国科学院大学,北京 100190;3.成都信息工程大学,四川 成都 610225)

  摘要:实时工业以太网EtherCAT凭借着高性能、低成本、应用简易等优点在现代控制领域得到了广泛的应用和迅速的发展。为了将EtherCAT快速应用到电机驱动控制系统中,采用IntervalZero公司的KingStar Motion软件,设计了一种基于EtherCAT实时通信的电机驱动控制方案,并搭建相应实验平台。系统采用经典的位置、速度、电流三闭环控制,分别对速度跟踪、位置定点与正弦跟踪进行了实验测试与分析。实验结果表明,该控制系统可靠性高,跟踪精度良好。

  关键词:EtherCAT;KingStar Motion软件;电机驱动控制

  中图分类号:TP29文献标识码:ADOI: 10.19358/j.issn.1674-7720.2017.10.001

  引用格式:林梦云,马文礼,熊皑,等.基于EtherCAT实时通信的电机驱动控制[J].微型机与应用,2017,36(10):1-4.

0引言

  随着工业自动化不断发展,传统的现场总线技术已经逐渐无法满足控制领域的要求。工业以太网凭借其传输速度快、数据包容量大、传输距离长、性价比高等优点,成为当今工业现场总线技术的重要发展方向[1]。其中由德国BECKHOFF公司开发的实时工业以太网EtherCAT(Ethernet for Control Automation Technology),以高性能、低成本、应用简易等优点在现代控制领域得到了广泛的应用和迅速的发展。

  国内外均有EtherCAT应用于高精度电机驱动控制的实例,市面上的伺服驱动器也大多已集成EtherCAT通信接口,可直接配置作为EtherCAT从站。要实现基于EtherCAT的电机驱动系统,可将重点放在EtherCAT主站设计上。考虑到由样本代码开发主站周期较长,故一般多采用商业主站软件进行二次编程开发。其中IntervalZero公司的KingStar Motion软件,以软件形式取代昂贵的运动控制板,并包含相应EtherCAT主站代码,用EtherCAT标准取代专用网络协议和IO硬件,还支持在EtherCAT的基础上使用CANopen,从而可以搭建更低成本的基于EtherCAT的伺服控制系统[2]。

  本文结合EtherCAT总线技术、KingStar Motion软件和商业驱动器,设计一种基于EtherCAT通信的电机驱动控制方案,实现对电机的实时驱动控制。

1EtherCAT通信原理

  EtherCAT系统采用主从式结构,所有通信均由主站发起。利用以太网设备独立处理双向传输(Tx和Rx)的特性,运行在全双工模式下,主站发出的报文可通过Rx线返回主站控制单元。这种通信机制使整个网络中不会出现通信冲突,从而使网络具有很好的确定性。

  整个网络通信结构如图1所示。EtherCAT主站发出下行报文,报文包含各个从站所需数据,并经过所有从站。EtherCAT从站在报文经过时,分析寻址到本站数据,根据相应命令从数据帧中抽取或插入数据,然后更新相应的工作计数器(Working Counter, WKC),以标识出该数据帧被从站处理过,并将数据帧转发到下一个相邻的从站。该过程由从站硬件来完成,这使得EtherCAT数据帧经过每个从站的时间极小,延迟约为100~500 ns,保证了网络的高度实时性。遍历完所有从站后,经过从站处理后的数据帧作为上行报文,从最后一个从站返回主站。主站收到上行数据报文后,处理返回的数据,一次通信结束[3]。

001.jpg

2电机驱动控制系统设计

  2.1系统整体方案设计

  基于EtherCAT通信的电机驱动控制系统主要由工控机、EtherCAT总线、伺服驱动器、伺服电机和反馈编码器五部分组成,系统结构如图2所示。

 002.jpg

  工控机配置为基于PC的EtherCAT主站,周期性地接收从站上传的位置、速度数据,并做相应的运算,然后下发相应参考电流或转矩;伺服驱动器作为EtherCAT从站,接收编码器所采集的电机参数,将相应数据由EtherCAT总线周期性地传给主站,并接收主站下发数据和控制命令,驱动伺服电机。控制系统设计为典型的三闭环(位置环、速度环、电流环)模式,伺服驱动器只做电流闭环运算;速度、位置闭环运算在工控机上完成。

  工控机与伺服驱动器构成EtherCAT主从站结构。其中由伺服驱动器作EtherCAT从站,选用宁波Phase公司AxN型驱动器,已集成相应的EtherCAT从站控制器ESC和微处理器芯片,支持CoE(CANopen over EtherCAT)应用层协议,相关配置较简单,可同时实现与主站通信和驱动电机两部分功能。故整个系统的重点和难点在于工控机实现EtherCAT主站和主从站通信软件的设计。

  2.2工控机作EtherCAT主站

  基于PC的主站,硬件只需普通的网络接口卡NIC(Network Interface Card)即可,主站功能完全由软件来实现。选用Beckhoff公司的多核双网口工控机C6640-0030。工控机实现EtherCAT主站功能主要包括以下几个部分:搭建实时子系统(Real-Time SubSystem, RTSS);EtherCAT主站代码的二次开发;编写电机实时控制程序;人机交互界面设计。系统架构如图3所示。

003.jpg

  (1)搭建实时子系统RTSS。首先考虑到PC上为非实时的Windows操作系统,要保证控制系统中EtherCAT通信的实时性,需将其转变为实时操作系统(Realtime Operating System, RTOS)。IntervalZero公司的KingStar Motion中已包含相应的RTX(RealTime Extension)软件,它修改并扩展Windows的硬件抽象层HAL(Hardware Abstraction Layer),实现独立的内核驱动模式,形成与Windows操作系统并列的实时子系统RTSS[4]。通过在Windows和RTX线程之间增加独立的中断间隔,提供独立的RTSS调度器,从而保证系统的实时性。RTX提供了多种动态库与静态库,用于实现相应的实时程序开发,而且支持友好的编程环境。

  (2) EtherCAT主站代码的二次开发。主站代码采用KingStar Motion所包含的商业代码来实现,以静态和动态链接库的形式提供相关应用程序接口(Application Programming Interface,API),包括主站参数配置、主从站数据通信等函数,易于二次编程开发;支持CoE应用层协议;提供十分友好的编程环境,程序代码均可在Microsoft Visual Studio中编写。EtherCAT主站运行在RTSS下以保证EtherCAT通信的实时性。

  (3)编写电机实时控制程序。基于EtherCAT的实时控制程序主要是利用RTSS下的高精度定时器和高速的周期性EtherCAT通信来实现相应的闭环控制运算。程序通过运行在RTSS下的EtherCAT主站代码与从站通信,实时接收处理从站反馈数据,并向从站发送相应控制命令。

  (4)人机交互界面设计。为方便控制系统参数调试,可由MFC编写相应的人机交互界面程序,通过进程间通信与电机实时控制程序进行数据交互,调试设定相关参数,周期性地显示系统相应状态,并保存实验数据。上位机界面程序可运行在非实时的Windows系统下,由共享内存实现与RTSS实时程序之间的数据通信。

  2.3主从站通信软件设计

  EtherCAT主从站通信采用CoE应用层协议,包括非周期邮箱通信和周期性过程通信。其中邮箱通信为主从站间的非周期通信,用于非实时应用场合,对应着KingStar Motion所提供的SDO函数ReadSdoObject和WriteSdoObject;过程数据通信为主从站间周期性通信,用于实时应用场合。

  由于从站为伺服驱动器,要实现对电机的驱动控制,参考CANopen伺服和运动控制行规CiA402,选择驱动器的运行模式为周期性同步扭矩控制模式(Cyclic Synchronous Torque,CST)。该运行模式结构如图4所示。控制主站周期性地向驱动设备发送目标扭矩指令,驱动设备运行扭矩控制。驱动设备向控制主站提供实际位置值、实际速度值和实际扭矩值[1]。

  主从站通信开始时,主站会依据网络信息文件 (EtherCAT Network Information, ENI)初始化网络。通过分析其ENI文件可以看到主站对应过程数据对象字典(Process Data Object, PDO)映射配置。其中RxPDO包含的对象字典6071h代表着电机目标转矩值,TxPDO包含的对象字典6064h代表着电机当前位置值,结合CiA402协议可以实现对电机的驱动控制。

  

004.jpg

  在CST模式下,控制主站向驱动器下发目标转矩,伺服电机为永磁同步电机采用id=0矢量控制,q轴电流与转矩成正比,驱动器实现电流闭环运算,并反馈当前位置值,在控制主站实现位置、速度闭环运算。下发目标转矩和反馈当前位置分别对应着KingStar Motion所提供的函数SetServoTorque和GetServoPosition。

  综上所述,在Visual Studio 2013下编写EtherCAT主从站通信程序,程序流程如图5所示。实时任务运行在RTSS子系统下,负责实现EtherCAT主站配置、主从数据实时通信、高精度实时定时器与闭环运算;非实时任务是在Windows系统下设计的,主要完成人机交互界面的设计,包括参数设定和状态显示。

005.jpg

3实验平台搭建

  本文根据设计的系统整体方案,搭建了基于EtherCAT实时通信的电机驱动控制实验平台。主站为Beckhoff公司的多核双网口工控机,操作系统为Windows7,安装IntervalZero公司的KingStar Motion软件,进行相应配置;从站采用的是宁波Phase公司的AxN型驱动器,已集成相关芯片和EtherCAT通信接口,通过网线直接与工控机实时网口相连;所用电机参数,额定扭矩为35 Nm,最大转速1150°/s;编码器采用27位分辨率海德汉绝对式编码器ECA4000,通信接口为Endat2.2,由接口定义配置相应转接线,直接与伺服驱动器相连。

4实验测试与分析

  为进行相关实验测试,首先配置好AxN型驱动器作EtherCAT从站,由于主站已适配支持该类型驱动器,无需配置从站信息文件,可直接由网线连接工控机。运行所编写的人机界面程序和电机实时控制程序,进行相应闭环实验测试,并保存实验数据以便分析。由于实验条件有限,本文仅对伺服电机在未接负载的情况下进行了测试。

  4.1速度闭环测试

  给定电机参考速度为1°/s,测得其速度跟踪误差曲线如图6所示。横坐标为时间,单位为秒(s),纵坐标为速度跟踪误差,单位为角秒(″/s)。分析数据可知,系统在1°/s时速度跟踪均方根误差(Root Mean Square, RMS)为8.602 1″/s,最大速度跟踪误差绝对值为30.510 4″/s。可见该系统速度跟踪误差较小,满足跟踪性能要求。

006.jpg

  

007.jpg

  4.2位置闭环测试

  位置定点跟踪:给定参考位置定点为1°,测得其位置定点跟踪误差曲线如图7所示。分析数据可知,系统在1°位置定点跟踪误差RMS为0.076 5″,最大位置跟踪误差绝对值为0.272 5″。可见系统位置定点跟踪性能良好。

  位置正弦跟踪:给点参考位置正弦为20°sin(0.1t),测得其位置正弦跟踪误差曲线如图8所示。采集两个周期的位置正弦跟踪误差数据,分析可知,系统位置正弦跟踪误差RMS为0.702 1″,最大位置跟踪误差绝对值为1.407 1″。可见该系统位置正弦跟踪误差很小,正弦跟踪性能良好。

  

008.jpg

5结论

  本文设计了一种基于EtherCAT实时通信的电机驱动控制系统。简要介绍了EtherCAT的工作原理;采用KingStar Motion软件将工控机配置为EtherCAT主站,编写主从站实时通信程序和上位机界面程序;根据系统方案搭建相应实验平台,进行了闭环控制实验。结果表明,该控制系统可靠性高,跟踪精度良好,满足相应性能要求。而且该系统结构简单,拓扑灵活,在EtherCAT总线上增加多个伺服驱动器作从站,即可实现多电机的实时驱动控制;系统所有代码均在Visual Studio 2013下编写,维护方便,可以自定义编写人机交互界面和复杂闭环算法。本文由于条件限制,没有对系统在带载或复杂工况下进行分析,也没有研究转到多电机驱动控制时的问题,这些都有待进一步研究。

参考文献

  [1] 郇极,刘艳强. 工业以太网现场总线EtherCAT驱动程序设计及应用[M].北京:北京航空航天大学出版社,2010.

  [2] IntervalZero. KingStar product brief simple chinese[EB/OL].(2014-xx-xx)[2016-12-30]http://www.kingstar.com.

  [3] 任计羽. EtherCAT从站软件的设计与实现[D].成都:中科院光电技术研究所,2014.

  [4] 田昊,潘清. RTX实时效果测试及应用[J].计算机系统应用,2007,16(2):103106.


继续阅读>>