#工作心得 為什麼通訊問題,常常比 PLC 邏輯還難查?

|工程師日記 #2 我原本以為做 PLC 最難的是控制邏輯。 像是流程怎麼跑、Interlock 怎麼切、Alarm 怎麼判斷、異常後要怎麼復歸。 但做設備一段時間之後,我發現真正讓人頭痛的,很多時候不是 PLC 邏輯本身, 而是跟其他控制器通訊。 尤其是那種 RS232、Modbus、MC Protocol,或是各種廠商自己包一層的通訊格式。 PLC 邏輯錯,至少還有跡可循。 你可以看接點。 可以看 Step。 可以看 Timer。 可以看 Alarm。 可以看哪一個條件沒有成立。 就算程式很大,慢慢追通常還是追得到。 但通訊問題不是這樣。 它常常只丟給你一個很簡單的結果: Timeout。 No response。 Communication error。 然後就沒了。 這時候你要開始懷疑很多東西。 線是不是接錯? 接頭是不是有問題? 站號是不是錯? Baud rate、Parity、Stop bit 有沒有對? Byte order 是不是相反? Word address 是不是算錯? 手冊寫的 address 到底是 0 base 還是 1 base? 對方設備到底有沒有真的回資料? 還是其實資料有回,只是格式跟你想的不一樣? 更麻煩的是,有些設備錯了也不一定會給你明確的錯誤反應。 它不會跟你說: 「你這個 Start Address 算錯了。」 「你這個 Command 格式少一個 Byte。」 「你這個 Register 長度跟我手冊寫的不一樣。」 它只會安靜。 很安靜。 安靜到你開始懷疑人生。 有時候 PLC 這邊看起來是正常送出,對方也有亮燈,網路也 Ping 得到,Port 也開了, 但資料就是不進來。 或是資料進來了,但是內容不對。 然後你就會開始懷疑: 是不是線? 是不是設定? 是不是手冊? 是不是對方設備? 是不是自己眼殘? 是不是今天不適合上班? PLC 邏輯錯,比較像是在找哪個條件沒成立。 通訊問題比較像是在找到底哪一層在裝死。 尤其是現場遇到那種舊設備、舊協定、舊手冊,或是文件寫得很有自信, 但實際做起來完全不是那樣的東西,真的會讓人很躁。 後來我覺得,通訊問題最難的地方,不一定是協定本身有多複雜。 而是它很常不告訴你真正錯在哪裡。 PLC 邏輯錯,至少還能追接點。 通訊錯,很多時候是先追到自己開始懷疑人生。 不知道大家現場最怕遇到哪一種通訊? RS232、Modbus、MC Protocol,還是那種手冊寫得很完整,但實際完全不照手冊走的設備?
愛心
哈哈
3
2
全部留言