三菱fx系列plc堆栈指令(MPS,MRD,MPP)的功能与用法
三菱fx系列plc共有基本逻辑指令20或27条、步进指令2条、功能指令100多条不同系列有所不同。
以FX2N为例,介绍其基本逻辑指令和步进指令及其应用。
FX2N的共有27条基本逻辑指令,其中包含了有些子系列plc的20条基本逻辑指令。
堆栈指令MPS/MRD/MPP
堆栈指令是FX系列中新增的基本指令,用于多重输出电路,为编程带来便利。
在FX系列PLC中有11个存储单元,它们专门用来存储程序运算的中间结果,被称为栈存储器。
1)MPS进栈指令
将运算结果送入栈存储器的第一段,同时将先前送入的数据依次移到栈的下一段。
2)MRD读栈指令
将栈存储器的第一段数据最后进栈的数据)读出且该数据继续保存在栈存储器的第一段,栈内的数据不发生移动。
3)MPP出栈指令
将栈存储器的第一段数据最后进栈的数据)读出且该数据从栈中消失,同时将栈中其它数据依次上移。
堆栈指令的使用如图1,其中图1a为一层栈,进栈后的信息可无限使用,最后一次使用MPP指令弹出信号;图1b为二层栈,它用了二个栈单元。
图1 堆栈指令的使用
a) 一层栈 b) 二层栈
堆栈指令的使用说明:
1)堆栈指令没有目标元件;
2)MPS和MPP必须配对使用;
3)由于栈存储单元只有11个,所以栈的层次最多11层。
二、三菱plc的堆栈MPS,MRD,MPP指令
三菱plc的MPS,MRD,MPP指令助记符与功能
三菱plc的MPS,MRD,MPP指令说明
在可编程序控制器中有11个存储器,用来存储运算的中间结果,被称为栈存储器。
使用一次 MPS 指令就将此时刻的运算结果送入栈存储器的第1段,再使用 MPS 指令,又将此时刻的运算结果送入栈存储器的第1段,而将原先存入第一段的数据移到第二段。以此类推。
使用 MPP指令,将最上段的数据读出,同时该数据从栈存储器中消失,下面的各段数据顺序向上移动。即所谓后进先出的原则。
MRD是读出最上段所存的最新数据的专用指令,栈存储器内的数据不发生移动。
这些指令都是不带软元件地址的独立指令。
编程
例1:一段栈
例2:二段栈
例3:四段栈
请对照以下梯形图与例3:
例3中需要要三重MPS指令编程,但是如果改成左面的电路,实现的效果一样。编程却很方便,不必采用MPS指令。
三、plc堆栈指令
1、在可编程序控制器中有11个存储器,用来存储运算的中间结果,被称为栈存储器,使用一次MPS指令就将此时刻的运算结果送入栈存储器的第1段,再使用MPS指令,又将此时刻的运算结果送入栈存储器的第1段,而将原先存入第一段的数据移到第二段。以此类推。
2、使用MPP指令,将最上段的数据读出,同时该数据从栈存储器中消失,下面的各段数据顺序向上移动。即所谓后进先出的原则。
3、MRD是读出最上段所存的最新数据的专用指令,栈存储器内的数据不发生移动。
4、这些指令都是不带软元件地址的独立指令。
四、plc中何时用堆栈指令?
先入先出,先入后出。
例如,信息先后进来,前面的信息处理完再处理后面的信息。用到先入先出,后面的信息在堆栈中等待处理。
这个在做T图的过程中体现不出来,这个是所有CPU运行必须的一个过程,就理解成缓存。
例如:
存的过程
-----4
-----3
-----2
-----1
读的过程
-----1
-----2
-----3
-----4
五、三菱Fx2n plc多重输出MPS、MRD、MPP指令
三菱的FX2N系列PLC 中有11个存储运算结果的存储器,被称为栈存储器,
多重输出指令又被称为堆栈指令,MPS、MRD、MPP为一组指令,主要用在当多重输出且逻辑条件不同的情况下,将连接点的结果存储起来,以便连接点后面的电路编程。
MRD:
读出堆栈,读出由MPS指令最新存储的运算结果栈存储器第一单元数据),栈内数据不发生变化。
MPP:
弹出堆栈,读出并清除栈存储器第一单元数据,同时以下各存储单元数据向上单元推移。
MPS:存储该指令处的运算结果压入堆栈),使用一次MPS指令,该时刻的运算结果就推入栈的第一单元。在没有使用MPP指令之前,若再次使用MPS指令,当时的逻辑运算结果推入栈的第一单元,先推入的数据依次向栈的下一单元推移。图8-2中栈存储器中的①是第一次压栈的数据,②是第二次压栈的数据。
多重输出指令的入栈出栈工作方式是:后进先出、先进后出。
MPS、MPP两指令必须成对出现,而MPS、MPP之间的MRD指令在只有两层输出时不用。而若输出的层数多,使用的次数就多。在利用梯形图编程的情况下,多重输出指令可以不用过分关注。而且也可以用其他指令取代多重输出指令。