Skip to content

合并位运算 ​

合并位运算(类型名 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

手册里其它相关位置 ​

把 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 就能逐路还原出开关量, 两个块互为逆操作,配成一套"打包上传 / 拆包判断"的用法。

LPPLC 工业物联网云平台 · 软硬件与云平台全栈自研