RS-485 抗雜戰記

忽然想起了天空戰記這部卡通,這篇標題就這樣下吧。

SerialPort 通訊埠或是稱為 COM Port 都可以,一般來說 RS-232 同時只能對一個設備通訊,而 RS-485 則可以對多個設備通訊,使用 Modbus RTU 個協定下,最多可對 247 個設備通訊 (1 ~ 247) ,在訊號衰減下,上限是 32 個設備,但是可以透過中繼器或集線器來強化訊號,使其可以同時對多個設備通訊。

RS-485 多數運用在工業環境,我自己用來讀取過氣象水文資訊,例如風速、風向、日照、溫度、… 等,用電、發電資訊,例如電壓、電流、功率、累積電量、… 等,輸出即時訊號,例如七段顯示器等。

考慮到沒接觸過的網友總要說點前提。

 

話說最近一個月都做些大電力的案子,485 訊號是用電壓差來識別的,一般工作電壓在 200 mV ~ 12 V 之間,大部分情況是低於 5 V ,屬於弱電系統,很容易受到環境干擾。而碰上這些大電下,情況就非常慘了,傳回來的內容多半含有雜訊,造成 CRC 錯誤,將內容判定為錯誤。當然,這種情況下老闆不滿意,所以必須想辦法改善。

依照大電相關設備原廠說明的要求,該設備應該接上訊號雙絞線、485GND (common)、銅網接地,該設備內部接點有這四個接點,且訊號線必須使用環狀接線,不能使用星狀接線。因此首先上網找尋相關資料,為了確保盡量降低干擾,選擇了具有雙絞、鋁箔遮蔽、銅網隔離的 SFTP,到現場把所有既有線材全部更換,再進行訊號擷取。

而經過在現場耐心的逐步檢測,發現是 MOXA 一個我們常用的 Master 端訊號轉換器跟設備衝突… MOXA 是很多人都在使用的工業產品,檢測的過程中完完全全沒想到它會跟設備打架,而是因為拿 NB 測都沒問題,但是把訊號線接回案場的工業電腦就會有雜訊… 最後忍不住把 NB 的設備拿去接工業電腦:

U485 – USB 轉 485

這樣就正常能讀了我也很驚訝,當然前提也包含了換隔離線,因為換隔離線之前,NB 完全讀不到訊號。

MOXA 使用的設備是有主動電壓的訊號轉換器,USB 裝置則沒有,不確定是否該設備對有主動電壓 485 Master 不相容。而 USB 裝置容易因為線動到後,導致被判斷 USB 裝置移出,若正好通訊中的話,整台電腦會掛,不是只是死一隻程式而已,因此從泓格找了一顆 485 集線器,打算噪訊多的大電力裝置接一起,沒噪訊的裝置接一起,而透過這個 485 集線器後,發生 CRC 錯誤的機率降到千分之二以下,正打算收工回家的時候,發現這顆 485 集線器跟自產的類比訊號轉換器打架了,CRC 錯誤的機率達到 50% …

除了大電力設備外,一般小設備公司內都有可以測試,因此回去測半天,公司內測用 300 ms 間距去測雖然會掉資料,但是成功率應該是有 90% 以上,只好改換研華的類比轉換器去更換,更換後 CRC 錯誤機率就降到千分之一以下。

測試過程中有試了泓格的可調式終端電阻及升位電阻,在 485 通訊規範中有要求要裝終端電阻,到電子材料行買,一條電阻才 3 元以內,但我過去一直不知道這條電阻要幹嘛,這次量了以後大概知道是這樣,主動式 485 訊號電壓約在 4 ~ 5 V 間,用不同的阻值的電阻將會將訊號電壓降到不同的範圍,一般建議的 120 歐姆會將訊號電壓降到 200 mV 上下,若是使用無主動電壓的 Master 設備,就不需要再使用終端電阻了。

由於不確定是否自產的類比轉換器與 485 集線器衝突,所以其他大電案場依法仿效的時候,都沒直接先換掉,而是經過測試後才更換。

