基于数据同步的主备同步方法
【专利摘要】本发明公开了一种基于数据同步的主备同步方法,包括:设置主、备两系为互锁关系;每个同步周期开始前,备系发送数据至主系;主系判断接收到的备系数据是否同步,若不同步则输出不同步标志并发送同步数据至备系,若同步则输出同步标志并输出计算结果;备系若接收到同步标志则输出同步标志并输出抢主标志,备系同时输出计算结果;若备系收到不同步标志和主系发出的同步数据,则备系同步主系同步数据后输出不同步标志,并不输出计算结果。本发明能解决实时工业自动化控制领域中由于冗余切换同步数据量大,周期时间短,造成的数据同步失败或同步错误。
【专利说明】基于数据同步的主备同步方法
【技术领域】
[0001]本发明涉及计算机领域,特别是涉及一种实时工业自动化控制中用于安全计算机的基于数据同步的主备同步方法。
【背景技术】
[0002]冗余切换是目前比较主流的安全计算机结构中用于提高系统可用性的常见分方法,其典型结构如图1所示(以2乘2oo2安全计算机架构为例)。从图1可以看到该结构中有两套2取2系统。主备系统之间依靠切换板的自动/手动切换开关实现整个2乘系统的热切换。当然也有一些安全系统采用冷备的策略,但是冷备策略在工业控制实时系统上有很多的缺点,不能提高整个系统的可用性,不常采用。
[0003]热备系统通常有以下两种输出方式:
[0004]一、在主系工作正常时切换板输出主系的计算结果;当主系出现故障时切换板输出备系的计算结果;
[0005]二、在仅有主系工作正常,且备系与主系的数据,状态不一致时,仅输出主系数据。当备系与主系的数据,状态一致时,此时备系进入同步状态,切换板同时输出主系与备系的输出。
[0006]第一种切换冗余方法可以提高系统的可用性,维护性。但无法避免系统随机故障带来的安全问题,也就是需要保证输入的完全一致,如果发生随机干扰导致输入不正确,可能影响到主备系同时故障。这就需要系统设计时考虑这些干扰,并增加容忍。这种方式通常可用在输入都是信号量(都是O和I可以表示的),没有模拟量的系统中,例如轨道交通信号中的联锁系统。
[0007]第二种切换冗余方式由于同步的策略是备系跟随主系,因此软件处理中有一定的差异,减少了由于随机干扰导致的系统故障,因此有广泛的应用领域,例如轨道交通信号中的车载系统。第二种切换冗余方式的现有方法基本思路是(如图2所示):
[0008]双系(王,备两系)启动后输出驱动王系继电器,由于双系存在互锁关系,也就是说,在同一个周期,只有一系可以是主系,另外一系必定是备系;双系采集切换板的继电器,得到本系及对方系的主备系状态。主系比较备系过来的数据是否与本系数据一致,如果一致,则输出同步标志,否则输出不同步标志,并发送本系的数据。最后驱动主系继电器;备系接收主系过来的数据,如果不同步则采用主系的数据作为输入运行,并不输出计算结果;如果同步则运行本系数据,并驱动主系继电器,最后将计算结果输出。而切换板则采用或的关系来处理主备系的计算结果,也就是说,只要有一系输出则输出。从图2所示步骤可以看出备系需要每周期发送同步数据给主系,主系需要每周期判断备系的数据是否同步,输出同步状态和同步数据给备系。在这个过程中,最关键的是同步数据的选择和同步策略。对于双系间需要同步的数据量较小,周期较长的系统来说,该冗余切换方式可以满足其需要。但对于数据量较大,周期较短的系统来说,该冗余切换方式会导致数据不可能在一个周期内发送完成,造成数据同步错误/数据同步失败。
【发明内容】
[0009]本发明要解决的技术问题是提供一种能改善现有冗余切换方式在一个周期内同步数据无法发送完成造成数据同步错误/数据同步失败的基于数据同步的主备同步方法。
[0010]本发明要解决的技术问题是提供一种能改善由于冗余切换同步数据量大,周期时间短,造成数据同步失败或同步错误的基于数据同步的主备同步方法。
[0011]为解决上述技术问题,本发明提供的基于数据同步的主备同步方法,包括以下步骤:
[0012]I)设置主、备两系为互锁关系;
[0013]2)每个同步周期开始前,备系发送数据至主系;
[0014]3)主系判断接收到的备系数据是否同步,若不同步则输出不同步标志并发送同步数据至备系,若同步则输出同步标志并输出计算结果;
[0015]4)备系若接收到同步标志则输出同步标志并输出抢主标志,备系输出计算结果;
[0016]5)若备系收到不同步标志和主系发出的同步数据,则备系同步主系同步数据后输出不同步标志,并不输出结算结果。
[0017]本发明提供的另一种基于数据同步的主备同步方法,将需要同步的数据划分为安全数据和非安全数据。安全数据包括状态值及影响到安全的不能通过本周期的输入计算得到的值,例如一些状态量,时间及计数值;非安全数据包括中间临时变量,有延迟及容忍的值,例如可以通过状态量及输入计算得到的值,包括以下步骤:
[0018]I)设置主、备两系为互锁关系;
[0019]2)将数据根据预定义规则划分为安全数据和非安全数据;
[0020]3)每个同步周期开始前,备系发送安全数据和非安全数据至主系;
[0021]4)主系判断接收到的备系非安全数据是否在预设的容忍范围内,若超过容忍范围则输出不同步标志并发送同步数据至备系,若在容忍范围内则输出判断标志“是”;
[0022]5)主系判断接收到的备系安全数据是否与主系安全数据一致,若不一致则输出不同步标志并发送同步数据至备系,若一致则输出判断标志“是”;
[0023]6)将步骤4)和步骤5)的判断标志进行“与”关系判断,若为“真”则输出同步标志,若为“假”则输出不同步标志并发送同步数据至备系;
[0024]7)备系若接收到同步标志则输出同步标志并输出抢主标志,备系同时输出计算结果;
[0025]8)若备系收到不同步标志和主系发出的同步数据,则备系同步主系同步数据后输出不同步标志,并不输出计算结果。
[0026]本发明用于解决实时工业自动化控制领域中由于冗余切换同步数据量大,周期时间短,造成数据同步失败或同步错误的冗余切换问题。本发明提出了基于数据的主备同步方法,同步数据仅需在每周期的输出中选取,减少了数据量的大小。本发明在2乘结构中采用了相同的输入源,并且进行了表决,因此两系得到的输入都是正确的。但两系由于采用了跟随策略,也就是两系之间不要求任务级的严格同步,因此两系的输入是允许有时间差的,避免了随机故障产生的干扰。而备系在不同步时采用了主系过来的数据,加快了与主系的同步,从而大大提高了状态同步的效率。主备系同步状态下,由于主备系是同时输出计算结果,当主系发生故障时,主系切断输出,而备系处于抢主状态,将抢主成功,并将计算结果输出,从而缩减了切换的响应时间。
【专利附图】
【附图说明】
[0027]下面结合附图与【具体实施方式】对本发明作进一步详细的说明:
[0028]图1是一种典型的2乘2oo2系统结构示意图。
[0029]图2是一种现有主备系运行时序图。
[0030]图3是本发明第一实施例的示意图一。
[0031]图4是本发明第一实施例的示意图二。
[0032]图5是本发明第一实施例的示意图三。
[0033]图6是本发明第一实施例的示意图四。
[0034]图7是本发明第二实施例的示意图。
【具体实施方式】
[0035]参考图3所示,从系统的运行模式分为两个状态;一个是初始化状态;一个是运行状态。在初始化状态中,系统内部不运行业务逻辑而是将内部数据进行初始化,并将初始化的数据输出。
[0036]参考图4所示,在运行下的状态,系统内部的软件模块输入有本周期外部的输入,上周期的输出(包括状态值),其他模块的输出及内部的静态数据。
[0037]参考图5所示,从上面的分析可以看到基于数据的系统实现是依据本周期的外部输入和上周期的输出(包括了软件内部的状态值及计算值),从而计算出本周期的结果。
[0038]基于数据同步的主备系切换应该从软件设计阶段开始,图1-5是基于数据流的软件开发流程,说明了数据的分类。从图中可以看到数据其实可以分为三类:
[0039]静态数据:软件中自带的数据,这部分只要保证主备系软件是相同的数据版本,是不需要同步的;
[0040]输入数据:实时系统中每周期的输入数据,这部分是外部的输入,通过外部的表决机制可以保证主备系得到输入数据的一致性,因此也不需要同步;
[0041]输出数据:实时系统中每周期得输出数据,这部分是软件根据外部输入计算得到的,由于软件中处理的时机存在差异,且有些状态是连续的,因此这部分是同步数据的关键。
[0042]通过以上分析,同步数据的选择在于输出数据,包括内部的状态值,计算值。这部分数据经过详细分析,可以将一些仅需根据输入值就能得到数据排除在同步数据之外,而连续的状态值则是安全的同步数据,需要累计的计算值则是可以设置容忍的非安全同步数据。
[0043]参考图6所示,本发明第一实施例,包括一下步骤:
[0044]I)设置主、备两系为互锁关系;
[0045]2)每个同步周期开始前,备系发送数据至主系;
[0046]3)主系判断接收到的备系数据是否同步,若不同步则输出不同步标志并发送同步数据至备系,若同步则输出同步标志并输出计算结果;
[0047]4)备系若接收到同步标志则输出同步标志并输出抢主标志,备系同时输出计算结果;
[0048]5)若备系收到不同步标志和主系发出的同步数据,则备系同步主系同步数据后输出不同步标志,并不输出结算结果。
[0049]如图7所示,本发明提供的第二实施例,包括以下步骤:
[0050]I)设置主、备两系为互锁关系;
[0051]2)将数据根据预定义规则划分为安全数据和非安全数据;
[0052]安全数据包括状态值及影响到安全的不能通过本周期的输入计算得到的值,例如一些状态量,时间及计数值;非安全数据包括中间临时变量,有延迟及容忍的值,例如可以通过状态量及输入计算得到的值;
[0053]3)每个同步周期开始前,备系发送安全数据和非安全数据至主系;
[0054]4)主系判断接收到的备系非安全数据是否在预设的容忍范围内,若超过容忍范围则输出不同步标志并发送同步数据至备系,若在容忍范围内则输出判断标志“是”;
[0055]5)主系判断接收到的备系安全数据是否与主系安全数据一致,若不一致则输出不同步标志并发送同步数据至备系,若一致则输出判断标志“是”;
[0056]6)将步骤4)和步骤5)的判断标志进行“与”关系判断,若为“真”则输出同步标志,若为“假”则输出不同步标志并发送同步数据至备系;
[0057]7)备系若接收到同步标志则输出同步标志并输出抢主标志,备系同时输出计算结果;
[0058]8)若备系收到不同步标志和主系发出的同步数据,则备系同步主系同步数据后输出不同步标志,并不输出计算结果。
[0059]以上通过【具体实施方式】和实施例对本发明进行了详细的说明,但这些并非构成对本发明的限制。在不脱离本发明原理的情况下,本领域的技术人员还可做出许多变形和改进,这些也应视为本发明的保护范围。
【权利要求】
1.一种基于数据同步的主备同步方法,其特征是,包括以下步骤: 1)设置主、备两系为互锁关系; 2)每个同步周期开始前,备系发送数据至主系; 3)主系判断接收到的备系数据是否同步,若不同步则输出不同步标志并发送同步数据至备系,若同步则输出同步标志并输出计算结果; 4)备系若接收到同步标志则输出同步标志并输出抢主标志,备系同时输出计算结果; 5)若备系收到不同步标志和主系发出的同步数据,则备系同步主系同步数据后输出不冋步标志,并不输出计算结果。
2.一种基于数据同步的主备同步方法,其特征是,包括以下步骤: 1)设置主、备两系为互锁关系; 2)将数据根据预定义规则划分为安全数据和非安全数据; 3)每个同步周期开始前,备系发送安全数据和非安全数据至主系; 4)主系判断接收到的备系非安全数据是否在预设的容忍范围内,若超过容忍范围则输出不同步标志并发送同步数据至备系,若在容忍范围内则输出判断标志“是”; 5)主系判断接收到的备系安全数据是否与主系安全数据一致,若不一致则输出不同步标志并发送同步数据至备系,若一致则输出判断标志“是”; 6)将步骤4)和步骤5)的判断标志进行“与”关系判断,若为“真”则输出同步标志,若为“假”则输出不同步标志并发送同步数据至备系; 7)备系若接收到同步标志则输出同步标志并输出抢主标志,备系同时输出计算结果; 8)若备系收到不同步标志和主系发出的同步数据,则备系同步主系同步数据后输出不冋步标志,并不输出计算结果。
【文档编号】G06F11/20GK104360916SQ201410668432
【公开日】2015年2月18日 申请日期:2014年11月20日 优先权日:2014年11月20日
【发明者】王庆胜, 王军伟, 杜建新, 袁亮, 邱磊 申请人:上海富欣智能交通控制有限公司