堆栈是一组能够存储和取出数据的暂存单元,其特点是“后进先出”。每一次执行入栈操作,新值放入栈顶,栈底值丢失;每一次执行出栈操作,栈顶值弹出,栈底值补进随机数。S7-200 PLC使用了一个9层堆栈来处理所有逻辑操作。逻辑堆栈指令主要用来完成对触点的复杂连接,配合ALD、OLD指令使用。
逻辑堆栈指令只用于语句表(STL指令)编程。使用梯形图(LAD)、功能块图(FBD)编程时,梯形图(LAD)、功能图块(FBD)编辑器会自动插入相关的指令处理堆栈操作。
(1)指令
①逻辑入栈指令
·指令格式:LPS
·功能:又称为分支电路开始指令。从梯形图中的分支结构中可以形象地看出,它用于生成一条新的母线,其左侧为原来的主逻辑块,右侧为新的从逻辑块,因此可以直接编程。从堆栈使用上来讲,LPS指令的作用是把栈顶值复制后压入堆栈,栈底值丢失。
②逻辑读栈指令
·指令格式:LRD。
·功能:当新母线左侧为主逻辑块时,LPS开始右侧的第一个从逻辑块编程是第二个以后的从逻辑块编程。从堆栈使用来讲,LRD读取最近的LPS压入堆栈的内容,而堆栈本身不执行压入和弹出操作。
③逻辑出栈指令
·指令格式:LPP。
·功能:又称为分支电路结束指令。在梯形图中,LPP用于LPS产生的新母线右侧的最后一个从逻辑块编程,它在读取完离它最近的LPS压入堆栈内容的同时,复位该条新母线。从堆栈使用来讲,LPP把堆栈弹出一级,堆栈内容依次上移。
④装入堆栈指令。
·指令格式:LDS n。
n的范围是0~8的整数。
·功能:复制堆栈中的第n个值到栈顶,而栈底丢失,是逻辑推入栈指令的加强。该指令在编程中使用较少。
如图5-20所示为说明执行逻辑入栈、读栈、出栈和“LDS2”装入栈的原理示意图。(www.xing528.com)
图5-20 堆栈操作原理示意图
(2)逻辑堆栈指令应用
【例5-9】 如图5-21所示为一层堆栈电路。
图5-21 一层堆栈电路
【例5-10】 如图5-22所示为二层堆栈电路。
图5-22 二层堆栈电路
【例5-11】 如图5-23所示为四层堆栈电路。
图5-23 四层堆栈电路
堆栈指令使用说明如下。
①LPS和LPP指令必须成对使用。
②堆栈层数应少于9层。也就是说,LPS、IPP指令连续使用时应少于9次。
③LPS、LRD、LPP指令无操作数。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。