您现在的位置是:首页 > PLC技术 > PLC技术

FX2N系列PLC的MPS、MRD、MPP堆栈指令

来源:艾特贸易2017-06-04

简介在讨论图 5-6 所示的梯形图时,直接用 AND 指令和多重输出会导致结果寄存器中的值被覆盖,致使输出结果错误。因此,在 AND 之前需要对结果寄存器的值进行保护。 PLC 给用户提供了一

    在讨论图5-6所示的梯形图时,直接用AND指令和多重输出会导致结果寄存器中的值被覆盖,致使输出结果错误。因此,在AND之前需要对结果寄存器的值进行保护。PLC给用户提供了一个11位的堆栈,用于先进后出的数据存储机制。MPSMRDMPP指令就是一组堆栈操作指令。    堆栈工作过程如图5 -14所示。数据流按ABC的顺序存入堆栈中。其进栈过程如下:    (1)A进栈,将A存入堆栈的顶端,如图5-14b所示。    (2)B进栈,A下压,进入第二层,将B存入顶端,如图5 -14c所示。    (3)C进栈,A下压,进入第三层,B下压进入第二层,将C存入顶端,如图5 -14d所示。    堆栈中数据出栈首先读取顶端数据,即最后入栈的数据。出栈过程如下:    (1)C出栈,B上移进入顶端,A上移进入第二层,如图5 - 14e所示。    (2)B出栈,A上移进入顶端,如图5-14f所示。    (3)A出栈,如图5-14g所示。    MPS指令用于数据入栈,MRD用于读堆栈数据但不出栈,MPP表示数据出栈。MPSMRDMPP指令的功能及操作过程见表5 -6    5-6    MPSMRDMPP指令的功能及操作过程
 MPS、MRD、MPP指令的功能及操作过程
    堆栈的进栈指令MPS和出栈指令MPP必须成对使用。如果MPS连续使用,最多不能超过11次。
堆栈运行过程
    5-14    堆栈运行过程    有了堆栈指令,图5-6所示的梯形图的运行过程可以十分清楚了,如图5-15所示。    程序运行过程:    (1)开辟一个结果寄存器,计算X10X11X12的与,并将结果存人结果寄存器。    (2)将结果寄存器的值复制一份放到堆栈中,见指令表第3步。    (3)结果寄存器中的值直接与X13X14的常闭触点相与,并将结果存入结果寄存器。    (4)将结果寄存器的值再复制一份放人堆栈中,见指令表第6步。注意:这是第二次数据进栈。   (5)结果寄存器的值和X15的上升沿相与后送给Y12    (6)将堆栈中栈顶的值出栈,送给Y11,见指令表的第10步。注意:此处的堆栈的值是后入栈的值,即第4步中的结果。    (7)再次将堆栈中的值出栈,并赋给Y0。注意:此处堆栈栈顶的值是第一入栈的值,即第(2)步中的值。    明白了堆栈的作用和用法,配合结果寄存器,就可以非常清晰地分析图5 -16至图5 18的运行过程。其中,图5-18所示的程序使用了4层堆栈,程序长度为18步。图5 -19所示的程序将图5 -18中的程序颠倒了一下输出次序,实现同样的功能,但仅仅使用了10步程序,这大大减小了程序存储空间,且提高了运行效率。
 堆栈指令的使用方法
    5-15    堆栈指令的使用方法
堆栈指令练习一
    5-16    堆栈指令练习一
堆栈指令练习二
    5-17    堆栈指令练习二
堆栈指令练习三
    5-18    堆栈指令练习三
 优化后的堆栈指令梯形图
    5-19    优化后的堆栈指令梯形图