1) 地址由什么组成
MC 驱动的地址解析见 @ng-gateway-southward/mc/src/protocol/frame/addr.rs,地址由三部分组成:
- 设备前缀:如
X、Y、M、D(具体支持集合由McDeviceType决定) - head 编号:设备号,按该设备的记数法解析(十进制或十六进制)
- 可选 bit 下标:形如
.2(用于位寻址,例如D20.2)
示例:
D100:D 设备,十进制 100X1A0:X 设备,十六进制 1A0D20.2:D 设备,head=20,bit=2
2) 十进制 vs 十六进制
不同设备前缀的编号记数法不同(由驱动内的 McNotation 决定):
- 有些设备用十进制(Dec)
- 有些设备用十六进制(Hex)
如果你发现 X1A0 之类地址在手册中以 hex 表示,请保持 hex 形式填写;驱动会按设备的约定解析。
3) bit 下标的语义
.bit 用于“一个 word 内的位寻址”,常见于:
- 需要访问某个寄存器的某一位标志(例如
D20.2)
注意:
- bit 下标只做基本语法校验(是否是数字)
- 语义约束(bit 是否允许、与 data_type 是否匹配)在更高层处理;建议 bit 点位使用
data_type=Boolean
4) 常见错误
- 地址为空或缺少 head:如
D、X - 设备前缀不支持:如输入了驱动未实现的设备码
- head/bit 不是数字或 hex 格式非法
