要寻址 ARRAY 元素,可以输入整型变量以及常量作为下标。使用变量时,将在运行时计算下标。例如,在程序循环中,每次循环都使用不同的下标。
说明 下标变量 [i] 在开始块调用时读取一次,无法在处理期间由被调用的块进行更改。 在调用块并将间接索引的 ARRAY 元素 ("".["i"]) 作为输入/输出参数 (InOut) 传输到块时,无法在处理块时更改下标变量的值。因此值必须写入到与读取值时相同的 ARRAY 元素中。 |
语法
下列语法用于 ARRAY 的间接索引:
"".["i"] // 一维数组
"".["i"] // STRUCT 的一维数组
"".["i"] // 多维数组
"".["i"] // STRUCT 的多维数组
该语法包含以下部分:
数据块 | ARRAY 所在数据块的名称 |
ARRAY | ARRAY 数据类型的变量 |
i, j | 用作指针的整型 PLC 变量 |
a | 结构的附加局部变量 |
示例
下面以 SCL 为例,举例说明了对 ARRAY 元素进行的间接索引。MOTOR 是一个包含三行的一维 ARRAY_of_INT。VALUES 是一个整型的 PLC 变量。
MOTOR[2] := VALUES; | (*直接寻址:将 VALUES 指定给 ARRAY MOTOR*) 的第二行 |
MOTOR["Tag_1"] := VALUES; | (*间接寻址:将 VALUES 分配给由 "Tag_1" 指定的 ARRAY MOTOR*) 的行 |
#MOTOR["Tag_2"+"Tag_3"] := #Values; | (*间接寻址:将 VALUES 分配给由表达式 "Tag_2"+"Tag_3" 指定的 ARRAY MOTOR*) 的行 |