柏虎资源网

专注编程学习,Python、Java、C++ 教程、案例及资源

在STEP 7 (TIA Portal)中进行间接寻址,让你的程序更灵活

间接寻址是一种特殊的地址访问方式,其特点是程序在执行过程中才能确定实际的读写地址。在常规编程中,程序编写完成后,访问地址通常是固定的,而间接寻址则不同。它能够根据程序运行时的动态情况来确定具体的访问地址,从而让程序更加灵活。此外,这种灵活性还可以减少重复编程的工作量,提高编程效率。为了更好地实现间接寻址,并确保操作的安全性,我们可以在不同的存储区,采用index来访问相关的针对每个应用不同的变量。

示例一:访问不同存储区的变量

在下面的示例中,使用了三个访问变量,分别采用了不同的存储区,且每个都有单独的索引。

如表01所示:

创建一个功能,并声明输入变量为"Int"类型,图.01 展示了"AccessGroupInt"功能块的编程示例,通过index进行间接寻址并返回值。可以在程序中直接使用间接访问,例如使用指令#TempValue:= "AccessGroupInt"(#Index);。这一编程方法:

(1)可追踪,因为可以使用交叉索引。

(2)安全,因为仅使用了预定义的内存区。

(3)通用,因为既可以用于标准块也可以用于优化的数据区

示例二:从不同的优化的DB中读出或写入数据

三个数据块"Silo_Water", "Silo_Sugar" 和"Silo_Milk"都包含相同的变量声明:

DB 变量1:"MyBool" Bool类型

DB 变量2:"MyInt" Int类型

DB 变量3:"MyWord" Word类型


创建的PLC数据类型"SiloUDT"用于寻址包含不同数据类型的DB变量。

"AccessGroupSiloRead"功能块用于读出返回值,是由PLC 数据类型 "SiloUDT"定义的。基于此可以在一个FB中间接访问,例如如图.03所示的指令:

"Silo_Handling_OnlyReading"("AccessGroupSiloRead"(Index:= #Silo_Index));


创建环境

此FAQ中的截屏由 STEP 7 (TIA Portal) V13创建。


附加关键词

符号

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言