主备设备同步方法、装置及系统与流程

专利2023-10-01  117



1.本发明涉及时钟同步技术领域,尤其涉及一种主备设备同步方法、装置及系统。


背景技术:

2.高速铁路车载设备是保证列车行车安全的关键设备,从地面设备接收线路条件、行车许可等控制信息,并依据列车牵引制动特性,生成目标距离连续速度模式曲线,保证列车不超过允许速度曲线,尽量在最大运行速度时,保证列车安全运行,减小列车运行时间。
3.如果车载设备没有采用热备技术,一旦车载设备故障,依据故障导向安全原则,列车将制动停车。停车后,如果重启车载设备,故障能够恢复,列车可以在车载设备的监督下继续运行;如果重启车载设备,故障依旧不能恢复,将严重影响运行效率。因此,将车载设备设计成双系热备,一个系统发生故障,另一个系统可以继续控车。
4.如果互为热备冗余的车载设备中运行多个不同运行周期的应用执行过程,如何解决主备系时间同步问题,进而促进双机中独立运行多个不同周期任务的应用是目前业界亟待解决的重要课题。


技术实现要素:

5.针对现有技术存在的问题,本发明提供一种主备设备同步方法、装置及系统。
6.本发明提供一种主备设备同步方法,应用于主设备,包括:
7.根据主设备与从设备之间的通信信息,确定所述主设备与所述从设备之间的本次时钟偏差;
8.根据所述主设备上每个平台任务的当前周期的开始时间和所述本次时钟偏差,确定所述从设备上每个平台任务的当前周期的开始时间;
9.将所述从设备上每个平台任务的当前任务周期的开始时间发送给所述从设备,以供所述从设备根据所述从设备上每个平台任务的当前运行时刻、周期时长和当前任务周期的开始时间,确定所述从设备上每个平台任务的下个周期的开始时间。
10.根据本发明提供的一种主备设备同步方法,所述根据主设备与从设备之间的通信信息,确定所述主设备与所述从设备之间的本次时钟偏差的步骤包括:
11.向所述从设备发送信号,确定发送所述信号的第一时刻;
12.接收所述从设备发送的反馈信息,所述反馈信息包括所述从设备接收所述信号的第二时刻和所述从设备发送所述反馈信息的第三时刻,确定接收所述反馈信息的第四时刻;
13.确定所述第一时刻和第三时刻之间的第一时长,所述第二时刻和第四时刻之间的第二时长;
14.根据所述第一时长和第二时长,确定所述主设备与所述从设备之间的本次时钟偏差。
15.根据本发明提供的一种主备设备同步方法,所述根据主设备与从设备之间的通信
信息,确定所述主设备与所述从设备之间的本次时钟偏差的步骤包括:
16.根据所述主设备与从设备之间每次交互通信的通信信息,确定所述主设备与所述从设备之间每次交互通信的本次时钟偏差;
17.去掉所有次交互通信对应的本次时钟偏差中的最大值和最小值后,采用最小二乘法获取剩余本次时钟偏差的平均值,将所述平均值作为所述主设备与所述从设备之间的本次时钟偏差。
18.根据本发明提供的一种主备设备同步方法,所述根据所述主设备上每个平台任务的当前周期的开始时间和所述本次时钟偏差,确定所述从设备上每个平台任务的当前周期的开始时间的步骤包括:
19.读取所述主设备上的共享内存中每个平台任务的当前周期的开始时间;其中,每个平台任务的当前周期的开始时间由每个平台任务发送到所述共享内存中;
20.将所述共享内存中每个平台任务的当前周期的开始时间减去所述本次时钟偏差,获取所述从设备上每个平台任务的当前周期的开始时间。
21.本发明还提供一种主备设备同步方法,应用于从设备,包括:
22.接收主设备发送的从设备上每个平台任务的当前任务周期的开始时间;
23.其中,所述从设备上每个平台任务的当前任务周期的开始时间由所述主设备根据所述主设备上每个平台任务的当前周期的开始时间,以及所述主设备与所述从设备之间的本次时钟偏差确定;
24.所述本次时钟偏差由所述主设备根据所述主设备与从设备之间的通信信息确定;
25.根据所述从设备上每个平台任务的当前运行时刻、周期时长和当前任务周期的开始时间,确定所述从设备上每个平台任务的下个周期的开始时间。
26.根据本发明提供的一种主备设备同步方法,所述根据所述从设备上每个平台任务的当前运行时刻、周期时长和当前任务周期的开始时间,确定所述从设备上每个平台任务的下个周期的开始时间的步骤包括:
27.通过所述从设备上的共享内存将所述从设备上每个平台任务的当前任务周期的开始时间共享给所述从设备上的每个平台任务;
28.通过所述从设备上的每个平台任务根据每个平台任务的当前运行时刻、周期时长和当前任务周期的开始时间,确定每个平台任务的下个周期的开始时间。
29.根据本发明提供的一种主备设备同步方法,根据本发明提供的一种主备设备同步方法,
30.本发明还提供一种主备设备同步装置,包括:
31.第一计算模块,用于根据主设备与从设备之间的通信信息,确定所述主设备与所述从设备之间的本次时钟偏差;
32.第二计算模块,用于根据所述主设备上每个平台任务的当前周期的开始时间和所述本次时钟偏差,确定所述从设备上每个平台任务的当前周期的开始时间;
33.发送模块,用于将所述从设备上每个平台任务的当前任务周期的开始时间发送给所述从设备,以供所述从设备根据所述从设备上每个平台任务的当前运行时刻、周期时长和当前任务周期的开始时间,确定所述从设备上每个平台任务的下个周期的开始时间。
34.本发明还提供一种主备设备同步装置,包括:
35.接收模块,用于接收主设备发送的从设备上每个平台任务的当前任务周期的开始时间;
36.其中,所述从设备上每个平台任务的当前任务周期的开始时间由所述主设备根据所述主设备上每个平台任务的当前周期的开始时间,以及所述主设备与所述从设备之间的本次时钟偏差确定;
37.所述本次时钟偏差由所述主设备根据所述主设备与从设备之间的通信信息确定;
38.第三计算模块,用于根据所述从设备上每个平台任务的当前运行时刻、周期时长和当前任务周期的开始时间,确定所述从设备上每个平台任务的下个周期的开始时间。
39.本发明还提供一种主备设备同步系统,包括上述两个主备设备同步装置。
40.本发明提供的主备设备同步方法、装置及系统,通过主备设备之间的通信信息计算主备设备之间的时钟偏差,以主设备上平台任务的周期开始时间为基准,结合时钟偏差得到从设备上平台任务的周期开始时间,由从设备上的平台任务根据自身周期开始时间确定自身下个周期的开始时间,适用于主从设备上多个不同周期平台任务的时间同步问题,在一个设备宕机后另一设备可以无缝接管工作,保证冗余设备的可用性。
附图说明
41.为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
42.图1是本发明提供的主备设备同步方法的流程示意图之一;
43.图2是本发明提供的主备设备同步方法中通过ptp1588时钟同步协议设计的主从设备间的交互通信过程示意图;
44.图3是本发明提供的主备设备同步方法中主从设备周期校准同步的信令交互示意图;
45.图4是本发明提供的主备设备同步方法的流程示意图之二;
46.图5是本发明提供的主备设备同步方法中从设备的周期开始时间校正的信令交互示意图;
47.图6是本发明提供的主备设备同步装置的结构示意图之一;
48.图7是本发明提供的主备设备同步装置的结构示意图之二;
49.图8是本发明提供的电子设备的结构示意图。
具体实施方式
50.为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
51.下面结合图1描述本发明的一种主备设备同步方法,应用于主设备,包括:
52.步骤101,根据主设备与从设备之间的通信信息,确定所述主设备与所述从设备之
间的本次时钟偏差;
53.主从设备启动时,确定一设备为主设备,将主设备上多个平台任务的运行周期开始时间作为基准;另一设备作为从设备。本实施例的执行主体为主设备。
54.可选地,主从设备为硬件一体化安全计算机平台,主从设备之间采用实时通信方式,使用以太网tsn(time sensitive network,时间敏感网络)通信技术。
55.在软件上单独设计一个主从同步进程,通过ptp1588时钟同步协议完成主从设备间的通信过程。根据两者交互通信的信息,计算得到主从设备间的本次时钟偏差t_offset。本实施例不限于通信信息的具体内容。
56.步骤102,根据所述主设备上每个平台任务的当前周期的开始时间和所述本次时钟偏差,确定所述从设备上每个平台任务的当前周期的开始时间;
57.主从设备为冗余计算机平台,主从设备上具有多个同样的平台周期性任务。每个平台周期性任务为1个独立进程或1个独立线程。
58.为了实现从设备上的多平台任务运行时,与主设备上的平台任务运行周期同步,主设备上的主从同步进程以主设备上平台任务的当前周期开始时间为基准,根据本次时钟偏差t_offset计算从设备上各平台任务当前周期的开始时间。
59.步骤103,将所述从设备上每个平台任务的当前任务周期的开始时间发送给所述从设备,以供所述从设备根据所述从设备上每个平台任务的当前运行时刻、周期时长和当前任务周期的开始时间,确定所述从设备上每个平台任务的下个周期的开始时间。
60.主设备上的主从同步进程将从设备上各平台任务当前周期的开始时间发送给从设备,从设备据此计算从设备上每个平台任务的下个周期的开始时间。
61.本实施例通过主备设备之间的通信信息计算主备设备之间的时钟偏差,以主设备上平台任务的周期开始时间为基准,结合时钟偏差得到从设备上平台任务的周期开始时间,由从设备上的平台任务根据自身周期开始时间确定自身下个周期的开始时间,适用于主从设备上多个不同周期平台任务的时间同步问题,在一个设备宕机后另一设备可以无缝接管工作,保证冗余设备的可用性。
62.在上述实施例的基础上,本实施例中所述根据主设备与从设备之间的通信信息,确定所述主设备与所述从设备之间的本次时钟偏差的步骤包括:
63.向所述从设备发送信号,确定发送所述信号的第一时刻;
64.接收所述从设备发送的反馈信息,所述反馈信息包括所述从设备接收所述信号的第二时刻和所述从设备发送所述反馈信息的第三时刻,确定接收所述反馈信息的第四时刻;
65.如图2所示,通过ptp1588时钟同步协议设计主从设备间的交互通信过程包括如下步骤:
66.1、主设备在第一时刻t1向从设备发送信号,并将t1发送给从设备。
67.2、由于时间延迟从设备在第二时刻t2接收到主设备发送的信号。
68.3、从设备在第三时刻t3向主设备发送反馈信息,反馈信息包括t2和t3。
69.4、由于时间延迟,主设备在第四时刻t4接收到从设备发送的反馈信息,并将t4发送给从设备。
70.确定所述第一时刻和第三时刻之间的第一时长,所述第二时刻和第四时刻之间的
第二时长;
71.根据所述第一时长和第二时长,确定所述主设备与所述从设备之间的本次时钟偏差。
72.根据主从设备间的通信过程,主从设备均可获得t1、t2、t3和t4。又因为采用的是实时通信方式,所以主从机之间的通信为确定性延迟通信,即延迟时间为固定值。
73.延迟时间设为t_delay,本次时钟偏差设为t_offset,则可得到以下公式:
74.t1+t_delay=t2+t_offset;
75.t3+t_delay=t4-t_offset
76.通过计算可得到:
77.t_offset=((t1-t3)-(t2-t4))/2。
78.本实施例通过主从设备之间交互通信的多个时刻计算得到时钟偏差,方法简单,计算准确,从而进一步提升主备设备同步的效率和准确性。
79.在上述实施例的基础上,本实施例中所述根据主设备与从设备之间的通信信息,确定所述主设备与所述从设备之间的本次时钟偏差的步骤包括:
80.根据所述主设备与从设备之间每次交互通信的通信信息,确定所述主设备与所述从设备之间每次交互通信的本次时钟偏差;
81.去掉所有次交互通信对应的本次时钟偏差中的最大值和最小值后,采用最小二乘法获取剩余本次时钟偏差的平均值,将所述平均值作为所述主设备与所述从设备之间的本次时钟偏差。
82.为了减少一次交互通信过程带来的数据误差,考虑实现多次交互通信采样,获得多次交互通信的通信信息,即t1、t2、t3和t4。
83.根据每次交互通信的通信信息,得到多个时钟偏差t_offset,将所有t_offset_sam按照从大到小的顺序进行排序。去掉前面最大的一个或多个值,以及后面最大的一个或多个值,剩余的t_offset为理想值。
84.利用最小二乘法得到剩余t_offset的平均值t_offset_avg。将t_offset_avg作为主设备与从设备之间的本次时钟偏差。
85.本实施例通过多次交互通信采样获得的多次交互通信的通信信息来确定平均时钟偏差,提高时钟偏差计算的准确性,从而进一步提升主备设备同步的准确性。
86.在上述各实施例的基础上,本实施例中所述根据所述主设备上每个平台任务的当前周期的开始时间和所述本次时钟偏差,确定所述从设备上每个平台任务的当前周期的开始时间的步骤包括:
87.读取所述主设备上的共享内存中每个平台任务的当前周期的开始时间;其中,每个平台任务的当前周期的开始时间由每个平台任务发送到所述共享内存中;
88.将所述共享内存中每个平台任务的当前周期的开始时间减去所述本次时钟偏差,获取所述从设备上每个平台任务的当前周期的开始时间。
89.如图3所示,主设备上的每个平台任务将各自的当前任务周期的开始时间tn_master_cyclebase通过共享内存分享给主从同步进程。
90.主设备上的主从同步进程读取到各平台任务的当前周期的开始时间后,根据t_offset_avg计算从设备上每个平台任务的当前周期的开始时间,即:
91.tn_slave_cyclesbase=tn_master_cyclebase-t_offset_avg。
92.主设备上的主从同步进程将tn_slave_cyclesbase发送给从设备。从设备上的主从同步进程收到后,通过共享内存共享给从设备的各平台任务的进程或线程。
93.从设备的各平台任务的进程或线程根据从设备上各平台任务当前周期的开始时间计算各自下周期的开始时间,即:t_start=t_curr+t_cycle-(t_curr+t_cycle-tn_slave_cyclesbase)%t_cycle。
94.其中,n为平台任务的序号,即n=1,2,3

