广东湘恒智能科技有限公司
主营产品: 广东省西门子授权代理商、西门子变频器、西门子PLC\西门子模块、西门子触摸屏、西门子伺服电机、西门子工控机、西门子集成系统、西门子低压、西门子控制单元、西门子CPU等
西门子博途:移动数据的示例
发布时间:2024-06-26

在此编程示例中,将移动在生产班次期间为示例收集的数据值以作进一步处理。收集的数据放在 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 程序代码:



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;



展开全文
商铺首页 拨打电话 QQ联系 发送询价