modbus功能碼

ModBus常用功能碼 (功能碼爲10進制)  
01 READ COIL STATUS                       讀線圈寄存器   
02 READ INPUT STATUS           讀狀態寄存器
03 READ HOLDING REGISTER      讀保持寄存器
04 READ INPUT REGISTER                  讀輸入寄存器   
05 WRITE SINGLE COIL                        寫單線圈寄存器  
06 WRITE SINGLE REGISTER       寫單保持寄存器
15 WRITE MULTIPLE COIL          寫多線圈寄存器
16 WRITE MULTIPLE REGISTER           寫多保持寄存器


 
Modbus Function Code說明 
01 Read Coil Status (output relay) 
02 Read Input Status (input relay) 
03 Read Holding Registers (output register) 
04 Read Input Registers 
05 Force Single Coil 
06 Preset Single Register 
07 Read Exception Status 
08 Diagnostics 
09 Program 484 
10 Poll 484 
11 Fetch Comm. Event Ctr. 
12 Fetch Comm. Event Log 
13 Program Controller 
14 Poll Controller 
15 Force Multiple Coils 
16 Preset Multiple Registers 
17 Report Slave ID 
18 Program 884/M84 
19 Reset Comm. Link 
20 Read General Reference 
21 Write General Reference 
22 Mask Write 4x Register 
23 Read/Write 4x Register 
24 Read FIFO Queue 
43 Read Device Identication 
65 to 72  開放給一般使用者定義 
100 to 110 開放給一般使用者定義
 

modbus 錯誤碼說明

功能碼    說明
01    非法功能。對於服務器(或從站)來說,詢問中接收到的功能碼是不可允許的操作,可能是因爲功能碼僅適用於新設備而被選單元中不可實現同時,還指出服務器(或從站)在錯誤狀態中處理這種請求,例如:它是未配置的,且要求返回寄存器值。
02    非法數據地址。對於服務器(或從站)來說,詢問中接收的數據地址是不可允許的地址,特別是參考號和傳輸長度的組合是無效的。對於帶有100個寄存器的控制器來說,偏移量96和長度4的請求會成功,而偏移量96和長度5的請求將產生異常碼02。
03    非法數據值。對於服務器(或從站)來說,詢問中包括的值是不可允許的值。該值指示了組合請求剩餘結構中的故障。例如:隱含長度是不正確的。modbus協議不知道任何特殊寄存器的任何特殊值的重要意義,寄存器中被提交存儲的數據項有一個應用程序期望之外的值。
04    從站設備故障。當服務器(或從站)正在設法執行請求的操作時,產生不可重新獲得的差錯。
05    確認。與編程命令一起使用,服務器(或從站)已經接受請求,並且正在處理這個請求,但是需要長持續時間進行這些操作,返回這個響應防止在客戶機(或主站)中發生超時錯誤,客戶機(或主機)可以繼續發送輪詢程序完成報文來確認是否完成處理。
06    從屬設備忙。與編程命令一起使用。服務器(或從站)正在處理長持續時間的程序命令。張服務器(或從站)空閒時,用戶(或主站)應該稍後重新傳輸報文。
08    存儲奇偶差錯。與功能碼20和21以及參考類型6一起使用,指示擴展文件區不能通過一致性校驗。服務器(或從站)設法讀取記錄文件,但是在存儲器中發現一個奇偶校驗錯誤。客戶機(或主方)可以重新發送請求,但可以在服務器(或從站)設備上要求服務。
10    不可用網關路徑。與網關一起使用,指示網關不能爲處理請求分配輸入端口至輸出端口的內部通信路徑。通常意味着網關是錯誤配置的或過載的。
11    網關目標設備響應失敗。與網關一起使用,指示沒有從目標設備中獲得響應。通常意味着設備未在網絡中。
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章