当前位置:文档之家› modbus_通讯协议_实例

modbus_通讯协议_实例

上海安标电子有限公司

——PC39A接地电阻仪通信协议

通信协议:

波特率:9600数据位:8校验位:无停止位:1

上位机(计算机):

字节号 1 2 3 4 5 6 7 8

意义ID Command 数据地址V alue CRC

注:1 ID:1个字节,由单机来定(0~255)

2 Command:1个字节,读:3或4,写:6

3 数据地址:2个字节,寄存器地址,读从100开始,写从200开始

4 V alue:2个字节,读:个数(以整型为单位),写:命令/ 数据(以整型为单位)

5 CRC:计算出CRC

下位机(PC39A):

读数据,若正确

字节号 1 2 3 3+N (N=个数*2) 3+N+1 3+N+2 意义ID Command=3 / 4 数据个数数据CRC 注:1 ID:1个字节,由单机来定(0~255)

2 Command:1个字节,收到的上位机命令

3数据个数:1个字节,返回数据个数(以字节为单位)

4 V alue:N个字节,是返回上位机的数据

5 CRC:计算出CRC

写命令,若正确

返回收到的数据:

若错误

字节号 1 2 3 4 5

意义ID Command 数据CRC

注:1 ID:1个字节,由单机来定(0~255)

2 Command:1个字节,收到的上位机命令或上0x80,

如收到3,返回0x83

3数据:1个字节,错误的指令

错误指令

1:表示command不存在

2:表示数据地址超限

4 CRC:计算出CRC

例如读PC39A 电流数据:

机器地址为12,电流的数据地址100,数据为15.45(A) (一个整型数据) 主机:

ID Command 数据地址 V alue CRC

16进制 0x0c 0x03 0x0064 0x0001 CRC_H CRC_L 10进制 12

3

100

1

CRC_H

CRC_L

从机返回 如正确:

ID Command 数据个数(以字节为单位)

V alue CRC

16进制 0x0c 0x03 0x002 0x0609 CRC_H CRC_L 10进制 12 3

2

1545

CRC_H

CRC_L

如错误:

ID Command 数据 CRC

16进制 0x0c 0x83 0x02 CRC_H CRC_L 10进制

12

131

2

CRC_H

CRC_L

例如发PC39A 启动命令:

机器地址为12,命令的地址200,数据为25000(25000表示启动) 主机:

ID Command 数据地址 V alue CRC

16进制 0x0c 0x06 0x00c8 0x61a8 CRC_H CRC_L 10进制 12

6

200

25000

CRC_H

CRC_L

从机返回 如正确:

ID Command 数据地址 V alue CRC

16进制 0x0c 0x06 0x00c8 0x61a8 CRC_H CRC_L 10进制 12

6

200

25000

CRC_H

CRC_L

如错误:

ID Command 数据 CRC

16进制 0x0c 0x86 0x02 CRC_H CRC_L 10进制 12

134

2

CRC_H

CRC_L

0011

10000110

错误码0x83

功能码0x06错误码0x86

相关主题