问题排查与解决(仪器研发和生产)

本文内容不能帮你直接解决问题,但是试图去帮助更多人去系统有序地思考如何解决手头的问题。对有心人它将很有用,对公司它是工作可延续的一份重要文档。不过,这是一份个人自主总结的完全与公司没有半毛钱关系的也不将对公司公开的私人的但是共享的目前还是草稿阶段的文档。【特此声明】

一、 前言

问题无处不在,或大或小,或易或难,开发初始总是从一个坑踩到另一个坑,产品成型后紧接着BUG的修复,最后版本的迭代以至整个生命周期中都伴随着各式各样的问题。问题对于研发人员来说再平常不过,越到开发的后期,越是会出现系统性的不好解决的难题,因此可以说,一般的独立开发者都是解决问题的能手,对他们来说出现问题是值得兴奋的!

回忆过往,你会发现问题的复杂程度与引起问题点的复杂度没有任何关系,反而与你解决问题的方法、测试手段甚至运气有关,在解决问题的路上,最难缠的莫过于那些“偶发的难探测到”的问题而不是那些“难以追溯的问题”,所有“难追溯”的问题只要能够复现,好比无限复活闯关游戏一样,必会通关。相反那些低概率事件需要更多时间成本,如果可探测性弱那会雪上加霜,所以,在难能可贵的“抓获现场”必须要掌握一定的技巧,需要一些方法论的指导来提高解决问题的可能性和效率。

二、 故障排查

2.1 故障排查的基础

  1. 熟练使用工具

    示波器,万用表等仪器,或者调试工具,循环测试工具等软件工具。

    适时定制相关软硬件工具。如独立计数器,测试上位机

  2. 熟悉目标系统

    结构,电路,液路,气路,业务流程

    熟悉系统中已有的,也知道系统中没有的。知识积淀当然是多多益善。

  3. 良好的心态

    信心最重要,同时留有后招,在一种试验即将进行的时候,对预判的任何结果都有后续措施,这样能够游刃有余,避免焦躁。

  4. 一定的策略和思辨力

    这是独立于技术之外的一些普遍规律。例如在同等可能性的选项中,验证问题起因的顺序是先易后难;溯源时候定位问题点时有可能用到二分法的思路;对比、类比无处不在,往往可以排除一大片的可能点。经常需要跳出专业之外,在普遍的逻辑关系中查找蛛丝马迹。

  5. 一定的观察力

    发现与众不同的地方,思考不同中的共同点

  6. 一定的动手能力

    无论方法论多NB,问题点的排查工作量依然会很大,有时需要针对性地搭建适合的测试条件,而这些都不是现成的。

2.2 故障的识别

  1. 保护现场

    保留尽可能多的现场信息,若非必要不要关闭电脑,有必要的必须摄像,有条件的也要长期摄像。

    人为增加必要的log信息

    人为增加故障的探查能力-回零脉冲-回零数据log-液位百分比记录-普通Log分析

  2. 识别线索

    对故障现象的确认

    表现出来什么现象?是否还有其他现象表现出来?过去是否正常?其他机器是否正常?什么时候开始不正常?不正常前后发生了什么?

    对故障数据的收集,整理-归档

    现场拍照,监控、LOG等所有可能的资料收集

    对故障的进一步实验

    如果是复现性好的故障,应该反复看现象的发生,识别出规律,最终实现人工准确复现(或者单步即可复现),在此过程中,现象可能是动作,可能是数据,所谓规律可能是流程上的,也可能是数据LOG上或者图表上的,例如x轴失步问题,查看数据总是会丢1步,那么进一步试验,看看是否丢步与流程是否有倍数关系,一旦有倍数关系,必然与上位机流程控制相关,即可以找到一个突破口。

 

