表1 ModBus功能碼
功能碼 名稱 作用
01 讀取線圈狀態 取得一組邏輯線圈的目前狀態(ON/OFF)
02 讀取輸入狀態 取得一組開關輸入的目前狀態(ON/OFF)
03 讀取保持寄存器 在一個或多個保持寄存器中取得當前的二進位值
04 讀取輸入寄存器 在一個或多個輸入寄存器中取得當前的二進位值
05 強置單線圈 強置一個邏輯線圈的通斷狀態
06 預置單寄存器 把具體二進值裝入一個保持寄存器
07 讀取異常狀態 取得8個內部線圈的通斷狀態,這8個線圈的地址由控制器決定,使用者邏輯可以將這些線圈定義,以說明從機狀態,短報文適宜於迅速讀取狀態
08 回送診斷校正 把診斷校正報文送從機,以對通訊處理進行評鑒
09 編程(只用於484) 使主機類比編程器作用,修改PC從機邏輯
10 控詢(只用於484) 可使主機與一台正在執行長程式任務從機通訊,探詢該從機是否已完成其操作任務,僅在含有功能碼9的報文發送後,本功能碼才發送
11 讀取事件計數 可使主機發出單詢問,並隨即判定操作是否成功,尤其是該命令或其他應答產生通訊錯誤時
12 讀取通訊事件記錄 可是主機檢索每台從機的ModBus交易處理通訊事件記錄。如果某項交易處理完成,記錄會給出有關錯誤
13 編程(184/384 484 584) 可使主機類比編程器功能修改PC從機邏輯
14 探詢(184/384 484 584) 可使主機與正在執行任務的從機通訊,定期控詢該從機是否已完成其程式操作,僅在含有功能13的報文發送後,本功能碼才得發送
15 強置多線圈 強置一串聯續邏輯線圈的通斷
16 預置多寄存器 把具體的二進位值裝入一串聯續的保持寄存器
17 報告從機標識 可使主機判斷編址從機的類型及該從機運行指示燈的狀態
18 (884和MICRO 84) 可使主機類比編程功能,修改PC狀態邏輯
19 重設通訊鏈路 發生非可修改錯誤後,是從機複位於已知狀態,可重設順序位元組
20 讀取通用參數(584L) 顯示擴充儲存空間檔案中的資料資訊
21 寫入通用參數(584L) 把通用參數寫入擴充隱藏檔,或修改之
22~64 保留作擴充功能備用
65~72 保留以備使用者功能所用 留作使用者功能的擴充編碼
73~119 非法功能
120~127 保留 留作內部作用
128~255 保留 用於異常應答
表2 ModBus功能碼與資料類型對應表
代碼 功能 資料類型
01 讀 位
02 讀 位
03 讀 整型、字元型、狀態字、浮點型
04 讀 整型、狀態字、浮點型
05 寫 位
06 寫 整型、字元型、狀態字、浮點型
08 N/A 重複“迴路反饋”資訊
15 寫 位
16 寫 整型、字元型、狀態字、浮點型