移动数据的编程示例

描述

编程示例

在此编程示例中,将移动在生产班次期间为示例收集的数据值以作进一步处理。收集的数据放在 ARRAY 中。通过“MOVE_BLK_VARIANT:移动块”(Move block) 指令,可以动态或以类型安全方式移动整个 ARRAY 或个别 ARRAY 元素。可以为源和目标 ARRAY 自由选择 ARRAY 限值,这些限值不必匹配。但是,要移动的数据值的数据类型必须匹配。该指令在所有编程语言中都可用。

通过 VARIANT 数据类型,也可以使用已创建的程序代码并通过在块调用中指定不同的源和目标区域来移动另一个生产班次的数据。

步骤

使用 SCL 编程语言创建函数并将其命名为“FC_PartialArrayCopy”。
按如下方式声明块接口:
程序代码
按如下方式创建 SCL 程序代码:
可以找到以下程序代码作为模板。
程序代码
程序代码
创建 PLC 数据类型“UDT_MyStruct”:
程序代码
创建全局数据块“DB_WithArrays”:
程序代码
在组织块(例如 OB1)中调用“FC_PartialArrayCopy”函数,并使用 DB_WithArrays 数据块初始化参数。输入指定的常量:
程序代码
也可以使用第三个和第四个 ARRAY(数据类型为 REAL)来代替使用前两个 ARRAY (数据类型为 UDT_MyStruct)。
程序代码

结果

在程序周期中调用“FC_PartialArrayCopy”块后,会将从第四个元素开始的两个数据值立即从“DB_WithArrays”全局数据块的第一个 ARRAY 复制到该数据块的第二个 ARRAY 中。复制的数据值将插入到第二个 ARRAY 中(从第四个元素开始)。

用于复制的 SCL 程序代码:

IF IS_ARRAY(#SourceArray) AND TypeOfElements(#SourceArray) = TypeOfElements(#DestinationArray) THEN
#Error := MOVE_BLK_VARIANT(COUNT := #Count, SRC := #SourceArray, SRC_INDEX := #SourceIndex,
DEST => #DestinationArray, DEST_INDEX := #DestinationIndex);
END_IF;
#FC_PartialArrayCopy := #Error;
SCL

        审核编辑:彭菁

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分