小白也能听懂的Modbus协议讲解【二】Modbus TCP

六: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

(0)
速盾高防cdn's avatar速盾高防cdn
上一篇 2024年5月23日 下午1:46
下一篇 2024年5月23日 下午1:48

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注