发布时间:2019-05-18 来源:众智博远
通过可变下标在 TIA Portal 中实现 ARRAY 访问
在处理相同数据类型的组装数据时,使用 ARRAY 是明智的选择。 要对 ARRAY 元素进行寻址,可以将整数数据类型的常量或变量指定为下标。 在此,只能使用大长度为 32 位的整数。
使用变量进行间接寻址时,仅在程序运行时计算下标。 例如,在程序循环中,每次循环都使用不同的下标。 也可以访问 PLC 数据类型 (UDT) 中的 ARRAY。
这种方法具有以下优点:
无需通过地址寄存器或 ANY 指针等自组装指针进行寻址。
程序更加灵活。
可变下标可以在所有 STEP 7 编程语言中使用。
它使用数据块和 ARRAY 变量的现有名称(符号寻址)。 这提高了程序代码的可读性。
不必已知 ARRAY 的起始地址。
程序代码更容易创建,编译器将生成优化的程序代码。
STEP 7 V5.x 中的操作步骤
在 STEP 7 V5.x 中,用户须借助自组态的 POINTER 来使用地址寄存器,对 ARRAY 元素进行间接寻址。 因此,须将以下因素考虑在内:
未使用 ARRAY 的名称。 这会降低程序代码的可读性,从而需要添加注释。
须已知 ARRAY 的起始地址才能执行寻址。
SCL 编程语言已经支持使用可变下标的间接寻址。
STEP 7 V5.x 中的编程示例
以下 STL 示例需要“Data_classic”数据块。 要对“Quantities”ARRAY 元素进行寻址,须使用以下命令:
说明 | |
---|---|
OPN "Data_classic" | //“Data_classic”数据块被调用。 |
L #index | // 本地变量 #index 的值加载到累加器 1 中。 |
SLD 3 | // 将累加器 1 的第 0 位到第 31 位向左移动 3 位。 // 使用零填充目前为空的位。 |
LAR1 | // 将累加器 1 的内容加载到地址寄存器 1。 |
L DBW [AR1, P#10.0] | // 将地址为 #index ARRAY 元素加载到累加器 1。 // P#10.0 = 数组的起始地址 |