2.3 故障定位的方法

  1. 顺序探测法

    故障传递链-追根溯源

    例如通信由后往前,液位问题由底层往上位机

  2. 关键点探测法

    电路上,优先确认电源;通信问题优先排除上位机;

  3. 分块定位

    串口通讯异常(风扇跨接导致)的问题,涉及上位机-控制板-通讯口电路-通讯线-整机环境等多个方面

    分块定位也是解决那些多点同时存在故障的唯一方法。

    分块定位中,特别强调一下大类的定位思路:

    就是结构+底层软件+硬件+上位机流程控制

    首要回答的问题是:这个现象或者现象规律是否与流程有关?

    你要知道,底层无论是否有错,它不能控制错误发生的时机。如果错误表现出来的规律与流程有关,那很可能是上位机的问题,或者突破口就在上位机(源头可能在其他地方)。

  4. 替换法/类比法

    例如回零线异常闪烁

  5. 故障注入法/故障屏蔽法

以上,本质上都是控制变量法,只是形式顺序不一样,又比如正交试验,只是变量更多时想有序操作而已;但是前提是预备知识必须足以判别大部分变量,如果黑盒过多,问题是无法溯源的。
控制变量的前提是你能识别变量,着重讨论系统中的黑盒:
黑盒法的不适用-例如24V导致扫描板通讯问题
强联系与弱联系-黑盒的联系是弱联系

 

2.4 故障分析的手段

  1. 数据分析-制图-正则-数据的规律性

    没有数据,创造数据,有了数据,充分利用数据,如EXCEL、Python

    拿到所有的LOG,实际上可以知道所有时间点的“正常状态”

  2. 波形分析

    示波器应用

  3. 视频分析,图像分析

    单帧识别,自动图像识别

  4. 模拟测试

    探查问题的方式,需要一些辅助性分析手段,甚至模拟性测试

  5. 自动化测试

    手段只是辅助,关键还是在于缜密的逻辑分析和较为准确的逻辑判断

     

2.5 故障排查的次序

  1. 排查难度

    时间成本的问题,优先排除容易操作的

  2. 排查伤害

  3. 故障概率

    包含可探测性,在没有提高捕获率的时候它就是一个低概率事件

    可重复的错误,偶然错误

    可试错的系统,不可试错的系统,全模拟

  4. 重复规律

    与故障概率密切相关,但是发现规律需要更多的技巧和经验,故障概率高并不一定会有明显规律,这需要自己去发掘。经常,发现规律意味着可以复现故障。所以故障排查当然是要从那些先看到规律之处着手,由表及里,一般都能找到突破点。

伤害最小、概率最大、难度最小

2.6 故障排查的一些经验(明确的&有指导意义的)

除了故障的识别、分析、定位、顺序之外的其他注意点,他们是明确的,有指导意义。

  1. 注意保护性的措施,及时断电,快速处理,对机器,对人也一样。

  2. 特别注意,有可能故障点不止一处,就像九连环,1环就是一套流程,不能操之过急。

  3. 故障点≠故障根源-例如更换防撞问题,特别注意那些处理以后依然出问题的故障点

  4. 突破点≠故障根源,如果你发现与流程有关,然后定位到上位机一条指令,那也许是这条指令触发了底层故障。千万不能停在99步。

  5. 确认之再确认,问题的重现与失现

  6. 不要做无法验证的假设

  7. 跳出专业,使用常人的逻辑-避免过多的细节干扰

  8. 不能降低问题的发生概率,相反需要增加概率,甚至破坏性试验

  9. 可探测性,不要被测试手段所迷惑,可能问题在于探测本身

  10. 细心:对现象细致入微的观察,对输入的动作之反馈要反复识别,避免兜圈

  11. 有心发现现象中的规律,尤其动作执行的规律、数据中的规律。

  12. 一般软件问题会表现出很强的规律性,复现性也较好;

  13. 一般硬件问题对时间的耐受性不好,随着测试进行硬件问题会恶化并最终表现出来,一般采用高强度的/极限的/破坏性的试验会迅速发现硬件故障点;

  14. 偶发的EMI问题很难找到规律,是最难解决的问题,优先提高可探测性非常重要。其次对可能的干扰源和被影响线路、电路板做充分保护(故障屏蔽法)。另外有条件的可以使用故障注入法。

2.7 问题解决后的一些感想(不明确的&只是方向性认知)

