三菱fx系列plc堆棧指令(MPS,MRD,MPP)的功能與用法
三菱fx系列plc共有基本邏輯指令20或27條、步進(jìn)指令2條、功能指令100多條不同系列有所不同。
以FX2N為例,介紹其基本邏輯指令和步進(jìn)指令及其應(yīng)用。
FX2N的共有27條基本邏輯指令,其中包含了有些子系列plc的20條基本邏輯指令。
堆棧指令MPS/MRD/MPP
堆棧指令是FX系列中新增的基本指令,用于多重輸出電路,為編程帶來(lái)便利。
在FX系列PLC中有11個(gè)存儲(chǔ)單元,它們專(zhuān)門(mén)用來(lái)存儲(chǔ)程序運(yùn)算的中間結(jié)果,被稱(chēng)為棧存儲(chǔ)器。
1)MPS進(jìn)棧指令
將運(yùn)算結(jié)果送入棧存儲(chǔ)器的第一段,同時(shí)將先前送入的數(shù)據(jù)依次移到棧的下一段。
2)MRD讀棧指令
將棧存儲(chǔ)器的第一段數(shù)據(jù)最后進(jìn)棧的數(shù)據(jù))讀出且該數(shù)據(jù)繼續(xù)保存在棧存儲(chǔ)器的第一段,棧內(nèi)的數(shù)據(jù)不發(fā)生移動(dòng)。
3)MPP出棧指令
將棧存儲(chǔ)器的第一段數(shù)據(jù)最后進(jìn)棧的數(shù)據(jù))讀出且該數(shù)據(jù)從棧中消失,同時(shí)將棧中其它數(shù)據(jù)依次上移。
堆棧指令的使用如圖1,其中圖1a為一層棧,進(jìn)棧后的信息可無(wú)限使用,最后一次使用MPP指令彈出信號(hào);圖1b為二層棧,它用了二個(gè)棧單元。
圖1 堆棧指令的使用
a) 一層棧 b) 二層棧
堆棧指令的使用說(shuō)明:
1)堆棧指令沒(méi)有目標(biāo)元件;
2)MPS和MPP必須配對(duì)使用;
3)由于棧存儲(chǔ)單元只有11個(gè),所以棧的層次最多11層。
二、三菱plc的堆棧MPS,MRD,MPP指令
三菱plc的MPS,MRD,MPP指令助記符與功能
三菱plc的MPS,MRD,MPP指令說(shuō)明
在可編程序控制器中有11個(gè)存儲(chǔ)器,用來(lái)存儲(chǔ)運(yùn)算的中間結(jié)果,被稱(chēng)為棧存儲(chǔ)器。
使用一次 MPS 指令就將此時(shí)刻的運(yùn)算結(jié)果送入棧存儲(chǔ)器的第1段,再使用 MPS 指令,又將此時(shí)刻的運(yùn)算結(jié)果送入棧存儲(chǔ)器的第1段,而將原先存入第一段的數(shù)據(jù)移到第二段。以此類(lèi)推。
使用 MPP指令,將最上段的數(shù)據(jù)讀出,同時(shí)該數(shù)據(jù)從棧存儲(chǔ)器中消失,下面的各段數(shù)據(jù)順序向上移動(dòng)。即所謂后進(jìn)先出的原則。
MRD是讀出最上段所存的最新數(shù)據(jù)的專(zhuān)用指令,棧存儲(chǔ)器內(nèi)的數(shù)據(jù)不發(fā)生移動(dòng)。
這些指令都是不帶軟元件地址的獨(dú)立指令。
編程
例1:一段棧
例2:二段棧
例3:四段棧
請(qǐng)對(duì)照以下梯形圖與例3:
例3中需要要三重MPS指令編程,但是如果改成左面的電路,實(shí)現(xiàn)的效果一樣。編程卻很方便,不必采用MPS指令。
三、plc堆棧指令
1、在可編程序控制器中有11個(gè)存儲(chǔ)器,用來(lái)存儲(chǔ)運(yùn)算的中間結(jié)果,被稱(chēng)為棧存儲(chǔ)器,使用一次MPS指令就將此時(shí)刻的運(yùn)算結(jié)果送入棧存儲(chǔ)器的第1段,再使用MPS指令,又將此時(shí)刻的運(yùn)算結(jié)果送入棧存儲(chǔ)器的第1段,而將原先存入第一段的數(shù)據(jù)移到第二段。以此類(lèi)推。
2、使用MPP指令,將最上段的數(shù)據(jù)讀出,同時(shí)該數(shù)據(jù)從棧存儲(chǔ)器中消失,下面的各段數(shù)據(jù)順序向上移動(dòng)。即所謂后進(jìn)先出的原則。
3、MRD是讀出最上段所存的最新數(shù)據(jù)的專(zhuān)用指令,棧存儲(chǔ)器內(nèi)的數(shù)據(jù)不發(fā)生移動(dòng)。
4、這些指令都是不帶軟元件地址的獨(dú)立指令。
四、plc中何時(shí)用堆棧指令?
先入先出,先入后出。
例如,信息先后進(jìn)來(lái),前面的信息處理完再處理后面的信息。用到先入先出,后面的信息在堆棧中等待處理。
這個(gè)在做T圖的過(guò)程中體現(xiàn)不出來(lái),這個(gè)是所有CPU運(yùn)行必須的一個(gè)過(guò)程,就理解成緩存。
例如:
存的過(guò)程
-----4
-----3
-----2
-----1
讀的過(guò)程
-----1
-----2
-----3
-----4
五、三菱Fx2n plc多重輸出MPS、MRD、MPP指令
三菱的FX2N系列PLC 中有11個(gè)存儲(chǔ)運(yùn)算結(jié)果的存儲(chǔ)器,被稱(chēng)為棧存儲(chǔ)器,
多重輸出指令又被稱(chēng)為堆棧指令,MPS、MRD、MPP為一組指令,主要用在當(dāng)多重輸出且邏輯條件不同的情況下,將連接點(diǎn)的結(jié)果存儲(chǔ)起來(lái),以便連接點(diǎn)后面的電路編程。
MRD:
讀出堆棧,讀出由MPS指令最新存儲(chǔ)的運(yùn)算結(jié)果棧存儲(chǔ)器第一單元數(shù)據(jù)),棧內(nèi)數(shù)據(jù)不發(fā)生變化。
MPP:
彈出堆棧,讀出并清除棧存儲(chǔ)器第一單元數(shù)據(jù),同時(shí)以下各存儲(chǔ)單元數(shù)據(jù)向上單元推移。
MPS:存儲(chǔ)該指令處的運(yùn)算結(jié)果壓入堆棧),使用一次MPS指令,該時(shí)刻的運(yùn)算結(jié)果就推入棧的第一單元。在沒(méi)有使用MPP指令之前,若再次使用MPS指令,當(dāng)時(shí)的邏輯運(yùn)算結(jié)果推入棧的第一單元,先推入的數(shù)據(jù)依次向棧的下一單元推移。圖8-2中棧存儲(chǔ)器中的①是第一次壓棧的數(shù)據(jù),②是第二次壓棧的數(shù)據(jù)。
多重輸出指令的入棧出棧工作方式是:后進(jìn)先出、先進(jìn)后出。
MPS、MPP兩指令必須成對(duì)出現(xiàn),而MPS、MPP之間的MRD指令在只有兩層輸出時(shí)不用。而若輸出的層數(shù)多,使用的次數(shù)就多。在利用梯形圖編程的情況下,多重輸出指令可以不用過(guò)分關(guān)注。而且也可以用其他指令取代多重輸出指令。