1. 课程导论:厂务数据采集概述、Modbus协议家族介绍、RTU与TCP的区别与联系

1.1 厂务数据采集概述

在半导体、面板、制药、汽车等高端制造业中,厂务监控系统(Facility Monitoring System, FMS) 是确保生产环境稳定、能源高效利用、设备安全运行的核心基础设施。厂务数据采集的目标是将分布在厂区内的水、电、气、化、暖通、洁净室等系统的运行参数(温度、压力、流量、液位、电压、电流、功率等)实时汇聚到中央监控平台。

核心采集对象: 冷水机组、空压机、纯水系统、废水处理系统、变配电系统、空调箱(AHU)、排风系统(EF/FFU)、锅炉、蒸汽系统等。

传统厂务数据采集面临三大挑战:

  • 协议异构: 不同年代、不同厂商的设备使用 RS-232/RS-485、Profibus、DeviceNet、BACnet、Modbus RTU/ASCII 等多种现场总线协议。
  • 距离限制: RS-485 总线理论最大传输距离约 1200 米,无法覆盖大型厂区。
  • IT/OT 融合需求: 上层 IT 系统(MES、ERP、SCADA)普遍采用以太网 TCP/IP 通信,需要将 OT 层的串行数据无缝桥接到 IP 网络。

Modbus RTU 转 TCP 网关 正是解决上述挑战的关键设备。它作为协议转换的桥梁,将现场仪表、PLC、电力仪表等设备的 Modbus RTU 串行数据封装为 TCP/IP 数据包,使上位机软件能够通过标准以太网接口直接访问底层设备。

厂务数据采集整体架构图 厂务数据采集整体架构 现场设备层(OT) 冷水机组 空压机 电力仪表 温湿度传感器 PLC RS-485 总线(Modbus RTU) 协议转换层 Modbus RTU 转 TCP 网关 以太网 TCP/IP(Modbus TCP) 上层系统(IT) SCADA MES 能源管理平台 IoT 云平台
实践要点: 在大型厂区中,通常采用“分布式采集、集中式管理”的架构。每个车间或工艺区域部署一台或多台 Modbus RTU 转 TCP 网关,通过光纤或工业以太网交换机汇聚到中央机房。

1.2 Modbus 协议家族介绍

Modbus 协议由 Modicon(现施耐德电气)于 1979 年发明,是目前工业自动化领域应用最广泛的通信协议之一。其核心优势在于:开放、免授权、实现简单、硬件成本低。Modbus 协议家族主要包含以下三种变体:

协议变体 物理层 传输方式 典型应用场景
Modbus RTU RS-232 / RS-485 二进制编码,紧凑高效 现场仪表、PLC、变频器、电力仪表
Modbus ASCII RS-232 / RS-485 ASCII 字符编码,可读性强 调试阶段、低速链路、无线电通信
Modbus TCP 以太网(RJ45 / 光纤) TCP/IP 封装,无校验码 SCADA、上位机、PLC 间通信、跨区域采集

此外,Modbus 协议还定义了统一的数据模型,包括四种基本对象类型:

  • 线圈(Coil): 可读可写的离散量输出,对应 PLC 的 DO 点。
  • 离散输入(Discrete Input): 只读的离散量输入,对应 PLC 的 DI 点。
  • 输入寄存器(Input Register): 只读的 16 位数据,通常用于读取传感器测量值。
  • 保持寄存器(Holding Register): 可读可写的 16 位数据,用于设定参数或读取累计值。
关键概念: 在 Modbus 网络中,主站(Master) 负责发起请求,从站(Slave) 响应请求。每个从站拥有唯一的地址(1~247)。在 Modbus TCP 中,主站称为客户端(Client),从站称为服务器(Server)。
Modbus 协议家族关系图 Modbus 协议家族关系 Modbus 协议 Modbus RTU 二进制编码 · 高密度 Modbus ASCII ASCII 编码 · 可读性强 Modbus TCP TCP/IP 封装 · 无校验 共同特性 统一的数据模型(线圈、离散输入、输入寄存器、保持寄存器) 主从(客户端/服务器)架构 · 功能码定义一致(01~06, 0F, 10, 等)

