
不同协议的设备都接进来,对上层只有一个接口。
把 OPC UA、Modbus、BACnet/IP 和 MQTT 设备汇入一套点位模型,再通过统一 MQTT 接口读取与控制。
设备已经在跑、数据分散在几种协议后面、要汇到一处的现场。

写字楼空调机房、商场配电间。空调机组与电表的点位汇成一条数据链。

学校、医院的旧风机盘管系统。保留原控制器,旁边补装传感器,统一读一张表。

车间里 PLC 与仪表来自不同厂家。协议差异消化在网关上,上层只对一张点表。
不适用:要求 Sparkplug B 的系统,以及需要安全认证的控制场合。Modbus RTU 的生产写控制在现场联调完成前保持关闭。
现场既有控制器与仪表接入网关主机(reComputer R1000 / R1100 系列,或 reTerminal DM),由既有上层系统读取。

三样东西:现场已经装好的设备、一台承载点位注册表与双向流量的主机、以及取结果的那一方。主机就是一个 普通的 Docker 负载,因此控制器网段上已有的 Linux 机器和专门买的网关同样可用。不开启北向上送时, 没有任何数据离开现场。
机组侧不做替换,变化的只是协议差异在哪一层被消化。
| 现场侧 | 怎么接进来 | 你必须先有什么 |
|---|---|---|
| OPC UA 控制器 | 主机可访问的 OPC UA 服务地址 | 服务地址与凭据 |
| Modbus 设备 | 局域网上的 Modbus TCP,或经 USB 转 RS-485 的 Modbus RTU | 从站地址、寄存器映射、字节序与字序 |
| BACnet/IP 设备 | 所选网卡可达的 BACnet 网段 | 广播能到达该网卡;跨 BBMD 边界或 MS-TP 网段不在范围内 |
| MQTT 数据源 | 现有的 Broker | 明确的主题到点位映射 |
自动发现只产生候选。 用户逐个确认后才成为受管点位,发现不到的用手工填写。Modbus RTU 需要串口设备部署配置;适配器与目标控制器通过真实硬件联调之前,生产写控制保持关闭。
一台机器承载点位注册表、协议适配、内置 MQTT Broker、北向上送和管理界面。任意 x86-64 或 arm64 的 Docker 主机都可以。
| 要求 | |
|---|---|
| 运行时 | Docker Engine 20.10 及以上 |
| 磁盘 | 至少 4 GB 可用 |
| 端口 | 8280(控制台)与 1883(内置 Broker)空闲,或在部署前另选主机端口 |
| 网络 | 能访问各协议所在网络;远程 Linux 部署使用主机网络,BACnet/IP 广播发现才能进入物理网段 |
| 串口 | Modbus RTU 需要串口设备安装方式 |
| 注册表上限 | 2,000 个点位,其中最多 50 个可写,由代码强制 |
三种参考主机跑同一套服务:reComputer R1000 系列(RS-485、以太网)、reComputer R1100 系列(多出 RS-232、DI/DO、千兆以太网、CAN)、reTerminal DM 系列(多一块 10.1 寸触控屏,可在设备上配置)。
现场系统订阅数据网关主机上的内置 MQTT Broker,运维人员用浏览器打开控制台,两者都不需要外网。向外部或云端 Broker 的北向上送是可选项,并且落盘缓存,Broker 断开期间样本排队而不是丢弃。明文 MQTT 只允许遥测,开放远程控制前必须启用 TLS 并配置具有控制权限的身份。数据接口见下方「能拿到什么数据」。
装好之后,现场工程师在浏览器控制台里接入设备、看点位、查每一笔写入的回执。
以下是设计的能力边界,不是现场实测。
整条链路还没有在套餐主机(reComputer R1000 / R1100 系列、reTerminal DM)上实测,所以这里不给数字。开发硬件上对协议模拟器测得的刷新周期与断网补传结果见工程 Wiki。
2,000 点、其中 50 个可写的上限由代码强制,是设计上限,不是设备上限。按现场规模选型前请在选定主机上自行压测;Modbus RTU 生产写控制在适配器与控制器完成现场联调前保持关闭。
三个接口,全部在数据网关主机上。开哪几个,决定有没有数据离开现场。
| 端口 / 路径 | 内容 | 需要外网 |
|---|---|---|
HTTP 8280 / | 浏览器控制台——数据源管理、点位总表、命令回执、插件管理 | 否 |
MQTT 1883 missionpack/v1/{gateway}/points/{point_id} | 内置 Broker 的带版本点位遥测,以及同一套契约下的在线状态、命令与回执主题 | 否 |
MQTT 8883 missionpack/v1/{gateway}/telemetry | 向外部或云端 Broker 的 QoS 1 批量遥测,附每个数据源的健康与遗嘱状态、心跳;每条样本带数据源版本号与点位版本号 | Broker 在场外时需要 |
每条样本带两个版本号,消费方据此分清「值变了」还是「配置变了」。断网缓存补传落盘,需要部署指南中注明的镜像 tag。契约是原生 MissionPack v1,不是 Sparkplug B。
这套设计的可复用单元不是「工业网关」,而是「协议适配 → 经确认的点位注册表 → 一套带版本的 MQTT 契约 → 命令回执」这条链路。只有第一段与具体协议绑定;注册表之后的部分,新增协议时原样沿用。
| 层 | 迁移的代价 |
|---|---|
| 点位注册表、版本号、质量模型、2,000/50 上限 | 原样沿用 |
| 「发现给候选、用户确认」的工作流 | 原样沿用;新适配器只负责给出候选 |
| 内置 Broker、MissionPack v1 主题契约、在线状态与回执 | 原样沿用 |
| 北向上送与落盘断网缓存补传 | 原样沿用 |
| 浏览器控制台、数据源与点位管理 | 原样沿用 |
| 协议适配本身(传输、寻址、数据类型) | 每种协议写一份 |
| 该协议的写入语义(优先级、释放、读回) | 按协议单独定义 |
适用范围:通过网络或串口暴露可寻址数值、能按固定周期轮询、并能给出足以判断数据质量信息的数据源。
说说你的现场情况,硬件由我们来定;再接上数据、照步骤装。
现场怎么操作?这一问决定主机需不需要屏幕,不决定它能接什么。
| 套餐 | 用途 | 设备 | 数量 |
|---|---|---|---|
| 多协议数据中枢 | 数据中枢主机 | reComputer R1000 系列 / reComputer R1100 系列 / reTerminal DM 系列(二选一) | 1 |
只有一个套餐。硬件上要决定的只有「控制器网段上放哪台主机」,其余选择都在调试阶段做。
| 套餐 | 数据网关主机 | 装了什么 | 第一天就能控制吗 |
|---|---|---|---|
| 多协议数据中枢 | reComputer R1000 系列、reComputer R1100 系列或 reTerminal DM 系列——也可以是控制器网段上任意 x86-64 / arm64 Docker 主机 | 协议适配、2,000 点位注册表、1883 端口内置 MQTT Broker、北向上送、8280 端口浏览器控制台、可选预测插件 | 读可以,写要谨慎——先逐点确认权限与数据质量;Modbus RTU 生产写控制在真实硬件联调之前保持关闭 |
套餐里的边缘设备是可选项:本地 Docker 目标直接部署在你当前使用的机器上;控制器网段从工作站不可达时, 用经 SSH 的远程目标。Docker Desktop 的本机桥接部署可能需要手动填写 BACnet 地址,因为 BACnet/IP 的 广播发现不能可靠地穿过那层桥接网络。
难度评级 中等;到控制台跑起来的预估时间是 15 分钟。把第一台控制器接进来——发现、确认候选、 核对数据质量、再授予写权限——耗时更长,也是决定这套部署可不可信的那一步。
OPC UA、Modbus TCP 与 RTU、BACnet/IP,以及作为数据源的 MQTT。未实现 BACnet 的 COV 订阅、BBMD/外部设备注册和 MS-TP。Modbus RTU 需要串口设备部署配置。
不兼容。用的是原生 MissionPack v1 契约,Sparkplug 宿主应用需要一层转换。每条样本带数据源版本号与点位版本号,消费方据此分清「值变了」和「配置变了」。
北向上送落盘缓存,重连后补传,读数排队而不是丢弃。上层要收到全部补传数据时,请使用持久化 Broker 并开启持久订阅会话。这条链路需要部署指南中注明的镜像 tag。
注册表上限是 2,000 个点位,其中 50 个可写,由代码强制。这是设计上限,不是实测的设备上限。按现场规模选型之前,请在选定主机上自行压测。
不一定。控制器网段上已有的 Linux 机器是受支持的目标。参考主机的差别在板载接口:R1000 系列是 RS-485 与以太网,R1100 系列多出 RS-232、DI/DO 和 CAN,reTerminal DM 多一块触控屏。
读写都可以。写入先过权限与数据质量检查,并可通过生效值、设备读回和命令回执追溯。远程控制必须启用 TLS 并配置控制身份;Modbus RTU 生产写控制在真实硬件联调之前保持关闭。
绝大多数是网卡问题——BACnet/IP 发现基于广播,主机必须有一块位于 BACnet 网段上的网卡。Docker Desktop 的本机桥接部署可能不转发这类广播。此时手动填写 BACnet 地址即可。