CN109426610A - 一种vxWorks系统下的故障诊断方法 - Google Patents
一种vxWorks系统下的故障诊断方法 Download PDFInfo
- Publication number
- CN109426610A CN109426610A CN201710761653.5A CN201710761653A CN109426610A CN 109426610 A CN109426610 A CN 109426610A CN 201710761653 A CN201710761653 A CN 201710761653A CN 109426610 A CN109426610 A CN 109426610A
- Authority
- CN
- China
- Prior art keywords
- failure
- node
- fault
- fault diagnosis
- malfunctioning
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/366—Software debugging using diagnostics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本发明公开了一种vxWorks系统下的故障诊断方法,所述方法包括:确定待诊断故障;建立包含对应所有待诊断故障的多个故障节点的故障诊断链表,每个故障节点对应一个待诊断故障,所述故障节点包含故障处理函数以及下一节点指向信息;根据所述故障诊断链表进行故障诊断,包括:选定所述故障诊断链表中的一个故障节点;调用所述故障节点的故障处理函数,判断是否存在故障,如果否,根据所述下一节点指向信息转向下一个故障节点进行诊断;如果存在故障,记录故障,根据所述下一节点指向信息转向下一个故障节点进行诊断。本发明的方法可以在不会影响到正常业务的运行的情况下进行故障诊断,具有很高的实用价值以及推广价值。
Description
技术领域
本发明涉及电子技术领域,具体涉及一种vxWorks系统下的故障诊断方法。
背景技术
vxWorks是一种实时操作系统,以其良好的可靠性,和可靠的实时性被广泛地应用在通信,军事,航空,航天等高精尖技术及实时性要求极高的领域中。
运行了vxWorks操作系统的设备在现场运行时,发生故障后,当工程师分析故障时,很多故障无法复现,或者无法快速定位到故障原因。因此,为了帮助工程师快速定位故障原因,减少维护时间,最好的办法是在故障发生的同时进行故障记录,以便之后查询。
vxWorks下提供了core dump工具,当系统发生异常时,会导出异常发生时,所有寄存器,以及堆栈调用等信息,以便进行故障分析。但是core dump工具,只记录了异常发生时的数据,并且数据的记录依赖于文件系统。异常仅是故障中的一种,对于其他故障,例如温度过高,电源故障,网络流量过大等引起的故障,无法提供所要的数据。
发明内容
本发明提供了一种vxWorks系统下的故障诊断方法,所述方法包括:
确定待诊断故障;
建立包含对应所有待诊断故障的多个故障节点的故障诊断链表,每个故障节点对应一个待诊断故障,所述故障节点包含故障处理函数以及下一节点指向信息,其中,所有故障节点按单一队列排序,所述下一节点指向信息指向当前故障节点在队列中的下一个故障节点;
根据所述故障诊断链表进行故障诊断,包括:
选定所述故障诊断链表中的一个故障节点;
调用所述故障节点的故障处理函数,判断是否存在故障,如果否,根据所述下一节点指向信息转向下一个故障节点进行诊断;
如果存在故障,记录故障,根据所述下一节点指向信息转向下一个故障节点进行诊断。
在一实施例中,所述故障节点还包含采样周期,根据所述故障诊断链表进行故障诊断还包括:
在调用所述故障处理函数之前根据所述采样周期判断是否处于当前故障节点的监视周期,如果否,延时特定时长后根据所述下一节点指向信息转向下一个故障节点进行诊断;
如果是,调用所述故障处理函数判断是否存在故障。
在一实施例中,根据所述故障诊断链表进行故障诊断还包括:
在判断是否处于当前故障节点的监视周期之前判断当前指向的故障节点是否为空,如果否,延时特定时长后再次执行故障节点的选定操作;
如果是,根据所述采样周期判断是否处于当前故障节点的监视周期。
在一实施例中,采用vxWorks下的taskDelay工具实现延时。
在一实施例中,使用vxWorks下的消息队列记录故障。
在一实施例中,构造故障记录请求接口,在进行故障诊断时调用所述故障记录请求接口记录故障,包括:
当存在故障时生成故障信息并发送故障记录请求;
当所述故障记录请求接口接收到所述故障记录请求时,在所述故障信息中增加故障时间,将所述故障信息发送到消息队列中。
在一实施例中,所述故障信息包括故障严重程度和/或故障信息可持续性分级。
在一实施例中,所述方法还包括:
构造故障记录任务,在进行故障诊断时启动所述故障记录任务记录故障,所述故障记录任务配置为不断查看消息队列中是否有故障信息,如果是则进行故障记录。
在一实施例中,所述故障记录任务不依赖文件系统,当故障记录满,覆盖最老的故障信息,循环记录。
本发明还提出了一种存储介质,所述存储介质上存储有可实现本发明所述方法的程序代码。
本发明的方法可以在不会影响到正常业务的运行的情况下进行故障诊断,具有很高的实用价值以及推广价值。
本发明的其它特征或优点将在随后的说明书中阐述。并且,本发明的部分特征或优点将通过说明书而变得显而易见,或者通过实施本发明而被了解。本发明的目的和部分优点可通过在说明书、权利要求书以及附图中所特别指出的步骤来实现或获得。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例共同用于解释本发明,并不构成对本发明的限制。在附图中:
图1是根据本发明一实施例的方法流程图;
图2~图4是根据本发明不同实施例的部分方法流程图。
具体实施方式
以下将结合附图及实施例来详细说明本发明的实施方式,借此本发明的实施人员可以充分理解本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程并依据上述实现过程具体实施本发明。需要说明的是,只要不构成冲突,本发明中的各个实施例以及各实施例中的各个特征可以相互结合,所形成的技术方案均在本发明的保护范围之内。
运行了vxWorks操作系统的设备在现场运行时,发生故障后,当工程师分析故障时,很多故障无法复现,或者无法快速定位到故障原因。因此,为了帮助工程师快速定位故障原因,减少维护时间,最好的办法是在故障发生的同时进行故障记录,以便之后查询。
vxWorks下提供了core dump工具,当系统发生异常时,会导出异常发生时,所有寄存器,以及堆栈调用等信息,以便进行故障分析。但是core dump工具,只记录了异常发生时的数据,并且数据的记录依赖于文件系统。异常仅是故障中的一种,对于其他故障,例如温度过高,电源故障,网络流量过大等引起的故障,无法提供所要的数据。
针对上述问题,本发明提出了一种vxWorks系统下的故障诊断方法。本发明的方法可以在不会影响到正常业务的运行的情况下进行故障诊断,具有很高的实用价值以及推广价值。
接下来基于流程图详细描述本发明实施例的实施过程。附图的流程图中示出的步骤可以在包含诸如一组计算机可执行指令的计算机系统中执行。虽然在流程图中示出了各步骤的逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
如图1所示,在一实施例中,首先确定待诊断故障,即确定系统有可能发生的故障(S110)。具体的,在一实施例中,待诊断故障包括上电时间、温度、电源、CPU负荷、内存空闲率、任务状态、堆栈以及以太网网口通信状态。
然后根据所有有可能发生的故障建立故障诊断链表(S120)。具体的,故障诊断链表中包含对应所有待诊断故障的多个故障节点,每个故障节点对应一个待诊断故障。
最后,针对故障诊断链表中的每一个故障节点进行故障诊断(S130),即可以实现针对所有待诊断故障的故障诊断。
进一步的,在步骤S130中,并不是同时调用所有的故障节点,而是按照预设的顺序,每次分别选定一个故障节点,依次针对所有的故障节点。
具体的,每个故障节点包含故障处理函数以及下一节点指向信息。
在一实施例中,故障处理函数用于判断该故障节点对应的待诊断故障在何种情况下发生故障。具体的,故障处理函数至少包含两方面的内容:(1)诊断当前故障需要采集什么样的数据;(2)采集到的数据满足何种情况时视为发生故障。例如,针对温度故障,需要采集温度数据,并且在一应用场景中,设定温度数据超过70度时视为发生故障。
具体的,在一实施例中,故障处理函数包括数据采集指令以及故障条件,调用故障处理函数判断是否存在故障,包括:
根据数据采集指令采集故障相关数据;
判断故障相关数据是否满足所述故障条件。
进一步的,在一实施例中,利用或者优化vxworks下的工具实现故障相关数据的采集。例如CPU负荷的获取,优化spy工具,获取CPU占用率数据;利用ifconfig工具和重定向技术,获取网口状态,以及计算网口速率。
在一实施例中,下一节点指向信息用于描述诊断完当前故障节点后下一个被诊断的故障节点是哪一个,即,以何种顺序依次诊断故障诊断链表中所包含的每一个故障。具体的,令所有故障节点按单一队列排序,以队列中的任一故障节点而言,下一节点指向信息指向的是该故障节点在队列中的下一个故障节点。
进一步的,在一实施例中,队列中的最后一个故障节点包含的下一节点指向信息指向队列中的第一个故障节点。这样,在开始进行故障诊断的时候,在故障诊断链表中任意选定一个故障节点开始诊断,当针对当前故障节点的诊断完成后按照该故障节点的下一节点指向信息更换目标。这样,不断依次更换目标就可以完成针对所有故障节点的诊断,并且,可以无限循环,长期对所有故障节点进行周期性循环诊断。
进一步的,在一实施例中,队列中的最后一个故障节点并不包含下一节点指向信息,而是包含队列结束信息。这样,在开始进行故障诊断的时候,需要首先选定队列中的第一个故障节点开始诊断,然后按照下一节点指向信息依次更换目标,在选定最后一个故障节点并完成诊断后根据队列结束信息结束本周期的诊断,并且,根据诊断需求判断是否开始新周期的故障诊断。
具体的,如图1所示,在一实施例中,根据故障诊断链表进行故障诊断的过程包括:
选定故障诊断链表中的一个故障节点(S131,选定第一个需要诊断的故障节点);
调用步骤S131选定的故障节点的故障处理函数(S132),判断是否存在故障(S133),如果否,根据当前故障节点的下一节点指向信息转向下一个故障节点进行诊断(S135);
如果存在故障,记录故障(S134),然后再根据下一节点指向信息转向下一个故障节点进行诊断(S135)。
进一步的,在一实施例中,故障节点还包含采样周期。采样周期用于描述该故障节点对应的待诊断故障的诊断频率。在一实施例中,根据系统负荷和环境情况确定采样周期。例如,对于温度故障节点,设定其采样周期为10秒(或者至少10秒),即每10秒诊断一次温度是否发生故障(或者温度的诊断频率最多10秒一次)。
对应的,如图2所示,在一实施例中,根据故障诊断链表进行故障诊断的过程还包括:
在调用故障处理函数(S220)之前根据采样周期判断是否处于当前故障节点的监视周期(S210),如果否,延时特定时长(S230)后根据下一节点指向信息转向下一个故障节点进行诊断(S240);
如果是,调用故障处理函数(S220)判断是否存在故障(S221)。
进一步的,如图3所示,在一实施例中,根据故障诊断链表进行故障诊断的过程还包括:
在判断是否处于当前故障节点的监视周期(S310)之前判断当前指向的故障节点是否为空(S301),如果否,延时特定时长(S302)后再次执行故障节点的选定操作(S300);
如果是,根据采样周期判断是否处于当前故障节点的监视周期(S310)。
具体的,在一实施例中,采用vxWorks下的taskDelay工具实现延时(步骤S230和/或步骤S302)。这样可以释放CPU,从而不影响业务的运行。进一步的,在一实施例中,步骤S230和/或步骤S302的延时设置为1秒。
进一步的,在一实施例中,使用vxWorks下的消息队列记录故障。这样既可以立即响应记录请求,又可以等待CPU空闲,再进行故障记录。
具体的,在一实施例中,构造故障记录请求接口,在进行故障诊断时调用故障记录请求接口记录故障。如图4所示,在一实施例中,记录故障的过程包括:
当存在故障时生成故障信息并发送故障记录请求(S410);
当故障记录请求接口接收到所述故障记录请求时,在故障信息中增加故障时间,将故障信息发送到消息队列中(S420)。
进一步的,在一实施例中,故障记录请求接口是开放的,基于vxWorks之上的业务软件也可以调用该接口,进行业务相关的故障记录。
进一步的,在一实施例中,方法还包括:
构造故障记录任务,在进行故障诊断时启动故障记录任务记录故障,故障记录任务配置为不断查看消息队列中是否有故障信息,如果是则进行故障记录。
进一步的,在一实施例中,故障记录任务设置任务优先级为低优先级(例如250),这样可以最大限度的减少系统处理压力。
进一步的,在一实施例中,故障记录任务不依赖文件系统,当故障记录满,覆盖最老的故障信息,循环记录。这样可以避免文件系统故障,提供高可靠性故障记录。
进一步的,在一实施例中,故障信息包括:
故障严重程度(具体的,在一实施例中,包括:调试信息、一般信息、告警信息、错误信息);
故障信息可持续性分级(具体的,在一实施例中,包括:本次运行中可用(可能被覆盖)、本次运行中可用(不会被覆盖)、热重启后可用、冷重启后可用);
故障内容(具体的,在一实施例中,故障内容被限制为小于46个字节)。
进一步的,在其他实施例中,为降低数据长度,可根据实际需求设定故障信息中所包含的内容。例如,不包含故障严重程度和/或故障信息可持续性分级。
进一步的,本发明还提出了一种存储介质,该存储介质上存储有可实现本发明所述方法的程序代码。
虽然本发明所公开的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。本发明所述的方法还可有其他多种实施例。在不背离本发明实质的情况下,熟悉本领域的技术人员当可根据本发明做出各种相应的改变或变形,但这些相应的改变或变形都应属于本发明的权利要求的保护范围。
Claims (10)
1.一种vxWorks系统下的故障诊断方法,其特征在于,所述方法包括:
确定待诊断故障;
建立包含对应所有待诊断故障的多个故障节点的故障诊断链表,每个故障节点对应一个待诊断故障,所述故障节点包含故障处理函数以及下一节点指向信息,其中,所有故障节点按单一队列排序,所述下一节点指向信息指向当前故障节点在队列中的下一个故障节点;
根据所述故障诊断链表进行故障诊断,包括:
选定所述故障诊断链表中的一个故障节点;
调用所述故障节点的故障处理函数,判断是否存在故障,如果否,根据所述下一节点指向信息转向下一个故障节点进行诊断;
如果存在故障,记录故障,根据所述下一节点指向信息转向下一个故障节点进行诊断。
2.根据权利要求1所述的方法,其特征在于,所述故障节点还包含采样周期,根据所述故障诊断链表进行故障诊断还包括:
在调用所述故障处理函数之前根据所述采样周期判断是否处于当前故障节点的监视周期,如果否,延时特定时长后根据所述下一节点指向信息转向下一个故障节点进行诊断;
如果是,调用所述故障处理函数判断是否存在故障。
3.根据权利要求2所述的方法,其特征在于,根据所述故障诊断链表进行故障诊断还包括:
在判断是否处于当前故障节点的监视周期之前判断当前指向的故障节点是否为空,如果否,延时特定时长后再次执行故障节点的选定操作;
如果是,根据所述采样周期判断是否处于当前故障节点的监视周期。
4.根据权利要求2或3所述的方法,其特征在于,采用vxWorks下的taskDelay工具实现延时。
5.根据权利要求1所述的方法,其特征在于,使用vxWorks下的消息队列记录故障。
6.根据权利要求5所述的方法,其特征在于,构造故障记录请求接口,在进行故障诊断时调用所述故障记录请求接口记录故障,包括:
当存在故障时生成故障信息并发送故障记录请求;
当所述故障记录请求接口接收到所述故障记录请求时,在所述故障信息中增加故障时间,将所述故障信息发送到消息队列中。
7.根据权利要求6所述的方法,其特征在于,所述故障信息包括故障严重程度和/或故障信息可持续性分级。
8.根据权利要求6所述的方法,其特征在于,所述方法还包括:
构造故障记录任务,在进行故障诊断时启动所述故障记录任务记录故障,所述故障记录任务配置为不断查看消息队列中是否有故障信息,如果是则进行故障记录。
9.根据权利要求8所述的方法,其特征在于,所述故障记录任务不依赖文件系统,当故障记录满,覆盖最老的故障信息,循环记录。
10.一种存储介质,其特征在于,所述存储介质上存储有可实现如权利要求1-9中任一项所述方法的程序代码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710761653.5A CN109426610A (zh) | 2017-08-30 | 2017-08-30 | 一种vxWorks系统下的故障诊断方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710761653.5A CN109426610A (zh) | 2017-08-30 | 2017-08-30 | 一种vxWorks系统下的故障诊断方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109426610A true CN109426610A (zh) | 2019-03-05 |
Family
ID=65503797
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710761653.5A Pending CN109426610A (zh) | 2017-08-30 | 2017-08-30 | 一种vxWorks系统下的故障诊断方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109426610A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101137164A (zh) * | 2006-12-04 | 2008-03-05 | 中兴通讯股份有限公司 | 一种故障诊断测试项的规划方法 |
CN102760098A (zh) * | 2012-06-13 | 2012-10-31 | 北京航空航天大学 | 面向bit软件测试的处理器故障注入方法及其模拟器 |
CN103439113A (zh) * | 2013-06-21 | 2013-12-11 | 上海空间推进研究所 | 一种基于链表结构的故障诊断方法 |
CN105117771A (zh) * | 2015-07-28 | 2015-12-02 | 北京理工大学 | 一种基于关联规则有向无环图的农机故障识别方法 |
-
2017
- 2017-08-30 CN CN201710761653.5A patent/CN109426610A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101137164A (zh) * | 2006-12-04 | 2008-03-05 | 中兴通讯股份有限公司 | 一种故障诊断测试项的规划方法 |
CN102760098A (zh) * | 2012-06-13 | 2012-10-31 | 北京航空航天大学 | 面向bit软件测试的处理器故障注入方法及其模拟器 |
CN103439113A (zh) * | 2013-06-21 | 2013-12-11 | 上海空间推进研究所 | 一种基于链表结构的故障诊断方法 |
CN105117771A (zh) * | 2015-07-28 | 2015-12-02 | 北京理工大学 | 一种基于关联规则有向无环图的农机故障识别方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106789306B (zh) | 通信设备软件故障检测收集恢复方法和系统 | |
KR100898339B1 (ko) | 홈 네트워크 환경을 위한 자율적인 오류 처리 시스템 및 그방법 | |
CN106685676B (zh) | 一种节点切换方法及装置 | |
US8990634B2 (en) | Reporting of intra-device failure data | |
CN108710673B (zh) | 实现数据库高可用方法、系统、计算机设备和存储介质 | |
CN108845912B (zh) | 服务接口调用故障的报警方法及计算设备 | |
US20110314331A1 (en) | Automated test and repair method and apparatus applicable to complex, distributed systems | |
CN111881014B (zh) | 一种系统测试方法、装置、存储介质及电子设备 | |
CN109286529A (zh) | 一种恢复RabbitMQ网络分区的方法及系统 | |
CN101197621A (zh) | 一种对网管系统故障进行远程诊断定位的方法及其系统 | |
CN106569473A (zh) | 一种车辆远程诊断的方法、装置及系统 | |
WO2023125591A1 (zh) | 远程诊断方法及装置、系统、电子设备和存储介质 | |
US9355506B2 (en) | Method for managing fault messages of a motor vehicle | |
CN108733466A (zh) | 重启分布式系统中的应用系统实例的方法、装置及设备 | |
KR102020994B1 (ko) | 결함 주입 테스트 방법 및 장치 | |
CN113055203B (zh) | Sdn控制平面的异常恢复方法及装置 | |
CN117271234A (zh) | 故障诊断方法、装置、存储介质及电子装置 | |
CN109426610A (zh) | 一种vxWorks系统下的故障诊断方法 | |
CN107092532B (zh) | 一种远程调用方法及远程调用装置 | |
CN108196985A (zh) | 一种基于智能预测的存储系统故障预测方法与装置 | |
CN111162959B (zh) | 一种基于参数的航电接口数据通信协议模糊测试方法 | |
CN110095144A (zh) | 一种终端设备本地故障识别方法及系统 | |
CN114338451A (zh) | 一种控制器局域网总线测试系统、方法和存储介质 | |
CN112068935A (zh) | kubernetes程序部署监控方法、装置以及设备 | |
CN117289144B (zh) | 一种故障定位方法、装置、设备、系统和介质 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190305 |