Modbus协议开发入门
一、介绍
-
定义
- 工业通信协议:Modbus 是一种 串行通信协议,用于工业设备间的主从式数据交换(如 PLC、传感器、仪表等)。
- 开放标准:由 Modicon 公司(现施耐德电气)于 1979 年发布,协议公开免费,成为工业自动化领域的事实标准。
-
核心特性
- 简单轻量:基于二进制/ASCII 编码,协议头仅 7 字节,适用于低带宽场景(如 RS-485 总线)。
- 主从架构:单一主设备(Master)控制多个从设备(Slave),通过轮询机制获取数据。
二、协议变种与适用场景
类型 | 传输介质 | 典型场景 | 特点 |
---|---|---|---|
Modbus RTU | RS-232/RS-485 | 工厂设备本地通信(如 PLC) | 二进制编码,高传输效率 |
Modbus ASCII | 串口 | 调试或低速环境 | 可读性高(ASCII字符),效率低 |
Modbus TCP | 以太网/IP | 远程监控、工业物联网 | 基于 TCP/IP,支持跨网络通信 |
- 扩展协议:Modbus Plus(高速专网)、Modbus over UDP(低延迟场景)等。
三、系统架构与通信流程
1. Modbus 主从基础架构图
2. 通信时序图(RTU模式)
帧结构示例:
字段 | RTU/ASCII | TCP |
---|---|---|
地址 | 1字节(1-247) | 已包含在IP中 |
功能码 | 1字节(01-04等) | 同RTU |
数据 | 可变长度 | 同RTU |
校验 | CRC/LRC | MBAP头(无校验) |
Modbus TCP 与 RTU 区别
- 报文封装:TCP 在 RTU 帧前添加 MBAP头(含事务ID、长度字段),无CRC校验(依赖TCP可靠性)。
- 示例 TCP 帧:
00 01 00 00 00 06 01 03 00 00 00 02
3. 功能码交互流程
常用功能码