
SCATTER — 字拆成位数组
把 Word 的位拆到 Bool 数组。
在 TIA 里试一下
选一个示例块,通过 TiaLink 导入当前 TIA 项目:预检、默认不覆盖、不自动保存。示例块不会自动运行;导入后请在 OB1 调用并接变量。
一句话
SCATTER 把 Word 的位拆到 Bool 数组。
符号与引脚
分类:移动
不需要实例
模板值:dest_type, src_type
| 引脚 | 方向 | 说明 |
|---|---|---|
en | 流输入 | 使能输入 |
IN | 输入 | 字/字节输入 |
eno | 流输出 | 使能输出 |
OUT | 输出 | Bool 数组 |
符号见下面的最小示例;引脚名与方向来自 lad-ir 指令目录,说明为本站补充。
最小示例
Enable=1 时 Bits = SCATTER(WordIn);WordIn 的最低位写到 Bits[0]。

图中 # 前缀表示块内局部变量;实际工程里也可以是全局标签或 DB 变量。
怎么工作
IN是Word输入,OUT是 Bool 数组。src_type=Word,dest_type=Bool;SCATTER 只接受 Word 输入。- 位序按 TIA 规则:最低位写到数组第 0 个元素,依次向高位。
- 数组比输入位数长时,多余元素按 TIA 规则处理(通常为 0)。
常用场景
1. 拆成位数组
同上面的最小示例。
2. 拆状态字
把一个状态字拆成 16 个 Bool,分别接指示灯/报警。示例画前 3 位:Bits[0] 接指示灯,[1] 接报警,[2] 再接一个指示灯,其余位同理。

常见坑
- 位序写反:最低位对应
Bits[0];接线前用已知值验证。 - 数组太短:至少要能容纳 16 个位。
- 源/目标类型不匹配:
src_type/dest_type要和变量一致。 - ENO 未接:后面的指令可能不执行;需要串联时检查 ENO。