Protocol Pack · 南向接入实战(RS-485 / Modbus-TCP / IEC-104)

集成商工程师 / 协议适配人员 8 min

什么是 Protocol Pack

Protocol Pack 是声明式的协议 + 点表组合,描述「一个设备讲什么协议、寄存器在哪、字段怎么解析」。一份 Pack 加载到 EdgeOS Runtime 即可让设备进入采集网。

Pack 的好处:

  • 跟 Runtime 解耦,不重启系统即可添加 / 替换新设备
  • 声明式 YAML,比写驱动代码门槛低
  • 走 OTA 通道下发,跟版本绑定,便于回滚

南向接入的三种典型形态

EdgeOS 主要的设备接入方式都通过 Protocol Pack 描述:

| 南向 | 物理层 | Pack 配置要点 | |---|---|---| | Modbus-RTU | RS-485 串口 | 串口参数(波特率 / 数据位 / 校验 / 停止位)+ 从站地址 + 寄存器表 | | Modbus-TCP | 以太网 | IP / 端口 / 从站 ID + 寄存器表 | | IEC-104 | 以太网 | ASDU 地址 + 信息体地址 + 类型标识表 |

配置四步骤

不管哪种形态,授权与上线流程都是四步:

1. 物理层连通

  • RS-485:检查接线(A/B 极性、终端电阻)、电源、屏蔽接地
  • Modbus-TCP / IEC-104:网络连通性测试 + 防火墙放行
  • 接通后用 EdgeOS 内置的调试工具确认底层报文能往返

2. Pack YAML 写作

最小可用结构:

device:
  brand: vendor-a
  model: inverter-50k
  protocol: modbus-rtu       # 或 modbus-tcp / iec-104
  link:
    baud: 9600                # rtu 串口参数
    parity: none
    stopbits: 1
    slave_id: 1
  registers:
    active_power:
      addr: 32080
      type: int32
      scale: 0.001
      unit: kW
    daily_yield:
      addr: 32114
      type: uint32
      scale: 0.01
      unit: kWh
  • protocolmodbus-rtu / modbus-tcp / iec-104
  • link 字段按协议不同:RTU 给串口参数 · TCP 给 IP/端口 · IEC-104 给 ASDU
  • registers / 点表:地址 + 类型 + 缩放 + 单位

3. 加载 + 设备发现

把 Pack 文件加载到 EdgeOS(OTA 推送或本地 Web 控制台)。Runtime 启动南向轮询,把发现的设备注册进设备表。

  • 失败时第一时间查通讯调试日志:80% 问题在线缆 / 地址 / 串口参数
  • IEC-104 启动慢属正常(链路建链 + 总召唤)

4. 验证 + 上线

  • 用 Web 控制台对照设备实际值核对采集值
  • 通讯诊断里看丢包率、响应延迟
  • 全部正常 → Pack 推入正式仓库,分发到同型号设备

多设备共享一个 Pack

同型号设备共用一份 Pack,每台设备只需在设备配置里指定从站地址 / IP 即可。新增设备零适配成本。

常见坑

  • 串口参数错 → 80% 故障来源。先用厂家手册对参数,再上 EdgeOS
  • 类型缺失符号位 → int 当 uint 解,遇到负数会显示天文数字
  • scale 错配 → 数值显示偏 1000 倍是最经典症状
  • 大端 / 小端 → Modbus 默认大端,部分品牌反字节序,YAML 给个 byteorder 选项
  • IEC-104 链路超时 → 优先检查 ASDU 地址跟监控厅一致性

北向出向另写一篇

Protocol Pack 只管「设备→ EdgeOS」南向。EdgeOS 把数据再发到云平台 / 调度厅是北向出向,见 数据出向 · 北向通道

实战长文 Modbus 转 IEC 104 见 /blog/modbus-to-iec104

GET STARTED · 启动适配评估

需要 BSP / SDK 包?

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