欢迎来到老白的工业 IoT 现场接入实战笔记很多项目一上来就在争一个问题现场到底该上 MQTT还是 OPC UA还是继续用 Modbus这个问题如果放在会议室里聊很容易越聊越虚。真到现场答案通常没那么复杂。大多数时候不是三选一而是三种协议各干各的活。Modbus 适合把设备里的原始点位先拿出来OPC UA 适合把这些点位整理成更像样的数据模型MQTT 更适合把处理后的结果往上送。你如果把这三层职责拆开很多“协议之争”其实当场就没了。先看 Modbus。它的优点很直接老设备多资料相对好找串口和 TCP 两种场景都常见现场工程师也熟。只要你目标明确就是要把变频器、电表、PLC、仪表这些设备的数据先采上来Modbus 往往是最快能落地的路子。但它也有边界。它更像“把寄存器读出来”不是“把业务语义讲清楚”。你拿到 4000127到底是温度、压力还是设备状态还得靠你自己补上下文。这也是为什么很多项目采完 Modbus 以后后面还要补一层处理。现场真正麻烦的往往不是“能不能读到数据”而是“读到了以后怎么让别人也看得懂”。不同厂家的寄存器表写法不一样同一类设备命名规则也可能完全不同。点位一多后面做平台接入、跨系统对接、远程运维看起来就会越来越乱。这时候 OPC UA 的价值就出来了。它不只是传数据还能把设备、变量、告警、状态这些信息按结构组织起来。你可以把现场乱七八糟的寄存器整理成统一的对象、属性和层级。对上层系统来说它看到的就不再是一串地址而是一台设备下面有哪些测点、这些测点各自是什么含义、单位是什么、状态是不是正常。但 OPC UA 也别神化。它更适合做标准化建模和系统互通不代表所有边缘节点都该直接全量上 OPC UA。尤其是一些轻量采集场景或者蜂窝链路不太稳定的远程站点你让边缘侧每一层都走复杂建模项目不一定更顺。我的经验是只有当“多人要共用这份数据”“后面还要对接 SCADA、MES、平台或第三方系统”时OPC UA 的投入才特别值。再说 MQTT。它在工业 IoT 场景里最常见的作用不是替代现场采集而是把边缘侧已经整理过的数据往上送。它轻主题机制也灵活做跨网络上报、远程监控、分布式设备接入都很顺手。尤其是 4G、5G 或者公网环境下MQTT 的使用体验通常比直接暴露现场协议友好很多。但 MQTT 也有一个很容易踩的坑它只负责“怎么发”不负责“你发的东西到底代表什么”。如果前面没有做点位治理没有统一命名没有把状态、时间戳、质量位这些东西整理好那你只是把一堆混乱的数据更快地发到了云端而已。这个坑我见过很多次。上云速度很快后面清洗半年。所以更稳的做法通常是这样的现场设备先通过 Modbus RTU 或 Modbus TCP 接入工业网关边缘侧完成点位映射、单位换算、异常值过滤、简单聚合和断点续传再按需要向上提供 OPC UA 接口或者把结果通过 MQTT 发到平台。这样分层以后每一段链路的职责都清楚排障也容易。如果你现在就在做选型我建议先别问“哪个协议最先进”先问四个现场问题。第一底下接的是什么设备现有协议到底是什么。第二这批数据是只给一个系统用还是后面会被多个系统复用。第三链路是不是跨公网现场网络稳不稳定。第四边缘侧有没有能力做一点清洗、缓存和协议适配。这四个问题一旦答清楚方案基本就不会跑偏。老旧设备多先把 Modbus 采稳。多系统互通要求高就把 OPC UA 建模做好。需要跨区域接入、远程运维、云边协同就把 MQTT 的上行链路设计清楚。别想着一个协议包打天下现场一般不是这么赢的。我自己更愿意把它理解成一条接入流水线Modbus 负责拿数据OPC UA 负责讲清数据MQTT 负责送好数据。顺着这个思路去做方案会简单很多后面扩容也不容易失控。看到最后的朋友记得点个赞。