首页 理论教育 堆栈操作指令:优化你的程序!

堆栈操作指令:优化你的程序!

时间:2023-06-26 理论教育 版权反馈
【摘要】:与堆栈有关的指令有4个。出栈指令:使栈中各层的数据向上移动一层,第2层的数据成为堆栈的新的栈顶值,原栈顶值被推出丢失。装载堆栈:LDSn,n=1~8。这些堆栈操作指令如图3-9所示,其中LPS和LPP必须成对使用,主要用在多重分支输出回路。图3-9 堆栈操作指令分析梯形图3-10a,并写出对应指令表。

堆栈操作指令:优化你的程序!

S7-200有一个9位的堆栈,堆栈按“先进后出,后进先出”的原则存取,即先入的数据放在栈下方,后进的数据放在栈上方,出栈时上方的数据(后进的数据)先出去,下方的数据(先进的数据)后出去。栈顶用来存储逻辑运算的结果,下面的8位用来存储中间结果。与堆栈有关的指令有4个。

入栈指令(LPS):复制栈顶的值并将其压入堆栈的下一层,栈中原来的数据依次向下一层推移,原栈底值被推出丢失。

读栈指令(LRD):将堆栈中第2层的数据复制到栈顶,2~9层的数据不变,但原栈顶值丢失。

出栈指令(LPP):使栈中各层的数据向上移动一层,第2层的数据成为堆栈的新的栈顶值,原栈顶值被推出丢失。

装载堆栈(LDS):LDSn,n=1~8。复制堆栈内第n层的值到栈顶,栈中原来的数据依次向下移一层,原栈顶值丢失。

这些堆栈操作指令如图3-9所示,其中LPS和LPP必须成对使用,主要用在多重分支输出回路

978-7-111-51420-6-Chapter03-9.jpg

图3-9 堆栈操作指令

【例3-3】分析梯形图3-10a,并写出对应指令表。(www.xing528.com)

分析:对于只有一个分支的梯形图,只能使用LPP,不能使用LRD指令。当I0.0=1且I0.1=1时,则Q0.0=1;当I0.0=1且I0.2=1时,则Q0.1=1。对应指令表如图3-10b所示。

978-7-111-51420-6-Chapter03-10.jpg

图3-10 例3-3图

【例3-4】分析梯形图3-11a的结构,并写出对应指令表。

分析:图3-11a梯形图的分支电路上又有分支存在,是个两层堆栈,栈指令LPS、LPP要求成对出现,即用几次进栈指令就需要应用几次出栈指令,指令表如图3-11b所示。

978-7-111-51420-6-Chapter03-11.jpg

图3-11 例3-4图

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