電話:0755-84805790
傳真:0755-89258770
業(yè)務(wù)咨詢:13632638280
郵箱: 602566016@qq.com
QQ:602566016
單片機(jī)開發(fā)線路板設(shè)計(jì)中使用的Modbus-RTU常用功能碼通信數(shù)據(jù)
一,主機(jī)讀數(shù)據(jù)(功能碼:0X03)
1,主機(jī)發(fā)送命令格式
設(shè)備地址碼(1BYTE) |
功能碼(1BYTE) |
寄存器首地址高字節(jié)(1BYTE) |
寄存器首地址低字節(jié)(1BYTE) |
寄存器個(gè)數(shù)高字節(jié)(1BYTE) |
寄存器個(gè)數(shù)低字節(jié)(1BYTE) |
CRC校驗(yàn)高字節(jié)(1BYTE) |
CRC校驗(yàn)低字節(jié)(1BYTE) |
2,從機(jī)返回命令格式
設(shè)備地址(1BYTE) |
功能碼(1BYTE) |
有效數(shù)據(jù)個(gè)數(shù)高字節(jié) |
有效數(shù)據(jù)個(gè)數(shù)低字節(jié) |
有效數(shù)據(jù) 1 高字節(jié) |
有效數(shù)據(jù) 1 低字節(jié) |
有效數(shù)據(jù) n 高字節(jié) |
有效數(shù)據(jù) n 低字節(jié) |
CRC校驗(yàn)高字節(jié) |
CRC校驗(yàn)低字節(jié) |
例:主機(jī)要讀取01號設(shè)備的0X0000,0X0001,0X0002,0X0003四個(gè)寄存器中的數(shù)據(jù):
主機(jī)發(fā)送:
設(shè)備地址碼(1BYTE) |
功能碼(1BYTE) |
寄存器首地址高字節(jié)(1BYTE) |
寄存器首地址低字節(jié)(1BYTE) |
寄存器個(gè)數(shù)高字節(jié)(1BYTE) |
寄存器個(gè)數(shù)低字節(jié)(1BYTE) |
CRC校驗(yàn)高字節(jié)(1BYTE) |
CRC校驗(yàn)低字節(jié)(1BYTE) |
01 |
03 |
00 |
00 |
00 |
04 |
44 |
09 |
從機(jī)返回
寄存器0x0000中的數(shù)據(jù)(0x0004)
寄存器0x0001中的數(shù)據(jù)(0x0005)
寄存器0x0002中的數(shù)據(jù)(0x0001)
寄存器0x0003中的數(shù)據(jù)(0x0002)
0x01 0x03 0x08 0x00 0x04 0x00 0x05 0x00 0x01 0x00 0x02 0xcc 0x16
一, 主機(jī)寫(修改從機(jī))數(shù)據(jù)(功能碼:0X06)
1,主機(jī)發(fā)送命令格式
設(shè)備地址碼(1BYTE) |
功能碼(1BYTE) |
寄存器地址高字節(jié)(1BYTE) |
寄存器地址低字節(jié)(1BYTE) |
寄存器值高字節(jié)(1BYTE) |
寄存器值低字節(jié)(1BYTE) |
CRC校驗(yàn)高字節(jié)(1BYTE) |
CRC校驗(yàn)低字節(jié)(1BYTE) |
2,從機(jī)返回命令格式
設(shè)備地址碼(1BYTE) |
功能碼(1BYTE) |
寄存器地址高字節(jié)(1BYTE) |
寄存器地址低字節(jié)(1BYTE) |
寄存器值高字節(jié)(1BYTE) |
寄存器值低字節(jié)(1BYTE) |
CRC校驗(yàn)高字節(jié)(1BYTE) |
CRC校驗(yàn)低字節(jié)(1BYTE) |
例:主機(jī)要修改01號設(shè)備的0X0000寄存器,將寄存器中的值改為0x0008:
主機(jī)發(fā)送:
設(shè)備地址碼(1BYTE) |
功能碼(1BYTE) |
寄存器地址高字節(jié)(1BYTE) |
寄存器地址低字節(jié)(1BYTE) |
寄存器值高字節(jié)(1BYTE) |
寄存器值低字節(jié)(1BYTE) |
CRC校驗(yàn)高字節(jié)(1BYTE) |
CRC校驗(yàn)低字節(jié)(1BYTE) |
01 |
06 |
00 |
00 |
00 |
08 |
88 |
0C |
從機(jī)返回:
設(shè)備地址碼(1BYTE) |
功能碼(1BYTE) |
寄存器地址高字節(jié)(1BYTE) |
寄存器地址低字節(jié)(1BYTE) |
寄存器值高字節(jié)(1BYTE) |
寄存器值低字節(jié)(1BYTE) |
CRC校驗(yàn)高字節(jié)(1BYTE) |
CRC校驗(yàn)低字節(jié)(1BYTE) |
01 |
06 |
00 |
00 |
00 |
08 |
88 |
0C |
10 寫多個(gè)保持寄存器
上位機(jī)發(fā)送數(shù)據(jù)格式
“:”ADDRESS Ox10 ADDRH ADDRL NUMH NUML BYTECOUNT DATAHI DATALI DATA2H DATA2L------DATANH DATANL LRC OXOD OXOA
注:ADDR: 0----OXFFFF; NUM:0-125 (NUM為要寫的保持寄存器的數(shù)量)
正確時(shí)變頻器返回?cái)?shù)據(jù)格式
“:” ADDRESS Ox10 ADDRH ADDRL NUMH NUML LRC OXOD OXOA
二. 功能碼 10寫連續(xù)地址寄存器
例:主機(jī)要修改01號設(shè)備的0X1200寄存器,將寄存器中的值改為連續(xù)前3個(gè)地址改為0xff00:
主機(jī)發(fā)送:
設(shè)備地址碼(1BYTE) |
功能碼(1BYTE) |
寄存器地址高字節(jié)(1BYTE) |
寄存器地址低字節(jié)(1BYTE) |
連續(xù)寫個(gè)數(shù) 高字節(jié)(1BYTE) |
連續(xù)寫個(gè)數(shù) 低字節(jié)(1BYTE) |
發(fā)送的數(shù)據(jù)總數(shù)(1BYTE) |
數(shù)據(jù)1高字節(jié)(1BYTE) |
數(shù)據(jù)1低字節(jié)(1BYTE) |
數(shù)據(jù)2高字節(jié)(1BYTE) |
數(shù)據(jù)2低字節(jié)(1BYTE) |
數(shù)據(jù)3高字節(jié)(1BYTE) |
數(shù)據(jù)3低字節(jié)(1BYTE) |
CRC校驗(yàn)高字節(jié)(1BYTE) |
CRC校驗(yàn)低字節(jié)(1BYTE) |
01 |
10 |
00 |
00 |
00 |
03 |
06 |
ff |
00 |
ff |
00 |
ff |
00 |
DC |
13 |
從機(jī)返回:
設(shè)備地址碼(1BYTE) |
功能碼(1BYTE) |
寄存器地址高字節(jié)(1BYTE) |
寄存器地址低字節(jié)(1BYTE) |
連續(xù)寫個(gè)數(shù) 高字節(jié)(1BYTE) |
連續(xù)寫個(gè)數(shù) 低字節(jié)(1BYTE) |
CRC校驗(yàn)高字節(jié)(1BYTE) |
CRC校驗(yàn)低字節(jié)(1BYTE) |
01 |
10 |
12 |
00 |
00 |
03 |
85 |
70 |