MPS/MRD/MPP指令为多重输出指令,借用了堆栈的形式处理一些特殊程序,如表3-7所示。
表3-7 MPS/MRD/MPP指令助记符及功能
说明:
●MPS:进栈指令,将运算结果(或数据)压入栈存储器。
●MRD:读栈指令,将栈的第一层内容读出来。
●MPP:出栈指令,读栈同时将栈第一层的内容弹出来。
这组指令用于多重输出电路,无操作数。在编程时,有时需要将某些触点的中间结果存储起来,那么可以采用这3条指令。如图3-8所示,可以将X004之后的状态暂存起来。对于中间结果的存储,PLC中已提供了栈存储器,FX2N PLC提供了11个栈存储器,当使用MPS指令时,当前的运算结果压入栈的第一层,栈中原来的数据依次向下推一层;当使用MRD指令时,栈内的数据不发生移动,而是将栈的第一层内容读出来;当使用MPP指令时,是将栈第一层的数据读出,同时该数据就从栈中消失,因此,又称出栈或弹栈。编程时,MPS与MPP必须成对出现使用,且连续使用次数应该少于11次。
图3-8 堆栈示意图
下面介绍MPS、MRD、MPP多重输出指令的应用实例。
【实例3-6】1层堆栈电路实例
从图3-9可以看到,X000的状态通过MPS指令被暂存在堆栈,然后在X003和X005前面需要使用时,通过MRD将堆栈状态读出。最后在X007使用,堆栈内容不再做保存,采用了MPP指令。(www.daowen.com)
图3-9 简单电路(1层栈)
【实例3-7】2层栈多重输出电路
在图3-10中,可以看到X000、X001、X004之后的状态都需要暂存,而且X001、X004被嵌套在X000的内部,形成了2层栈电路,同样X001、X004暂存的状态也先被读出,最后弹出的是X000的状态。
图3-10 2层栈电路
【实例3-8】4层栈多重输出电路
如图3-11所示为一个4层栈的电路说明。电路功能虽然并不复杂,但是由于设计不合理,因此,出现了多层栈嵌套的现象,导致程序较长,影响执行效率。如果图3-11电路改成图3-12所示的梯形图,则编程就不必使用MPS/MPP指令了。
图3-11 4层栈电路
图3-12 4层栈优化电路
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。