硬件故障的那些事兒,那些年感謝老板的“不殺之恩”
你在調(diào)試硬件、調(diào)試產(chǎn)品的時(shí)候有沒(méi)有遇到一些故障或者異常,并由此帶來(lái)不可估量的災(zāi)難?有沒(méi)有讓老板產(chǎn)生想殺了你的沖動(dòng),最后如何處理的?
網(wǎng)友1:慣導(dǎo)RS232接口,平時(shí)用RS 232只要RXD,TXD就能通信,但是慣導(dǎo)需要接地線,線都接好,指示燈閃爍,沒(méi)數(shù)據(jù),對(duì)調(diào)RXD,TXD沒(méi)數(shù)據(jù),那我試試把地線接電源正吧,于是不小心接到電源正,然后愉快的燒掉了。你做成雙極性輸入的不就燒不掉了,從此師兄再也不信任我的接線。
GPS模塊某電容和電阻接反了導(dǎo)致沒(méi)數(shù)據(jù),換回來(lái)之后南京的我偏移到了合肥,說(shuō)好的精度1.5m呢,這都不止15km了好嗎?
網(wǎng)友2:電路板的同軸輸出接插件,sma頭。下面連信號(hào)的引腳因?yàn)殡娧b工藝問(wèn)題根本就沒(méi)焊上,但是距離焊盤(pán)很近。導(dǎo)致的現(xiàn)象就是信號(hào)質(zhì)量特別差,但是確實(shí)有信號(hào)。查到這個(gè)問(wèn)題的原因才發(fā)現(xiàn)原來(lái)是雖然信號(hào)傳輸線有斷路,但是因?yàn)殡x得特別近所以形成了電容,信號(hào)就交流耦合過(guò)去了。
事后總結(jié)出了硬件毛病先把外觀檢查一下,再查一下比較基本的問(wèn)題,比如供電,短路斷路。都排查完畢再發(fā)表高深莫測(cè)的玄學(xué)理論。。。
網(wǎng)友3:和同事一起調(diào)試蒸汽吹灰設(shè)備,忘記了排空冷凝水,把水噴到價(jià)值近千萬(wàn)的催化劑上面了。
后果:罰一個(gè)月工資,更換了打濕部分的催化劑。
同事調(diào)聲波吹灰,忘記了煙道內(nèi)還有農(nóng)民工在做業(yè),直接開(kāi)起來(lái)。幾個(gè)工人在一個(gè)封閉的鐵盒子里被6個(gè)功率不小的超聲波喇叭震耳欲聾。幸好迅速跑出來(lái)了沒(méi)有造成永久性的聽(tīng)覺(jué)損傷。
后果:被農(nóng)民工打一頓,我也不幸遭殃被連帶打了一頓。
網(wǎng)友4:買(mǎi)來(lái)的機(jī)器人是日標(biāo)供電,三相220V,國(guó)內(nèi)沒(méi)有這樣的電源,需要增加變壓器把三相380轉(zhuǎn)為三相220。臨時(shí)試機(jī)的時(shí)候,沒(méi)有萬(wàn)用表,我把變壓器的輸入輸出接反了,導(dǎo)致三相380變?yōu)榱巳?50V!估計(jì)你也想到了,現(xiàn)場(chǎng)很慘烈,電源接通的一瞬間,火花閃電黑煙和噼里啪啦的爆炸聲不亞于有人在車(chē)間里扔了一掛鞭炮。。。
有個(gè)同事冒著觸電危險(xiǎn)把手伸到機(jī)器人關(guān)閉了電源。。。
后來(lái)維修花了五六萬(wàn)。。。
網(wǎng)友5:遇到過(guò)for循環(huán)中,手算應(yīng)該是3000,實(shí)際是30000的浮點(diǎn)運(yùn)算…gcc -s然后化簡(jiǎn)到幾行匯編,依舊算錯(cuò)。。。
遇到過(guò)兩個(gè)線程互相發(fā)Linux signal,上萬(wàn)次之后就會(huì)死鎖…哦這個(gè)最終追出來(lái)了,是kernel里面的問(wèn)題,不算硬件故障。。。
FPGA上能遇見(jiàn)的各種稀奇古怪的問(wèn)題,轉(zhuǎn)到互聯(lián)網(wǎng)之后,我想我應(yīng)該很難再遇到了吧
網(wǎng)友6:我也經(jīng)歷過(guò)2次。
第一次,是某款PLC。廠家聲明,此PLC已經(jīng)在全球用了XX萬(wàn)套,是很成熟的產(chǎn)品。但在編程階段就顯得極不成熟。PLC投運(yùn)后,出現(xiàn)死機(jī)現(xiàn)象,幾經(jīng)折騰也弄不好。最后,廠家的工程師自己來(lái)處理了,并且告訴我:我用的是全世界第一套!
經(jīng)驗(yàn)教訓(xùn):原來(lái),老外也會(huì)忽悠人。
第二次,是另外一款PLC,此PLC被廣泛使用,是技術(shù)成熟產(chǎn)品。
但被用在地鐵中,卻發(fā)現(xiàn)了死機(jī)。檢查后發(fā)現(xiàn),我們將此PLC同時(shí)用于邏輯控制和通信管理控制。由于兩套系統(tǒng)都屬于0類(lèi)中斷處理程序,于是PLC的CPU在運(yùn)行受阻時(shí),就將兩套系統(tǒng)全部重啟。造成嚴(yán)重事故。
說(shuō)來(lái)有點(diǎn)意思,任何PLC都有幾個(gè)字節(jié)的內(nèi)部存儲(chǔ)空間,用來(lái)記錄嚴(yán)重故障時(shí)的關(guān)鍵值。此內(nèi)部存儲(chǔ)空間一般不公開(kāi)。我就用此技術(shù)記錄了死機(jī)前最后一刻的狀態(tài),找到了事故的根源。PLC的制造商也據(jù)此修改了設(shè)計(jì)。
一個(gè)感覺(jué),PLC的技術(shù)進(jìn)步類(lèi)似于空難,也是在故障中不斷修改和完善的。
事后,我們把兩套系統(tǒng)用兩臺(tái)PLC獨(dú)立完成,兩者之間不存在建立橫向聯(lián)系,由此徹底杜絕了問(wèn)題的根源。
總之,出了問(wèn)題首先要分清責(zé)任。我們要敢于承擔(dān)工作壓力,但不能盲目的承擔(dān)事故責(zé)任,要保護(hù)好自己;第二要仔細(xì)認(rèn)真地分析事故原因。
事實(shí)上,分析事故原因難度很大,甚至都會(huì)超過(guò)開(kāi)發(fā)商的技術(shù)水平。
若只是簡(jiǎn)單地把責(zé)任推給供應(yīng)商,則自己的技術(shù)永遠(yuǎn)不會(huì)進(jìn)步。
你在調(diào)試過(guò)程中遇到過(guò)哪些故事,留言來(lái)討論下吧。
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場(chǎng),如有問(wèn)題,請(qǐng)聯(lián)系我們,謝謝!