MPS、MRD、MPP 指令
|
指令助记符与功能
|
指令助记符、名称
|
功能
|
程序步
|
MPS 进栈
|
进栈
|
1
|
MRD 读栈
|
读栈
|
1
|
MPP 出栈
|
出栈
|
1
|
|
指令说明
|
|
-
在可编程序控制器中有11个存储器,用来存储运算的中间结果,被称为栈存储器。使用一次MPS 指令就将此时刻的运算结果送入栈存储器的第1段,再使用MPS 指令,又将此时刻的运算结果送入栈存储器的第1段,而将原先存入第一段的数据移到第二段。以此类推。
-
使用MPP指令,将最上段的数据读出,同时该数据从栈存储器中消失,下面的各段数据顺序向上移动。即所谓后进先出的原则。
-
MRD是读出最上段所存的最新数据的专用指令,栈存储器内的数据不发生移动。
-
这些指令都是不带软元件地址的独立指令。
|
编程
|
例1:一段栈
|
|
0 LD X004
1 MPS
2 AND X005
3 OUT Y002
4 MRD
5 AND X006
6 OUT Y003
7 MRD
8 OUT Y004
9 MPP
10 AND X007
11 OUT Y005
|
|
例2:二段栈
|
|
|
|
0 LD X000
1 MPS
2 AND X001
3 MPS
4 AND X002
5 OUT Y000
6 MPP
7 AND X003
8 OUT Y001
|
9 MPP
10 AND X004
11 MPS
12 AND X005
13 OUT Y002
14 MPP
15 AND X006
16 OUT Y003
|
例3:四段栈
|
|
|
|
0 LD X000
1 MPS
2 AND X001
3 MPS
4 AND X002
5 MPS
6 AND X003
7 MPS
8 AND X004
9 OUT Y000
|
10 MPP
11 OUT Y001
12 MPP
13 OUT Y002
14 MPP
15 OUT 003
16 MPP
17 OUT Y004
|
|
请对照一下面的梯形图与例3:
|
|
0 LD X000
1 OUT Y004
2 AND X001
3 OUT Y003
4 AND X002
5 OUT Y002
6 AND X003
7 OUT Y001
8 AND X004
9 OUT Y000
|
例3中需要要三重MPS指令编程,但是如果改成左面的电路,实现的效果一样。编程却很方便,不必采用MPS指令。
|
|