发布于 2008-06-26 16:01:43
0楼
L对操作系统来说是堆栈。
对用户来说仅仅是临时变量区。
每个程序块都有分配有自己的L区,都从0开始。
有相同优先级的OB块,以及在OB中嵌套的FB/FC公用一个本地数据区,多级嵌套可能导致L区溢出,因此L区中的数据,仅在所属的块执行时有效(一个扫描周期)。如果你在某扫描周期在某L地址写了一个数值,下个周期读取该地址,有可能数值已经改变。
本地数据区的大小与CPU型号相关。
所以L堆栈是个较复杂的问题。
如果你想用堆栈,可以考虑在DB块中建立数组,在Libraries > TI S7 Converting Blocks >下, 有FC87(LIFO)堆栈, FC85(FIFO)队列,以及别的表操作功能可用。