基于EtherCAT实时通信的电机驱动控制
2017-06-15林梦云马文礼钱俊璋
林梦云,马文礼,熊 皑,钱俊璋
(1.中国科学院光电技术研究所,四川 成都 610209;2.中国科学院大学,北京 100190;3.成都信息工程大学,四川 成都 610225)
基于EtherCAT实时通信的电机驱动控制
林梦云1,2,马文礼1,熊 皑3,钱俊璋1,2
(1.中国科学院光电技术研究所,四川 成都 610209;2.中国科学院大学,北京 100190;3.成都信息工程大学,四川 成都 610225)
实时工业以太网EtherCAT凭借着高性能、低成本、应用简易等优点在现代控制领域得到了广泛的应用和迅速的发展。为了将EtherCAT快速应用到电机驱动控制系统中,采用IntervalZero公司的KingStar Motion软件,设计了一种基于EtherCAT实时通信的电机驱动控制方案,并搭建相应实验平台。系统采用经典的位置、速度、电流三闭环控制,分别对速度跟踪、位置定点与正弦跟踪进行了实验测试与分析。实验结果表明,该控制系统可靠性高,跟踪精度良好。
EtherCAT;KingStar Motion软件;电机驱动控制
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通信的电机驱动控制方案,实现对电机的实时驱动控制。
1 EtherCAT通信原理
EtherCAT系统采用主从式结构,所有通信均由主站发起。利用以太网设备独立处理双向传输(Tx和Rx)的特性,运行在全双工模式下,主站发出的报文可通过Rx线返回主站控制单元。这种通信机制使整个网络中不会出现通信冲突,从而使网络具有很好的确定性。
整个网络通信结构如图1所示。EtherCAT主站发出下行报文,报文包含各个从站所需数据,并经过所有从站。EtherCAT从站在报文经过时,分析寻址到本站数据,根据相应命令从数据帧中抽取或插入数据,然后更新相应的工作计数器(Working Counter,WKC),以标识出该数据帧被从站处理过,并将数据帧转发到下一个相邻的从站。该过程由从站硬件来完成,这使得EtherCAT数据帧经过每个从站的时间极小,延迟约为100~500 ns,保证了网络的高度实时性。遍历完所有从站后,经过从站处理后的数据帧作为上行报文,从最后一个从站返回主站。主站收到上行数据报文后,处理返回的数据,一次通信结束[3]。
图1 EtherCAT运行原理
2 电机驱动控制系统设计
2.1 系统整体方案设计
基于EtherCAT通信的电机驱动控制系统主要由工控机、EtherCAT总线、伺服驱动器、伺服电机和反馈编码器五部分组成,系统结构如图2所示。
图2 系统结构图
工控机配置为基于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所示。
(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提供了多种动态库与静态库,用于实现相应的实时程序开发,而且支持友好的编程环境。
图3 工控机实现主站功能的系统架构
(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协议可以实现对电机的驱动控制。
图4 周期性同步扭矩控制运行模式结构图
在CST模式下,控制主站向驱动器下发目标转矩,伺服电机为永磁同步电机采用id=0矢量控制,q轴电流与转矩成正比,驱动器实现电流闭环运算,并反馈当前位置值,在控制主站实现位置、速度闭环运算。下发目标转矩和反馈当前位置分别对应着KingStar Motion所提供的函数SetServoTorque和GetServoPosition。
综上所述,在Visual Studio 2013下编写EtherCAT主从站通信程序,程序流程如图5所示。实时任务运行在RTSS子系统下,负责实现EtherCAT主站配置、主从数据实时通信、高精度实时定时器与闭环运算;非实时任务是在Windows系统下设计的,主要完成人机交互界面的设计,包括参数设定和状态显示。
图5 主从站通信程序流程图
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。可见该系统速度跟踪误差较小,满足跟踪性能要求。
图6 速度跟踪误差曲线
图7 位置定点跟踪误差曲线
4.2 位置闭环测试
位置定点跟踪:给定参考位置定点为1°,测得其位置定点跟踪误差曲线如图7所示。分析数据可知,系统在1°位置定点跟踪误差RMS为0.076 5″,最大位置跟踪误差绝对值为0.272 5″。可见系统位置定点跟踪性能良好。
位置正弦跟踪:给点参考位置正弦为20°sin(0.1t),测得其位置正弦跟踪误差曲线如图8所示。采集两个周期的位置正弦跟踪误差数据,分析可知,系统位置正弦跟踪误差RMS为0.702 1″,最大位置跟踪误差绝对值为1.407 1″。可见该系统位置正弦跟踪误差很小,正弦跟踪性能良好。
图8 位置正弦跟踪误差曲线
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.
Motor drive control based on real-time communication of EtherCAT
Lin Mengyun1,2,Ma Wenli1,Xiong Ai3,Qian Junzhang1,2
(1.Institute of Optics and Electronics,Chinese Academy of Sciences,Chengdu 610209,China; 2.University of Chinese Academy of Sciences,Beijing 100190,China; 3.Chengdu University of Information Technology,Chengdu 610225,China)
AS a real-time industrial Ethernet technology,EtherCAT is widely used and developed rapidly in the field of modern control with the advantages of high performance,low cost and simple application.In order to apply EtherCAT to the motor drive control system rapidly,a new scheme of motor drive control based on EtherCAT real-time communication is designed by using KingStar Motion software of IntervalZero Company,and the corresponding experimental platform is set up.The system adopts classical closed-loop control of position,speed and current,and carries on experimental test and analysis to speed tracking,position fixed point and sinusoidal tracking.The experimental results show that the control system has high reliability and good tracking precision.
EtherCAT; KingStar Motion software; motor drive control
TP29
A
10.19358/j.issn.1674- 7720.2017.10.001
林梦云,马文礼,熊皑,等.基于EtherCAT实时通信的电机驱动控制[J].微型机与应用,2017,36(10):1-4.
2016-12-30)
林梦云(1992-),男,硕士研究生,主要研究方向:伺服控制技术。
马文礼(1962-),男,研究员,博士生导师,主要研究方向:光电探测、大型光电望远镜研制。
熊 皑(1980-),男,博士研究生,副教授,主要研究方向:伺服控制技术。