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

S7-300/400的堆栈指令

来源:艾特贸易2017-09-21

简介S7 - 300 的 CPU 的两个累加器或 S7 - 400 的 CPU 的 4 个累加器组成一个堆栈,堆栈用来存放需要快速存取的数据,堆栈中的数据按“先入后出”的原则存取。堆栈指令是否执行与状态字无关

    S7 - 300CPU的两个累加器或S7 - 400CPU4个累加器组成一个堆栈,堆栈用来存放需要快速存取的数据,堆栈中的数据按“先入后出”的原则存取。堆栈指令是否执行与状态字无关,也不会影响状态字。

   PUSH(入栈)指令使堆栈中各层原有的数据依次向下移动一层,栈底(累加器4)的值被推出丢失(见图3-112),栈顶(累加器1)的值保持不变。POP(出栈)指令使堆栈中各层原有的数据向上移动一层(见图3-113),原来第2层(累加器2)中的数据成为堆栈新的栈顶值,原来在栈顶(累加器1)中的数据从栈内消失。

入栈指令执行前后

    3-112    入栈指令执行前后

出栈指令执行前后

    3-113    出栈指令执行前后

    进入累加器堆栈指令ENT将累加器3的内容复制到累加器4,累加器2的内容复制到累加器3。使用ENT指令可以用累加器34来保存中间结果。

    离开累加器堆栈指令LEAVE将累加器3的内容复制到累加器2,累加器4的内容复制到累加器3,累加器1和累加器4的内容保持不变。

    堆栈指令主要用来保存中间运算结果,因为可以将中间结果保存在累加器之外的存储区,实际上很少使用堆栈指令。