#工作心得 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 流程」整理起來 有需要的人可以跟我說
愛心
3
3
全部留言