注释:
1


S7-200 SMART有一个32位的逻辑堆栈,最上面的第一层称为栈顶,用来存储逻辑运 算的结果,下面的31位用来存储中间运算结果。逻辑堆栈中的数据一般按“先进后出”的原则访问,逻辑堆栈指令只有STL指令。

执行LD指令时,将指令指定的位地址中的二进制数据装载入栈顶。

执行A (与)指令时,指令指定的位地址中的二进制数和栈顶中的二进制数作“与”运算,运算结果存入栈顶。栈顶之外其他各层的值不变。每次逻辑运算只保留运算结果,栈顶原来的值丢失。

执行0 (或)指令时,指令指定的位地址中的二进制数和栈顶中的二进制数作“或”运算,运算结果存入栈顶。

执行常闭触点对应的LDN、AN和ON指令时,取出指令指定的位地址中的二进制数据后,先将它取反(0变为1, 1变为0),然后再作对应的装载、与、或操作。

触点的串联或并联指令只能用于单个触点的串联或并联,若想将多个触点并联后进行串联或将多个触点串联后进行并联则需要用逻辑堆栈指令。


或装载指令OLD (Or Load)指令又称为串联电路块并联指令,由助记符OLD表示。它对逻辑堆栈最上面两层中的二进制位进行“或”运算,运算结果存入栈顶。执行OLD指令后,逻辑堆栈的深度(即逻辑堆栈中保存的有效数据的个数)减1。

触点的串并联指令只能将单个触点与别的触点或电路串并联。要想将图3-29中的10.3 和10.4的触点组成的串联电路与它上面的电路并联,首先需要完成两个串联电路块内部的“与”逻辑运算(即触点的串联),这两个电路块用LD指令来表示电路块的起始触点。前两条指令执行完后,“与”运算的结果S0=I0.0・ 10.1存放在图3-30的逻辑堆栈的栈顶。执行完第3条指令时,将10.3的值压入栈顶,原来在栈顶的S0自动下移到逻辑堆栈的第二层,第二层的数据下移到第3层,依次下移,逻辑堆栈最下面一层的数据丢失。执行完成第4条指令时,“与”运算的结果Sl=I0.3・ 10.4保存在栈顶。

第5条OLD指令对逻辑堆栈第一层和第二层的“与”运算的结果作“或”运算(将两 个串联的电路块并联),并将运算结果S2=SO+S1存入逻辑堆栈的栈顶,第3〜32层中的数据依次向上移动一层。

OLD指令不需要地址,它相当于需要并联的两块电路右端的一段垂直连线。图3-30逻辑堆栈中的X表示不确定的值。


与装载指令ALD (And Load)指令又称为并联电路块串联指令,由助记符ALD表示。它对逻辑堆栈最上面两层中的二进制位进行“与”运算,运算结果存入栈顶。图3-29的语句表中OLD下面的两条指令将两个触点并联,执行指令“LD 10.2”时,将运算结果被压入栈顶,逻辑堆栈中原来的数据依次向下一层推移,逻辑堆栈最底层的值被推出丢失。与装载指令ALD对逻辑堆栈第一层和第二层的数据作“与”运算(将两个电路块串联),并将运算结果S4=S2・ S3存入逻辑堆栈的栈顶,第3〜32层中的数据依次向上移动一层。

将电路块串并联时,每增加一个用LD或LDN指令开始的电路块的运算结果,逻辑堆栈中将增加一个数据,堆栈深度加1,每执行一条OLD或ALD指令,堆栈深度减1。



知识点词条:逻辑堆栈指令





学校名称:

答  题  人:
逻辑堆栈指令
关键字:逻辑堆栈指令