CN108388108B - 一种多重冗余控制***中同步数据的方法及装置 - Google Patents

一种多重冗余控制***中同步数据的方法及装置 Download PDF

Info

Publication number
CN108388108B
CN108388108B CN201810162569.6A CN201810162569A CN108388108B CN 108388108 B CN108388108 B CN 108388108B CN 201810162569 A CN201810162569 A CN 201810162569A CN 108388108 B CN108388108 B CN 108388108B
Authority
CN
China
Prior art keywords
controllers
local data
module
local
level information
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.)
Active
Application number
CN201810162569.6A
Other languages
English (en)
Other versions
CN108388108A (zh
Inventor
刘志勇
董乾钦
裘坤
陆卫军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Supcon Technology Co Ltd
Original Assignee
Zhejiang Supcon Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhejiang Supcon Technology Co Ltd filed Critical Zhejiang Supcon Technology Co Ltd
Priority to CN201810162569.6A priority Critical patent/CN108388108B/zh
Publication of CN108388108A publication Critical patent/CN108388108A/zh
Application granted granted Critical
Publication of CN108388108B publication Critical patent/CN108388108B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B9/00Safety arrangements
    • G05B9/02Safety arrangements electric
    • G05B9/03Safety 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)
  • Safety Devices In Control Systems (AREA)
  • Hardware Redundancy (AREA)

Abstract

本申请实施例公开了本申请提供了一种多重冗余控制***中同步数据的方法及装置,该方法包括:对于多重冗余控制***中的每个控制器,根据获取的第一本地故障等级信息以及其它控制器的故障等级信息,确定出第一优先模块,同时可以获取本地数据以及其它控制器的本地数据,从获取的本地数据中确定出第一优选模块中的控制器的本地数据,然后可以利用第一优选模块中的控制器的本地数据,更新自身的本地数据。可见,然后利用该第一优选模块中的控制器的本地数据,来对自身的本地数据进行更新,使得各个控制器更新后的本地数据也会一致,从而实现了各个控制器的本地数据的同步。

Description

