基于EtherCAT实时以太网的主从站时钟同步方法与流程

文档序号:20779040发布日期:2020-05-19 21:04阅读:1537来源:国知局
基于EtherCAT实时以太网的主从站时钟同步方法与流程

本发明涉及实时以太网技术领域,特别涉及一种基于ethercat实时以太网的主从站时钟同步方法。



背景技术:

运动控制系统是数控装备实现精密加工的关键设备。随着工业自动化技术的不断发展,传统的基于脉冲的控制系统和传统的基于现场总线技术的运动控制系统已渐渐不能满足复杂多样的工业场景。网络化,智能化已然成为工业发展的一种潮流。

近年来,诞生的实时以太网技术,因其传播速率快、数据容量大、传输距离长、拓扑结构灵活且在安全、实时、同步性能上有保障而得到快速推广。实时以太网技术ethercat为其中的一个代表。

一个完整的ethercat网络包括主站,从站两个部分。ethercat的过程数据传输机制如同一列火车的往返过程,如图1所示。ethercat主站将数据包发出,伺服驱动器将自己所需的数据取出,并将主站所需的数据安插到数据包中。各个驱动器依次执行,直到最后一个驱动器,最后一个驱动器执行完成后,再将数据包转发给主站。这样就完成了一个周期的过程数据交换。

ethercat实时以太网通过分布时钟(distributedclock)使网络上的从站使用相同的系统时间来满足各个节点间的高同步性能需求。各从站内维护一个本地时钟,其中某个从站时钟(或者主站时钟)作为参考时钟,其它从站根据参考时钟来计算传输延时和本地时钟偏移,并进行补偿。

ethercat以太网提供了从站之间的同步解决方案,不需要复杂的线路,只需要几根标准网络即可实现一个完整,实时,高速的工业以太网通信系统。但仍存在以下不足:

目前主站的实现方式以固定的定时周期与从站进行周期性数据通讯,没有考虑到主站时钟与从站时钟的漂移与主站时钟的定时偏移,从而可能导致主站多个周期的数据会落在同一个从站定时周期,而其它从站定时周期没有数据,进而导致了主站时钟与从站时钟的不同步。以致于引起通讯稳定、受控设备抖动、受控设备达不到控制精度。虽说从站是工作在同步时钟模式下,其控制效果反不如工作在freerun模式下。



技术实现要素:

本发明的目的是克服上述背景技术中不足,提供一种基于ethercat实时以太网的主从站时钟同步方法,解决主从站同步性能差引起的主从站通讯不稳定,受控设备表现不理想的问题。

为了达到上述的技术效果,本发明采取以下技术方案:

基于ethercat实时以太网的主从站时钟同步方法,包括以下步骤:

a.主站广播一个数据帧,获取从站个数、从站拓扑结构及数据到达每个从站的时间;

b.将所有从站状态设置为预运行;

c.选取任一支持分布时钟的从站作为参考时钟从站,根据步骤a得到的从站拓扑结构及数据到达每个从站的时间,计算各非参考时钟从站与参考时钟从站之间的数据传输延时及各非参考时钟从站与参考时钟从站之间的时钟初始偏移,并将此初始偏移下发到非参考时钟从站;

d.设定所有从站第一次同步信号触发时间,以开始时钟动态补偿;

e.静态补偿各非参考时钟从站与参考时钟从站之间的时钟漂移;

f.配置所有从站周期数据,将所需要的过程数据写入所有从站;

g.将所有从站状态设置为安全运行;

h.开始数据更新,在发送周期数据时记下主站在计算上所花费的时间,在每一次数据返回时记下周期数据到达参考时钟从站的时间与下一次同步信号触发的时间,以计算下一次主站发送周期数据的时间,以动态补偿的方式达到主站从站时钟同步的目的;

i.将所有从站状态设置为运行;

j.在开始过程数据发送后,每一次数据的更新都将参考时钟从站的系统时间转发到每个非参考时钟从站,以动态补偿非参考时钟从站与参考时钟从站之间的漂移时钟。

进一步地,所述步骤c中具体选取第一个支持分布时钟的从站作为参考时钟从站。

进一步地,所述步骤f中是通过sdo服务将所需要的过程数据写入从站。

进一步地,所述步骤e具体是主站连续发送n次frmw指令,将参考时钟的时间传送到各非参考时钟从站,各非参考时钟从站根据自己的本地时间、与参考时钟从站的初始偏移及传输延时,调整自己的系统时间以达到与参考时钟从站系统时间一致。

进一步地,所述n的值为5000。

进一步地,所述步骤h具体包括:

h1.在第一次周期数据发送完成,且主站收到回收数据后,记下数据到达参考时钟从站的时间arrt、下一次同步信号触发时间synct;

h2.记录在数据到达之后,同步信号触发之前,参考时钟从站从esc复制并计算数据的时间,记为t1;

h3.记主站定时器的抖动时间为offt;

h4.求同步信号触发时间与实际的数据到达时间差△t1=synct–arrt;

h5.求△t1与t1的时间差△t=△t1-t1;

h6.记主站其它数据计算时间为calct,calct=计算完成时刻-计算开始时刻,其中,计算完成时刻及计算开始时刻均是使用主站所在系统的本地时刻;

h7.记主站定时器的定时周期时间为cyclet;

h8.计算下一次的周期数据发送时刻nextsendt=cyclet+△t-calct–offt。

进一步地,所述步骤h3中定时器的抖动时间offt的确定方法为:取定时器进行的m次抖动测试中,抖动时间的最大值作为定时器的抖动时间offt。

进一步地,m不小于1000,测试次数越多,得到的数据越准确,因此,实际中还可根据具体情况设定具体的测试次数。

本发明与现有技术相比,具有以下的有益效果:

