基于EtherCAT通信的步进电机运动控制数据报文分析与研究

2021-10-15 12:34张冰蔚
沈阳大学学报(自然科学版) 2021年5期
关键词:主站主从数据包

冯 文, 张冰蔚, 赵 忠

(江苏科技大学 机械工程学院, 江苏 镇江 212100)

进入信息化时代以来,在以太网和信息技术等技术的支持下,工业以太网技术发展迅速,其高适应性,高可靠性及高稳定性等特点十分符合工业现场复杂工作环境的要求,大大提高了工作人员的工作效率[1].

然而,现代网络技术种类繁多,分类复杂,各种以太网协议使用的场合各不相同,寻找合适的网络通信协议对工控行业极为重要[2].第一届中国工业以太网发展论坛上,BECKHOFF公司开发的EtherCAT技术因其高速处理性能受到各家企业、高校的关注,其可在30 ms内处理完成1 000个数字量I/O,可在50 ms内处理完成200个模拟量I/O[3].主从站之间使用网线连接,其同步性高,时钟同步精度可低于1 μs[4].BECKHOFF开发的TwinCAT系列主站软件可以实现多种语言的控制程序编写[5],可于32位和64位的Windows系统运行.另外,EtherLab开发的Igh和RT-LAB开发的SOEM开源主站也能够实现大部分的主站控制功能[6].但是通过上位机软件无法直观地分析EtherCAT控制原理及步骤,因此,通过数据包的抓取与分析可以实现掌握EtherCAT工作原理的目的.

本实验采用基于EtherCAT协议的主从站通信方式,在控制电机过程中采集通信数据报文,从底层研究EtherCAT通信原理及主站对从站进行运动控制的相关配置,从而实现对设计更多从站精确控制方法的研究.

1 EtherCAT技术简介

EtherCAT(ethernet control automation technology,以太网自动控制技术)是一种具有高速传输效率的实时工业以太网技术,于2003年由德国的BECKHOFF公司开发并进行推广.EtherCAT可通过交换机拓展网络接口数量,从而实现星型、线型、树型等多种拓扑方式,大大提高其工作效率[7].EtherCAT的实时性能可以达到100轴0.11 ms的响应时间,突破了工业控制系统的技术瓶颈.

1.1 EtherCAT协议

EtherCAT通过主从站方式进行通讯,其主站可通过PC机实现,通过网络接口与从站连接.一个完整的EtherCAT系统在进行运动控制之前,主站首先通过网络接口对该条通信链路上的所有从站进行扫描,然后发送出一条下行的数据帧,依照顺序经过所有从站.当从站成功读取或插入本条数据帧中对应位置的子报文时,本条子报文的工作计数器(WKC)数值发生变化,数据帧继续下行,到达各从站后流程同上,当该条数据帧遍历所有从站后,通信链路末端的从站将数据帧返回到主站[8].在此过程中,上行的数据帧无法被从站改写,整个过程体现了EtherCAT的全双工通信特性.同时,当EtherCAT数据帧到达从站时,ESC(从站控制器)调用相关硬件处理EtherCAT数据帧中对应位置的子报文,因此大大降低了数据传输过程中的延迟[9].EtherCAT运行原理如图1所示.

图1 EtherCAT网络运行原理Fig.1 Operation principle of EtherCAT network

1.2 EtherCAT数据帧

主站与从站之间的信息互换通过以太网数据帧实现,一条完整的EtherCAT数据帧包含以太网帧头,EtherCAT头,EtherCAT数据以及帧检测序列(FCS).以太网帧头中包含以下3种信息:①从站设备的MAC地址;②主站设备的MAC地址;③EtherCAT的数据帧类型(0x88A4)[10].通过识别以太网帧头,可以判定该条数据帧的适用网络协议,当主站设备连接多个从站时,可以通过过滤特定的MAC地址来查找特定的从站.EtherCAT数据帧结构如图2所示.

图2 EtherCAT数据帧结构Fig.2 Data frame structure of EtherCAT

EtherCAT头和EtherCAT数据中保存了主站对从站的所有控制信息.包括状态机转换、时钟同步、地址配置等关键信息,保证主、从站之间的通信正常[11].每个从站读取出数据帧中的相关数据,将设备信息中的轴位置等信息插入到数据帧,并且改写工作计数器(WKC)的值,显示本节点已完成相关的读写工作.工作计数器的值的改写遵照读加1,写加2,读写加3的规律,通过检查子报文中的WKC值判断各个从站节点的读写状况,同时也可以排查从站设备是否存在通讯异常.

为了实现EtherCAT数据帧的读/写功能,在通讯过程中采用多段、多种寻址方式将从站控制器所需的数据读/写到特定的存储区中[12].由于EtherCAT主站与从站之间支持多种连接方式,故而通过识别EtherCAT数据中的以太网帧头的内容(即目标设备中的MAC地址)完成数据分配,同一目的地址的设备可划分为一个网段,之后分别在各个网段内继续分配控制数据.

2 主从通信链路设计方案

2.1 系统总体设计方案

