CN115755573A - 一种用于2oo3冗余架构的工程下发、同步和切换的设计方法 - Google Patents
一种用于2oo3冗余架构的工程下发、同步和切换的设计方法 Download PDFInfo
- Publication number
- CN115755573A CN115755573A CN202310099113.0A CN202310099113A CN115755573A CN 115755573 A CN115755573 A CN 115755573A CN 202310099113 A CN202310099113 A CN 202310099113A CN 115755573 A CN115755573 A CN 115755573A
- Authority
- CN
- China
- Prior art keywords
- engineering
- file
- main control
- control module
- synchronization
- 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
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种用于2oo3冗余架构的工程下发、同步和切换的设计方法,包括步骤1:面向2oo3冗余架构的工程下发,步骤2:面向2oo3冗余结构的工程同步,步骤3:结合广播通知与外部中断的工程切换。在工程下发环节设计主控模块状态评价方法,基于模块工作状态精确选取一个主控模块用于接收工程;设计动态选取加密因子方法,实现加密传输,同时动态选取工程文件片段用于闭环校验。与现有技术相比,本发明在同步工程环节,设计并行存储解析机制,并基于抽象系统状态符号处理异常事件,提高工作效率以及简化异常事件处理难度。在工程切换环节,提出结合广播通知和外部中断的方式,实现了纳秒级别的精准同步切换,可显著降低切换时间误差,提高系统效率。
Description
技术领域
本发明涉及一种用于2oo3冗余架构的工程下发、同步和切换的设计方法,属于工业控制技术领域。
背景技术
在工业控制领域,为了提升控制系统的可靠性,往往采用冗余技术,根据冗余的模块是否参与控制,冗余技术可分为两大类:主备式冗余和并行表决冗余。在主备式冗余中,冗余模块不参与控制,可分为冷备、温备和热备。主备式冗余架构的控制系统多应用于基本过程控制系统中。在并行表决冗余中,冗余模块参与控制,互为冗余的模块同步运行,每个控制周期均交换表决输入数据和计算结果,最终产生唯一的控制输出。
针对采用2oo3冗余架构的控制系统主控模块,设计一种校验充分且具有高效异常处理能力的工程下装方法。2oo3冗余架构是一种并行表决冗余方法,三系冗余模块同时运算,通过表决后实现唯一输出。这种冗余架构是一种典型的安全仪表系统设计方案,采用2oo3冗余架构的安全仪表系统可满足IEC61508国际标准对SIL3级安全完整性的要求。在工业控制系统中,用户利用IEC 61131组态软件在上位机将工程文件组态完成后,将其下发到主控模块中执行。由于2oo3冗余架构中存在三系主控,在执行运算之前三个主控模块需同步工程,并同时切换使用新工程,因此工程下装分为工程下发、同步和切换三个环节。针对三系冗余架构的工程下装目前存在多种解决方案,已有方案普遍存在着校验不足,异常处理复杂或系统效率低等问题。
现有技术一的技术方案:IEC 61131组态软件将工程同时下发给三个主控模块,在下发过程中,三系同时存储并处理工程文件,三系均通信正常,则认为整体下发成功。下发成功后,三系主控模块同步工程处理状态,均处理成功后,广播切换使用新工程。现有技术一的缺点是由于IEC 61131组态软件将工程同时下发给三个主控模块,当出现异常情况时(如通信中断,数据内容错误等),IEC 61131组态软件和三个主控模块均需进行异常处理,导致系统异常处理复杂。下发过程出错后,IEC 61131组态软件与三个主控模块的通信均需重试或者重新开始,下发效率将显著降低。下发环节的校验往往仅限于通信过程的校验(如CRC,序号和地址等),对工程文件的内容缺乏闭环检查,即下发的工程文件有可能被第三方篡改,存在安全隐患。依靠广播通知实现切换,三个主控模块的切换时间误差大,一般为ms级。
现有技术二的技术方案:IEC 61131组态软件选择一个主控模块,并将工程文件下发给此模块。在下发过程中,被选择的主控模块将工程同步给其它两个主控模块。被同步的主控模块,接收同步过来的工程文件存储并解析。下发、同步且解析成功后,三主控模块广播切换使用新工程文件。现有技术二的缺点是由于在下发过程中进行同步,当出现异常情况时(如通信中断,数据内容错误等),IEC 61131组态软件和三个主控模块均需进行异常处理,导致系统异常处理复杂,效率降低。
发明内容
本发明的技术目的在于提供一种用于2oo3冗余架构的工程下发、同步和切换的设计方法,该方法实现充分校验以及高效异常处理。工程下发、同步和切换是控制系统工程下装的三个主要环节。
在工程下发环节可以基于模块工作状态精确选取一个主控模块用于接收工程;设计动态选取加密因子方法,实现加密传输,同时动态选取工程文件片段用于闭环校验。与现有技术相比,上述方法可在工程下发时丰富校验手段,提升控制系统的安全性和效率。在同步工程环节,设计并行存储解析机制,并基于抽象系统状态符号处理异常事件。与现有技术相比,这些措施可提高工作效率以及简化异常事件处理难度。在工程切换环节,本发明提出结合广播通知和外部中断的方式,实现了纳秒级别的精准同步切换。现有技术仅通过广播通知进行同步切换,切换时间为ms级,可显著降低切换时间误差,提高系统效率。
本发明采用的技术方案为一种用于2oo3冗余架构的工程下发、同步和切换的设计方法,包括步骤1:面向2oo3冗余架构的工程下发,步骤2:面向2oo3冗余架构的工程同步,步骤3:结合广播通知与外部中断的工程切换。
所述步骤1包括以下步骤:
步骤1.1、状态分数优先的主控模块选择;
2oo3冗余架构控制系统中包括3系冗余主控模块,用户在上位机利用IEC 61131组态软件完成工程组态后启动工程文件的下发,控制系统根据状态分数优先原则选择首先下发工程文件的一个目标主控模块,再由该目标主控模块在工程同步阶段将工程文件同步至3系冗余主控模块的其他两个目标主控模块。具体步骤如下:
步骤1.1.1 确定与下发工程文件相关的主控模块功能项及功能状态;
目标主控模块与下发工程文件相关的功能项有对外通信功能、主控通信A、主控通信B、I/O通信功能、工程存储功能、日记记录功能。对上述主控模块的功能项状态分为正常状态、异常状态和异常恢复状态;
步骤1.1.2 对步骤1.1.1确定的主控模块功能项,根据重要程度分配权重。
步骤1.1.3 计算每个主控模块的工作状态分数。
工作状态分数由三系主控模块各个功能项权重和相应功能项状态得分相乘再加和得到。各个功能项状态的权重之和为100分,功能项状态得分取值分布在0到1之间:处于正常状态时得分为1,处于异常状态时得分为0,处于异常恢复状态时以恢复进程赋分,即恢复进程为60%,则赋分0.6。
步骤1.1.4 确定首先下发工程文件的目标主控模块;
结合工作状态分数、槽号和最近一次选取结果,确定本次下发工程文件的目标主控模块选取结果;若三系主控的状态分数相等则以最近一次选择结果为基础,依照槽号顺序循环选择;若状态分数不相等,则优先选择状态分数最高的主控模块,作为首先下发工程文件的目标主控模块。
步骤1.2、工程文件加密;
工程文件在进行传输之前,基于TCP/IP协议设计自定义加密算法,用于保证2oo3冗余架构控制系统信息安全以及后续进行工程文件校验。
步骤1.2.1:以字节为单位,首先对工程文件的数据进行比特翻转;
步骤1.2.2:通过Hash算法确定加密因子索引表;
步骤1.2.3:将步骤1.2.1中的翻转数据与步骤1.2.2中的加密因子索引表进行异或操作;加密因子索引表由通信双方的MAC地址、端口号、私有协议版本和自定义数据等信息以一定的规则组成,加密因子索引表及加密步骤等信息不随工程文件一同发送。步骤1.2.4、发送当前加密信息,重复步骤1.2.1直至完成加密。
上述操作中加密因子及索引的运算流程如下:
步骤1.2.2.1:通信双方的MAC地址、端口号、私有协议版本等信息组成非自定义数据集Z1,随机生成自定义数据集Z2,数据集Z1以及数据集Z2共同形成待选数据集Zd,Zd={Z1,Z2}。
步骤1.2.2.2:确定加密因子的个数n:以工程文件中连续相同数值的最大数目为基础,加密因子个数选为上述最大数目的2倍,最少16个,最多32个。
步骤1.2.2.3:基于Hash算法得出不同加密因子的索引值m,取值为0~n-1: m=n -(文件数据索引值%加密因子个数)-1;
步骤1.2.2.4:根据加密因子的个数n在数据集Z1和数据集Z2中按1:1比例选取加密因子A,A={A1,A2},其中A1为从Z1中选取的数据,A2为从Z2中选取的数据;当n为偶数时两者选取同等数量的数据,若n为奇数时则在Z1中多选一个数据;
步骤1.2.2.5、由索引值与加密因子数据集一起形成加密因子索引表。
步骤1.3、工程文件自适应压缩;
为实现快速传输,本发明设计了基于复杂度的工程文件自适应压缩算法,利用该算法对下发文件进行压缩以备下发。具体步骤如下:
步骤1.3.1 计算工程文件大小及复杂度;
IEC 61131组态软件在编译生成工程文件后,首先计算工程文件大小和复杂度。工程文件复杂度定义为连续相同数值的长度占文件大小的比例;
步骤1.3.2 决定是否执行压缩;
确定复杂度的阈值,当工程文件的复杂度超出阈值时,则执行步骤1.3.3,否则直接执行工程文件下发,执行步骤1.4。
步骤1.3.3 工程文件压缩;
对于工程文件复杂度超出阈值的工程文件,执行分包压缩。如果一个工程文件未压缩前需分10包进行传输,则当其复杂度大于10%时,压缩后可能分9包即可完成传输,复杂度阈值选为理论值的2倍,即20%。
步骤1.4、工程文件下发;
进行工程文件下发,IEC 61131组态软件将经过自适应压缩和加密的工程文件传输给选定的目标主控模块。
步骤1.5、结合动态校验片段及校验码的工程文件校验;
所有工程文件或压缩包分包传输完成后,由IEC 61131组态软件执行工程文件校验功能,回读确认全部无误后,发送确认成功通知。为了兼顾信息完整性、安全性和效率,本发明提出了结合动态校验片段及校验码的文件校验方法。具体步骤如下:
步骤1.5.1 确定动态校验片段;
根据MD5校验码和文件大小在工程文件中选取32字节的文件片段。校验文件片段的起始地址为:文件MD5校验码%文件大小,字节不够时,从文件头补齐。
步骤1.5.2 确定全部校验信息;
在步骤1.5.1中形成的动态校验文件与MD5校验码结合在一起形成全部校验信息。
步骤1.5.3 比对校验;
IEC 61131组态软件对步骤1.5.2中的全部校验信息逐项比对。若校验有误发送校验失败通知,从步骤1.2开始重新执行。若全部比对均正确则执行步骤1.5.4。
步骤1.5.4 发送确认通知;
IEC 61131组态软件对所有校验信息比对确认全部无误后,发送确认成功通知。至此,接收下发工程的目标主控正确接收了工程文件,进入工程文件的同步环节。
步骤2,面向2oo3冗余架构的工程文件同步,包括以下步骤:
步骤2.1、工程文件并行存储解析;
被选中的主控模块等待工程文件下发确认无误后,开始向其它两个主控模块同步。为了提高工作效率,设计工程文件并行存储解析方法,当工程文件被压缩成多个数据包传输时,被同步的主控对不同数据包的解析和存储可并行进行。具体步骤如下:
步骤2.1.1:工程文件分多包传输(见步骤1.3)完毕后,为了完成同步,状态管理任务监视下装是否成功,成功后,通知同步任务接收工程文件。
步骤2.1.2:同步任务每接收到一包工程文件的数据,通知文件管理任务将接收到的工程文件数据存储到Flash中。
步骤2.1.3:同步任务每接收完一个工程文件,通知配置任务解析此工程文件。
步骤2.1.4:循环执行步骤2.1.2和步骤2.1.3,直至接收并处理完所有的工程文件,同步过程结束。
由上述步骤可见,当工程文件被压缩成多个数据包传输时,被同步的主控对不同数据包的解析和存储可并行进行,提高了处理效率。
步骤2.2、基于系统状态抽象的异常处理;
在工程文件的同步过程中,被同步的主控模块可能发生多种异常情况,本发明设计了基于状态抽象的异常处理方法,可以降低异常处理复杂性,提高系统运算效率,具体步骤如下:
步骤2.2.1 抽象主控模块工作状态;
将主控模块的工作状态抽象为上电P、离线O、旁路S和工作W四种状态,其中上电P代表上电初始化,离线O代表未上电或者工作异常,旁路S代表初始化完成,无有效工程,工作W代表初始化完成且工程有效。
步骤2.2.2 确定当前系统工作状态;
2oo3冗余系统的状态由三个主控模块的工作状态组成:本系-前系-后系。在步骤1.1中被选中下装工程的主控模块为本系主控,两个需要同步的主控模块分别为前系主控和后系主控,槽位编号为本系的槽位号循环减1为前系,循环加1为后系。如果全为工作状态即W,则2oo3冗余系统状态为W-W-W。
步骤2.2.3 执行工程文件同步并更新系统状态;
由本系主控向前系主控、后系主控同步在步骤1中接收的工程文件,并同步更新2oo3冗余系统状态。在同步过程中,无论任何原因导致被同步的主控模块无法正常工作,则其状态转换为离线即O,2oo3冗余系统状态同步更新,发起同步的主控模块复位相关信息。
若在同步过程中新插入一个主控模块,为避免频繁拔插主控模块引起频繁同步,导致当前下装操作无法正常完成,此主控模块的工作状态停留在上电P,发起同步的主控模块不对其同步。新上电的主控模块一直等待,直至本次下装完成,其状态转换为旁路S,才能被同步。
可见,本发明提出的2oo3冗余系统及主控模块状态抽象方法,可以降低现有技术对同步异常处理的复杂处理流程,简洁、高效,特别是对于现有技术因频繁插拔主控模块引起的异常处理困境,因此可降低处理难度,提高控制系统稳定性。
步骤3,面向2oo3冗余系统的工程切换,包括以下步骤:
在本系主控将所接受的工程文件同步给前系、后系主控后,进入工程切换步骤,三系主控同时切换执行新工程文件。为了提高切换效率,本发明设计了结合广播通知与外部中断的工程切换方法,包括以下步骤:
步骤3.1:本系主控模块计算切换时间并广播给其它两个主控模块;
步骤3.2:三个主控模块均等待直至切换时间到,分别设置切换信号为1,当三个切换信号均为1时,外部中断信号变为1,最终同时触发三个主控模块的外部中断;
步骤3.3:主控模块在上述外部中断的响应中切换工程后,将切换信号清零,完成切换。
与现有技术相比较,本发明用于2oo3冗余系统的工程下发、同步和切换的设计方法。
在下发工程环节,通过将工程下发到被选取的一个主控模块,显著降低了异常处理的复杂度;通过动态选取加密因子实现了加密传输,增强了工程文件的信息安全;通过基于复杂度的工程文件压缩传输方法,提高2oo3冗余系统传输效率,为同步环节并行操作提供基础,通过动态选取文件片段用于文件校验,在兼顾安全和效率的情况下,丰富了闭环校验内容,提升了系统安全性。通过结合广播通知与外部中断的工程切换方法,提高了系统工作效率。在同步工程环节,通过并行存储并解析工程文件机制,显著提升了处理效率;通过基于系统状态抽象的异常处理机制,降低了异常处理的复杂度,提高了系统安全性。
在切换工程环节,通过广播切换时间和外部中断结合的方式,实现了三个主控模块的精确同步切换,显著降低了切换时间误差。
本发明在保证效率和安全的情况下,降低了三系冗余系统异常处理的复杂度,丰富了校验内容,提高了控制站工程下装功能可靠性和精确性。
附图说明
图1为本发明用于2oo3冗余架构的工程下发、同步和切换的设计方法的工程下装流程图。
图2为本发明用于2oo3冗余架构的工程下发、同步和切换的设计方法实施示意图。
图3为本发明用于2oo3冗余架构的工程下发、同步和切换的设计方法工程文件压缩处理示意图。
图4为本发明用于2oo3冗余架构的工程下发、同步和切换的设计方法工程文件并行存储解析流程图。
图5为本发明用于2oo3冗余架构的工程下发、同步和切换的设计方法异常处理流程图。
图6为本发明用于2oo3冗余架构的工程下发、同步和切换的设计方法新加入模块的异常处理流程图。
图7为本发明用于2oo3冗余架构的工程下发、同步和切换的设计方法2oo3系统高速工程切换方法。
具体实施方式
以下结合附图对本发明作进一步详细描述。
如图1至图7所示,用于2oo3冗余架构的工程下发、同步和切换的设计方法包括:
下发工程,同步工程和切换工程,其中工程由多个工程文件组成,每个工程文件至少64字节。本发明用于2oo3冗余架构的工程下发、同步和切换的设计方法的文件流和命令流如图1所示,首先选择一个主控模块,由IEC 61131组态软件将工程所包含的工程文件逐个下发给主控;被选中的主控模块每接收完一个工程文件,便将其存储到Flash中并解析此文件。所有工程文件下发完成后,组态软件回读工程信息以完成闭环校验,经校验确认无误后,通知主控模块。主控模块接到通知后,与其他两个冗余模块同步工程,同步完成后三系主控同时切换工程。下装期间如果发生异常,组态软件显示错误信息,用户据此排除异常后,可重新尝试下装。
步骤S1 工程下发;
步骤S2 工程同步;
步骤S3 工程切换;
在上述三个步骤中,IEC 61131组态软件通过以太网连接控制站,由用户触发下装操作,控制站内的主控模块完成工程接收,同步和切换功能,具体如图2所示,图2符号说明如下:
①下发工程,IEC 61131组态软件选取了主控1;②同步工程,主控1将工程分别同步给主控2和主控3;③切换工程,主控1通过广播和中断结合的方式切换工程。
实施方式的工程下发(步骤S1)还包括以下步骤:
S11 按照状态分数优先的原则选择首先下发的主控模块。
S12 对工程文件加密;
S13 对工程文件进行自适应压缩,程序流程如图3所示。
S14 将处理好的工程文件下发到选定的主控模块中;
S15 结合动态校验片段及校验码的工程文件校验;
实施方式的按照状态分数优先的原则选择首先下发的主控模块(S11)还包括如下步骤:
S111 确定与下发工程文件相关的主控模块功能项及功能状态。
主控模块与下发工程文件相关的功能项有对外通信功能、主控通信A、主控通信B、I/O通信功能、工程存储功能、日记记录功能。对上述主控模块的功能项状态分为正常状态、异常状态和异常恢复状态;
S112 根据重要程度对S111中的功能项分配权重。
对与工程下装相关的主控模块功能,根据功能的重要程度分配权重,各个功能项权重之和为100分。
S113 计算每个主控模块的工作状态分数。
工作状态分数由当前主控模块各个功能项状态所占权重和相应功能项状态得分相乘再加和得到。各个功能项状态的权重之和为100,功能项状态得分取值分布在0到1之间:处于正常状态时得分为1,处于异常状态时得分为0,处于异常恢复状态时以恢复进程赋分,例如恢复进程为60%,则赋分0.6。
模块状态分数赋值示例如表1。
注1:— 表示不适用。
S114 确定首先下发工程文件的目标主控模块。
结合工作状态分数、槽号和最近一次选取结果,确定本次下发工程文件的目标主控模块;若状态分数相等则以最近一次选择结果为基础,依照槽号顺序循环选择;若状态分数不相等,则优先选择状态分数最高的目标主控模块,作为首先下发工程文件的目标主控模块。
具体示例如表2:
注2:* 表示任意值。
实施方式的对工程文件加密(步骤S12)还包括如下步骤:
步骤S121:以字节为单位,首先对工程文件的数据进行比特翻转;
步骤S122:通过Hash算法确定加密因子索引表;
步骤S123:将步骤S121中的翻转数据与步骤S122中的加密因子索引表进行异或操作;加密因子索引表由通信双方的MAC地址、端口号、私有协议版本和自定义数据等信息以一定的规则组成,加密因子索引表及加密步骤等信息不随工程文件一同发送。通信双方的信息示例如表3所示,其中自定义数据的个数和内容仅为举例说明,非实际使用的数值。
通信双方的MAC地址、端口号、私有协议版本等信息组成非自定义数据集Z1,随机生成自定义数据集Z2,数据集Z1以及数据集Z2共同形成待选数据集Zd,Zd={Z1, Z2}。
步骤S1222:确定加密因子的个数n:以工程文件中连续相同数值的最大数目为基础,加密因子个数选为上述最大数目的2倍,最少16个,最多32个。
步骤S1223:基于Hash算法得出不同加密因子的索引值m,取值为0~n-1: m=n -(文件数据索引值%加密因子个数)-1;
步骤S1224:根据加密因子的个数n在数据集Z1和数据集Z2中按1:1比例选取加密因子A,A={A1,A2},其中A1为从Z1中选取的数据,A2为从Z2中选取的数据;当n为偶数时两者选取同等数量的数据,若n为奇数时则在Z1中多选一个数据;
步骤S1225:由索引值与加密因子数据集一起形成加密因子索引表,如表4所示。
上述算法加密过程数据及最终结果示例如表5所示。
实施方式的对工程文件进行自适应压缩(步骤S13)还包括如下步骤:
步骤S131 计算工程文件大小及复杂度;
IEC 61131组态软件在编译生成工程文件后,首先计算工程文件大小和复杂度。工程文件复杂度定义为连续相同数值的长度占文件大小的比例;
步骤S132 决定是否执行压缩;
确定复杂度的阈值,当工程文件的复杂度超出阈值时,则执行步骤S133,否则直接执行S14。
步骤S133 工程文件压缩;
对于工程文件复杂度超出阈值的工程文件,执行分包压缩。如果一个工程文件未压缩前需分10包进行传输,则当其复杂度大于10%时,压缩后可能分9包即可完成传输,复杂度阈值选为理论值的2倍,即20%。
实施方式的结合动态校验片段及校验码的工程文件校验(S15)还包括如下步骤:
步骤S151 确定动态校验片段;
根据MD5校验码和文件大小在工程文件中选取32字节的文件片段。校验文件片段的起始地址为:文件MD5校验码%文件大小,字节不够时,从文件头补齐。
步骤S152 确定全部校验信息;
在步骤S151中形成的动态校验文件与MD5校验码结合在一起形成全部校验信息,具体校验信息及说明如表6所示。
步骤S153 比对校验;
IEC 61131组态软件对所有校验信息逐项比对。若校验有误发送校验失败通知,从步骤S152开始重新执行。若全部比对均正确则执行步骤S154。
步骤S154 发送确认通知;
IEC 61131组态软件对所有校验信息比对确认全部无误后,发送确认成功通知。至此,接收下发工程的目标主控正确接收了工程文件,进入工程文件的同步环节。
实施方式的工程同步(S2)还包括如下步骤:
步骤S21 工程文件并行存储解析;
被选中的主控模块等待工程文件下发确认无误后,开始向其它两个主控模块同步。为了提高工作效率,设计工程文件并行存储解析方法,当工程文件被压缩成多个数据包传输时,被同步的主控对不同数据包的解析和存储可并行进行。
步骤S22 基于系统状态抽象的异常处理;
在同步过程中,被同步的主控模块可能发生多种异常情况,此时进入异常处理环节。
实施方式的工程文件并行存储解析(步骤S21)还包括如下步骤:
步骤S211:工程文件分多包传输后(见步骤S13),为了完成同步,状态管理任务监视下装是否成功,成功后,通知同步任务接收工程文件。
步骤S212:同步任务每接收到一包工程文件数据,便通知文件管理任务将接收到的文件数据存储到Flash中。
步骤S213:同步任务每接收完一个工程文件,便通知配置任务解析此工程文件。
步骤S214:循环执行步骤S212和步骤S213,直至接收并处理完所有的工程文件,同步过程结束。
实施方式的基于系统状态抽象的异常处理(S22)还包括如下步骤:
步骤S221 抽象主控模块工作状态;
将主控模块的工作状态抽象为上电P、离线O、旁路S和工作W四种状态,其中上电P代表上电初始化,离线O代表未上电或者工作异常,旁路S代表初始化完成,无有效工程,工作W代表初始化完成且工程有效。
步骤S222 确定当前系统工作状态;
2oo3冗余系统的状态由三个主控模块的工作状态组成:本系-前系-后系。在步骤S11中被选中下装工程的主控模块为本系主控,两个需要同步的主控模块分别为前系主控和后系主控,槽位编号为本系的槽位号循环减1为前系,循环加1为后系。如果全为工作状态即W,则2oo3冗余系统状态为W-W-W。
步骤S223 执行工程文件同步并更新系统状态;
由本系主控向前系主控、后系主控同步在步骤1中接收的工程文件,并同步更新2oo3冗余系统状态。在同步过程中,无论任何原因导致被同步的主控模块无法正常工作,则其状态转换为离线即O,2oo3冗余系统状态同步更新,发起同步的主控模块复位相关信息。以2oo3冗余系统初始状态为S-S-S为例进行说明该步骤。以系统初始状态为S-S-S为例进行说明该步骤,如图5所示。
若在同步过程中新插入一个主控模块,为了避免频繁拔插主控模块引起频繁同步,导致当前下装操作无法正常完成,此主控模块的工作状态停留在上电P,发起同步的主控模块不对其同步。新上电的主控模块一直等待,直至本次下装完成,其状态转换为旁路S,才能被同步。以2oo3冗余系统状态为S-S-O为例进行说明,如图6所示。
实施方式的工程切换(S3)还包括如下步骤:
步骤S31:本系主控模块计算切换时间并广播给其它两个主控模块;
步骤S32:三个主控模块均等待直至切换时间到,分别设置切换信号为1,三个切换信号均为1时,外部中断信号变为1,最终同时触发三个主控模块的外部中断;
步骤S33:主控模块在上述外部中断的响应中切换工程后,将切换信号清零,完成切换。
本发明的技术关键点如下:
异常状态评分优先的主控模块选取方法:引入异常恢复状态并考虑其恢复程度对待选主控模块进行评分,结合最近一次选取结果和主控槽号,实现了下装目标主控的精确选取。
针对工程文件的加密算法:根据文件内容,组合选取通信双方信息和自定义信息作为加密因子,使得不同通信对象、不同工程和不同工程文件的加密因子各不相同,增强了工程文件的信息安全。
基于复杂度的工程文件自适应压缩算法:下发工程文件时,根据工程文件大小和复杂度动态选择是否压缩,提升了传输效率。
结合动态校验片段及校验码的工程文件校验方法:回读校验时,针对每个工程文件,在校验码的基础上,动态选取文件片段,增强了校验的有效性。
基于状态抽象的异常处理方法:同步工程时,通过抽象主控模块和系统状态,简洁可靠的处理了各种异常情况。
结合广播通知与外部中断的工程切换方法:通过广播通知和外部中断相结合的方式,精确实现了三个主控模块的同步切换,显著降低了切换时间误差,提高了系统效率。
最后应说明的是:以上实施例仅说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (8)
1.一种用于2oo3冗余架构的工程下发、同步和切换的设计方法,其特征在于,包括如下步骤:步骤1:面向2oo3冗余架构的工程下发,步骤2:面向2oo3冗余架构的工程同步,步骤3:面向2oo3冗余架构的工程切换,结合广播通知与外部中断;
所述步骤1中包括,步骤1.1、状态分数优先的主控模块选择;
2oo3冗余架构控制系统中包括3系冗余主控模块,用户在上位机利用IEC 61131组态软件完成工程组态后启动工程文件的下发,2oo3冗余架构控制系统根据状态分数优先原则选择首先下发工程文件的一个目标主控模块,再由该目标主控模块在工程同步阶段将工程文件同步至3系冗余主控模块的其他两个目标主控模块;
步骤1.2、工程文件加密;
工程文件在进行传输之前,基于TCP/IP协议设计自定义加密算法,用于保证2oo3冗余架构控制系统信息安全以及后续进行工程文件校验;
步骤1.3、工程文件自适应压缩;
基于复杂度的工程文件自适应压缩算法,利用该算法对下发文件进行压缩以备下发;
步骤1.4、工程文件下发;
进行工程文件下发,IEC 61131组态软件将经过自适应压缩和加密的工程文件传输给选定的目标主控模块;
步骤1.5、结合动态校验片段及校验码的工程文件校验;
所有工程文件或压缩包分包传输完成后,由IEC 61131组态软件执行工程文件校验功能,回读确认全部无误后,发送确认成功通知;
步骤2,面向2oo3冗余架构的工程文件同步,包括以下步骤:
步骤2.1、工程文件并行存储解析;
被选中的主控模块等待工程文件下发确认无误后,开始向其它两个主控模块同步;设计工程文件并行存储解析方法,当工程文件被压缩成多个数据包传输时,被同步的主控模块对不同数据包的解析和存储并行进行;
步骤2.2、基于系统状态抽象的异常处理;
在工程文件的同步过程中,基于状态抽象的异常处理方法,降低异常处理复杂性,提高2oo3冗余架构控制系统运算效率;
步骤3,面向2oo3冗余架构的工程切换,包括以下步骤:
在本系主控将所接收的工程文件同步给前系、后系主控后,进入工程切换步骤,三系主控同时切换执行新工程文件,包括以下步骤:
步骤3.1:本系主控计算切换时间并广播给其它两个主控模块;
步骤3.2:三个主控模块均等待直至切换时间到,分别设置切换信号为1,当三个切换信号均为1时,外部中断信号变为1,最终同时触发三个主控模块的外部中断;
步骤3.3:主控模块在上述外部中断的响应中切换工程后,将切换信号清零,完成切换。
2.根据权利要求1所述的一种用于2oo3冗余架构的工程下发、同步和切换的设计方法,其特征在于,步骤1.1的具体步骤如下,
步骤1.1.1 确定与下发工程文件相关的主控模块功能项及功能状态;
目标主控模块与下发工程文件相关的功能项有对外通信功能、主控通信A、主控通信B、I/O通信功能、工程存储功能、日记记录功能;对上述主控模块的功能项状态分为正常状态、异常状态和异常恢复状态;
步骤1.1.2 对步骤1.1.1确定的主控模块功能项,根据重要程度分配权重;
步骤1.1.3 计算每个主控模块的工作状态分数;
工作状态分数由三系主控模块各个功能项权重和相应功能项状态得分相乘再加和得到;各个功能项状态的权重之和为100分,功能项状态得分取值分布在0到1之间:处于正常状态时得分为1,处于异常状态时得分为0,处于异常恢复状态时以恢复进程赋分,即恢复进程为60%,则赋分0.6;
步骤1.1.4 确定首先下发工程文件的目标主控模块;
结合工作状态分数、槽号和最近一次选取结果,确定本次下发工程文件的目标主控模块选取结果;若三系主控的状态分数相等则以最近一次选择结果为基础,依照槽号顺序循环选择;若状态分数不相等,则优先选择状态分数最高的主控模块,作为首先下发工程文件的目标主控模块。
3.根据权利要求1所述的一种用于2oo3冗余架构的工程下发、同步和切换的设计方法,其特征在于,步骤1.2的具体步骤如下,步骤1.2.1:以字节为单位,首先对工程文件的数据进行比特翻转;
步骤1.2.2:通过Hash算法确定加密因子索引表;
步骤1.2.3:将步骤1.2.1中的翻转数据与步骤1.2.2中的加密因子索引表进行异或操作;加密因子索引表由通信双方的MAC地址、端口号、私有协议版本和自定义数据信息以一定的规则组成,加密因子索引表及加密步骤信息不随工程文件一同发送;
步骤1.2.4、发送当前加密信息,重复步骤1.2.1直至完成加密。
4.根据权利要求3所述的一种用于2oo3冗余架构的工程下发、同步和切换的设计方法,其特征在于,步骤1.2.2的中加密因子及索引的运算流程如下:
步骤1.2.2.1:通信双方的MAC地址、端口号、私有协议版本信息组成非自定义数据集Z1,随机生成自定义数据集Z2,数据集Z1以及数据集Z2共同形成待选数据集Zd,Zd={Z1, Z2};
步骤1.2.2.2:确定加密因子的个数n:以工程文件中连续相同数值的最大数目为基础,加密因子个数选为上述最大数目的2倍,最少16个,最多32个;
步骤1.2.2.3:基于Hash算法得出不同加密因子的索引值m,取值为0~n-1:m=n -(文件数据索引值%加密因子个数)-1;
步骤1.2.2.4:根据加密因子的个数n在数据集Z1和数据集Z2中按1:1比例选取加密因子A,A={A1,A2},其中A1为从Z1中选取的数据,A2为从Z2中选取的数据;当n为偶数时两者选取同等数量的数据,若n为奇数时则在Z1中多选一个数据;
步骤1.2.2.5、由索引值与加密因子数据集一起形成加密因子索引表。
5.根据权利要求1所述的一种用于2oo3冗余架构的工程下发、同步和切换的设计方法,其特征在于,步骤1.3的具体步骤如下,具体步骤如下:
步骤1.3.1 计算工程文件大小及复杂度;
IEC 61131组态软件在编译生成工程文件后,首先计算工程文件大小和复杂度;工程文件复杂度定义为连续相同数值的长度占文件大小的比例;
步骤1.3.2 决定是否执行压缩;
确定复杂度的阈值,当工程文件的复杂度超出阈值时,则执行步骤1.3.3,否则直接执行工程文件下发,执行步骤1.4;
步骤1.3.3 工程文件压缩;
对于工程文件复杂度超出阈值的工程文件,执行分包压缩;如果一个工程文件未压缩前需分10包进行传输,则当其复杂度大于10%时,压缩后可能分9包即可完成传输,复杂度阈值选为理论值的2倍,即20%。
6.根据权利要求1所述的一种用于2oo3冗余架构的工程下发、同步和切换的设计方法,其特征在于,步骤1.5的具体步骤如下,步骤1.5.1 确定动态校验片段;
根据MD5校验码和文件大小在工程文件中选取32字节的文件片段;校验文件片段的起始地址为:文件MD5校验码%文件大小,字节不够时,从文件头补齐;
步骤1.5.2 确定全部校验信息;
在步骤1.5.1中形成的动态校验文件与MD5校验码结合在一起形成全部校验信息;
步骤1.5.3 比对校验;
IEC 61131组态软件对步骤1.5.2中的全部校验信息逐项比对;若校验有误发送校验失败通知,从步骤1.2开始重新执行;若全部比对均正确则执行步骤1.5.4;
步骤1.5.4 发送确认通知;
IEC 61131组态软件对所有校验信息比对确认全部无误后,发送确认成功通知;至此,接收下发工程的目标主控正确接收了工程文件,进入工程文件的同步环节。
7.根据权利要求1所述的一种用于2oo3冗余架构的工程下发、同步和切换的设计方法,其特征在于,步骤2.1的具体步骤如下,
步骤2.1.1:工程文件分多包传输完毕后,为了完成同步,状态管理任务监视下装是否成功,成功后,通知同步任务接收工程文件;
步骤2.1.2:同步任务每接收到一包工程文件的数据,通知文件管理任务将接收到的工程文件数据存储到Flash中;
步骤2.1.3:同步任务每接收完一个工程文件,通知配置任务解析此工程文件;
步骤2.1.4:循环执行步骤2.1.2和步骤2.1.3,直至接收并处理完所有的工程文件,同步过程结束;
当工程文件被压缩成多个数据包传输时,被同步的主控对不同数据包的解析和存储并行进行。
8.根据权利要求1所述的一种用于2oo3冗余架构的工程下发、同步和切换的设计方法,其特征在于,步骤2.2的具体步骤如下,步骤2.2.1 抽象主控模块工作状态;
将主控模块的工作状态抽象为上电P、离线O、旁路S和工作W四种状态,其中上电P代表上电初始化;离线O代表未上电或者工作异常;旁路S代表初始化完成,无有效工程;工作W代表初始化完成且工程有效;
步骤2.2.2 确定当前工作状态;
2oo3冗余架构的状态由三个主控模块的工作状态组成:本系-前系-后系;在步骤1.1中被选中下装工程的主控模块为本系主控,两个需要同步的主控模块分别为前系主控和后系主控,槽位编号为本系的槽位号循环减1为前系,循环加1为后系;
步骤2.2.3 执行工程文件同步并更新系统状态;
由本系主控向前系主控、后系主控同步在步骤1中接收的工程文件,并同步更新2oo3冗余系统状态;在同步过程中,无论任何原因导致被同步的主控模块无法正常工作,则其状态转换为离线即O,2oo3冗余架构状态同步更新,发起同步的主控模块复位相关信息;
若在同步过程中新插入一个主控模块,为避免频繁拔插主控模块引起频繁同步,导致当前下装操作无法正常完成,新插入的主控模块的工作状态停留在上电P,发起同步的主控模块不对其同步;新上电的主控模块一直等待,直至本次下装完成,其状态转换为旁路S,才能被同步。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310099113.0A CN115755573B (zh) | 2023-02-11 | 2023-02-11 | 一种用于2oo3冗余架构的工程下发、同步和切换的设计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310099113.0A CN115755573B (zh) | 2023-02-11 | 2023-02-11 | 一种用于2oo3冗余架构的工程下发、同步和切换的设计方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115755573A true CN115755573A (zh) | 2023-03-07 |
CN115755573B CN115755573B (zh) | 2023-04-07 |
Family
ID=85348977
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310099113.0A Active CN115755573B (zh) | 2023-02-11 | 2023-02-11 | 一种用于2oo3冗余架构的工程下发、同步和切换的设计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115755573B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6049612A (en) * | 1997-03-10 | 2000-04-11 | The Pacid Group | File encryption method and system |
CN101907879A (zh) * | 2010-03-12 | 2010-12-08 | 大连理工大学 | 工业控制网络冗余容错系统 |
CN107300851A (zh) * | 2016-04-14 | 2017-10-27 | 南京南瑞继保电气有限公司 | 一种冗余控制系统的逻辑算法无扰更新方法 |
CN109189600A (zh) * | 2018-08-17 | 2019-01-11 | 四川航天系统工程研究所 | 一种基于多模冗余嵌入式软件的计算机系统及设计方法 |
CN112445127A (zh) * | 2019-08-27 | 2021-03-05 | 北京东土科技股份有限公司 | 主备控制器的冗余控制方法 |
CN113867129A (zh) * | 2021-10-27 | 2021-12-31 | 珠海格力电器股份有限公司 | 一种冗余控制方法、装置、系统、计算机设备及存储介质 |
-
2023
- 2023-02-11 CN CN202310099113.0A patent/CN115755573B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6049612A (en) * | 1997-03-10 | 2000-04-11 | The Pacid Group | File encryption method and system |
CN101907879A (zh) * | 2010-03-12 | 2010-12-08 | 大连理工大学 | 工业控制网络冗余容错系统 |
CN107300851A (zh) * | 2016-04-14 | 2017-10-27 | 南京南瑞继保电气有限公司 | 一种冗余控制系统的逻辑算法无扰更新方法 |
CN109189600A (zh) * | 2018-08-17 | 2019-01-11 | 四川航天系统工程研究所 | 一种基于多模冗余嵌入式软件的计算机系统及设计方法 |
CN112445127A (zh) * | 2019-08-27 | 2021-03-05 | 北京东土科技股份有限公司 | 主备控制器的冗余控制方法 |
CN113867129A (zh) * | 2021-10-27 | 2021-12-31 | 珠海格力电器股份有限公司 | 一种冗余控制方法、装置、系统、计算机设备及存储介质 |
Non-Patent Citations (4)
Title |
---|
刘志颖;郑松;张瑜;: "浅谈三重冗余控制系统及其表决机制" * |
杨扬,潘明,卢佩玲,何梅芳: "TYJL-TR2000型容错计算机联锁控制系统设计和实现" * |
薛福珍,曹卫国: "基于PC104的DCS冗余软件设计与实现" * |
郑俊朝;刘松;金成日;: "核电仪控系统内数据下装与校验方法的研究" * |
Also Published As
Publication number | Publication date |
---|---|
CN115755573B (zh) | 2023-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109361740B (zh) | 一种区块链的区块生成方法、装置、设备和介质 | |
US7421553B2 (en) | Remote copy operation between different sort of storage system and storage device system | |
US7685384B2 (en) | System and method for replicating files in a computer network | |
CN100428177C (zh) | 数据同步方法、系统和程序 | |
CN100422943C (zh) | 潜在错误检测系统和方法 | |
KR101231563B1 (ko) | 실시간 데이터 복제 | |
CN111045855A (zh) | 备份数据的方法、装置和计算机程序产品 | |
US7793145B2 (en) | Method and apparatus for verifying fault tolerant configuration | |
US8433956B2 (en) | Instruction sequence verification to protect secured data | |
JP2008071209A (ja) | ストレージ管理プログラム、ストレージ管理装置、およびストレージ管理方法 | |
JP2004342077A (ja) | エラー・トレラント・コンピュータ制御システム、同システムを備える車両および同システムを備える航空機 | |
JP2006252530A (ja) | ディスクライト抜け検出装置およびディスクライト抜け検出方法 | |
CN111209343B (zh) | 节点数据同步方法、装置、设备以及存储介质 | |
WO2015087426A1 (ja) | ストレージ装置及びストレージ装置の制御方法 | |
CN112286565B (zh) | 一种基于存储容器的嵌入式系统差分升级方法 | |
KR20080050276A (ko) | 객체 기반 분산 공유 시스템 및 그의 방법 | |
CN115755573B (zh) | 一种用于2oo3冗余架构的工程下发、同步和切换的设计方法 | |
US20090210634A1 (en) | Data transfer controller, data consistency determination method and storage controller | |
WO2018076696A1 (zh) | 一种数据同步方法及带外管理设备 | |
WO2020134637A1 (zh) | 一种密钥组分验证方法、装置及终端设备 | |
CN115883533A (zh) | 文件同步方法、装置、计算机设备及存储介质 | |
JP2016059012A (ja) | 受信装置、送信装置およびデータ転送システム | |
JP2020145670A (ja) | 1つ以上の判定要素を用いてデータコピーのクロスチェックを実行するための装置及び方法 | |
CN112596772A (zh) | 服务器更新方法、装置、电子设备和存储介质 | |
JP5825655B2 (ja) | レプリケーションシステム |
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 |