一种多重冗余控制***中同步数据的方法及装置
技术领域
本申请涉及控制安全技术领域,具体涉及一种多重冗余控制***中同步数据的方法及装置。
背景技术
在重要的工业生产过程中,通常需要对工业生产过程的安全进行控制。相比于单核的控制***,多重冗余控制***往往具有更高的可靠性、安全性以及可用性。比如,对于三重冗余控制***,其输出数据通常是采用三取二方式进行表决。这样,即使单个控制器发生故障导致没有输出数据或者输出错误数据,由于其它冗余的控制器的存在,三重冗余控制***仍能输出正确的结果。并且,在三重冗余控制***中,还可以进行主、从模块的切换时,即使主模块中的控制器发生故障,在切换至从模块后,仍能保证三重冗余控制***的可靠性、安全性以及可用性。
但是,在多重冗余控制***中,各个相互独立的控制器内的关键变量数据可能会出现不一致的情况。比如,对于控制器内部累计的关键变量数据,可能会随着控制器运行时间的变化而变化,如果由于各个控制器之间的晶振频率不同或者是部分控制器发生意外复位,则很可能导致控制器之间的关键变量数据不一致,或者是模块之间的数据不一致等问题,从而降低了多重冗余控制***的可靠性、安全性以及可用性。
发明内容
有鉴于此,本申请实施例提供一种多重冗余控制***中同步数据的方法及装置,通过同步各个控制器内的关键变量数据,来提高多重冗余控制***的可靠性、安全性以及可用性。
为解决上述问题,本申请实施例提供的技术方案如下:
第一方面,本申请提供了一种多重冗余控制***中同步数据的方法所述多重冗余控制***包括至少两个模块,每个所述模块中包括至少两个控制器,所述方法应用于任意一个所述控制器,所述方法包括:
获取第一本地故障等级信息以及其它控制器的故障等级信息;
根据所述第一本地故障等级信息以及所述其它控制器的故障等级信息,从所述多重冗余控制***包括的至少两个模块中确定出第一优选模块;
获取本地数据以及所述其它控制器的本地数据;
从所述本地数据以及所述其它控制器的本地数据中确定所述第一优选模块中的控制器的本地数据;
利用所述第一优选模块中的控制器的本地数据,更新自身的本地数据。
在一些可能的实施方式中,所述多重冗余控制***包括至少两个模块,每个所述模块中包括至少三个控制器,所述利用所述第一优选模块中的控制器的本地数据,更新自身的本地数据包括:
对所述第一优选模块中的至少三个控制器的本地数据进行表决,从所述至少三个控制器的本地数据中确定第一同步数据;
根据所述第一同步数据,更新自身的本地数据。
在一些可能的实施方式中,所述方法还包括:
根据所述第一本地故障等级信息以及所述其它控制器的故障等级信息,从所述多重冗余控制***包括的至少两个模块中确定出次选模块;
当无法从所述本地数据以及其它控制器的本地数据中确定出所述第一优选模块中的控制器的本地数据,则从所述本地数据以及所述其它控制器的本地数据中确定所述次选模块中的控制器的本地数据;
利用所述次选模块中的控制器的本地数据,更新自身的本地数据。
在一些可能的实施方式中,在所述根据所述第一本地故障等级信息以及所述其它控制器的故障等级信息,从所述多重冗余控制***包括的至少两个模块中确定出第一优选模块之前,所述方法还包括:
在获取到所述第一本地故障等级信息后,根据所述第一本地故障等级信息,以及获取所述其它控制器的故障等级信息的获取结果,重新评判第一本地故障等级信息,得到第二本地故障等级信息,将所述第二本地故障等级信息作为所述第一本地故障等级信息。
在一些可能的实施方式中,所述根据所述第一本地故障等级信息以及所述其它控制器的故障等级信息,从所述多重冗余控制***包括的至少两个模块中确定出第一优选模块包括:
根据所述第一本地故障等级信息以及所述其它控制器的故障等级信息,从所述多重冗余控制***包括的至少两个模块中确定出一个第二优选模块时,将所述第二优选模块作为第一优选模块;
或者,
根据所述第一本地故障等级信息以及所述其它控制器的故障等级信息,从所述多重冗余控制***包括的至少两个模块中确定出多个第二优选模块,则按照预设规则,对所述多个第二优选模块进行裁决,得到裁决后的第二优选模块,并将所述裁决后的第二优选模块,作为第一优选模块。
在一些可能的实施方式中,所述方法还包括:
向所述其它控制器发送更新后的本地数据。
第二方面,本申请还提供了一种多重冗余控制***中同步数据的装置,所述多重冗余控制***包括至少两个模块,每个所述模块中包括至少两个控制器,所述装置应用于任意一个所述控制器,所述装置包括:
第一获取模块,用于获取第一本地故障等级信息以及其它控制器的故障等级信息;
第一确定模块,用于根据所述第一本地故障等级信息以及所述其它控制器的故障等级信息,从所述多重冗余控制***包括的至少两个模块中确定出第一优选模块;
第二获取模块,用于获取本地数据以及所述其它控制器的本地数据;
第二确定模块,用于从所述本地数据以及所述其它控制器的本地数据中确定所述第一优选模块中的控制器的本地数据;
第一更新模块,用于利用所述第一优选模块中的控制器的本地数据,更新自身的本地数据。
在一些可能的实施方式中,所述多重冗余控制***包括至少两个模块,每个所述模块中包括至少三个控制器,所述第一更新模块包括:
表决单元,用于对所述第一优选模块中的至少三个控制器的本地数据进行表决,从所述至少三个控制器的本地数据中确定第一同步数据;
更新单元,用于根据所述第一同步数据,更新自身的本地数据。
在一些可能的实施方式中,所述装置还包括:
第三确定模块,用于根据所述第一本地故障等级信息以及所述其它控制器的故障等级信息,从所述多重冗余控制***包括的至少两个模块中确定出次选模块;
第四确定模块,用于当无法从所述本地数据以及其它控制器的本地数据中确定出所述第一优选模块中的控制器的本地数据,则从所述本地数据以及所述其它控制器的本地数据中确定所述次选模块中的控制器的本地数据;
第二更新模块,用于利用所述次选模块中的控制器的本地数据,更新自身的本地数据。
在一些可能的实施方式中,所述装置还包括:
评判模块,用于在获取到所述第一本地故障等级信息后,根据所述第一本地故障等级信息,以及获取所述其它控制器的故障等级信息的获取结果,重新评判第一本地故障等级信息,得到第二本地故障等级信息,将所述第二本地故障等级信息作为所述第一本地故障等级信息。
在一些可能的实施方式中,所述第一确定模块具体用于,根据所述第一本地故障等级信息以及所述其它控制器的故障等级信息,从所述多重冗余控制***包括的至少两个模块中确定出一个第二优选模块时,将所述第二优选模块作为第一优选模块;
或者,
根据所述第一本地故障等级信息以及所述其它控制器的故障等级信息,从所述多重冗余控制***包括的至少两个模块中确定出多个第二优选模块,则按照预设规则,对所述多个第二优选模块进行裁决,得到裁决后的第二优选模块,并将所述裁决后的第二优选模块,作为第一优选模块。
在一些可能的实施方式中,所述装置还包括:
发送模块,用于向所述其它控制器发送更新后的本地数据。
由此可见,本申请实施例具有如下有益效果:
本申请实施例中,在多重冗余控制***中,对于每个控制器,可以获取该控制器的第一本地故障等级信息以及其它控制器的故障等级信息,并根据所获取的第一本地故障等级信息以及其它控制器的故障等级信息,从多重冗余控制***包括的至少两个模块中确定出第一优先模块,同时可以获取本地数据以及其它控制器的本地数据,从获取的本地数据以及其它控制器的本地数据中确定出第一优选模块中的控制器的本地数据,然后可以利用第一优选模块中的控制器的本地数据,更新自身的本地数据。可见,通过根据自身的故障等级信息以及其它控制器的故障等级信息,可以确定出故障情况最好的优选模块,然后利用优选模块中的控制器的本地数据,来对自身的本地数据进行更新,降低了故障问题对多重冗余控制***的数据的影响,提高了数据的正确性、可靠性以及可用性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本申请实施例中三重冗余控制***的基本硬件通信模型示意图;
图2为本申请实施例中二重冗余控制***的基本硬件通信模型示意图;
图3为本申请实施例中一种多重冗余控制***中同步数据的方法流程示意图;
图4为本申请实施例中三重冗余控制***中数据通信示意图;
图5为本申请实施例中一种三重冗余控制***中同步数据的方法流程示意图;
图6为本申请实施例中一种多重冗余控制***中同步数据的装置结构示意图。
具体实施方式
在利用多重冗余控制***对工业生产的安全进行监控的过程中,多重冗余控制***中的各个控制器相同并且相互独立,这就要求各个控制器的控制周期不仅要同步,各个控制器的本地数据也要进行同步。比如,对于各个控制器的I/O(Input/Output,输入/输出)卡采集到的数据、内部累计的关键变量数据等,尤其是各个控制器内部累计的关键变量数据,通常是用户进行创建,并且从创建开始可能会随着控制器运行的时间变化而变化,即使保证了各个控制器的控制周期同步,也有可能因为各个控制器中晶振频率的不同、或是因为某个控制器发生意外复位等情况,而导致控制器之间的关键变量数据不一致的问题,从而降低了多重冗余控制***的可靠性、安全性以及可用性。
为了解决上述问题,本申请提供了一种多重冗余控制***中同步数据的方法,以实现对多重冗余控制***中各个控制器的本地数据进行同步。作为一种示例,该方法可以应用于图1所述的三重冗余控制***中,其中,该多重冗余控制***包括两个模块,分别为模块101、模块102,每个模块中包括有三个控制器,并且该方法可以应用于图1所示的任意一个控制器中。该方法具体可以包括:获取第一本地故障等级信息以及其它五个控制器的故障等级信息,根据所获取的第一本地故障等级信息以及其它五个控制器的故障等级信息,从模块101以及模块102中确定出第一优选模块;同时,可以获取自身的本地数据以及其它五个控制器的本地数据,从获取的本地数据中确定出第一优选模块中的控制器的本地数据,并利用第一优选模块中的控制器的本地数据,更新自身的本地数据。
可见,在同步本地数据时,由于各个控制器都会按照相同的规则,确定出同一个故障情况最好的第一优选模块,然后利用该第一优选模块中的控制器的本地数据,来对自身的本地数据进行更新,使得各个控制器更新后的本地数据也会一致,从而实现了各个控制器的本地数据的同步,进而降低了故障问题对多重冗余控制***的数据的影响,提高了数据的正确性、可靠性以及可用性。
需要说明的是,本申请实施例中的多重冗余控制***,也可以是二重冗余控制***,如图2所示。图2所示的二重冗余控制***包括有模块201、模块202两个模块,每个模块中包括有两个控制器。此外,多重冗余控制***中所包括的模块数也可以多于两个等。总之,图1所示的多重冗余控制***仅作为示例性说明,并不用于限定本申请实施例。
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请实施例作进一步详细的说明。
请一并参阅图3,图3示出了本申请实施例中一种多重冗余控制***中同步数据的方法流程示意图,该方法应用于多重冗余控制***中的任意一个控制器,该方法具体可以包括:
S301:获取第一本地故障等级信息以及其它控制器的故障等级信息。
其中,第一本地故障等级信息,也即为该控制器自身的故障等级信息。而故障等级信息,是反映其所属控制器是否发生故障以及发生故障后的严重程度的信息。比如,在一种非限定性示例中,故障等级信息可以按照控制器故障情况划分为A、B、C、D个等级,具体的,故障等级信息为A级时,表征该控制器没有发生故障;故障等级信息为B级时,表征该控制器发生故障的严重程度较轻;故障等级信息为C级时,表征该控制器发生故障的严重程度较为严重;故障等级信息为D级时,表征该控制器已经严重故障等。
作为一种示例性的具体实施方式,各个控制器可以读取自身存储的故障等级信息,并将读取到的故障等级信息通过数据通信通道发送给其它控制器。这样,每个控制器可以获得自身的第一本地故障等级信息,以及其它控制器发送过来的故障等级信息。
在一些场景下,部分控制器之间由于硬件资源的限制,可能没有直接相连的故障等级信息数据通信通道。比如,如图4所示,在三重冗余控制***中,控制器A与控制器F之间,在硬件上没有直接相连的数据通信通道。控制器F想要获得控制器A的故障等级信息,通常情况下需要先利用控制器A与控制器C之间的通道L,将控制器A的故障等级信息传输至控制器C,然后再利用控制器C与控制器F之间的通道将该故障等级信息传输至控制器F,从而使得控制器F获得控制器A的故障等级信息,这样可以在有限的硬件资源的条件下,实现多重冗余控制***中各个控制器相互之间进行数据通信。其中,故障等级信息在一个数据通信通道中的传输时长,为控制周期时长的三分之一。因此,在一些示例中,每个控制器可以以控制周期时长的三分之一为一个周期,向其它控制器发送自身的故障等级信息,如果故障等级信息传输正常,则在两个周期内,即可使得每个控制器均可以获得其它控制器的故障等级信息。如果当前周期内故障等级信息在某个数据通信通道中发生传输异常(比如没有进行故障等级信息的传输),则在下一个周期中再次在该数据通信通道中进行故障等级信息的传输,这样可以使得在一个控制周期内,各个控制器均能获得其它五个控制器的故障等级信息。这样,多重冗余控制***的故障等级敏感度为一个控制周期,提高了多重冗余控制***出现故障时数据选择的正确性。
S302:根据第一本地故障等级信息以及其它控制器的故障等级信息,从多重冗余控制***包括的至少两个模块中确定出第一优选模块。
由于故障等级信息能够反映其所属控制器的故障情况,因此,各个控制器可以根据获取到的各个控制器的故障等级信息,确定出故障情况最好的第一优选模块。
作为一种示例性的具体实施方式,如果根据第一本地故障等级信息以及其它控制器的故障等级信息,从多重冗余控制***包括的至少两个模块中只能确定出一个故障情况最好的第二优选模块,则将该第二优选模块作为第一优选模块。其中,该第二优选模块中控制器的整体故障情况,相对于其它模块中的控制器的故障情况而言要更好。
但是在一些场景中,可能会存在多个模块中的控制器的故障情况相同的情况,这时,可能会确定出多个故障情况最好的第二优选模块。比如,如果多重冗余控制***中存在两个模块中的各个控制器均没有发生故障,即两个模块中的各个控制器的故障等级信息均表征控制器没有发生故障,则可以确定这两个模块均为故障情况最好的第二优选模块。此时,可以从多个第二优选模块中确定出一个第二优选模块,并将其作为第一优选模块。具体的,如果根据第一本地故障等级信息以及其它控制器的故障等级信息,从多重冗余控制***包括的至少两个模块中确定出多个故障情况最好的第二优选模块时,则按照预设规则,对多个第二优选模块进行裁决,得到裁决后的第二优选模块,并将裁决后的第二优选模块作为第一优选模块。
实际应用中,在本次对控制器的本地数据进行同步的过程中,如果确定出的多个第二优选模块中存在其中一个第二优选模块,为上一次对控制器的本地数据进行同步时所确定的第一优选模块,则将该第二优选模块作为本次同步本地数据的过程中的第一优选模块,即保持第一优选模块不变。通过保持本次同步本地数据过程与上一次同步本地数据过程中所确定的第一优选模块不变,可以防止发生数据跳变,提高整个多重冗余控制***内数据选择的稳定性。
如果之前没有对控制器的本地数据进行过同步(比如,多重冗余控制***进行初始化或者其所在硬件刚进行上电),则在一些实施方式中,可以按照预先对模块的编号,将多个第二优选模块中编号最小的第二优选模块,作为第一优选模块。
S303:获取本地数据以及其它控制器的本地数据。
需要说明的是,各个控制器之间发送和接收本地数据的过程,与各个控制器之间发送和接收故障等级信息的过程是相互独立的。也就是说,控制器获取其它控制器的本地数据与获取其它控制器的故障等级信息的过程,是互不干扰的。具体表现为在执行顺序上,可以是控制器先获取其它控制器的本地数据,再获取其它控制器的故障等级信息;也可以是控制器先获取其它控制器的故障等级信息,再获取其它控制器的本地数据;还可以是控制器同时获得其它控制器的本地数据与故障等级信息。
S304:从获取的本地数据以及其它控制器的本地数据中,确定第一优选模块中的控制器的本地数据。
作为一种示例性的具体实施方式,控制器所获取的本地数据,可以携带有该本地数据所属控制器的标识,则控制器可以根据该标识,确定出各个本地数据所属的控制器,进而可以确定出第一优选模块中的控制器的本地数据。
比如,可以预先对各个控制器进行编号,每一个编号对应于一个控制器,则可以以控制器的编号为标识来区分各个控制器,相应的,控制器所接收到的本地数据中也就会携带有该本地数据所属控制器的编号。控制器可以根据各个本地数据所携带的编号,确定出第一优选模块中的控制器的本地数据。
S305:利用确定的第一优选模块中的控制器的本地数据,更新自身的本地数据。
在确定第一优选模块中的控制器的本地数据后,可以利用该本地数据,按照一定策略,来对自身的本地数据进行更新。比如,在三重冗余控制***中,第一优选模块中会包含有三个控制器,则在该三个控制器的本地数据中选择两个相同的本地数据,来对自身的本地数据进行更新,或者在该三个控制器的本地数据中,选择位于中间值的本地数据,来对自身的本地数据进行更新。
进一步的,在更新完控制器自身的本地数据,实现对控制器的本地数据的同步后,可以通过数据通信通道向其它控制器发送自身更新后的本地数据,以便于下一次对各个控制器的本地数据进行同步时,其它控制器能够获取到该控制器的故障等级信息以及更新后的本地数据。
本实施例中,对于多重冗余控制***中的每个控制器,可以获取该控制器的第一本地故障等级信息以及其它控制器的故障等级信息,并根据所获取的第一本地故障等级信息以及其它控制器的故障等级信息,从多重冗余控制***包括的至少两个模块中确定出第一优先模块,同时可以获取本地数据以及其它控制器的本地数据,从获取的本地数据以及其它控制器的本地数据中确定出第一优选模块中的控制器的本地数据,然后可以利用第一优选模块中的控制器的本地数据,更新自身的本地数据。可见,在同步本地数据时,由于各个控制器都会按照相同的规则,确定出同一个故障情况最好的第一优选模块,然后利用该第一优选模块中的控制器的本地数据,来对自身的本地数据进行更新,使得各个控制器更新后的本地数据也会一致,从而实现了各个控制器的本地数据的同步,进而降低了故障问题对多重冗余控制***的数据的影响,提高了数据的正确性、可靠性以及可用性。
为了更加详细的介绍本申请实施例的技术方案,下面以三重冗余控制***中同步各个控制器的本地数据为例进行说明。该三重冗余控制***的基本硬件通信模型可以如图1所示,包括两个模块,每个模块包括有三个控制器。请一并参阅图5,图5示出了本申请实施例中三重冗余控制***中同步数据的方法流程示意图,该方法可以应用于三重冗余控制***中的任意一个控制器,该方法具体可以包括:
S501:获取第一本地故障等级信息以及其它五个控制器的故障等级信息。
作为一种示例性的具体实施方式,各个控制器可以读取自身存储的故障等级信息,并将读取到的故障等级信息通过数据通信通道发送给其它五个控制器。这样,每个控制器可以获得自身的第一本地故障等级信息,以及其它五个控制器发送过来的故障等级信息。
S502:在获取到第一本地故障等级信息后,根据第一本地故障等级信息,以及其它获取其它五个控制器的故障等级信息的获取结果,重新评判第一本地故障等级信息,得到第二本地故障等级信息,并将第二本地故障等级信息作为第一本地故障等级信息。
需要说明的是,控制器所获得的自身的第一本地故障等级信息,通常是根据控制器自身的运行结果所评判得到的,但是如果控制器的数据通信通道接口发生故障,控制器并不一定能够检测出来,因而所得到的第一故障等级信息不一定能真正的体现控制器的故障情况。本实施例中,可以利用控制器获取其它五个控制器的故障等级信息的获取结果,确定控制器自身的数据通信通道接口是否发生故障,并对自身的第一本地故障等级信息重新进行评判,得到第二本地故障等级信息,然后将该第二本地故障等级信息作为该控制器的第一本地故障等级信息,参与后续本地数据的同步过程。
S503:根据重新评判得到的第一本地故障等级信息以及其它五个控制器的故障等级信息,从三重冗余控制***包括的两个模块中确定出优选模块以及次选模块。
由于故障等级信息能够反映其所属控制器的故障情况,因此,各个控制器可以根据获取到的各个控制器的故障等级信息,确定出故障情况最好的优选模块,以及故障情况较差的次选模块。
其中,优选模块是指该模块中三个控制器的故障情况最好的模块,而次选模块是指三重冗余控制***中,该模块的三个控制器的故障情况仅比优选模块的三个控制器的故障情况差的模块。本实施例中,次选模块也即为除优选模块外所剩余的模块。
S504:获取本地数据以及其它控制器的本地数据。
需要说明的是,本实施例中步骤S503至步骤S504与上一实施例中步骤S302至步骤S303类似,可参照上一实施例中的相关之处的描述进行理解,在此不再赘述。
S505:判断是否能够从获取的自身的本地数据以及其它控制器的本地数据中,确定优选模块中的控制器的本地数据,如果是,则执行步骤S506,如果否,则执行步骤S507。
可以理解的是,若控制器与其它控制器的数据通信通道发生故障,可能导致控制器无法接收到其它控制器发送的本地数据。此时,如果控制器所获取到的本地数据中,包括有优选模块中的控制器的本地数据,即控制器能够获取到优选模块中控制器的本地数据,则控制器可以从获取的本地数据中确定优选模块中的控制器的本地数据,否则,控制器无法确定优选模块中的控制器的本地数据。
在一些可能的实施方式中,控制器所获取到的本地数据中,包括有优选模块中已经表决过的本地数据,则控制器可以从获取到的本地数据中,确定出优选模块中已经表决过的本地数据,并利用该本地数据对自身的本地数据进行更新。
在另一些可能的实施方式中,控制器所获取到的本地数据中,包括有优选模块中三个控制器的本地数据,则控制器可以从获取到的本地数据中,确定出优选模块中三个控制器的本地数据后,可以对这三个控制器的本地数据进行表决,具体为在这三个控制器的本地数据中选择两个相同的本地数据,并将该相同的本地数据作为第一同步数据,或者在该三个控制器的本地数据中,选择位于中间值的本地数据,将该位于中间值的本地数据作为第一同步数据,以便于利用第一同步数据对控制器自身的本地数据进行更新。
S506:根据优选模块中的控制器的本地数据,对自身的本地数据进行更新。
在一些可能实施方式中,可以利用优选模块中的控制器的本地数据,来替换对应的本地数据,以实现对控制器自身的本地数据进行更新。
S507:从本地数据以及其它控制器的本地数据中确定出次选模块中的三个控制器的本地数据。
当控制器所获取的本地数据中,没有包含优选模块中的三个控制器的本地数据时,控制器可以从获取的本地数据中,确定出次选模块中的三个控制器的本地数据。
S508:利用次选模块中的控制器的本地数据,更新自身的本地数据。
作为一种示例性的实施方式,控制器可以对次选模块中的控制器的本地数据进行表决,具体为在这三个控制器的本地数据中选择两个相同的本地数据,并利用该相同的本地数据来替换控制器内对应的本地数据,以实现对本地数据的更新,或者在该三个控制器的本地数据中,选择位于中间值的本地数据,并利用位于中间值的本地数据来替换控制器内对应的本地数据,以实现对本地数据的更新。
本实施例中,对于三重冗余控制***中的每个控制器,可以获取该控制器的第一本地故障等级信息以及其它五个控制器的故障等级信息,并根据获取其它五个控制器的故障等级信息的获取结果,重新评判第一本地故障等级信息,然后根据重新评判得到的第一本地故障等级信息以及其它控制器的故障等级信息,确定出故障情况最好的优先模块以及故障情况较差的次选模块,同时可以获取本地数据以及其它控制器的本地数据,如果可以从获取的本地数据中确定出优选模块中的三个控制器的本地数据,则利用该本地数据,更新自身的本地数据,否则,从获取的本地数据中确定出次选模块中的三个控制器的本地数据,并利用该本地数据,更新自身的本地数据。
可见,在同步本地数据时,由于各个控制器都会按照相同的规则,确定出同一个故障情况最好的优选模块以及故障情况较差的次选模块,然后利用该优选模块中的控制器的本地数据,来对自身的本地数据进行更新,否则利用次选模块中的控制器的本地数据,来对自身的本地数据进行更新,使得各个控制器更新后的本地数据也会一致,从而实现了各个控制器的本地数据的同步,进而降低了故障问题对多重冗余控制***的数据的影响,提高了数据的正确性、可靠性以及可用性。
此外,本申请实施例还提供了一种多重冗余控制***中同步数据的装置。请一并参阅图6,与6示出了本申请实施例中一种多重冗余控制***中同步数据的装置结构示意图,其中多重冗余控制***包括至少两个模块,每个模块中包括至少两个控制器,该装置可以应用于任意一个控制器,该装置包括:
第一获取模块601,用于获取第一本地故障等级信息以及其它控制器的故障等级信息;
第一确定模块602,用于根据第一本地故障等级信息以及其它控制器的故障等级信息,从多重冗余控制***包括的至少两个模块中确定出第一优选模块;
第二获取模块603,用于获取本地数据以及其它控制器的本地数据;
第二确定模块604,用于从本地数据以及其它控制器的本地数据中确定第一优选模块中的控制器的本地数据;
第一更新模块605,用于利用第一优选模块中的控制器的本地数据,更新自身的本地数据。
在一些可能的实施方式中,多重冗余控制***包括至少两个模块,每个模块中包括至少三个控制器,第一更新模块605包括:
表决单元,用于对第一优选模块中的至少三个控制器的本地数据进行表决,从至少三个控制器的本地数据中确定第一同步数据;
更新单元,用于根据第一同步数据,更新自身的本地数据。
在一些可能的实施方式中,该装置还包括:
第三确定模块,用于根据第一本地故障等级信息以及其它控制器的故障等级信息,从多重冗余控制***包括的至少两个模块中确定出次选模块;
第四确定模块,用于当无法从本地数据以及其它控制器的本地数据中确定出第一优选模块中的控制器的本地数据,则从本地数据以及其它控制器的本地数据中确定次选模块中的控制器的本地数据;
第二更新模块,用于利用次选模块中的控制器的本地数据,更新自身的本地数据。
在一些可能的实施方式中,该装置还包括:
评判模块,用于在获取到第一本地故障等级信息后,根据第一本地故障等级信息,以及获取其它控制器的故障等级信息的获取结果,重新评判第一本地故障等级信息,得到第二本地故障等级信息,将第二本地故障等级信息作为第一本地故障等级信息。
在一些可能的实施方式中,第一确定模块602具体用于,根据第一本地故障等级信息以及其它控制器的故障等级信息,从多重冗余控制***包括的至少两个模块中确定出一个第二优选模块时,将第二优选模块作为第一优选模块;
或者,
根据第一本地故障等级信息以及其它控制器的故障等级信息,从多重冗余控制***包括的至少两个模块中确定出多个第二优选模块,则按照预设规则,对多个第二优选模块进行裁决,得到裁决后的第二优选模块,并将裁决后的第二优选模块,作为第一优选模块。
在一些可能的实施方式中,该装置还包括:
发送模块,用于向其它控制器发送更新后的本地数据。
本申请实施例中,在多重冗余控制***中,第一获取模块601可以获取该控制器的第一本地故障等级信息以及其它控制器的故障等级信息,并由第一确定模块602根据所获取的第一本地故障等级信息以及其它控制器的故障等级信息,从多重冗余控制***包括的至少两个模块中确定出第一优先模块,同时由第二获取模块603可以获取本地数据以及其它控制器的本地数据,并由第二确定模块604从获取的本地数据以及其它控制器的本地数据中确定出第一优选模块中的控制器的本地数据,然后第一更新模块605可以利用第一优选模块中的控制器的本地数据,更新自身的本地数据。可见,通过根据自身的故障等级信息以及其它控制器的故障等级信息,可以确定出故障情况最好的优选模块,然后利用优选模块中的控制器的本地数据,来对控制器自身的本地数据进行更新,降低了故障问题对多重冗余控制***的数据的影响,提高了数据的正确性、可靠性以及可用性。
需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的***或装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (12)

