10.5.8
(0x08)診斷功能
1. 功能說明
08功能碼僅用于串行鏈路,主要用于檢測主設(shè)備和從設(shè)備之間的通信故障,或檢測從設(shè)備的各種內(nèi)部故障,該功能碼不支持廣播。為了區(qū)別各診斷類型,查詢報文中提供了2字節(jié)的子功能碼字段。
通常在正常的響應報文中,從設(shè)備將原樣回復功能碼和子功能碼。
2. 查詢報文
查詢報文中需要指定從設(shè)備地址、功能碼以及子功能碼。
例如,下表中標識了子功能碼“原樣返回查詢數(shù)據(jù)”的診斷功能,其中子功能碼為0(0x0000)。在子功能碼為0x0000的情況下,數(shù)據(jù)字段可以為任意值。各子功能碼的詳細意義可參考下表。
功能碼08查詢報文示例:
字段 |
例 (Hex) |
ASCII模式字符型 |
RTU模式8位 (Hex) |
幀頭 | “:” | ||
從設(shè)備地址 | 0x05 | “0”,“5” | 0x05 |
功能碼 | 0x08 | “0”,“8” | 0x08 |
子功能碼 (高位) |
0x00 | “0”,“0” | 0x00 |
子功能碼 (低位) |
0x00 | “0”,“0” | 0x00 |
數(shù)據(jù) (高位) |
0x04 | “0”,“4” | 0x04 |
數(shù)據(jù) (低位) |
0xB0 | “B”,“0” | 0xB0 |
差錯校驗 | LRC(2字符) | CRC(2字節(jié)) | |
幀尾 | CR/LF | ||
合計字節(jié)數(shù) | 17 | 8 |
本功能碼中,子功能碼由2字節(jié)構(gòu)成,取值則根據(jù)意義而不同;數(shù)據(jù)字段由2字節(jié)構(gòu)成,其取值由子功能碼確定。
3. 響應報文
響應報文的各項構(gòu)成和意義如下表所示。對于從設(shè)備,在保持寄存器正常變更的情況下會返回與查詢報文相同的響應報文。如果修改失敗,則返回一個異常響應。
功能碼08響應報文示例:
字段 |
例 (Hex) |
ASCII模式字符型 |
RTU模式8位 (Hex) |
幀頭 | “:” | ||
從設(shè)備地址 | 0x05 | “0”,“5” | 0x05 |
功能碼 | 0x08 | “0”,“8” | 0x08 |
子功能碼 (高位) |
0x00 | “0”,“0” | 0x00 |
子功能碼 (低位) |
0x00 | “0”,“0” | 0x00 |
數(shù)據(jù) (高位) |
0x04 | “0”,“4” | 0x04 |
數(shù)據(jù) (低位) |
0xB0 | “B”,“0” | 0xB0 |
差錯校驗 | LRC(2字符) | CRC(2字節(jié)) | |
幀尾 | CR/LF | ||
合計字節(jié)數(shù) | 17 | 8 |
4. 診斷子功能碼
各常用的診斷子功能碼的定義如下。
Return Query Data(00)
診斷內(nèi)容 | 原樣返回查詢報文 |
子功能碼 | 0x000x00 |
查詢報文數(shù)據(jù)字段 | 任意16為數(shù)據(jù) |
響應報文數(shù)據(jù)字段 | 同查詢報文 |
Restart Communication Option(01)
診斷內(nèi)容 | 重啟通信選項;用于初始化并重新啟動從站設(shè)備,清楚所有通信事件計數(shù)器;如果端口處于 Listen Only Mode,則不返回響應;否則在重啟之前返回響應 |
子功能碼 | 0x00,0x01 |
查詢報文數(shù)據(jù)字段 | 0x00,0x00保持事件記錄;0xFF,0x00清除事件記錄 |
響應報文數(shù)據(jù) | 同查詢報文 |
診斷內(nèi)容 | 重啟通信選項;用于初始化并重新啟動從站設(shè)備,清楚所有通信事件計數(shù)器;如果端口處于 Listen Only Mode,則不返回響應;否則在重啟之前返回響應 |
字段 |
Return Diagnostics Register(02)
診斷內(nèi)容 | 返回診斷寄存器 |
子功能碼 | 0x00,0x04 |
查詢報文數(shù)據(jù)字段 | 0x00,0x00 |
響應報文數(shù)據(jù)字段 | 診斷寄存器的內(nèi)容 |
Force Listen Only Mode
診斷內(nèi)容 | 強制只聽模式;強制被尋址的從站設(shè)備進入只聽模式,使得此設(shè)備與網(wǎng)絡(luò)中的其他設(shè)備斷開,不返回響應 |
子功能碼 | 0x00,0x04 |
查詢報文數(shù)據(jù)字段 | 0x00,0x00 |
響應報文數(shù)據(jù)字段 | 不返回響應 |
Clear Counters and Diagnostic Register
診斷內(nèi)容 | 清除計數(shù)器和診斷寄存器 |
子功能碼 | 0x00,0x0A |
查詢報文數(shù)據(jù)字段 | 0x00,0x00 |
響應報文數(shù)據(jù)字段 | 同查詢報文 |
Return Bus Message Count(11,0x0B)
診斷內(nèi)容 | 返回總線報文計數(shù) |
子功能碼 | 0x00,0x0B |
查詢報文數(shù)據(jù)字段 | 0x00,0x00 |
響應報文數(shù)據(jù)字段 | 返回報文的技數(shù)值 |
Return Bus Communication Error Count(12,0x0C)
診斷內(nèi)容 | 返回總線通信CRC差錯計數(shù) |
子功能碼 | 0x00,0x0C |
查詢報文數(shù)據(jù)字段 | 0x00,0x00 |
響應報文數(shù)據(jù)字段 | 返回報文的CRC出錯總數(shù) |
Return Bus Exception Error Count(13,0x0D)
診斷內(nèi)容 | 返回總線異常差錯計數(shù) |
子功能碼 | 0x00,0x0D |
查詢報文數(shù)據(jù)字段 | 0x00,0x00 |
響應報文數(shù)據(jù)字段 | 返回異常響應的總數(shù) |
Return Slave Message Count(14,0x0E)
診斷內(nèi)容 | 返回從站設(shè)備報文總數(shù) |
子功能碼 | 0x00,0x0E |
查詢報文數(shù)據(jù)字段 | 0x00,0x00 |
響應報文數(shù)據(jù)字段 | 返回從站設(shè)備接收報文總數(shù) |
Return Slave No Response Counrt(15,0x0F)
診斷內(nèi)容 | 返回從站設(shè)備無響應計數(shù) |
子功能碼 | 0x00,0x0F |
查詢報文數(shù)據(jù)字段 | 0x00,0x00 |
響應報文數(shù)據(jù)字段 | 返回加電后沒有返回響應的報文的保文數(shù)量 |
Return Slave Busy Count(17,0x11)
診斷內(nèi)容 | 返回從站設(shè)備忙計數(shù) |
子功能碼 | 0x00,0x11 |
查詢報文數(shù)據(jù)字段 | 0x00,0x00 |
響應報文數(shù)據(jù)字段 | 返回加電后異常響應忙的報文數(shù)量 |
Return Bus Character Overrun Count(18,0x12)
診斷內(nèi)容 | 返回總線字符超限計數(shù) |
子功能碼 | 0x00,0x12 |
查詢報文數(shù)據(jù)字段 | 0x00,0x00 |
響應報文數(shù)據(jù)字段 | 返回超限的報文數(shù)量 |
-
設(shè)備
+關(guān)注
關(guān)注
2文章
4472瀏覽量
70539 -
功能碼
+關(guān)注
關(guān)注
0文章
10瀏覽量
2104 -
報文
+關(guān)注
關(guān)注
0文章
38瀏覽量
4017
原文標題:(0x08)診斷功能 - RZ MPU工業(yè)控制教程連載(33)
文章出處:【微信號:瑞薩MCU小百科,微信公眾號:瑞薩MCU小百科】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論