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