平台任务总数量。
95.本实施例通过以主设备上平台任务的周期开始时间为基准,结合时钟偏差得到从设备上平台任务的周期开始时间,由从设备上的平台任务根据自身周期开始时间确定自身下个周期的开始时间,适用于主从设备上多个不同周期平台任务的时间同步问题。
96.下面结合图4描述本发明的一种主备设备同步方法,应用于从设备,包括:
97.步骤401,接收主设备发送的从设备上每个平台任务的当前任务周期的开始时间;
98.主从设备启动时,确定一设备为主设备,将主设备上多个平台任务的运行周期开始时间作为基准;另一设备作为从设备。本实施例的执行主体为从设备。
99.其中,所述从设备上每个平台任务的当前任务周期的开始时间由所述主设备根据所述主设备上每个平台任务的当前周期的开始时间,以及所述主设备与所述从设备之间的本次时钟偏差确定;
100.所述本次时钟偏差由所述主设备根据所述主设备与从设备之间的通信信息确定;
101.主设备根据两者交互通信的信息,计算得到主从设备间的本次时钟偏差t_offset。本实施例不限于通信信息的具体内容。
102.主从设备为冗余计算机平台,主从设备上具有多个同样的平台周期性任务。每个平台周期性任务为1个独立进程或1个独立线程。
103.为了实现从设备上的多平台任务运行时,与主设备上的平台任务运行周期同步,主设备上的主从同步进程以主设备上平台任务的当前周期开始时间为基准,根据本次时钟偏差t_offset计算从设备上各平台任务当前周期的开始时间。
104.从设备接收主设备上的主从同步进程发送的从设备上各平台任务当前周期的开始时间,并据此计算从设备上每个平台任务的下个周期的开始时间。
105.步骤402,根据所述从设备上每个平台任务的当前运行时刻、周期时长和当前任务周期的开始时间,确定所述从设备上每个平台任务的下个周期的开始时间。
106.本实施例本实施例通过主备设备之间的通信信息计算主备设备之间的时钟偏差,以主设备上平台任务的周期开始时间为基准,结合时钟偏差得到从设备上平台任务的周期开始时间,由从设备上的平台任务根据自身周期开始时间确定自身下个周期的开始时间,适用于主从设备上多个不同周期平台任务的时间同步问题,在一个设备宕机后另一设备可以无缝接管工作,保证冗余设备的可用性。
107.在上述实施例的基础上,本实施例中所述根据所述从设备上每个平台任务的当前运行时刻、周期时长和当前任务周期的开始时间,确定所述从设备上每个平台任务的下个周期的开始时间的步骤包括:
108.通过所述从设备上的共享内存将所述从设备上每个平台任务的当前任务周期的开始时间共享给所述从设备上的每个平台任务;
109.通过所述从设备上的每个平台任务根据每个平台任务的当前运行时刻、周期时长和当前任务周期的开始时间,确定每个平台任务的下个周期的开始时间。
110.主设备上的主从同步进程将从设备上第n个平台任务的当前任务周期的开始时间tn_slave_cyclesbase发送给从设备。从设备上的主从同步进程收到后,通过共享内存共享给从设备的各平台任务的进程或线程。
111.从设备的各平台任务的进程或线程根据从设备上各平台任务当前周期的开始时间计算各自下周期的开始时间,即:t_start=t_curr+t_cycle-(t_curr+t_cycle-tn_slave_cyclesbase)%t_cycle。
112.其中,n为平台任务的序号,即n=1,2,3

