局部数据堆栈
功能
创建组织块时可以声明临时变量 (TEMP),这些临时变量仅在块执行时可用,块执行完毕后将被覆盖。 每个组织块还需要 20 个字节的本地数据用作启动信息。
CPU 只为当前正在执行的块的本地数据临时变量提供有限的存储器空间。 此局部存储器又称为本地数据堆栈或 L 堆栈,其大小取决于具体的 CPU。 默认情况下,本地数据堆栈等量分配给各个**等级。 这意味着每个**等级在本地数据堆栈中拥有各自的区域。 这可确保高**级及其 OB 总是拥有自己的本地数据空间。
在**次访问本地数据堆栈之前,必须本地数据进行初始化。
本地数据堆栈存储以下数据:
块本地数据的临时变量
组织块的启动信息
有关参数传送的信息
梯形图程序中逻辑运算的中间结果
下图显示了本地数据到**等级的分配:
在此本地数据堆栈中,OB 1 首先被 OB 20 中断,而 OB 20 又被 OB 81 中断。
小心 OB 及相关块的所有临时变量 (TEMP) 都存储在本地数据堆栈中。 如果在执行块时使用大量嵌套层,则本地数据堆栈可能会溢出。如果**过程序的允许本地数据堆栈大小,则 S7-CPU 切换到 STOP 操作模式。 可通过“显示程序信息”(Show program information)功能来了解所需本地数据的概要情况。 请勿忘记同步错误 OB 的本地数据要求。 |
将本地数据分配给**等级
对于 S7-300: 每个**等级和每个块的本地数据较大数量受到 S7-300 的限制(请参见 CPU 的技术数据)。
对于 S7-400: 本地数据的总体较大数量受到限制(请参见 CPU 的技术数据)。 可以在 CPU 参数分配的框架内将可用的本地数据自由分发到各个**等级。 过程中的本地数据不得**出较大数量。
shtxjd.cn.b2b168.com/m/