news 2026/4/18 14:36:46

Modbus TCP关键知识点回顾

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Modbus TCP关键知识点回顾

目录

1️⃣ 本质定位(最关键)

2️⃣ 数据模型(必须会)

3️⃣ 报文结构(非常关键)

4️⃣ 常用功能码(重点记)

5️⃣ 地址理解(易踩坑)

6️⃣ TCP 特性(区别于 RTU)

7️⃣ 数据解析重点

8️⃣ 工程实践一句话

一、完整 Modbus TCP 报文(请求帧)

二、MBAP Header(7 字节)

三、PDU(协议数据单元)

四、从站响应报文(示例)

完整响应帧

五、响应拆解

MBAP

PDU

六、再给你一个【写寄存器】示例(功能码 06)

写 40001 = 123

七、一句话记忆法(工程级


1️⃣ 本质定位(最关键)

  • Modbus TCP = Modbus 协议 + TCP/IP

  • 跑在以太网(端口 502)

  • 主从模型:Client(主站) ⇄ Server(从站)


2️⃣ 数据模型(必须会)

Modbus 只有4 种数据区

类型名称访问常见用途
0xCoil读/写开关量输出
1xDiscrete Input只读开关量输入
3xInput Register只读模拟量输入
4xHolding Register读/写参数、模拟量

👉寄存器本质是 16bit


3️⃣ 报文结构(非常关键)

Modbus TCP 报文 =MBAP 头 + PDU

MBAP(7 字节)

  • Transaction ID(事务号)

  • Protocol ID(固定 0)

  • Length

  • Unit ID(通常可忽略)

PDU

  • 功能码

  • 数据


4️⃣ 常用功能码(重点记)

  • 01读线圈

  • 02读离散输入

  • 03读保持寄存器 ⭐

  • 04读输入寄存器

  • 05写单线圈

  • 06写单寄存器

  • 0F写多线圈

  • 10写多寄存器 ⭐

👉03 和 10 最常用


5️⃣ 地址理解(易踩坑)

  • 协议里地址从 0 开始

  • 文档里常写 40001、30001 —— 这是逻辑编号

  • 实际请求地址 = 文档地址 − 基地址

📌 例:

文档写 40001
实际地址 = 0


6️⃣ TCP 特性(区别于 RTU)

  • 无校验 CRC(TCP 已保证)

  • 可并发请求

  • 一问一答(不能乱序)

  • 延迟低,速度快


7️⃣ 数据解析重点

  • 大端字节序(Big Endian)

  • 32bit / float 通常用2 个寄存器

  • 不同厂商:

    • 字节顺序可能不同(ABCD / CDAB / BADC)


8️⃣ 工程实践一句话

90% 的问题出在:地址偏移 + 数据类型 + 字节序

好,直接给你真实可用的十六进制报文,逐字节拆给你看 👇
读保持寄存器 40001 起,读 2 个寄存器


一、完整 Modbus TCP 报文(请求帧)

00 01 00 00 00 06 01 03 00 00 00 02

下面逐字段解释(非常重要)👇


二、MBAP Header(7 字节)

00 01 | 00 00 | 00 06 | 01
字节含义说明
00 01Transaction ID事务号,客户端自己定义,用于区分请求
00 00Protocol ID固定为 0(Modbus TCP 标志)
00 06Length后面Unit ID + PDU的长度(=6)
01Unit ID从站 ID(TCP 下通常随便填)

三、PDU(协议数据单元)

03 | 00 00 | 00 02
字节含义
03功能码:读保持寄存器
00 00起始地址(40001 → 实际地址 0)
00 02读取寄存器数量 = 2

四、从站响应报文(示例)

假设返回两个寄存器值:

  • 第一个:0x0064(100)

  • 第二个:0x00C8(200)

完整响应帧

00 01 00 00 00 07 01 03 04 00 64 00 C8

五、响应拆解

MBAP

00 01 | 00 00 | 00 07 | 01
  • Length = 7(UnitID + 功能码 + 字节数 + 数据)

PDU

03 | 04 | 00 64 00 C8
字节含义
03功能码
04数据字节数(2 寄存器 × 2 字节)
00 64寄存器1 = 100
00 C8寄存器2 = 200

六、再给你一个【写寄存器】示例(功能码 06)

写 40001 = 123

00 02 00 00 00 06 01 06 00 00 00 7B
  • 06:写单寄存器

  • 00 00:地址

  • 00 7B:123


七、一句话记忆法(工程级)

Modbus TCP = 7 字节 MBAP + 功能码 + 数据,全是大端

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 7:54:01

DSF-2MW-H编码器

DSF-2MW-H 编码器DSF-2MW-H 是一款高精度工业旋转编码器,用于将机械轴的旋转角度转换为电信号,实现精确的位置、速度和方向反馈。它广泛应用于自动化设备、数控机床、伺服系统和机器人控制中。主要特点:高分辨率输出:确保位置测量…

作者头像 李华
网站建设 2026/4/18 7:54:42

C语言之——分支语句

本篇内容主要讲解了C语言中分支语句的使用&#xff0c;希望能帮助到大家。#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> //C语言是结构化&#xff08;顺序&#xff0c;选择&#xff0c;循环&#xff09;的程序设计语言 //C语句&#xff1a;1.表达式语句2.函数调…

作者头像 李华
网站建设 2026/4/18 7:37:10

Python实现多模态AI图像文本语音融合处理深度好文

文章目录 开篇引言核心要点图像处理与特征提取原理代码示例关键说明 文本处理与特征提取原理代码示例关键说明 语音处理与特征提取原理代码示例关键说明 多模态数据融合与模型训练原理代码示例关键说明 实际应用案例应用场景具体实现 总结总结延伸阅读 开篇引言 随着人工智能技…

作者头像 李华
网站建设 2026/4/18 8:16:28

.NET周刊【11月第5期 2025-11-30】

国内文章 TypedSql&#xff1a;在 C# 类型系统上实现一个 SQL 查询引擎 https://www.cnblogs.com/hez2010/p/19261972/turning-csharp-type-system-into-a-query-engine 本文探讨了在 .NET 环境中如何高效处理内存中的数据查询&#xff0c;提出了一种基于 C# 类型系统的全新…

作者头像 李华
网站建设 2026/4/18 2:37:23

【案例共创】从0开始使用华为云开发者空间搭建房价预测模型

最新案例动态&#xff0c;请查阅【案例共创】从0开始使用华为云开发者空间搭建房价预测模型。小伙伴们快来领取华为开发者空间进行实操吧&#xff01; 本案例由&#xff1a;梅科尔工作室提供 1 概述 1.1 案例介绍 华为云开发者空间&#xff0c;华为云为每个新生态开发者免费…

作者头像 李华
网站建设 2026/4/18 5:43:33

通宵测完NanoBanana Pro,我只想说,太牛逼了。

作为一名长期关注 AI 技术和数字创意工具的用户&#xff0c;最近我终于体验了谷歌最新发布的 Nano Banana Pro&#xff0c;这个图像生成模型真的是让我目瞪口呆。通宵一试&#xff0c;我只能说&#xff0c;这个工具简直是 划时代的神器&#xff0c;不仅技术极其强大&#xff0c…

作者头像 李华