Modbus TCP帧结构详解
711 字
4 分钟
Modbus TCP帧结构详解
Modbus TCP是基于TCP/IP协议的Modbus变体,常用于以太网网络中。与Modbus RTU和Modbus ASCII不同,Modbus TCP没有起始和结束静默时间,而是使用TCP/IP协议进行数据传输。以下是Modbus TCP帧结构的详细解释:
Modbus TCP帧结构
Modbus TCP帧由以下几个部分组成:
- MBAP头(Modbus Application Protocol Header)
- PDU(Protocol Data Unit)
1. MBAP头
MBAP头包含7个字节,具体结构如下:
- 事务标识符(Transaction Identifier): 2字节
- 用于匹配请求和响应。
- 协议标识符(Protocol Identifier): 2字节
- 固定为0,表示Modbus协议。
- 长度(Length): 2字节
- 表示后续数据的长度,包括单元标识符和PDU。
- 单元标识符(Unit Identifier): 1字节
- 用于标识从设备,在Modbus TCP中通常用于网关场景。
2. PDU(Protocol Data Unit)
PDU包含以下部分:
- 功能码(Function Code): 1字节
- 指定请求的操作类型(如读写寄存器)。
- 数据域(Data): 可变长度
- 包含与功能码相关的数据(如寄存器地址和数量)。
完整的Modbus TCP帧结构
+------------------+------------------+------------------+------------------+------------------+------------------+------------------+
| Transaction ID | Protocol ID | Length | Unit ID | Function Code | Data |
| (2 bytes) | (2 bytes) | (2 bytes) | (1 byte) | (1 byte) | (N bytes) |
+------------------+------------------+------------------+------------------+------------------+------------------+------------------+
示例
假设我们有一个读取保持寄存器(功能码0x03)的请求,其事务标识符为0x0001,协议标识符为0x0000,单元标识符为0x01,读取的寄存器地址为0x0010,数量为2。帧结构如下:
- 事务标识符: 0x0001
- 协议标识符: 0x0000
- 长度: 0x0006(1字节Unit ID + 1字节Function Code + 4字节Data)
- 单元标识符: 0x01
- 功能码: 0x03
- 数据: 0x0010(起始地址) + 0x0002(寄存器数量)
+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+
| 0x00 | 0x01 | 0x00 | 0x00 | 0x00 | 0x06 | 0x01 | 0x03 | 0x00 | 0x10 | 0x00 | 0x02 |
+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+
响应帧结构
如果从设备响应读取请求,返回的帧结构如下:
- 事务标识符: 0x0001(与请求一致)
- 协议标识符: 0x0000
- 长度: 0x0005(1字节Unit ID + 1字节Function Code + 1字节Byte Count + N字节Data)
- 单元标识符: 0x01
- 功能码: 0x03
- 字节计数: 0x04(读取2个寄存器,每个寄存器2字节)
- 数据: 寄存器值(每个寄存器2字节)
假设读取的寄存器值为0x1234和0x5678:
+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+
| 0x00 | 0x01 | 0x00 | 0x00 | 0x00 | 0x07 | 0x01 | 0x03 | 0x04 | 0x12 | 0x34 | 0x56 | 0x78 |
+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+
更多通讯协议请访问--点击跳转
文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!
Modbus TCP帧结构详解
https://www.rwr.ink/index.php/2024/08/30/modbus-tcp帧结构详解/相关文章智能推荐
1
Brooks MAGNATRAN® LEAP™ 编程手册
未分类Brooks MAGNATRAN® LEAP™ 编程手册 基于官方文档编写 《238485 Leap Manual REV G》— 硬件与用户手册(263页) 《278805 MAGNATRAN® LEAP™ Software Manual REV E》— 软件编程手册(278页) 文档版本 : 综合整理版 v1.0 | 适用固件 : V8.2.x 系列 |
2
Debian 13 新装
未分类Debian 13 (Trixie) 完整自动化配置文档 文档说明 本文档汇总了 Debian 13 系统的完整配置流程,包含系统更新、网络加速、安全防护、开发环境和 Shell 美化等所有功能。 执行顺序 : 从上到下依次执行各代码块 一、系统更新与基础优化 #!/bin/bash # Debian 13 系统全面更新与基础配置 # 1.1 更新软件源并升
3
模糊PID控制加热器系统仿真
未分类模糊PID控制加热器系统仿真 目录 模糊PID控制加热器系统仿真 目录 引言 系统概述 数学模型 隶属度函数 S形函数 Z形函数 三角形函数 模糊PID控制器 模糊化 规则库 解模糊 PID控制器 加热器系统动力学 Smith预估器 仿真流程 性能指标 用户界面 结论 附件 引言 本文提供了由自适应模糊PID控制器和Smith预估器控制的加热器系统仿真模型的
4
CE认证标准-电气部分
未分类EN 60204 标准概述 4 适用范围 EN 60204 的本部分适用于机械(包括协同工作的一组机械)的电气、电子和可编程电子设备及系统,不适用于手提工作式机械。 本标准适用于额定电压不超过交流1000V,直流1500V,电源频率不超过200Hz的电子设备、电气设备或工业机器系统。 本标准所论及的设备是从机械电气设备的电源引入处开始的。 本标准不包括用于危
5
电气常用元器件概述
未分类系统组件说明 1513-1 功能:CPU-单晶炉部分逻辑程序的设计,存储及控制。 主要参数:处理器速度、内存容量、I/O通道数量。 通讯接口:以太网、RS485、Profibus等。 分布式IO模块 功能:与1513-1通讯,为各数字量/模拟量的输入及输出提供接口,并实现信号采集和输出。 开关电源 功能:主要使用DC开关电源,即AC/DC电源。主要以DC24
随机文章随机推荐

