
西门子1200 1500中如何通过变量索引实现数组访问
发布时间:2018/1/30 17:34:00在 S7-1200/1500 中如何通过变量索引实现数组访问?
推荐文档: 西门子工程师推荐本文档!
- 文献 
- 涉及产品 
- 希殿电气技术上海有限公司发布 康经理qq192061030 18621031383 
描述  对于SIMATIC S7-1200/S7-1500控制器的ARRAY数组元素的寻址,除了常量用户也可以指定一个整数类型的变量作为索引值。目前已允许长达32位的整数。在SIMATIC S7-S7-1200/1500中此种类型的寻址方式适用于所有的编程语言。 ......
描述
 对于SIMATIC S7-1200/S7-1500控制器的数组元素的寻址,除了常量用户也可以指定一个整数类型的变量作为索引值。目前已允许长达32位的整数。在SIMATIC S7-S7-1200/1500中此种类型的寻址方式适用于所有的编程语言。
下面的语法用于命名为"Quantities"的数组元素的索引寻址,"Quantities"数组在数据块"Data_DB"中进行声明:
- "Data_DB". Quantities ["i"] (一维数组) 
- "Data_DB". Quantities ["i"] (一维结构体数组) 
- "Data_DB". Quantities ["i", "j"] (多维数组) 
- "Data_DB". Quantities ["i", "j"].a (多维结构体数组) 
| 组成部分 | 描述 | 
| Data_DB | 用于存储数组变量的数据块的名称 | 
| Quantities | 数组类型的变量 | 
| i , j | PLC用于指针的整数形变量 | 
| a | 结构体其他的可变变量 | 
表 01
图.01 中展示了对位于数据块中的数组元素进行寻址的程序代码。在此把SIMATIC S7-1200/S7-1500和 S7-300/400做了个比较。在SIMATIC S7-300/400控制器中数组变量的起始地址必须已知,并且在使用地址寄存器时索引寻址也必须完成。
- S7-300/S7-400  
 图. 01
- S7-1200/S7-1500 in STL  
 图. 02
- S7-1200/S7-1500 in SCL  
 图. 03
- 希殿电气技术上海有限公司发布 康经理qq192061030 18621031383 
下面列出了SIMATIC S7-1200/S7-1500 控制器寻址的优势:
- 使用现有的数据块和数组变量的名称 
- 数组的基地址对于指针的生成不是必需的 
- 程序代码更为简单和易读 
- 编译器生成优化的程序代码 
为了实现的性能,可遵从下面的关于在博途中寻址和存储器命令的编程建议:
- 用作数组索引的变量应该声明为DINT, UDINT (32位) 
- 中间结果和数组的索引应该存储在本地临时数据区。