发布日期:2022-04-26 点击率:2565 品牌:组态王_Kingview
在梯形图中没有对应的堆栈指令格式,但在将LAD指令转化为STL指令的过程中,编译系统软件会自动为LAD指令加上相应的堆栈指令。当使用语句表时,必须自己操作管理逻辑堆栈。堆栈操作从本质上较好地解决了逻辑位值的与、或运算问题,即控制电路的串、并联问题。
(1)栈装载或(OLD,Or Load)指令
栈装载或指令对堆栈中第1层和第2层的值进行逻辑或操作,结果放入栈顶。执行完栈装载或指令后,堆栈深度减1。
栈装载或指令又称为逻辑块“或”指令,用于串联电路块的并联连接,无操作数。
STL指令格式为:OLD。
触点的串并联指令只能将单个触点与别的触点电路串并联。要想将图6-6中由13.2和T16的触点组成的串联电路与它上面的电路并联,首先需要完成两个串联电路块内部的“与”逻辑运算(即触点的串联),这两个电路块都是用LD或LDN指令表示电路块的起始触点前两条指令执行完后,“与”运算的结果SO= 11.4*10.3存放在栈顶,第3、4条指令执行完后,“与”运算的结果S1=13.2*T16压人堆顶,原来在栈顶的SO被推到堆栈的第2层,第2层的数据被推到第3层……栈底的数据丢失。OLD指令用逻辑“或”操作对堆栈第1层和第2层的数据相“或”,即将两个串联电路块并联,并将运算结果S2=SO+S1存入堆栈的顶部,第3层~第9层中的数据依次向上移动1位。
OLD指令不需要地址,它相当于需并联的两块电路右端的一段垂直连线。在图6-7中,iVO到iV6表示堆栈的初值,x表示不确定的值,SO到S4表示堆栈中存储的计算值。
(2)栈装载与(ALD,And Load)指令
栈装载与指令对堆栈中第1层和第2层的值进行逻辑与操作,结果放入栈顶。执行完栈装载与指令后,堆栈深度减1。
栈装载与指令又称为逻辑块“与”指令,用于并联电路块的串联连接,无操作数。
STL指令格式为:ALD。
图6-6中OLD后面的两条指令将两个触点并联,运算结果S3:C24 +11.2压入栈顶,栈中原来的数据依次向下一层推移,栈底值被推出丢失。ALD指令用逻辑“与”操作对堆栈第1层和第2层的数据相“与”,即将两个电路块串联,并将运算结果S4=S2*S3存人堆栈的顶部,第3层一第9层中的数据依次向上移动1位。
将电路块串并联时,每增加一个用LD或LDN指令开始的电路块的运算结果,堆栈中增加一个数据,堆栈深度加1,每执行一条ALD或OLD指令,堆栈深度减1。
梯形图和功能块图编辑器自动地插入堆栈操作所需要的指令。在语句表中,必须有编程人员加入这些堆栈处理指令。
ALD与OLD指令的堆栈操作如图6-7所示。
(3)逻辑入栈(LPS,Logic Push)指令(分支或主控指令)
复制栈顶的值并将其压入堆栈的下一层,栈中原来的数据依次向下一层推移,栈底值被推出丢失。在梯形图中的分支结构中,用于生成一条新的母线,左侧为主控逻辑块时,第一个完整的从逻辑行从此处开始。使用IPS指令时,本指令为分支的开始,以后必须有分支结束指令LPP,即LPS与LPP指令必须成对出现。
STL指令格式为:J_PS。
(4)逻辑读栈(LRD.Logic Read)指令
将堆栈中第2层的数据复制到栈顶,第2层~第9层的数据不变,但原栈顶值消失。在梯形图中的分支结构中,当左侧为主控逻辑块时,开始第二个和后边更多的从逻辑块。
STL指令格式为:LRD。
(5)逻辑出栈(J-PP,Logic Pop)指令(分支结束或主控复位指令)
使栈中各层的数据向上移动一层,第2层的数据成为堆栈新的栈顶值,栈顶原来的数据从栈内消失。在梯形图中的分支结构中,用于将LPS指令生成一条新的母线进行恢复。使用LPP指令时,必须出现在LPS的后面,与LPS成对出现。
STL指令格式为:LPP。
(6)装载堆栈(LDS n,Load Stack)指令
复制堆栈内第n层的值到栈顶,栈中原来的数据依次向下一层推移,栈底值被推出丢失。一般很少使用这条指令。
STL指令格式为:LDS N。
图6-8中的例子说明了(3)~(6)堆栈指令的使用过程。
逻辑堆栈指令的应用示例如图6-9所示。
下一篇: PLC、DCS、FCS三大控
上一篇: MATLAB和Simulink在航