1.一种多重冗余控制***中同步数据的方法,其特征在于,所述多重冗余控制***包括至少两个模块,每个所述模块中包括至少两个控制器,所述方法应用于所述多重冗余控制***中各个控制器,所述方法包括:
获取第一本地故障等级信息以及其它控制器的故障等级信息;
根据所述第一本地故障等级信息以及所述其它控制器的故障等级信息,从所述多重冗余控制***包括的至少两个模块中确定出故障情况最好的第一优选模块;
获取本地数据以及所述其它控制器的本地数据;
从所述本地数据以及所述其它控制器的本地数据中确定所述第一优选模块中的控制器的本地数据;
利用所述第一优选模块中的控制器的本地数据,更新自身的本地数据。
2.根据权利要求1所述的方法,其特征在于,所述多重冗余控制***包括至少两个模块,每个所述模块中包括至少三个控制器,所述利用所述第一优选模块中的控制器的本地数据,更新自身的本地数据包括:
对所述第一优选模块中的至少三个控制器的本地数据进行表决,从所述至少三个控制器的本地数据中确定第一同步数据;
根据所述第一同步数据,更新自身的本地数据。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
根据所述第一本地故障等级信息以及所述其它控制器的故障等级信息,从所述多重冗余控制***包括的至少两个模块中确定出次选模块;
当无法从所述本地数据以及其它控制器的本地数据中确定出所述第一优选模块中的控制器的本地数据,则从所述本地数据以及所述其它控制器的本地数据中确定所述次选模块中的控制器的本地数据;
利用所述次选模块中的控制器的本地数据,更新自身的本地数据。
4.根据权利要求1所述的方法,其特征在于,在所述根据所述第一本地故障等级信息以及所述其它控制器的故障等级信息,从所述多重冗余控制***包括的至少两个模块中确定出第一优选模块之前,所述方法还包括:
在获取到所述第一本地故障等级信息后,根据所述第一本地故障等级信息,以及获取所述其它控制器的故障等级信息的获取结果,重新评判第一本地故障等级信息,得到第二本地故障等级信息,将所述第二本地故障等级信息作为所述第一本地故障等级信息。
5.根据权利要求1所述的方法,其特征在于,所述根据所述第一本地故障等级信息以及所述其它控制器的故障等级信息,从所述多重冗余控制***包括的至少两个模块中确定出第一优选模块包括:
根据所述第一本地故障等级信息以及所述其它控制器的故障等级信息,从所述多重冗余控制***包括的至少两个模块中确定出一个第二优选模块时,将所述第二优选模块作为第一优选模块;
或者,
根据所述第一本地故障等级信息以及所述其它控制器的故障等级信息,从所述多重冗余控制***包括的至少两个模块中确定出多个第二优选模块,则按照预设规则,对所述多个第二优选模块进行裁决,得到裁决后的第二优选模块,并将所述裁决后的第二优选模块,作为第一优选模块。
6.根据权利要求1或4所述的方法,其特征在于,所述方法还包括:
向所述其它控制器发送更新后的本地数据。
7.一种多重冗余控制***中同步数据的装置,其特征在于,所述多重冗余控制***包括至少两个模块,每个所述模块中包括至少两个控制器,所述装置应用于所述多重冗余控制***中各个控制器,所述装置包括:
第一获取模块,用于获取第一本地故障等级信息以及其它控制器的故障等级信息;
第一确定模块,用于根据所述第一本地故障等级信息以及所述其它控制器的故障等级信息,从所述多重冗余控制***包括的至少两个模块中确定出故障情况最好的第一优选模块;
第二获取模块,用于获取本地数据以及所述其它控制器的本地数据;
第二确定模块,用于从所述本地数据以及所述其它控制器的本地数据中确定所述第一优选模块中的控制器的本地数据;
第一更新模块,用于利用所述第一优选模块中的控制器的本地数据,更新自身的本地数据。
8.根据权利要求7所述的装置,其特征在于,所述多重冗余控制***包括至少两个模块,每个所述模块中包括至少三个控制器,所述第一更新模块包括:
表决单元,用于对所述第一优选模块中的至少三个控制器的本地数据进行表决,从所述至少三个控制器的本地数据中确定第一同步数据;
更新单元,用于根据所述第一同步数据,更新自身的本地数据。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
第三确定模块,用于根据所述第一本地故障等级信息以及所述其它控制器的故障等级信息,从所述多重冗余控制***包括的至少两个模块中确定出次选模块;
第四确定模块,用于当无法从所述本地数据以及其它控制器的本地数据中确定出所述第一优选模块中的控制器的本地数据,则从所述本地数据以及所述其它控制器的本地数据中确定所述次选模块中的控制器的本地数据;
第二更新模块,用于利用所述次选模块中的控制器的本地数据,更新自身的本地数据。
10.根据权利要求7所述的装置,其特征在于,所述装置还包括:
评判模块,用于在获取到所述第一本地故障等级信息后,根据所述第一本地故障等级信息,以及获取所述其它控制器的故障等级信息的获取结果,重新评判第一本地故障等级信息,得到第二本地故障等级信息,将所述第二本地故障等级信息作为所述第一本地故障等级信息。
11.根据权利要求7所述的装置,其特征在于,所述第一确定模块具体用于,根据所述第一本地故障等级信息以及所述其它控制器的故障等级信息,从所述多重冗余控制***包括的至少两个模块中确定出一个第二优选模块时,将所述第二优选模块作为第一优选模块;
或者,
根据所述第一本地故障等级信息以及所述其它控制器的故障等级信息,从所述多重冗余控制***包括的至少两个模块中确定出多个第二优选模块,则按照预设规则,对所述多个第二优选模块进行裁决,得到裁决后的第二优选模块,并将所述裁决后的第二优选模块,作为第一优选模块。
12.根据权利要求7或10所述的装置,其特征在于,所述装置还包括:
发送模块,用于向所述其它控制器发送更新后的本地数据。
CN201810162569.6A 2018-02-27 2018-02-27 一种多重冗余控制***中同步数据的方法及装置 Active CN108388108B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810162569.6A CN108388108B (zh) 2018-02-27 2018-02-27 一种多重冗余控制***中同步数据的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810162569.6A CN108388108B (zh) 2018-02-27 2018-02-27 一种多重冗余控制***中同步数据的方法及装置

