CN114019785A - 一种多重冗余***的数据同步方法、***、设备以及介质 - Google Patents
一种多重冗余***的数据同步方法、***、设备以及介质 Download PDFInfo
- Publication number
- CN114019785A CN114019785A CN202111217564.7A CN202111217564A CN114019785A CN 114019785 A CN114019785 A CN 114019785A CN 202111217564 A CN202111217564 A CN 202111217564A CN 114019785 A CN114019785 A CN 114019785A
- Authority
- CN
- China
- Prior art keywords
- data
- redundant
- module
- main control
- cpu
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 44
- 230000001360 synchronised effect Effects 0.000 claims abstract description 71
- 238000004891 communication Methods 0.000 claims abstract description 42
- 238000012216 screening Methods 0.000 claims abstract description 17
- 238000004422 calculation algorithm Methods 0.000 claims description 8
- 230000005540 biological transmission Effects 0.000 claims description 6
- 230000002159 abnormal effect Effects 0.000 claims description 4
- 238000004364 calculation method Methods 0.000 claims description 4
- 230000003993 interaction Effects 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 7
- 230000004048 modification Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 4
- 238000003860 storage Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000010355 oscillation Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B9/00—Safety arrangements
- G05B9/02—Safety arrangements electric
- G05B9/03—Safety arrangements electric with multiple-channel loop, i.e. redundant control systems
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明涉及一种多重化多模块冗余***的数据同步方法、***、设备及介质,其方法包括:首先,通过所述冗余同步通道获取经所述主控模块内每个主控CPU确定的已表决数据;依据预设的有效性判据筛选各个主控模块传输的已表决数据;每个冗余CPU将筛选的表决数据附上有效性标记,再通过所述数据转发通道转发给同一冗余模块内其他CPU;每个冗余CPU依据接收到符合预设的有效性判据的已表决数据和/或其他冗余CPU转发的已表决数据进行数据同步;其中,所述主控模块和所述冗余模块的运行周期是同步的。本发明能保证冗余***内进行正常情况下的数据同步,又能确保在局部通信异常下的数据同步。
Description
技术领域
本发明涉及工业过程控制安全技术领域,尤其涉及一种多重化多模块冗余***的数据同步方法、***、设备以及介质。
背景技术
在现有工业过程控制安全领域中,对多重冗余控制***的可靠性、安全性、可用性要求很高。比如,三重冗余控制***,是通过三取二的方式表决,在单个控制器出现故障的情况下,仍能输出正确的结果;在多冗余情况下发生模块主从切换时,仍能保证***的准确性、安全性与可用性。
而多重冗余控制***中,除控制周期同步这个核心技术外,关键数据的同步一致也是非常重要的,特别是CPU内部具有累计效应的变量数据,比如PID控制算法中的过程量,从启动开始便会在每个周期进行更新,该类型变量的问题在于即使控制周期同步,也会因为CPU的晶振频率不同、或是某个CPU意外复位、外部输入参数(如采样值)的不一致,而导致CPU之间不一致,或是多模块之间不一致等问题。
目前,现有的技术方案中对这类累计变量数据的同步的方法,大多只讲到单模块多通道冗余的***中对这所有数据进行简单的3取2的表决同步方式,而对于多通道多模块间的数据同步方法存在一定的缺点。
发明内容
(一)要解决的技术问题
鉴于现有技术的上述缺点、不足,本发明提供一种多重化多模块冗余***的数据同步方法、***、设备以及介质,其解决了现有技术中多通道多模块间的数据同步易存在差异的技术问题。
(二)技术方案
为了达到上述目的,本发明采用的主要技术方案包括:
第一方面,本发明实施例提供一种多重化多模块冗余***的数据同步方法,所述多重化多模块冗余***包括通过冗余同步通道进行交互的主控模块和冗余模块,且主控模块内每个主控CPU之间以及冗余模块内每个冗余CPU之间通过数据转发通道进行交互,所述数据同步方法包括:
通过所述冗余同步通道获取经所述主控模块内每个主控CPU确定的已表决数据;
依据预设的有效性判据筛选各个主控模块传输的已表决数据;
每个冗余CPU将筛选的表决数据附上有效性标记,再通过所述数据转发通道转发给同一冗余模块内其他CPU;
每个冗余CPU依据接收到符合预设的有效性判据的已表决数据和/或其他冗余CPU转发的已表决数据进行数据同步;
其中,所述主控模块和所述冗余模块的运行周期是同步的。
可选地,通过所述冗余同步通道获取经所述主控模块内每个主控CPU确定的已表决数据包括:
在所述主控模块内每个主控CPU确定已表决数据后,每个冗余CPU通过所述冗余同步通道获取同级主控CPU的表决数据;
其中,通过所述冗余同步通道以点对点方式通信连接的一对主控CPU和冗余CPU为同级。
可选地,所述主控模块内每个主控CPU确定已表决数据包括:
在同一主控模块中,
将计算出的本通道的待表决数据发送到其他主控CPU,并接收其他主控CPU发送的待表决数据和同级的冗余CPU发送的冗余同步数据;
依据本通道的待表决数据和其他主控CPU的待表决数据,通过预设表决算法确定本地表决数据;
将所述本地表决数据作为已表决数据通过所述冗余同步通道传输到所述冗余模块内的各个同级的冗余CPU,且将所述同级的冗余CPU发送的冗余同步数据发送至其他主控CPU。
可选地,将所述本地表决数据作为已表决数据通过所述冗余同步通道传输到所述冗余模块内的各个同级的冗余CPU之后,还包括:
依据工作备用关系和通信状态,判断否使用所述冗余同步数据;
依据通信路径,选择其中一份冗余同步数据更新本地的已表决数据;
其中,所述工作备用关系通过所述冗余模块间的故障等级高低确定,故障等级较低的模块为工作模块,其余冗余模块为备用模块;所述通信状态是基于是否接受冗余同步数据判断。
可选地,每个冗余CPU依据接收到符合预设的有效性判据的表决数据和/或其他冗余CPU转发的数据进行数据同步包括:
若冗余CPU接收到符合预设的有效性判据的表决数据,则以该表决数据进行数据同步;
若冗余CPU未接收到符合预设的有效性判据的表决数据,则根据工作备用关系、通信状态、最短路径、数据有效性标记从其他冗余CPU转发的数据进行筛选;
依据筛选结果确定最佳数据,并以所述最佳数据进行数据同步。
可选地,所述主控模块和冗余模块均包括至少三个CPU。
第二方面,本发明实施例提供了一种多重化多模块冗余***的数据同步***,所述多重化多模块冗余***包括通过冗余同步通道进行交互的主控模块和冗余模块,且主控模块内每个主控CPU之间以及冗余模块内每个冗余CPU之间通过数据转发通道进行交互。
可选地,
所述主控模块包括:
数据计算与接收模块,用于将计算出的本通道的待表决数据发送到其他主控CPU,并接收其他主控CPU发送的待表决数据和同级的冗余CPU发送的冗余同步数据;
表决数据确定模块,用于依据本通道的待表决数据和其他主控CPU的待表决数据,通过预设表决算法确定本地表决数据;
表决数据更新模块,用于依据工作备用关系、通信状态和数据有效性标记,判断否使用所述冗余同步数据;以及依据通信路径,选择其中一份冗余同步数据更新本地的已表决数据;其中,所述工作备用关系通过所述冗余模块间故障等级高低确定,故障等级最低的模块为工作模块,其余冗余模块为备用模块;所述通信状态是基于是否接受数据判断;所述数据有效性标记是由数据源端CPU、中间转发CPU、终端CPU共同设置的,所述数据源端CPU在自身模块故障或当前为STOP状态设置当前数据为无效状态,所述中间转发CPU当收到的冗余数据存在校验错误或未收到,则也会将该数据置为无效状态;所述终端CPU也会对数据进行完整和有效性校验,将异常的数据置为无效状态,对于无效状态的数据不会使用;
表决数据传输模块,用于将所述本地表决数据作为已表决数据通过所述冗余同步通道传输到所述冗余模块内的各个同级的冗余CPU,且将所述同级的冗余CPU发送的冗余同步数据发送至其他主控CPU;
所述冗余模块包括:
表决数据获取模块,用于通过所述冗余同步通道获取经所述主控模块内每个主控CPU确定的已表决数据;
筛选模块,用于依据预设的有效性判据筛选各个主控模块传输的表决数据;
数据转发模块,用于将接受的表决数据附上有效性标记,再通过所述数据转发通道转发给同一冗余模块内其他CPU;
数据同步模块,用于依据接收到符合预设的有效性判据的已表决数据和/或其他冗余CPU转发的数据进行数据同步。
第三方面,本发明实施例提供一种多重化多模块冗余***的数据同步设备,包括:至少一个数据库;以及与所述至少一个数据库通信连接的存储器;其中,所述存储器存储有可被所述至少一个数据库执行的指令,所述指令被所述至少一个数据库执行,以使所述至少一个数据库能够执行如上所述的多重化多模块冗余***的数据同步方法。
第四方面,本发明实施例提供一种计算机可读介质,其上存储有计算机可执行指令,所述可执行指令被处理器执行时实现如上所述的多重化多模块冗余***的数据同步方法。
(三)有益效果
本发明的有益效果是:本发明的主控模块发送的是表决后的数据,保证了3通道的一致性;其冗余模块内部互相转发主控模块的表决数据,即使存在通信故障,也能通过其他路径获取主控模块的数据,保证数据的同步;而冗余模块内各个CPU根据工作备用关系、通信状态、最短路径、数据有效性标记进行数据源的选择,保证了数据的有效性。因此,本发明公开的方案具备通信故障容忍能力,兼顾正确性可靠性,同时能提高多重化多模块之间的数据同步可用性。
附图说明
图1为本发明提供的一种多重化多模块冗余***的数据同步方法的流程示意图;
图2为本发明提供的一种多重化多模块冗余***的数据同步方法的步骤S1的具体流程示意图;
图3为本发明提供的一种多重化多模块冗余***的数据同步方法的数据流向示意图;
图4为本发明提供的一种多重化多模块冗余***的数据同步方法的步骤S4的具体流程示意图;
图5为本发明提供的一种多重化多模块冗余***的数据同步方法的CPU的数据运行交互时序图。
具体实施方式
为了更好地解释本发明,以便于理解,下面结合附图,通过具体实施方式,对本发明作详细描述。
如图1所示,本发明实施例提出的一种多重化多模块冗余***的数据同步方法,多重化多模块冗余***包括通过冗余同步通道进行交互的主控模块和冗余模块,且主控模块内每个主控CPU之间以及冗余模块内每个冗余CPU之间通过数据转发通道进行交互,数据同步方法包括:通过冗余同步通道获取经主控模块内每个主控CPU确定的已表决数据;依据预设的有效性判据筛选各个主控模块传输的已表决数据;每个冗余CPU将筛选的表决数据附上有效性标记,再通过数据转发通道转发给同一冗余模块内其他CPU;每个冗余CPU依据接收到符合预设的有效性判据的已表决数据和/或其他冗余CPU转发的数据进行数据同步;其中,主控模块和冗余模块的运行周期是同步的。
本发明的主控模块发送的是表决后的数据,保证了3通道的一致性;其冗余模块内部互相转发主控模块的表决数据,即使存在通信故障,也能通过其他路径获取主控模块的数据,保证数据的同步;继而,每个冗余CPU根据工作备用关系、通信状态、最短路径、数据有效性标记进行数据源的选择,保证了数据的有效性。因此,本发明公开的方案具备通信故障容忍能力,兼顾正确性可靠性,同时能提高多重化多模块之间的数据同步可用性。
为了更好地理解上述技术方案,下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更清楚、透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
具体地,本发明提供的多重化多模块冗余***的数据同步方法包括:
S1、通过冗余同步通道获取经主控模块内每个主控CPU确定的已表决数据。
进一步地,步骤S1包括:
在主控模块内每个主控CPU确定已表决数据后,每个冗余CPU通过冗余同步通道获取同级主控CPU的表决数据。其中,通过冗余同步通道以点对点方式通信连接的一对主控CPU和冗余CPU为同级。
较佳地,主控制模块和冗余模块均包括至少三个CPU。在一具体实施例中,本发明中每个主控模块包括三个完全独立的CPU,它们两两之间也仅通过数据通信通道连接在一起,也仅用于交互表决数据、同步数据、主备选择相关信息,如图3所示,不论模块内还是模块之间的两个CPU之间,都是通过点对点收发来实现数据的传递。
基于图3,以其中一个控制通道为例说明:
M:为自身通道;
L:为M的左侧通道;
R:为M的右侧通道;
P:为M的对侧通道,即为冗余侧上的同层通道;
LP:为M的左对侧通道,即为冗余侧上的左侧通道;
RP:为M的右对侧通道,即为冗余侧上的右侧通道。
更近一步地,如图2所示,主控模块内每个主控CPU确定已表决数据包括:
在同一主控模块中,
S11、将计算出的本通道的待表决数据发送到其他主控CPU,并接收其他主控CPU发送的待表决数据和同级的冗余CPU发送的冗余同步数据。
S12、依据本通道的待表决数据和其他主控CPU的待表决数据,通过预设表决算法确定本地表决数据。
S13、将本地表决数据作为已表决数据通过冗余同步通道传输到冗余模块内的各个同级的冗余CPU,且将同级的冗余CPU发送的冗余同步数据发送至其他主控CPU。
在步骤S13之前,还包括:依据工作备用关系和通信状态,判断否使用冗余同步数据;
依据工作备用关系和通信状态,判断否使用冗余同步数据;
依据通信路径,选择其中一份冗余同步数据更新本地的已表决数据;
其中,工作备用关系通过冗余模块中的各个冗余CPU的故障等级确定,故障等级低于预设阈值的冗余CPU为工作模块,其余冗余CPU为备用模块;通信状态是基于是否接受数据判断。
工作备用关系通过冗余模块间的故障等级来确定,故障等级低的做为工作模块。其中故障等级表示了一个模块整体的故障程度,包括了模块内的所有CPU的故障、以及其他影响模块功能的故障等。备用模块优先从工作模块同步数据。其中工作模块的同级CPU是最高优先级的数据源。通信路径则是冗余的同级CPU是最短路径,当无法获得冗余的同级CPU数据,再去找第二短的路径。
S2、依据预设的有效性判据筛选各个主控模块传输的表决数据。
S3、每个冗余CPU将筛选的表决数据附上有效性标记,再通过数据转发通道转发给同一冗余模块内其他CPU。
S4、每个冗余CPU依据接收到符合预设的有效性判据的已表决数据和/或其他冗余CPU转发的数据进行数据同步。
如图4所示,步骤S4包括:
S41、若冗余CPU接收到符合预设的有效性判据的表决数据,则以该表决数据进行数据同步。
S42、若冗余CPU未接收到符合预设的有效性判据的表决数据,则根据工作备用关系、通信状态、最短路径、数据有效性标记从其他冗余CPU转发的数据进行筛选。
S43、依据筛选结果确定最佳数据,并以最佳数据进行数据同步。
在上述方法步骤中,无论是主控模块还是冗余模块内任意一个CPU,其执行的代码完全一样。每个CPU都会将本通道的数据发送给模块内冗余的两个CPU用于表决出本模块的数据。每个CPU都会将表决后的数据通过模块间同步通道发送给冗余模块的同级CPU。每个CPU接收到冗余模块同级CPU发来的同步数据后,会保存并转发给本模块内的其他CPU。
主控模块中的CPU使用本模块的表决数据。冗余模块中的CPU在主控模块的同级CPU同步数据有效的情况下,就以主控模块同级CPU数据为准,否则就取自身模块的其他CPU转发的来自主控模块数据。
对于冗余模块,在至少有一条模块间同步通道有效的情况下,都能保证模块内所有CPU都获取到主控模块的数据,从而保证了数据同步的一致性。对于单个CPU,每个CPU都有3条路径获取冗余模块的同步数据,具有2重的通信故障容忍。
为提高同步数据的高可靠性和可用性,要求本发明内主控模块和冗余模块的运行周期是高度同步的,不作详细描述。
在另一具体实施例中,如图5所示,是主控模块或冗余模块内任意一个CPU的同步数据运行交互时序图,详细程序流程:
F1、每个控制周期都会同步自身控制周期执行的时间相位。
F2、接收其它通道发来的待表决数据,参见图5实线箭头指向的位置。
F3、接收其它通道转发来的冗余同步数据,参见图5虚线箭头指向的位置。
F4、将接收的待表决数据与本CPU的待表决数据进行表决。
F5、表决后的数据通过冗余通信通道发往冗余模块的同级CPU,见点划线箭头。
F6、接收冗余模块发来的冗余同步数据,见图5点划线箭头指向的位置。
F7、将接收到冗余同步数据转发给模块内的其他CPU,见虚线箭头。
F8、根据工作备用关系、通信状态、最短路径(CPU优先选择对端同级CPU的数据,因为通信路径最短)、数据有效性标记,决定是否使用冗余数据以及选择其中一份冗余数据更新本地表决后数据。
F9、更新后的数据去参与运算。
F10、运算后的新数据作为待表决数据发送给其它通道,见图5中实线箭头。
基于以上过程实现冗余多重化模块的数据同步。
另一方面,本发明提供一种多重化多模块冗余***的数据同步***,多重化多模块冗余***包括通过冗余同步通道进行交互的主控模块和冗余模块,且主控模块内每个主控CPU之间以及冗余模块内每个冗余CPU之间通过数据转发通道进行交互。
主控制模块包括:
数据计算与接收模块,用于将计算出的本通道的待表决数据发送到其他主控CPU,并接收其他主控CPU发送的待表决数据和同级的冗余CPU发送的冗余同步数据;
表决数据确定模块,用于依据本通道的待表决数据和其他主控CPU的待表决数据,通过预设表决算法确定本地表决数据;
表决数据更新模块,用于依据工作备用关系、通信状态和数据有效性标记,判断否使用冗余同步数据;以及依据通信路径,选择其中一份冗余同步数据更新本地的已表决数据;其中,工作备用关系通过冗余模块中的各个冗余CPU的故障等级确定,故障等级低于预设阈值的冗余CPU为工作模块,其余冗余CPU为备用模块;通信状态是基于是否接受数据判断;数据有效性标记是由数据源端CPU、中间转发CPU、终端CPU共同设置的,数据源端CPU在自身模块故障或当前为STOP状态设置当前数据为无效状态,中间转发CPU当收到的冗余数据存在校验错误或未收到,则也会将该数据置为无效状态;终端CPU也会对数据进行完整和有效性校验,将异常的数据置为无效状态,对于无效状态的数据不会使用。在同一个数据包的冗余同步转发过程中,每个CPU可担任不同的角色,尽管每个CPU运行了完全相同的程序。数据源端CPU:即每个进行了数据表决后将已表决数据发送给冗余模块同级CPU的CPU;中间转发CPU:即接收到冗余同级CPU的已表决数据后将数据转发出去的CPU;终端CPU:即接收转发数据的CPU。
表决数据传输模块,用于将本地表决数据作为已表决数据通过冗余同步通道传输到冗余模块内的各个同级的冗余CPU,且将同级的冗余CPU发送的冗余同步数据发送至其他主控CPU;
冗余模块包括:
表决数据获取模块,用于通过冗余同步通道获取经主控模块内每个主控CPU确定的已表决数据;
筛选模块,用于依据预设的有效性判据筛选各个主控模块传输的表决数据;
数据转发模块,用于将接受的表决数据附上有效性标记,再通过数据转发通道转发给同一冗余模块内其他CPU;
数据同步模块,用于依据接收到符合预设的有效性判据的已表决数据和/或其他冗余CPU转发的数据。
由于本发明上述实施例所描述的***/装置,为实施本发明上述实施例的方法所采用的***/装置,故而基于本发明上述实施例所描述的方法,本领域所属技术人员能够了解该***/装置的具体结构及变形,因而在此不再赘述。凡是本发明上述实施例的方法所采用的***/装置都属于本发明所欲保护的范围。
此外,本发明还提供一种多重化多模块冗余***的数据同步设备,包括:至少一个数据库;以及与至少一个数据库通信连接的存储器;其中,存储器存储有可被至少一个数据库执行的指令,指令被至少一个数据库执行,以使至少一个数据库能够执行如上所述的多重化多模块冗余***的数据同步方法。
以及,本发明还提供一种计算机可读介质,其上存储有计算机可执行指令,可执行指令被处理器执行时实现如上所述的多重化多模块冗余***的数据同步方法。
综上所述,本发明提供一种多重化多模块冗余***的数据同步方法、***、设备以及介质,本发明是在具备控制周期同步、模块优选功能的前提下实现,首先进行主控模块内部数据同步,其次进行冗余模块内部数据同步,即在冗余模块内部互相转发主控模块发送过来的数据。
其整体流程是:
1、主控模块内部表决,经过的是表决通道。
2、主控模块和冗余模块间同步数据通信(每个通道只能收到冗余统计CPU发来的已表决的数据),经过的是冗余同步通道。
3、主控模块内部冗余同步数据转发(经过的是转发通道),使每个CPU都能收到冗余模块3个通道的数据。
4、根据预设有效性判断更新本地数据,
5、本轮结束。开始下一轮表决同步。
进一步地,主控模块内部数据同步为:
(1)每个主控CPU计算出本通道的数据并发送给其他主控CPU。
(2)以三重化模块为例,每个主控CPU获取其他通道的待表决数据后,使用表决算法(如模拟量3取中表决),确定本模块内的数据。
进一步地,冗余模块内部数据同步为:
(1)主控模块内每个主控CPU将表决后的数据通过数据通信通道发送给冗余模块的对应同级CPU,如A CPU将数据发送给A’CPU,由于数据已经经过表决,可以保证CPU间的一致性。
(2)冗余模块接收来自主控模块的数据,冗余CPU根据通信状态、数据有效性标记决定是否接受主控模块的数据。
(3)冗余模块的每个CPU在一个周期内将接收到主控模块统计CPU发来的同步数据转发给本模块内的其他CPU。
(4)作为冗余模块,在主控模块的同级CPU同步数据有效(即接收到符合要求的数据)的情况下,就以主控模块同级CPU数据为准,否则就取自身模块的其他CPU转发的冗余模块数据。
本发明提供了工业安全控制***内实现多重化控制模块及其冗余模块之间同步数据的方案,包括如下部分:主控模块内冗余CPU之间、及冗余模块的CPU之间相互同步数据的方式;主控模块和冗余模块之间的多冗余CPU同步数据的方式;以及根据优选模块数据有效性判据选择控制数据的方式。本发明能保证多重化多模块冗余***内主、冗模块之间正常情况下的数据同步,又能保证在局部通信异常下的数据同步,确保输出数据的正确性。基于上述描述,本发明提出的方案适用于高可靠性、高安全性以及高可用性场合。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例,或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。
应当注意的是,在权利要求中,不应将位于括号之间的任何附图标记理解成对权利要求的限制。词语“包含”不排除存在未列在权利要求中的部件或步骤。位于部件之前的词语“一”或“一个”不排除存在多个这样的部件。本发明可以借助于包括有若干不同部件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的权利要求中,这些装置中的若干个可以是通过同一个硬件来具体体现。词语第一、第二、第三等的使用,仅是为了表述方便,而不表示任何顺序。可将这些词语理解为部件名称的一部分。
此外,需要说明的是,在本说明书的描述中,术语“一个实施例”、“一些实施例”、“实施例”、“示例”、“具体示例”或“一些示例”等的描述,是指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
尽管已描述了本发明的优选实施例,但本领域的技术人员在得知了基本创造性概念后,则可对这些实施例作出另外的变更和修改。所以,权利要求应该解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种修改和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也应该包含这些修改和变型在内。
Claims (10)
1.一种多重化多模块冗余***的数据同步方法,其特征在于,所述多重化多模块冗余***包括通过冗余同步通道进行交互的主控模块和冗余模块,且主控模块内每个主控CPU之间以及冗余模块内每个冗余CPU之间通过数据转发通道进行交互,所述数据同步方法包括:
通过所述冗余同步通道获取经所述主控模块内每个主控CPU确定的已表决数据;
依据预设的有效性判据筛选各个主控模块传输的已表决数据;
每个冗余CPU将筛选的表决数据附上有效性标记,再通过所述数据转发通道转发给同一冗余模块内其他CPU;
每个冗余CPU依据接收到符合预设的有效性判据的已表决数据和/或其他冗余CPU转发的已表决数据进行数据同步;
其中,所述主控模块和所述冗余模块的运行周期是同步的。
2.如权利要求1所述的一种多重化多模块冗余***的数据同步方法,其特征在于,通过所述冗余同步通道获取经所述主控模块内每个主控CPU确定的已表决数据包括:
在所述主控模块内每个主控CPU确定已表决数据后,每个冗余CPU通过所述冗余同步通道获取同级主控CPU的表决数据;
其中,通过所述冗余同步通道以点对点方式通信连接的一对主控CPU和冗余CPU为同级。
3.如权利要求2所述的一种多重化多模块冗余***的数据同步方法,其特征在于,所述主控模块内每个主控CPU确定已表决数据包括:
在同一主控模块中,
将计算出的本通道的待表决数据发送到其他主控CPU,并接收其他主控CPU发送的待表决数据和同级的冗余CPU发送的冗余同步数据;
依据本通道的待表决数据和其他主控CPU的待表决数据,通过预设表决算法确定本地表决数据;
将所述本地表决数据作为已表决数据通过所述冗余同步通道传输到所述冗余模块内的各个同级的冗余CPU,且将所述同级的冗余CPU发送的冗余同步数据发送至其他主控CPU。
4.如权利要求2所述的一种多重化多模块冗余***的数据同步方法,其特征在于,将所述本地表决数据作为已表决数据通过所述冗余同步通道传输到所述冗余模块内的各个同级的冗余CPU之后,还包括:
依据工作备用关系和通信状态,判断是否使用所述冗余同步数据;
依据通信路径,选择其中一份冗余同步数据更新本地的已表决数据;
其中,所述工作备用关系通过所述冗余模块间的故障等级高低确定,故障等级较低的模块为工作模块,其余冗余模块为备用模块;所述通信状态是基于是否接受冗余同步数据判断。
5.如权利要求1所述的一种多重化多模块冗余***的数据同步方法,其特征在于,每个冗余CPU依据接收到符合预设的有效性判据的表决数据和/或其他冗余CPU转发的数据进行数据同步包括:
若冗余CPU接收到符合预设的有效性判据的表决数据,则以该表决数据进行数据同步;
若冗余CPU未接收到符合预设的有效性判据的表决数据,则根据工作备用关系、通信状态、最短路径、数据有效性标记从其他冗余CPU转发的数据进行筛选;
依据筛选结果确定最佳数据,并以所述最佳数据进行数据同步。
6.如权利要求1-5任意一项所述的一种多重化多模块冗余***的数据同步方法,其特征在于,所述主控模块和冗余模块均包括至少三个CPU。
7.一种多重化多模块冗余***的数据同步***,其特征在于,所述多重化多模块冗余***包括通过冗余同步通道进行交互的主控模块和冗余模块,且主控模块内每个主控CPU之间以及冗余模块内每个冗余CPU之间通过数据转发通道进行交互。
8.如权利要求7所述的一种多重化多模块冗余***的数据同步***,其特征在于,
所述主控模块包括:
数据计算与接收模块,用于将计算出的本通道的待表决数据发送到其他主控CPU,并接收其他主控CPU发送的待表决数据和同级的冗余CPU发送的冗余同步数据;
表决数据确定模块,用于依据本通道的待表决数据和其他主控CPU的待表决数据,通过预设表决算法确定本地表决数据;
表决数据更新模块,用于依据工作备用关系、通信状态和数据有效性标记,判断否使用所述冗余同步数据;以及依据通信路径,选择其中一份冗余同步数据更新本地的已表决数据;其中,所述工作备用关系通过所述冗余模块间故障等级高低确定,故障等级最低的模块为工作模块,其余冗余模块为备用模块;所述通信状态是基于是否接受数据判断;所述数据有效性标记是由数据源端CPU、中间转发CPU、终端CPU共同设置的,所述数据源端CPU在自身模块故障或当前为STOP状态设置当前数据为无效状态,所述中间转发CPU当收到的冗余数据存在校验错误或未收到,则也会将该数据置为无效状态;所述终端CPU也会对数据进行完整和有效性校验,将异常的数据置为无效状态,对于无效状态的数据不会使用;
表决数据传输模块,用于将所述本地表决数据作为已表决数据通过所述冗余同步通道传输到所述冗余模块内的各个同级的冗余CPU,且将所述同级的冗余CPU发送的冗余同步数据发送至其他主控CPU;
所述冗余模块包括:
表决数据获取模块,用于通过所述冗余同步通道获取经所述主控模块内每个主控CPU确定的已表决数据;
筛选模块,用于依据预设的有效性判据筛选各个主控模块传输的表决数据;
数据转发模块,用于将接受的表决数据附上有效性标记,再通过所述数据转发通道转发给同一冗余模块内其他CPU;
数据同步模块,用于依据接收到符合预设的有效性判据的已表决数据和/或其他冗余CPU转发的数据进行数据同步。
9.一种多重化多模块冗余***的数据同步设备,其特征在于,包括:至少一个数据库;以及与所述至少一个数据库通信连接的存储器;其中,所述存储器存储有可被所述至少一个数据库执行的指令,所述指令被所述至少一个数据库执行,以使所述至少一个数据库能够执行如权利要求1-6中任意一项所述的多重化多模块冗余***的数据同步方法。
10.一种计算机可读介质,其上存储有计算机可执行指令,其特征在于,所述可执行指令被处理器执行时实现如权利要求1-6任意一项所述的多重化多模块冗余***的数据同步方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111217564.7A CN114019785B (zh) | 2021-10-19 | 2021-10-19 | 一种多重冗余***的数据同步方法、***、设备以及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111217564.7A CN114019785B (zh) | 2021-10-19 | 2021-10-19 | 一种多重冗余***的数据同步方法、***、设备以及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114019785A true CN114019785A (zh) | 2022-02-08 |
CN114019785B CN114019785B (zh) | 2023-11-07 |
Family
ID=80056559
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111217564.7A Active CN114019785B (zh) | 2021-10-19 | 2021-10-19 | 一种多重冗余***的数据同步方法、***、设备以及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114019785B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117573609A (zh) * | 2024-01-16 | 2024-02-20 | 宁波中控微电子有限公司 | 一种具有冗余功能的片上***及其控制方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6449732B1 (en) * | 1998-12-18 | 2002-09-10 | Triconex Corporation | Method and apparatus for processing control using a multiple redundant processor control system |
CN102636988A (zh) * | 2012-04-13 | 2012-08-15 | 山东省计算中心 | 一种基于plc的冗余***实现方法 |
CN103941633A (zh) * | 2014-04-29 | 2014-07-23 | 北京依雷特科技有限公司 | 可编程控制器冗余控制方法和*** |
CN105045181A (zh) * | 2015-07-24 | 2015-11-11 | 重庆川仪自动化股份有限公司 | Pas100控制***的总体冗余构架 |
CN109189600A (zh) * | 2018-08-17 | 2019-01-11 | 四川航天***工程研究所 | 一种基于多模冗余嵌入式软件的计算机***及设计方法 |
CN112214350A (zh) * | 2020-09-02 | 2021-01-12 | 中国船舶重工集团公司第七0九研究所 | 一种分布式多模冗余容错***软件表决方法 |
CN113282134A (zh) * | 2021-05-18 | 2021-08-20 | 北京轩宇空间科技有限公司 | 热备份三模冗余计算机时间同步实现装置及方法 |
-
2021
- 2021-10-19 CN CN202111217564.7A patent/CN114019785B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6449732B1 (en) * | 1998-12-18 | 2002-09-10 | Triconex Corporation | Method and apparatus for processing control using a multiple redundant processor control system |
CN102636988A (zh) * | 2012-04-13 | 2012-08-15 | 山东省计算中心 | 一种基于plc的冗余***实现方法 |
CN103941633A (zh) * | 2014-04-29 | 2014-07-23 | 北京依雷特科技有限公司 | 可编程控制器冗余控制方法和*** |
CN105045181A (zh) * | 2015-07-24 | 2015-11-11 | 重庆川仪自动化股份有限公司 | Pas100控制***的总体冗余构架 |
CN109189600A (zh) * | 2018-08-17 | 2019-01-11 | 四川航天***工程研究所 | 一种基于多模冗余嵌入式软件的计算机***及设计方法 |
CN112214350A (zh) * | 2020-09-02 | 2021-01-12 | 中国船舶重工集团公司第七0九研究所 | 一种分布式多模冗余容错***软件表决方法 |
CN113282134A (zh) * | 2021-05-18 | 2021-08-20 | 北京轩宇空间科技有限公司 | 热备份三模冗余计算机时间同步实现装置及方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117573609A (zh) * | 2024-01-16 | 2024-02-20 | 宁波中控微电子有限公司 | 一种具有冗余功能的片上***及其控制方法 |
CN117573609B (zh) * | 2024-01-16 | 2024-05-03 | 宁波中控微电子有限公司 | 一种具有冗余功能的片上***及其控制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114019785B (zh) | 2023-11-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103856360B (zh) | 一种同步链路故障检测方法及装置 | |
US20140185632A1 (en) | Network and Method for Implementing a High-Availability Grand Master Clock | |
CN110149260B (zh) | 一种时间触发总线集群启动和重启方法及装置 | |
CN102291232B (zh) | 一种时钟同步方法及装置 | |
CN104516306B (zh) | 冗余的自动化*** | |
CN103744809A (zh) | 基于vrrp的车辆信息管理***双机热备方法 | |
EP2852087A1 (en) | Packet network synchronization method, apparatus and system | |
CN110958073B (zh) | 一种基于三套1553b总线冗余的时间同步表决方法 | |
WO2006080433A1 (ja) | 情報処理装置および情報処理方法 | |
CN108282243A (zh) | 一种适用于主从式时间同步方法的时钟源可靠性保障机制 | |
CN112346925A (zh) | 一种进程级双机热备冗余***及方法 | |
CN114019785A (zh) | 一种多重冗余***的数据同步方法、***、设备以及介质 | |
CN104092528A (zh) | 一种时钟同步方法和装置 | |
EP2761794A1 (en) | Method for a clock-rate correction in a network consisting of nodes | |
CN102195769A (zh) | 一种用于汽车can网络的时钟同步方法 | |
US7237152B2 (en) | Fail-operational global time reference in a redundant synchronous data bus system | |
CN111460029A (zh) | 数据同步方法和装置 | |
CN109217966B (zh) | 2oo3冗余结构下的操作***时钟同步方法、*** | |
Steiner et al. | Layered diagnosis and clock-rate correction for the ttethernet clock synchronization protocol | |
CN112713951A (zh) | 同步时钟的切换方法及装置、存储介质及电子设备 | |
CN116027705A (zh) | 一种可编程控制器主备切换及数据同步***和方法 | |
JP7512529B2 (ja) | データ処理のためのデータ処理ネットワーク | |
CN113093592B (zh) | 具有数据同步和决策判断的冗余控制***及方法 | |
CN111416681B (zh) | 一种适应多场景应用的高可靠时频同步组网方法 | |
CN113835337A (zh) | 一种列车网络冗余控制的方法与*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder | ||
CP01 | Change in the name or title of a patent holder |
Address after: 310053 No. 309 Liuhe Road, Binjiang District, Hangzhou City, Zhejiang Province Patentee after: Zhongkong Technology Co.,Ltd. Address before: 310053 No. 309 Liuhe Road, Binjiang District, Hangzhou City, Zhejiang Province Patentee before: ZHEJIANG SUPCON TECHNOLOGY Co.,Ltd. |