试验中使用安装了TwinCAT2软件以及NIC网卡的PC机作为主站,雷赛的DM3E系列驱动器作为从站,主站与从站使用标准以太网网线进行通讯,通过TwinCAT2 PLC软件进行编程,实现对多台电机的同步运动控制,在通信过程中,EtherCAT的多轴控制是基于其应用层协议CoE(CANopen over EtherCAT)来实现的,即在从站应用层采用CANopen的CiA402子协议(驱动和运动控制子协议)完成相关的控制任务.

2.2 主站软件设计

试验中通过TwinCAT PLC Control软件进行程序编写,TwinCAT软件支持CoDeSys Softmotion工具包,其中提供的众多功能块可以帮助完成对电机使能以及多轴配合等复杂动作的控制[13].本文通过添加TC2_MC2和TC2_MC2_Camming库文件中运动控制功能块进行PLC程序编写,在进行从站设备扫描时,添加NC轴(虚拟轴),建立NC轴和实轴的映射关系,便于在后续的运动控制过程中方便改写电机转速、位置等相关参数.本文设计的控制系统通过调用MC_Power功能块完成电机使能,为方便计算各电机的运动距离,调用MC_SetPosition功能块对电机的实时位置进行初始化,并在HMI界面上显示轴实时位置信息.为防止在运动控制过程中因错误操作造成的驱动器报警,在PLC程序中调用MC_Stop和MC_Reset功能块用于紧急停止电机运转及复位报警信息(仅适用于非掉电复位).控制系统的HMI界面如图3所示.

图3 HMI界面Fig.3 Interface of HMI

3 主从站运动控制分析

为明晰主站控制从站设备进行相关运动的具体方法,本设计在主从站之间插入赫优讯公司生产的以太网分析仪netANALYZER,用于截取主站发送给从站设备的控制数据包,在数据包截取期间,通过TwinCAT软件对从站进行了状态及配置、对象字典改写以及多轴配合运动等操作,最后,将截取下来的数据包文件用Wireshark软件打开并进行分析.

3.1 EtherCAT状态机

EtherCAT主站在对从站进行控制管理时, 需要配置从站状态机. 标准的EtherCAT从站需要支持4种状态: Init(初始化),Pre-operation(预运行), Safe-operation(安全运行)和Operation(运行). Bootstrap(引导)状态可自主选用[14]. 在主站进行运动控制时, 通过发送状态转换数据帧, 使从站按照Init→Pre-operation→Safe-operation→Operation的顺序进行状态转换, 具体状态转换顺序如图4所示.

图4 从站状态机转换图Fig.4 Transition diagram of slave state machine

EtherCAT规定,在进行状态转变时,初始化状态必须经历预运行、安全运行状态才能转换成运行状态且顺序不可改变,从运行状态返回时,可越级转化[15].在不同的状态下,主站可以对从站设备进行不同的控制操作.

主站写状态机方式如表1所示.

表1 写状态机指令Table 1 Instructions of write state machine

1) Init:访问从站寄存器数据;清除从站所有FMMU(现场总线内存管理单元)配置;复位同步管理器SM与分布时钟管理器;配置从站物理地址等.

2) Pre-operation:启用邮箱通信;配置SM、FMMU;写入分布式时钟系统时间(DC sysTime),完成主从站时间同步,循环读取从站寄存器各地址实时数据.

3) Safe-operation:发送TX-PDO(主站输出过程数据).

4) Operation:主从站通信功能全部开启.

5) Bootstrap:在从站支持EtherCAT子协议FoE(file access over EtherCAT)时使用,非必须.

3.2 XML从站描述文件

XML从站配置文件用于描述从站设备的生产商相关信息以及对设备的FMMU、PDO、SM和硬件设备接口进行配置[16].XML文件的编写需符合CiA402协议的相关规定[17].试验中,进行主从站连接测试之前,需要将XML从站描述文件导入到TwinCAT2软件安装目录的IO文件夹下,否则主站无法识别雷赛DM3E系列驱动器.

主站读写设备状态主要通过对象字典完成,支持EtherCAT通信协议的所有驱动器的对象字典需要涵盖CiA402和CoE的相关数据对象.

3.3 通信数据分析

3.3.1 PDO映射数据帧

过程数据对象PDO用来反映从站设备的实时运行状态信息,XML文件定义了RX-PDO(主到从)和TX-PDO(从到主),PDO的传输方式根据主站运行在DC模式和Free-run模式分为周期性和非周期性更新,DM3E定义了4组RX-PDO(索引0x1600~1603h)和2组TX-PDO(索引0x1a00~1a01h),其中RX-PDO包含的对象字典映射内容为控制字、目标位置、最大速度、加减速度和操作模式等,TX-PDO包含状态字、实际位置、错误代码等.

通过分析抓取到的数据帧,主站配置PDO基本方式如下:以TX-PDO1为例,首先对TX-PDO1对象索引0x1a00h的子索引00进行写0操作,从而可以对0x1a00h的所有子索引进行赋值;然后对子索引01h~07h进行赋值,赋值数据的高16位为对象字典的索引,低16位为该索引的位长;在完成0x1a00h的所有子索引的赋值后,重新对0x1a00h的子索引00进行写操作,完成TX-PDO1的配置.范例数据帧如图5所示.

