当前位置: 首页 > news >正文

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 + 功能码 + 数据,全是大端

http://www.zskr.cn/news/111632.html

相关文章:

  • nVisual模块之间关系
  • 【PFJSP问题】基于混沌增强领导者黏菌算法CELSMA求解置换流水车间调度问题PFSP附Matlab代码
  • AI Agent学习:MetaGPT之我的工作
  • ICEEMDAN+PE+小波降噪重构(改进自适应噪声完备集合经验模态分解+排列熵+小波降噪重构)
  • 赋能多门店运营!这款二手车小程序系统如何实现车源与客户的统一高效管理
  • 【小白笔记】反转链表 II
  • 2025年杭州知名的广播电台广告公司口碑推荐榜,电视台广告/广播电台广告/户外led大屏广告/公交广告/广播电台广告价格口碑推荐 - 品牌推荐师
  • Spring AOP
  • 【案例共创】从0开始使用华为云开发者空间搭建房价预测模型
  • JX6-CON1控制器模块
  • AIGC简介
  • LobeChat安全与权限管理实战解析
  • 女朋友到家前 10 分钟,空调自动开暖风(小智 MCP 实战)
  • 海报设计无从下手?这3个技巧让你告别空白画布
  • β-Amyloid (25-35);GSNKGAIIGLM
  • 【小白笔记】大数加法
  • 算法题 重构字符串
  • 无人机红外图像下极小目标检测数据集,无人机红外小目标检测数据集 低空安防、机场净空监测、反无人机系统、鸟类迁徙监控 YOLOv8** 构建的 **无人机红外图像下极小目标检测系统
  • 深入解析:电压基准芯片详解:从原理到选型,附 TLV431 应用解析
  • Docker安装轻量级TensorRT镜像用于边缘计算
  • 2025全球优选:手机切膜机模片供应商,定制生产,认证制造商,美特柏(Mietubl)全链实力解析
  • β-Amyloid (1-40), Rat;DAEFGHDSGFEVRHQKLVFFAEDVGSNKGAIIGLMVGGVV
  • 【第60套】题目质量很高!
  • 【必藏】AI大模型全景分析:程序员小白入门全指南,读这篇就够了
  • 【编号645】全国省市县行政区划矢量数据2025年更新
  • Arbess从基础到实践(19) - 集成GitLab+sourcefare实现Java项目代码扫描通过后自动化部署
  • Arbess从基础到实践(17) - 集成GitLab+SonarQube实现代码扫描完成后自动化部署
  • Arbess从基础到实践(18) - 集成GitPuk实现Java项目自动化构建并Docker部署
  • 记-一次较为离谱的病毒乌龙
  • 停止检索!新增4本On Hold期刊被踢,12月WOS期刊目录更新!