Publications (2)

Publication Number Publication Date
CN108388108A CN108388108A (zh) 2018-08-10
CN108388108B true CN108388108B (zh) 2021-05-25

Family

ID=63069921

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810162569.6A Active CN108388108B (zh) 2018-02-27 2018-02-27 一种多重冗余控制***中同步数据的方法及装置

Country Status (1)

Country Link
CN (1) CN108388108B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111427727B (zh) * 2020-03-04 2023-04-14 上海航天控制技术研究所 一种火星探测三计算机基于数据敏感度及类别的表决方法
CN113433819B (zh) * 2021-06-09 2022-05-10 浙江中控技术股份有限公司 一种***辨识方法和计算机设备
CN113568301B (zh) * 2021-09-26 2022-01-14 浙江中控技术股份有限公司 热备冗余方法及控制***

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101296065A (zh) * 2008-06-19 2008-10-29 浙江中控技术股份有限公司 一种提高冗余主站可靠性的方法及***
CN102508745A (zh) * 2011-10-21 2012-06-20 上海交通大学 一种基于两级松散同步的三模冗余***及其实现方法
CN103139033A (zh) * 2013-02-06 2013-06-05 浙江中控技术股份有限公司 单主通信控制总线主设备冗余切换方法
CN103543705A (zh) * 2013-07-27 2014-01-29 国家电网公司 一种主机运行状态切换的实现方法
CN104536361A (zh) * 2015-01-23 2015-04-22 浙江中控技术股份有限公司 一种数据处理方法以及冗余控制***
CN104571041A (zh) * 2014-12-31 2015-04-29 重庆川仪自动化股份有限公司 基于1:1控制器冗余的数据同步方法
CN105550067A (zh) * 2015-12-11 2016-05-04 中国航空工业集团公司西安航空计算技术研究所 一种机载计算机双通道选择方法
WO2016151330A1 (en) * 2015-03-26 2016-09-29 Klaw Products Limited Assembly comprising an emergency release system and a diagnosis system to verify the operation of the emergency release system
WO2016209115A1 (ru) * 2015-06-25 2016-12-29 Федеральное государственное унитарное предприятие "Всероссийский научно-исследовательский институт автоматики им. Н.Л. Духова" Управляющая система безопасности атомной электростанции
CN206096813U (zh) * 2016-04-18 2017-04-12 北京交大微联科技有限公司杭州分公司 一种基于fpga二取二比较器的故障安全信号输出装置
CN106950820A (zh) * 2017-04-17 2017-07-14 杭州电子科技大学 一种多冗余仲裁的动力定位控制***及方法
US9760293B2 (en) * 2013-03-07 2017-09-12 Seagate Technology Llc Mirrored data storage with improved data reliability

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101296065A (zh) * 2008-06-19 2008-10-29 浙江中控技术股份有限公司 一种提高冗余主站可靠性的方法及***
CN102508745A (zh) * 2011-10-21 2012-06-20 上海交通大学 一种基于两级松散同步的三模冗余***及其实现方法
CN103139033A (zh) * 2013-02-06 2013-06-05 浙江中控技术股份有限公司 单主通信控制总线主设备冗余切换方法
US9760293B2 (en) * 2013-03-07 2017-09-12 Seagate Technology Llc Mirrored data storage with improved data reliability
CN103543705A (zh) * 2013-07-27 2014-01-29 国家电网公司 一种主机运行状态切换的实现方法
CN104571041A (zh) * 2014-12-31 2015-04-29 重庆川仪自动化股份有限公司 基于1:1控制器冗余的数据同步方法
CN104536361A (zh) * 2015-01-23 2015-04-22 浙江中控技术股份有限公司 一种数据处理方法以及冗余控制***
WO2016151330A1 (en) * 2015-03-26 2016-09-29 Klaw Products Limited Assembly comprising an emergency release system and a diagnosis system to verify the operation of the emergency release system
WO2016209115A1 (ru) * 2015-06-25 2016-12-29 Федеральное государственное унитарное предприятие "Всероссийский научно-исследовательский институт автоматики им. Н.Л. Духова" Управляющая система безопасности атомной электростанции
CN105550067A (zh) * 2015-12-11 2016-05-04 中国航空工业集团公司西安航空计算技术研究所 一种机载计算机双通道选择方法
CN206096813U (zh) * 2016-04-18 2017-04-12 北京交大微联科技有限公司杭州分公司 一种基于fpga二取二比较器的故障安全信号输出装置
CN106950820A (zh) * 2017-04-17 2017-07-14 杭州电子科技大学 一种多冗余仲裁的动力定位控制***及方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CloudSync: Multi-nodes Directory Synchronization;Qiang Li,等;《2012 International Conference on Industrial Control and Electronics Engineering》;20121231;1470-1473页 *
无人机容错飞行控制***研究与应用;潘计辉,等;《计算机测量与控制》;20130930;第21卷(第9期);2468-2470页 *

