IGH EtherCAT主站分布式时钟机制的应用与研究

2022-01-27 15:23刘胜旺苏攀杰
机械设计与制造 2022年1期
关键词:主站寄存器延时

马 平,刘胜旺,苏攀杰,蒋 峰

(广东工业大学机电工程学院,广东 广州 510006)

1 前言

随着“智能制造与工业4.0”以及中国制造2025实施制造强国战略发展的大潮,在晋升传统制造企业的途中,也越来越重视自动化及柔性化生产。在工业领域的控制系统中,通信时会造成时间抖动,是由于时钟的不同步造成的,这种影响不可避免,系统性能会受到一定程度的影响,因此时钟精确的同步对于各种控制领域非常重要。EtherCAT现场总线协议是德国倍福(Beckhoff)公司在2003年提出的一种开放实时以太网协议;其完全符合以太网标准,实时性和确定性高,适用于对同步性能较高的控制系统。例如德国舒勒公司的快速驱动和液压控制系统,也是基于EtherCAT技术实现了一套有自主产权的液压控制系统;华南理工大学也使用了DC同步技术,在使用EtherCAT作为通信层的基础上,完成了DC机制在六轴工业机器人的控制系统的应用,且实现了从站之间收获了ns级别的同步。总的来说EtherCAT拥有比较完美的同步性能,该机制采用分布式时钟同步机制(Distributed Clock),能够完成EtherCAT设备之间精准的时钟同步。简单高效的DC机制,可以保证EtherCAT网络时钟同步精度小于1µs。因此EtherCAT的DC机制的应用,不仅提高了工业机器人系统中各从站的时钟同步能力,对整体性能也起到了决定性的作用。采用嵌入式工控机为硬件平台,采用Linux+Xenomai实时机制,并搭建开源主站IGH EtherCATMaster来实现分布时钟同步的技术方案。

2 EtherCAT的分布式时钟同步

首先在EtherCAT中,主站和从站有自己独立的硬件时钟源,而EtherCAT分布时钟同步技术选用的参考时钟(Reference Clock)为主站连接的第一个具有DC功能的从站,当同步所有的从站时钟(Slave Clock)时钟时,都要以这个参考时钟为基准,主站时钟(Master Clock)仍需与参考时钟保持同步。分布时钟机制主要分为:系统时间的同步,即为主站时钟、参考时钟与其余从站时钟之间的同步。

2.1 同步组成,产生的原因及补偿方法

在此过程中,分布时钟补偿主要由三个部分组成:第一个为传输延时(Transmission Delays)的补偿。传输延时是因为数据帧在网线上的传输和从站对数据帧的处理和收发而造成的。每个从站网络口都有一个寄存器,开始测量传输延时时,对从站网络口0的寄存器执行写操作,在每一个数据包收到时,寄存器会自动将此时的系统时间保存起来,接着主站会将这个时间点读出,通过相关计算得出时间延迟(从站间的)。最终通过相关的计算方法将从站到参考时钟的时间延迟得出后,将这些得到的值放入所对应的寄存器中,并处理好相关数据,以完成传输延时的时间补偿。第二个为时钟偏移(Time Offset)的补偿,其是由于各个从站不一致的上电时间引起的。EtherCAT主站将主站的系统时间(System Time)减去从站的内部时钟得到时钟的偏移值,系统时间偏移寄存器(System Time Offset)每个从站提供了一个,以对消时钟偏差的补偿。第三个阶段是时钟漂移(Drift)的补偿。是由于从站时钟晶振的微小硬件差异而造成各个从站的时钟速率不一样。对系统时间(System Time)寄存器进行写操作会将写入的时间和当前系统时间进行比较,计算出Time Error,依据算出来的值来改变时钟速度的快慢,以补偿时钟漂移。同步过程,如图1所示。

图1 同步过程图Fig.1 Synchronization Process Diagram

2.2 传输延时补偿

实例来看,如图2所示。在通过测量、计算和分析传输延时的过程中,如果参考时钟为从站1,从站4的数据在内部没有中断,网络传输时从站的物理网络口的接口类型都相同,tWXY=tWYX,即在网线的传输延时是均匀的,而且一切从站的tP相同,tF也都相同,所以tDIFF也相同。

图2 EtherCAT传输延时结构Fig.2 EtherCAT Transmission Delay Structure

