Profinet网络多时间域时间同步方法与流程
未命名
07-12
阅读:116
评论:0
profinet网络多时间域时间同步方法
技术领域
1.本发明属于时间同步方法领域,特别涉及一种profinet网络多时间域时间同步方法。
背景技术:
2.当前profinet以太网支持的三种通信方式里,只有irt考虑了时间同步的问题,通过定义的gsy(generic sync module)协议栈来实现设备间的时间同步。一方面没有考虑到通过udp/ip和rt通信的设备对时间同步的诉求,另一方面也没有考虑时钟漂移对时间同步精度的影响。profinet技术主要由profinet io和profinet cba两个部分组成。profinet cba技术,即profinet基于组件的自动化,实现分布式装置、机器模块、局部总线等设备级智能模块自动化应用。profinet io主要用于自动化系统中对分布式io的控制。profinet io包括3种不同的设备类型,分别是io控制器、io监视器以及io设备。io控制器一般由plc组成,负责现场设备的配置、运行控制以及数据转发等;io监视器包括pc、hmi(人机交互设备)等,主要用于io控制器和io设备的监控和诊断;io设备是分散在现场的各种设备、子系统等。一个典型工业场景部署的profinet网络如图1所示。
3.profinet通信方式包括udp/ip、rt和irt共3种通信类型。udp/ip是非实时性通信,用于组态、参数配置、诊断等非实时性要求场景;rt通信适合周期性数据交换场景,可以用于普通的工厂自动化控制;irt通信用于实时性要求、同步要求特别高的应用场合,比如运动控制、电子齿轮相关应用。结合profinet网络的实际应用场景,各个业务形态对实时性要求的差异,带来udp/ip、rt和irt这三种通信方式的时间精度规格差异较大。
4.设计profinet网络时间同步的总体架构时,不同通信方式的设备工作在其单独的时间域,整个profinet网络各节点实现各自时间域的时间同步。要实现节点间的时间同步,需考虑时间同步的一些重要因素的影响,包括:晶振漂移影响rtc计时、节点收发报文器件的延时以及rtc初始化时间差异等。
5.因此,基于上述背景技术的介绍,本发明要解决的技术问题是:如何实现同一种通信方式多个节点的时间同步。
技术实现要素:
6.鉴于背景技术所存在的技术问题,本发明所提供的profinet网络多时间域时间同步方法,应用在udp/ip、irt和rt各自的时间域,实现网络里各节点域内的时间同步。
7.为了解决上述技术问题,本发明采取了如下技术方案来实现:
8.一种profinet网络多时间域时间同步方法,步骤为:
9.步骤1,通过中心节点向同一种通信方式的n个节点发送携带时间信息报文,n表示自然整数;
10.步骤2,每个节点收到同步报文后也将携带时间信息的报文回给中心节点;
11.步骤3,中心节点记录收到回复报文的时间信息;
12.步骤4,中心节点再通过上述所有的时间信息计算得到n个节点的时间偏差,并将该偏差发给待调整节点,实现同一种通信方式n个节点的时间同步。
13.优选地,n取值为2,profinet网络包括rtc模块,步骤1-4的分解步骤如下;
14.节点1向节点2连续2次发送报文,t
′1和t1分别表示2次报文发送的时间点,t
′
12
和t
12
分别表示2次报文接收到的时间点;用d
′
12
表示第1次节点1向节点2发送报文的路径延迟,d
12
表示第2次节点1向节点2发送报文的路径延迟;
15.计算得到上述流程满足的表达式如下:
16.τ1(t
′1)=α1t
′1+β117.τ1(t1)=α1t1+β118.τ2(t
′
12
)=α2t
′
12
+β219.τ2(t
12
)=α2t
12
+β220.d
′
12
=t
′
12-t
′121.d
12
=t
12-t122.式中:α表示时钟漂移,β表示初始时间偏差,τ表示某一时间点rtc的逻辑时间,逻辑时间是一个一阶函数。
23.通过上述公式,计算得到节点2和节点1漂移系数的关系:
[0024][0025]
式中,d
′
12
和d
12
跟网络的拥塞状态直接相关,是一个变化的量,通过均值计算v
12
的数值:
[0026][0027]
δ
12
表示节点1和节点2的偏移系数之比,t表示报文发送的时间点,τ表示某一时间点rtc的逻辑时间,e(d
12-d
′
12
)表示(d
12-d
′
12
)的平均值。
[0028]
统计一段时间内的时钟报文,根据实际需求确定统计时长。同步精度要求较高场景则需要在短时间内做出调整,统计时长需要短一些;否则,统计时长可以久一些。对于统计时长内的路径延迟d
12
和d
′
12
,可认为延时的平均值相同,所以e(d
12-d
′
12
)为0,得到:
[0029][0030]
加入低通滤波以减少网络变化对计算结果造成的影响,用于提高系统的鲁棒性:设置滤波系数为ρ,可得到δ
12
的表达式为:
[0031][0032]
结合rtc的逻辑时间表达式:τ(t)=αt+β,得到:在2个节点实现时间同步的基础上可以计算一段时间内因为时钟漂移对2个节点造成的时间偏差表示式为:
[0033][0034]
其中δt1为节点1的时间增量,δt2为节点2的时间增量,运行时通过自动补偿因为时钟漂移差异造成的时间偏差,实现提高节点间时间同步精度的目的。
[0035]
优选地,profinet网络每个节点还包括mcu和tx/rx模块,其中mcu作为节点的处理器用于报文封装、解析和收发,tx/rx模块为实际处理模块,中心节点、节点1和节点2均是profinet网络的支持同一种通信方式的设备;中心节点为支持多种通信方式的节点,确定中心节点后,中心节点开始周期性向其他节点发送携带时间同步的请求报文,其他节点在接收到中心节点发送的带有时间信息的报文后,回复带有时间信息的报文进行应答;携带的时间信息汇总到中心节点后,中心节点做进一步的处理,处理步骤如下:
[0036]
1)中心节点向节点1发送时间同步请求报文,记录下该报文发送出去的时间点t1;
[0037]
2)为了避免节点连续向网络不同节点发送报文对网络的传输造成影响,稍做延时后向节点2发送时间同步请求报文,记录下该报文发送出去的时间点t3;
[0038]
3)节点1在收到中心节点发送的时间同步请求报文后,记录下此时时间点t2;
[0039]
4)同样地,节点2也记录下接收到时间同步请求报文的时间点t4;
[0040]
5)在节点1接收到报文后,向中心节点发送一个回复报文,报文带上该节点接收到主节点请求报文的时间点t2,同时也带上发送报文的时间点t5。
[0041]
6)同样地,节点2也发送回复报文,带上时间信息t4和t7;
[0042]
7)在中心节点接收到节点1和节点2的回复报文时,分别记录下接收报文的时刻t6和t8;
[0043]
8)在主节点获取主从节点之间收发报文带上的时间信息,包括t1-t8共8个。通过上述时间信息,再结合路径的延时,计算得到节点1和节点2之间的时间偏差te。
[0044]
9)中心节点将时间偏差te发送至节点1,完成报文的通信。
[0045]
本发明可达到以下有益效果:
[0046]
本发明基于profinet以太网存在的3种通信方式,考虑到3种通信方式对时间同步规格上的差异,设计了一个多时间域的模型,采用相同通信方式的设备在各自的时间域内实现时间同步。针对晶振存在的时钟漂移,建立了一个数学模型分析时钟漂移对时间的影响,提高时间同步的精度。考虑到每个节点的器件间数据发送接收存在延时,通过测量方式补偿该误差。在此基础上,通过携带时间信息报文的收发,获取周期内不同节点的时间信息,结合这些时间信息可计算得到时间偏差,再通过rtc的调整实现节点间的时间同步。上述方法应用在udp/ip、irt和rt各自的时间域,实现网络里各节点域内的时间同步。
附图说明
[0047]
下面结合附图和实施例对本发明作进一步说明:
[0048]
图1为典型工业场景profinet网络示意图;
[0049]
图2为本发明节点间报文收发示意图;
[0050]
图3为本发明漂移对节点rtc计时产生的影响线性图;
[0051]
图4为profinet网络节点组成图;
[0052]
图5为本发明网络节点的时间同步处理步骤。
具体实施方式
[0053]
实施例1:
[0054]
优选的方案如图1至图5所示,一种profinet网络多时间域时间同步方法,实施方法如下:
[0055]
profinet网络上各节点的时间模块包括包括晶振、rtc模块及其外围的电路,晶振工作频率是rtc模块计时的基准。出厂后的的晶振跟标称频率有一定偏差,偏差大小跟晶振类型有关。此外晶振在整个生命周期内,因为环境温度、器件老化等因素的影响,晶振工作频率会一直变化。业界通常用时钟漂移来表示晶振频率的误差,漂移系数可表示为:
[0056][0057]
其中α(t)表示在时间t时的时钟漂移,f(t)表示在时间t时的实际晶振频率,f0表示晶振的标称频率。
[0058]
网络每个节点的接入时间不同,有的节点可能在下电后又重新上电,所以节点相对于t=0的时间点都有一个初始时间偏差,记这个初始时间偏差为β。在比较短的时间内可以认为漂移系数不变,所以节点硬件记录的时间跟绝对时间呈线性关系,相关表达式为:
[0059]
τ(t) = αt + β (2)
[0060]
结合上述漂移系数对时间的影响分析,考虑到profinet网络上许多节点使用的晶振规格较低,所以设计时间同步方案时,需将漂移系数变化对时间的影响纳入进去。
[0061]
为了计算漂移系数的影响,以2个进行时间同步的节点为例分析。
[0062]
如图2所示,节点1向节点2连续2次发送报文,t
′1和t1分别表示2次报文发送的时间点,t
′
12
和t
12
分别表示2次报文接收到的时间点。用d
′
12
表示第1次节点1向节点2发送报文的路径延迟,d
12
表示第2次节点1向节点2发送报文的路径延迟。
[0063]
于是,可以计算得到上述流程满足的表达式如下:
[0064]
τ1(t
′1) = α1t
′
1 + β
1 (3)
[0065]
τ1(t1)=α1t1+β1[0066]
τ2(t
′
12
)=α2t
′
12
+β2[0067]
τ2(t
12
)=α2t
12
+β2[0068]d′
12
=t
′
12-t
′1[0069]d12
=t
12-t1[0070]
通过上述6个式子,可计算得到,节点2和节点1漂移系数的关系:
[0071][0072]
上述式子中涉及到d
′
12
和d
12
,该参数跟网络的拥塞状态直接相关,是一个变化的量。可通过均值计算δ
12
的数值:
[0073]
[0074]
统计一段时间内的路径延迟d
12
和d
′
12
,可认为延时的平均值相同,所以e(d
12-d
′
12
)为0,所以:
[0075][0076]
考虑到网络的复杂性,特别是节点多、数据量大的网络里,路由切换、报文拥塞等都会对上述结果的计算造成比较大的影响。所以有必要加入低通滤波以减少网络变化对计算结果造成的影响,提高系统的鲁棒性。设置滤波系数为ρ,可得到δ
12
的表达式为:
[0077][0078]
设置δ
12
初始化为1,通过持续迭代就可以计算得到2个节点实时的时钟漂移比。时钟漂移对rtc计时产生的影响是长期的,2个节点的漂移系数比δ
12
也是在不断变化的。通过上述描述的步骤,可以计算得到某一段时间的δ
12
,不同时间点的影响如图3所示,在短时间内可认为δ
12
不变,可发现即使2个节点已经实现了时间同步,因为漂移系数差异的影响,节点间的偏差会逐渐变大。
[0079]
结合rtc的逻辑时间表达式(2),在2个节点实现时间同步的基础上可以计算一段时间内因为时钟漂移对2个节点造成的时间偏差表示式为:
[0080][0081]
其中δt1为节点1的时间增量,δt2为节点2的时间增量,运行时通过自动补偿因为时钟漂移差异造成的时间偏差,实现提高节点间时间同步精度的目的。
[0082]
此外,profinet网络每个节点包括mcu和tx/rx模块,其中mcu作为节点的处理器用于报文封装、解析和收发,tx/rx模块实际处理模块,如图4所示。所以报文实际发送和接收的时间点相对会有一点延时,该延时在设备研制好就确定了,测量好延时加入补偿即可。
[0083]
profinet网络实现时间同步的流程如图所示,中心节点、节点1和节点2均是profinet网络的支持同一种通信方式的设备。中心节点通常选支持多种通信方式的节点,例如网络交换机。确定中心节点后,中心节点开始周期性向其他节点发送携带时间同步的请求报文,其他节点在接收到中心节点发送的带有时间信息的报文后,回复带有时间信息的报文进行应答。携带的时间信息汇总到中心节点后,中心节点做进一步的处理,详细的处理步骤如图4所示。
[0084]
详细的处理步骤如下:
[0085]
1)中心节点向节点1发送时间同步请求报文,记录下该报文发送出去的时间点t1;
[0086]
2)为了避免节点连续向网络不同节点发送报文对网络的传输造成影响,稍做延时后向节点2发送时间同步请求报文,记录下该报文发送出去的时间点t3;
[0087]
3)节点1在收到中心节点发送的时间同步请求报文后,记录下此时时间点t2;
[0088]
4)同样地,节点2也记录下接收到时间同步请求报文的时间点t4;
[0089]
5)在节点1接收到报文后,向中心节点发送一个回复报文,报文带上该节点接收到主节点请求报文的时间点t2,同时也带上发送报文的时间点t5。
[0090]
6)同样地,节点2也发送回复报文,带上时间信息t4和t7
[0091]
7)在中心节点接收到节点1和节点2的回复报文时,分别记录下接收报文的时刻t6和t8。
[0092]
8)这样在主节点就能获取主从节点之间收发报文带上的时间信息,包括t1-t8共8个。通过上述时间信息,再结合路径的延时,可以计算得到节点1和节点2之间的时间偏差te。
[0093]
9)中心节点将时间偏差te发送至节点1,完成报文的通信。
[0094]
假设中心节点发送报文到节点1的传输延时为delay01,节点1向中心节点回复报文的延时是delay10;中心节点发送报文到节点2的传输延时为delay02,节点2向中心节点回复报文的延时是delay20。同时节点1和中心节点的时间偏差是offset1,节点2和中心节点的时间偏差是offset2。可以得到如下计算表达式:
[0095]
t2-t1=delay01+offset1(9)
[0096]
t4-t3=delay02+offset2
[0097]
t6-t5=delay10-offset1
[0098]
t8-t7=delay20-offset2
[0099]
综合上述4个表达式,可得到
[0100]
te=offset2-offset1(10)
[0101]
=(t1-t2-t3+t4-t5+t6+t7-t8)/2+
[0102]
(delay20-delay10-delay02+delay01)/2
[0103]
考虑到任意2个节点进行通信,报文收发的路径距离是一致的,报文在转发过程中等待时间的差异较小可忽略,于是可认为delay20和delay02以及delay10和delay01是相同的。所以:
[0104]
te=(t1-t2-t3+t4-t5+t6+t7-t8)/2(11)
[0105]
上述计算得到的时间偏差te由主节点发送至节点2,节点2根据跟节点1之间的偏差te来调整自身rtc,实现节点1和节点2的时间同步。
[0106]
综上所述,通过对节点固定延时进行补偿,并计算时钟漂移对节点时间稳定度造成的影响,再结合时间同步报文调整时间,最终实现profinet网络上各个时间域的设备时间同步。
[0107]
上述的实施例仅为本发明的优选技术方案,而不应视为对于本发明的限制,本发明的保护范围应以权利要求记载的技术方案,包括权利要求记载的技术方案中技术特征的等同替换方案为保护范围。即在此范围内的等同替换改进,也在本发明的保护范围之内。
技术特征:
1.一种profinet网络多时间域时间同步方法,其特征在于包括以下步骤:步骤1,通过中心节点向同一种通信方式的n个节点发送携带时间信息报文,n表示自然整数;步骤2,每个节点收到同步报文后也将携带时间信息的报文回给中心节点;步骤3,中心节点记录收到回复报文的时间信息;步骤4,中心节点再通过上述所有的时间信息计算得到n个节点的时间偏差,并将该偏差发给待调整节点,实现同一种通信方式n个节点的时间同步。2.根据权利要求1所述的profinet网络多时间域时间同步方法,其特征在于:n取值为2,profinet网络包括rtc模块,步骤1-4的分解步骤如下;节点1向节点2连续2次发送报文,t
′1和t1分别表示2次报文发送的时间点,t
′
12
和t
12
分别表示2次报文接收到的时间点;用d
′
12
表示第1次节点1向节点2发送报文的路径延迟,d
12
表示第2次节点1向节点2发送报文的路径延迟;计算得到上述流程满足的表达式如下:τ1(t
′1)=α1t
′1+β1τ1(t1)=α1t1+β1τ2(t
′
12
)=α2t
′
12
+β2τ2(t
12
)=α2t
12
+β2d
′
12
=t
′
12-t
′1d
12
=t
12-t1式中:α表示时钟漂移,β表示初始时间偏差,τ表示某一时间点rtc的逻辑时间,逻辑时间是一个一阶函数;通过上述公式,计算得到节点2和节点1漂移系数的关系:式中,d
′
12
和d
12
跟网络的拥塞状态直接相关,是一个变化的量,通过均值计算δ
12
的数值:的数值:δ
12
表示节点1和节点2的偏移系数之比,t表示报文发送的时间点,τ表示某一时间点rtc的逻辑时间,e(d
12-d
′
12
)表示(d
12-d
′
12
)的平均值;统计一段时间内的时钟报文,根据实际需求确定统计时长,对于统计时长内的路径延迟d
12
和d
′
12
,可认为延时的平均值相同,所以e(d
12-d
′
12
)为0,得到:加入低通滤波以减少网络变化对计算结果造成的影响,用于提高系统的鲁棒性:设置滤波系数为ρ,可得到δ
12
的表达式为:
结合rtc的逻辑时间表达式:τ(t)=αt+β,得到:在2个节点实现时间同步的基础上可以计算一段时间内因为时钟漂移对2个节点造成的时间偏差表示式为:其中δt1为节点1的时间增量,δt2为节点2的时间增量,运行时通过自动补偿因为时钟漂移差异造成的时间偏差,实现提高节点间时间同步精度的目的。3.根据权利要求2所述的profinet网络多时间域时间同步方法,其特征在于:profinet网络每个节点还包括mcu和tx/rx模块,其中mcu作为节点的处理器用于报文封装、解析和收发,tx/rx模块为实际处理模块,中心节点、节点1和节点2均是profinet网络的支持同一种通信方式的设备;中心节点为支持多种通信方式的节点,确定中心节点后,中心节点开始周期性向其他节点发送携带时间同步的请求报文,其他节点在接收到中心节点发送的带有时间信息的报文后,回复带有时间信息的报文进行应答;携带的时间信息汇总到中心节点后,中心节点做进一步的处理,处理步骤如下:1)中心节点向节点1发送时间同步请求报文,记录下该报文发送出去的时间点t1;2)为了避免节点连续向网络不同节点发送报文对网络的传输造成影响,稍做延时后向节点2发送时间同步请求报文,记录下该报文发送出去的时间点t3;3)节点1在收到中心节点发送的时间同步请求报文后,记录下此时时间点t2;4)同样地,节点2也记录下接收到时间同步请求报文的时间点t4;5)在节点1接收到报文后,向中心节点发送一个回复报文,报文带上该节点接收到主节点请求报文的时间点t2,同时也带上发送报文的时间点t5;6)同样地,节点2也发送回复报文,带上时间信息t4和t7;7)在中心节点接收到节点1和节点2的回复报文时,分别记录下接收报文的时刻t6和t8;8)在主节点获取主从节点之间收发报文带上的时间信息,包括t1-t8共8个;通过上述时间信息,再结合路径的延时,计算得到节点1和节点2之间的时间偏差te;9)中心节点将时间偏差te发送至节点1,完成报文的通信。
技术总结
一种Profinet网络多时间域时间同步方法,通过中心节点向同一种通信方式的N个节点发送携带时间信息报文,N表示自然整数;每个节点收到同步报文后也将携带时间信息的报文回给中心节点;中心节点记录收到回复报文的时间信息;中心节点再通过上述所有的时间信息计算得到N个节点的时间偏差,并将该偏差发给待调整节点,实现同一种通信方式N个节点的时间同步。本发明应用在UDP/IP、IRT和RT各自的时间域,实现网络里各节点域内的时间同步。现网络里各节点域内的时间同步。现网络里各节点域内的时间同步。
技术研发人员:黄天雄 李初辉 杜波 李小坤 廖中亮 董懿 孔令超
受保护的技术使用者:中国长江电力股份有限公司
技术研发日:2023.03.27
技术公布日:2023/7/7
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
