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