一种故障诊断项的处理方法及系统与流程

文档序号:20343843发布日期:2020-04-10 22:28阅读:112来源:国知局
一种故障诊断项的处理方法及系统与流程
本发明涉及软件开发
技术领域
,更具体的说,涉及一种故障诊断项的处理方法及系统。
背景技术
:工业控制系统在运行过程中,为保证工作的稳定性,通常会进行自我故障诊断。一般工业控制系统的自我诊断都是以硬件模块为单位进行检测,工业控制系统将各个硬件模块检测的故障诊断信息打包成一个或多个诊断数据报文,并通过以太网或串口通信等方式,发送给计算机。计算机接收工业控制系统发送的诊断数据报文,对诊断数据报文进行解析,存储在对应的一个或多个线性表中,然后直接将线性表中的内容刷新到界面进行展示。但是,直接将工业控制系统发送的故障诊断信息进行显示,会导致一些误报或者故障描述偏差。例如,硬件1检测到故障a,硬件2、3、4、……、100检测到了故障b,而实际上故障b是由故障a引起的。然而,工业控制系统会将这101个故障全部发送给计算机,按照现有方法直接显示101个故障,则会导致主要故障a被100个间接故障b淹没。现有方案中,主要靠人工根据计算机展示的故障诊断信息,分析各个故障诊断项之间的关联关系,从而确定主要故障,因此,费时费力,故障诊断效率低。技术实现要素:有鉴于此,本发明公开一种故障诊断项的处理方法及系统,以实现通过将故障树和线性表通过故障诊断项进行关联,并结合故障树中各个树节点之间的关联关系,来确定当前诊断数据报文中的主要故障,因此,省时省力,提高了故障诊断效率。一种故障诊断项的处理方法,包括:获取工业控制系统发送的当前诊断数据报文,所述当前诊断数据报文包括:多个故障诊断项以及每个所述故障诊断项的诊断结果;从预先建立的线性表集群中,查找到与所述当前诊断数据报文对应的目标线性表,其中,所述线性表集群包括:n个线性表,每个所述线性表至少包括:故障诊断项以及该故障诊断项的节点地址,n为正整数;将各个所述诊断结果保存到所述目标线性表中与各个所述诊断结果对应的目标故障诊断项中;根据各个所述目标故障诊断项的节点地址,从预先建立的故障树中查找到各个所述目标故障诊断项对应的树节点,其中,所述故障树中的每个树节点对应一个故障诊断项;从查找到的各个树节点中,确定作为父节点的目标树节点,并将所述目标树节点对应的故障诊断项作为所述当前诊断数据报文中的主要故障。可选的,还包括:输出所述主要故障。可选的,所述故障树的创建过程包括:确定所述工业控制系统所有的故障诊断项;根据各个所述故障诊断项之间的关联关系创建故障树,所述故障树中的每个树节点对应一个故障诊断项。可选的,所述线性表的创建过程包括:针对所述工业控制系统发送的每个诊断数据报文的报文格式,创建所述诊断数据报文对应的线性表,其中,所述诊断数据报文中包含的每个故障诊断项作为所述线性表的每个元素,所述线性表至少包括:故障诊断项以及该故障诊断项的节点地址。可选的,还包括:将所述故障树中的每个所述树节点在内存中的位置,保存在所述线性表中与所述树节点对应的故障诊断项的节点地址中,实现所述故障树与所述线性表之间数据结构的搭建。一种故障诊断项的处理系统,包括:获取单元,用于获取工业控制系统发送的当前诊断数据报文,所述当前诊断数据报文包括:多个故障诊断项以及每个所述故障诊断项的诊断结果;第一查找单元,用于从预先建立的线性表集群中,查找到与所述当前诊断数据报文对应的目标线性表,其中,所述线性表集群包括:n个线性表,每个所述线性表至少包括:故障诊断项以及该故障诊断项的节点地址,n为正整数;保存单元,用于将各个所述诊断结果保存到所述目标线性表中与各个所述诊断结果对应的目标故障诊断项中;第二查找单元,用于根据各个所述目标故障诊断项的节点地址,从预先建立的故障树中查找到各个所述目标故障诊断项对应的树节点,其中,所述故障树中的每个树节点对应一个故障诊断项;确定单元,用于从查找到的各个树节点中,确定作为父节点的目标树节点,并将所述目标树节点对应的故障诊断项作为所述当前诊断数据报文中的主要故障。可选的,还包括:输出单元,用于输出所述主要故障。可选的,还包括:故障树创建单元,用于确定所述工业控制系统所有的故障诊断项;根据各个所述故障诊断项之间的关联关系创建故障树,所述故障树中的每个树节点对应一个故障诊断项。可选的,还包括:线性表创建单元,用于针对所述工业控制系统发送的每个诊断数据报文的报文格式,创建所述诊断数据报文对应的线性表,其中,所述诊断数据报文中包含的每个故障诊断项作为所述线性表的每个元素,所述线性表至少包括:故障诊断项以及该故障诊断项的节点地址。可选的,还包括:保存单元,用于将所述故障树中的每个所述树节点在内存中的位置,保存在所述线性表中与所述树节点对应的故障诊断项的节点地址中,实现所述故障树与所述线性表之间数据结构的搭建。从上述的技术方案可知,本发明公开了一种故障诊断项的处理方法及系统,获取工业控制系统发送的当前诊断数据报文,当前诊断数据报文包括:多个故障诊断项以及每个故障诊断项的诊断结果,从线性表集群中查找到与当前诊断数据报文对应的目标线性表,将当前诊断数据报文中包含的每个故障诊断项的诊断结果保存到目标线性表中与各个诊断结果对应的目标故障诊断项中,根据各个目标故障诊断项的节点地址,从故障树中查找到各个目标故障诊断项对应的树节点,将查找到的各个树节点中的父节点对应的故障诊断项作为当前诊断数据报文中的主要故障。本发明通过将故障树和线性表通过故障诊断项进行关联,并结合故障树中各个树节点之间的关联关系,来确定当前诊断数据报文中的主要故障,相对于人工确定主要故障而言,省时省力,提高了故障诊断效率。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据公开的附图获得其他的附图。图1为本发明实施例公开的一种故障诊断项的处理方法流程图;图2为本发明实施例公开的一种故障树的结构示意图;图3为本发明实施例公开的一种故障树和线性表的关联关系示意图;图4为本发明实施例公开的一种故障诊断项的处理系统的结构示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本发明实施例公开了一种故障诊断项的处理方法及系统,获取工业控制系统发送的当前诊断数据报文,当前诊断数据报文包括:多个故障诊断项以及每个故障诊断项的诊断结果,从线性表集群中查找到与当前诊断数据报文对应的目标线性表,将当前诊断数据报文中包含的每个故障诊断项的诊断结果保存到目标线性表中与各个诊断结果对应的目标故障诊断项中,根据各个目标故障诊断项的节点地址,从故障树中查找到各个目标故障诊断项对应的树节点,将查找到的各个树节点中的父节点对应的故障诊断项作为当前诊断数据报文中的主要故障。本发明通过将故障树和线性表通过故障诊断项进行关联,并结合故障树中各个树节点之间的关联关系,来确定当前诊断数据报文中的主要故障,相对于人工确定主要故障而言,省时省力,提高了故障诊断效率。参见图1,本发明一实施例公开的一种故障诊断项的处理方法流程图,该方法包括步骤:步骤s101、获取工业控制系统发送的当前诊断数据报文;具体的,当工业控制系统在运行过程中进行自我诊断时,工业控制系统中的各个硬件模块进行自我诊断,并发送至工业控制系统中的控制器,该控制器将各个硬件模块检测的故障诊断信息打包成一个或多个诊断数据报文,发送给计算机,此时,计算机会获取工业控制系统发送的诊断数据报文。本实施例中的当前诊断数据报文指的是:工业控制系统在当前时刻发送的诊断数据报文。其中,所述当前诊断数据报文包括:多个故障诊断项以及每个所述故障诊断项的诊断结果。故障诊断项指的是:需要进行故障诊断的项目名称,比如,硬件1检测其是否存在故障a,故障诊断项对应的诊断结果为:存在故障a,或是,不存在故障a。步骤s102、从预先建立的线性表集群中,查找到与所述当前诊断数据报文对应的目标线性表;其中,所述线性表集群包括:n个线性表,每个所述线性表至少包括:故障诊断项以及该故障诊断项的节点地址,n为正整数。由于工业控制系统发送的当前诊断数据报文中包括故障诊断项,而线性表中也包含故障诊断项,因此,基于故障诊断项,即可从线性表集群中,查找到与当前诊断数据报文对应的目标线性表。线性表的表示形式可参见表1。表1故障诊断项1节点地址故障诊断项2节点地址故障诊断项3节点地址故障诊断项4节点地址故障诊断项5节点地址故障诊断项6节点地址故障诊断项7节点地址故障诊断项8节点地址需要特别说明的是,线性表是根据工业控制系统发送的诊断数据报文建立的,一个诊断数据报文对应一个线性表,诊断数据报文中包含的故障诊断项的种类,与线性表中包含的故障诊断项的种类相同。上述表1中示出的故障诊断项的包括八种只是一个实例,在实际应用中,一个线性表包含的故障诊断项的种类由相对应的诊断数据报文包含的故障诊断项的数量决定。为便于理解,本发明提供了线性表的创建过程如下:针对工业控制系统发送的每个诊断数据报文的报文格式,创建诊断数据报文对应的线性表,其中,所述诊断数据报文中包含的每个故障诊断项作为所述线性表的每个元素,所述线性表至少包括:故障诊断项以及该故障诊断项的节点地址。其中,线性表中各个故障诊断项的排序与各个故障诊断项在诊断数据报文中的排序相同,以便将诊断数据报文快速映射到对应的线性表中。需要特别说明的是,线性表在建立初期,节点地址一项为空,故障诊断项一栏仅包括:故障诊断项的名称,并不包含故障诊断项的诊断结果。当一个诊断数据包分多个诊断数据报文发送时,则针对每个诊断数据报文建立一个对应的线性表。在实际应用中,线性表结构,可以是数组、链表来实现,也可以直接采用结构(c/c++的struct)或者类,通过其成员的顺序来实现。步骤s103、将各个所述诊断结果保存到所述目标线性表中与各个所述诊断结果对应的目标故障诊断项中;具体的,基于上述论述可知,当前诊断数据报文包括:多个故障诊断项以及每个所述故障诊断项的诊断结果。而初始建立的线性表中仅包含故障诊断项的名称,并不包含故障诊断项的诊断结果,因此,在确定当前诊断数据报文对应的目标线性表后,可以将当前诊断数据报文中包含的各个故障诊断项的诊断结果存储至目标线性表对应的故障诊断项中。也就是说,在线性表的故障诊断项一栏包括:故障诊断项的名称和故障诊断项的诊断结果。当然,在实际应用中,可以在线性表中增加一栏用于放置故障诊断项的诊断结果。步骤s104、根据各个所述目标故障诊断项的节点地址,从预先建立的故障树中查找到各个所述目标故障诊断项对应的树节点;其中,所述故障树中的每个树节点对应一个故障诊断项。本实施例中,故障树的创建过程如下:确定工业控制系统所有的故障诊断项;根据各个故障诊断项之间的关联关系创建故障树,故障树中的每个树节点对应一个故障诊断项。通常情况下,工业控制系统的各个硬件模块能够检测的故障诊断项是已知的,基于此,可以确定工业控制系统所有的故障诊断项。在实际应用中,通过对各个故障诊断项之间的关联关系进行梳理,可以确定作为父节点的故障诊断项以及可以作为子节点的故障诊断项,从而根据各个父节点和各个子节点创建一个故障树。故障树的结构可以参见图2所示,其中,故障诊断项1为父节点,故障诊断项2和故障诊断项3为故障诊断项1的子节点;当故障诊断项3为父节点时,故障诊断项4、故障诊断项5和故障诊断项6作为故障诊断项3的子节点;当故障诊断项2为父节点时,故障诊断项7和故障诊断项8作为故障诊断项2的子节点。其中,故障树的结构根据实际需要而定,图2仅是一个实例。需要特别说明的是,本发明在创建故障树以及线性表后,会基于故障诊断项将故障树与各个线性表进行关联。具体的,将故障树中的每个树节点在内存中的位置,保存在线性表中与树节点对应的故障诊断项的节点地址中,实现故障树与线性表之间数据结构的搭建,其中,树节点包括:父节点和子节点。故障树与线性表的关联关系可参见图3所示。因此,本实施例在确定目标故障诊断项后,可以从对应的线性表中查找到各个目标故障诊断项对应的节点地址,然后根据节点地址,确定各个目标故障诊断项在故障树中的位置,由于故障树的树状结构的特殊性,子节点的状态可以快速传递到父节点,父节点的状态也可以快速影响到该父节点的所有的子节点,因此,可以根据故障树的树状结构快速进行一次关联故障逻辑处理,对不必要的故障进行屏蔽操作,从而确定作为父节点的目标树节点,该目标树节点对应的故障诊断项也即当前诊断数据报文中的主要故障。步骤s105、从查找到的各个树节点中,确定作为父节点的目标树节点,并将所述目标树节点对应的故障诊断项作为所述当前诊断数据报文中的主要故障。综上可知,本发明公开的故障诊断项的处理方法,获取工业控制系统发送的当前诊断数据报文,当前诊断数据报文包括:多个故障诊断项以及每个故障诊断项的诊断结果,从线性表集群中查找到与当前诊断数据报文对应的目标线性表,将当前诊断数据报文中包含的每个故障诊断项的诊断结果保存到目标线性表中与各个诊断结果对应的目标故障诊断项中,根据各个目标故障诊断项的节点地址,从故障树中查找到各个目标故障诊断项对应的树节点,将查找到的各个树节点中的父节点对应的故障诊断项作为当前诊断数据报文中的主要故障。本发明通过将故障树和线性表通过故障诊断项进行关联,并结合故障树中各个树节点之间的关联关系,来确定当前诊断数据报文中的主要故障,相对于人工确定主要故障而言,省时省力,提高了故障诊断效率。为进一步优化上述实施例,在步骤s105之后,处理方法还可以包括:输出主要故障。本发明通过将确定的主要故障进行输出,来提醒工作人员工业控制系统在当前存在的故障,以便工作人员采取有效措施,提高工业控制系统的工作稳定性。与上述方法实施例相对应,本发明还公开了一种故障诊断项的处理系统。参见图4,本发明一实施例公开的一种故障诊断项的处理系统的结构示意图,该处理系统包括:获取单元201,用于获取工业控制系统发送的当前诊断数据报文,所述当前诊断数据报文包括:多个故障诊断项以及每个所述故障诊断项的诊断结果;具体的,当工业控制系统在运行过程中进行自我诊断时,工业控制系统中的各个硬件模块进行自我诊断,并发送至工业控制系统中的控制器,该控制器将各个硬件模块检测的故障诊断信息打包成一个或多个诊断数据报文,发送给计算机,此时,计算机会获取工业控制系统发送的诊断数据报文。本实施例中的当前诊断数据报文指的是:工业控制系统在当前时刻发送的诊断数据报文。其中,所述当前诊断数据报文包括:多个故障诊断项以及每个所述故障诊断项的诊断结果。故障诊断项指的是:需要进行故障诊断的项目名称,比如,硬件1检测其是否存在故障a,故障诊断项对应的诊断结果为:存在故障a,或是,不存在故障a。第一查找单元202,用于从预先建立的线性表集群中,查找到与所述当前诊断数据报文对应的目标线性表,其中,所述线性表集群包括:n个线性表,每个所述线性表至少包括:故障诊断项以及该故障诊断项的节点地址,n为正整数;由于工业控制系统发送的当前诊断数据报文中包括故障诊断项,而线性表中也包含故障诊断项,因此,基于故障诊断项,即可从线性表集群中,查找到与当前诊断数据报文对应的目标线性表。需要特别说明的是,线性表是根据工业控制系统发送的诊断数据报文建立的,一个诊断数据报文对应一个线性表,诊断数据报文中包含的故障诊断项的种类,与线性表中包含的故障诊断项的种类相同。上述表1中示出的故障诊断项的包括八种只是一个实例,在实际应用中,一个线性表包含的故障诊断项的种类由相对应的诊断数据报文包含的故障诊断项的数量决定。为便于理解,本发明提供了线性表的创建过程,也即,故障诊断项的处理系统还包括:线性表创建单元,用于针对所述工业控制系统发送的每个诊断数据报文的报文格式,创建所述诊断数据报文对应的线性表,其中,所述诊断数据报文中包含的每个故障诊断项作为所述线性表的每个元素,所述线性表至少包括:故障诊断项以及该故障诊断项的节点地址。其中,线性表中各个故障诊断项的排序与各个故障诊断项在诊断数据报文中的排序相同,以便将诊断数据报文快速映射到对应的线性表中。需要特别说明的是,线性表在建立初期,节点地址一项为空,故障诊断项一栏仅包括:故障诊断项的名称,并不包含故障诊断项的诊断结果。当一个诊断数据包分多个诊断数据报文发送时,则针对每个诊断数据报文建立一个对应的线性表。在实际应用中,线性表结构,可以是数组、链表来实现,也可以直接采用结构(c/c++的struct)或者类,通过其成员的顺序来实现。保存单元203,用于将各个所述诊断结果保存到所述目标线性表中与各个所述诊断结果对应的目标故障诊断项中;具体的,基于上述论述可知,当前诊断数据报文包括:多个故障诊断项以及每个所述故障诊断项的诊断结果。而初始建立的线性表中仅包含故障诊断项的名称,并不包含故障诊断项的诊断结果,因此,在确定当前诊断数据报文对应的目标线性表后,可以将当前诊断数据报文中包含的各个故障诊断项的诊断结果存储至目标线性表对应的故障诊断项中。也就是说,在线性表的故障诊断项一栏包括:故障诊断项的名称和故障诊断项的诊断结果。当然,在实际应用中,可以在线性表中增加一栏用于放置故障诊断项的诊断结果。第二查找单元204,用于根据各个所述目标故障诊断项的节点地址,从预先建立的故障树中查找到各个所述目标故障诊断项对应的树节点,其中,所述故障树中的每个树节点对应一个故障诊断项;为进一步优化上述实施例,本发明还提供了故障树的创建过程。处理系统还可以包括:故障树创建单元,用于确定所述工业控制系统所有的故障诊断项;根据各个所述故障诊断项之间的关联关系创建故障树,所述故障树中的每个树节点对应一个故障诊断项。通常情况下,工业控制系统的各个硬件模块能够检测的故障诊断项是已知的,基于此,可以确定工业控制系统所有的故障诊断项。在实际应用中,通过对各个故障诊断项之间的关联关系进行梳理,可以确定作为父节点的故障诊断项以及可以作为子节点的故障诊断项,从而根据各个父节点和各个子节点创建一个故障树。需要特别说明的是,本发明在创建故障树以及线性表后,会基于故障诊断项将故障树与各个线性表进行关联,具体参见图3所示实施例。确定单元205,用于从查找到的各个树节点中,确定作为父节点的目标树节点,并将所述目标树节点对应的故障诊断项作为所述当前诊断数据报文中的主要故障。综上可知,本发明公开的故障诊断项的处理系统,获取工业控制系统发送的当前诊断数据报文,当前诊断数据报文包括:多个故障诊断项以及每个故障诊断项的诊断结果,从线性表集群中查找到与当前诊断数据报文对应的目标线性表,将当前诊断数据报文中包含的每个故障诊断项的诊断结果保存到目标线性表中与各个诊断结果对应的目标故障诊断项中,根据各个目标故障诊断项的节点地址,从故障树中查找到各个目标故障诊断项对应的树节点,将查找到的各个树节点中的父节点对应的故障诊断项作为当前诊断数据报文中的主要故障。本发明通过将故障树和线性表通过故障诊断项进行关联,并结合故障树中各个树节点之间的关联关系,来确定当前诊断数据报文中的主要故障,相对于人工确定主要故障而言,省时省力,提高了故障诊断效率。为进一步优化上述实施例,处理系统还可以包括:输出单元,用于输出所述主要故障。为进一步优化上述实施例,处理系统还可以包括:保存单元,用于将所述故障树中的每个所述树节点在内存中的位置,保存在所述线性表中与所述树节点对应的故障诊断项的节点地址中,实现所述故障树与所述线性表之间数据结构的搭建。需要特别说明的是,系统实施例中,各组成部分的具体工作原理,请参见方法实施例对应部分,此处不再赘述。最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1