首页 理论教育 MPS、MRD、MPP指令的解析与应用

MPS、MRD、MPP指令的解析与应用

时间:2023-06-26 理论教育 版权反馈
【摘要】:MPS指令用于将逻辑运算结果存入栈存储器;MRD指令用于读出栈存储器的结果;MPP指令用于取出栈存储器结果并清除,见表4-8。图4-43所示为执行MPS、MRD、MPP指令时,栈存储器内的数据移动方向。5)MPS、MPP指令可以重复使用,但是连续使用不能超过11次,且两者必须成对使用,缺一不可,MRD指令有时可以不用。7)最终输出电路以MPP指令代替MRD指令,读出存储并复位清零。

MPS、MRD、MPP指令的解析与应用

堆栈指令是FX系列PLC中新增的基本指令,用于多重输出电路,为编程带来了便利。在FX系列PLC中有11个存储单元,它们专门用来存储程序运算的中间结果,被称为栈存储器。MPS、MRD、MPP指令分别为进栈、读栈和出栈指令。MPS指令用于将逻辑运算结果存入栈存储器;MRD指令用于读出栈存储器的结果;MPP指令用于取出栈存储器结果并清除,见表4-8。

表4-8 MPS、MRD、MPP指令

978-7-111-40557-3-Chapter04-52.jpg

使用一次MPS就将此刻的运算结果送入栈存储器的第一个存储单元,而将原来第一个存储单元的数据移到堆栈的下一个存储单元,如图4-41所示。

MRD只用来读出堆栈存储器最上面一个存储单元的最新数据,此时栈存储器内的数据不移动。

使用MPP指令,最上面一个存储单元的数据被取出,这个数据就从栈存储器中被清除,同时各数据向上一段移动。

1.MPS指令

MPS指令称为“进栈指令”。使用一次MPS指令将此时刻的运算结果送入栈存储器的第1单元,再使用一次MPS指令,将此时刻的运算结果送入栈存储器的第1个存储单元,而原栈存储器的数据依次下移一存储单元。该指令没有操作元件。

2.MRD指令

MRD指令称为“读栈指令”,它将栈存储器的第1存储单元数据(最后进栈的数据)读出且该数据继续保存在栈存储器的第一存储单元,栈存储器内的数据不发生移动。该指令没有操作元件。

978-7-111-40557-3-Chapter04-53.jpg

图4-41 栈存储器示意图

3.MPP指令

MPP指令称为“出栈指令”,它将栈存储器第1单元数据读出,同时该数据消失,栈存储器内的数据依次上移一单元。该指令没有操作元件。

图4-42所示为MPS、MRD、MPP指令在梯形图中的表示。

图4-43所示为执行MPS、MRD、MPP指令时,栈存储器内的数据移动方向。

978-7-111-40557-3-Chapter04-54.jpg

图4-42 MPS、MRD、MPP指令在梯形图中的表示

978-7-111-40557-3-Chapter04-55.jpg

图4-43 栈存储器

【例4-15】(见图4-44):

解:这项指令是进行分支多重输出回路编程用的方便指令。利用MPS指令存储得出的运算中间结果,然后驱动Y002。用MRD指令将该存储读出,再驱动输出Y003,Y004,用MPP指令将存储数据出栈,再驱动Y005。

【例4-16】将只使用一层栈存储器的梯形图转换为指令表,梯形图如图4-45所示。

解:指令表如下:

LD X000

MPS

AND X001

978-7-111-40557-3-Chapter04-56.jpg

图4-44 梯形图及指令表(例4-15)

OUT Y000

MRD

AND X002

OUT Y001

MRD

AND X003

OUT Y002

MPP

AND X004

OUT Y003

【例4-17】 写出图4-46所示梯形图的指令表。

978-7-111-40557-3-Chapter04-57.jpg

图4-45 梯形图(例4-16)

978-7-111-40557-3-Chapter04-58.jpg

图4-46 梯形图(例4-17)

解:指令语句表如下:

0 LD X00011 ORB

1 MPS 12 ANB

2 LD X00113 OUT Y002

3 OR X00214 MPP

4 ANB 15 AND X005

5 OUT Y00116 OUT Y003

6 MRD 17 LD X010

7 LD X00318 OR X011

8 AND X00619 ANB

9 LD X00420 OUT Y004 10 AND X007

本例使用了一个存储单元,并用了ANB、ORB指令。

【例4-18】写出图4-47所示梯形图的指令表。(www.xing528.com)

解:所示梯形图的指令表如下:

0 LD X00010 AND M2

1 MPS 11 MPS

2 AND X00112 AND M3

3 MPS 13 OUT Y003

4 AND X00314 MPP

5 OUT Y00115 AND M4

6 MPP 16 OUT Y004

7 AND M1

8 OUT Y002

9 MPP

本例为两个存储单元编程实例。

【例4-19】 写出图4-48所示梯形图的指令表。

978-7-111-40557-3-Chapter04-59.jpg

图4-47 梯形图(例4-18)

978-7-111-40557-3-Chapter04-60.jpg

图4-48 梯形图(例4-19)

解:指令语句表如下:

0 LD M06 AND M3

1 MPS 7 MPS

2 AND M18 AND M4

3 MPS 9 OUT Y001

4 AND M210 MPP

5 AND M211 OUT Y002

12 MPP 15 OUT Y004

13 OUT Y00316 MPP

14 MPP 17 OUT Y005

本例为4个存储单元实例。

【例4-20】(见图4-49):

978-7-111-40557-3-Chapter04-61.jpg

图4-49 梯形图及指令表(例4-20)

例题解释:

1)当公共条件X000闭合时,X001闭合则Y000接通;X002接通则Y001接通;Y002接通;X003接通则Y003接通。

2)上述程序举例中可以用两种不同的指令形式(见图4-49)。

4.MPS、MRD、MPP指令使用说明

1)堆栈指令没有目标元件。

2)MPS和MPP指令必须配对使用。

3)由于栈存储单元只有11个,所以栈的层次最多为11层。

4)MPS、MRD、MPP指令之后如果有其他触点串联,要用AND或ANI指令;MPS、MRD、MPP指令之后若有触点组成的电路块串联,要用ANB指令;MPS、MRD、MPP指令之后若无触点串联,而直接与线圈相连,应该用OUT指令。

5)MPS、MPP指令可以重复使用,但是连续使用不能超过11次,且两者必须成对使用,缺一不可,MRD指令有时可以不用。

6)MRD指令可多次使用,但在打印、图形编程面板的画面显示等方面有24行限制。

7)最终输出电路以MPP指令代替MRD指令,读出存储并复位清零。

程序举例:

【例4-21】1层堆栈,如图4-50所示。

1层堆栈,ANB、ORB指令并用,如图4-51所示。

【例4-22】2层堆栈,如图4-52所示。

【例4-23】4层堆栈,如图4-53所示。

上面编程例中,若使用纵接输出的形式,就可以不采用MPS指令了。

978-7-111-40557-3-Chapter04-62.jpg

图4-50 梯形图及指令表(1层堆栈)

978-7-111-40557-3-Chapter04-63.jpg

图4-51 梯形图及指令表(ANB、ORB指令并用)

978-7-111-40557-3-Chapter04-64.jpg

图4-52 梯形图及指令表(例4-22)

978-7-111-40557-3-Chapter04-65.jpg

图4-53 梯形图及指令表(例4-23)

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