2. Modbus基础
Modbus 是工业自动化领域最经典、最广泛使用的通信协议之一。它诞生于 1979 年,由 Modicon 公司(后被施耐德电气收购)为可编程逻辑控制器 PLC 设计。经过四十余年演进,Modbus 已从最初的串行链路协议扩展出 Modbus TCP、Modbus RTU over TCP 等多种形态,成为事实上的工业通信“普通话”。理解 Modbus 的基础架构与传输方式,是进行数据模型设计和寄存器规划的前提。
一、协议发展历史:从串行总线到以太网
Modbus 的发展大致可分为三个阶段。第一阶段是 1979 年至 1990 年代的串行时代,最初运行在 RS-232 上,随后广泛采用 RS-485 总线,形成 Modbus RTU 和 Modbus ASCII 两种串行传输模式。RTU 采用二进制编码,效率高、抗干扰强,成为主流;ASCII 采用可读字符,便于调试但效率较低。第二阶段是 1999 年前后,随着以太网普及,Modbus TCP 被提出,将 Modbus 报文封装进 TCP/IP,使用 502 端口,实现了更高速度和更远距离的通信。第三阶段是近十余年,Modbus 与网关、物联网平台结合,通过 Modbus RTU 转 TCP、Modbus 转 MQTT 等方式接入云平台,但其核心报文结构始终保持稳定,这正是它长盛不衰的关键。
二、主从架构:请求与响应的严格秩序
Modbus 采用主从(Master-Slave)架构,也称客户端/服务器架构。总线上只有一个主站,可以有一个或多个从站。通信永远由主站发起:主站发送请求帧,从站解析后执行操作并返回响应帧。从站之间不会主动通信,也不会互相直接交换数据。这种设计带来两个重要特性:一是总线访问有序,避免冲突;二是主站掌握全部通信节奏,便于确定性控制。
每个从站拥有唯一的地址,范围通常为 1 至 247,0 为广播地址。主站请求中包含功能码、起始地址、数量等字段;从站响应中包含相同功能码、数据或异常码。若从站无法处理请求,会返回异常响应,功能码最高位置 1,并附带异常码,例如非法功能、非法数据地址、从站设备故障等。主站必须根据超时和异常码进行重试或告警。
三、串行与 TCP 传输方式对比
Modbus RTU 运行在串行链路上,常见物理层为 RS-485,采用半双工通信,主站轮询各从站,同一时刻总线上只有一个发送方。其帧结构为“地址 + 功能码 + 数据 + CRC 校验”,帧间需要至少 3.5 个字符时间的静默间隔来界定边界。Modbus TCP 则运行在以太网上,使用 TCP 502 端口,报文在 PDU 前增加 7 字节 MBAP 头,包含事务标识、协议标识、长度和单元标识。TCP 方式天然支持全双工和多个并发连接,但失去了串行总线的物理确定性,需要依赖网络质量。
| 对比维度 | Modbus RTU | Modbus TCP |
|---|---|---|
| 物理层 | RS-232 / RS-485 | 以太网 |
| 传输层 | 串行链路,无 TCP | TCP/IP |
| 默认端口 | 无端口概念 | 502 |
| 校验方式 | CRC-16 | 由 TCP 保证可靠性 |
| 通信模式 | 半双工,主从轮询 | 全双工,多连接 |
| 典型速率 | 9600 ~ 115200 bps | 10/100/1000 Mbps |
| 典型距离 | RS-485 约 1200 米 | 受网络拓扑限制 |
四、常见应用场景与优势局限
Modbus 的典型应用场景包括:PLC 与变频器、仪表、传感器之间的数据采集;SCADA 系统对现场设备的轮询监控;楼宇自控中的空调、照明、电表管理;以及通过网关将串行设备接入以太网或云平台。在寄存器规划中,工程师需要根据设备手册确定线圈、离散输入、输入寄存器和保持寄存器的地址分布,并考虑字节序、字序和数据类型映射。
Modbus 的优势十分明显:协议简单、开源免费、实现成本低、生态成熟、几乎全部工控设备都支持。但它也存在局限:一是主从轮询机制导致实时性有限,从站数量多时响应变慢;二是缺乏统一的数据语义,同一地址在不同设备中含义可能完全不同;三是安全性弱,原生协议没有加密和认证,暴露在公网存在风险;四是串行方式下总线故障会影响整个链路。
常见误区:很多初学者认为 Modbus 地址从 0 开始,但设备手册常使用 1 起始的“逻辑地址”,例如 40001 对应保持寄存器偏移 0。编程时必须确认地址基准,否则会出现“差一”错误。此外,Modbus TCP 的单元标识在网关场景中用于区分后端串行从站,不能随意填 0。
排障提示:串行链路不通时,优先检查波特率、数据位、停止位、校验位是否一致,以及 A/B 线是否接反;TCP 链路不通时,先确认 502 端口可达、防火墙放行、单元标识正确,再用抓包工具观察 MBAP 头中的事务标识是否匹配。
总体而言,Modbus 以极简的报文结构和清晰的主从秩序,在工业现场保持了长期生命力。掌握其发展脉络、主从机制和两种传输方式的差异,是后续进行寄存器规划与数据模型设计的基础。