APP下载

基于EtherCAT的伺服电机控制和应用

2019-09-10张林彭国文陈剑栋

现代信息科技 2019年14期
关键词:伺服系统

张林 彭国文 陈剑栋

摘  要:在工业实时以太网领域,EtherCAT的应用越来越广泛,伺服系统在工厂自动化生产、数控机床、机器人自动控制等方面有着广泛的应用。高端的伺服已经对实时的以太网总线有了一定的支持,使用EtherCAT对伺服系统进行控制有着非常广泛的需求。本文从对EtherCAT技术和伺服控制规范的介绍入手,展示了如何在嵌入式平台使用Linux操作系统进行EtherCAT主站开发和使用开发的主站对伺服进行控制的一般流程。

关键词:EtherCAT;伺服系统;实时以太网技术

中图分类号:TP273;TM383.4      文献标识码:A 文章编号:2096-4706(2019)14-0131-04

Control and Application of Servo Motor Based on EtherCAT

ZHANG Lin1,PENG Guowen2,CHEN Jiandong1

(1.Guangzhou Zhiyuan Electronics Co.,Ltd.,Guangzhou  510660,China;

2.Guangzhou Ligong Science and Technology Co.,Ltd.,Guangzhou  510660,China)

Abstract:EtherCAT is becoming more and more widely used in the field of industrial real time Ethernet. Servo system is widely used in factory automation production,CNC machine tools,robot automatic control and other aspects. High-end servo system has some support for real-time Ethernet bus,and the use of EtherCAT for servo system control has a very wide demand. Starting with the introduction of EtherCAT technology and servo control specification,this paper shows how to use Linux operating system to develop and use EtherCAT master station to control servo on embedded platform.

Keywords:EtherCAT;servo system;real-time ethernet technology

0  引  言

EtherCAT(Ethernet for Control Automation Tech-nology)是一種由德国倍福(Beckhoff Automation)发明,基于以太网的实时工业现场总线通信协议。EtherCAT基于以太网技术,具有以太网的传输速度快、数据包容量大、传输距离较长等优点。传统以太网的介质访问控制MAC(Media Access Control)采用带有冲突检测的载波侦听多路访问机制CSMA/CD(Carrier Sense Multiple Access with Collision Detection),这种非确定性的介质访问控制方式不能满足工业现场总线的实时性要求。EtherCAT为了实现实时性,对IEEE 802.3以太网协议进行了修改和扩展,实现数据传输的实时性以及高精度的时钟同步。EtherCAT使用分布式时钟,通过对传输延时的测量、系统时钟偏差补偿以及系统时钟漂移补偿,可以使整个系统的抖动小于1μs。EtherCAT使用标准以太网的帧结构,使用0x88A4帧类型以区别于IP和其他的帧类型,主站使用标准的以太网卡,从站使用专门的硬件实现,在实时通道内由实时MAC接管通信控制,以实现通讯的实时性。EtherCAT技术协会(ETG)是全球最大的现场总线组织,ETG下多个技术工作组的专家致力于EtherCAT各个方面的工作,以保持EtherCAT技术的稳定性和互操作性。ETG制订了ETG.1000(Part 1-6)系列规范文件来规范对EtherCAT技术的使用。

1  EtherCAT与运动系统控制

EtherCAT的数据帧由主站发出,由从站接收,从站控制器ESC(EtherCAT Slave Controller)对数据帧进行解析,如果是寻址到自己的报文,则根据报文中的命令进行数据的输入或者输出处理,处理后的数据会发送给下一个从站。ESC一般由专用的硬件、ASIC或FPGA实现,因此处理速度很快,每个从站对数据帧处理完毕后,数据帧会通过全双工的以太网返回主站,这样就完成了一次数据的输入或者输出。这种数据处理机制允许EtherCAT网络在任意位置采用分支结构,分支结构可以构成不同的物理拓扑结构,如线形、树形、星形以及各种结构的组合,使设备的连线和布线非常方便。

