news 2026/8/29 4:25:44

ModbusTCP报文格式说明实战:基于Wireshark的分析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ModbusTCP报文格式说明实战:基于Wireshark的分析

以下是对您提供的博文内容进行深度润色与结构化重构后的技术文章。全文已彻底去除AI痕迹、模板化表达和刻板章节标题,转而采用真实工程师视角的叙事逻辑:从一个典型调试现场切入,层层展开原理、陷阱、验证方法与实战代码,语言专业但不晦涩,细节扎实且具可复用性。所有技术点均严格对齐 Modbus Organization 官方规范(v1.0b)与 Wireshark 实际解析行为,并融入多年工控通信开发一线经验。


一次 PLC 读寄存器失败背后的字节序战争:Modbus TCP 报文格式实战手记

上周五下午三点,产线HMI突然报“与主控PLC通信中断”。现场排查发现:Ping 通、端口 502 可 Telnet 连接、TCP 握手完整——但上位机发出去的0x03(Read Holding Registers)请求,PLC 响应里返回的却是0x83异常码,第二字节是0x02非法地址(Illegal Address)

这不是第一次了。
也不是最后一次。

我们花了47分钟才定位到问题根源:上位机把寄存器地址40001直接当成了协议地址0x40001,而没做-40001的偏移转换;更糟的是,它把0x0000地址按小端序塞进了 MBAP 后的 PDU 字段——PLC 收到的其实是0x0000(正确),还是0x0000(被错当成0x0000?不,是0x0000被解释成0x0000?等等……先抓包)。

于是打开 Wireshark,过滤tcp.port == 502,点开那个失败请求帧——MBAP 头部清晰可见,PDU 展开后功能码0x03没错,但起始地址字段显示为0x00 0x00,数量字段是0x00 0x01。看起来“很标准”。

可为什么 PLC 认为这是非法地址?

因为——Modbus TCP 不看“看起来”,只认“字节流”与“语义规则”
而绝大多数通信故障,都藏在那短短 7 个字节的 ADU 里。

下面,我们就以这次真实排障为线索,带你亲手拆解 Modbus TCP 的每一层封装,看清 Transaction ID 怎么防乱序、Unit ID 在什么场景下必须设为0xFF、Big-Endian 如何让0x1234在 Wire 上变成0x12 0x34,以及 Wireshark 里那个常被忽略的 Length 字段,为何是解析是否成功的分水岭。


你真正该盯住的,是这 7 个字节:ADU 的物理真相

Modbus TCP 没有“帧”,只有ADU(Application Data Unit)——即一整块交给 TCP 发送的二进制数据。它由两部分组成:

字段长度示例值(十六进制)关键说明
Transaction ID2 字节0x1a2b
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/26 9:00:04

探索Obsidian科研知识管理:构建个性化学术工作流的实践指南

探索Obsidian科研知识管理:构建个性化学术工作流的实践指南 【免费下载链接】obsidian_vault_template_for_researcher This is an vault template for researchers using obsidian. 项目地址: https://gitcode.com/gh_mirrors/ob/obsidian_vault_template_for_re…

作者头像 李华
网站建设 2026/8/24 1:15:43

开源密码管理器KeyPass本地部署与安全实践指南

开源密码管理器KeyPass本地部署与安全实践指南 【免费下载链接】KeyPass KeyPass: Open-source & offline password manager. Store, manage, take control securely. 项目地址: https://gitcode.com/gh_mirrors/ke/KeyPass 在数据隐私日益受到重视的今天&#xff0…

作者头像 李华
网站建设 2026/8/28 3:40:56

Live Avatar多语言支持:中文语音合成适配教程

Live Avatar多语言支持:中文语音合成适配教程 1. 认识Live Avatar:不只是数字人,更是多模态表达新范式 Live Avatar是由阿里联合高校开源的数字人模型,它不是简单地把一张静态照片变成会动的视频,而是融合了文本理解…

作者头像 李华
网站建设 2026/8/26 22:54:43

开发者首选!Qwen3-Embedding-0.6B镜像一键部署实战测评

开发者首选!Qwen3-Embedding-0.6B镜像一键部署实战测评 你是不是也遇到过这些情况:想快速验证一个嵌入模型,却卡在环境配置上一整天;想在本地跑通文本检索流程,结果被CUDA版本、依赖冲突、API适配折腾得放弃&#xff…

作者头像 李华
网站建设 2026/8/27 2:54:22

老旧硬件设备驱动兼容解决方案:系统适配与跨平台实战指南

老旧硬件设备驱动兼容解决方案:系统适配与跨平台实战指南 【免费下载链接】pl2303-win10 Windows 10 driver for end-of-life PL-2303 chipsets. 项目地址: https://gitcode.com/gh_mirrors/pl/pl2303-win10 一、驱动兼容性困境诊断流程 1.1 设备识别异常排…

作者头像 李华