主题
合并位运算
合并位运算(类型名
ddc_bitmerge):把 16 个数字量按位合并成一个整数(非零=1),BIT0 在最低位。不用的位接数字常量 0。
这块是什么
- 编辑器里的名字:合并位运算
- 类型名:
ddc_bitmerge(写在程序文件 ddc.json 里的身份,AI 生成或改逻辑时按它对名,别猜中文名) - 分类:计算(数值加工)
- 形态:值块
- 状态:无状态
把 16 个数字量按位合并成一个整数(非零=1),BIT0 在最低位。不用的位接数字常量 0。
块面长什么样
图上这一颗就是刚把它从工具箱拖到画布时的样子:下拉框和输入框里是默认值,凹口(←形的那个孔)是要接值的地方,右边凸起是能被别人接的输出口。
块面参数(在块上直接填/选)
- 无 —— 这个块没有可填参数,行为只由连线决定
连线端子(从别的块接进来)
- 输出 Number
- 端子 B0、B1、B2、B3、B4、B5、B6、B7、B8、B9、B10、B11、B12、B13、B14、B15
下发到设备变成什么
- 生成 ddc.json 的操作(op):bitmerge
手册里其它相关位置
- 所属分类章节:2.4 本章导览
- 同类块一览:2.0 功能块速查总表
把 16 路开关量拼成一个整数
每个输入孔(B0~B15)接一路 0/1 信号,非零就算 1,输出一个合并后的整数: B0 在最低位,B15 在最高位。
典型用途:把 16 个设备状态拼成一个状态字,一次写进寄存器、一次上传云平台, 比 16 个值分别写 16 个寄存器省得多,也天然对齐 Modbus / BACnet 的点表习惯。
应用逻辑主循环
└─ 赋值 D500 ← 合并位运算
├─ B0 ← 取(只读) M0 (1 号机运行)
├─ B1 ← 取(只读) M1 (1 号机故障)
├─ B2 ← 取(只读) M2 (2 号机运行)
└─ …… 不用的孔留空即可- B0 是最低位:D500 = 1 表示只有 B0 那一路为真,= 4 表示只有 B2 为真
- 没接的孔按 0 处理
拆回去用取位
现场或上位机拿到这个整数后,用取位运算按 BIT0~BIT15 就能逐路还原出开关量, 两个块互为逆操作,配成一套"打包上传 / 拆包判断"的用法。