选协议不是选「哪个更先进」,而是先回答两件事:两端已经会说什么?这一层要解决什么问题?—— 协议是分层的,跨层比较会得出"某协议比另一个先进"这种错结论。
需要了解产品参数、适用场景与案例?
拨打 130 4890 6506,获取选型建议与同行业案例现场最常见的争论("MQTT 是不是比 Modbus 先进")之所以吵不出结果, 是因为两个协议根本不在同一层。先把层分开:
| 层 | 解决什么 | 典型协议 |
|---|---|---|
| 现场层 | 在设备与控制器之间交换过程数据 | Modbus RTU/TCP、BACnet、IEC 104、IEC 61850 |
| 监控层 | 把多台控制器/系统统一成可互操作的信息模型 | OPC UA |
| 平台上云层 | 把数据跨网络、低带宽、多对多地送到平台 | MQTT |
同一套系统里三层用三种协议,是完全正常的: 现场用 Modbus 读表,中间用 OPC UA 统一语义,上行用 MQTT 送到平台。 这不是"没统一",而是各层用了各自合适的工具。
| 协议 | 主要设计场景 | 数据模型 | 典型传输 | 什么时候选它 | 什么时候别选 |
|---|---|---|---|---|---|
| Modbus RTU / TCP | 通用工业设备读数(计量、电力、仪表) | 寄存器/线圈,语义靠文档 | 串行(RTU)/ 以太网(TCP) | 两端都支持、点位不多、要快进快出 | 需要自描述、需要复杂类型与订阅时 |
| BACnet | 楼宇自控(空调、照明、给排水) | 对象/属性,有标准对象类型 | 以太网 / 现场总线 | 楼宇系统、暖通设备 | 工业过程与电力调度场景(不是它的主场) |
| IEC 104 | 电力调度(遥测、遥信、遥调、遥控) | 点号 + 类型标识 | 以太网(TCP) | 与电网调度主站对接 | 通用设备读数(用不上它的调度语义) |
| IEC 61850 | 变电站内部 | 带自描述的信息模型 | 以太网 | 变电站自动化 | 一般工厂现场(代价与复杂度不成比例) |
| OPC UA | 跨系统互操作,把语义统一起来 | 信息模型(可自描述、带类型) | 以太网(可跨平台) | 上层要统一语义、要跨厂商互操作 | 设备本身不支持、又不想加一层时 |
| MQTT | 上云/远传,多对多、弱网 | 主题 + 载荷(载荷格式另行约定) | TCP(可跨公网) | 跨地域、低带宽、多站点汇聚 | 现场设备直连(很多设备不说它) |
⚠️ 两点必须说清: ① MQTT 不自带语义 —— 它只负责"把消息送到",载荷里是什么,要另有一套约定 (这正是《通讯物模型怎么建》那一篇要解决的问题); ② OPC UA 需要两端支持 —— 它是能力,不是开关。设备不说它,就得在中间加一层。
我们可以提供:产品参数表 · 选型建议 · 同行业案例 · 组网/部署方案对照
拨打 130 4890 6506,获取选型建议与同行业案例
扫码添加服务微信
获取产品资料、行业案例与选型建议
添加时请备注:长文-协议选型
该考虑换 / 加一层:两端确实不同、且长期要互操作; 需要自描述与类型安全(复杂结构、多厂商); 需要跨地域、弱网上云(此时上行加 MQTT 一类是常规做法)。
别动:只是"觉得另一个更先进"; 只有少量测点、且已稳定运行;现场设备不支持新协议、而改造代价远超收益。
判断标准很朴素:这次改动要动设备/接线吗?会中断运行吗? 如果两个答案都是"是",先把收益算清楚再动。
不是二选一。 Modbus 在现场层(读设备),MQTT 在上云层(跨网络送数据)。 一套系统里同时用两者是常规做法:现场用 Modbus 读表,上行用 MQTT 汇总。
它能解决语义与互操作的问题,但有两个前提: 两端要支持它,并且有人把信息模型建对。 设备不支持时,中间要加一层 —— 它不是开关,是能力。
因为代价常常被低估:换设备、改接线、重新验收,还可能中断运行。 能通过加一层解决的事,通常不值得动现场。
网关本身是要供电、要配置、会坏的独立设备,引入新的故障点与时延; 它还有自己的缓存与补传口径(见《数据断了怎么办》那一篇)。 加它应当是有意的选择,不是顺手加的保险。
我们可以提供:现场协议与接入方式对照 · 测点语义建议 · 平台数据能力 · 选型建议
拨打 130 4890 6506,获取接入方式对照
扫码添加服务微信
获取现场协议对照与接入方式建议
添加时请备注:长文-协议选型