1) 电表地址
驱动要求:
address为 12 位数字字符串(例如123456789012)
协议层会将其转换为 6-byte BCD 地址(并处理低/高位顺序)。
实践建议
- 以现场“抄表软件/主站工具”显示的地址为准,并在第一次采集中验证能否正确响应。
2) DI
DI 是数据标识,用于指定“读哪个数据项”。
2.1 版本差异
- DL/T 645-1997:DI 长度为 2 字节
- DL/T 645-2007:DI 长度为 4 字节
字节序与填写建议
UI 要求 DI 为 hex 字符串:
- 2007:8 位 hex(示例
02010100)
建议以厂家手册/主站工具为准;如果读不到值:
- 先确认 DI 是否需要“低字节在前”(部分资料会用小端写法展示)
- 用抓包/主站工具对比请求帧中的 DI 字节序
3) decimals 与 scale 的关系
解码流程(高层):
- 协议 payload(BCD) → 按
decimals解码为浮点值v v→ 按 Point 的data_type强制转换(Int/Float/UInt)- 若设置了
scale,会进一步应用比例因子
建议
- 如果设备手册明确给出“BCD 小数位”,优先用
decimals表达 scale更适合表达“工程换算”(例如 0.01)
注意:core 的
min/max校验不会自动应用 scale;请确保你配置的 min/max 与对外写入值处于同一尺度。
