ModbusRtu/ModbusAscii/ModbusTcp
串口 、 以太网
ModbusRtu、ModbusAscii、ModbusTcp、ModbusUdp、
ModbusRtuOverTcp、ModbusRtuOverUdp
ModbusAsciiOverTcp、ModbusAsciiOverUdp
10 : 0x0A = 10dec 0x30 0x31
Modbus存储区
数据类型:布尔量 寄存器
读写:只读 读写
只读布尔量:输入线圈 1区 10001-19999
只读寄存器:输入寄存器 3区 30001-39999
读写布尔量:输出线圈 0区 00001-09999
读写寄存器:输出寄存器 4区 40001-49999
扩展:4区扩展一位: 400001-465535
功能码:
读取输入线圈 0x02
读取输入寄存器 0x04
读取输出线圈 0x01
读取输出寄存器 0x03
写入单个输出线圈 0x05
写入多个输出线圈 0x0F
写入单个输出寄存器 0x06
写入多个输出寄存器0x10
Modbus通信协议分析
Modbus在串行链路中的报文格式:
从站地址 + 功能码 + 数据(变化) + 校验
从站地址:设备编号,区分,Modbus一主从多s
功能码03 读取输出寄存器
发生报文格式:
一个字节: 0 - 255
起始寄存器: 二个字节 0-65535
数量:二个字节
接收报文格式:
Rx:01 03 00 00 00 0A C5 CD //读保持寄存器起始地址00 00 数量为10
01:从站地址
03:功能码
00 00 :起始地址
00 0A:数量
C5 CD:校验
Tx:01 03 14 00 0C 00 00 00 2C 00 0F 00 00 00 00 00 00 00 00 00 00 00 00 88 24
01:从站地址
03:功能码
14:字节计数
00 0C 00 00 00 2C 00 0F 00 00 00 00 00 00 00 00 00 00 00 00:数据值
12 0 44 15 0 0 0 0 0 0
88 24:校验