Leave Your Message
新聞類別
專題新聞

Modbus 功能碼/異常功能碼/錯誤碼

2026-04-09

Modbus Modbus 是一種廣泛應用於電子設備通訊的串行通訊協議,尤其適用於工業環境。它支援多種資料傳輸模式,包括 ASCII 和 RTU(遠端終端單元)。該協定透過功能碼實現各種操作,例如讀取保持暫存器、寫入單一暫存器以及監控輸入狀態。此外,Modbus 還定義了一組異常碼和錯誤碼,用於處理資料交換過程中的通訊錯誤或異常情況。

Ⅰ.功能碼

‌01 (0x01)‌ - 讀取持有登記簿

‌02 (0x02)‌ - 讀取輸入暫存器

‌03 (0x03)‌ - 讀取持有登記簿

‌04 (0x04)‌ - 讀取輸入暫存器

‌05 (0x05)‌ - 強制單一暫存器

‌06 (0x06)‌ - 預設多個暫存器

15 (0x0F) - 強制多個暫存器

16 (0x10) - 報表伺服器 ID

22 (0x16) - 掩碼寫入暫存器

‌23 (0x17)‌ - 讀取/寫入多個暫存器

24 (0x18) - 讀取 FIFO 佇列

26 (0x1A) - 診斷暫存器

圖片1.jpg

二、例外程式碼

當請求無法執行時,Modbus 設備會傳回一個包含異常功能碼的異常回應。通常,異常功能碼出現在回應的第一個位元組中,緊接在後的是實際的程式碼值。

0x01 - 非法函數

0x02 - 資料位址

0x03 - 數據值

0x04 - 從設備故障

0x05 - 確認

0x06 - 從設備忙

0x07 - 網關路徑不可用

0x08 - 目標裝置無回應

圖片2.jpg

三、錯誤代碼

實際上,除了異常功能碼之外,還可能出現其他類型的錯誤代碼,尤其是在硬體或軟體層面。這些錯誤可能源自於 Modbus 協定的實作細節、實體連接問題、電磁幹擾或其他硬體故障。例如:

①CRC 錯誤:在 RTU 模式下,CRC 校驗和失敗表示傳輸過程中可能有資料損壞。

②設備無回應:嘗試與從設備通訊時,如果未收到回應,則可能表示設備故障、連線問題或配置錯誤。

③過載/逾時:嘗試執行操作時,如果裝置因負載過大或處理時間過長而未能及時回應,則可能會發生逾時錯誤。

圖片3.jpg

故障排除步驟:

①檢查連接:確保所有連接正確且無物理損壞。

②測試從站設備:使用各種工具或基本 Modbus 指令驗證設備的回應能力。

③配置驗證:確保Modbus位址、波特率和其他配置設定正確。

④軟體和韌體更新:確保所有相關設備都具有最新的軟體和韌體版本。

⑤電磁幹擾測試:在可能發生電磁幹擾的區域使用屏蔽電纜或濾波器。

上述方法能夠有效診斷並解決在 Modbus 協定實施過程中遇到的問題。