Appearance
bit 容器拆状态字
bit 容器是 aiots 物模型里的一个数据类型, 专门处理"一个值装多个状态"的状态字——采集时自动按位拆成独立属性, 不用写一行解析代码。
📖 配置教程:物模型比特位类型教程
什么时候会用到这个功能
读到 Modbus 寄存器, 返回的是一个状态字。 接 Modbus 设备的人都见过: 从寄存器读上来一个整数, 手册最后一页写着它是状态字——第 1 位缺相、第 2 位过压、第 3 位过流。不按位拆开, 谁都不知道设备到底哪里报警。这时候用 bit 容器, 把位号配上去, 采集时自动拆开。
做配电项目, 几百台电表的告警状态字要逐位拆。 电表告警状态字十几个位: 电压告警、电流告警、断相……传统做法要么写代码做位移运算, 要么存原始值让运维翻手册对二进制。用 bit 容器, 每个位变成独立属性, 拆完还能直接给单个位配告警。
PLC 把设备状态压进一个字节上报。 西门子PLC、欧姆龙PLC 常把运行、故障、告警等标志位打包进一个寄存器, 位 0 运行、位 1 故障、位 2 告警。你要在平台上把这些标志位变成可查询、可告警的独立状态, bit 容器按位拆开即可。
一组开关量打包上报。 门磁、按钮、继电器这类 DI 开关量, 一组状态压在一个字里。bit 容器拆成每个开关的独立布尔状态, 界面上逐个显示。
能解决哪些问题
| 问题 | 解法 |
|---|---|
| 状态字不写代码没法解析 | 配位号, 采集时自动按位拆解 |
| 设备换型号、位定义跟着变 | 改配置, 不用改代码、不用发版 |
| 单个位要独立告警/入库/展示 | 每个位是独立属性, 直接配告警规则 |
| 运维看不懂二进制状态字 | 界面直接显示"电流告警: 是" |
