顯示具有 Modbus ASCII 標籤的文章。 顯示所有文章
顯示具有 Modbus ASCII 標籤的文章。 顯示所有文章

2026年3月11日 星期三

Modbus 設定流程指南2026/3


Modbus 設定與除錯流程指南

本篇主要針對 MODBUS 的實務設定進行說明。至於其他底層原理等基礎知識,建議可先透過 Google 搜尋,或參考其他 MODBUS 介紹文章。

快速導覽:設定六步驟

正常情況下,完成前三步即可順利通訊;若發生異常,請接續進行後續的除錯步驟:

  • 第一步:選定硬體通訊方式 (RS232 / RS485 / Ethernet)
  • 第二步:設定通訊參數 (通訊鮑率 / 位元數等)
  • 第三步:選擇要讀/寫的參數
  • 第四步:檢查錯誤碼 (除錯)
  • 第五步:用電腦來收/發資料 (除錯)
  • 第六步:用示波器來量傳輸訊號 (除錯)

詳細步驟說明

第一步:選定硬體通訊方式

依據外部裝置跟主控裝置,選定對應的硬體通訊方式。

  • RS232:通訊只能「一對一」(單站)。
  • RS485 與 Ethernet:支援「一對多」(多站)。

⚠️ 注意:通訊硬體方式一定要一致,絕對無法將 RS232 直接與 RS485 進行通訊。

裝置類型 硬體與接線腳位範例
主站 (例如:PLC) COM2 / RS485 / PIN2 (D+) / PIN3 (D-)
從站 (例如:外部裝置) RS485 / D+ / D-

第二步:設定通訊參數

設定相關通訊參數,包含:站號 (主站不需要)、通訊鮑率 (9600/19200/38400)、資料位元 (7/8 位元)、同位元檢查 (O/E/N)、停止位元 (1/1.5/2)、資料格式 (ASCII/RTU)。

⚠️ 注意:選擇 RTU 資料格式時,資料位元只能選 8 位元。

通訊參數設定範例:

參數項目 主站 (PLC) 設定 從站 (溫控器) 設定
站號 不需要 1 (站號不可重覆)
通訊鮑率 9600 9600
資料位元 8 位元 8 位元
同位元檢查 O (Odd) O (Odd)
停止位元 1 1
資料格式 RTU RTU

💡 提示:雙方通訊參數必須「完全一致」否則無法通訊。建議將上述參數記錄下來,一一核對設定。

第三步:選擇要讀 \ 寫的參數

選定我們要讀寫的參數,並在設備手冊內查詢對應的「通訊位址」。以台達溫控器為例,手冊通常會在參數旁直接標示通訊位址,並註明支援的通訊功能碼(例如:03)。

關於 Modicon Format 位址:

Modicon Format 本身已經內含了功能碼的資訊:

  • 4XXXX:代表功能碼 03(讀取保持暫存器)。將該值減去 40001 即可得到實際的十六進制通訊位址。
  • 3XXXX:代表功能碼 04(讀取輸入暫存器)。將該值減去 30001 即可得到通訊位址。(一般設備支援 03 功能碼較多,若要用 04 通常需另外設定)。

⚠️ 注意:有些參數被限制為「唯讀」或「唯寫」。如果對該參數執行錯誤的動作,設備會回報錯誤或完全沒有回應。


出問題了嗎?進階除錯步驟

一般來說,完成前三步通常就不會有問題。但如果遇到無法連線,請繼續以下步驟:

第四步:檢查錯誤碼 (Exception Code)

當通訊發生錯誤時,外部設備通常會回覆「通訊錯誤碼」。

  1. 最高位元設為 1:設備會將原本功能碼的最高位元設為 "1"。例如:如果 PLC 發出功能碼 03,設備錯誤時會回傳 83 (16進制),這就表示通訊命令被拒絕或有問題。
  2. 夾帶錯誤代碼:除了改變功能碼,後面通常會接續一組「錯誤碼」(如 01, 02, 03 等),讓使用者能在手冊中查詢具體的出錯原因(例如:位址不存在、數值越界)。

💡 提示:這裡的「通訊錯誤碼」與設備機台本身的「硬體故障碼」不同,不可搞混。

第五步:用電腦來收 / 發資料

如果 PLC 發出了 MODBUS 指令但設備沒有回傳:

  • 首先,將通訊參數全部重新確認一次。(注意:某些設備的通訊參數修改後,需要「重新開關機」才會生效)。
  • 如果確認無誤,請使用電腦搭配 USB 轉 RS485 傳輸線,開啟檢測工具程式來接收 PLC 的資料,確認 PLC 是否真的有將命令發送出來
  • 電腦除了可以監聽 PLC,也可以主動模擬 PLC 發出命令給外部裝置,測試外部裝置是否會正常回應。