Also Published As

Publication number Publication date
CN108388108A (zh) 2018-08-10

Similar Documents

Publication Publication Date Title
CN108388108B (zh) 一种多重冗余控制***中同步数据的方法及装置
CN108958787B (zh) 区块链***升级方法、装置、设备及存储介质
EP0263773B1 (en) Symmetrization for redundant channels
CN110572443B (zh) 长连接状态更新方法、服务端、服务器及存储介质
US11736371B2 (en) Heartbeat information sending method and apparatus, and heartbeat sending node
CN111625592A (zh) 分布式数据库的负载均衡方法和装置
CN107967150B (zh) 一种线程执行顺序确定方法、装置、设备及存储介质
US8605602B2 (en) Field communication system
CN113965494A (zh) 用于冗余进程网络中的故障检测和角色选择的方法
CN109219105B (zh) 路由切换方法以及路由切换***
EP4207637A1 (en) Time synchronization method and apparatus, device, and storage medium
CN114610545A (zh) 减少私有云计算的单点故障的方法、***、设备及介质
CN107134294B (zh) 一种ecc信息获取方法及***
CN110636090B (zh) 窄带宽条件下的数据同步方法和装置
CN107239363B (zh) 一种ecc信息上报方法及***
CN107342942B (zh) 一种多节点控制器集群的信息传输方法及装置
CN117992501B (zh) 数据库集群脑裂预防方法、装置、电子设备及存储介质
JP6492885B2 (ja) 診断装置
CN115499791B (zh) 面向服务的通信方法、装置、电子设备及存储介质
US8271828B2 (en) Restarting networks
CN115952237B (zh) 一种多端数据融合***
US20050172167A1 (en) Communication fault containment via indirect detection
CN112269336B (zh) 异常控制发现方法、装置、电子设备及存储介质
CN110532135B (zh) 一种集群***的服务迁移方法、***、设备及存储介质
KR102016029B1 (ko) 차량 통신의 부하 분산 장치 및 방법

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