今天跟大家聊聊SCL指令中的数组指令ARRAY[*]

在博途S7-1200 SCL指令中的数组指令主要包含两个指令:LOWER_BOUND(读取下限)和UPPER_BOUND(读取上限)两个指令,

8a00c78a16603e4b59d00da2fea74e76.png

当然了在进行数组寻址时不是只用这两个指令,而是在函数块或函数的块接口中,可声明 ARRAY[*] 数据类型的变量。这些局部变量可读取 ARRAY 限值。

1、指令的参数

c3d3b4db0ae05e02ff1aed9507e1b9db.png

以下示例说明了该指令的工作原理:

SCL

"Result" := LOWER_BOUND(ARR := #ARRAY_A,

DIM := 2);

该指令将从第二维度读取 ARRAY #ARRAY_A 的可变下限值。如果成功执行该指令,则结果将写入操作数“Result”中。

SCL

"Result" := UPPER_BOUND(ARR := #ARRAY_A,

DIM := 2);

该指令将从第二维度读取 ARRAY #ARRAY_A 的可变上限值。如果成功执行该指令,则结果将写入操作数“Result”中。

2、具体举例说明

功能要求:

把数据块src.src2数组里的数据循环传送到数据块dest.dest2。

A、首先建立一个PLC数据类型test,如下图所示

6bad74d6e2fa39e16256985b31cbae17.png

B、在建立的数据块中增加如下数组和变量

在数据块src中增加数组src2:

eb0a0cd90b3a6ec3a7a81d98b43eff17.png

在数据块dest中增加dest2:

c7007f5ea261340f3f7183c975b963df.png

C、建立一个FB,并在输入输出接口区设置如下:

3b951bc4c8519983939bb9458614c635.png

C、使用SCL编程如下

00d40a0fca816c167b58fae76ec20318.png
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