微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 硬件电路设计 > 硬件电路设计讨论 > 让软件工程师去修复硬件问题,咋下手?

让软件工程师去修复硬件问题,咋下手?

时间:12-13 整理:3721RD 点击:
2015-08-03 17:46:33 来源:EEFOCUS

程序员趣事一箩筐   RS-485   通讯连接   串口

“人非圣贤,孰能无过。过而能改,善莫大焉”。当产品出现问题时,要立刻修改功能,更正错误,修补Bug工程师每天的家常便饭;客户提出新的需求工程师都必须马上相应,忙着更新、增加功能也是工程师工作的重头戏;如果在应用现场产品出现问题就显得有些火烧眉毛,远水解不了近渴了。

从流程上来看,产品应用出现问题,一般是客户找销售,销售找售后,售后找项目经理,项目经理找工程师,工程师无人可找,问题就此解决。工程师的工作从其他人看来是“修改错误”,专业名词是“消缺”,我也认为“消缺”更加适合,因为问题不一定是错误。
工程师的工作百分之百是以事实为依据,凡事必须是一要有逻辑,二要有事实依据。但是销售与客户就未必考虑那么周全,也许是职业定位的原因,工程师声音未必那么洪亮,好像错误永远在自己这一边。

今天就讲讲发生在我同事王林身上的一件事情。

王林在半年前接手了一位离职同事设计的压缩机产品,因为离职那位同事留下的资料不太完整,而且客户对产品又提出了比较多的更改要求,因此单位就重新设计了硬件平台。王林本人对工作非常负责,干脆自己重写了产品的所有代码。该产品有两大部分组成:主板与显示板。由主板向显示板提供电源,两大部分通过RS-485通讯连接,电源与RS-485通过一根9针串口实现。
王林在主板与显示板采用了MODBUS协议,在协议中采用CRC校验。两个月后,王林完成产品的软件编写,而且通过公司开会讨论项目顺利通过。产品是为上海一家生产压缩机的厂家订做的,产品完成设计以后就向上海用户提供了80台产品。
产品硬件焊接完成以后,在调试阶段王林发现在有些产品两块电路板通讯一直有问题,故障率超过了10%,测试发现都是RS485通讯芯片坏了,更换后恢复正常。因为以前没有遇到过这种现象,王林向老板口头报告了这现象。老板也让王林写了一份书面的报告。王林很客观地撰写了一个简短报告,简单明了地阐述了在此次产品调试过程中发现RS-485芯片故障率超过10%。
报告提交给老板后,那批货已经发货给上海客户了。一个月过去了王林并没有得到任何回应。不久客户那边打电话找到老板,说发现新安装的两套产品根本不能使用。因为杭州靠近上海,老板就让杭州的技术人员郭工赶到上海进行查看。郭工在查看完设备以后确认是产品的问题。
老板被客户逼急了,开始大发脾气:“小王,到底什么问题,以前老产品从来没出过这种情况,你好好检查一下你的程序。”

“产品发货前都进行了质检,不应该有问题,既然咱们的技术人员在上海,就多检查几台吧。”老板着急上火,王林倒显得气定神闲。

老板继续与郭工沟通去了,过了一会郭工通过手机发过来一段视频,显示板的LED不规则显示。老板将视频展示给王林看。

“看,还说不是程序问题,快点检查。”

王林拿出一套产品,通电后,怎么也出现不了视频显示的故障现象。王林有点儿茫然,看时间已经18:00了,已经超过下班半个小时了。王林把软件发给了郭工,让郭工重新下载一下。郭工下载后,还是原来的现象。上海的客户也下班了,郭工向客户要了两套产品回宾馆了。

郭工回宾馆后,发现了一个新现象,就是一套产品没有问题,一套产品确实有问题。郭工直接与王林联系了,根据郭工的对故障现象的描述,王林认为是显示板得不到主板数据,所以显示数据是随机的,王林随即将自己判断汇报给老板。
  
