10.5.6
(0x05)寫單個線圈
1. 功能說明
05功能碼用于將單個線圈寄存器(或離散輸入)設置為ON或OFF,該功能碼支持廣播模式在廣播模式下,所有從站設備的同一地址的值將被統一修改。查詢報文中的ON/OFF狀態由報文數據字段的常數指定,0xFF00表示 ON狀態,0x0000表示OFF狀態。其他值均是非法的,并且對寄存器不起作用,將會返回異常響應。
2. 查詢報文
查詢報文中需要指定從設備地址以及需要變更的線圈地址和設定的狀態值。需要注意的是,在查詢報文中,線圈地址從地址0開始計數。例如,如下表所示,從設備地址為 3,設置線圈地址00150為ON狀態,則查詢報文中的線圈地址設置為0x95(149)。
功能碼05查詢報文示例:
字段 |
例 (Hex) |
ASCII 模式字符型 |
RTU模式8位 (Hex) |
幀頭 | “:” | ||
從設備地址 | 0x03 | “0”,“3” | 0x03 |
功能碼 | 0x05 | “0”,“5” | 0x05 |
起始地址 (高位) |
0x00 | “0”,“0” | 0x00 |
起始地址 (低位) |
0x95 | “9”,“5” | 0x95 |
變更數據 (高位) |
0xFF | “F”,“F” | 0xFF |
變更數據 (低位) |
0x00 | “0”,“0” | 0x00 |
差錯校驗 | LRC(2字符) | CRC(2字節) | |
幀尾 | CR/LF | ||
合計字節數 | 17 | 8 |
本功能碼中,起始地址由2字節構成,取值范圍為 0x0000~0xFFFF:變更目標數據由2字節構成,取值只能為0xFF00或0x0000。
3. 響應報文
響應報文的各項構成和意義如下表所示。對于從設備,在線圈或離散輸出寄存器正常變更的情況下會返回與查詢報文相同的響應報文。如果修改失敗,則會返回一個異常響應,對于異常響應,后續章節會進一步詳細介紹。
功能碼05響應報文示例:
字段 |
例 (Hex) |
ASCII 模式字符型 |
RTU模式8位 (Hex) |
幀頭 | “:” | ||
從設備地址 | 0x03 | “0”,“3” | 0x03 |
功能碼 | 0x05 | “0”,“5” | 0x05 |
起始地址 (高位) |
0x00 | “0”,“0” | 0x00 |
起始地址 (低位) |
0x95 | “9”,“5” | 0x95 |
變更數據 (高位) |
0xFF | “F”,“F” | 0xFF |
變更數據 (低位) |
0x00 | “0”,“0” | 0x00 |
差錯校驗 | LRC(2字符) | CRC(2字節) | |
幀尾 | CR/LF | ||
合計字節數 | 17 | 8 |
10.5.7
(0x06)寫單個保持寄存器
1. 功能說明
06功能碼用于更新從設備的單個保持寄存器的值,該功能碼支持廣播模式,在廣播模式下所有從設備的同一地址的值將被統一修改。
2. 查詢報文
查詢報文中需要指定從設備地址以及需要變更的保持寄存器地址和設定的值。需要注意的是查詢報文中,寄存器地址從地址0開始計數。例如,如下表所示,從設備地址為3,設置寄存器地址40150為1200(即0x04B0),則查詢報文中的地址字段設置為0x95(149)。
功能碼06查詢報文示例:
字段 |
例 (Hex) |
ASCII 模式字符型 |
RTU模式8位 (Hex) |
幀頭 | “:” | ||
從設備地址 | 0x03 | “0”,“3” | 0x03 |
功能碼 | 0x06 | “0”,“6” | 0x06 |
起始地址 (高位) |
0x00 | “0”,“0” | 0x00 |
起始地址 (低位) |
0x95 | “9”,“5” | 0x95 |
變更數據 (高位) |
0x04 | “0”,“4” | 0x04 |
變更數據 (低位) |
0xB0 | “B”,“0” | 0xB0 |
差錯校驗 | LRC(2字符) | CRC(2字節) | |
幀尾 | CR/LF | ||
合計字節數 | 17 | 8 |
本功能碼中,起始地址由2節構成,取值范圍為 0x0000~0xFFFF;變更目標數據由2字節構成,取值范圍為0x0000~0xFFFF。
3. 響應報文
響應報文的各項構成和意義,如下表所示。對于從設備,在保持寄存器正常變更的情況下會返回與查詢報文相同的響應報文。如果修改失敗,則返回個異常響應。
功能碼06響應報文示例:
字段 |
例 (Hex) |
ASCII 模式字符型 |
RTU模式8位 (Hex) |
幀頭 | “:” | ||
從設備地址 | 0x03 | “0”,“3” | 0x03 |
功能碼 | 0x06 | “0”,“6” | 0x06 |
起始地址 (高位) |
0x00 | “0”,“0” | 0x00 |
起始地址 (低位) |
0x95 | “9”,“5” | 0x95 |
變更數據 (高位) |
0x04 | “0”,“4” | 0x04 |
變更數據 (低位) |
0xB0 | “B”,“0” | 0xB0 |
差錯校驗 | LRC(2字符) | CRC(2字節) | |
幀尾 | CR/LF | ||
合計字節數 | 17 | 8 |
-
線圈
+關注
關注
14文章
1813瀏覽量
44353 -
寄存器
+關注
關注
31文章
5322瀏覽量
120021 -
功能碼
+關注
關注
0文章
10瀏覽量
2104
原文標題:寫單個線圈與單個保持寄存器相關 - RZ MPU工業控制教程連載(32)
文章出處:【微信號:瑞薩MCU小百科,微信公眾號:瑞薩MCU小百科】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論