[西门子] 在 S7-1200/1500中如何通过变量索引实现数组访问?

[复制链接]
查看180 | 回复0 | 2024-10-9 09:39:40 | 显示全部楼层 |阅读模式
>


对于数组元素的索引地址,应该使用整数数据类型的变量作为索引。


快速找文档,小西来帮忙!自助解决技术问题点这里 智能小西

售后服务需求点这里 售后服务


描述

对于SIMATIC S7-1200/S7-1500控制器的数组元素的寻址,除了常量外,还可以指定一个整数类型的变量作为索引值,这里允许长达不超过32位的整数。

在SIMATIC S7-S7-1200/1500中此种类型的寻址方式适用于所有的编程语言。

在“源”和“目标”数据块中声明的名为“data”的数组元素的索引寻址使用以下语法:


  • "Data_DB". Quantities ["i"]  (一维数组)

  • "Data_DB". Quantities ["i"]  (一维结构体数组)

  • "Data_DB". Quantities ["i", "j"]  (多维数组)

  • "Data_DB". Quantities ["i", "j"].a (多维结构体数组)


表 1


下面的截图展示了对位于数据块中的数组元素进行寻址的程序代码。

本文把SIMATIC S7-1200/S7-1500和S7-300/400做了个比较。

在SIMATIC S7-300/400控制器中数组变量的起始地址必须已知,并且在使用地址寄存器时索引寻址也必须完成。

  • S7-300/S7-400

图.01


  • S7-1200/S7-1500 在 LAD 中

图.02


  • S7-1200/S7-1500 在 SCL 中

图.03


下面列出了SIMATIC S7-1200/S7-1500 控制器寻址的优势:

  • 使用现有的数据块和数组变量的名称

  • 数组的基地址对于指针的生成不是必需的

  • 程序代码更易于创建和阅读

  • 编译器生成优化的程序代码


为了实现最高的性能,在TIA Portal中可遵从下面的关于寻址和存储器命令的编程建议:

  • 用作数组索引的变量应该声明为DINT, UDINT (32位)

  • 中间结果和数组的索引应该存储在本地临时数据区。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则