数据出向 · 北向通道 (MQTT / TCP / IEC-104)

集成商 / EPC / 平台 7 min

北向 vs 南向

  • 南向:设备 → EdgeOS(点表 / 协议适配,见 Protocol Pack 实战
  • 北向:EdgeOS → 客户云 / 调度厅 / 监控平台(本篇

EdgeOS 走「一采多发」:南向只采一次,北向可同时发到多个目的地。

三种北向通道

| 通道 | 适用场景 | 协议特征 | |---|---|---| | MQTT | 云平台、SCADA、企业 IoT 中台 | 主题模型、QoS 0/1/2、可订阅 | | TCP | 客户自研 ingest、私有协议 | 长连接、报文格式由客户定 | | IEC-104 | 电网调度厅、监控中心 | 标准电力规约、ASDU 地址需调度厅分配 |

通道配置四步骤

1. 创建通道

在 EdgeOS 控制台「通道管理」新增一个北向通道,按类型填参:

  • MQTT:broker 地址 / 端口 / TLS / 用户名密码 / 客户端 ID
  • TCP:目标 IP / 端口 / 心跳间隔 / 重连策略
  • IEC-104:本端 IP / 端口(默认 2404)/ ASDU 公共地址

2. 连通性自测

通道保存后立即做一次握手 / 连接测试:

  • MQTT:见到 CONNACK
  • TCP:三次握手通过
  • IEC-104:U-format 启动帧(STARTDT)应答正常

任何一步失败先排防火墙 / 证书 / 地址。

3. 绑定设备 + 转发规则

通道是「管子」,规则决定「谁的数据通过这根管子、什么频率、什么格式」。

egress_rule:
  channel: cloud-mqtt-prod
  devices: ["inv-001", "inv-002", "meter-*"]   # 支持通配
  fields: ["active_power", "daily_yield", "alarm_status"]
  cadence: 30s                                  # 上报频率
  topic_template: "site/{device}/telemetry"     # MQTT 主题模板
  payload: json                                  # json / cbor / 自定义
  • devices:哪些设备走这根管子
  • fields:点表里的哪些字段被发出去
  • cadence:上报频率(建议 ≥ 设备实际采集周期)
  • topic_template:MQTT 主题命名规则
  • IEC-104 规则用 ASDU + 信息体地址替代 topic

4. 验证 + 上线

  • MQTT:用 MQTT Explorer / mosquitto_sub 订阅看实时报文
  • TCP:在目标端打日志或抓包确认
  • IEC-104:调度厅侧抓总召唤报文,核对点表完整性

确认无误后规则置生效,分发到同模板的所有设备。

多目的地(一采多发)

同一台设备的同一个字段,可以同时上报到:

  • 客户主云(MQTT QoS 1,30s)
  • 备份云(MQTT QoS 0,5min)
  • 调度厅(IEC-104,触发上送 + 定时总召)

每条规则独立配置,相互不影响。这是 EdgeOS 「南向只采一次、北向多目的地」的核心价值。

修改 / 灰度

  • 切换 MQTT broker 地址不影响南向采集,但所有订阅方都得跟着改 topic 模板
  • 加新字段建议先在测试通道验证,再放进正式规则
  • 删字段 / 改字段名时务必跟下游协调,避免对端解析失败

常见坑

  • MQTT 主题命名漂移 → 跟平台约定一次后写进设备模板,避免一台一改
  • payload 多版本 → 字段名、单位、数据类型按约定固定,下游做版本兼容
  • IEC-104 ASDU 地址重复 → 调度厅会拒收,必须提前协调地址池
  • 重复上报 → 一台设备别同时挂两条同 topic 规则到同一个云
  • 网络抖动 → 漏数据 → 启用 EdgeOS 本地缓存 + 断点续传

跟 ZenovaOS 集成

EdgeOS 出向到自家监控平台 ZenovaOS 走 MQTT 模式,topic 模板由 ZenovaOS 侧提供。详细字段约定与平台账号联系销售。

商业模式整体见 /how-we-work

GET STARTED · 启动适配评估

需要 BSP / SDK 包?

留下硬件平台 + License Tier · 5 个工作日内回。