某個案場由於原先訊號線就用另一種隔離線,一開始沒打算換掉,但是在測量訊號工作電壓時,居然發現一個神奇的怪事,拿電錶量直流電壓,一開始開 20 V 居然不夠用,一路轉大看著直流電壓跳到 812 V 以後破表,立刻決定換線,換設備,換好後原先訊號線架設人員還問為啥要換線,我原先的隔離線換掉還沒從管道抽出來,但另一頭已經是斷路空腳了,以這條線為例測給他看,沒想到斷路的情況下,直流電壓仍然能從小跳到大,最後跳到破表,換成訊號線架設人員的電錶,相同的詭異情形一樣發生,最後只能猜測大電設備干擾到電表內量測的線圈,導致電壓亂跳…

 

寫程式存取 SerialPort 並不困難,困難的是在現場常碰到一些辦公室碰不到的詭異情形,例如大電力造成的噪訊干擾,這種看不見摸不著的東西就只能靠網路上搜尋來的經驗來解決了… 別人分享了他的經驗,我也分享我的經驗…

會有干擾的環境下,隔離線材要慎選,此外也要考慮設備可能發生衝突的問題,說實話去年一整年還沒碰過設備衝突的情形,實在搞不懂為啥這個設備會打架… 我有點懷疑是訊號的工作電壓問題,不過案場不能讓我這樣慢慢玩,所以只能暫時就這樣將就的把問題大概解決,卻沒有詳細深入探討的方式了。

廣告
Categories: 工作點滴 | 15 則迴響

文章分頁導航

