1. Modbus 协议概述

Modbus 是全球工业自动化领域部署最广泛的通信协议之一。自 1979 年诞生以来,它凭借开放、简单、可靠的特点,成为连接现场设备与上位系统的“工业通用语言”。本节将梳理其发展脉络、核心特性及典型应用场景。

1.1 发展历史

时间 里程碑 说明
1979 年 Modicon 公司发布 为 Modicon 可编程逻辑控制器(PLC)设计的串行通信协议,基于主从架构。
1990 年代 公开标准化 Modicon 被施耐德电气收购后,协议规范向业界公开,成为事实标准。
2002 年 TCP 扩展发布 施耐德与 Cisco 等公司合作推出 Modbus TCP/IP,将协议移植到以太网层。
2007 年 国家标准采纳 中国 GB/T 19582 系列标准正式采纳 Modbus 协议,推动国内工业互联。
至今 物联网融合 Modbus 作为边缘层协议,与 MQTT、OPC UA 等上云协议协同工作。
关键认知: Modbus 的长期生命力源于其开放性——任何厂商无需授权即可实现,且协议帧结构极简,资源受限的嵌入式设备也能轻松支持。

1.2 协议特点

Modbus 在设计上追求“最小可行通信”,其核心特点可归纳为以下四点:

  • 主从/客户端-服务器架构: 串行链路(RS-232/485)采用主从模式,一个主站最多管理 247 个从站;TCP 版本采用客户端-服务器模式,支持多客户端并发访问。
  • 功能码驱动: 每个请求由功能码(Function Code)定义操作类型,如读取线圈(01)、读取寄存器(03)、写入单线圈(05)等,指令集紧凑。
  • 数据模型统一: 协议定义了四种基本数据对象——线圈(位输出)、离散输入(位输入)、输入寄存器(16 位只读)、保持寄存器(16 位读写),覆盖绝大多数工业 I/O 类型。
  • 无状态与轻量: 每个请求/应答独立,不维护会话状态;报文头部仅 4-8 字节,非常适合低带宽、高实时性场景。
Modbus 协议栈分层与数据模型 应用层(Modbus 报文) 传输层(TCP 或串行帧) 网络/数据链路层 物理层(RS-485 / 以太网) Modbus 数据对象模型 线圈(Coil) 1 位,可读写 离散输入(Discrete Input) 1 位,只读 输入寄存器(Input Register) 16 位,只读 保持寄存器(Holding Register) 16 位,可读写 地址范围:0-65535(每类独立编址) 功能码 01/02/03/04 对应读取四种对象 封装

1.3 应用场景

Modbus 的跨行业适用性使其成为工业物联网(IIoT)边缘层的事实标准。以下三个领域最具代表性:

领域 典型设备 通信方式 数据采集内容
工业自动化 PLC、变频器、伺服驱动器、传感器 RS-485 / Modbus TCP 设备状态、运行频率、故障码、工艺参数
能源管理 智能电表、光伏逆变器、UPS、充电桩 Modbus RTU / TCP 电压、电流、功率、累计电量、告警
楼宇控制 DDC 控制器、暖通空调、照明、水表 Modbus RTU / ASCII 温度、湿度、阀门开度、能耗数据
实战视角: 在《Modbus 数据采集实战》课程中,我们将以工业自动化场景为主线,使用 Modbus TCP 采集 PLC 保持寄存器数据,并通过 MQTT 协议将数据上传至云平台。后续章节将逐步拆解从设备选型到云端可视化的完整流程。
Modbus 典型应用场景拓扑 工业自动化 PLC 变频器 传感器 伺服驱动 能源管理 智能电表 光伏逆变器 UPS 充电桩 楼宇控制 DDC 控制器 暖通空调 照明系统 水表/气表 Modbus 通信层(RTU / ASCII / TCP) 串行链路:RS-485 总线,最长 1200 米,最多 247 个节点 以太网链路:Modbus TCP,端口 502,支持跨网段路由
选型注意: 在楼宇控制场景中,部分老旧设备仅支持 Modbus ASCII 模式(报文以 ASCII 字符传输),其效率低于 RTU 模式。若系统对实时性要求较高(如 100ms 以内),建议优先选用 Modbus RTU 或 TCP。