今天跟大家聊聊SCL指令中的数组指令ARRAY[*]
在博途S7-1200 SCL指令中的数组指令主要包含两个指令:LOWER_BOUND(读取下限)和UPPER_BOUND(读取上限)两个指令,
当然了在进行数组寻址时不是只用这两个指令,而是在函数块或函数的块接口中,可声明 ARRAY[*] 数据类型的变量。这些局部变量可读取 ARRAY 限值。
1、指令的参数
以下示例说明了该指令的工作原理:
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,如下图所示
B、在建立的数据块中增加如下数组和变量
在数据块src中增加数组src2:
在数据块dest中增加dest2:
C、建立一个FB,并在输入输出接口区设置如下:
C、使用SCL编程如下