如果使用電腦發出指令,外部設備依然不回應,那通常不是通訊參數設定錯了,就是硬體接線出了問題。



第六步:用示波器來量傳輸訊號

如果前面的軟體設定與 PC 模擬都顯示正常,但 PLC 與設備之間就是無法通訊,最後的殺手鐧就是使用「示波器」來測量實體波型。

MODBUS 指令的最底層,依然是利用高低電位(二進制碼 010101)在實體線路上傳送。透過示波器,您可以清楚看到:

  • 方波波型是否方正正常。
  • 訊號是否受到嚴重的外部電磁干擾 (雜訊)。
  • 電壓準位是否因為線路過長而發生衰減。



2025年2月12日 星期三

Wu.CommTool 好用的modbus調適工具

開源通訊調試工具:Wu.CommTool 簡介與應用

在工業自動化與物聯網應用中,Modbus 與 MQTT 是兩種常見的通訊協議。Wu.CommTool 是一款基於 C#、WPF、Prism、MaterialDesignHandyControl 開發的開源通訊調試工具,能夠幫助工程師快速調試這些協議。




Wu.CommTool 主要功能

  • Modbus RTU:自動格式化與解析數據幀、設備搜尋、數據監控、讀寫操作等。
  • Modbus TCP:目前開發中,未來將支援自訂數據幀功能。
  • MQTT 伺服器:可作為本地 MQTT 伺服器,方便測試 MQTT 客戶端連線。
  • MQTT 客戶端:可訂閱與發佈訊息,支援 JSON 格式化顯示。
  • 附加工具:內建 JSON 格式化工具與轉換功能,提升調試效率。

為什麼選擇 Wu.CommTool?

相較於其他通訊調試工具,Wu.CommTool 具備以下優勢:

  • 開源免費,無需額外授權費用。
  • 操作界面簡潔直觀,適合新手與專業工程師。
  • 支援 Modbus 與 MQTT,適用於工業自動化與物聯網應用。
  • 持續更新與維護,功能不斷擴充

如何下載與安裝?

你可以從 GitHub 官方倉庫下載最新版本:

👉 點擊前往 GitHub 官方頁面

最新版本為 1.4.0.22,發布日期為 2024 年 10 月 7 日。

結論

Wu.CommTool 是一款功能強大且免費的通訊調試工具,適合從事 工業自動化、物聯網開發、嵌入式系統 的工程師。如果你正在尋找一款易用的 Modbus 與 MQTT 調試工具,不妨下載試試看!

2024年8月30日 星期五

Modbus 協議有哪些版本?全面解析

Modbus 協議有哪些版本?全面解析

Modbus 是一種在工業自動化中廣泛應用的通信協議,為控制器與其他設備之間的數據交換提供了簡單而高效的解決方案。隨著時間的推移,Modbus 發展出了多個版本,每個版本針對不同的應用場景和通信需求。本文將詳細介紹 Modbus 的三個主要版本:Modbus RTU、Modbus ASCII 和 Modbus TCP,並探討它們的各自特點。


Modbus RTU

Modbus RTU 是最常見的 Modbus 版本,使用二進制數據格式進行通信,通常通過 RS-232 或 RS-485 這類串行通信接口來實現。RTU 模式具有較高的通信效率,因為數據以緊湊的二進制形式傳輸,適合用於需要高效通信的工業環境。

Modbus ASCII

Modbus ASCII 是另一種基於串行通信的 Modbus 版本,不同於 RTU,ASCII 模式使用可讀的 ASCII 字符來表示數據。雖然這使得數據通信更容易被人類讀取和調試,但也因此增加了數據量,導致通信效率低於 RTU 模式。Modbus ASCII 主要應用於需要簡單調試或低速通信的場景。

Modbus TCP

Modbus TCP 是針對以太網通信需求設計的 Modbus 版本,它在傳輸層使用 TCP/IP 協議,實現了更高的通信速度和更靈活的網絡架構。Modbus TCP 能夠輕鬆整合到現代以太網基礎設施中,廣泛應用於需要長距離通信或複雜網絡配置的工業環境。

Modbus 協議版本的應用場景

Modbus RTU 通常應用於小型工業網絡中,如 PLC 與傳感器之間的通信;Modbus ASCII 適合用於需要簡單監控和調試的環境;而 Modbus TCP 則廣泛應用於大型工業自動化系統中,允許多設備通過以太網進行高效通信。

結論

Modbus 協議的不同版本各有特點,適用於不同的應用場景。了解這些版本之間的差異,有助於選擇最合適的通信協議來滿足具體的工業需求。無論是串行通信的 RTU 和 ASCII 還是基於以太網的 TCP,每一種版本都在工業自動化中扮演著重要角色。

資料來源