除了以上内容,还有一些不明确的但是有用的结论可供参考:

  1. 信心

  2. 无时无刻的思考

  3. 一定的知识面-知识体系

  4. 先期的逻辑判断,问题现象分析,数据分析,现象形式的多样化(声音,光,电,热,数据,爆炸,烟,焦味),利用系统现有资源快速识别、重复现象。

  5. 感觉和直觉并不可靠,获取可视化、可量化的现象、数据

  6. 已有经验(先入为主)和草率的识别是最严重的障碍-导致兜圈

  7. “很难”的问题确来自于很“简单”的失误

  8. 跳出专业去思考问题,问问实际操作的非研发人员或许会有意外收获

三、 问题的分类

问题的分类对实际解决问题没什么用,但是对于汇总整理检索问题卡片却非常重要,前人走过的坑岂能再走?所以这也是提高解决问题能力的一层。

从源头:

硬件(包括结构)问题

软件(底层和上位机)问题

容差问题(设计上软件/硬件余量不足)-降额设计

生产中的失误

不正确的操作

偶然的破坏(包括EMI)

从现象:

通信故障

传感器探测故障

系统组件故障

运动位置故障

上位机记录的故障

四、 理论的重要

理论是技巧的基础,在此就暂且混为一谈不做区分了。

如何发现复杂现象中的规律?

如何识别和处理EMI问题?

EMI测试和处理

其他知识点

小电流信号更易受干扰

电源

接地

五、 对测试技术的启示

故障排查与测试技术密不可分:1.仪器仪表使用 2.测试方法论 3.测试自动化

传统的:

功能测试

单元测试

六、 对产品开发的启示

可视的灯

经常,灯能够迅速查看底层硬件的功能

软件(上位机&底层)错误的可追溯

主动探测,自动恢复

【远程维护的设想与实现-监测与诊断系统】:产品三层次:功能性-可靠性-可维护性

OSA-CBM理论 ,参见《设备故障诊断及远程维护技术》

更好的摄像,更好的log系统

测试与记录的技术:录像,正则,拿到数据,可视化制图表,如何制造有用数据?

 

七、 良好的习惯-问题记录模板

问题分类/ID:

现象:

处理过程: 措施 结果 备注

理论点:

传递链:

总结:

对测试的启示:

八、 参考资料

《你好,放大器》

《电子电气工程师必知必会》

《模拟电路故障诊断》

*关于硬件,关于系统的书籍中会设计此类专题,软件开发相关书籍中大部分只是专注于技术本身,排错或许=Debug。

附录:已有故障简述

【24V影响扫描通信-阐述黑盒原理】

【风扇跨接影响电源影响通信】

电路板芯片问题、搭锡问题导致通讯不良,只收不发

短接片问题通讯不良

疑似散热片接地导致的异常通信和烧板

电脑的通讯不良-设置端口后必须重启

 

【液位板防撞的影响】

液位针不下降的问题

液位针焊接问题

液位前端固定块材质

老液位芯片故障

老液位短接片问题

老液位触碰死机问题

无针出现防碰撞-CAN005疑似上位机通信处理问题

无针出现防碰撞-松动板子底部碰到壳体大地

 

【隔膜泵导致南京板多走步】

【疑似空气泵导致005信号异常(Z电机丢步、回零信号)】

 

伺服系统问题-伺服故障-结构刚性

回零信号乱闪问题

 

温控板不升温问题-接线or参数or第一次设参

 

【南京板试剂臂速度异常增快-内部BUG,两次设速解决】

电机板响声问题-疑似芯片均一性-与电阻的配合-黑盒理论

夹爪的各种问题-卡死-不到位-准确度(持续扩张问题)

005CAN设备奇怪的接口影响夹爪稳定性问题-夹两次逻辑

005CAN的异常通信问题-根据log逻辑判断是上位机问题

005CAN上电初始通信故障-CAN底层驱动自动离线

 

【001B上位机流程异常干涉问题-通过单帧查看发现碰撞】

【001B上位机升降臂故障辅助定位-增加回零脉冲识别】

 

【伺服转步进异常距离震动-来自机械共振-开发工具-模拟测试!】

机械问题

失步问题-同步轮松动

底层BUG

x轴运步数轻微偏差-底层对0步指令实际走1步-与上位机中计算走出0步也有关系

扫描版的回零BUG

运动控制曲线BUG

文档变更历史

序号时间内容作者
12020.05.30 12:32草稿H_xk
    
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值