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帧由以下几个部分组成:

  1. MBAP头(Modbus Application Protocol Header)
  2. 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帧结构详解/
作者
JMFANS
发布于
2024-08-30
许可协议
CC BY-NC-SA 4.0
相关文章智能推荐
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
随机文章随机推荐
Profile Image of the Author
JMFANS
电气工程师,记录技术、学习和生活。
公告
记录工程实践、学习笔记与长期积累。
分类
标签
站点统计
文章
14
分类
1
标签
5
总字数
105,433
运行时长
0 天
最后活动
0 天前

当前页面没有目录

文章目录

当前页面没有目录