Modbus 协议逐字节拆解:一帧报文 + 一份 RS-485 现场踩坑大全
博客的第一篇技术文,从 Modbus 开始。它是工控通讯里的”普通话”——几乎所有 PLC、仪表、变频器、传感器都认它。这篇文章分两部分:先把一帧报文逐字节 + 图解看懂;再把我在 RS-485 现场踩过、见过的坑,按物理层 / 时序层 / 协议层分类列全。 一句话理解 ModbusModbus 是主从(Master / Slave)+ 一问一答的协议:只有主站发起请求,从站被动应答。 1234567sequenceDiagram participant M as 主站 Master participant S as 从站 Slave M->>S: 请求帧(功能码 + 地址 + 数量) Note over S: 校验 CRC → 处理请求 S-->>M: 响应帧(数据 或 异常码) Note over M: 校验 CRC → 解析数据 学 Modbus 核心就三件事:数据放在哪(数据模型)、怎么点名(功能码 + 地址)、报文长什么样(帧结构)。 数据模型:四种”区” 数据区 读...
开篇 · 一个工控通讯工程师的公开笔记
这是博客的第一篇。之所以开这个站,是想把自己在嵌入式软件和工业通讯协议上踩过的坑、想明白的原理、造过的轮子,公开地记录下来。 我会在这里写什么我日常打交道的,是设备与设备之间”说话”的那一层——各种工业通讯协议: Modbus(RTU / TCP)——绕不开的入门与常青协议 西门子 S7、三菱 MC、欧姆龙 FINS/Hostlink——主流 PLC 的通讯门道 CODESYS 及其它现场总线 / 工业以太网 内容大概是三类: 协议拆解:把一帧报文逐字节讲清楚,知其然也知其所以然 踩坑复盘:现场通讯不稳、丢帧、时序、干扰……这些真实问题是怎么定位和解决的 造轮子:我正在写一个开源的多协议通讯库(用 C/C++,可跑在嵌入式设备上),进展和设计思路会同步在这里 为什么要公开写一部分是逼自己把经验系统化——很多东西不写下来,就永远停留在”会用”而非”讲得清”。另一部分,是想认识更多同行。如果你也在工控 / 嵌入式这条路上,欢迎交流、拍砖、一起把协议这件事聊透。 慢慢写,长期更新。