- {{item.name}}
在STEP 7 (TIA Portal)中如何安全地并且间接地寻址?
- 11
- 620774
- 1655
描述
采用间接寻址时,只有程序执行时,用于读或写数值的地址才得以确定。使用这种方法可以减少编程量并使得程序更灵活。通常来讲,程序创建后访问地址也就确定了。为了使得间接寻址更灵活和更安全,可以
- 使用"Array"数据类型用于组合相同的数据类型。
- 对于不同的存储区,采用index来访问相关的针对每个应用不同的变量。
在下面的例子中,对于三个变量的访问采用了不同的存储区。表01 显示了三个变量的访问列表,每个都有单独的索引。
| 索引 | 访问变量 | 存储区 |
| 1 | Input_Word_0 | EW 0 |
| 2 | "Processdata".Temperature | DB 1 |
| 3 | Output_Word_4 | AW 4表01 |
创建一个功能,并声明输入变量为"Int"类型。图.01 显示了对于"AccessGroupInt"功能块的编程示例,通过index进行间接寻址并返回值。可以在程序中直接使用间接访问,例如使用指令#TempValue:= "AccessGroupInt"(#Index);。这一编程方法
- 可追踪,因为可以使用交叉索引。
- 安全,因为仅使用了预定义的内存区。
- 通用,因为既可以用于标准块也可以用于优化的数据区 。

图. 01
在下面的示例中数据被从三个不同的优化的数据块中读出或写入。三个数据块"Silo_Water", "Silo_Sugar" 和"Silo_Milk"都包含相同的变量声明:
- DB 变量1:"MyBool" Bool类型
- DB 变量2:"MyInt" Int类型
- DB 变量3:"MyWord" Word类型

图. 02
创建的PLC数据类型"SiloUDT"用于寻址包含不同数据类型的DB变量。 "AccessGroupSiloRead"功能块用于读出返回值,是由PLC 数据类型 "SiloUDT"定义的。基于此可以在一个FB中间接访问,例如如图.03所示的指令:
- "Silo_Handling_OnlyReading"("AccessGroupSiloRead"(Index:= #Silo_Index));

图. 03
创建环境
此FAQ中的截屏由 STEP 7 (TIA Portal) V13创建。
附加关键词
符号
- 评论
- 收藏 收藏
- 点赞 点赞
- 纠错 纠错
关联文档
- STEP 7 Professional V11 使用SCL对S7-300/400间接寻址的变量表达式
- 在WinCC (TIA Portal) 中如何通过控制器实现画面的切换?
- 如何在 STEP 7 (TIA Portal) 中计算终端设备(例如泵)的运行时间?
- 在STEP 7 (TIA Portal)的硬件目录中无法找到S7-1500 CPU的固件版本时,如何加载项目数据?
- 西门子STL间接寻址常问问题集
- 从 STEP 7 V5.x ,V11 ..V16版本升级到 TIA Portal V17 需要什么许可证?
- 在哪里能获得当前的试用产品软件 TIA Portal STEP 7 V13, WinCC V13 和 Startdrive V13?
- 使用 STEP 7 (TIA Portal) V12 对 S7-1200 和 S7-1500 编程的推荐条目
- 在STEP 7 (TIA Portal)中哪些 IO 控制器和 IO 设备支持下列功能:IRT, 优先启动, MRP, MRPD, PROFIenergy, 共享设备, MSI/MSO, 智能设备, 等时同步模式,系统冗余和组态控制?
- 在 STEP 7 (TIA Portal) 哪可以找到S7-1200/S7-1500 和 ET200 模块的固件版本以及版本中数字的含义?
看过该文档的用户还看过哪些文档


西门子官方商城




{{item.nickName}}