目录
[1.1 协议全称](#1.1 协议全称)
[1.2 协议简史](#1.2 协议简史)
[2.1 架构设计](#2.1 架构设计)
[2.2 典型应用场景](#2.2 典型应用场景)
[3.1 协议栈分类](#3.1 协议栈分类)
[3.2 版本演进对比](#3.2 版本演进对比)
[4.1 Modbus RTU帧结构](#4.1 Modbus RTU帧结构)
[4.2 Modbus TCP报文](#4.2 Modbus TCP报文)
[5.1 主从通信时序](#5.1 主从通信时序)
[5.2 核心功能码速查表](#5.2 核心功能码速查表)
[6.1 工具推荐](#6.1 工具推荐)
[6.2 进阶学习路径](#6.2 进阶学习路径)
一、初识Modbus:工业通信的基石
1.1 协议全称
- 中文全名:莫迪康总线协议(音译)
- 英文全名:Modbus Protocol
1.2 协议简史
1979年由Modicon公司(现施耐德电气)专为其PLC设备设计,凭借其开放性与简单性 ,逐步成为工业通信领域的事实标准。2018年发布的Modbus Secure通过TLS加密(RFC 8096)弥补了安全性短板。
二、核心特性解析
2.1 架构设计
特征 | 说明 |
---|---|
主从模式 | 单主站控制多个从站(最多247个地址) |
四类存储区 | 线圈(Coils)、离散输入、保持寄存器、输入寄存器(地址映射规则见4.3节) |
跨层兼容 | 支持RS-485、以太网等多种物理介质 |
2.2 典型应用场景
- PLC设备互联(如西门子S7-1200与温控器通信)
- SCADA系统数据采集(电力监控、水处理系统)
- 智能电表远程读数(Modbus RTU over RS-485)
三、协议族全景图
3.1 协议栈分类

3.2 版本演进对比
变种 | 传输介质 | 编码方式 | 典型延迟 | 应用领域 |
---|---|---|---|---|
Modbus RTU | RS-485 | 二进制 | <10ms | 工厂设备本地通信 |
Modbus ASCII | RS-232 | ASCII文本 | 20-50ms | 老旧设备兼容 |
Modbus TCP | 以太网 | TCP/IP | 1-100ms | 跨区域设备联网 |
Modbus Secure | TLS over TCP | 加密传输 | 100-200ms | 关键基础设施 |
四、协议报文深度解析
4.1 Modbus RTU帧结构
cpp
// 典型读保持寄存器请求(从站地址0x01)
0x01 0x03 0x00 0x6B 0x00 0x03 0x76 0x87
字段 | 字节数 | 示例值 | 说明 |
---|---|---|---|
Slave Address | 1 | 0x01 | 从站设备ID |
Function Code | 1 | 0x03 | 读保持寄存器操作 |
Start Address | 2 | 0x006B | 起始地址108(400109) |
Quantity | 2 | 0x0003 | 读取3个寄存器 |
CRC | 2 | 0x7687 | 校验码 |
4.2 Modbus TCP报文
python
# Python示例:构造Modbus TCP请求头
transaction_id = 0x0001
protocol_id = 0x0000
length = 0x0006
unit_id = 0xFF
header = struct.pack('>HHHBB', transaction_id, protocol_id, length, unit_id, 0x03)
五、通信机制实战剖析
5.1 主从通信时序
bash
Title: Modbus通信流程
Master->Slave: 请求帧(功能码+地址)
Note right of Slave: 地址校验→执行操作
Slave-->Master: 成功响应(数据帧)
Slave-->Master: 异常响应(功能码+0x80)
5.2 核心功能码速查表
功能码 | 名称 | 典型应用场景 |
---|---|---|
0x01 | 读线圈状态 | 读取继电器输出状态 |
0x03 | 读保持寄存器 | 获取PLC配置参数(如波特率) |
0x05 | 写单个线圈 | 远程控制电磁阀启停 |
0x10 | 写多个保持寄存器 | 批量更新设备参数 |
六、开发资源与扩展阅读
6.1 工具推荐
- 调试工具:Modbus Poll、QModMaster
- 协议分析:Wireshark(Modbus dissector插件)
- 开发库:libmodbus(C/C++)、pymodbus(Python)
6.2 进阶学习路径
- 协议安全:学习《Modbus Secure Implementation Guide》
- 性能优化:研究报文压缩与批量读写技巧
- 工业物联网:探索Modbus与MQTT的协议转换网关
七、总结与展望
Modbus作为工业通信的"活化石",其极简设计哲学 (整个规范仅84页)与硬件低门槛特性,使其在工业4.0时代仍保持旺盛生命力。随着TSN(时间敏感网络)等新技术的发展,Modbus over TSN等新形态正在孕育,继续书写工业通信协议的传奇。
资源下载:Modbus协议样本数据包
GitHub - jayateertha043/ModbusSamples: Sample PCAP files for Modbus
参考文献 :
1\] Modbus Application Protocol Specification v1.1b3 \[2\] RFC 8096: Modbus Secure \[3\] 《Industrial Communication Protocols》Shuang-Hua Yang 著