您现在的位置是:首页 > PLC技术 > PLC技术
S7 300/400堆栈指令
来源:艾特贸易2017-06-05
简介S7-300 的 CPU 有两个累加器, S7-400 的 CPU 有 4 个累加器。 CPU 中的累加器组成一个堆栈,堆栈用来存放需要快速存取的数据,堆栈中的数据按“先入后出”的原则存取。堆栈指令是否执行
S7-300的CPU有两个累加器,S7-400的CPU有4个累加器。CPU中的累加器组成一个堆栈,堆栈用来存放需要快速存取的数据,堆栈中的数据按“先入后出”的原则存取。堆栈指令是否执行与状态字无关,也不会影响状态字。
对于有4个累加器的S7-400CPU来说,PUSH(入栈)指令使堆栈中各层原有的数据依次向下移动一层,栈底(累加器4)的值被推出丢失(见图3-64)。栈顶(累加器1)的值保持不变。POP(出栈)指令使堆栈中各层原有的数据向上移动一层(见图3-65),原来第2层(累加器2)中的数据成为堆栈新的栈顶值,原来在栈顶(累加器1)中的数据从栈内消失。
图3-64 入栈指令执行前后
图3-65 出栈指令执行前后
进入累加器堆栈指令ENT将累加器3的内容复制到累加器4,累加器2的内容复制到累加器3。使用ENT指令可以用累加器3、4来保存中间结果。
离开累加器堆栈指令LEAVE将累加器3的内容复制到累加器2,累加器4的内容复制到累加器3,累加器1和累加器4的内容保持不变。
堆栈指令主要用来保存中间运算结果,因为可以将中间结果保存在累加器之外的存储区,实际上很少使用堆栈指令。
点击排行
