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 数据包,使上位机软件能够通过标准以太网接口直接访问底层设备。
实践要点: 在大型厂区中,通常采用“分布式采集、集中式管理”的架构。每个车间或工艺区域部署一台或多台 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)。
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 请求,并将响应返回给对应的客户端。
选型建议: 当现场设备距离超过 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 |