三菱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指令在只有兩層輸出時不用。而若輸出的層數多,使用的次數就多。在利用梯形圖編程的情況下,多重輸出指令可以不用過分關注。而且也可以用其他指令取代多重輸出指令。