多重输出指令又被称为堆栈指令,MPS、MRD、MPP为一组指令,主要用在当多重输出且逻辑条件不同的情况下,将连接点的结果存储起来,以便连接点后面的电路编程。图8-1所示为多重输出指令应用例。
三菱的FX2N系列PLC
中有11个存储运算结果的存储器,被称为栈存储器,如图8-2所示。
MPS:存储该指令处的运算结果(压入堆栈),使用一次MPS指令,该时刻的运算结果就推入栈的第一单元。在没有使用MPP指令之前,若再次使用MPS指令,当时的逻辑运算结果推入栈的第一单元,先推入的数据依次向栈的下一单元推移。图8-2中栈存储器中的①是第一次压栈的数据,②是第二次压栈的数据。
MRD:读出堆栈,读出由MPS指令最新存储的运算结果(栈存储器第一单元数据),栈内数据不发生变化。
MPP:弹出堆栈,读出并清除栈存储器第一单元数据,同时以下各存储单元数据向上单元推移。
多重输出指令的入栈出栈工作方式是:后进先出、先进后出。
MPS、MPP两指令必须成对出现,而MPS、MPP之间的MRD指令在只有两层输出时不用。而若输出的层数多,使用的次数就多。在利用梯形图编程的情况下,多重输出指令可以不用过分关注。而且也可以用其他指令取代多重输出指令。如图8-3所示的梯形图与图8-1的功能相同,也可将压入堆栈的运算结果用中间继电器记忆,将该继电器的动断触点与MPP、MRD指令后的其他条件相“与”。