一种数据同步方法及装置制造方法及图纸

技术编号:20841410 阅读:49 留言:0更新日期:2019-04-13 08:37
本申请公开了一种数据同步方法及装置,所述数据同步方法包括:将数据区划分为多个数据块;将任务划分为多个程序块,在相邻的程序块之间插入数据同步点;当任务运行至数据同步点时,执行主系统和备份系统之间的同步操作。本申请通过将数据区划分为数据块,将任务划分成程序块,在相邻的程序块之间插入数据同步点,执行同步操作时,主备系统可以只同步当前运行的程序块对应的数据块的数据,提高了数据同步的效率,进而减少了发生主备切换时的切换时长。

【技术实现步骤摘要】
一种数据同步方法及装置
本专利技术涉及但不限于通信
,尤其涉及一种数据同步方法及装置。
技术介绍
工业控制系统运行时,有些重要场合需要采用冗余系统的方式工作,即当一套系统工作时,另外一套系统作为备份系统,处于工作状态的系统的一些数据需要及时备份到备份系统(或称冗余系统)上。当正在工作的系统发生故障时,可以迅速切换到备份系统继续运行,从而实现整个控制系统的不间断运行,维持了系统的正常运行状态。系统在切换时,切换速度的快慢,是否无抖切换,是需要考虑的关键因素。目前,市场上的工业控制系统的产品的实现,大部分在同步数据时,采用系统运行时,定时同步全数据的方式,这种数据同步方法效率较低,导致发生切换时,切换的时间较长。
技术实现思路
本专利技术实施例提供了一种数据同步方法及装置,能够提高数据同步的效率进而减少主备切换时的切换时长。本专利技术实施例的技术方案是这样实现的:本专利技术实施例提供了一种数据同步方法,包括:将数据区划分为多个数据块;将任务划分为多个程序块,在相邻的程序块之间插入数据同步点;当任务运行至数据同步点时,执行主系统和备份系统之间的同步操作。在一实施例中,所述将数据区划分为多个数据块,包括:将所述数据区划分为系统数据区和用户数据区,将用户数据区划分为一个或多个任务数据区及一个全局数据区,将每个任务数据区划分为一个或多个程序块私有数据区及一个任务内全局数据区;将所述各个系统数据区、全局数据区、任务内全局数据区及程序块私有数据区划分为多个所述数据块。在一实施例中,所述程序块运行时,可访问其对应的所述程序块私有数据块、所述任务内全局数据区和所述全局数据区。在一实施例中,所述方法还包括:检测写数据的操作,标记写入的数据所在数据块待同步;所述执行主系统和备份系统之间的同步操作,包括:将所述主系统中标记为待同步的数据块的数据备份至所述备份系统,并标记所述数据块已同步。在一实施例中,所述程序块运行期间内不允许被除所述程序块之外的任务抢占。在另一实施例中,所述程序块运行期间内允许被比所述程序块优先级高的任务抢占。在一实施例中,所述方法还包括:当发生主备系统切换时,所述备份系统从最近一次执行所述同步操作的所述数据同步点之后的所述程序块开始运行。本专利技术实施例还提供了一种数据同步装置,包括划分模块和执行模块,其中:划分模块,用于将数据区划分为多个数据块,将任务划分为多个程序块,在相邻的程序块之间插入数据同步点;执行模块,用于当任务运行至数据同步点时,执行主系统和备份系统之间的同步操作。在一实施例中,所述划分模块的将数据区划分为多个数据块,包括:将所述数据区划分为系统数据区和用户数据区,将用户数据区划分为一个或多个任务数据区及一个全局数据区,将每个任务数据区划分为一个或多个程序块私有数据区及一个任务内全局数据区;将所述各个系统数据区、全局数据区、任务内全局数据区及程序块私有数据区划分为多个所述数据块。在一实施例中,所述程序块运行时,可访问其对应的所述程序块私有数据块、所述任务内全局数据区和所述全局数据区。在一实施例中,所述执行模块还用于:检测写数据的操作,标记写入的数据所在数据块待同步;当执行所述主系统和备份系统之间的同步操作时,将标记为待同步的数据块的数据备份至备份系统,并标记所述数据块已同步。在一实施例中,所述程序块运行期间内不允许被除所述程序块之外的任务抢占。在另一实施例中,所述程序块运行期间内允许被比所述程序块优先级高的任务抢占。在一实施例中,所述数据同步装置还包括切换模块,其中:当发生主备系统切换时,从最近一次执行所述同步操作的所述数据同步点之后的所述程序块开始运行。本专利技术实施例的技术方案,具有如下有益效果:本专利技术实施例提供的数据同步方法及装置,通过将数据区划分为数据块,将任务划分成程序块,在相邻的程序块之间插入数据同步点,执行同步操作时,主备系统可以只同步当前运行的程序块对应的数据块的数据,提高了数据同步的效率,进而减少了发生主备切换时的切换时长;进一步地,通过检测写数据操作,每次只同步数据发生变化的数据块,进一步减小了需要同步的数据量,从而缩短了数据同步的时间。附图说明此处所说明的附图用来提供对本专利技术的进一步理解,构成本申请的一部分,本专利技术的示意性实施例及其说明用于解释本专利技术,并不构成对本专利技术的不当限定。在附图中:图1为本专利技术实施例的一种数据同步方法的流程示意图;图2为本专利技术实施例的一种数据区的划分结构示意图;图3为本专利技术实施例的一种数据区内数据块和数据索引对应关系示意图;图4为本专利技术实施例的一种程序块对数据区的访问控制示意图;图5为本专利技术实施例的一种程序块和数据同步点的关系示意图;图6为本专利技术实施例的一种写数据到数据区的流程示意图;图7为本专利技术实施例的一种同步数据的流程示意图;图8为本专利技术实施例的一种任务切换流程示意图;图9为本专利技术实施例的另一种任务切换流程示意图;图10为本专利技术实施例的一种数据同步装置的结构示意图;图11为本专利技术实施例的另一种数据同步装置的结构示意图。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚明白,下文中将结合附图对本专利技术的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。如图1所示,根据本专利技术实施例的一种数据同步方法,包括:步骤101:将数据区划分为多个数据块;需要说明的是,本专利技术实施例的数据同步方法可以运行在主系统上,也可以运行在备份系统上。在本专利技术的一实施例中,所述将数据区划分为多个数据块,包括:将所述数据区划分为系统数据区和用户数据区,将用户数据区划分为一个或多个任务数据区及一个全局数据区,将每个任务数据区划分为一个或多个程序块私有数据区及一个任务内全局数据区;将所述各个系统数据区、全局数据区、任务内全局数据区及程序块私有数据区划分为多个所述数据块。如图2所示,将待同步的数据划分为两个区,系统数据区和用户数据区;用户数据区存储的是执行用户的逻辑程序时访问的数据,系统数据区存储的是控制器内部数据,即非用户数据区的数据;将用户数据区划分为任务数据区和全局数据区;任务数据区内的数据,分别属于每一个任务所有,每个任务仅能访问该任务所对应的数据区,全局数据区的数据每个任务都可以访问;每个任务数据区划分为任务内局部数据区和任务内全局数据区;将任务内局部数据区划分为一个或多个程序块私有数据区。其中,n和m均为大于或等于1的自然数。本专利技术实施例通过将数据区划分成多个层次后,一定时间间隔内数据的变化将集中在较小的地址范围内。如图3所示,将每个最小单位的数据区划分为多个数据块后,为每个数据块建立一个对应的索引值。步骤102:将任务划分为多个程序块,在相邻的程序块之间插入数据同步点;在本专利技术的一实施例中,所述任务包括系统任务和用户任务,所述系统任务为系统软件中定义的任务,所述用户任务为用户编写的逻辑程序中定义的任务。在本实施例的一示例中,所述用户任务为国际电工委员会(InternationalElectrotechnicalCommission,IEC)任务。IEC颁布了对可编程逻辑控制器(ProgrammableLogicController,PLC)的规定:可编程控制器是一种数字运算操作的电子系统,专为在工业环境下应用而设计。它采用一本文档来自技高网...

