工廠的生產線來了一台新的機器,因為一運作就會當機,所以找我去幫忙「看看」
生產線上的自動化機器,跟我寫商業程式、網頁、資料庫程式的何關?
發生這種情況,就是無解
但是工廠的人一直來煩,IT部門只好一個人去「填坑」
「你要人,我也派人去處理了啊」....
明眼人都看得出來,這是「人情」上的幫忙,根本沒法實際解決(老闆也沒期望能解決,就是派人去現場看看,表示我有支援囉!)
「你看,我們這麼忙,還是派人過去 "現場"處理了」......可見我跟你多麼「麻吉」,我多挺你啊....
至於能不能解?再說啦!
到了現場以後,這條生產線上有數個關卡
第一,產品放上動線以後,運送到機器手臂底下。觸發 sensor開始拆包裝。
第二,拆完包裝,拿出產品。送到下一關,觸發 sensor開始掃描產品序號(條碼)。
第三,不同的序號,會走不同的產線(動線)。
第四,........
我也是第一次看見生產線自動化
搭配 Windows Form (.exe)執行檔的程式,開發工具跟Visual Studio不一樣,
只聽說底層是微軟的 .NET,可以配合C#來寫簡單的程序、簡單的Script程式
我突然知道長官為什麼要派我來了
因為「你寫程式的,對吧!
知道 C#嗎? ............. OK,你沒問題的! 那就上場囉!」
廠商程式是這樣寫的:
int a = 1;
while (a > 0) {
if (sensor1被觸發) {
執行事件A;
break;
}
}
while (a > 0) {
if (sensor2被觸發) {
執行事件B;
break;
}
}
// ....以此類推....
整個產線有八個關卡,所以這樣的無窮迴圈,要跑八個!
因為產線是一直動作的,一直有貨物運送,源源不絕
廠商寫的程式,頂多跑到第二關,程式就會當機。
整個過程中,讓我看到產線上的程式,跟我慣寫的Web + DB不同
也跟我常用的 Windows程式不同
這種程式似乎是 "循序"的,步驟一定是從A到B,然後B到C,C到D......以此類推
而且永遠執行不完(一直循環、不能中斷)。
每個關卡之間為何要有 25 sec的緩衝時間呢?
因為每一關卡的運算與處理,也需要一點時間作緩衝(機器要動作、運算、處理.....都要時間)。
不是我想像中的網頁程式,輸入以後立刻有回應
所以生產線(動線)上的運送速度,必須保持一致。不能忽快忽慢。
這套程式裡面,絕大多數都是廠商寫好的模組
寫程式的人只能改它們之間的流程,並呼叫模組來動作
就好像你手上有十台會向前進的玩具車
你得讓他們在軌道上,"循序"的運作,而且不能停下來,也不能撞在一起(間隔太近)
以前看見有人寫程式控制樂高(Lego),覺得很無趣
現在我終於知道:寫程式控制樂高機器人,原來就是在模擬這情況
我慣寫的Web +DB程式,使用者是「人」,所以遇見狀況會主動回報
程式跑得慢,他們(人)會等待,等待系統做完
程式跑得快,他們(人)就會做快一點,快點輸入下一筆記錄
但生產線上、自動控制的程式,使用這套程式的是「機器」,機器很笨!
到了這一關,即使沒運算完畢,他一樣放行,產品隨著生產線跑去下一關了
所以我看見工廠同仁,拿著碼表,不斷統計每一種情況所需的運算時間
生產線(動線)上的間隔,該保留多長?
也必須安裝Sensor去檢查每一關卡是否被觸發?是否結束?
我參與以後,案子有了改善,雖然不敢說100%圓滿,但也好了九成!
想不到:我一個只會寫簡單程式、網頁+資料庫的人也能幫上忙
原來 Coding真的有機會可以觸類旁通!舉一反三!
也見識到:一樣寫程式,原來有這麼多不同領域。
我以前一直以為生產線自動化,就像我們買 Server一樣,軟體安裝好就上線了
這次看到「每一個模組」都是跟不同廠商購買的
如同組裝PC零件,最後「整合」出了問題,誰都不想理你! 哈哈哈 Orz
這種出了事,互相推託,看來是IT產業的慣性!哈哈哈
我將思想傳授他人, 他人之所得,亦無損於我之所有;
猶如一人以我的燭火點燭,光亮與他同在,我卻不因此身處黑暗。----Thomas Jefferson
寫信給我-- mis2000lab (at) yahoo.com.台灣 或是 school (at) mis2000lab.net
................ Google+ https://plus.google.com/100202398389206570368/posts ........
................ YouTube (ASP.NET) 線上教學影片 http://goo.gl/rGLocQ
留言列表