伺服系统是用来精确地跟随或者复现某个过程的反馈控制系统。伺服系统能实现物理的位置、方向、状态等输出被控制量能够跟随输入目标的任意变化的自动控制,是工业自动化的重要组成部分。伺服系统可以精确地完成定位并进行运动控制,使之在工业自动化、数控机床、机器人等各方面有非常广泛的应用。随着电子技术水平的提高,现代伺服系统朝着数字化、网络化、智能化、高效化发展;随着工业4.0和工业物联网等理论的提出,现代伺服逐渐向数字信号控制、网络模块控制的方向转变。数字控制技术、总线控制技术等现代化技术已经逐渐被伺服厂商采用。已经有协议对运动控制系统进行了标准化规范并提供了支持,使各个厂商的产品可以方便地进行互联互操作。目前应用比较广泛的是CANopen协议。

CANopen协议由CAN in Automation(CiA)发表,最初是一个基于控制器局域网总线CAN(Control Area Network)的通讯协议。CAN总线协议由博世公司提出,后被国际化标准组织ISO进行标准化,标准化代码为ISO 11898。它定义了通讯的物理层以及数据链路层,但是对于OSI网络模型上网络层以及上层协议缺乏对应的的支持。CANopen定义了基于CAN物理层和数据链路层的基本的通讯子协议(CiA301)以及支持特定设备规范的设备子协议(CiA401、CiA402等),CiA301支持设备地址编码、网络管理、设备监测、设备间通讯等基本通讯规范。对于特定设备,CiA使用设备子协议在CiA301基础上进行定义。CANopen定义了CiA402设备子协议规范进行运动控制相关的设备子协议。CANopen最开始是基于CAN物理层和数据链路层,但是CANopen也可以使用如EtherNet POWERLINK或EtherCAT等实时以太网方案进行通讯。

EtherCAT技术工作组制定了ETG.6010规范来对CiA402进行支持,并结合EtherCAT技术特性,加入了新的伺服工作模式,如周期同步位置模式、周期同步速度模式、周期同步转矩模式。其中周期同步位置模式(Cyclic synchronous position mode,CSP)是最为常用的模式。CiA402定义了伺服状态的转换如图1所示。

根据CiA402规范,状态切换以及当前状态的获取主要通过对象字典中索引为0x6040的控制字和0x6041状态字的对象进行控制和获取。伺服会根据当前所处的状态,接受命令进行相应的状态转换。在EtherCAT中主站可以将从站的控制字和状态字映射进过程数据,通过周期性的过程数据输入输出控制伺服状态切换以及获取检测伺服的当前状态。

2  EtherCAT主站开发

只要有标准的以太网卡即可满足EtherCAT主站的硬件需求,根据应用的场合,我们可以选择适合的主站方案。更强大的主站CPU可以进行更多主站任务的处理,可以实现更短的通讯周期。我们这里选取了基于NXP i.MX 6系列的Arm Cortex-A9四核心的处理器,使用Linux操作系统为基础进行主站的开发。为了满足过程数据交换较高的实时性的需求,可以对Linux操作系统打上实时补丁。基于Cortex-A9强大的四核强大处理器,不仅可以满足主站的功能需求,也可以为用户自己的程序提供强大的运算能力支持,支持复杂的用户逻辑和任务。采用Linux系统,可以减少开发的复杂度,方便不同开发人员进行分工,系统开发人员负责系统的移植,设备驱动程序的开发,应用开发人员只需要关心应用逻辑,专心进行实际项目逻辑的开发。同时采用Linux系统也可以将应用和设备的硬件解耦,使用操作系统提供的编程接口,方便程序运行在不同的设备上,减少移植时的工作量,提高效率。

2.1  主站功能需求

作为EtherCAT主站,我们需要提供以下的基本功能。

2.1.1  ENI文件的读取解析

ETG定义主站运行时需要的ENI文件规范,主站需要支持ENI文件的解析,获取网络配置参数、从站数量、从站初始化命令等信息。

2.1.2  从站设备管理

从ENI文件解析出从站的信息,在EtherCAT状态切换时对设备进行初始化、從站配置等功能。

2.1.3  实现过程数据通信

过程数据通信就是周期性数据的输入和输出,主站通过周期性的数据交换和从站进行交互,实现对从站的控制和从站状态的获取检测。

2.1.4  支持邮箱通信,实现非周期性数据传输

通过邮箱通信,可以支持EtherCAT应用层协议,如CoE,FoE等,实现对从站的部分配置功能。

2.2  从站设备