平台任务总数量。
113.本实施例通过以主设备上平台任务的周期开始时间为基准,结合时钟偏差得到从设备上平台任务的周期开始时间,由从设备上的平台任务根据自身周期开始时间确定自身下个周期的开始时间,适用于主从设备上多个不同周期平台任务的时间同步问题。
114.在上述各实施例的基础上,本实施例还包括:
115.接收所述主设备发送的本次时钟偏差;
116.确定所述本次时钟偏差与所述从设备上每个平台任务的周期开始时间最近一次校正后对应的时钟偏差之间的差值;
117.在所述差值大于预设阈值的情况下,通知所述从设备上的每个平台任务对每个平台任务的当前任务周期的开始时间进行调整。
118.在平台任务周期运行过程中,由于主从设备时钟振荡频率的偏差,会造成两设备的时钟偏移会随着时间的变化不断累加变化,从而造成主从设备的同步误差累积变大。
119.为消除此误差累积效应,需周期监督双设备的时钟偏移t_offset是否发生变化,当变化大于同步允许的预设阈值,例如2ms时,需矫正从设备的周期开始时间,以保证主从设备的任务周期保持一致。
120.如图5所示,主从设备上的平台任务周期性进行ptp1588协议交互,实时计算t_offset_avg,从设备实时监督当前主从设备的时钟偏移是否与上一次矫正之后首次计算得到的t_offset_avg_last相差大于预设阈值。如果大于预设阈值,则通过共享内存通知各平台任务对周期开始时间调整。
121.根据上一次矫正之后每次计算的时钟偏差的正负方向,统计正偏移的次数和负偏移的次数。根据正偏移的次数和负偏移的次数将从设备上平台任务的周期开始时间调快或调慢预设值,如2ms。
122.本实施例在主从设备的时钟偏移累积到较大值时,对从设备上平台任务的周期开始时间进行校正,从而减小主从设备间的时钟偏移。
123.下面对本发明提供的主备设备同步装置进行描述,下文描述的主备设备同步装置与上文描述的主备设备同步方法可相互对应参照。
124.如图6所示,该装置包括第一计算模块601、第二计算模块602和发送模块603,其中:
125.第一计算模块601用于根据主设备与从设备之间的通信信息,确定所述主设备与所述从设备之间的本次时钟偏差;
126.第二计算模块602用于根据所述主设备上每个平台任务的当前周期的开始时间和
所述本次时钟偏差,确定所述从设备上每个平台任务的当前周期的开始时间;
127.发送模块603用于将所述从设备上每个平台任务的当前任务周期的开始时间发送给所述从设备,以供所述从设备根据所述从设备上每个平台任务的当前运行时刻、周期时长和当前任务周期的开始时间,确定所述从设备上每个平台任务的下个周期的开始时间。
128.本实施例通过主备设备之间的通信信息计算主备设备之间的时钟偏差,以主设备上平台任务的周期开始时间为基准,结合时钟偏差得到从设备上平台任务的周期开始时间,由从设备上的平台任务根据自身周期开始时间确定自身下个周期的开始时间,适用于主从设备上多个不同周期平台任务的时间同步问题,在一个设备宕机后另一设备可以无缝接管工作,保证冗余设备的可用性。
129.下面对本发明提供的主备设备同步装置进行描述,下文描述的主备设备同步装置与上文描述的主备设备同步方法可相互对应参照。
130.如图7所示,该装置包括接收模块701和第三计算模块702,其中:
131.接收模块701用于接收主设备发送的从设备上每个平台任务的当前任务周期的开始时间;
132.其中,所述从设备上每个平台任务的当前任务周期的开始时间由所述主设备根据所述主设备上每个平台任务的当前周期的开始时间,以及所述主设备与所述从设备之间的本次时钟偏差确定;
133.所述本次时钟偏差由所述主设备根据所述主设备与从设备之间的通信信息确定;
134.第三计算模块702用于根据所述从设备上每个平台任务的当前运行时刻、周期时长和当前任务周期的开始时间,确定所述从设备上每个平台任务的下个周期的开始时间。
135.本实施例通过主备设备之间的通信信息计算主备设备之间的时钟偏差,以主设备上平台任务的周期开始时间为基准,结合时钟偏差得到从设备上平台任务的周期开始时间,由从设备上的平台任务根据自身周期开始时间确定自身下个周期的开始时间,适用于主从设备上多个不同周期平台任务的时间同步问题,在一个设备宕机后另一设备可以无缝接管工作,保证冗余设备的可用性。
136.下面对本发明提供的主备设备同步系统进行描述,下文描述的主备设备同步系统与上文描述的主备设备同步装置可相互对应参照。
137.主备设备同步系统包括上述两个实施例中的主备设备同步装置。
138.本实施例通过主备设备之间的通信信息计算主备设备之间的时钟偏差,以主设备上平台任务的周期开始时间为基准,结合时钟偏差得到从设备上平台任务的周期开始时间,由从设备上的平台任务根据自身周期开始时间确定自身下个周期的开始时间,适用于主从设备上多个不同周期平台任务的时间同步问题,在一个设备宕机后另一设备可以无缝接管工作,保证冗余设备的可用性。
139.图8示例了一种电子设备的实体结构示意图,如图8所示,该电子设备可以包括:处理器(processor)810、通信接口(communications interface)820、存储器(memory)830和通信总线840,其中,处理器810,通信接口820,存储器830通过通信总线840完成相互间的通信。处理器810可以调用存储器830中的逻辑指令,以执行主备设备同步方法,该方法包括:根据主设备与从设备之间的通信信息,确定所述主设备与所述从设备之间的本次时钟偏差;根据所述主设备上每个平台任务的当前周期的开始时间和所述本次时钟偏差,确定所
述从设备上每个平台任务的当前周期的开始时间;将所述从设备上每个平台任务的当前任务周期的开始时间发送给所述从设备,以供所述从设备根据所述从设备上每个平台任务的当前运行时刻、周期时长和当前任务周期的开始时间,确定所述从设备上每个平台任务的下个周期的开始时间。
140.此外,上述的存储器830中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
141.另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的主备设备同步方法,该方法包括:根据主设备与从设备之间的通信信息,确定所述主设备与所述从设备之间的本次时钟偏差;根据所述主设备上每个平台任务的当前周期的开始时间和所述本次时钟偏差,确定所述从设备上每个平台任务的当前周期的开始时间;将所述从设备上每个平台任务的当前任务周期的开始时间发送给所述从设备,以供所述从设备根据所述从设备上每个平台任务的当前运行时刻、周期时长和当前任务周期的开始时间,确定所述从设备上每个平台任务的下个周期的开始时间。
142.又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的主备设备同步方法,该方法包括:根据主设备与从设备之间的通信信息,确定所述主设备与所述从设备之间的本次时钟偏差;根据所述主设备上每个平台任务的当前周期的开始时间和所述本次时钟偏差,确定所述从设备上每个平台任务的当前周期的开始时间;将所述从设备上每个平台任务的当前任务周期的开始时间发送给所述从设备,以供所述从设备根据所述从设备上每个平台任务的当前运行时刻、周期时长和当前任务周期的开始时间,确定所述从设备上每个平台任务的下个周期的开始时间。
143.以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
144.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施
例或者实施例的某些部分所述的方法。
145.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

