编程示例
在此编程示例中,将移动在生产班次期间为示例收集的数据值以作进一步处理。收集的数据放在 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 |
---|
审核编辑:彭菁
全部0条评论
快来发表一下你的评论吧 !