iT邦幫忙

2

【案場實錄】RS485 的不歸路:為什麼 1000V DC 旁的訊號線必死無疑?(兼論 4-20mA 的老兵價值)

  • 分享至 

  • xImage
  •  

Class A 日照計、原廠 shielded 線、10M 距離。每 1-2 小時死一次。最後我換成 4-20mA。

幾年前在一個太陽能廠的案場,我學到一件事:EMI 抗干擾不是「買貴的線」就能解決的問題

事情是這樣的——我們要把現場的 EKO MS-80S 日照計(Class A 等級,學術級在用的那種)數據接進系統。設備本身有 RS485 / Modbus RTU 介面,原廠也附了 shielded twisted pair 訊號線。10 公尺距離,標準工業環境,按教科書這應該是「插上去就 work」的等級。

結果:前 1-2 小時運作完全正常,然後通訊就死掉了,完全死掉。軟體層 polling 全部 timeout、不是丟值不是 CRC 錯,是「沒回應」。

最詭異的是恢復方式——只要去現場把 RS485 接頭拔起來再插回去,立刻通訊正常。但再 1-2 小時,又會死一次。週期性、可重現、像在嘲笑你。

這篇是這個案例的完整過程,包含最後我為什麼選擇放棄 RS485 改用 4-20mA。如果你也在工業環境跟 RS485 通訊問題纏鬥,這篇可能會有用——不是因為我解出來了,而是因為我承認某些環境下 RS485 真的不該用


第一個錯誤判斷:以為是設備故障

第一反應當然是「設備壞了」。

我把日照計拆下來,換了另一台同型號,症狀完全一樣——前 1-2 小時 OK,然後永久斷線。

第二反應:「線材有問題」。

我換了原廠提供的另一條 shielded 線,還是一樣

到這邊我才意識到:問題不在設備也不在線材本身,問題在「環境」


重新檢查佈線:擠在進線孔裡的兇手

回頭去看電箱的佈線,我才發現一件當時沒注意的事:

RS485 訊號線跟 1000V DC 線,在進電箱的那個進線孔,幾乎是貼在一起穿過去的。線間距大概只有 10-20 公分,但因為要擠進同一個金屬孔,在那個瞬間幾乎是接觸的。

更糟的是,那條 1000V DC 線後方接的是現場的 DC-DC 轉換器——這個東西在運作時,MOSFET 的高速切換會產生 kV/μs 等級的 dV/dt

在 EMI 領域,這叫做「capacitive coupling at panel entry」(進線孔的電容耦合)。教科書 case study 第三章經典。

原招商當初做這個電箱時,並沒有考慮 EMI 佈線——RS485 訊號線跟高壓 DC 線就這樣擠在同一個進線孔。在文件上看起來「分開」,在物理上根本是貼在一起。


為什麼原廠 shielded 線救不了

這個發現之後,我第一個疑問是:EKO 原廠線是 shielded twisted pair,理論上應該有抗干擾能力,為什麼還會掛?

答案藏在 EMI 的物理機制裡。

Shielded 線處理的是「輻射干擾」(radiated EMI):外部電磁波打到 shield,被導到地。但進線孔處的狀況不是輻射干擾,是電容耦合——

  • 1000V DC 線在 dV/dt 高的瞬間,周圍會出現很強的瞬態電場
  • RS485 線跟它幾乎接觸,等於兩條線之間有一個極小的電容
  • 這個電容把高壓側的瞬態電壓「耦合」到 RS485 訊號上
  • Shield 在這個情境下幫不上忙,因為 shield 兩端接地點本身的「地電位」也在被擾動

簡單說:shield 防的是「從外面打進來的電磁波」,但這個案例是「地電位本身在跳

擾動會慢慢累積,RS485 收發器 IC 內部會 latch-up(鎖死),累積到某個臨界點就完全沒回應。拔插接頭等於 reset 那顆 IC,所以暫時恢復——但物理干擾還在,1-2 小時後又會 latch-up。


我試過、想過、放棄的方案

知道原因之後,我嘗試了幾條路:

1. 加強 shield 接地

把 shield 兩端重新接地,改善不明顯。原因:問題在進線孔的電容耦合,改善 shield 接地對這個機制幫助有限。

2. 重拉線路,讓 RS485 離高壓線遠一點

