西門子s7—200系列plc使用一個9層堆棧來處理所有邏輯操作,它和計算機中的堆棧結構相同。堆棧是一組能夠存儲和取出數(shù)據(jù)的暫存單元,其特點是“先進后出”。每一次進行人棧操作,新值放人棧頂,棧底值丟失;每一次進行出棧操作,棧頂值彈出,棧底值補進隨機數(shù)。邏輯堆棧指令主要用來處理對觸點進行的復雜連接。
邏輯堆棧指令有:邏輯入棧lps、邏輯讀棧lrd和邏輯出棧lpp指令。上述三條指令的用法如圖所示。
lps(logic push):邏輯入棧指令(分支電路開始指令)。在梯形圖中的分支結構中,可以形象地看出,它用于生成一條新的母線,其左側為原來的主邏輯塊;右側為若干個新的從邏輯塊。從堆棧使用上來講,lps指令的作用是把當前運算值復制后壓人堆棧,以備后用。對于右側第一個新的從邏輯塊,由于其之前的邏輯運算結果就是剛復制并入棧的運算值,因此可以直接在lps指令之后繼續(xù)編程。
lrd(logic read):邏輯讀棧指令。在梯形圖分支結構中,當新母線左側為主邏輯塊時, 經過右側第一個新的從邏輯塊的運算,主邏輯塊運算結果已經不存在(但在此之前已經被lps指令復制到堆棧中),要進行后續(xù)的從邏輯塊編程時,就需要使用lrd指令從堆棧中讀回主邏輯塊運算結果,所以lrd指令用于第二個以后的從邏輯塊編程。從堆棧使用上來講,lrd讀取最近的lps壓人堆棧的內容,而不進行push和pop工作。
lpp(logic pop):邏輯出棧指令(分支電路結束指令)。在梯形圖分支結構中,lpp用于lps產生的新母線右側的最后一個從邏輯塊編程,它在讀取完離它最近的lps壓入堆棧內容的同時復位該條新母線。從堆棧使用上來講,lpp把堆棧彈出一級,堆棧內容依次上移。
圖 lps、lrd、lpp指令
使用說明:
(1)由于受堆??臻g的限制(9層堆棧),lps、lpp指令連續(xù)使用時應少于9次。
(2)lps和lpp指令必須成對使用,它們之間可以使用lrd指令。
(3)lps、lrd、lpp指令無操作數(shù)。