Modbus异常码
功能碼域
在正常響應中,服務器利用響應功能碼域來應答最初請求的功能碼。所有功能碼的最高有效位(MSB)都為0(它們的值都低于十六進制80)。在異常響應中,服務器設置功能碼的MSB 為1。這使得異常響應中的功能碼值比正常響應中的功能碼值高十六進制80。通過設置功能碼的MSB,客戶機的應用程序能夠識別異常響應,并且能夠檢測異常碼的數據域。
?
數據域
在正常響應中,服務器可以返回數據域中數據或統計表(請求中要求的任何報文)。在異常響應中,服務器返回數據域中的異常碼。這就定義了產生異常的服務器狀態。
錯誤代碼表
| 代碼 | 名稱 | 含義 |
| 01 | 非法功能 | 對于服務器(或從站)來說,詢問中接收到的功能碼是不可允許的操作,可能是因為功能碼僅適用于新設備而被選單元中不可實現同時,還指出服務器(或從站)在錯誤狀態中處理這種請求,例如:它是未配置的,且要求返回寄存器值。 |
| 02 | 非法數據地址 | 對于服務器(或從站)來說,詢問中接收的數據地址是不可允許的地址,特別是參考號和傳輸長度的組合是無效的。對于帶有100個寄存器的控制器來說,偏移量96和長度4的請求會成功,而偏移量96和長度5的請求將產生異常碼02。 |
| 03 | 非法數據值 | 對于服務器(或從站)來說,詢問中包括的值是不可允許的值。該值指示了組合請求剩余結構中的故障。例如:隱含長度是不正確的。modbus協議不知道任何特殊寄存器的任何特殊值的重要意義,寄存器中被提交存儲的數據項有一個應用程序期望之外的值。 |
| 04 | 從站設備故障 | 當服務器(或從站)正在設法執行請求的操作時,產生不可重新獲得的差錯。 |
| 05 | 確認 | 與編程命令一起使用,服務器(或從站)已經接受請求,并且正在處理這個請求,但是需要長持續時間進行這些操作,返回這個響應防止在客戶機(或主站)中發生超時錯誤,客戶機(或主機)可以繼續發送輪詢程序完成報文來確認是否完成處理。 |
| 07 | 從屬設備忙 | 與編程命令一起使用,服務器(或從站)正在處理長持續時間的程序命令,當服務器(或從站)空閑時,客戶機(或主站)應該稍后重新傳輸報文。 |
| 08 | 存儲奇偶性差錯 | 與功能碼20和21以及參考類型6一起使用,指示擴展文件區不能通過一致性校驗。服務器(或從站)設備讀取記錄文件,但在存儲器中發現一個奇偶校驗錯誤。客戶機(或主機)可重新發送請求,但可以在服務器(或從站)設備上要求服務。 |
| 0A | 不可用網關路徑 | 與網關一起使用,指示網關不能為處理請求分配輸入端口值輸出端口的內部通信路徑,通常意味著網關是錯誤配置的或過載的。 |
| 0B | 網關目標設備響應失敗 | 與網關一起使用,指示沒有從目標設備中獲得響應,通常意味著設備未在網絡中。 |
總結
- 上一篇: 波士顿动力放出新视频:谁都挡不住机器狗开
- 下一篇: STM32之ADC多通道连续例程