本发明的基于ethercat实时以太网的主从站时钟同步方法,考虑到了数据从主站出发到达从站过程中的每一个时间消耗的可能,在时间控制上更精确,更好地保证了主从的同步性,通讯的稳定性,从而更好地保证了受控设备性能的发挥,有效解决了主从站同步性能差引起的主从站通讯不稳定,受控设备表现不理想的问题。

附图说明

图1是ethercat网络中一个周期的过程数据交换示意图。

具体实施方式

下面结合本发明的实施例对本发明作进一步的阐述和说明。

实施例:

实施例一:

一种基于ethercat实时以太网的主从站时钟同步方法,主要用于解决主从站同步性能差引起的主从站通讯不稳定,受控设备表现不理想的问题,具体包括以下步骤:

步骤1.主站广播一个数据帧,获取从站个数、从站拓扑结构及数据到达每个从站的时间。

步骤2.将所有从站状态设置为pre-op(预运行)。

步骤3.选取任一支持分布时钟的从站作为参考时钟从站,根据步骤1得到的从站拓扑结构及数据到达每个从站的时间,计算各非参考时钟从站与参考时钟从站之间的数据传输延时及各非参考时钟从站与参考时钟从站之间的时钟初始偏移,并将此初始偏移下发到非参考时钟从站。

其中,作为参考时钟从站的从站需为支持分布时钟的从站,本实施例中具体是选取第一个支持分布时钟的从站作为参考时钟从站,实际中也可选取其他支持分布时钟的从站作为参考时钟从站。

步骤4.设定所有从站(即包括非参考时钟从站与参考时钟从站)第一次同步信号触发时间,以开始时钟动态补偿。

具体的,在此步骤中设定第一次同步信号触发时间时无需刻意去计算一个准确的时间,因为在后面的步骤发送第一个过程数据开始会动态地对主站的周期进行补偿。

步骤5.静态补偿各非参考时钟从站与参考时钟从站之间的时钟漂移。

由于各个从站时钟之间存在漂移,而且时间越久,产生的时间差越大。在步骤3中,已经对从站间的初始偏移进行了一个粗略补偿,因此步骤中具体是主站连续发送n次(本实施例中为5000次,实际可以设定其他数值)frmw指令,将参考时钟的时间传送到各非参考时钟从站,各非参考时钟从站根据自己的本地时间、与参考时钟从站的初始偏移及传输延时,调整自己的系统时间以达到与参考时钟从站系统时间一致。

其中,非参考时钟从站调整系统时间的算法在各非参考时钟从站内部完成,与主站无关,且为现有技术,故此处不在赘述。

步骤6.配置所有从站周期数据,将所需要的过程数据写入所有从站;具体是通过sdo服务将所需要的过程数据写入从站。

步骤7.将所有从站状态设置为safe-op(安全运行)。

步骤8.开始数据更新,在发送周期数据时记下主站在计算上所花费的时间,在每一次数据返回时记下周期数据到达参考时钟从站的时间与下一次同步信号触发的时间,以计算下一次主站发送周期数据的时间,以动态补偿的方式达到主站从站时钟同步的目的。

具体的,在此步骤中,主站发送周期数据之前是有一段时间用作计算的,且计算时间根据条件不同而不同。sync触发周期(同步信号触发时间)固定,如果主站定时周期固定,由于主站定时与从站定时存在时间漂移,所以只能保证过程数据更新在开始一段时间内是稳定的,同时,由于还存在有定时器抖动,从而导致过程数据更新时间的稳定性就更差。在本技术方案中,主站定时器周期不固定,具体通过数据到达时间与sync信号触发时间差调整。

其具体操作如下:

步骤8.1.在第一次周期数据发送完成,且主站收到回收数据后,记下数据到达参考时钟从站的时间arrt、下一次同步信号触发时间synct。

步骤8.2.记录在数据到达之后,同步信号触发之前,参考时钟从站从esc复制并计算数据的时间,记为t1。其中,不同芯片得出的t1值不同。

步骤8.3.记主站定时器的抖动时间为offt。

定时器有定时抖动,系统不同定时器的定时精度不同。本实施例中采取测试10000次(次数越多效果越好)定时,取抖动的最大值,作为定时抖动。则将数据到达时间控制在理想到达时间之前,即一定能保证主站与从站的同步性能。本实施例中将主站定时器的抖动时间为offt。

步骤8.4.求同步信号触发时间与实际的数据到达时间差△t1=synct–arrt。

步骤8.5.求△t1与t1的时间差△t=△t1-t1;其中,若△t小于零则表示数据到达太迟了,应将数据到达时间提前(缩短主站定时周期)。

步骤8.6.记主站其它数据计算时间为calct,因为计算时间会因每周期的计算量不同而不同,所以此时间应为计算结束时刻与计算开始时刻之差,即calct=计算完成时刻-计算开始时刻,其中,计算完成时刻及计算开始时刻均是使用主站所在系统的本地时刻。

步骤8.7.记主站定时器的定时周期时间为cyclet;

步骤8.8.计算下一次的周期数据发送时刻nextsendt=cyclet+△t-calct–offt。

则在以后每次周期数据更新都重复步骤8.1至步骤8.8得出下一次的周期数据发送时刻,以动态补偿过程数据的发送时间。

步骤9.将所有从站状态设置为op(运行);

步骤10.在开始过程数据发送后,每一次数据的更新都将参考时钟从站的系统时间转发到每个非参考时钟从站,非参考时钟从站以本地算法计算与参考时钟从站之间的漂移,以动态补偿非参考时钟从站与参考时钟从站之间的漂移时钟。其中,从站以本地算法计算与参考时钟从站之间的漂移具体为从站内的操作,且属于现有技术,故此处不再赘述。

可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1