×
Siemens Industry Online Support
Siemens AG
文档类型 常问问题 文档编号 97552147, 文档发布日期 2014年8月5日
(10)
评估

在STEP 7 (TIA Portal)中如何安全地并且间接地寻址?

推荐文档: 西门子工程师推荐本文档!
  • 文档
  • 涉及产品

描述
 采用间接寻址时,只有程序执行时,用于读或写数值的地址才得以确定。使用这种方法可以减少编程量并使得程序更灵活。通常来讲,程序创建后访问地址也就确定了。为了使得间接寻址更灵活和更安全,可以

  •  使用"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创建。

附加关键词
符号

安全性信息
为了保护技术基础设施、系统、机器和网络免受网络威胁,有必要实施并持续维护一个全面、最先进的IT安全方案。西门子的产品和解决方案构成了这一方案的一个要素。有关网络安全的更多信息,请访问
https://www.siemens.com/cybersecurity#Ouraspiration.
评估文档
无评估
请求和反馈
您想要做什么?
注意:反馈总是与当前的条目/产品相关。您的消息将被转发给我们在线支持团队的技术编辑们。如果我们需要就您的反馈提供答复,您将在几天内收到答复。如果没有其它问题,您将不会收到答复。