技术特征:
1.一种主备设备同步方法,其特征在于,应用于主设备,包括:根据主设备与从设备之间的通信信息,确定所述主设备与所述从设备之间的本次时钟偏差;根据所述主设备上每个平台任务的当前周期的开始时间和所述本次时钟偏差,确定所述从设备上每个平台任务的当前周期的开始时间;将所述从设备上每个平台任务的当前任务周期的开始时间发送给所述从设备,以供所述从设备根据所述从设备上每个平台任务的当前运行时刻、周期时长和当前任务周期的开始时间,确定所述从设备上每个平台任务的下个周期的开始时间。2.根据权利要求1所述的主备设备同步方法,其特征在于,所述根据主设备与从设备之间的通信信息,确定所述主设备与所述从设备之间的本次时钟偏差的步骤包括:向所述从设备发送信号,确定发送所述信号的第一时刻;接收所述从设备发送的反馈信息,所述反馈信息包括所述从设备接收所述信号的第二时刻和所述从设备发送所述反馈信息的第三时刻,确定接收所述反馈信息的第四时刻;确定所述第一时刻和第三时刻之间的第一时长,所述第二时刻和第四时刻之间的第二时长;根据所述第一时长和第二时长,确定所述主设备与所述从设备之间的本次时钟偏差。3.根据权利要求1所述的主备设备同步方法,其特征在于,所述根据主设备与从设备之间的通信信息,确定所述主设备与所述从设备之间的本次时钟偏差的步骤包括:根据所述主设备与从设备之间每次交互通信的通信信息,确定所述主设备与所述从设备之间每次交互通信的本次时钟偏差;去掉所有次交互通信对应的本次时钟偏差中的最大值和最小值后,采用最小二乘法获取剩余本次时钟偏差的平均值,将所述平均值作为所述主设备与所述从设备之间的本次时钟偏差。4.根据权利要求1-3任一所述的主备设备同步方法,其特征在于,所述根据所述主设备上每个平台任务的当前周期的开始时间和所述本次时钟偏差,确定所述从设备上每个平台任务的当前周期的开始时间的步骤包括:读取所述主设备上的共享内存中每个平台任务的当前周期的开始时间;其中,每个平台任务的当前周期的开始时间由每个平台任务发送到所述共享内存中;将所述共享内存中每个平台任务的当前周期的开始时间减去所述本次时钟偏差,获取所述从设备上每个平台任务的当前周期的开始时间。5.一种主备设备同步方法,其特征在于,应用于从设备,包括:接收主设备发送的从设备上每个平台任务的当前任务周期的开始时间;其中,所述从设备上每个平台任务的当前任务周期的开始时间由所述主设备根据所述主设备上每个平台任务的当前周期的开始时间,以及所述主设备与所述从设备之间的本次时钟偏差确定;所述本次时钟偏差由所述主设备根据所述主设备与从设备之间的通信信息确定;根据所述从设备上每个平台任务的当前运行时刻、周期时长和当前任务周期的开始时间,确定所述从设备上每个平台任务的下个周期的开始时间。6.根据权利要求5所述的主备设备同步方法,其特征在于,所述根据所述从设备上每个
平台任务的当前运行时刻、周期时长和当前任务周期的开始时间,确定所述从设备上每个平台任务的下个周期的开始时间的步骤包括:通过所述从设备上的共享内存将所述从设备上每个平台任务的当前任务周期的开始时间共享给所述从设备上的每个平台任务;通过所述从设备上的每个平台任务根据每个平台任务的当前运行时刻、周期时长和当前任务周期的开始时间,确定每个平台任务的下个周期的开始时间。7.根据权利要求5或6所述的主备设备同步方法,其特征在于,还包括:接收所述主设备发送的本次时钟偏差;确定所述本次时钟偏差与所述从设备上每个平台任务的周期开始时间最近一次校正后对应的时钟偏差之间的差值;在所述差值大于预设阈值的情况下,通知所述从设备上的每个平台任务对每个平台任务的当前任务周期的开始时间进行调整。8.一种主备设备同步装置,其特征在于,包括:第一计算模块,用于根据主设备与从设备之间的通信信息,确定所述主设备与所述从设备之间的本次时钟偏差;第二计算模块,用于根据所述主设备上每个平台任务的当前周期的开始时间和所述本次时钟偏差,确定所述从设备上每个平台任务的当前周期的开始时间;发送模块,用于将所述从设备上每个平台任务的当前任务周期的开始时间发送给所述从设备,以供所述从设备根据所述从设备上每个平台任务的当前运行时刻、周期时长和当前任务周期的开始时间,确定所述从设备上每个平台任务的下个周期的开始时间。9.一种主备设备同步装置,其特征在于,包括:接收模块,用于接收主设备发送的从设备上每个平台任务的当前任务周期的开始时间;其中,所述从设备上每个平台任务的当前任务周期的开始时间由所述主设备根据所述主设备上每个平台任务的当前周期的开始时间,以及所述主设备与所述从设备之间的本次时钟偏差确定;所述本次时钟偏差由所述主设备根据所述主设备与从设备之间的通信信息确定;第三计算模块,用于根据所述从设备上每个平台任务的当前运行时刻、周期时长和当前任务周期的开始时间,确定所述从设备上每个平台任务的下个周期的开始时间。10.一种主备设备同步系统,其特征在于,包括权利要求8所述的主备设备同步装置和权利要求9所述的主备设备同步装置。

技术总结
本发明提供一种主备设备同步方法、装置及系统,该方法包括:根据主设备与从设备之间的通信信息,确定所述主设备与所述从设备之间的本次时钟偏差;根据所述主设备上每个平台任务的当前周期的开始时间和所述本次时钟偏差,确定所述从设备上每个平台任务的当前周期的开始时间;将所述从设备上每个平台任务的当前任务周期的开始时间发送给所述从设备,以供所述从设备根据所述从设备上每个平台任务的当前运行时刻、周期时长和当前任务周期的开始时间,确定所述从设备上每个平台任务的下个周期的开始时间。本发明适用于主从设备上多个不同周期平台任务的时间同步问题,在一个设备宕机后另一设备可以无缝接管工作,保证冗余设备的可用性。可用性。可用性。


技术研发人员:张世强 张锋瑞
受保护的技术使用者:交控科技股份有限公司
技术研发日:2022.07.05
技术公布日:2022/11/1
转载请注明原文地址: https://tieba.8miu.com/read-5431.html

最新回复(0)