
MoveBlockU — 块移动(不可中断)
不可中断的块复制:复制过程中不会被高优先级 OB 打断。
在 TIA 里试一下
选一个示例块,通过 TiaLink 导入当前 TIA 项目:预检、默认不覆盖、不自动保存。示例块不会自动运行;导入后请在 OB1 调用并接变量。
一句话
MoveBlockU 不可中断的块复制:复制过程中不会被高优先级 OB 打断。
符号与引脚
分类:移动
不需要实例
模板值:无
| 引脚 | 方向 | 说明 |
|---|---|---|
en | 流输入 | 使能输入 |
in | 输入 | 源数组起始元素 |
count | 输入 | 复制元素个数(UInt) |
eno | 流输出 | 使能输出 |
out | 输出 | 目标数组起始元素 |
符号见下面的最小示例;引脚名与方向来自 lad-ir 指令目录,说明为本站补充。
最小示例
Enable=1、Count=4 时,把 Source[0..3] 复制到 Dest[0..3]。

图中 # 前缀表示块内局部变量;实际工程里也可以是全局标签或 DB 变量。
怎么工作
in是源数组起始元素(如Source[0]),out是目标数组起始元素(如Dest[0])。count是复制元素个数,必须是UInt(USInt/UDInt也可);用Int会被 TIA 拒绝。- 源/目标类型要一致;
count不要超过数组长度。 MoveBlockU复制期间不响应更高优先级 OB;复制大数组会拉长扫描时间。EN/ENO是使能;复制是数据传递,不改变源数组。
常用场景
常见坑
- count 用 Int:编译报类型不匹配;用
UInt。 - 越界:
count超过数组长度会写到数组外;先做范围检查。 - 源/目标重叠:重叠区域的复制结果依赖实现;尽量用不同数组。
- 扫描时间:大数组复制会占用扫描时间;
MoveBlockU更明显。 - 类型不一致:源/目标元素类型要一致。
