跳到正文
Learn-LAD
梯形图示例库/LAD 指令手册/FillBlockU — 填充块(不可中断)

FillBlockU — 填充块(不可中断)

不可中断的填充:填充过程中不会被高优先级 OB 打断。

移动 S7-1200/1500 TIA V19 别名:填充块(不可中断) / FillBlockU / FILLBLOCKU

在 TIA 里试一下

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

TiaLink 设置

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

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

一句话

FillBlockU 不可中断的填充:填充过程中不会被高优先级 OB 打断。

符号与引脚

分类:移动 不需要实例 模板值:无
引脚方向说明
en流输入使能输入
in输入填充值
count输入填充元素个数(UInt)
eno流输出使能输出
out输出目标数组起始元素

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

最小示例

Enable=1、Count=4、Value=7 时,把 Dest[0..3] 全部写成 7。

FillBlockU_Example:Network 1 — FillBlockU — 填充块(不可中断)

图中 # 前缀表示块内局部变量;实际工程里也可以是全局标签或 DB 变量。

怎么工作

  • in 是填充值,out 是目标数组起始元素(如 Dest[0]),count 是元素个数。
  • count 必须是 UInt(USInt/UDInt 也可);用 Int 会被 TIA 拒绝。
  • count 不要超过数组长度;填充值类型要和数组元素类型一致。
  • FillBlockU 填充期间不响应更高优先级 OB;填充大数组会拉长扫描时间。
  • EN/ENO 是使能;填充只写目标数组,不读数组旧值。

常用场景

1. 基本填充

同上面的最小示例。

2. 预置参数

把 Dest[0..Count-1] 全部写成同一个预置值。

FillBlockU_Preset:Network 1 — 预置参数

常见坑

  • count 用 Int:编译报类型不匹配;用 UInt。
  • 越界:count 超过数组长度会写到数组外;先做范围检查。
  • 类型不一致:填充值/数组元素类型要一致。
  • 扫描时间:大数组填充会占用扫描时间;FillBlockU 更明显。
  • 和 MoveBlock 混淆:填充是“一个值写多个元素”,复制是“多个元素搬到多个元素”。

← 返回 LAD 指令手册