MODBUS通讯协议
使用手册
1. 1.1. 1.2.
RTU方式通讯协议
硬件采用RS-485,主从式半双工通讯,主机呼叫从机地址,从机应答方式通讯。 数据帧10位,1个起始位,8个数据位,1个停止位,无校验。
波特率:9600;19200 38400 1.3.
功能码03H: 读寄存器值
主机发送:
1 2 3 4 5 6 7 8 ADR 03H 起始寄起始寄寄存器寄存器CRC低字CRC 高存器高存器低数高字数低字节 字节 字节 节 节 字节 第1字节 ADR : 从机地址码(=001~254)
第2字节 03H
: 读寄存器值功能码
第3、4字节
: 要读的寄存器开始地址 要读FCC下挂仪表, : 要读的寄存器数量
: 从字节1到6的CRC16校验和
第5、6字节 第7、8字节
从机回送:
1 2 3 4、5 6、7 M-1、M M+1 M+2 ADR 03H 字节总寄存器数寄存器数。。。 寄存器数据CRC低CRC高数 据1 据2 M 字节 字节 第1字节 ADR
第2字节 03H
: 从机地址码(=001~254)
: 返回读功能码
第3字节 第4到M字节
: 从4到M(包括4及M)的字节总数 : 寄存器数据
: 从字节1到M的CRC16校验和
第M+1、M+2字节
当从机接收错误时,从机回送:
1 2 3 4 5 ADR 83H 信息码 CRC低CRC高字节 字节 第1字节 ADR
第2字节 83H
: 从机地址码(=001~254)
: 读寄存器值出错
第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 寄存器寄存器寄存器CRC码低CRC码低数据1 数据2 数据M 字节 字节 当从机接收正确时,从机回送:
1 2 3 4 5 6 7 8 ADR 10H 寄存器高寄存器低寄存器寄存器CRC码CRC码字节地址 字节地址 数量高数量低低字节 高字节 字节 字节 当从机接收错误时,从机回送:
1 2 3 4 5 ADR 90H 错误信CRC低CRC高息码 字 节 字节 第1字节 ADR
第2字节 90H
: 从机地址码(=001~254)
: 写寄存器值出错
第3字节 错误信息码 第4、5字节
: 见信息码表
: 从字节1到3的CRC16校验和
1.8 寄存器定义表:(注:寄存器地址编码为16进制)
寄存内容说明 器地址 只寄存内容说明 读 器地址 只读 0000 0001 表型字(2字节) √ √ 0003 仪表地址 √ 0004 0010 通道1瞬时值(4字节浮点数√ 0011 通道1瞬时值(4字节浮点数√ 高2字节) 低2字节) 0012 通道2瞬时值(4字节浮点数√ 0013 通道2瞬时值(4字节浮点数√ 高2字节) 低2字节) 0014 通道3瞬时值(4字节浮点数√ 0015 通道3瞬时值(4字节浮点数√ 高2字节) 低2字节) 0016 通道4瞬时值(4字节浮点数√ 0017 通道4瞬时值(4字节浮点数√ 高2字节) 低2字节) 0018 通道5瞬时值(4字节浮点数√ 0019 通道5瞬时值(4字节浮点数√ 高2字节) 低2字节) 001A 通道6瞬时值(4字节浮点数√ 001B 通道6瞬时值(4字节浮点数√ 高2字节) 低2字节) 001C 通道7瞬时值(4字节浮点数√ 001D 通道7瞬时值(4字节浮点数√ 高2字节) 低2字节) 001E 通道8瞬时值(4字节浮点数√ 001F 通道8瞬时值(4字节浮点数√ 高2字节) 低2字节) 0020 通道9瞬时值 (4字节浮点数√ 0021 通道9瞬时值(4字节浮点数√ 高2字节) 低2字节) 0022 通道10瞬时值(4字节浮点数√ 0023 通道10瞬时值(4字节浮点√ 高2字节) 数低2字节) 0024 通道11瞬时值(4字节浮点数√ 0025 通道11瞬时值(4字节浮点√ 高2字节) 数低2字节) 0026 通道12瞬时值(4字节浮点数√ 0027 通道12瞬时值(4字节浮点√ 高2字节) 数低2字节) 0028 通道13瞬时值(4字节浮点数√ 0029 通道13瞬时值(4字节浮点√ 高2字节) 数低2字节) 002A 通道14瞬时值(4字节浮点数√ 002B 通道14瞬时值(4字节浮点√ 高2字节) 数低2字节) 002C 通道15瞬时值(4字节浮点数√ 002D 通道15瞬时值(4字节浮点√ 高2字节) 数低2字节) 002E 通道16瞬时值(4字节浮点数√ 002F 通道16瞬时值(4字节浮点√ 高2字节) 数低2字节) 0030 通道17瞬时值(4字节浮点数√ 0031 通道17瞬时值(4字节浮点√ 高2字节) 数低2字节) 0032 通道18瞬时值(4字节浮点数√ 0033 通道18瞬时值(4字节浮点√ 高2字节) 数低2字节) 0034 通道19瞬时值(4字节浮点数√ 0035 通道19瞬时值(4字节浮点√ 高2字节) 数低2字节) 0036 通道20瞬时值(4字节浮点数√ 0037 通道20瞬时值(4字节浮点√ 高2字节) 数低2字节) 0038 通道21瞬时值(4字节浮点数√ 0039 通道21瞬时值(4字节浮点√ 高2字节) 数低2字节) 003A 通道22瞬时值(4字节浮点数√ 003B 通道22瞬时值(4字节浮点√ 高2字节) 数低2字节) 003C 通道23瞬时值(4字节浮点数√ 003D 通道23瞬时值(4字节浮点√ 高2字节) 数低2字节) 003E 通道24瞬时值(4字节浮点数√ 003F 通道24瞬时值(4字节浮点√ 高2字节) 数低2字节) 0040 通道25瞬时值(4字节浮点数√ 0041 通道25瞬时值(4字节浮点√ 高2字节) 数低2字节) 0042 通道26瞬时值(4字节浮点数√ 0043 通道26瞬时值(4字节浮点√ 高2字节) 数低2字节) 0044 通道27瞬时值(4字节浮点数√ 0045 通道27瞬时值(4字节浮点√ 高2字节) 数低2字节) 0046 通道28瞬时值(4字节浮点数√ 0047 通道28瞬时值(4字节浮点√ 高2字节) 数低2字节) 0048 通道29瞬时值(4字节浮点数√ 0049 通道29瞬时值(4字节浮点√ 高2字节) 数低2字节) 004A 通道30瞬时值(4字节浮点数√ 004B 通道30瞬时值(4字节浮点√ 高2字节) 数低2字节) 004C 通道31瞬时值(4字节浮点数√ 004D 通道31瞬时值(4字节浮点√ 高2字节) 数低2字节) 004E 通道32瞬时值(4字节浮点数√ 004F 通道32瞬时值(4字节浮点√ 高2字节) 数低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字节) 00 模拟输出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 00 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字节浮点√ 0151 累积流量高位值(4字节浮点√ 数高2字节) 数低2字节) 0152 累积流量低位值(4字节浮点√ 0153 累积流量低位值(4字节浮点√ 数高2字节) 数低2字节) 0154 0155 0156 0158 0158 012A 012C 015E 0160 0162 01 0166 备注:
1. 4字节浮点数:符合IEEE-754标准的单精度浮点数。
字节地址 +3 +2 +1 +0 浮点数内容 S E E E E E E M M M M M M M M M M M M M M M M M E E M M M M M M 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:XMZ5000
01:XMT/XMB5000 04:XML6000 07:XMH5000 10:XMD5XX08 (8)
02:XMDI5000 05:XMD5XX16 (16) 08:XML5000 (3) 11:XMPHT/XMPHB5000
14:XMDO5000 17:XMAF5000 (2)
03:XMS5000 06:XMA5000 09:XMJ5000
12:XMD5XX32(32) 13:XME5000 (3)
16:XMD5XX24 (24)
15:XMLH5000 (4+1) 18:XMC5000(24) 30:XMG5000
31:XMGI5000 34:XMHG5000
32:XMG7000 (2) 35:XMGA5000/6000 (4)
38:XMRAF5000/6000 (5) 41:XMRA7000 (6)
33:XMG8000 (3) 36:XMGAF5/6/7000 (4) 39:XMPA7000 (5) 42:XMRAF7000 (6) 45:XMRH5000
37:XMRA5000/6000 (5) 40:XMPAF7000 (5)
43:XMPHGA5000/6000 44:XXS
46:DFD/DFQ/DFDA/DFDQ5000/DFQA7000 51:XMPAF8000 (7)
52:XMRA8000 (8)
50:XMPA8000 (7)
53:XMRAF8000 (8) 60:XMLY5000
54: 61:XMLY6000
55:
1.11 仪表分度号
00:0~10mA线性 03:1~5V线性 06:4~20mA开方 09:0~100开方
01:4~20mA线性 04:0~100线性 07:0~5V开方 10:Pt100
02:0~5V线性 05:0~10mA开方 08:1~5V开方
11:Pt100.0
12:Pt10 15:30~350Ω 18:BA2 21:B 24:N 27:J 30:钨铼3-钨铼26 33:0~60mV
注:
13:Cu100 16:G53 19:F1 22:R 25:K 28:T 31:EA2
14:Cu50 17:BA1 20:F2 23:S 26:E
29:NiCr-AuFe0.07 32:EU2
1.6. 通讯板跳线端子说明: 拨码开关拨向ON表示零(1)值
8 7 6 5 4 3 2 1 (端子1)
端子(1) 端子(2)
40脚CPU 晶振
端子1为仪表的地址的八进制编码(如有FCC仪表则表示为FCC仪表下挂仪表的地址) 例如 25=0001 1001
8 7 6 5 4 3 2 1 (端子2)
端子2的 8 7 6 5 为4位上位机波特率编码
8 7 6 5 1 0 1 0 为9600 波特率 0 1 1 0 为19200 波特率 1 1 1 0 为38400波特率
端子2的 4 3 2 1 位为FCC仪表地址选择,当4 3 2 1位= 0 0 0 0,表示不挂FCC仪表;例如4 3 2 1=0 0 1 0 表示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 写寄存器值:
主机发送: 寄存器值为16进制数 设写地址作0110(PID P)的参数=13h
ADR 功能码 寄存器起始地址高字节 寄存器起始地址低字节 寄存器数量高字节 01H 06H 01H 10H 00H 寄存器数量低字节 CRC校验低字节 CRC校验高字节 13H C8H 3EH 从机回送: ADR 功能码 寄存器字节总数 寄存器数据高字节 寄存器数据低字节 01H 06H 01H 10H 00H 寄存器数据高字节 CRC校验低字节 CRC校验高字节 13H
C8H 3EH
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- 517ttc.cn 版权所有 赣ICP备2024042791号-8
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务