主权项 |
一种控制器局域网的自适应故障诊断方法,其特征在于该方法包含以下步骤:1)节点初始化12)为控制器局域网中的每个节点分配唯一的编号ID,所述控制器局域网由n个节点组成,n为控制器局域网节点的总数量;13)为控制器局域网分配一块存储空间作为信息段,所述信息段用于存放所有节点的信息,所述节点信息包括节点ID及其状态指示信息,所述状态指示信息包括“有故障”、“无故障”、“待测试”,该存储空间的大小根据控制器局域网节点的总数量确定;14)建立节点集,并将所有节点加入节点集;15)建立故障节点集,初始化为空;2)首个无故障节点的发现21)设置以下测试模型:节点A测试节点B的过程是节点A向节点B发送测试帧,当节点B收到测试帧后能正确应答,表明节点B正常,节点A测试节点B的测试结果为0;当节点B收到测试帧后不能正确应答,表明节点B有故障,节点A测试节点B的测试结果为1;22)从节点集中选取一个节点作为源节点;23)从节点集中选取另一节点作为受测节点,源节点向受测节点发送测试帧,若源节点测试受测节点的测试结果为1,则转向步骤23),否则转向步骤24);24)受测节点向源节点发送测试帧,若受测节点测试源节点的测试结果为0,则确定源节点为无故障节点,停止测试;若受测节点测试源节点的测试结果为1,则转向步骤22);3)节点测试31)把选出的无故障节点作为测试源,该测试源用于测试其他节点;32)从节点集中按ID选取未测试节点作为当前受测节点;33)从测试源向受测节点发送测试帧;34)若测试结果为0,将受测节点标记为无故障,更新信息段中当前测试节点的状态指示信息,并且转向步骤35),否则转向步骤4);35)判断节点集是否为空,若不为空则转向步骤32),若不为空,则完成测试;4)进行故障节点的诊断修复44)系统对当前未通过的受测节点进行诊断修复,诊断通过则将其重新加入节点集,转向步骤32),否则转向步骤42);45)将当前受测节点标记为有故障,更新信息段中当前测试节点的状态指示信息,将此故障节点加入故障节点集,转向步骤35)。 |