1.3 RTU 与 TCP 的区别与联系

理解 Modbus RTU 和 Modbus TCP 的差异,是正确配置网关的前提。两者在物理层、数据帧结构、通信机制上存在本质区别,但又共享相同的应用层数据模型。

1.3.1 核心区别对比

对比维度 Modbus RTU Modbus TCP
物理层 RS-232 / RS-485(串行总线) 以太网(IEEE 802.3)
传输速率 9.6 kbps ~ 115.2 kbps(典型值) 10/100/1000 Mbps
最大节点数 32 个(RS-485 无中继器) 理论上无限制(受 IP 子网限制)
传输距离 RS-485 约 1200 米(无中继) 100 米(铜缆),可通过交换机扩展
帧结构 地址 + 功能码 + 数据 + CRC16 校验 MBAP 头(7 字节)+ 功能码 + 数据(无 CRC)
通信方式 半双工,主从轮询 全双工,客户端/服务器,可并发
从站地址 必须指定(1~247) 通过 IP 地址 + 单元标识符(Unit ID)识别
典型应用 现场级设备数据采集 车间级/工厂级数据汇聚

1.3.2 帧结构对比

Modbus RTU 帧:

| 从站地址 (1B) | 功能码 (1B) | 数据 (N B) | CRC16 低字节 | CRC16 高字节 |

Modbus TCP 帧:

| 事务标识符 (2B) | 协议标识符 (2B) | 长度 (2B) | 单元标识符 (1B) | 功能码 (1B) | 数据 (N B) |
常见误区: Modbus TCP 帧中没有 CRC 校验,因为 TCP/IP 协议栈本身已经提供了可靠的传输层校验(TCP 校验和)。在配置网关时,不要试图在 TCP 端添加 CRC,否则会导致数据解析错误。

1.3.3 两者的联系:协议转换的本质

Modbus RTU 转 TCP 网关的核心工作是将 RTU 帧“封装”到 TCP 帧中,同时完成以下映射:

  • 从站地址 → 单元标识符(Unit ID): RTU 帧中的从站地址被复制到 TCP 帧的单元标识符字段,用于在 TCP 网络中标识目标设备。
  • CRC 校验 → TCP 校验: 网关移除 RTU 帧的 CRC 校验码,依赖 TCP 协议保证数据完整性。
  • 串行轮询 → 并发请求: 网关内部维护一个从站设备列表,将来自 TCP 客户端的并发请求转换为串行 RTU 请求,并将响应返回给对应的客户端。
Modbus RTU 转 TCP 协议转换原理 Modbus RTU 转 TCP 协议转换原理 Modbus RTU 帧 地址(1B) | 功能码(1B) | 数据(NB) | CRC16(2B) 从站地址 = 0x01 RTU → TCP 网关 Modbus TCP 帧 MBAP头(7B) | 功能码(1B) | 数据(NB) Unit ID = 0x01 关键映射:RTU 从站地址 → TCP 单元标识符(Unit ID) CRC 校验由 TCP 协议栈保证,网关自动移除/添加
选型建议: 当现场设备距离超过 1200 米、或需要同时被多个上位机系统访问时,必须使用 Modbus TCP 网关。对于仅有 1~2 台设备且距离较近的场景,可直接使用 USB 转 RS-485 适配器配合软件协议栈,无需额外购买网关。

1.3.4 网关配置的核心参数

在后续章节中,我们将详细讲解网关的配置步骤。这里先列出需要理解的关键参数:

参数类别 参数名称 说明
串口参数 波特率(Baud Rate) 与现场设备一致,常见 9600、19200、38400、115200
数据位(Data Bits) 通常为 8
校验位(Parity) 无校验(None)、偶校验(Even)、奇校验(Odd)
网络参数 IP 地址 / 子网掩码 / 网关 确保与上位机网络互通
TCP 端口号 默认 502(Modbus TCP 标准端口)
从站映射 从站地址列表 网关轮询的 RTU 从站地址范围
超时时间(Timeout) 等待从站响应的最长时间,通常 500~2000 ms