設定 RS485 裝置可能頗具挑戰性。Modbus 與 RS-485 通訊協定之間的相容性往往是個問題。由於這兩種通訊協定在通訊堆疊的不同層級運作,你可能得面對一段漫長的除錯過程。
RS485 通訊協定是一種在堆疊實體層運作的電氣標準。它定義了例如電纜長度、可接受的電壓位準,以及可在單一匯流排上共享的裝置數量等項目。
Modbus 通訊協定在應用層運作,著重於訊息如何被結構化、定址,以及由接收端解讀。你需要知道是哪一層造成問題,才能有效地加以解決。
Modbus 與 RS485 之間的差異
下表比較了這兩種關鍵協定中影響其相容性的最重要參數。
| RS485 | Modbus | |
| 層級 | 實體層(OSI 第 1 層) | 應用層(OSI 第 7 層) |
| 定義者 | EIA/TIA-485 | Modicon 於 1979 年制定;現已開放 |
| 類型 | 電氣標準 | 通訊協定 |
| 拓樸 | 多點匯流排,無需中繼器可支援最多 32 個節點 | 主/從架構,1 個主站與最多 247 個從站 |
| 功能 | 定義配線、訊號電平及其他電氣特性 | 定義訊息、資料成框與功能碼 |
| 資料格式 | 差動電壓訊號 | RTU(二進位)或 ASCII 訊框 |
| 錯誤偵測 | 未指定 | CRC(RTU)或 LRC(ASCII) |
| 最高速度 | 短距離可達 10 Mbps | 通常為 9,600 – 115,200 bps,RTU/ASCII 透過 RS485 |
| 最遠距離 | 100 kbps 時為 1,200 m | 取決於實體層 |
| 變體 | RS422(點對點)RS232(短距離) | Modbus RTU、Modbus ASCII、Modbus TCP/IP |
什麼是 Modbus?
Modbus 是一種由 Modicon 於 1979 年開發的應用層通訊協定。它是一種開放、免費的協定,定義了主裝置與一個或多個從屬裝置之間傳送訊息時的結構方式。Modbus 可在各種傳輸方案上運行,包括 RS485、RS232、RS422 或乙太網路(TCP/IP)
主要特徵
• 架構:一個主站可與最多 247 個可定址的從站通訊,編號為 1–247,ID 0 保留用於廣播。
• 通訊模型:主站透過向從站送出請求來發起所有通訊,從站只能回應。
• 定址:所有請求都包含目標從站 ID,而每個回應都會回送該 ID。
• 資料型別:1 位元線圈與離散輸入、16 位元輸入暫存器與保持暫存器。
• 錯誤偵測:ASCII 模式使用 LRC,RTU 模式使用 CRC-16。
資料模型
• 線圈(1 位元,可讀/寫)提供離散輸出狀態。
• 離散輸入(1 位元,唯讀)用於離散輸入狀態。
• 輸入暫存器(16 位元,唯讀)儲存量測的輸入值。
• 保持暫存器(16 位元,可讀/寫)保存設定與輸出值。
變體:RTU、ASCII、TCP/IP
• Modbus RTU 是由於其速度快且尺寸精簡而適用於 RS485 的標準。它採用二進位編碼並使用 CRC-16 錯誤檢查。
• Modbus TCP/IP 透過乙太網路使用,且不需要 CRC/LRC,因為 TCP 會處理通訊完整性。
• Modbus ASCII 採用十六進位字元編碼並使用 LRC 錯誤檢查。此變體通常用於 RS232,且可供人類閱讀。
什麼是 RS485?
RS485(EIA-485)是一種在實體層運作的電氣標準,用於定義訊號如何透過導線傳輸。該規範涵蓋電纜阻抗、電壓位準、最大電纜長度以及匯流排拓撲等面向。RS485 不會識別更高層的通訊協定、訊息格式或資料內容。
主要特徵
• 訊號傳輸:線路 A 與 B 之間的差動訊號(或電壓差)對電氣雜訊具有高度抗干擾能力。
• 拓撲:支援多點匯流排(multi-drop bus)在單一線對上無需中繼器即可連接多達 32 個單元負載。
• 最長距離:在 100 kbps 時約 1,200 m;在較高資料傳輸速度下距離會縮短。
• 最大資料速率:在低於 15 m 的短距離下可支援最高 10 Mbps。
• 雙工:預設為使用一對雙絞線的半雙工。使用兩對線可實作全雙工。
相關標準:RS232 和 RS422
• RS232 是一種單端、點對點協定,最大傳輸距離約為 15 m。其訊號與 RS485 不相容。直接轉接器通常用於 RS485-to-USB 或 RS-485-to-Ethernet 的實作。
• RS422 與 RS485 一樣提供差動訊號傳輸,但每條線僅限一個驅動器用於點對點通訊,不支援多點(multi-drop)
監控與分析 Modbus 資料的工具
對通訊問題進行疑難排解需要了解 RS485 與 Modbus 之間的差異,並掌握匯流排上所傳輸內容的可視性。達成此可視性的最有效方式是分析原始序列埠流量。此分析可讓您透過驗證暫存器值並找出定址錯誤,高效率地除錯問題。序列埠監視器(SPM)是一種可提供此資訊的軟體解決方案。
Modbus 測試軟體是一種協定分析器,可提供透過 RS232/RS422/RS485 介面進行 Modbus 通訊的相關資訊。該軟體可讓使用者在測試與除錯 Modbus 通訊時輕鬆偵測並解決問題。其最有價值的功能之一是能夠顯示並記錄在系統序列埠中傳輸的資料。
Modbus 測試軟體
Modbus 分析器 讓使用者能在資料透過系統的 RS485 連接埠傳輸時,顯示、記錄並除錯 Modbus RTU 與 ASCII 序列資料。
這款專業的 Modbus 測試軟體可讓使用者:
• 連線並監控已被其他程式使用中的序列連接埠。可即時顯示該連接埠接收的所有資料,以便立即監控與除錯。
• 同時監控多個序列連接埠。您可以在單一工作階段中同步分析多個序列連接埠的活動。雙向流動的資料會以先進先出方式在單一記錄中呈現,便於檢視。
• 以多種格式檢視您的資料,包括表格、終端機、線條與轉儲檢視。可同時查看多個檢視,並可使用篩選器微調您的監控。
• 對傳輸至序列裝置的資料進行模擬,以便在接收到特定命令時監控其活動。
常見問題
不,它們是不同且互補的通訊協定。Modbus 是一種訊息傳輸協定,而 RS485 定義的是實體電氣介面。RS485 是 Modbus 傳送訊息所經由的通道。
RS485 標準在無需中繼器的情況下,於一條匯流排上最多支援 32 個單位負載,而 Modbus 最多允許 247 個從站。通常,32 個節點的物理限制是標準做法,並會部署中繼器以擴展可支援的裝置數量。
Modbus RTU 是一種精簡且高效的通訊協定,以二進位傳輸資料並使用 CRC 錯誤檢查。它是搭配 RS485 使用的首選通訊協定。Modbus ASCII 以人類可讀的十六進位字元傳輸資料,並採用 LRC 錯誤檢查。這是一種效率較低的解決方案,但它有助於在 RS232 連線上進行更精簡的除錯。
是的。Modbus 也可以透過 RS232、RS422 或乙太網路(Modbus TCP/IP)連線運作。由於 RS485 具備多點掛接能力且抗雜訊,因此在工業環境中是 Modbus 的首選實體層。