跳到正文
Learn-LAD
梯形图示例库/LAD 指令手册/SCATTER — 字拆成位数组

SCATTER — 字拆成位数组

把 Word 的位拆到 Bool 数组。

移动 S7-1200/1500 TIA V19 别名:位拆分 / SCATTER / Scatter

在 TIA 里试一下

选一个示例块,通过 TiaLink 导入当前 TIA 项目:预检、默认不覆盖、不自动保存。示例块不会自动运行;导入后请在 OB1 调用并接变量。

TiaLink 设置

默认 http://localhost:8080。也可以在本页地址后加 ?tialink= 临时指定。

TiaLink 启动时若设置了 --api-token,这里要填相同的值;只保存在本机浏览器 localStorage,不会上传。

一句话

SCATTER 把 Word 的位拆到 Bool 数组。

符号与引脚

分类:移动 不需要实例 模板值:dest_type, src_type
引脚方向说明
en流输入使能输入
IN输入字/字节输入
eno流输出使能输出
OUT输出Bool 数组

符号见下面的最小示例;引脚名与方向来自 lad-ir 指令目录,说明为本站补充。

最小示例

Enable=1 时 Bits = SCATTER(WordIn);WordIn 的最低位写到 Bits[0]。

SCATTER_Example:Network 1 — 字拆成位数组;Network 2 — 位 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] 再接一个指示灯,其余位同理。

SCATTER_UnpackWord:Network 1 — 拆状态字;Network 2 — 位 0 → 指示灯;Network 3 — 位 1 → 报警;Network 4 — 位 2 → 指示灯

常见坑

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

← 返回 LAD 指令手册