MODBUSRTU通讯协议.docx
- 文档编号:29258886
- 上传时间:2023-07-21
- 格式:DOCX
- 页数:21
- 大小:23.97KB
MODBUSRTU通讯协议.docx
《MODBUSRTU通讯协议.docx》由会员分享,可在线阅读,更多相关《MODBUSRTU通讯协议.docx(21页珍藏版)》请在冰豆网上搜索。
MODBUSRTU通讯协议
®
MODBUS通讯协议
使用手册
1.RTU方式通讯协议
1.1.硬件采用RS-485,主从式半双工通讯,主机呼叫从机地址,从机应答方式通讯。
1.2.数据帧10位,1个起始位,8个数据位,1个停止位,无校验。
波特率:
9600;1920038400
1.3.功能码03H:
读寄存器值
主机发送:
1
2
3
4
5
6
7
8
ADR
03H
起始寄存器高字节
起始寄存器低字节
寄存器数高字节
寄存器数低字节
CRC低字节
CRC高字节
第1字节ADR:
从机地址码(=001~254)
第2字节03H:
读寄存器值功能码
第3、4字节:
要读的寄存器开始地址
要读FCC下挂仪表,
第5、6字节:
要读的寄存器数量
第7、8字节:
从字节1到6的CRC16校验和
从机回送:
1
2
3
4、5
6、7
M-1、M
M+1
M+2
ADR
03H
字节总数
寄存器数据1
寄存器数据2
。
。
。
寄存器数据M
CRC低字节
CRC高字节
第1字节ADR:
从机地址码(=001~254)
第2字节 03H:
返回读功能码
第3字节 :
从4到M(包括4及M)的字节总数
第4到M字节:
寄存器数据
第M+1、M+2字节:
从字节1到M的CRC16校验和
当从机接收错误时,从机回送:
1
2
3
4
5
ADR
83H
信息码
CRC低字节
CRC高字节
第1字节ADR:
从机地址码(=001~254)
第2字节 83H:
读寄存器值出错
第3字节 信息码:
见信息码表
第4、5字节:
从字节1到3的CRC16校验和
1.4.功能码06H:
写单个寄存器值
主机发送:
1
2
3
4
5
6
7
8
ADR
06
寄存器高字节地址
寄存器低字节地址
数据高字节
数据低字节
CRC码低字节
CRC码高字节
当从机接收正确时,从机回送:
1
2
3
4
5
6
7
8
ADR
06
寄存器高字节地址
寄存器低字节地址
数据高字节
数据低字节
CRC码低字节
CRC码高字节
当从机接收错误时,从机回送:
1
2
3
4
5
ADR
86H
错误数息码
CRC低字
节
CRC高字节
第1字节ADR:
从机地址码(=001~254)
第2字节 86H:
写寄存器值出错功能码
第3字节 错误数息码:
见信息码表
第4、5字节:
从字节1到3的CRC16校验和
1.5.功能码10H:
连续写多个寄存器值
1
2
3
4
5
6
7
ADR
10H
起始寄存器高字节地址
起始寄存器低字节地址
寄存器数量高字节
寄存器数量低字节
数据字节总数
8,9
10,11
N,N+1
N+2
N+3
寄存器数据1
寄存器数据2
寄存器数据M
CRC码低字节
CRC码低字节
当从机接收正确时,从机回送:
1
2
3
4
5
6
7
8
ADR
10H
寄存器高字节地址
寄存器低字节地址
寄存器数量高字节
寄存器数量低字节
CRC码低字节
CRC码高字节
当从机接收错误时,从机回送:
1
2
3
4
5
ADR
90H
错误信息码
CRC低字
节
CRC高字节
第1字节ADR:
从机地址码(=001~254)
第2字节 90H:
写寄存器值出错
第3字节 错误信息码:
见信息码表
第4、5字节:
从字节1到3的CRC16校验和
1.8 寄存器定义表:
(注:
寄存器地址编码为16进制)
寄存器地址
内容说明
只读
寄存器地址
内容说明
只读
0000
0001
表型字(2字节)
√
√
0003
仪表地址
√
0004
0010
通道1瞬时值(4字节浮点数高2字节)
√
0011
通道1瞬时值(4字节浮点数低2字节)
√
0012
通道2瞬时值(4字节浮点数高2字节)
√
0013
通道2瞬时值(4字节浮点数低2字节)
√
0014
通道3瞬时值(4字节浮点数高2字节)
√
0015
通道3瞬时值(4字节浮点数低2字节)
√
0016
通道4瞬时值(4字节浮点数高2字节)
√
0017
通道4瞬时值(4字节浮点数低2字节)
√
0018
通道5瞬时值(4字节浮点数高2字节)
√
0019
通道5瞬时值(4字节浮点数低2字节)
√
001A
通道6瞬时值(4字节浮点数高2字节)
√
001B
通道6瞬时值(4字节浮点数低2字节)
√
001C
通道7瞬时值(4字节浮点数高2字节)
√
001D
通道7瞬时值(4字节浮点数低2字节)
√
001E
通道8瞬时值(4字节浮点数高2字节)
√
001F
通道8瞬时值(4字节浮点数低2字节)
√
0020
通道9瞬时值(4字节浮点数高2字节)
√
0021
通道9瞬时值(4字节浮点数低2字节)
√
0022
通道10瞬时值(4字节浮点数高2字节)
√
0023
通道10瞬时值(4字节浮点数低2字节)
√
0024
通道11瞬时值(4字节浮点数高2字节)
√
0025
通道11瞬时值(4字节浮点数低2字节)
√
0026
通道12瞬时值(4字节浮点数高2字节)
√
0027
通道12瞬时值(4字节浮点数低2字节)
√
0028
通道13瞬时值(4字节浮点数高2字节)
√
0029
通道13瞬时值(4字节浮点数低2字节)
√
002A
通道14瞬时值(4字节浮点数高2字节)
√
002B
通道14瞬时值(4字节浮点数低2字节)
√
002C
通道15瞬时值(4字节浮点数高2字节)
√
002D
通道15瞬时值(4字节浮点数低2字节)
√
002E
通道16瞬时值(4字节浮点数高2字节)
√
002F
通道16瞬时值(4字节浮点数低2字节)
√
0030
通道17瞬时值(4字节浮点数高2字节)
√
0031
通道17瞬时值(4字节浮点数低2字节)
√
0032
通道18瞬时值(4字节浮点数高2字节)
√
0033
通道18瞬时值(4字节浮点数低2字节)
√
0034
通道19瞬时值(4字节浮点数高2字节)
√
0035
通道19瞬时值(4字节浮点数低2字节)
√
0036
通道20瞬时值(4字节浮点数高2字节)
√
0037
通道20瞬时值(4字节浮点数低2字节)
√
0038
通道21瞬时值(4字节浮点数高2字节)
√
0039
通道21瞬时值(4字节浮点数低2字节)
√
003A
通道22瞬时值(4字节浮点数高2字节)
√
003B
通道22瞬时值(4字节浮点数低2字节)
√
003C
通道23瞬时值(4字节浮点数高2字节)
√
003D
通道23瞬时值(4字节浮点数低2字节)
√
003E
通道24瞬时值(4字节浮点数高2字节)
√
003F
通道24瞬时值(4字节浮点数低2字节)
√
0040
通道25瞬时值(4字节浮点数高2字节)
√
0041
通道25瞬时值(4字节浮点数低2字节)
√
0042
通道26瞬时值(4字节浮点数高2字节)
√
0043
通道26瞬时值(4字节浮点数低2字节)
√
0044
通道27瞬时值(4字节浮点数高2字节)
√
0045
通道27瞬时值(4字节浮点数低2字节)
√
0046
通道28瞬时值(4字节浮点数高2字节)
√
0047
通道28瞬时值(4字节浮点数低2字节)
√
0048
通道29瞬时值(4字节浮点数高2字节)
√
0049
通道29瞬时值(4字节浮点数低2字节)
√
004A
通道30瞬时值(4字节浮点数高2字节)
√
004B
通道30瞬时值(4字节浮点数低2字节)
√
004C
通道31瞬时值(4字节浮点数高2字节)
√
004D
通道31瞬时值(4字节浮点数低2字节)
√
004E
通道32瞬时值(4字节浮点数高2字节)
√
004F
通道32瞬时值(4字节浮点数低2字节)
√
0050
模拟输出1(2字节)
0051
模拟输出2(2字节)
0052
模拟输出3(2字节)
0053
模拟输出4(2字节)
0054
模拟输出5(2字节)
0055
模拟输出6(2字节)
0056
模拟输出7(2字节)
0057
模拟输出8(2字节)
0058
模拟输出9(2字节)
0059
模拟输出10(2字节)
005A
模拟输出11(2字节)
005B
模拟输出12(2字节)
005C
模拟输出13(2字节)
005D
模拟输出14(2字节)
005E
模拟输出15(2字节)
005F
模拟输出16(2字节)
0060
模拟输出17(2字节)
0061
模拟输出18(2字节)
0062
模拟输出19(2字节)
0063
模拟输出20(2字节)
0064
模拟输出21(2字节)
0065
模拟输出22(2字节)
0066
模拟输出23(2字节)
0067
模拟输出24(2字节)
0068
模拟输出25(2字节)
0069
模拟输出26(2字节)
006A
模拟输出27(2字节)
006B
模拟输出28(2字节)
006C
模拟输出29(2字节)
006D
模拟输出30(2字节)
006E
模拟输出31(2字节)
006F
模拟输出32(2字节)
0070
0071
0072
0073
0074
0075
0076
0077
0078
0079
007A
007B
007C
007D
007E
007F
0080
0081
0082
0083
0084
0085
0086
0087
0088
0089
008A
008B
008C
008D
008E
008F
0090
0091
0092
0093
0094
0095
0096
0097
0098
0099
009A
009B
009C
009D
009E
009F
00A0
00A1
00A2
00A3
00A4
00A5
00A6
00A7
00A8
00A9
00AA
00AB
00AC
00AD
00AE
00AF
00B0
00B1
00B2
00B3
00B4
00B5
00B6
00B7
00B8
00B9
00BA
00BB
00BC
00BD
00BE
00BF
00C0
00C1
00C2
00C3
00C4
00C5
00C6
00C7
00C8
00C9
00CA
00CB
00CC
00CD
00CE
00CF
00D0
00D1
00D2
00D3
00D4
00D5
00D6
00D7
00D8
00D9
00DA
00DB
00DC
00DD
00DE
00DF
00E0
00E1
00E2
00E3
00E4
00E5
00E6
00E7
00E8
00E9
00EA
00EB
00EC
00ED
00EE
00EF
00F0
00F1
00F2
00F3
00F4
00F5
00F6
00F7
00F8
00F9
00FA
00FB
00FC
00FD
00FE
00FF
0100
0101
0102
0103
0104
0105
0106
0107
0108
0109
010A
010B
010C
010D
010E
010F
0110
PID1 P值(2字节)
0111
PID1 I值(2字节)
0112
PID1 D值(2字节)
0113
0114
0115
0116
0116
0118
0119
011A
011B
011C
011D
011E
011F
0120
PID2 P值(2字节)
0121
PID2 I值(2字节)
0122
PID2 D值(2字节)
0123
0124
0125
0126
0126
0128
0129
012A
012B
012C
012D
012E
012F
0130
0131
0132
0133
0134
0135
0136
0136
0138
0139
013A
013B
013C
013D
013E
013F
0140
0141
0142
0143
0144
0145
0146
0146
0148
0149
014A
014B
014C
014D
014E
014F
0150
累积流量高位值(4字节浮点数高2字节)
√
0151
累积流量高位值(4字节浮点数低2字节)
√
0152
累积流量低位值(4字节浮点数高2字节)
√
0153
累积流量低位值(4字节浮点数低2字节)
√
0154
0155
0156
0158
0158
012A
012C
015E
0160
0162
0164
0166
备注:
1. 4字节浮点数:
符合IEEE-754标准的单精度浮点数。
字节地址
+3
+2
+1
+0
浮点数内容
SEEEEEEE
EMMMMMMM
MMMMMMMM
MMMMMMMM
S符号位,“1”表示负,“0”表示正。
E为阶码。
M为尾数的小数点部分。
例如:
浮点数 124.75=42F98000H,在内存中的存放格式为:
字节地址
+3
+2
+1
+0
浮点数内容
0 1000010
1 1111001
01000000
00000000
2.寄存器定义表中,读写属性有打√的寄存器为只读寄存器。
没有打√的为读写寄存器。
1.9 信息码表:
数息码
表示意义
01H
非法的功能号
02H
非法的数据地址
03H
非法的数据值
04H
CRC16校验错
05H
接收正确
06H
接收错误
07
参数错误
1.10 仪表表型字
00:
XMZ500001:
XMT/XMB500002:
XMDI5000
03:
XMS500004:
XML600005:
XMD5XX16(16)
06:
XMA500007:
XMH500008:
XML5000(3)
09:
XMJ500010:
XMD5XX08(8)11:
XMPHT/XMPHB5000
12:
XMD5XX32(32)13:
XME5000(3)14:
XMDO5000
15:
XMLH5000(4+1)16:
XMD5XX24(24)17:
XMAF5000
(2)
18:
XMC5000(24)
30:
XMG500031:
XMGI500032:
XMG7000
(2)
33:
XMG8000(3)34:
XMHG500035:
XMGA5000/6000(4)
36:
XMGAF5/6/7000(4)37:
XMRA5000/6000(5)38:
XMRAF5000/6000(5)
39:
XMPA7000(5)40:
XMPAF7000(5)41:
XMRA7000(6)
42:
XMRAF7000(6)43:
XMPHGA5000/600044:
XXS
45:
XMRH500046:
DFD/DFQ/DFDA/DFDQ5000/DFQA7000
50:
XMPA8000(7)51:
XMPAF8000(7)52:
XMRA8000(8)
53:
XMRAF8000(8)54:
55:
60:
XMLY500061:
XMLY6000
1.11 仪表分度号
00:
0~10mA线性01:
4~20mA线性02:
0~5V线性
03:
1~5V线性04:
0~100线性05:
0~10mA开方
06:
4~20mA开方07:
0~5V开方08:
1~5V开方
09:
0~100开方10:
Pt10011:
Pt100.0
12:
Pt1013:
Cu10014:
Cu50
15:
30~350Ω16:
G5317:
BA1
18:
BA219:
F120:
F2
21:
B22:
R23:
S
24:
N25:
K26:
E
27:
J28:
T29:
NiCr-AuFe0.07
30:
钨铼3-钨铼2631:
EA232:
EU2
33:
0~60mV
注:
1.6.通讯板跳线端子说明:
拨码开关拨向ON表示零
(1)值
8
7
6
5
4
3
2
1
(端子1)
端子
(1)端子
(2)
40脚CPU
晶振
端子1为仪表的地址的八进制编码(如有FCC仪表则表示为FCC仪表下挂仪表的地址)例如25=00011001
8
7
6
5
4
3
2
1
(端子2)
端子2的8765为4位上位机波特率编码
8765
1010为9600波特率
0110为19200波特率
1110为38400波特率
端子2的4321位为FCC仪表地址选择,当4321位=0000,表示不挂FCC仪表;例如4321=0010
表示FCC仪表地址为2
(注:
对于xml型号的仪表通道1表示XML的瞬时值;通道2表示XML的温度值;通道3表示XML的压
力值;xml的瞬时值,温度值,压力值,支持批读;XML的累积流量的寄存器地址从0150h到
0153h;XMD,XMC多路采集器支持批读。
)
特别说明:
设置完波特率或地址,在进行通讯前,请重新给仪表上电
上电初始化6秒后,方可通讯
MODBUS_RTU通讯例子:
读寄存器值:
主机发送:
寄存器值为16进制数
设读地址0010(通道1)的瞬时值;瞬时值=130
ADR
功能码
寄存器起始地址高字节
寄存器起始地址低字节
寄存器数量高字节
01H
03H
00H
10H
00H
寄存器数量低字节
CRC校验低字节
CRC校验高字节
02H
C5H
CEH
从机回送:
ADR
功能码
寄存器字节总数
寄存器数据高字节
寄存器数据低字节
01H
03H
04H
43H
02H
寄存器数据高字节
寄存器数据高字节
CRC校验低字节
CRC校验高字节
00H
00H
4EH
77H
浮点数:
43020000表示整数130
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MODBUSRTU 通讯 协议