在ModbusTCP/IP协议中,串行链路中的主/从设备分别演变为客户端/服务器端设备。即客户端相当于主站设备,服务器端相当于从站设备。基于TCP/IP网络的传输特性。Modbus协议在TCP/IP上的实现是在TCP/IP协议层上的应用,它需要一个完整的 TCP/IP协议栈作为支撑,Modbus TCP/IP服务器端通常使用端口502作为接收报文的端口。
客户端:
服务器:
Modbus TCP 客户端是发起请求的角色,通常用于发送数据给服务器。
Modbus TCP 服务器是响应请求的角色,通常用于提供数据给客户端。


Modbus Application Header 的长度固定为 7 字节,包含以下字段:
Transaction Identifier(事务标识符):
Protocol Identifier(协议标识符):
0x0000,表示使用的是 Modbus 协议。Length(长度):
Unit Identifier(单元标识符):
0xFF 或 0x00,但在某些复杂网络中可能会使用其他值来区分不同的设备。假设有一个 Modbus TCP 请求,其 MBAP 如下:
Transaction Identifier: 0x00 0x01
Protocol Identifier: 0x00 0x00
Length: 0x00 0x06
Unit Identifier: 0x01
0x0001,表示这是一个特定的事务。0x0000,表示使用的是 Modbus 协议。0x0006,表示后续有 6 字节的数据。0x01,表示这是针对标识符为 0x01 的设备。Modbus Application Header 是 Modbus TCP 通信中的关键部分,它提供了事务标识、协议标识、数据长度和设备标识等信息,帮助客户端和服务器正确解析和处理 Modbus 请求和响应。通过理解这些字段的含义和作用,可以更好地实现和调试 Modbus TCP 通信。