为了验证支持EtherCAT的伺服系统的操作一致性,以及展示多个伺服系统之间的同步,我们采用两个不同厂商的伺服系统进行控制,一台台达公司的ASDA-A2-E的伺服系统和一台武汉迈信公司的EP3E伺服系统。为了控制的方便,我们在系统中添加了一些数字量IO模块和模拟器采集模块来进行系统的控制和展示。数字量IO可以作为伺服的模式切换开关,切换伺服的周期性同步位置模式(CSP)和周期性同步速度模式(CSV)。在周期性同步位置模式下,我们可以把模拟量输入的值转化为电机的位置,这样可以通过修改模拟量的输入控制电机的位置。为了便于修改模拟量输入,我们可以在模拟量输入部分安装一个旋钮,使用旋钮控制电机转动的位置,实现位置模式下的电机随旋钮进行同步的位置控制。在周期性同步速度模式下,将采集到的模拟量输入转换为转速,实现通过旋转旋钮控制电机的转速。

为了对从站进行控制,我们需要对从站的数据对象进行映射。根据从站设备提供的ESI文件,将从站的对象字典的数据映射作为过程数据的输出数据,用于主站对从站伺服的控制,如表1所示。为了获取从站的状态,如伺服的状态、伺服电机当前的速度、位置信息和数字量输入状态和模拟量输入数据等,我们对设备对象字典的对象进行过程数据的输入映射,如表2所示。

2.3  分布式时钟

为了使用伺服的周期同步位置模式和周期同步速度模式,主站必须启用分布式时钟的功能,在EtherCAT网络内实现时钟的精准同步,并且启用SYNC0输出。设置时需要注意主站周期性数据的周期需要和SYNC0周期相同,同时从站对象字典0x60C2:01和0x60C2:02必须被设置为和SYNC0相同的周期,否则会导致从站报警甚至错误导致电机停机。假如我们设置SYNC0同步周期为1ms,0x60C2:01需要设置为0x01,0x60C2:02需要设置为0xFD(-3)。从站对象字典值我们可以在主站启动后通过SDO命令对从站的对象进行写入操作,但是更便捷的方式是在主站状态切换过程中通过初始化命令进行从站的对象写入操作。在主站ENI文件中添加初始化命令,使用SDO Upload将需要的值写入从站。ENI中设置从站同步周期的初始化命令如下所示:

2.4  主站开发

因为主站程序是运行在使用Arm处理器的Linux操作系统上,与一般桌面程序的开发和运行在同一个平台不同,其需要在桌面系统环境下进行程序的开发,然后使用交叉编译器编译目标平台的库和应用程序,最后将交叉编译生成的文件拷贝到设备端运行。

为了加快主站开发速度,我们可以选择市面上一些已经成熟的的主站库进行二次开发,这样可以节省大量的时间。KPA EtherCAT Master主站库提供了完善的接口和丰富的功能,支持符合ETG标准的ENI解析,过程映像数据的输入输出,完整支持邮箱功能以及各种常用的EtherCAT应用层协议如CoE,EoE,SoE,FoE等,对分布式时钟也有完整的支持。我们采用KPA EtherCAT Master主站库来进行二次开发,对从站进行控制,完成主站的功能。

使用开发库,我们可以方便地进行核心逻辑功能的处理,主站程序的执行流程如图2所示。程序运行后,可以通过开关进行周期同步位置和速度模式的切换,并可以使用电位器进行位置和速度的调节。

3  结  论

本文通过对EtherCAT技术介绍以及对伺服控制的方法的说明,提出一套通用的开发流程进行主站程序开发,通过和伺服与IO模块进行通讯,实现对被控伺服设备的控制。EtherCAT协议的统一性,也让不同厂商的产品可以互联互通以及相互替换,对设备的生产商和最终用户提供了巨大的便利。

参考文献:

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

[2] EtherCAT Technology Group.ETG6010_V1i1i0_D_R_CiA402_ImplDirective [S/OL].https://www.ethercat.org/memberarea/download/ETG6010_CiA402_ImplementationDirective.zip,2014-11-19.

作者简介:张林(1988-),男,汉族,河南邓州人,开发工程师,工学学士,研究方向:工业通讯、计算机软件。

猜你喜欢

伺服系统
电气自动化在油泵性能试验台上的应用
伺服电机在ZJ17卷接机组卷烟纸补偿装置的应用
关于永磁同步电动机交流伺服系统研究
数控切割机床电气优化方案
Х射线管材壁厚偏心测量装置
船用平台罗经模拟器的设计
冲压自动化动作效率分析
基于Simulink的火炮伺服系统自抗扰控制仿真