基于以上假设,根据图2可以得出最后两个相邻的从站3和从站4之间的传输延时t34由一个处理延时和一个网线延时组成即:

又由于假设了所有的从站处理延时均相同,所以可得:

从站(n-1)的A/B网络口的接受时间关系如下:

所以从站(n-1)和n之间的传输延时为:

线形网络中任意两个相邻的从站的传输延时(只要不是线性网络中的最后两个和最开始的两个从站即可)从站2和3之间的传输延时(t23和t32)可由以下公式计算得到:

假定从站3的处理延时和转发延时之间的差值为:

由于从站的处理延时相同可得:

从站2的两个网络口(网络口A和网络口B)的接收时间有以下关系:

从而得到从站B和C之间的传输延时为:

图2中最开始的两个从站的传输延时的计算:按照以上公式可以得到,传输延时从站A和B之间为:

参考从站与各个从站之间的传输延时计算如下:

将公式带入公式化简得:

由归纳法可得,在图2中第i个从站x到参考从站A的传输延时为:

式中:tPx—从站x的处理延时;tFx—从站x的转发延时;tWXY—从站x到从站y的网线传输延时;tXA/B—从站x的网络口A/B的接受时间;tEX—从站x的EtherCAT处理单元的接收时间;tP—处理延时;tF—转发延时;tDIFF—处理延时与转发延时的差。

2.3 时钟偏移补偿

首先此偏差是由于某个从站的本地时钟和参考时钟上电时间差异所引起的。且此次的补偿只做一次,以补偿从站和参考从站之间上电的初始时钟偏差。为了抵消此偏差,从站会提供系统时钟偏移寄存器,就能得到tOFF的值,假设此时tLOCAL>tSYS_REF,即得到如下:

式中:tLOCAL—本地时钟;tSYS_REF—系统参考时钟;tOFF—时钟偏差。

2.4 时钟漂移的补偿

由于不同时间读写寄存器而导致很小的时间偏移误差等原因,通过时钟漂移来进行补偿。传输延时和时钟偏移是通过相关的计算与测量得到的,主站发送相关报文,将tSYS_REF值从从站的相关寄存器读出来后,写入相应的从站,且从站提供了一个寄存器,其功能就是备份寄存器的值tSYS_LOCAL,而后将得到的参考时钟和从站本地时钟进行如下计算,得到时钟偏移补偿:

式中:tSYS_LOCAL—从站本地时钟;tDELAY—从站的延迟时间。

参考时间与本地系统时间要维持同步关系,即可得到tSYS_LOCAL=tSYS_REF,变化成如下公式:

根据从站算出来的Δt,以改变本地时钟的速度大小,来完成对时钟的漂移补偿。假设Δt>0,则说明从站的本地时钟更快,ESC会控制并改变其时间,每10µs改变为9µs;假如Δt<0,表现为参考时钟更加快,ESC则控制时间每10µs变为11µs。

3 EtherCAT主站DC同步的程序设计

EtherCAT主站是由研华的嵌入式工控机配上igb以太网网卡等完成了的主站硬件环境的搭建。主站的软件设计是基于Linux的双内核(Xenomai)方案,在应用程序中将系统的实时任务让Xenomai来管理,在Linux端管理非实时的任务,并在其上完成EtherCAT协议;主要任务是Xenomai和IGHEtherCAT主站的移植,igb网卡的移植,以及应用程序的设计三个部分,总体框架,如图3所示。

详细的程序设计,与EtherCAT主站DC相关的主要分为两步:第一步为主站,时钟等相关初始化和配置,第二步为实时任务周期运行和dc同步。

3.1 EtherCAT相关配置

在此阶段要完成申请主站等相关配置后才进入任务周期运行,其流程,如图4所示。

首先调用ecrt_request_maste(r)函数申请主站,再通过相关API创建数据域,配置从站和相关sdo、pdos。然后设置主站的传输周期调用ecrt_master_set_send_interva(l),此周期时间设置为1ms,与任务周期时间相同。ecrt_slave_config_dc()用来配置从站dc信号及相关参数。本程序选择从站为参考时钟,而没采用以主站为参考时钟的方案,是因为从站定时器精度更高,更利于完成精确的同步过程。dc_ini(t)函数设置了dc补偿周期,时间为1ms,并用启用定时器计时,以初始化主站时的时间。在所有的配置和初始化结束后,开始运行主站通信,并执行实时任务。