图5 TX-PDO数据帧Fig.5 Data frame of TX-PDO

3.3.2 对象字典数据改写

对象字典为EtherCAT应用层协议的的一部分,是驱动器所有可读写参数和当前状态的集合.当从站设备被软主站TwinCAT扫描完成后,在CoE online界面中可以动态显示所有参数的值.

在本设计中,为了解主站对对象字典各索引位的操作方法,以索引0x2051h(电机运转方向)、0x2057h(清除报警信息)、0x2073h(电机上电自走位)为例,改写其参数值并同时进行抓包:①对索引0x2073h置1,并对索引0x1010:04写入0x65766173完成数据保存,驱动器重新上电后,电机进行正转30度后反转15度运动,说明对索引0x2073h置位成功,分析数据包;②当驱动器ERR灯闪烁时,对索引0x2057h进行置1处理,ERR灯熄灭,说明报警信息清除成功,分析对应数据帧;③索引0x2051h,清0时电机按照逆时针方向运转,置1时电机反方向运转.本设计中对该索引进行置1处理,电机使能后进行顺时针运转,说明置1成功,分析数据包过滤出写对象字典数据帧如图6所示.

图6 改写索引0x2051hFig.6 Rewrite index 0x2051h

3.3.3 运动位置数据实例

为了了解主站如何发送数据控制从站电机运动,设定雷赛DM3E-556驱动器工作在CSP(循环同步位置)模式,通过写从站对象字典完成运动模式的设定.根据CiA402子协议以及XML文件定义可知,从站运动模式索引地址为0x6060h,CSP模式CMD值为8,分析数据包后确定写数据成功,如图7所示,数据中索引到目标地址0x6060h,并对该地址赋值0x08h,通过WKC数值可以判定写数据成功.

图7 写从站运动模式Fig.7 Writing the motion mode of the slave station

之后控制电机进行绝对位移运动,此操作可在TwinCAT软件的Functions界面进行,首先将电机当前位置清零,然后设置目标位置为100 mm,目标速度为40 mm·s-1,预估运动时间为2.5 s.设定完成后按照上参数重复进行5次运动,同时,对整个操作流程进行抓包,分析其具体数据.现对第一次运动数据进行分析.

通过主站的速度规划及目标位置的计算,在子报文LRW中,主站将目标地址写入第25 byte ,使用周期性PDO报文将下一个位置信息传输到从站驱动器,通过分析子报文中数据的具体情况,计算得出发送的第一个数据包与最后一个数据包之间的数值差额为f4240h,即十进制数1 000 000.首末数据报文比较如图8所示.

图8 第一次位置信息首末数据包比较Fig.8 Comparison of the first and last data packets of location information

首末数据包时间信息如图9所示.图中将首位数据包用黑色框选,当前电机运行时间约为21.74 s,位置信息与图8(a)中相同,黑色框选末位数据包,当前电机运行时间约为24.24 s,位置信息与图8(b)中相同,此时,首个数据包到最后一个数据包传输的持续时间约为2.5 s,满足预估的运行时间.

(a) 首个位置数据包时间(b) 末端位置数据包时间图9 第一次运动位置信息数据包时间Fig.9 Time of the first motion location information packet

为确认数据信息无误,对第二次运动数据进行分析,进行绝对值位移运动,运行100 mm,速度不变,第二次运动首末位置数据具体情况如图10所示,数据包时间信息如图11所示.首位置数据为0f4240h,末位置数据为1e8480h,差值为f4240h,即十进制1 000 000.

(a) 位置信息首位数据包(b) 位置信息末位数据包图10 第二次位置信息首末数据包比较Fig.10 Comparison of the first and last data packets of the second location information

图11 第二次运动位置信息数据包时间Fig.11 Time of thesecond motion location information packet

以上列出两次运动数据信息比较,后续分析了剩余3组运动数据,发现数据报文发送持续时间,首末数据报文位置差值同前两次的结果相符合,因此可以解析出主站在CSP模式下控制从站运动的基本方法.

4 结 语

本文通过抓取主从站通信过程的具体数据包来分析主站软件对从站设备的状态机配置、对象字典改写和控制电机运动等基本操作指令的方法,在数据链路层对运动控制报文进行分析,从而了解主站软件的运行方法以及运动控制程序的具体结构,既透彻的解析了主从站的通信方式,也了解了主站软件的基本框架和控制指令的基本结构,对于自行编写主站控制程序提供了良好的基础.

猜你喜欢
主站主从数据包
二维隐蔽时间信道构建的研究*
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
儿童气候教育者让成人开眼看气候
鸟类世界的爱因斯坦
旋转位似的性质与主从联动法
C#串口高效可靠的接收方案设计
县级配电自动化主站系统的设计
PLC控制技术在皮带上料中的应用
利用TL16C554实现主从式多机串行通信