#工作心得 PLC Debug卡住時,我固定先檢查的3件事
現場最常接到的電話大概是這種:
「欸,出事了,機台卡住了」
(但通常也不會講哪裡有問題)
或是
「ROBOT卡在chamber裡面了,現在怎麼辦?」
還有一種是
「剛剛還好好的,突然就停了」
————————————————————
這種狀況其實最麻煩
因為不是一開始寫錯
而是「原本會動的東西,突然不動了」
————————————————————
我剛開始接觸PLC的時候
第一個反應也是:
先慌一下
然後打開程式,開始一行一行看
但幾次經驗下來我發現一件事:
這種「突然掛掉」的問題
通常不在你剛剛盯的那段程式
而是在其他地方
————————————————————
1、先確認「最後一個動作卡在哪」
如果裝置有做 event log,可以先搭配 log 來看
不要一打開就看邏輯
先看機台「停在哪一步」
例如:
・ROBOT停在搬運途中
・門關一半
・某個氣缸動到一半
這個位置很關鍵
因為它代表哪一段流程沒有走完
以前我也是直接跳去看條件
但連卡在哪都不知道,其實就是在瞎找
————————————————————
2、是「條件突然不成立」,還是「動作沒出去」
這一步其實是分水嶺
先分清楚一件事:
PLC到底有沒有「想讓它動」
情況A:條件沒成立
・interlock沒成立
・safety被打掉
・某個flag沒成立
這種通常是外部條件變了(人為或設備)
情況B:條件成立,但沒動
・output沒出去
・氣缸沒反應
這種才需要開始懷疑 I/O、硬體、wiring
大多時候會兩個一起查
但這一步如果沒分清楚,後面大多都在浪費時間
————————————————————
3、最近「動過哪裡」
這個很現實,但大多時候很有用
很多「突然出現的bug」
其實都不是突然
而是有人動過東西
可能是:
・設定參數被修改
・測試完的程式有殘值沒清
・現場手動操作過
可以直接問一句:
「這台剛剛有人動過嗎?」
通常不會一開始講
但問了之後,多半都會想起來
————————————————————
(補充)4、有時候真的只是 timing 問題
這個比較陰
・訊號有來,但太快
・scan timing對不起來
看起來什麼都正常
但就是卡住
這種通常不是第一步查
而是前面都排掉才會輪到它
————————————————————
後來我遇到這種
「原本正常,突然卡住」的狀況
基本上不會一開始就改程式
也不會在那邊硬看
而是先搞清楚三件事:
・卡在哪一步
・是條件問題,還是動作問題
・最近有沒有人動過
很多問題
其實這樣拆一輪就會浮出來
甚至不用改任何一行 code
————————————————————
如果你也有在做 PLC
應該多少都有遇過這種情境
我自己是把這套當成一個習慣在用
(之後有空再整理成完整流程)
————————————————————
我其實有把這種「現場 debug 流程」整理起來
有需要的人可以跟我說