“一台有问题,一台没有问题,肯定是你的软件不可靠!?”我当时正在陪王林检查程序,我和王林差点没憋住笑了出来。我们老板是80年代毕业的大学生,毕业后在一家研究所工作。2000年初开始创办企业,也算工程师前辈人物,怎么会说出这么不经推敲的话来。
难不成王林给产品写入了不同版本的软件?我突然想起一句话“人可以无知,但不可以愚昧”。也不知道老板在研究所都干了哪些工作!

从下午四点开始,2个多小时了。王林只是浏览代码,没有更新一行。这个时候王林说话了:“老板,我实在分析不出代码上问题,我先回了,明天再说吧。”

“问题都没解决,你就急着回家?”老板急了。

“关键是这得是我能解决的问题才算!我前一阵向你汇报过485通讯芯片的问题,故障现象是通讯连不上,我怀疑485芯片问题。”王林解释道。

“公司一直在使用这家供货,怎么偏偏这个时候出问题?”老板反驳。
“明天检查一下芯片批次和供货商吧,我也是感觉这个芯片问题比较典型。现在只能说是我猜测这个芯片有问题,不能100%确定。”

“你的软件就百分之百没问题吗?”老板很生气。

“从故障来看,最低限度不是软件能解决的问题,如果把注意力放在软件问题上解决不了问题,我还是回去想想吧!”王林再次解释。

我和王林关闭电脑离开了公司,老板还在和上海的郭工沟通。

第二天,王林又浏览了一下代码,检查了一下产品电路原理图,没有发现明显的问题。

老板过来直接问王林:“检查出什么问题了吗?”

王林摇摇头:“没有发现明显问题?”

“仔细检查一下吧,说不定你的另外一款产品中也有这样的问题。”

“同样的软件,在同样硬件平台,一台正常,一台有问题。这明显不是我软件的问题吧。”比起老板的病急乱投医,王林显得十分冷静,有点战场狙击手的风范。王林告诉在上海的郭工告诉将产品挨个检查一下,将有问题的产品寄回西安。

下午16:00左右郭工从上海打来电话,告诉我们有三套产品有问题要寄回。王林负责该产品的软件编写。100多套产品寄回三套,很明显这绝对不是软件问题。老板好像也明白了问题所在,不再让王林检查软件问题了。

两天后王林收到了上海寄回来的三套产品,经过检查发现故障现象与郭工在电话里说的情况一模一样,很明显是主板与显示板之间通讯问题。王林在过去废弃的产品上拆下几个通讯芯片,进行了更换,三套产品的故障就全部消失了。王林向老板进行了汇报。

老板质问王林:“为什么出厂检验没有发现问题?”

“出厂检测的时候产品是好的,现在有问题了,可能是芯片质量的问题。”

“这种芯片我们在其他产品上使用的也比较多,为什么没有出现问题?”

“我去比较一下批次,看看是不是同一批次的?”王林回答的不紧不慢。我真的佩服王林沉着冷静,一个编写软件程序员负责了判断硬件问题。
王林和负责硬件设计的同事带着拆下来的芯片去了车间,半个小时后,比较可以发现本次产品使用芯片的丝印非常粗糙,不是正规厂商的产品,确认应该是供货商的问题了。

一切情况都清楚了,老板并没有对王林说一句奖励的话。因为批量采购的事情是老板娘负责,老板娘反问王林:“我采购的芯片怎么有问题?”王林没有回答这个问题。

在以后一个月,上海客户一直反映产品不稳定。最后郭工到上海全部更换了RS-485通讯芯片,问题也就随之解决了。

一天下班的时候,我和王林一起喝酒,谈起这件事情王林问我:“我做程序员的,是自己问题我们自己解决,但是要证明不是我们的问题怎么这么难?费了那么多功夫,图些什么?”。工作这么多年,我不知道怎么该对王林说些什么。“我们只要遵循我们的职业操守就行了,其他的实在管不了那么多了。估计下次有问题,老板也就不首先怀疑我们了。”
http://engine.eefocus.com/embedded/347953/p4

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top