西门子技术--ModbusTCP协议详解

日期:2023-09-18  点击:60
 A
Modbus TCP数据帧

ModbusTCP的数据帧可分为两部分:MBAP+PDU
(一)报文头MBAP:MBAP为报文头,长度为7字节,组成如下:

 

(二)帧结构PDU:PDU由功能码+数据组成。功能码为1字节,数据长度不定,由具体功能决定。

(1)功能码:Modbus的操作对象有四种:线圈、离散输入、保持寄存器、输入寄存器。

(2)根据对象的不同,Modbus的功能码有:

(3)说明更详细的表:

 

B
PDU详细结构

(1)0x01:读线圈:在从站中读1~2000个连续线圈状态,ON=1,OFF=0

(2)0x05:写单个线圈:将从站中的一个输出写成ON或OFF,0xFF00请求输出为ON,0x000请求输出为OFF。
(3)0x0F:写多个线圈:将一个从站中的一个线圈序列的每个线圈都强制为ON或OFF,数据域中置1的位请求相应输出位ON,置0的位请求响应输出为OFF。
(4)0x02:读离散量输入:从一个从站中读1~2000个连续的离散量输入状态。
(5)0x04:读输入寄存器:从一个远程设备中读1~2000个连续输入寄存器。
(6)0x03:读保持寄存器:从远程设备中读保持寄存器连续块的内容。
(7)0x06:写单个保持寄存器:在一个远程设备中写一个保持寄存器。
(8)0x10:写多个保持寄存器:在一个远程设备中写连续寄存器块(1~123个寄存器)。
C
Modbus TCP示例报文

ModBusTcp与串行链路Modbus的数据域是一致的,具体数据域可以参考串行Modbus。这里给出几个ModbusTcp的链路解析说明,辅助新人分析报文。

 

 

 


D
Modbus TCP通信

(一)通信方式

Modbus设备可分为主站(poll)和从站(slave)。主站只有一个,从站有多个,主站向各从站发送请求帧,从站给予响应。在使用TCP通信时,主站为client端,主动建立连接;从站为server端,等待连接。
(二)通信过程
E
仿真软件