基于工业以太网的运动控制器在工业机器人、数控机床和机电一体化加工和测试设备中获得了广泛应用。由于以太网通信速度快、数据量大等特点使运动控制性能得到了极大的提升。EtherCAT(Ethernet for Control Automation Technology)技术(也称为以太网现场总线)是德国BECKHOFF公司提出的实时工业以太网技术,它基于标准的以太网技术,具备灵活的网络拓扑结构,系统配置简单,具有高速、高有效数据率等特点,其有效数据率可达90%以上,全双工特性完全得以利用。本文设计和实现了基于EtherCAT的伺服控制器从站,每个从站可以最多控制8个伺服轴。
1 EtherCAT技术介绍
1.1 EtherCAT系统组成和工作原理
EtherCAT采用主从式结构,主站PC机采用标准的100Base-TX以太网卡,从站采用专用芯片。系统控制周期由主站发起,主站发出下行电报,电报的最大有效数据长度为1498字节。数据帧遍历所有从站设备,每个设备在数据帧经过时分析寻址到本机的报文,根据报文头中的命令读入数据或写入数据到报文中指定位置,并且从站硬件把该报文的工作计数器(WKC)加1,表示该数据被处理。整个过程会产生大约10ns的时间延迟[1]。数据帧在访问位于整个系统逻辑位置的最后一个从站后,该从站把经过处理的数据帧做为上行电报直接发送给主站。主站收到此上行电报后,处理返回数据,一次通信结束。系统结构原理图如图1所示:
EtherCAT支持几乎所有的拓扑类型,包括线型、树型、星型等,其在物理层可使用100BASE-TX双绞线、100BASE-FX光纤或者 LVDS(Low Voltage Differential Signaling, 即低压差分信号传输),还可以通过交换机或介质转换器实现不同以太网布线的结合。快速以太网的物理层(100Base-TX)允许两个设备之间的最大电缆长度为100米,而LVDS的物理层只能保障10米的传输间距,适合于近距离站点的连接。整个网络最多可以连接65535个设备。
借助于从站中的EtherCAT专用芯片和主站中读取网卡数据的DMA技术,整个协议处理过程都在硬件中进行。EtherCAT系统可以在30μs内刷新1000个I/O点,它可以在300μs内交换一帧多达1486个字节的协议数据,这几乎相当于12000个数字量输入或输出。控制100个输入输出数据均为8字节的伺服轴只需要100μs[2]。EtherCAT的高性能使它还可以处理分布式驱动器的电流(转矩)控制。
1.2 EtherCAT数据帧结构
EtherCAT以标准以太网技术为基础,在MAC(媒体访问层)增加了一个确定性调度的软件层,该软件层实现了通信周期内的数据帧的传输。EtherCAT采用标准的IEEE802.3以太网帧,帧结构如图2,各部分含义见表1:
表1 帧结构含义
表2 子报文结构含义
EtherCAT没有重新定义新的以太网帧结构,而是在标准以太网帧结构中使用了一个特殊的以太网帧类型0x88A4,采用这种方式可以使控制数据 直接写入以太网帧内,并且可以与遵守其它协议的以太网帧在同一网络中并行。一个EtherCAT帧中可以包含若干个EtherCAT子报文,报文结构如图3,各部分含义见表2,每个报文都服务于一块逻辑过程映像区的特定内存区域,由FMMU(Fieldbus Memory Management Unit,负责逻辑地址与物理地址的映射)寄存器和SM(Sync Manager,负责对ESC和微处理器内存的读写)寄存器定义,该区域最大可达4GB字节。EtherCAT报文由一个16位的WKC(Working Count)结束,其数据区最大长度可达1486个字节。在报文头中由8位命令区数据决定主站对从站的寻址方式,由于数据链独立于物理顺序,因此可以对EtherCAT从站进行任意的编址。
EtherCAT于2005年2月正式成为IEC规范-IEC/PAS 62407。除此之外,EtherCAT技术也将集成到国际现场总线标准的下一代标准IEC61158和IEC61800-7(电子功率可调速驱动系统框架与接口)之中。国际标准组织(ISO)已将EtherCAT纳入ISO15745标准。EtherCAT技术引起了自动化技术领域的广泛关注,并于2003年成立了EtherCAT技术组织,简称ETG。到目前为止,ETG组织成员已超过500个。
2 EtherCAT技术的实现
2.1 EtherCAT主站的实现
EtherCAT技术在主站方面只需在一块标准的NIC网卡,主站功能完全由软件实现。EtherCAT可以用一个以太网帧发送1486字节的有效数据,所以在通常情况下,每个通信周期只需要一个或两个帧就能完成所有结点的全部通信。EtherCAT主站程序应该包含以下几个方面:
(1) 读取XML配置文件,根据配置文件信息构造主站与从站设备;
(2) 管理EtherCAT从站,发送配置文件中定义的初始化帧,初始化从站,为通信做准备;
(3) 使用邮箱操作实现非周期性数据传输,配置系统参数,处理通信过程中某些偶然性事件;
(4) 实现过程数据通信,完成主站与从站之间的实时数据交换,达到主站控制从站运行,并处理从站实时状态的功能。
主站代码结构图如图4:
应用程序开发环境是VC++6.0,通信周期由多媒体定时器控制,其控制精度可达到1ms,可根据控制需要设定通信周期,实现控制要求。
2.2 EtherCAT从站的实现
可以利用BECKHOFF公司开发的从站控制器ESC(EtherCAT Slave Controller)根据实际需要设计从站设备。从站硬件示意图如图5。
从站控制器与主站交换两种形式的数据,一种是周期性数据,一种是非周期性数据,周期性数据传输可以采用缓冲区方式,任何一方在任何时间都可以访问此方式定义的内存,得到最新数据;非周期性数据传输采用握手方式(邮箱方式)实现,一方写入数据到定义的内存,只有完成定义内存的最后一个字节的写入,另一方才能开始从定义内存中读出数据,而且只有在读出定义内存的最后一个字节数据后,才能重新写入数据。
3EtherCAT伺服控制器原理
3.1系统概述
本文设计和实现了基于EtherCAT的多轴运动控制器,如图6a所示,一个EtherCAT主站通过EtherCAT协议可以连接若干从站运动控制器单元,一个运动控制器单元由从站控制底板、通信卡和1~8块运动控制卡组成,每个运动控制卡控制一个伺服轴。从站运动控制单元实物如图6b所示。
从站控制底板采用Atmega128芯片作为处理器,通信卡使用BECKHOFF公司提供的ESC20控制器,运动控制卡为一种多功能的位置控制卡,可以完成位置控制和速度控制
3.2 数据通信
本系统在应用层自定义了数据模块结构,模块数据分为两种,一种是指令数据模块,由主站写给从站,控制伺服运动,一种是状态数据模块,主站从从站读取,表示伺服轴状态反馈。一个运动控制卡使用一个指令数据模块和一个状态数据模块,每个EtherCAT子报文由从站上的所有运动控制卡的数据模块组成,如图7所示。
每个数据模块包含10个字节,指令数据模块分别定义为数据模块头、控制字和指令数据区,状态数据模块分别定义为数据模块头、状态字和状态数据区。
数据模块头使用2个字节,包括4位的运动控制卡地址和3位工作方式。从站上的每个运动控制卡分配不同的地址,从站根据数据模块头中的地址信息寻址相应的运动控制卡,并根据工作方式控制运动控制卡的工作。从站运动控制卡可以工作在位置控制、速度控制、回参考点以及读编码器计数值等方式下。握手位用于工作方式切换时主站和从站之间的握手。
指令数据模块中,指令控制字使用2个字节,包括伺服使能控制、复位控制等伺服控制信息;指令数据使用6个字节,对应不同控制方式下的指令值,如位置指令数据、速度指令数据等。状态数据模块中,状态字使用2个字节,包括伺服使能状态及报警信息等反馈信息;状态数据使用6个字节,对应于不同控制方式下的反馈值,例如位置控制下的实际位置值和当前跟随误差,速度控制方式下的实际速度值,I/O方式下的输入值等。
主站和从站之间进行周期性的通信来完成伺服控制,其通信时序如图8所示。数据帧传输完成后,从站在T1时刻前从通信控制卡读取指令数据,并经过运算后输出到运动控制卡;在T2时刻之前读取运动控制卡实际状态,并写入通信控制卡,等待下个数据帧读取。
3.3 运动控制器固件程序设计
运动控制器固件程序实现EtherCAT协议的通信和设备卡的控制。系统运行分为两个阶段:
初始化阶段:建立主从站通信,包括主站分配ESC从站通信地址,初始化ESC相关寄存器,配置通信参数,为通信做准备,从站单片机从EEPROM读入从站配置数据,配置伺服轴数、设置各伺服轴的状态(是否参加通信)、通信周期等,从站在初始化阶段还要配置通信类型、初始状态的工作方式及各通信参数变量等。
周期运行阶段:上位机PC按照协议及控制要求把控制字和指令数据发送到各个从站,从站单片机读出数据并译码处理,同时采集各伺服轴的状态反馈信息并填写状态数据包。PC机收到返回的数据帧,读取状态数据报文中的信息并做相应的处理。程序流程图如图9所示。
当从站单片机完成初始配置工作后,开始进入工作循环,等侍EtherCAT数据帧的到来,当数据帧到达ESC20控制器时,ESC20接收数据帧,向控制芯片发出中断,Atmega128单片机响应中断读出指令数据,处理后发送给动动控制卡,并检测是否有状态请求事件发生。如果状态请求模块数据到来,程序读取当前伺服状态数据,写入状态模块数据结构,返回给主站,一次通信结束。
4 结论
本文设计了一种基于实时工业以太网协议EtherCAT的多轴运动控制器。每个运动控制器单元可以最多控制8个伺服轴,每个伺服轴可以进行位置、速度、回参考点等控制。通过这种多轴运动控制器可以在数控设备和工业机器人控制系统中利用EtherCAT技术,提高控制性能。
参考文献:
[1] 德国倍福公司.实时以太网:I/O层超高速以太网.工业以太网与现场总线
[2] EtherCAT技术组.EtherCAT-以太网现场总线
[3] 杜品圣.工业以太网技术的介绍和比较.仪器仪表标准化与计量.2005,5:16-19
[4] 张鑫,李宝峰.工业以太网关键性技术研究.中国水运.2007.1第519821216卷
[5] 陈曦,刘俊峰,付少波.工业以太网传输延时特性分析.计算机与信息技术
作者介绍:单春荣(1982—),女,汉族,山东省龙口市,北京航空航天大学机械工程及自动化学院硕士研究生,研究方向为数字伺服和现场总线技术。