10.5.6
(0x05)寫(xiě)單個(gè)線圈
1. 功能說(shuō)明
05功能碼用于將單個(gè)線圈寄存器(或離散輸入)設(shè)置為ON或OFF,該功能碼支持廣播模式在廣播模式下,所有從站設(shè)備的同一地址的值將被統(tǒng)一修改。查詢(xún)報(bào)文中的ON/OFF狀態(tài)由報(bào)文數(shù)據(jù)字段的常數(shù)指定,0xFF00表示 ON狀態(tài),0x0000表示OFF狀態(tài)。其他值均是非法的,并且對(duì)寄存器不起作用,將會(huì)返回異常響應(yīng)。
2. 查詢(xún)報(bào)文
查詢(xún)報(bào)文中需要指定從設(shè)備地址以及需要變更的線圈地址和設(shè)定的狀態(tài)值。需要注意的是,在查詢(xún)報(bào)文中,線圈地址從地址0開(kāi)始計(jì)數(shù)。例如,如下表所示,從設(shè)備地址為 3,設(shè)置線圈地址00150為ON狀態(tài),則查詢(xún)報(bào)文中的線圈地址設(shè)置為0x95(149)。
功能碼05查詢(xún)報(bào)文示例:
字段 |
例 (Hex) |
ASCII 模式字符型 |
RTU模式8位 (Hex) |
幀頭 | “:” | ||
從設(shè)備地址 | 0x03 | “0”,“3” | 0x03 |
功能碼 | 0x05 | “0”,“5” | 0x05 |
起始地址 (高位) |
0x00 | “0”,“0” | 0x00 |
起始地址 (低位) |
0x95 | “9”,“5” | 0x95 |
變更數(shù)據(jù) (高位) |
0xFF | “F”,“F” | 0xFF |
變更數(shù)據(jù) (低位) |
0x00 | “0”,“0” | 0x00 |
差錯(cuò)校驗(yàn) | LRC(2字符) | CRC(2字節(jié)) | |
幀尾 | CR/LF | ||
合計(jì)字節(jié)數(shù) | 17 | 8 |
本功能碼中,起始地址由2字節(jié)構(gòu)成,取值范圍為 0x0000~0xFFFF:變更目標(biāo)數(shù)據(jù)由2字節(jié)構(gòu)成,取值只能為0xFF00或0x0000。
3. 響應(yīng)報(bào)文
響應(yīng)報(bào)文的各項(xiàng)構(gòu)成和意義如下表所示。對(duì)于從設(shè)備,在線圈或離散輸出寄存器正常變更的情況下會(huì)返回與查詢(xún)報(bào)文相同的響應(yīng)報(bào)文。如果修改失敗,則會(huì)返回一個(gè)異常響應(yīng),對(duì)于異常響應(yīng),后續(xù)章節(jié)會(huì)進(jìn)一步詳細(xì)介紹。
功能碼05響應(yīng)報(bào)文示例:
字段 |
例 (Hex) |
ASCII 模式字符型 |
RTU模式8位 (Hex) |
幀頭 | “:” | ||
從設(shè)備地址 | 0x03 | “0”,“3” | 0x03 |
功能碼 | 0x05 | “0”,“5” | 0x05 |
起始地址 (高位) |
0x00 | “0”,“0” | 0x00 |
起始地址 (低位) |
0x95 | “9”,“5” | 0x95 |
變更數(shù)據(jù) (高位) |
0xFF | “F”,“F” | 0xFF |
變更數(shù)據(jù) (低位) |
0x00 | “0”,“0” | 0x00 |
差錯(cuò)校驗(yàn) | LRC(2字符) | CRC(2字節(jié)) | |
幀尾 | CR/LF | ||
合計(jì)字節(jié)數(shù) | 17 | 8 |
10.5.7
(0x06)寫(xiě)單個(gè)保持寄存器
1. 功能說(shuō)明
06功能碼用于更新從設(shè)備的單個(gè)保持寄存器的值,該功能碼支持廣播模式,在廣播模式下所有從設(shè)備的同一地址的值將被統(tǒng)一修改。
2. 查詢(xún)報(bào)文
查詢(xún)報(bào)文中需要指定從設(shè)備地址以及需要變更的保持寄存器地址和設(shè)定的值。需要注意的是查詢(xún)報(bào)文中,寄存器地址從地址0開(kāi)始計(jì)數(shù)。例如,如下表所示,從設(shè)備地址為3,設(shè)置寄存器地址40150為1200(即0x04B0),則查詢(xún)報(bào)文中的地址字段設(shè)置為0x95(149)。
功能碼06查詢(xún)報(bào)文示例:
字段 |
例 (Hex) |
ASCII 模式字符型 |
RTU模式8位 (Hex) |
幀頭 | “:” | ||
從設(shè)備地址 | 0x03 | “0”,“3” | 0x03 |
功能碼 | 0x06 | “0”,“6” | 0x06 |
起始地址 (高位) |
0x00 | “0”,“0” | 0x00 |
起始地址 (低位) |
0x95 | “9”,“5” | 0x95 |
變更數(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)成,取值范圍為 0x0000~0xFFFF;變更目標(biāo)數(shù)據(jù)由2字節(jié)構(gòu)成,取值范圍為0x0000~0xFFFF。
3. 響應(yīng)報(bào)文
響應(yīng)報(bào)文的各項(xiàng)構(gòu)成和意義,如下表所示。對(duì)于從設(shè)備,在保持寄存器正常變更的情況下會(huì)返回與查詢(xún)報(bào)文相同的響應(yīng)報(bào)文。如果修改失敗,則返回個(gè)異常響應(yīng)。
功能碼06響應(yīng)報(bào)文示例:
字段 |
例 (Hex) |
ASCII 模式字符型 |
RTU模式8位 (Hex) |
幀頭 | “:” | ||
從設(shè)備地址 | 0x03 | “0”,“3” | 0x03 |
功能碼 | 0x06 | “0”,“6” | 0x06 |
起始地址 (高位) |
0x00 | “0”,“0” | 0x00 |
起始地址 (低位) |
0x95 | “9”,“5” | 0x95 |
變更數(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 |
-
線圈
+關(guān)注
關(guān)注
14文章
1846瀏覽量
45427 -
寄存器
+關(guān)注
關(guān)注
31文章
5434瀏覽量
124439 -
功能碼
+關(guān)注
關(guān)注
0文章
10瀏覽量
2250
原文標(biāo)題:寫(xiě)單個(gè)線圈與單個(gè)保持寄存器相關(guān) - RZ MPU工業(yè)控制教程連載(32)
文章出處:【微信號(hào):瑞薩MCU小百科,微信公眾號(hào):瑞薩MCU小百科】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
基于DWC2的USB驅(qū)動(dòng)開(kāi)發(fā)-發(fā)送相關(guān)的寄存器DMA寄存器詳解

NI提供的modbus工具包功能測(cè)試結(jié)果,但是讀線圈讀不回來(lái),寫(xiě)多個(gè)寄存器也只能寫(xiě)進(jìn)去起始地址那個(gè)是什么原因呢?
Modbus協(xié)議———常用功能碼詳解
寄存器尋址方式
32位寄存器,32位寄存器是什么意思
如何使用寄存器級(jí)讀&寫(xiě)控制基于PXI平臺(tái)的FPGA

STM32系列MCU,寫(xiě)寄存器Or利用固件庫(kù)

移位寄存器的工作原理

PLC維修時(shí)如何妙用掉電保持寄存器
EE-23:使用單個(gè)索引寄存器進(jìn)行運(yùn)動(dòng)自動(dòng)緩沖的AD1847/ADSP-2181環(huán)回示例

歐姆龍斷電保持寄存器是哪些
Modbus協(xié)議的讀取保持寄存器值
寫(xiě)多個(gè)線圈與寫(xiě)多個(gè)保持寄存器

EE-23:AD1847/ADSP-2181環(huán)回示例,使用單個(gè)索引寄存器實(shí)現(xiàn)SPORT自動(dòng)緩沖

評(píng)論