聽起來最直接,但現場的線槽 / 進線孔早就裝好了,要重拉線等於重做電箱進線。案場時間壓力下不可行

3. 加裝光隔離 RS485 轉換器

技術上可行——把 RS485 訊號從「電氣傳輸」改成「光傳輸」,從根本斷掉電容耦合路徑。但:

  • 要採購、要測試、要重新接線
  • 採購流程跟現場時程對不上

4. 軟體層做更激進的 retry / 心跳機制

研究過,但這個 case 的問題不是「偶爾錯」,是「IC 鎖死」——軟體 retry 救不了硬體 latch-up。

最後,我選了一條最樸實的路:放棄 RS485,改用日照計的 4-20mA 類比輸出


為什麼 4-20mA 最後贏了

EKO MS-80S 除了 RS485,也有 4-20mA 類比輸出(這是工業日照計的標配)。

我把它接到現場 PLC 的 Analog Input 模組,從此沒再斷過

為什麼 4-20mA 在這個環境贏?

  • 電流訊號對電容耦合不敏感——耦合是電場現象,電場干擾的是「電壓」,但 4-20mA 是「電流」傳輸
  • AI 模組已經有工業級 isolation(隔離),抗 surge 能力比 RS485 收發器強
  • 沒有 IC latch-up 風險——AI 模組就算讀到瞬間錯值,下個取樣週期繼續正常
  • 解析度從「Modbus 浮點」降到「4-20mA 對應 0-1600 W/m²」,對日照計這個應用來說精度完全夠

我學到的事

這個案子過去這麼多年,我留下幾個結論:

1. EMI 不是「加 shielded 線就好」這麼簡單

Shield 處理的是輻射,不處理進線孔等弱點處的電容耦合。買貴的線是必要條件,不是充分條件。

2. 進線孔是被低估的 EMI 弱點

金屬電箱本身的遮蔽效果好,但進線孔是金屬不連續處,所有 EMI 都集中在這裡作怪。設計階段佈線一定要把訊號線跟高壓線從進線孔就分開

3. RS485 在強 EMI 環境有極限

RS485 是老兵協議,設計年代抗 EMI 標準跟現在不能比。在太陽能廠、變頻器密集、馬達多的現場,RS485 本身就是脆弱項目

4. 4-20mA 不是落伍,是抗干擾的最後保險

工業現場用了幾十年的 4-20mA 不是沒原因。當數位通訊解不了,類比訊號常常是最後一條退路——而且效果出乎意料地好。

5. 設計階段沒考慮 EMI 佈線,後期極難補救

這次案例最終是換通訊方式才解決,佈線本身沒動——因為現場條件不允許動。所以設計階段佈線多花的功夫,真的不是白費


給其他工程師的檢查清單

如果你正在 debug 工業現場 RS485 通訊穩定度問題,可以先檢查這幾項:

  • [ ] 進線孔有沒有 RS485 訊號線跟高壓線(交流動力、DC bus)「擠在一起」穿過?
  • [ ] Shield 兩端是否都正確接地?接地點之間有沒有電位差?
  • [ ] 線材長度是否在規範內?是否裝了 120Ω 終端電阻?
  • [ ] 有沒有考慮過 4-20mA / Modbus TCP / LoRa 等替代方案?
  • [ ] 用持續監測通訊穩定度的工具,可以早期發現累積型干擾

最後一點特別重要——很多 EMI 問題不是「一秒就死掉」,是「慢慢累積死掉」。如果你只用 ping / 偶爾 polling 來檢查,很難看出來。

我自己 debug 這類問題時,通常會用一個 Python 小工具長時間記錄通訊狀態跟原始 raw frame,方便事後翻查 pattern。如果你也需要類似工具,可以參考:Python-Modbus-Serial-Logger-GUI


結語

RS485 不是萬能

這個案例對我最大的提醒是:工業整合工程師的價值,不只在「解問題」,也在「判斷什麼問題不該硬解。如果環境本身就不適合 RS485,換通訊方式可能比硬撐到底有意義得多

下次遇到 RS485 不穩,先去現場看一眼進線孔——可能你的兇手就在那邊擠著。


如果你也有過類似的「RS485 在工業現場死掉」案例,歡迎留言交流。這種戰場故事比教科書值錢。


圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言