15 thoughts on “RS-485 抗雜戰記

  1. 陳宇中

    RS-485的工作重點是要共地,也就是裝置間的地要接在一起,這接地必須良好,裝置間的地電位差應很小,否則就必須使用隔離式的RS-485。
    至於終端電阻的作用是防止電壓到終端時產生湧浪電壓。終端電阻的作用會使終端的阻抗跟傳輸線上一致。因此終端電阻一定要在纜線的兩端。

    按讚數

  2. helepr197

    陳大哥您好:

    >>至於終端電阻的作用是防止電壓到終端時產生湧浪電壓。終端電阻的作用會使終端的阻抗跟傳輸線上一致。因>>此終端電阻一定要在纜線的兩端。

    您說要接在纜線的兩端, 不過我都只接末端耶? 不知道這樣會不會有啥米問題呢?
    麻煩 陳大哥多多指教 感恩!! 小呂

    按讚數

  3. 我現在用的是國產貨大同的線材,直接跟原廠叫貨,網路上可以找到這篇有照片,但並不是介紹各位去跟這家買。
    http://tw.page.bid.yahoo.com/tw/auction/e38219907?u=lancable168

    大同也有出雙絞 + GND + 銅網隔離 的線材,不過因為現場常常碰上被老鼠咬斷線,所以 Cat5e 算是還有備援的線可以替換。

    終端電阻接兩端的,或一端的,目前看到的有很多種說法,例如這篇就是接兩端的,還有星狀的接法:
    http://www.maxim-ic.com/app-notes/index.mvp/id/763

    按讚數

  4. helepr197

    嗯嗯嗯

    謝謝 璉大您提供的資料

    陳大哥說得真的是很多人會忽略也不曉得的一點 受教了

    現在現實競爭的關係很多廠商的出現,但新興廠商在現場技術的部份

    沒有像陳大哥一樣的經驗,實在是在案場也真的一點辦法一點頭緒都沒有哩

    陳大哥與璉大 受益良多 感恩…. ^_^

    按讚數

  5. Chester

    陳宇中 :
    RS-485的工作重點是要共地,也就是裝置間的地要接在一起,這接地必須良好,裝置間的地電位差應很小,否則就必須使用隔離式的RS-485。
    至於終端電阻的作用是防止電壓到終端時產生湧浪電壓。終端電阻的作用會使終端的阻抗跟傳輸線上一致。因此終端電阻一定要在纜線的兩端。

    這個我們在兩個不同 source 的設備常發生誤動作
    例如 A – 380V AC, B – DC to AC
    此時的地都不是同一個, 我們是用隔離設備把兩端隔開
    之前是一直發生問題 但是不知道是哪邊有問題

    如果兩端的 power source 不同的話? 怎麼做地電位差驗證?
    還是有其他的方法可以解決?

    按讚數

    • 理論上訊號接地跟電力接地要接到不同的接地柱,避免共地電力回衝,所以問題應該是你的大電對你的訊號弱電干擾,不是接地的問題。
      實務上,因為建築物的接地點在蓋好同時就設置好了,所以通常最後接地通通接再一起,比如說你的電腦,訊號接地與電源接地都是短路的,這表示共地。

      按讚數

  6. jimmy

    璉璉大哥
    有關於RS-485線材抗干擾的問題,您目前所挑選的線材為何?
    我若使用siemens profibus線材用於 RS-485的通訊線材您認為如何?
    而在於大電力干擾所產生的問題,可考慮使用光纖解決或者是無線設備避開干擾的設備

    按讚數

    • 線材的部分上面回覆有寫了。
      西門子有問題可以直接打電話去問,我是碰過西門子的設備在休眠時會發出負電壓,所以西門子說明書會跟你說 GND 一定要接,此外,若用 USB 轉 485 或 232 設備不通時,最好找能加壓的設備,或是拿 PC 的 232 來測,大部分 USB 設備電壓會不足,有些會內建升壓電阻,但是未必夠電壓。我還碰過要 7 V 才推得動的。
      大電干擾基本上就是隔離要接地,超過一定距離就加 485 relay ,無線不用考慮,因為干擾、斷線的問題會更多,辦公室用都沒啥問題,拿到現場就會有一堆問題。
      目前光纖我們只用在網路上,沒用在 485 轉光纖,真的必要時,我也是推薦用網路即可,因為後面彈性大,價位也比較經濟,到時候再用 VCOM ,橋接 485 跟網路。

      按讚數

  7. 我最近碰到一個問題 我用485通訊一台人機控制6台變頻 採用串接法 串了六台 不過人機的啟動停止卻變的會LAG…..那也是干擾的問題嗎 還是…..??我沒有接終端電阻 如果可以的話留言給我的信箱:ctrl8eji6

    按讚數

    • 施主,有沒有干擾,你可以先用 AccessPort 來分析通訊內容,內容正常無誤時,就是沒有干擾。

      按讚數

      • 不好意思 璉大大 我還是新手不知道怎麼使用access port來看 還有我人機寫的是address…我看不到他們互相通訊給予的信息 麻煩指點一下…

        按讚數

  8. 幸福

    將近37萬人點閱的文章,您可稱之為"達人"囉…
    請較您的文中提到:

    “"主動式 485 訊號電壓約在 4 ~ 5 V 間,用不同的阻值的電阻將會將訊號電壓降到不同的範圍,一般建議的 120 歐姆會將訊號電壓降到 200 mV 上下,若是使用無主動電壓的 Master 設備,就不需要再使用終端電阻了。""

    您的意思是;""訊號電壓約在 4 ~ 5 V 間者,應使用一般建議的120歐姆電阻,將訊號電壓降到 200 mV 上下,才是RS485最佳運作電壓"" 嗎? 有點語意不明,可否請達人/大師進一步說明? 謝謝!

    按讚數

    • 485 工作電壓是 200mV ~ 12V ,一般設備經常性電壓是 4V ~ 5V ,少數設備會要求高電位,例如 7V 以上,所以 200mV 以下是雜訊,會被 485 裝置忽略。

      終端電阻的用意是避免訊號反彈,造成設備回應的訊號夾雜反彈的訊號,所以加上終端電阻會讓訊號削減低於 200mV ,讓大部分的反彈訊號被當成雜訊。
      如果 Master 設備本身沒有使用昇壓電阻,可能訊號本身就在 1V ~ 2V ,再用終端電阻就會讓電壓降到 200mV 以下。

      37 萬人次應該是整個網誌,非單篇,我也不是達人或大師。

      按讚數

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s

在WordPress.com寫網誌.

%d 位部落客按了讚: