什么是 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
protocol选modbus-rtu/modbus-tcp/iec-104link字段按协议不同:RTU 给串口参数 · TCP 给 IP/端口 · IEC-104 给 ASDUregisters/ 点表:地址 + 类型 + 缩放 + 单位
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。