2017/3/16

統計方法應用於量測數值變動

首先我是機械工程師,不是寫程式的,但是有一次因為負責檢測設備的檢測程式工程師離職,就被主管咨詢要不要試試看?

系統使用研華的工業電腦,光學系統鏡頭 、CCD加上Matrox的影像擷取卡,還有渦電流感應式的類比式距離檢測器 (輸出電壓 vs 距離)加研華的類比數位擷取卡,程式用MS C++ 6.0,這些都是前人留下的,因為自己蠻喜歡用電腦,感覺上這個工作也蠻有趣的,雖然先前已經經歷多手一直沒有徹底完成,在產線不受信任而被閒置,好像很難,有點風險,但是那時年輕就是本錢,心想試試也無妨就接了(其實領薪水上班的也沒得選^_^)。

其實接手的時候我還不會寫C++,碩班跟大學有學過Fortran、國高中學過Basic,
寫程式的經驗就是這些,接手後才開始學C++; 
了解硬體架構、看影像擷取卡的library、看程式、改程式,最後沒想到竟然真的被我搞定,而且大受現場歡迎,
從桃園廠第一台弄好後複製到福州 、馬來西亞 、英國產線總共12台,每台取代了兩個人兩班的4個人力,總共48個人因為這台設備開發成功而需要轉換工作,真是罪過。

過程中有一個非常困擾的狀況:
量測樣本數值的重複性不好,數值會飄,大概是5條上下,所以最大差距會到0.1mm。

這種情況現場無法接受,所以就一直在找原因,
從懷疑是廠內電壓不穩 、渦電流檢測器受干擾不穩定,
加了在線式UPS保護電腦不受斷電影響順便穩壓,將類比式渦電流改為Mitutoyo的數位式雷射測距頭,還是無解,
最後懷疑到機台的振動,反正找了一堆理由最後只剩機台振動可以拿來當量測不好的"原因"。

但是不管任何"原因",設備功能不行對使用者端都是"藉口",還是必須解決。

靈機一動,測試時以硬體最高的時間解析度對同一個樣本,連續擷取50筆資料,數值一如所料是機台的微震動影響,數據一直在小範圍內跳動;
既然如此就想了一招:
對同一個樣本連續擷取20筆資料,去掉最大跟最小的資料後取平均值,當作量測輸出值。

量測結果數值就成功穩定下來,跟手動治具量測值也幾乎相同,有時會差1條0.01,突然間累積數年的棘手問題就解決了,重複性跟準確性都獲得現場的信任。

另外有一個插曲:因為開發不順,使用者單位找了外面一個想作同樣設備的廠商,也交了馬來西亞現場4台設備,但是同樣因為資料會飄的問題一直無法解決。
當我處理完問題以後,這個廠商跟現場還有我單位內某些人的關係非常好,千方百計想探聽我如何解決這個問題,原來真的有商業間諜這件事。

到這裡,從我接手到處理量測不穩的問題約花了快四個月的時間,解決前人三人兩年處理不完的問題,在單位內可謂一炮而紅,但是薪水也沒增加^_^。

在量測結果OK以後,現場開始正式使用,24小時不間斷的操,同時也不斷提出要修改的地方,只要有道理 、有幫助,我幾乎都會配合改。

期間出過的狀況包括:
1. 工業電腦風扇堵塞,電腦過熱,加警告訊息提示
2. 電腦硬碟掛了,那個DOS時代,沒有SSD,記憶體只能用640KB,程式交到我手上時有850KB,但是記憶體裝了1MB,用延伸模式讓程式可以跑得動,量測資料逐筆寫入硬碟,等於每9秒寫一次,所以硬碟經不起蹂躪就掛了,重新檢查程式,把所有設定 、顯示用途重複程式片段合併 、簡化為函式或副程式,最後編譯過的程式剩260KB,原來的1/3。
剛好同時現場希望能讀取資料檔做統計計算平均值 、標準差等,所以就開了300KB虛擬硬碟,每次開機就將執行程式複製到虛擬硬碟,預設每三百筆資料 (筆數可以設定)作一次統計分析,直接幫他們算好,同時並顯示在螢幕上,再把資料記錄檔加上年月日當資料夾名稱,時間到秒為檔名寫到硬碟中,硬碟的壽命獲得大幅延長,到生產線關掉前沒再聽說過硬碟故障。

後來想說既然有統計資料,就再加上量測資料的顏色警示,偏離標稱值到容許誤差的50%以內用綠色字顯示,50%~75%用黃色字顯示,超過75%用紅色字顯示,結果現場愛死這個改善,調機器看量測數值顏色就可以,這段製程的良率被調到100%,量測值都在綠色範圍。

期間陸續修改的過程中,自己覺得校正步驟配合程式按鈕操作程序有點複雜難記,重新排了操作介面按鈕順序跟顯示操作提示,讓現場使用更加方便,這個小小的改變也讓現場非常高興,再加上三段密碼限制自動開機執行 、可進入校正程序跟複製量測資料,跟留了一個後門給我進去使用。

至此程式修改完成度幾乎接近100%,幾乎沒有再修改過,把修正過的程式寫了自動複製更新的批次檔,讓其他出差的工程師幫忙更新其他廠區的程式,整個過程大概經歷了一年的時間。

寫設備的程式有時也是很有趣,尤其到最後運作很順利深受歡迎時,很有成就感。

可惜後來就被調去作專案管理跟主管,沒機會再作新的。







沒有留言:

張貼留言