六:Modbus TCP讲解
1) 报文格式
RTU报文格式:从站地址+功能码+数据+CRC校验 TCP报文格式:MBAP报文头+功能码+数据 MBAP报文头(共占7个字节) 事务处理标识符:报文的ID(0x00, 0x00) 协议标识符:协议的ID(0x00 0x00) 长度:后面有多少个字节 单元标识符:从站地址(根据服务器决定,占1个字节)
网上的说法:ModebusTCP就是在ModbusRTU基础上,前面加上5个0和1个6(000006),后面把校验去掉
2) 实操
Modbus Slave设置
快速连接,并设置IP和端口,端口默认用502
在设置,采用默认设置:1)四区,2)10个长度的寄存器,如下图
手动给存储区赋值
Modbus Pool设置
默认读的是四区,
通信成功
互相读和修改值
查看报文
因为10个寄存器太长,所以先修改成两个寄存器,方便进行查看,如下图
查看通信,如下图
报文如下:
点击 Stop, Copy 两个报文
结果如下:
Tx:000000-03 73 00 00 00 06 01 03 00 00 00 02
Rx:000001-03 73 00 00 00 07 01 03 04 00 01 00 02
简化后
Tx:03 73 00 00 00 06 01 03 00 00 00 02
Rx:03 73 00 00 00 07 01 03 04 00 01 00 02
上边的发送的报文解析如下:
一:MBA报文头 | 二:功能码 | 三:数据 | ||||
---|---|---|---|---|---|---|
事务标识符 | 协议标识符 | 长度 | 单元标识符 | 起始寄存器 | 长度数量 | |
03 73 | 00 00 | 00 06 | 01 | 03 | 00 00 | 00 02 |
他后边有六个字节,分别是:01 03 00 00 00 02 | 读取输出寄存器 |
设置的单元标识符,如下图所示
下边的接收的报文,解析如下:
一:MBA报文头 | 二:功能码 | 三:数据 | ||||
---|---|---|---|---|---|---|
事务标识符 | 协议标识符 | 长度 | 单元标识符 | 起始寄存器 | 长度数量 | |
03 73 | 00 00 | 00 07 | 01 | 03 | 04 | 00 01 , 00 02 |
他后边有六个字节,分别是:01 03 04 00 01 00 02 | 读取输出寄存器,发的是什么功能码,回的就是什么功能码 | 04是字节计数 | 00 01, 是一个寄存器(一个寄存器占两个字节)第一个寄存器结果为1 00 02, 第二个寄存器结果为2 |
原创文章,作者:速盾高防cdn,如若转载,请注明出处:https://www.sudun.com/ask/76731.html