编程示例
在此编程示例中,将移动在生产班次期间为示例收集的数据值以作进一步处理。收集的数据放在 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 |
|---|
审核编辑:彭菁
-
编程
+关注
关注
90文章
3707浏览量
96756 -
移动数据
+关注
关注
0文章
42浏览量
11028 -
Array
+关注
关注
102文章
19浏览量
19482 -
程序代码
+关注
关注
4文章
43浏览量
15754
原文标题:西门子博途:移动数据的示例
文章出处:【微信号:gh_a8b121171b08,微信公众号:机器人及PLC自动化应用】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
Java中的Reactive编程示例
GPIB编程示例
ESP8266 RTOS SDK的编程示例手册资料免费下载

移动数据的编程示例






评论