西门子博图功能指令(移动块)


移动块

在这里插入图片描述

移动块

功能描述

将一个存储区(源范围)的数据移动到另一个存储区(目标范围)中。

可以将一个完整的 ARRAY 或 ARRAY 的元素复制到另一个相同数据类型的 ARRAY 中。可以复制一个Array内的多个或单个元素,但复制的元素数量不得超过所选源范围或目标范围

可以将此功能块在FB块中使用,然后调用FB的Input接口。指定形参数据类型为Variant。作为此功能块的SRC参数。那么不管实参如何声明,参数 SRC_INDEX 和 DEST_INDEX 始终从下限“0”开始计数。这也是和块移动功能指令的区别之一。块移动不具备此功能。

执行条件

  1. . 使能输入 EN 的信号状态不能为“0”。

  2. 移动的数据量不得超出输入 IN 或输出 OUT 所能容纳的数据量。

接口参数

参数声明数据类型存储区说明
ENInputBOOLI、Q、M、D、L 或常量使能输入
ENOOutputBOOLI、Q、M、D、L使能输出
SRCInputVARIANT(指向一个 ARRAY 或一个 ARRAY 元素),ARRAY of <数据类型>L(可在块接口的“Input”、“InOut”和“Temp”部分进行声明。)待复制源区域中的源块
COUNTInputDINTI、Q、M、D、L 或常量已复制的元素数目 如果参数 SRC 或参数 DEST 中未指定任何 ARRAY,则将参数 COUNT 的值设置为“1”。
SRC_INDEXInputDINTI、Q、M、D、L 或常量源范围内容要复制到的目标范围中的首个元素
DEST_INDEXInputDINTI、Q、M、D、L 或常量定义了目标存储区的起点。 DEST_INDEX 参数将从 0 开始计算。如果参数 DEST 中指定了 ARRAY,则参数 DEST_INDEX 中的整数将指定待复制目标范围中的第一个元素。而与所声明的 ARRAY 限值无关。 如果参数 DEST 中未指定任何 ARRAY,则将参数 DEST_INDEX 赋值为“0”。
DESTOutputVARIANTL(可在块接口的“Input”、“InOut”和“Temp”部分进行声明。)源块中内容将复制到的目标区域。
RET_VALOutputINTI、Q、M、D、L错误信息: 如果在该指令执行期间出错,则在参数 RET_VAL 中输出一个错误代码。

注意事项

1.DEST 参数在表格中声明为Output类型,但在FB中调用时,需要声明为InOut。
在这里插入图片描述

在这里插入图片描述

  1. 参数 SRC 的数据类型不能为 BOOL 和 BOOL 型 ARRAY。不然无法移动数据块

在这里插入图片描述

程序举例

将数据块1的数据从第五个数据开始,一共移动10个数据到数据块2,数据块的索引值为20

1.创建DB块,用于数据移动和数据接受
在这里插入图片描述

2.创建FB块,并添加接口。然后在OB1中调用。

声明声明数据类型说明
IN_VariantInputVariantSRC形参
DESTInOutVariantDEST形参
Move_BLK_Variant_Ret_ValStaticINT功能块错误代码

在这里插入图片描述
在这里插入图片描述

程序演示

在这里插入图片描述
在这里插入图片描述

源程序

请使用博图V15查看

  • 4
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yue008

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值