跳到正文
Learn-LAD
梯形图示例库/LAD 指令手册/MOVE_BLK_VARIANT — 变体块移动

MOVE_BLK_VARIANT — 变体块移动

用 Variant 复制数组片段:从 SRC_INDEX 开始复制 COUNT 个元素到 DEST_INDEX。

移动 S7-1200/1500 TIA V19 别名:变体块移动 / MOVE_BLK_VARIANT

在 TIA 里试一下

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

TiaLink 设置

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

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

一句话

MOVE_BLK_VARIANT 用 Variant 复制数组片段:从 SRC_INDEX 开始复制 COUNT 个元素到 DEST_INDEX。

符号与引脚

分类:移动 不需要实例 模板值:无
引脚方向说明
en流输入使能输入
SRC输入源数组(Variant)
COUNT输入复制元素个数(UDInt)
SRC_INDEX输入源起始下标(DInt)
DEST_INDEX输入目标起始下标(DInt)
eno流输出使能输出
DEST输出目标数组(Variant)
Ret_Val输出返回码

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

最小示例

Enable=1、Count=4、SrcIndex=0、DestIndex=0 时,把 Src[0..3] 复制到 Dest[0..3]。

MOVE_BLK_VARIANT_Example:Network 1 — 变体块移动

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

怎么工作

  • SRC/DEST 是 Variant 数组;COUNT 是 UDInt,下标 SRC_INDEX/DEST_INDEX 是 DInt。
  • 下标从 0 开始;源/目标元素类型要一致,否则运行时返回错误。
  • Ret_Val=0 表示成功,非 0 为错误码。
  • EN/ENO 是使能;没有模板值,类型由实参决定。

常用场景

1. 复制片段

同上面的最小示例。

2. 复制数组片段

从接收缓冲的某个位置开始,复制固定长度到工作数组。

MOVE_BLK_VARIANT_Copy:Network 1 — 复制数组片段

常见坑

  • 下标越界:先确认 index + count <= 数组长度。
  • 源/目标类型不一致:Variant 到运行时才检查;先保证元素类型相同。
  • 重叠区域:源/目标重叠时结果依赖实现;尽量用不同数组。
  • 返回码:检查 Ret_Val,不要假设一定成功。

← 返回 LAD 指令手册