冗余IO模块、控制方法、装置、存储介质及电子设备
技术领域
本发明涉及冗余控制技术领域,具体涉及一种冗余IO模块、控制方法、装置、存储介质及电子设备。
背景技术
在工业控制技术领域,IO模块是整个工业控制系统中的信号采集与动作输出的执行者,其在系统中占据的模块比例较大,目前也已经有大量的IO模块投入使用。
而随着工业应用场景对工业控制系统的可靠性、可用性要求越来越高,又由于IO模块的容错能力对整个控制系统的容错能力有较大的影响。因此,如何提供一种冗余IO模块,能够提高容错能力,是本领域技术人员亟待解决的一大技术难题。
发明内容
有鉴于此,本发明实施例提供了一种冗余IO模块,能够提高容错能力。
为实现上述目的,本发明实施例提供如下技术方案:
一种冗余IO模块,包括:端子模块以及至少两个IO模块,
任意两个所述IO模块之间通过冗余通道相连,所述冗余通道用于传递所述IO模块的诊断信息;
所述IO模块的第一端均与所述端子模块的同一端相连。
可选的,还包括:主控制器模块,
所述IO模块的第二端均与所述主控制器模块相连;
当所述冗余IO模块为输入型IO模块时,所述IO模块采集所述端子模块输出的所述模块信号,并发送所述模块信号、所述诊断信息至所述主控制器模块,以使所述主控制器模块基于所述模块信号、所述诊断信息以及预设安全信号,确定出组态逻辑中实际参与运算的输入值;
当所述冗余IO模块为输出型IO模块时,基于所述模块信号、所述诊断信息以及预设安全信号,确定出目标输出信号以及目标输出通路,并基于所述目标输出通路将所述目标输出信号输出至所述端子模块。
一种控制方法,应用上述的冗余IO模块中的主控制器模块,当所述冗余IO模块为输入型IO模块时,所述控制方法包括:
获取所述IO模块发送的所述模块信号以及所述诊断信息;
基于所述诊断信息,确定所述模块信号或所述预设安全信号为所述组态逻辑中实际参与运算的输入值。
可选的,所述基于所述诊断信息,确定所述模块信号或所述预设安全信号为所述组态逻辑中实际参与运算的输入值,包括:
判断所述诊断信息是否均为正常态,如果是,当多个所述IO模块发送的所述采集信号符合预设条件时,基于所述采集信号确定所述组态逻辑中实际参与运算的输入值,当多个所述IO模块发送的所述采集信号不相同时,确定历史值为所述组态逻辑中实际参与运算的输入值;如果否,当只有一个所述诊断信息为正常态时,基于所述诊断信息为正常态的所述IO模块的所述采集信号确定所述组态逻辑中实际参与运算的输入值,当所述诊断信息均为非正常态时,确定所述历史值为所述组态逻辑中实际参与运算的输入值。
一种控制方法,应用于上述的冗余IO模块,当所述冗余IO模块为输出型IO模块时,所述控制方法包括:
获取所述IO模块发送的所述模块信号以及所述诊断信息;
基于所述诊断信息,确定出目标输出通路,并确定所述模块信号或所述预设安全信号为所述目标输出信号。
可选的,所述基于所述诊断信息,确定出目标输出通路,并确定所述模块信号或所述预设安全信号为所述目标输出信号,包括:
判断所述诊断信息是否均为正常态,如果是,基于所述输出信号确定所述目标输出信号;如果否,当只有一个所述诊断信息为正常态时,基于所述诊断信息为正常态的所述IO模块的所述输出信号确定所述目标输出信号,当所述诊断信息均为非正常态时,确定所述预设安全信号为所述目标输出信号。
一种控制装置,包括:
获取模块,用于获取IO模块发送的模块信号以及诊断信息;
确定模块,用于基于所述诊断信息,确定所述模块信号或预设安全信号为目标信号。
可选的,所述确定模块包括:
第一判断单元,用于判断所述诊断信息是否均为正常态,如果是,当多个所述IO模块发送的所述采集信号符合预设条件时,基于所述采集信号确定所述组态逻辑中实际参与运算的输入值,当多个所述IO模块发送的所述采集信号不相同时,确定历史值为所述组态逻辑中实际参与运算的输入值;如果否,当只有一个所述诊断信息为正常态时,基于所述诊断信息为正常态的所述IO模块的所述采集信号确定所述组态逻辑中实际参与运算的输入值,当所述诊断信息均为非正常态时,确定所述历史值为所述组态逻辑中实际参与运算的输入值;
或,
第二判断单元,用于判断所述诊断信息是否均为正常态,如果是,基于所述输出信号确定所述目标输出信号;如果否,当只有一个所述诊断信息为正常态时,基于所述诊断信息为正常态的所述IO模块的所述输出信号确定所述目标输出信号,当所述诊断信息均为非正常态时,确定所述预设安全信号为所述目标输出信号。
一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行任意一项上述的控制方法。
一种电子设备,设备包括至少一个处理器、以及与处理器连接的至少一个存储器、总线;其中,所述处理器、所述存储器通过所述总线完成相互间的通信;所述处理器用于调用所述存储器中的程序指令,以执行任意一项上述的控制方法。
基于上述技术方案,本发明实施例提供了一种冗余IO模块、控制方法、装置、存储介质及电子设备,该冗余IO模块包括:端子模块以及至少两个IO模块,其中,任意两个所述IO模块之间通过冗余通道相连,所述冗余通道用于传递所述IO模块的诊断信息。所述IO模块的第一端均与所述端子模块的同一端相连。可见,本方案能够实现冗余控制,进而提高容错能力。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种冗余IO模块的结构示意图;
图2为本发明实施例提供的一种冗余IO模块的又一结构示意图;
图3为本发明实施例提供的一种冗余IO模块为输入型IO模块的信号流向图;
图4为本发明实施例提供的一种冗余IO模块为输出型IO模块的信号流向图;
图5为本发明实施例提供的一种控制方法应用于输入型IO模块的流程示意图;
图6为本发明实施例提供的一种控制方法应用于输入型IO模块的又一流程示意图;
图7为采用本发明实施例提供的一种控制方法应用于输入型IO模块的一具体实例的流程示意图;
图8为本发明实施例提供的一种控制方法应用于输出型IO模块的流程示意图;
图9为本发明实施例提供的一种控制方法应用于输出型IO模块的又一流程示意图;
图10为采用本发明实施例提供的一种控制方法应用于输出型IO模块的一具体实例的流程示意图;
图11为本发明实施例提供的一种控制装置的结构示意图;
图12为本发明实施例提供的一种控制系统的硬件架构图。
具体实施方式
发明人发现,目前支持IO模块冗余的产品,多数采用的是模块级冗余,然而当一对冗余IO模块中不同通道均发生故障时,会导致整个冗余IO模块无法正常工作。因此,如图1所示,本发明实施例提供了一种冗余IO模块,包括:端子模块11以及至少两个IO模块12。
其中,任意两个所述IO模块12之间通过冗余通道13相连,该冗余通道13用于传递各IO模块12的诊断信息。每个IO模块12的第一端均与端子模块11的同一端相连。
具体的,本方案中,端子模块11可以为硬件电路。假设冗余IO模块包括两个IO模块以及一个端子模块,那么,当其中一个IO模块故障时,由另一个IO模块进行数据传输,进而提高容错能力。
在上述实施例的基础上,本实施例提供的冗余IO模块,还可以如图2所示,包括:主控制器模块21。
其中,所述IO模块12的第二端均与所述主控制器模块21相连。需要进行说明的是,在本实施例中,根据信号流经IO模块的方向,可以将冗余IO模块分为输入型IO模块以及输出型IO模块。
具体的,如图3所示,当所述冗余IO模块为输入型IO模块时,所述IO模块采集所述端子模块输出的所述模块信号,并发送所述模块信号、所述诊断信息至所述主控制器模块,以使所述主控制器模块基于所述模块信号、所述诊断信息以及预设安全信号,确定出组态逻辑中实际参与运算的输入值。
示意性的,针对该输入型IO模块,其数据处理流程如下:
步骤1a,IO模块A和B均采集从端子模块接入的信号。
步骤2a,IO模块A和B上报采集信号的同时将各通道的诊断结果上报给主控制器模块。
步骤3a,主控制器模块将IO模块A和B上报的数据经过内部运算后得到最终的采集点提供给组态逻辑使用。
如图4所示,当所述冗余IO模块为输出型IO模块时,基于所述模块信号、所述诊断信息以及预设安全信号,确定出目标输出信号以及目标输出通路,并基于所述目标输出通路将所述目标输出信号输出至所述端子模块。
示意性的,针对该输出型IO模块,其数据处理流程如下:
步骤1b,主控制器模块中运算逻辑计算出输出数据后,自动将输出值赋给IO模块A和B。
步骤2b,IO模块A和B在收到主控制器模块下发的输出数据后,结合当前IO模块A和B的诊断信息来决定如何向端子模块输出数据。
在上述实施例的基础上,本发明实施例提供了一种步骤3a以及步骤2b的具体实现方法,现结合图5以及图6,对步骤3a的具体实现方法进行介绍,如下:
图5为本发明实施例提供的一种控制方法的流程示意图,该控制方法应用于上述冗余IO模块中的主控制器模块,且该冗余IO模块为输入型IO模块,该控制方法包括:
S51、获取所述IO模块发送的所述模块信号以及所述诊断信息;
S52、基于所述诊断信息,确定所述模块信号或所述预设安全信号为所述组态逻辑中实际参与运算的输入值。
具体的,如图6所示,本实施例还提供了一种基于所述诊断信息,确定所述模块信号或所述预设安全信号为所述组态逻辑中实际参与运算的输入值的具体实现方式,包括:
S61、判断所述诊断信息是否均为正常态,如果是,当多个所述IO模块发送的所述采集信号符合预设条件时,基于所述采集信号确定所述组态逻辑中实际参与运算的输入值,当多个所述IO模块发送的所述采集信号不相同时,确定历史值为所述组态逻辑中实际参与运算的输入值;如果否,当只有一个所述诊断信息为正常态时,基于所述诊断信息为正常态的所述IO模块的所述采集信号确定所述组态逻辑中实际参与运算的输入值,当所述诊断信息均为非正常态时,确定所述历史值为所述组态逻辑中实际参与运算的输入值。
示意性的,结合图7,当IO模块只有两个时,如果IO模块A和IO模块B的当前通道诊断均正常,则判断IO模块A和IO模块B输出的采集信号是否符合预设条件,如果是,则基于所述采集信号确定所述组态逻辑中实际参与运算的输入值。如果IO模块A和IO模块B的当前通道诊断均为异常,则保持历史值并置位通常值异常故障。如果只有一个IOS模块的通道故障,则基于所述诊断信息为正常态的所述IO模块的所述采集信号确定所述组态逻辑中实际参与运算的输入值。最后,将当前通道号加1,并循环执行上述步骤。
可见,本方案经过上述处理后,如果IO模块A和IO模块B存在不同通道诊断有异常时,最终端子模块上依旧可以有正常的信号输出,从而达到了更高的容错能力。
除此,结合图8以及图9,对步骤2b的具体实现方法进行介绍,如下:
图8为本发明实施例提供的一种控制方法的又一流程示意图,该控制方法应用于上述的冗余IO模块中的主控制器模块,且该冗余IO模块为输出型IO模块,该控制方法包括:
S81、获取所述IO模块发送的所述模块信号以及所述诊断信息;
S82、基于所述诊断信息,确定出目标输出通路,并确定所述模块信号或所述预设安全信号为所述目标输出信号。
具体的,如图9所示,本发明实施例还提供了一种基于所述诊断信息,确定出目标输出通路,并确定所述模块信号或所述预设安全信号为所述目标输出信号的具体实现方式,包括:
S91、判断所述诊断信息是否均为正常态,如果是,基于所述输出信号确定所述目标输出信号;如果否,当只有一个所述诊断信息为正常态时,基于所述诊断信息为正常态的所述IO模块的所述输出信号确定所述目标输出信号,当所述诊断信息均为非正常态时,确定所述预设安全信号为所述目标输出信号。
示意性的,结合图10,当IO模块只有两个时,如果IO模块A和IO模块B当前通道诊断均正常,则直接输出当前值,如果是电流型输出模块则各输出一半。如果IO模块A和IO模块B当前通道诊断均异常,则直接输出安全预计值。如果IO模块A和IO模块B当前通道诊断只有一个模块有异常,则通道诊断正常的模块进行输出,通道诊断异常的模块不输出。最后,将当前通道号加1,并循环执行上述步骤。
可见,经过以上处理后,如果冗余模块A和B存在不同通道诊断有异常时,最终端子模块上依旧可以有正常的信号输出,从而达到了更高的容错能力。
在上述实施例的基础上,如图11所示,本实施例还提供了一种控制装置,包括:
获取模块111,用于获取IO模块发送的模块信号以及诊断信息;
确定模块112,用于基于所述诊断信息,确定所述模块信号或预设安全信号为目标信号。
其中,确定模块可以包括:
第一判断单元,用于判断所述诊断信息是否均为正常态,如果是,当多个所述IO模块发送的所述采集信号符合预设条件时,基于所述采集信号确定所述组态逻辑中实际参与运算的输入值,当多个所述IO模块发送的所述采集信号不相同时,确定历史值为所述组态逻辑中实际参与运算的输入值;如果否,当只有一个所述诊断信息为正常态时,基于所述诊断信息为正常态的所述IO模块的所述采集信号确定所述组态逻辑中实际参与运算的输入值,当所述诊断信息均为非正常态时,确定所述历史值为所述组态逻辑中实际参与运算的输入值;
或,
第二判断单元,用于判断所述诊断信息是否均为正常态,如果是,基于所述输出信号确定所述目标输出信号;如果否,当只有一个所述诊断信息为正常态时,基于所述诊断信息为正常态的所述IO模块的所述输出信号确定所述目标输出信号,当所述诊断信息均为非正常态时,确定所述预设安全信号为所述目标输出信号。
该装置实施例的工作原理请参见上述方法实施例,在此不重复叙述。
上述控制装置包括处理器和存储器,上述获取模块以及控制模块等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来提高容错能力。
本发明实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现所述控制方法。
本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述控制方法。
本发明实施例提供了一种设备,如图12所示,设备包括至少一个处理器121、以及与处理器连接的至少一个存储器122、总线123;其中,处理器、存储器通过总线完成相互间的通信;处理器用于调用存储器中的程序指令,以执行上述的屏幕显示装置方法。本文中的设备可以是服务器、PC、PAD、手机等。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:
获取所述IO模块发送的所述模块信号以及所述诊断信息;
基于所述诊断信息,确定所述模块信号或所述预设安全信号为所述组态逻辑中实际参与运算的输入值。
可选的,所述基于所述诊断信息,确定所述模块信号或所述预设安全信号为所述组态逻辑中实际参与运算的输入值,包括:
判断所述诊断信息是否均为正常态,如果是,当多个所述IO模块发送的所述采集信号符合预设条件时,基于所述采集信号确定所述组态逻辑中实际参与运算的输入值,当多个所述IO模块发送的所述采集信号不相同时,确定历史值为所述组态逻辑中实际参与运算的输入值;如果否,当只有一个所述诊断信息为正常态时,基于所述诊断信息为正常态的所述IO模块的所述采集信号确定所述组态逻辑中实际参与运算的输入值,当所述诊断信息均为非正常态时,确定所述历史值为所述组态逻辑中实际参与运算的输入值。
除此,还可以:
获取所述IO模块发送的所述模块信号以及所述诊断信息;
基于所述诊断信息,确定出目标输出通路,并确定所述模块信号或所述预设安全信号为所述目标输出信号。
可选的,所述基于所述诊断信息,确定出目标输出通路,并确定所述模块信号或所述预设安全信号为所述目标输出信号,包括:
判断所述诊断信息是否均为正常态,如果是,基于所述输出信号确定所述目标输出信号;如果否,当只有一个所述诊断信息为正常态时,基于所述诊断信息为正常态的所述IO模块的所述输出信号确定所述目标输出信号,当所述诊断信息均为非正常态时,确定所述预设安全信号为所述目标输出信号。
综上,本发明实施例提供了一种冗余IO模块、控制方法、装置、存储介质及电子设备,该冗余IO模块包括:端子模块以及至少两个IO模块,其中,任意两个所述IO模块之间通过冗余通道相连,所述冗余通道用于传递所述IO模块的诊断信息。所述IO模块的第一端均与所述端子模块的同一端相连。可见,由于本方案能够进行冗余控制,进而提高容错能力。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
在一个典型的配置中,设备包括一个或多个处理器(CPU)、存储器和总线。设备还可以包括输入/输出接口、网络接口等。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。