基于互联心跳监测机制的双机运行方法及装置
文献发布时间:2024-04-18 19:53:33
技术领域
本发明涉及双主机冗余控制技术领域,尤其涉及一种基于互联心跳监测机制的双机运行方法及装置。
背景技术
在船舶动力或电力控制系统中,数据采集装置的可靠性程度直接关系到船舶航行的稳定和安全;而采用冗余技术成为提高数据采集装置的可靠性的途径之一。
相关技术中,在普通的工业控制系统的常用冗余方式是在满足基本功能要求的部件之外,进行硬件资源的重复配置,再设计额外的仲裁模块实现主从切换,这样不仅增加了硬件成本和空间布局,而且引入了新的故障隐患点,还需要进行系统同步,对于空间和功能集成度要求高、可靠性要求高的船用设备并不适用。
发明内容
本发明提供一种基于互联心跳监测机制的双机运行方法及装置,用以解决现有技术中的数据采集设备采取冗余方式进行资源配置时需要设计额外的仲裁模块实现主从切换,导致硬件成本和空间布局增大,而且引入了新的故障隐患点的缺陷,提高了船用设备的数据采集性能。
本发明提供一种基于互联心跳监测机制的双机运行方法,应用于第一主机,包括:
确定所述第一主机的工作状态信息;
对所述第一主机的多个数据采集模块进行状态诊断,得到第一模块诊断信息,对所述第一主机的多个数据采集通道进行状态诊断,得到第一通道诊断信息,对所述第一主机的对外通讯链路进行状态诊断,得到第一通讯诊断信息;
通过互联心跳线路向第二主机发送第一心跳报文,所述第一心跳报文包括所述第一主机的工作状态信息、所述第一模块诊断信息、所述第一通道诊断信息和所述第一通讯诊断信息;
在接收到所述第二主机发送的第二心跳报文的情况下,根据所述第二心跳报文和所述第一心跳报文调整所述第一主机的工作状态,其中,所述第二心跳报文包括所述第二主机的工作状态信息、第二模块诊断信息、第二通道诊断信息和第二通讯诊断信息。
根据本发明提供的一种基于互联心跳监测机制的双机运行方法,所述根据所述第二心跳报文和所述第一心跳报文调整所述第一主机的工作状态包括:
基于所述第二心跳报文确定所述第二主机的工作状态信息;
在所述第一主机的工作状态信息为从工作模式,且所述第二主机的工作状态信息为从工作模式或者未接收到所述第二心跳报文的情况下,将所述第一主机切换至主工作模式。
根据本发明提供的一种基于互联心跳监测机制的双机运行方法,所述根据所述第二心跳报文和所述第一心跳报文调整所述第一主机的工作状态还包括:
根据所述第一模块诊断信息、所述第一通道诊断信息和所述第一通讯诊断信息确定所述第一主机的数据采集强度,根据所述第二主机的工作状态信息确定所述第二主机的数据采集强度;
在所述第一主机的工作状态信息为主工作模式,且所述第一主机的数据采集强度低于所述第二主机的数据采集强度或者所述第一通讯诊断信息异常的情况下,将所述第一主机切换至从工作模式。
根据本发明提供的一种基于互联心跳监测机制的双机运行方法,在所述确定所述第一主机的工作状态信息之后,所述方法还包括:
在所述第一主机的工作状态信息为主工作模式的情况下,通过所述第一主机的主处理器的独立网口定时对外发送数据包。
根据本发明提供的一种基于互联心跳监测机制的双机运行方法,在所述确定所述第一主机的工作状态信息之前,所述方法还包括:
对所述第一主机上电,并启动硬件自检程序,以确定所述第一主机的工作状态信息。
本发明还提供一种基于互联心跳监测机制的双机运行方法,应用于第二主机,包括:
确定所述第二主机的工作状态信息;
对所述第二主机的多个数据采集模块进行状态诊断,得到第二模块诊断信息,对所述第二主机的多个数据采集通道进行状态诊断,得到第二通道诊断信息,对所述第二主机的对外通讯链路进行状态诊断,得到第二通讯诊断信息;
通过互联心跳线路向第一主机发送第二心跳报文,所述第二心跳报文包括所述第二主机的工作状态信息、所述第二模块诊断信息、所述第二通道诊断信息和所述第二通讯诊断信息;
在接收到所述第一主机发送的第一心跳报文的情况下,根据所述第一心跳报文和所述第二心跳报文调整所述第二主机的工作状态,其中,所述第一心跳报文包括所述第一主机的工作状态信息、第一模块诊断信息、第一通道诊断信息和第一通讯诊断信息。
本发明还提供一种基于互联心跳监测机制的双机运行装置,包括:
第一检测模块,用于确定第一主机的工作状态信息;
第一诊断模块,用于对所述第一主机的多个数据采集模块进行状态诊断,得到第一模块诊断信息,对所述第一主机的多个数据采集通道进行状态诊断,得到第一通道诊断信息,对所述第一主机的对外通讯链路进行状态诊断,得到第一通讯诊断信息;
第一发送模块,用于通过互联心跳线路向第二主机发送第一心跳报文,所述第一心跳报文包括所述第一主机的工作状态信息、所述第一模块诊断信息、所述第一通道诊断信息和所述第一通讯诊断信息;
第一处理模块,用于在接收到所述第二主机发送的第二心跳报文的情况下,根据所述第二心跳报文和所述第一心跳报文调整所述第一主机的工作状态,其中,所述第二心跳报文包括所述第二主机的工作状态信息、第二模块诊断信息、第二通道诊断信息和第二通讯诊断信息。
本发明还提供一种基于互联心跳监测机制的双机运行装置,包括:
第二检测模块,用于确定第二主机的工作状态信息;
第二诊断模块,用于对所述第二主机的多个数据采集模块进行状态诊断,得到第二模块诊断信息,对所述第二主机的多个数据采集通道进行状态诊断,得到第二通道诊断信息,对所述第二主机的对外通讯链路进行状态诊断,得到第二通讯诊断信息;
第二发送模块,用于通过互联心跳线路向第一主机发送第二心跳报文,所述第二心跳报文包括所述第二主机的工作状态信息、所述第二模块诊断信息、所述第二通道诊断信息和所述第二通讯诊断信息;
第二处理模块,用于在接收到所述第一主机发送的第一心跳报文的情况下,根据所述第一心跳报文和所述第二心跳报文调整所述第二主机的工作状态,其中,所述第一心跳报文包括所述第一主机的工作状态信息、第一模块诊断信息、第一通道诊断信息和第一通讯诊断信息。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述基于互联心跳监测机制的双机运行方法。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述基于互联心跳监测机制的双机运行方法。
本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述基于互联心跳监测机制的双机运行方法。
本发明提供的基于互联心跳监测机制的双机运行方法及装置,通过确定第一主机的工作状态信息,并对第一主机的多个数据采集模块、多个数据采集通道、进行状态诊断和对外通讯链路分别进行状态诊断,得到对应的第一模块诊断信息、第一通道诊断信息和第一通讯诊断信息,再通过互联心跳线路向第二主机发送第一心跳报文,并在接收到第二主机发送的第二心跳报文的情况下,根据第二心跳报文和第一心跳报文调整第一主机的工作状态,在不引入额外的仲裁模块前提下,通过较低的硬件成本实现双机冗余,双机通过监测互联心跳信号,在任一主机的任一单元模块发生故障时,可自主实现无扰动切换,保障数据采集的不间断性,提高了船用设备的数据采集性能。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的基于互联心跳监测机制的双机运行方法的流程示意图之一;
图2是本发明提供的主机A、主机B和交换机进行数据交互的界面示意图;
图3是本发明提供的基于互联心跳监测机制的双机运行方法的流程示意图之二;
图4是本发明提供的基于互联心跳监测机制的双机运行装置的结构示意图之一;
图5是本发明提供的基于互联心跳监测机制的双机运行方法的流程示意图之三;
图6是本发明提供的基于互联心跳监测机制的双机运行方法的流程示意图之四;
图7是本发明提供的基于互联心跳监测机制的双机运行装置的结构示意图之二;
图8是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合图1-图7描述本发明的基于互联心跳监测机制的双机运行方法及装置。
图1是本发明提供的基于互联心跳监测机制的双机运行方法的流程示意图之一,如图1所示,该基于互联心跳监测机制的双机运行方法,应用于第一主机,包括如下步骤:
步骤110、确定第一主机的工作状态信息。
在该步骤中,第一主机包括船用设备的CPU(Central Processing Unit,中央处理器),用于控制船舶控制系统的工作状态或者运动状态。
在该实施例中,第一主机可以是数据采集设备。
在该步骤中,主机的工作状态信息包括该主机的工作模式,例如,主机处于主工作模式,或者从工作模式。
在该实施例中,可以根据双主机中各主机上电启动的时间先后顺序,确定各主机的初始状态的主从身份;例如,在主机A和主机B均保持正常工作的情况下,主机A在t(t为正数)时刻开始上电,主机B在t+1时刻开始上电,则主机A处于主工作状态,并通过以太网向外发送数据,主机B处于从工作状态,不向外发送数据。
在该实施例中,本发明的船用设备采用双主机冗余切换机制,在任意时刻,有且仅有一台主机处于主工作状态(Master),另一台主机处于从工作状态(Slave);两台主机的主处理模块均正常从数据采集模块获取各采集通道的数据,经历完全一样的处理、运算以及打包步骤,但仅有处于主工作状态的主机通过以太网对外发送数据,处于从工作状态的主机不发送数据。
步骤120、对第一主机的多个数据采集模块进行状态诊断,得到第一模块诊断信息,对第一主机的多个数据采集通道进行状态诊断,得到第一通道诊断信息,对第一主机的对外通讯链路进行状态诊断,得到第一通讯诊断信息。
在该步骤中,第一主机包括多个数据采集模块,用于采集多个采集通道的数据。
在该实施例中,双机冗余数据采集装置包括两台冗余主机(第一主机和第二主机)和显示终端,其中,显示终端通过交换机与两台主机相连,接收并显示处于主工作模式的主机对外发送的数据,在终端的应用程序内设置对主机通讯指令的答复流程,用于实现主机对外通讯链路的状态诊断;主机将自身工作模式打包进数据发送给终端,以便于监测两台主机的状态。
在该实施例中,每台主机内配置四个相同的数据采集模块,模块1和模块2互为冗余,模块3和棋块4互为冗余;每个模块配置两路CAN总线通道,分别采集两个CAN子网的数据;其中,模块1的通道l和模块2的通道1互为冗余,采集CAN子网1的相同数据;模块1的通道2和模块2的通道2互为冗余,采集CAN子网2的相同数据;模块3的通道1和模块4的通道1互为冗余,采集CAN子网3的相同数据;模块3的通道2和模块4的通道2互为冗余,采集CAN子网4的相同数据。
在该实施例中,数据采集主机状态自诊断、采集、处理、打包、发送的流程设置每秒执行一次。
图2是本发明提供的主机A、主机B和交换机进行数据交互的界面示意图,在图2所示的实施例中,冗余数据采集主机包括主机A、主机B和交换机,每个主机包括一个主处理模块、N个数据采集模块,每个数据采集模块包括M个数据采集通道;每个主机还包括一个冗余电源模块,用于对该主机各单元供电,以保证主机的正常运行;主处理模块包括网络控制器和网络交换芯片,网路控制器通过以太网与交换机进行数据交互,网络交换芯片能够提供以太网交换接口与数据采集模块通信,用于接收采集到的数据;主机A与主机B通过冗余心跳线(对应互联心跳线路)实现心跳报文的互传。
在一些实施例中,在确定第一主机的工作状态信息之前,对第一主机上电,并启动硬件自检程序,以确定第一主机的工作状态信息。
在该实施例中,数据采集主机A上电后启动自检程序,在各单元功能正常,且应用程序正常启动的情况下,主机A进入Slave模式(从工作模式),并执行多状态诊断进程。
下面,以第一主机上电后的默认状态设置为从工作模式,由从工作模式切换至主工作模式的切换机制为例,对双主机的运行过程进行说明:
在该实施例中,主机A通过如下步骤实现工作状态的切换:
(1)数据采集主机A上电后首先进入从工作模式,并将工作模式存入变量Mode1,设置为0;
(2)启动主机A的硬件自检程序,检查主机A的各功能单元是否能正常工作,若主机A的功能单元工作正常,则进入步骤(3);若工作异常,则返回步骤(1);
(3)启动主机A的应用程序,若启动成功,则主机A处于从工作模式Slave,并进入步骤(4);若启动失败,则返回步骤(1);
(4)对主机A内N个数据采集模块进行状态诊断,具体实现方法为:利用主机A的主处理模块向各个采集模块发送通讯指令,并判断主处理模块是否能正常接收到采集模块的答复,将诊断结果存入数组Unit[N]1;若接收到正常答复,将对应采集模块位置的状态量设置1;若未接收到正常答复,则将对应采集模块位置的状态量设置0;
(5)对主机A的M
其中,p可以根据用户实际需求设置,例如,p=3。
(6)对主机A的对外通讯链路进行状态诊断,具体实现方式为:利用主处理模块向外部终端发送通讯指令,判断是否能正常接收到外部终端的答复,并将诊断结果存入变量Comm1,若接收到正常答复,将变量置1;若未接收到正常答复,将变量置0。
在一些实施例中,在第一主机的工作状态信息为主工作模式的情况下,通过第一主机的主处理器的独立网口定时对外发送数据包。
在该实施例中,每台数据采集主机的核心是一块集成高速网卡的主处理模块,其中,网络交换芯片提供以太网交换接口与数据采集模块通信,用于接收采集数据;主处理模块对采集数据进行运算处理,封装为上层运行管理类设备所需的信息报文,并通过网络控制器的独立网口发送给交换机,实现点对点的数据分发。
在该实施例中,若主机A处于主工作模式Master,通过主处理器的独立网口定时对外发送处理打包后的数据。
步骤130、通过互联心跳线路向第二主机发送第一心跳报文,第一心跳报文包括第一主机的工作状态信息、第一模块诊断信息、第一通道诊断信息和第一通讯诊断信息。
在该步骤中,两台数据采集主机A和B通过互联心跳线路实现网络互联;网络交换芯片为主机发出的心跳信号提供以太网交换接口,两台主机在启动之后通过互联心跳线路保持通讯,并分别将自身的状态信息发送给对方;每台主机通过自检判断自身状态,通过监测心跳信号判断对方状态,通过有效的仲裁机制实现主从的自动切换。
在该实施例中,每台数据采集主机内所有模块均由冗余电源模块供电,保障供电的稳定可靠。
以主机A处于从工作模式Slave为例,在主机A的主处理模块获取第一模块诊断信息、第一通道诊断信息和第一通讯诊断信息之后,通过互联心跳线路向主机B发送第一心跳报文,该第一心跳报文包含:Mode1、Unit[N]1、Channel[N][M]1和Comm1;主机A根据系统需求,进行正常的数据采集、处理、运算和打包。
步骤140、在接收到第二主机发送的第二心跳报文的情况下,根据第二心跳报文和第一心跳报文调整第一主机的工作状态,其中,第二心跳报文包括第二主机的工作状态信息、第二模块诊断信息、第二通道诊断信息和第二通讯诊断信息。
在该步骤中,主机A根据向主机B发送的第一心跳报文,以及接收主机B发送的第二心跳报文,实现对主机B心跳的检测,再通过有效的仲裁机制实现主机工作状态的切换。
比如,对于处于主工作模式的主机,当自身对外通讯链路异常或者自身采集能力弱于对应的冗余主机,主机会将自身工作模式由主工作模式切换至从工作模式,以主动释放控制权;对于处于从工作模式的主机,当检测不到对应冗余主机的心跳信号或者冗余主机处于从工作模式的情况下,主机才会将自身工作模式由从工作模式切换至主,以抢占控制权。
在该实施例中,主机A处于从工作模式Slave,在通过互联心跳线路向第二主机发送第一心跳报文之后,再通过如下步骤实现工作状态的切换:
(7)判断主机A是否能接收到主机B发送的第二心跳报文,若正常接收,则进入步骤(8);若不能接收到第二心跳报文,则维持当前的从工作模式,并返回步骤(1);
(8)解析第二心跳报文,即从第二心跳报文中解析出主机B对应的第二主机的工作状态信息Mode2、第二模块诊断信息Unit[N]2、第二通道诊断信息Channel[N][M]2和第二通讯诊断信息Comm2。
在该实施例中,可根据第二主机的工作状态信息Mode2调节第一主机的工作模式,例如,根据Mode2确定第二主机处于从工作模式,则将第一主机的工作状态由从工作模式切换至主工作模式。
在该实施例中,若主机A处于主工作模式Master,可以根据主机B的第二通讯诊断信息Comm2的异常情况调整第一主机的工作状态,例如,当解析主机B的Comm2为0时,主机A维持自身的主工作模式,否则,通过比较两台主机的模块诊断信息Unit[N]和通道诊断信息Channel[N][M]计算各主机的数据采集能力,进而确定各主机的主从身份,具体的,将数据采集能力更强的主机切换至主工作模式。
在一些实施例中,根据第二心跳报文和第一心跳报文调整第一主机的工作状态包括:基于第二心跳报文确定第二主机的工作状态信息;在第一主机的工作状态信息为从工作模式,且第二主机的工作状态信息为从工作模式或者未接收到第二心跳报文的情况下,将第一主机切换至主工作模式。
以主机A处于从工作模式Slave为例,在主机A通过互联心跳线路向主机B发送第一心跳报文之后,主机A可通过检查第一通讯诊断信息Comm1确定自身工作状态。
比如,若主机A的Comm1为0时,维持自身从工作模式;若主机A的Comm1为1时,则判断主机A是否能接收到数据主机B发送的第二心跳报文,若不能正常接收,将主机A的从工作模式切换至主工作模式,并将对应的Mode1设为1,进入主工作模式流程;若主机A不能接收到第二心跳报文,则继续对主机A的N个数据采集模块进行状态诊断以及执行后续过程,依次循环。
在该实施例中,对主机A上电,等待5秒后给主机B上电,在经历10秒的自检和启动时间后,观察到显示终端显示主机A为主工作模式,主机B为从工作模式,且两台主机的数据采集功能正常;按下主机A的主机面板上的复位按钮进行手动重启,观察到显示终端显示主机A切换至从工作模式,主机B切换至主工作模式,实际切换时间约为1秒。
需要说明的是,两台主机上电后均将自身状态设置为从工作模式,然后按照相同的步骤执行程序。由于主机A先上电5秒,所以能够执行至“判断主机A能否接收到主机B发送的第二心跳报文”的步骤;若主机A自检和启动时间较长,主机B尚未开始向主机A发送第二心跳报文,则主机A无法接收到第二心跳报文,即主机A将自身从工作模式切换至主工作模式,若主机A自检和启动时间较短,主机B已向主机A发送第二心跳报文,主机A通过第二心跳报文解析得到主机B的工作状态为从工作模式,则主机A也将自身从工作模式切换至主工作模式。
对应的,主机B处于从工作模式,当主机A复位后将自身工作状态设为从工作模式,由于主程序循环依次需要1秒,在主机A刚完成复位,且主机B通过接收第一心跳报文解析得到主机A处于从工作模式的情况下,则主机B将自身从工作模式切换至主工作模式;否则,当主机B开始向主机A发送第二心跳报文,但主机A上位完成自检和程序启动,则主机B无法接收到主机A发送的第一心跳报文,则主机B也将自身从工作模式切换至主工作模式。
在该实施例中,在船用设备的数据采集装置运行过程中,操作人员能够通过复位按钮进行人为的主从切换,在不停机的前提下能够定期检修两台主机,以及时排出故障隐患。
图3是本发明提供的基于互联心跳监测机制的双机运行方法的流程示意图之二,在图3所示的实施例中,主机A上电并启动自检程序,以检查各单元是否能正常工作,并检测是否能正常启动应用程序,在应用程序能够成功启动的情况下,主机A进入Slave模式(从工作模式),并依次执行主机A的N个数据采集模块状态诊断、M
本发明实施例提供的基于互联心跳监测机制的双机运行方法,通过第二心跳报文确定第二主机的工作状态信息,并在第一主机的工作状态信息为从工作模式,且第二主机的工作状态信息为从工作模式或者未接收到第二心跳报文的情况下,将第一主机切换至主工作模式,实现了在不停机的前提下定期检修两台主机,提高了故障排查效率。
在一些实施例中,根据第二心跳报文和第一心跳报文调整第一主机的工作状态还包括:根据第一模块诊断信息、第一通道诊断信息和第一通讯诊断信息确定第一主机的数据采集强度,根据第二主机的工作状态信息确定第二主机的数据采集强度;在第一主机的工作状态信息为主工作模式,且第一主机的数据采集强度低于第二主机的数据采集强度或者第一通讯诊断信息异常的情况下,将第一主机切换至从工作模式。
以主机A处于主工作模式Master为例,在主机A通过互联心跳线路向主机B发送第一心跳报文之后,主机A可通过检查第一通讯诊断信息Comm1确定自身工作状态。
比如,若主机A的Comm1为0时,主机A从主工作模式切换至从工作模式,并将的Mode1设为0,进入从工作模式流程;若主机A不能接收到数据主机B发送的第二心跳报文,维持自身主工作模式,若不能正常接收第二心跳报文,解析第二心跳报文,并通过第二通讯诊断信息Comm2确定自身工作状态,当Comm2=0时,主机A从主工作模式切换至从工作模式,当Comm2=1时,通过比较两台主机的模块诊断信息Unit[N]和通道诊断信息Channel[N][M]计算各主机的数据采集能力(数据采集强度),进而确定各主机的主从身份。
在该实施例中,记主机A的数据采集强度为F
(1)主机A的所有数据采集模块互不冗余,数据采集通道互不冗余,通过数量评定确定F
(2)主机A的数据采集模块或数据采集通道涉及冗余配置,则对应数据采集强度的评定方法可以根据数据采集模块和数据采集通道的配置方式自定义设置。
在该实施例中,根据上述数据采集强度的评定方法确定F
在该实施例中,对主机A上电,等待5秒后给主机B上电,主机A切换至主工作模式,在运行过程中,拔掉主机A与交换机的连接电缆,通过显示终端观察到主机A切换至从工作模式,主机B切换至从工作模式,且两台主机的数据采集功能正常,实际切换时间约为1秒。
需要说明的是,在拔掉主机A与交换机的连接电缆之后,主机A对外发送通讯指令,无法接收到终端的回复,则当主机A根据第一通讯诊断信息Comm1检查自身对完通讯链路状态时,对应的Comm1=0,主机A将自身主工作模式切换至从工作模式;当主机B接收到主机A发送的第一心跳报文之后,解析第一心跳报文并确定主机A的Mode1=0(主机A处于从工作模式),主机B将自身从工作模式切换至主工作模式;当主机A接收到主机B发送的第二心跳报文之后,解析第二心跳报文并确定主机B的Mode2=1,主机A维持自身从工作模式。
在该实施例中,拆除主机A的数据采集模块1和2,先对主机A上电,等待5秒后给主机B上电,通过显示终端观察到主机A闪现了一下主工作模式后迅速切换至从工作模式,对应的子网1和2数据异常,子网3和4数据正常,然后主机B切换至主工作模式,数据采集功能正常。
需要说明的是,主机A先上电,进入主工作模式,然后对主机A的N个数据采集模块进行状态诊断时,将对应的第一模块诊断结果存入至Unit[4]1中,即Unit[4]1:0101,然后执行数据采集通道诊断,得到第一通道诊断信息Channel[4][2]1:
;
通过解析主机B发送的第二心跳报文,得到主机B的第二模块诊断信息Unit[4]2:1111,第二通道诊断信息Channel[4][2]2:
;
若两台主机对应数据采集模块、数据采集通道均互为冗余,则首先比较两台主机可正常采集的子网数量比较各自的数据采集强度,采集的子网数量更多的主机的数据采集强度更大,即数据采集能力更强,若采集子网数量相等,则比较可正常采集的通道数量,采集的通道数量更多的主机的数据采集强度更大,示例如下:
(1)计算主机A子网1可采通道数:
NA
计算主机A子网2可采通道数:
NA
计算主机A子网3可采通道数:
NA
计算主机A子网4可采通道数:
NA
(2)计算主机B子网1可采通道数:
NB
计算主机B子网2可采通道数:
NB
计算主机B子网3可采通道数:
NB
计算主机B子网4可采通道数:
NB
(3)记NB[4]中不为0的个数为主机A可正常采集的子网数量为2,即F
需要说明的是,由于F
在该实施例中,在该实施例中,在船用设备的数据采集装置运行过程中,当主工作模式的主机出现故障,另一台从工作模式的主机可以迅速无扰动地切换至主工作模式,以保持数据采集功能的正常和不间断性,在无人为干预的情况下,显示终端显示两台主机的工作模式发生了切换,便于提示操作人主机的具体故障信息(例如,哪台主机发生故障),操作人员能够对该主机进行检查和维修,以保证系统的持续运行。
本发明实施例提供的基于互联心跳监测机制的双机运行方法,通过第一模块诊断信息、第一通道诊断信息和第一通讯诊断信息确定第一主机的数据采集强度,根据第二主机的工作状态信息确定第二主机的数据采集强度,并在第一主机的工作状态信息为主工作模式,且第一主机的数据采集强度低于第二主机的数据采集强度或者第一通讯诊断信息异常的情况下,将第一主机切换至从工作模式,能够保证船用设备的数据采集装置在运行过程中将正常运行的主机迅速、无扰动地切换至主工作模式,以保持数据采集的持续性,提高了数据采集效率。
下面对本发明提供的基于互联心跳监测机制的双机运行装置进行描述,下文描述的基于互联心跳监测机制的双机运行装置与上文描述的基于互联心跳监测机制的双机运行方法可相互对应参照。
图4是本发明提供的基于互联心跳监测机制的双机运行装置的结构示意图之一,如图4所示,该基于互联心跳监测机制的双机运行装置包括第一检测模块410、第一诊断模块420、第一发送模块430和第一处理模块440。
第一检测模块410,用于确定第一主机的工作状态信息;
第一诊断模块420,用于对第一主机的多个数据采集模块进行状态诊断,得到第一模块诊断信息,对第一主机的多个数据采集通道进行状态诊断,得到第一通道诊断信息,对第一主机的对外通讯链路进行状态诊断,得到第一通讯诊断信息;
第一发送模块430,用于通过互联心跳线路向第二主机发送第一心跳报文,第一心跳报文包括第一主机的工作状态信息、第一模块诊断信息、第一通道诊断信息和第一通讯诊断信息;
第一处理模块440,用于在接收到第二主机发送的第二心跳报文的情况下,根据第二心跳报文和第一心跳报文调整第一主机的工作状态,其中,第二心跳报文包括第二主机的工作状态信息、第二模块诊断信息、第二通道诊断信息和第二通讯诊断信息。
本发明实施例提供的基于互联心跳监测机制的双机运行装置,通过确定第一主机的工作状态信息,并对第一主机的多个数据采集模块、多个数据采集通道、进行状态诊断和对外通讯链路分别进行状态诊断,得到对应的第一模块诊断信息、第一通道诊断信息和第一通讯诊断信息,再通过互联心跳线路向第二主机发送第一心跳报文,并在接收到第二主机发送的第二心跳报文的情况下,根据第二心跳报文和第一心跳报文调整第一主机的工作状态,在不引入额外的仲裁模块前提下,通过较低的硬件成本实现双机冗余,并且双机通过监测互联心跳信号,在任一主机的任一单元模块发生故障时,可自主实现无扰动切换,保障数据采集的不间断性,提高了船用设备的数据采集性能。
图5是本发明提供的基于互联心跳监测机制的双机运行方法的流程示意图之三,如图5所示,该基于互联心跳监测机制的双机运行方法,应用于第二主机,包括如下步骤:
步骤510、确定第二主机的工作状态信息。
在该步骤中,第二主机包括船用设备的CPU,用于控制船舶控制系统的工作状态或者运动状态。
在该实施例中,第二主机可以是数据采集设备。
在该步骤中,主机的工作状态信息包括该主机的工作模式,例如,主机处于主工作模式,或者从工作模式。
在该实施例中,可以根据双主机中各主机上电启动的时间先后顺序,确定各主机的初始状态的主从身份;例如,在主机A和主机B均保持正常工作的情况下,主机A在t(t为正数)时刻开始上电,主机B在t+1时刻开始上电,则主机A处于主工作状态,并通过以太网向外发送数据,主机B处于从工作状态,不向外发送数据。
步骤520、对第二主机的多个数据采集模块进行状态诊断,得到第二模块诊断信息,对第二主机的多个数据采集通道进行状态诊断,得到第二通道诊断信息,对第二主机的对外通讯链路进行状态诊断,得到第二通讯诊断信息。
在该步骤中,第二主机包括多个数据采集模块,用于采集多个采集通道的数据。
在该实施例中,第二主机内配置四个相同的数据采集模块,模块1和模块2互为冗余,模块3和棋块4互为冗余;每个模块配置两路CAN总线通道,分别采集两个CAN子网的数据;其中,模块1的通道l和模块2的通道1互为冗余,采集CAN子网1的相同数据;模块1的通道2和模块2的通道2互为冗余,采集CAN子网2的相同数据;模块3的通道1和模块4的通道1互为冗余,采集CAN子网3的相同数据;模块3的通道2和模块4的通道2互为冗余,采集CAN子网4的相同数据。
在该实施例中,数据采集主机状态自诊断、采集、处理、打包、发送的流程设置每秒执行一次。
在一些实施例中,在确定第二主机的工作状态信息上电,在对第二主机上电,并启动硬件自检程序,以确定第二主机的工作状态信息。
在该实施例中,数据采集主机B上电后启动自检程序,在各单元功能正常,且应用程序正常启动的情况下,主机B进入Slave模式,并执行多状态诊断进程。
下面,以第二主机由主工作模式切换至从工作模式的切换机制为例,对双主机的运行过程进行说明:
在该实施例中,主机B处于从工作模式Master,通过如下步骤实现工作状态的切换:
(1)主机B处于主工作模式,并将工作模式存入变量Mode2,设置为1,通过主机B的主处理器的独立网口定时向外发送处理打包后的数据;
(2)对主机B内N个数据采集模块进行状态诊断,具体实现方法为:利用主机B的主处理模块向各个采集模块发送通讯指令,并判断主处理模块是否能正常接收到采集模块的答复,将诊断结果存入数组Unit[N]2;若接收到正常答复,将对应采集模块位置的状态量设置1;若未接收到正常答复,则将对应采集模块位置的状态量设置0。
在一些实施例中,在第一主机的工作状态信息为主工作模式的情况下,通过第一主机的主处理器的独立网口定时对外发送数据包。
在该实施例中,每台数据采集主机的核心是一块集成高速网卡的主处理模块,其中的网络交换芯片提供以太网交换接口与数据采集模块通信,用于接收采集数据;主处理模块对采集数据进行运算处理,封装为上层运行管理类设备所需的信息报文,通过网络控制器的独立网口发送给交换机,实现点对点的数据分发。
在该实施例中,若主机B处于从工作模式Slave,不向外发送数据。
步骤530、通过互联心跳线路向第一主机发送第二心跳报文,第二心跳报文包括第二主机的工作状态信息、第二模块诊断信息、第二通道诊断信息和第二通讯诊断信息。
在该步骤中,两台数据采集主机A和B通过互联心跳线路实现网络互联;网络交换芯片为主机发出的心跳信号提供以太网交换接口,两台主机在启动之后通过互联心跳线路保持通讯,并分别将自身的状态信息发送给对方;每台主机通过自检判断自身状态,通过监测心跳信号判断对方状态,通过有效的仲裁机制实现主从的自动切换。
在该实施例中,每台数据采集主机内所有模块均由冗余电源模块供电,保障供电的稳定可靠。
以主机B处于主工作模式Master为例,在主机B的主处理模块获取第二模块诊断信息、第二通道诊断信息和第二通讯诊断信息之后,通过互联心跳线路向主机A发送包含:Mode2、Unit[N]2、Channel[N][M]2和Comm2的第二心跳报文。
在该实施例中,在主机B向主机A发送第二心跳报文之前,可通过如下步骤进行运行状态的切换:
(3)对主机B的M
其中,p可以根据用户实际需求设置,例如,p=3;
(4)对主机B的对外通讯链路进行状态诊断,具体实现方式为:利用主处理模块向外部终端发送通讯指令,判断是否能正常接收到外部终端的答复,并将诊断结果存入变量Comm2,若接收到正常答复,将变量置1;若未接收到正常答复,将变量置0;
(5)通过互联心跳线路向主机A发送第二心跳报文,包括Mode2、Unit[N]2、Channel[N][M]2和Comm2;
(6)根据系统需求,进行正常的数据采集、处理、运算和打包。
步骤540、在接收到第一主机发送的第一心跳报文的情况下,根据第一心跳报文和第二心跳报文调整第二主机的工作状态,其中,第一心跳报文包括第一主机的工作状态信息、第一模块诊断信息、第一通道诊断信息和第一通讯诊断信息。
在该步骤中,主机B根据向主机A发送的第二心跳报文,以及接收主机A发送的第一心跳报文,实现对主机A心跳的检测,再通过有效的仲裁机制实现主机工作状态的切换。
在该实施例中,主机B处于主工作模式Master,在通过互联心跳线路向第一主机发送第二心跳报文之后,再通过如下步骤实现工作状态的切换:
(7)通过第二通讯诊断信息Comm2检查对外通讯链路状态是否正常,当Comm2=0,主机B切换至从工作模式,并将Mode2设为0;
(8)当Comm2=1,判断主机B是否能接收到主机A发送的第一心跳报文,若不能正常接收,则主机B维持主工作模式;
(9)若判断主机B能接收到主机A发送的第一心跳报文,解析第一心跳报文,得到Mode21、Unit[N]1、Channel[N][M]1和Comm1;
(10)根据Comm1检查主机A的对外通讯链路状态是否正常,若Comm1=0,则主机B维持主工作模式;
(11)若Comm1=1,通过比较两台主机的模块诊断信息Unit[N]和通道诊断信息Channel[N][M]计算各主机的数据采集能力,进而确定各主机的主从身份,具体的,将数据采集能力更强的主机切换至主工作模式;两台主机各自的数据采集能力的计算方式与上述实施例相同,本实施例不再赘述。
图6是本发明提供的基于互联心跳监测机制的双机运行方法的流程示意图之四,在图6所示的实施例中,当主机A处于Master模式(主工作模式),通过独立网口定时对外发送数据包,并依次执行主机A的N个数据采集模块状态诊断、M
本发明实施例提供的基于互联心跳监测机制的双机运行方法,通过确定第二主机的工作状态信息,并对第二主机的多个数据采集模块、多个数据采集通道、进行状态诊断和对外通讯链路分别进行状态诊断,得到对应的第二模块诊断信息、第二通道诊断信息和第二通讯诊断信息,再通过互联心跳线路向第一主机发送第二心跳报文,并在接收到第一主机发送的第一心跳报文的情况下,根据第一心跳报文和第二心跳报文调整第二主机的工作状态,在不引入额外的仲裁模块前提下,通过较低的硬件成本实现双机冗余,并且双机通过监测互联心跳信号,在任一主机的任一单元模块发生故障时,可自主实现无扰动切换,保障数据采集的不间断性,提高了船用设备的数据采集性能。
下面对本发明提供的基于互联心跳监测机制的双机运行装置进行描述,下文描述的基于互联心跳监测机制的双机运行装置与上文描述的基于互联心跳监测机制的双机运行方法可相互对应参照。
图7是本发明提供的基于互联心跳监测机制的双机运行装置的结构示意图之二,如图7所示,该基于互联心跳监测机制的双机运行装置包括第二检测模块710、第二诊断模块720、第二发送模块730和第二处理模块740。
第二检测模块710,用于确定第二主机的工作状态信息;
第二诊断模块720,用于对第二主机的多个数据采集模块进行状态诊断,得到第二模块诊断信息,对第二主机的多个数据采集通道进行状态诊断,得到第二通道诊断信息,对第二主机的对外通讯链路进行状态诊断,得到第二通讯诊断信息;
第二发送模块730,用于通过互联心跳线路向第一主机发送第二心跳报文,第二心跳报文包括第二主机的工作状态信息、第二模块诊断信息、第二通道诊断信息和第二通讯诊断信息;
第二处理模块740,用于在接收到第一主机发送的第一心跳报文的情况下,根据第一心跳报文和第二心跳报文调整第二主机的工作状态,其中,第一心跳报文包括第一主机的工作状态信息、第一模块诊断信息、第一通道诊断信息和第一通讯诊断信息。
本发明实施例提供的基于互联心跳监测机制的双机运行装置,通过确定第二主机的工作状态信息,并对第二主机的多个数据采集模块、多个数据采集通道、进行状态诊断和对外通讯链路分别进行状态诊断,得到对应的第二模块诊断信息、第二通道诊断信息和第二通讯诊断信息,再通过互联心跳线路向第一主机发送第二心跳报文,并在接收到第一主机发送的第一心跳报文的情况下,根据第一心跳报文和第二心跳报文调整第二主机的工作状态,在不引入额外的仲裁模块前提下,通过较低的硬件成本实现双机冗余,并且双机通过监测互联心跳信号,在任一主机的任一单元模块发生故障时,可自主实现无扰动切换,保障数据采集的不间断性,提高了船用设备的数据采集性能。
图8是本发明提供的电子设备的结构示意图,如图8所示,该电子设备可以包括:处理器(processor)810、通信接口(Communications Interface)820、存储器(memory)830和通信总线840,其中,处理器810,通信接口820,存储器830通过通信总线840完成相互间的通信。处理器810可以调用存储器830中的逻辑指令,以执行基于互联心跳监测机制的双机运行方法,应用于第一主机,该方法包括:确定第一主机的工作状态信息;对第一主机的多个数据采集模块进行状态诊断,得到第一模块诊断信息,对第一主机的多个数据采集通道进行状态诊断,得到第一通道诊断信息,对第一主机的对外通讯链路进行状态诊断,得到第一通讯诊断信息;通过互联心跳线路向第二主机发送第一心跳报文,第一心跳报文包括第一主机的工作状态信息、第一模块诊断信息、第一通道诊断信息和第一通讯诊断信息;在接收到第二主机发送的第二心跳报文的情况下,根据第二心跳报文和第一心跳报文调整第一主机的工作状态,其中,第二心跳报文包括第二主机的工作状态信息、第二模块诊断信息、第二通道诊断信息和第二通讯诊断信息;或者,执行基于互联心跳监测机制的双机运行方法,应用于第二主机,该方法包括:确定第二主机的工作状态信息;对第二主机的多个数据采集模块进行状态诊断,得到第二模块诊断信息,对第二主机的多个数据采集通道进行状态诊断,得到第二通道诊断信息,对第二主机的对外通讯链路进行状态诊断,得到第二通讯诊断信息;通过互联心跳线路向第一主机发送第二心跳报文,第二心跳报文包括第二主机的工作状态信息、第二模块诊断信息、第二通道诊断信息和第二通讯诊断信息;在接收到第一主机发送的第一心跳报文的情况下,根据第一心跳报文和第二心跳报文调整第二主机的工作状态,其中,第一心跳报文包括第一主机的工作状态信息、第一模块诊断信息、第一通道诊断信息和第一通讯诊断信息。
此外,上述的存储器830中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的基于互联心跳监测机制的双机运行方法,应用于第一主机,该方法包括:确定第一主机的工作状态信息;对第一主机的多个数据采集模块进行状态诊断,得到第一模块诊断信息,对第一主机的多个数据采集通道进行状态诊断,得到第一通道诊断信息,对第一主机的对外通讯链路进行状态诊断,得到第一通讯诊断信息;通过互联心跳线路向第二主机发送第一心跳报文,第一心跳报文包括第一主机的工作状态信息、第一模块诊断信息、第一通道诊断信息和第一通讯诊断信息;在接收到第二主机发送的第二心跳报文的情况下,根据第二心跳报文和第一心跳报文调整第一主机的工作状态,其中,第二心跳报文包括第二主机的工作状态信息、第二模块诊断信息、第二通道诊断信息和第二通讯诊断信息;或者,执行基于互联心跳监测机制的双机运行方法,应用于第二主机,该方法包括:确定第二主机的工作状态信息;对第二主机的多个数据采集模块进行状态诊断,得到第二模块诊断信息,对第二主机的多个数据采集通道进行状态诊断,得到第二通道诊断信息,对第二主机的对外通讯链路进行状态诊断,得到第二通讯诊断信息;通过互联心跳线路向第一主机发送第二心跳报文,第二心跳报文包括第二主机的工作状态信息、第二模块诊断信息、第二通道诊断信息和第二通讯诊断信息;在接收到第一主机发送的第一心跳报文的情况下,根据第一心跳报文和第二心跳报文调整第二主机的工作状态,其中,第一心跳报文包括第一主机的工作状态信息、第一模块诊断信息、第一通道诊断信息和第一通讯诊断信息。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的基于互联心跳监测机制的双机运行方法,应用于第一主机,该方法包括:确定第一主机的工作状态信息;对第一主机的多个数据采集模块进行状态诊断,得到第一模块诊断信息,对第一主机的多个数据采集通道进行状态诊断,得到第一通道诊断信息,对第一主机的对外通讯链路进行状态诊断,得到第一通讯诊断信息;通过互联心跳线路向第二主机发送第一心跳报文,第一心跳报文包括第一主机的工作状态信息、第一模块诊断信息、第一通道诊断信息和第一通讯诊断信息;在接收到第二主机发送的第二心跳报文的情况下,根据第二心跳报文和第一心跳报文调整第一主机的工作状态,其中,第二心跳报文包括第二主机的工作状态信息、第二模块诊断信息、第二通道诊断信息和第二通讯诊断信息;或者,执行基于互联心跳监测机制的双机运行方法,应用于第二主机,该方法包括:确定第二主机的工作状态信息;对第二主机的多个数据采集模块进行状态诊断,得到第二模块诊断信息,对第二主机的多个数据采集通道进行状态诊断,得到第二通道诊断信息,对第二主机的对外通讯链路进行状态诊断,得到第二通讯诊断信息;通过互联心跳线路向第一主机发送第二心跳报文,第二心跳报文包括第二主机的工作状态信息、第二模块诊断信息、第二通道诊断信息和第二通讯诊断信息;在接收到第一主机发送的第一心跳报文的情况下,根据第一心跳报文和第二心跳报文调整第二主机的工作状态,其中,第一心跳报文包括第一主机的工作状态信息、第一模块诊断信息、第一通道诊断信息和第一通讯诊断信息。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
- 一种桥墩安全性实时监测系统及监测方法
- 一种印章全生命周期管控系统及管控方法
- 一种全可视化循环管路系统流动安全在线监测方法
- 一种超临界CO2封存与损伤监测试验系统及方法
- 多信息融合的CO2封存状态组网监测设备、系统和方法