【技术保护点】
1.一种数据同步方法,其特征在于,包括:将数据区划分为多个数据块;将任务划分为多个程序块,在相邻的程序块之间插入数据同步点;当任务运行至数据同步点时,执行主系统和备份系统之间的同步操作。

【技术特征摘要】
1.一种数据同步方法,其特征在于,包括:将数据区划分为多个数据块;将任务划分为多个程序块,在相邻的程序块之间插入数据同步点;当任务运行至数据同步点时,执行主系统和备份系统之间的同步操作。2.根据权利要求1所述的数据同步方法,其特征在于,所述将数据区划分为多个数据块,包括:将所述数据区划分为系统数据区和用户数据区,将用户数据区划分为一个或多个任务数据区及一个全局数据区,将每个任务数据区划分为一个或多个程序块私有数据区及一个任务内全局数据区;将所述各个系统数据区、全局数据区、任务内全局数据区及程序块私有数据区划分为多个所述数据块。3.根据权利要求2所述的数据同步方法,其特征在于:所述程序块运行时,可访问其对应的所述程序块私有数据块、所述任务内全局数据区和所述全局数据区。4.根据权利要求1至3任意一项所述的数据同步方法,其特征在于,所述方法还包括:检测写数据的操作,标记写入的数据所在数据块待同步;所述执行主系统和备份系统之间的同步操作,包括:将所述主系统中标记为待同步的数据块的数据备份至所述备份系统,并标记所述数据块已同步。5.根据权利要求1至3中任意一项所述的数据同步方法,其特征在于,所述程序块运行期间内不允许被除所述程序块之外的任务...

【专利技术属性】
技术研发人员:王全利
申请(专利权)人:北京和利时系统工程有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1