3.2 实时任务周期运行和dc同步

首先主站先读取数据帧,并处置收到的报文,判断报文的状态,如图5所示。然后读取相关数据,并根据读取出的状态字,来选择对应下发写入的特定指令。函数sync_dc()中调用相关函数来同步从站时钟,并获得参考时钟的时间,设置此时应用的时间调用ecrt_master_application_time()。然后通过上图API,对收到的报文进行提交和发送。最后一步的主要工作是通过参考时钟来调整主站时钟,以完成对时钟的漂移补偿。

图5 任务运行阶段Fig.5 Task Run Phase

4 测试分析和实验结果

在搭建的硬件平台中,采用嵌入式工控机作为硬件平台,选用自主开发的开源主站,通信的模式设为分布时钟同步模式,且周期的运行时间为1ms,并以科尔摩根的伺服以及配套电机作为从站,以完成硬件平台的搭建。并且经过交换机来连接工控机、伺服驱动器和装有Wireshark的PC进行EtherCAT数据帧的抓取和分析,时钟同步性能的测试主要是在于分布时钟的同步和sync事件产生的时间。

4.1 主站的网络通信测试

当EtherCAT主站的应用程序运行后,主站从pre-op状态转换到operation状态,则可以进行周期性通信,通信周期设置为1ms。使用Wireshark抓包软件,监控分析伺服通信时的情况,相关的硬件测试环境,如图6所示。

图6 网络通信测试平台Fig.6 Network Communication Test Platform

利用wireshark捕获主站发出和接受到的数据帧,判别主站是否完成收发EtherCAT数据帧。在主站程序运行后,软件分析结果,如图7所示。发送数据包时发了7条命令,且Cnt为0,在接受数据包后,Cnt为非0。经过图7中对比分析可以知道,主从站间的通信正常,并且成功返回相关数据,可靠的证明了数据的有效性。

图7 Wireshark测试图Fig.7 Wireshark Test Chart

4.2 同步性能测试

在科尔摩根的伺服驱动器ESC芯片中,寄存器记录了从站系统时间偏差的值,其值等于从站本地时间减去参考时间,当从站系统时间差值的绝对值越小,则说明时钟同步的效果越好。在这里的调试阶段,EtherCAT主站控制器通过周期性的通信来读取从站系统时间偏差的值,每隔1ms读取一次,时间间隔和任务运行周期一致,并对其值做4000次读取,测得的数值通过终端打印出来并统计数据。时钟同步性能测试的结果,如图8所示。

图8 从站间的时间差Fig.8 Time Difference between Stations

在图8中可以看出在同步前时的时钟偏差大概为530µs,在初始化运行一段时间后,时间偏差呈现先递减再递增最后递减的规律,总体表现为在经过1800次左右的读取后,时间差值趋于稳定,并在运行一段时间后同步后的时钟偏差的绝对值趋于稳定。根据测试结果可以得到,在刚开始通信时,从站间只完成粗略的同步,误差相对较大,在DC补偿开始运行时,作用明显,使得参考时钟和从站时钟的时间偏差逐渐减小,时间偏差的值稳定在70ns内。

5 结论

伴随着工业以太网现场总线的发展,EtherCAT技术由于有着得天独厚的优势,普遍的应用在工业机器人领域。不仅分析了主站的DC同步机制,在实现了对主站协议栈IGH EtherCAT移植的基础上,详细的完成了DC同步的软件设计。完成了主从站之间的同步,利用分布时钟机制,并实际测试了参考时钟和从站时钟之间的同步精度。实践结果表明同步表现较之前GSK RP/PT系列机器人,同步后从站间时钟偏差降低了30ns,满足了工业机器人的应用需求。

猜你喜欢
主站寄存器延时
Lite寄存器模型的设计与实现
基于S7-1200 PLC的DP总线通信技术在马里古伊那水电站泄洪冲沙孔门机上的应用
日光灯断电关闭及自动延时开关设计
二进制翻译中动静结合的寄存器分配优化方法
移位寄存器及算术运算应用
多表远程集抄主站系统
基于CD4060 的室内换气系统延时关机电路设计
县级配电自动化主站系统的设计
PLC控制技术在皮带上料中的应用
宋湘延时答妙对