您现在的位置是:首页 > PLC技术 > PLC技术

S7-300/400用户程序的局部数据堆栈(L堆栈)

来源:艾特贸易2017-06-05

简介各逻辑块都有它的局部变量 (L) 存储区,局部变量只在它被创建的块中有效,全局变量与局部变量如表 6-2 所示。 如果在逻辑块中只使用局部变量,不使用绝对地址或全局符号,不作任

    各逻辑块都有它的局部变量(L)存储区,局部变量只在它被创建的块中有效,全局变量与局部变量如表6-2所示。

    如果在逻辑块中只使用局部变量,不使用绝对地址或全局符号,不作任何改动,就可以将子程序移植到别的项目中去。局部数据堆栈用来储存块的局部数据区的临时变量、组织块的启动信息、块传递参数的信息和梯形图程序的中间结果。局部数据可以按位、字节、字和双字来存取,例如L0.0LB9LW4LD52

    各逻辑块均有自己的变量声明表,局部变量仅在它被创建的逻辑块中有效。临时变量仅在块被执行时使用,块执行完后将被别的数据覆盖。每个组织块用20B的临时局部数据来存储它的起动信息。

   CPU分配给当前正在处理的块的临时局部变量的存储器容量是有限的,这一存储区(即局部堆栈)的大小与CPU的型号有关。CPU给每一优先级分配了局部数据区,这样可以保证不同优先级的OB都有它们可以使用的局部数据空间。

    6-2    全局变量与局部变量

  全局变量(在整个程序中使用)

    局部变量(只能在一个块中使用)

PI/PQ、I/QM/T/C、共享数据块

  临时变量:对应的块执行完后被删

除,临时存储在L堆栈中,可以在逻辑

块中使用

  静态变量:对应的块执行完后永久保

留在背景数据块中,只能用于FB

SFB

    6-2中的OB1调用功能FC 2FC 2的执行被组织块OB81中断,图中给出了局部数据堆栈中局部数据的存放情况。

    在局部数据堆栈中,并非所有的优先级都需要相同数量的存储区。通过在STEP7中设置参数,可以给S7-400CPU的每一优先级指定不同大小的局部数据区。S7-300 CPU每一优先级的局部数据区的大小是固定的。

块堆栈与局部数据堆栈

    6-2    块堆栈与局部数据堆栈