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