3. 工业通信协议与接口选型
在工业物联网数据采集架构中,协议选型不是“哪个先进选哪个”,而是要把协议放回它真正擅长的层级去看。现场设备层关心的是毫秒级循环、确定性同步和硬实时;边缘汇聚层关心的是多品牌兼容、语义统一和会话管理;平台与应用层关心的是跨网络、弱网可用、可水平扩展和与业务系统对接。把这三层混为一谈,就会出现“用 HTTP 轮询采集伺服周期数据”或“用 EtherCAT 跨厂区上云”这类结构性错误。
先建立一张定位图:Modbus 是轻量、通用、主从式的现场总线/串口协议,寄存器语义靠人工约定,适合低速、少量点位、多品牌仪表与 PLC 的兼容采集;OPC UA 是面向信息建模的客户端/服务器与发布/订阅协议,自带地址空间、类型系统和安全通道,适合边缘汇聚与跨系统语义互通;Profinet 与 EtherCAT 是工业以太网实时协议,前者广泛用于工厂自动化,后者以分布式时钟和极短周期见长,适合运动控制与高同步场景;MQTT 是轻量发布/订阅消息协议,适合边缘到云、弱网、多对一汇聚;HTTP/REST 是请求/响应式通用接口,适合配置下发、批量查询、与 MES/ERP 等 IT 系统集成,但不适合高频实时采集。
选型的第一依据是采集周期与确定性要求。以运动控制为例,若伺服轴需要 1 ms 甚至 250 μs 的循环同步,EtherCAT 的分布式时钟和过程数据映射是合理选择;若只是采集温度、压力、流量等变化缓慢的过程量,Modbus RTU 在 9600 bit/s 下轮询 10 个寄存器约需几十毫秒,完全够用。这里有一个可计算的判断:Modbus RTU 一帧请求加响应约 8 字节,在 9600 bit/s、8N1 下传输约 8.3 ms,若轮询 20 台设备,一轮约 166 ms,即刷新周期约 6 Hz。若工艺要求 1 Hz 以上,这个方案可行;若要求 100 ms 以内,就必须改用 Modbus TCP 或 Profinet。
第二依据是语义与互操作性。Modbus 只定义“寄存器地址 + 数据类型”,同一个 40001 在不同厂家可能表示温度、频率或状态字,必须靠点表人工映射。OPC UA 则通过地址空间、对象类型和引用关系把“设备—变量—单位—工程范围”表达出来,客户端可以浏览、订阅、带时间戳读取。因此在边缘网关中,常见做法是南向用 Modbus/Profinet 采集,北向统一转换为 OPC UA 信息模型,再以 Pub/Sub 或 MQTT 上行。这样上层应用不需要知道底层是哪个品牌 PLC。
第三依据是网络环境与部署成本。厂内有线环境优先工业以太网;跨车间、跨厂区、4G/5G 或 NAT 环境,MQTT 的发布/订阅、心跳保活、遗嘱消息和 QoS 机制更合适。HTTP 适合低频、请求/响应式交互,例如每天同步一次配方、查询历史批次,但不适合作为高频采集主通道,因为每次请求都要建立连接、携带头部,且服务端难以主动推送。
实际选型时,建议按以下顺序判断:先确认数据用途(实时控制、监控、分析、报表),再确认周期与抖动容忍度,然后确认设备品牌与协议支持能力,最后确认网络拓扑与安全要求。一个典型的混合架构是:EtherCAT 连接伺服与远程 IO,Profinet 连接产线 PLC,Modbus RTU 采集电表与温控器,边缘网关统一汇聚为 OPC UA 地址空间,再通过 MQTT 上行到云平台,HTTP 用于平台侧配置下发和 MES 数据回传。协议之间不是替代关系,而是分层协作关系。
最后要强调,协议选型必须落到接口参数上。例如 Modbus TCP 默认端口 502,单元标识符用于区分串口网关后的从站;OPC UA 默认端口 4840,需要配置安全策略(None/Sign/Sign&Encrypt)和用户令牌;MQTT 默认端口 1883(明文)或 8883(TLS),需要设置 ClientID、Keep Alive、Clean Session 和主题层级;Profinet 使用 RT 通道时,设备名和 IP 地址由 DCP 分配,IRT 还需要同步域配置。把这些参数写进采集架构设计文档,才能让后续实施、调试和排障有据可依。