安徽西門子S7-1200PLC模塊代理經(jīng)銷商

PLC編程梯形圖中的邏輯塊指令
介紹了所有編寫簡(jiǎn)單輸入/輸出程序必需的指令。在完成基本梯形圖內(nèi)容并轉(zhuǎn)入向PC輸入程序之前,介紹邏輯塊指令(AND LOAD和OR LOAD),這些指令即使對(duì)簡(jiǎn)單梯形圖,有時(shí)也是需要的。
邏輯塊指令不需要對(duì)應(yīng)梯形圖上特定的條件,它們描述的是邏輯塊之間的關(guān)系。AND LOAD指令對(duì)兩個(gè)邏輯塊產(chǎn)生邏輯與的執(zhí)行條件。OR LOAD指令對(duì)兩個(gè)邏輯塊產(chǎn)生邏輯或的執(zhí)行條件。
雖然圖1-10所示出的梯形圖看上去比較簡(jiǎn)單,但需要一條AND LOAD指令。

圖1-10 需要一條AND LOAD指令圖例
a.AND LOAD。如圖1-10所示,兩個(gè)邏輯塊用虛線表示。這個(gè)例子說明當(dāng)左邊的邏輯塊中的任一條件是“ON”(即當(dāng)IR00000或IR00001為“ON”),同時(shí)右邊的邏輯塊中的任一條件是“ON”(即當(dāng)IR00002為“ON”或IR00003為“OFF”時(shí)),將產(chǎn)生一個(gè)“ON”執(zhí)行條件。
但是,僅AND和OR指令是不能把上述梯形圖轉(zhuǎn)換為助記符形式的。如果對(duì)IR00002與IR00000和IR00001之間OR操作的結(jié)果進(jìn)行AND操作,這樣就無法進(jìn)行IR00002和IR00003之間的OR NOT操作,而變成終在IR00003、IR00002和*個(gè)OR到AND操作的結(jié)果之間進(jìn)行OR NOT操作。而程序要做的是獨(dú)立地進(jìn)行OR (NOT)操作,然后將所有的結(jié)果結(jié)合起來。要做到這一點(diǎn),可在一個(gè)指令行的中間使用LOAD或LOAD NOT指令。當(dāng)在這種方法中使用LOAD或LOAD NOT指令時(shí),當(dāng)前執(zhí)行條件保存在一個(gè)特定緩沖區(qū)里,而且邏輯過程重新開始。為了將當(dāng)前執(zhí)行條件與先前沒用的執(zhí)行條件結(jié)合,將使用一個(gè)AND LOAD或OR LOAD指令。這里LOAD是指使后一個(gè)未用的執(zhí)行條件被取出。除了指令行上*個(gè)條件外,使用LOAD或LOAD NOT指令能產(chǎn)生一個(gè)未使用的執(zhí)行條件。根據(jù)助記符指令來分析如圖1-10所示的梯形圖,IR00000的條件是一條LOAD指令,下面的條件是IR00000和IR00001的OR指令。IR00002的條件是另一條LOAD指令,其下面的條件是一條OR NOT指令,即IR00002的狀態(tài)和IR00003非狀態(tài)的一條OR指令。為了達(dá)到右側(cè)指令的執(zhí)行條件,必須對(duì)兩個(gè)邏輯塊執(zhí)行邏輯與(AND)操作,AND LOAD實(shí)現(xiàn)了這個(gè)功能。AND LOAD指令本身不需要操作數(shù),因?yàn)樗聪惹按_定的執(zhí)行條件操作。

b.OR LOAD。如圖1-11所示,上面邏輯塊與下面邏輯塊之間需要一條OR LOAD指令。當(dāng)IR00000為“ON”和IR00001為“OFF”時(shí),或當(dāng)IR00002和IR00003都為“ON”的時(shí)候,都將為右側(cè)的指令產(chǎn)生一個(gè)“ON”執(zhí)行條件。除了當(dāng)前執(zhí)行的條件和后一個(gè)未使用執(zhí)行條件之間進(jìn)行的是OR操作外,OR LOAD指令的助記符的操作同AND LOAD指令一樣。

圖1-11 需要一條OR LOAD指令的例子
當(dāng)然,有些梯形圖也會(huì)同時(shí)需要AND LOAD和OR LOAD指令。
c.邏輯塊指令串聯(lián)。用串聯(lián)邏輯塊指令對(duì)梯形圖編程,梯形圖必須劃分為若干個(gè)邏輯塊。每塊采用一條LOAD或LOAD NOT指令編寫*個(gè)條件,然后使用AND LOAD或OR LOAD指令對(duì)這些邏輯塊進(jìn)行邏輯組合。用AND LOAD或OR LOAD指令時(shí),可以有兩條途徑實(shí)現(xiàn)上述目的。一條途徑是在前面兩個(gè)邏輯運(yùn)算后用邏輯塊指令編寫,然后在每增加一個(gè)邏輯塊后面用邏輯塊指令編寫;另一條途徑是對(duì)所有要結(jié)合的邏輯塊編寫,即先用LOAD或LOAD NOT指令開始每個(gè)邏輯塊編寫,然后用邏輯塊指令把它們組合起來。在此過程中,用于后一對(duì)邏輯塊的指令將首先被結(jié)合,然后前面的一邏輯塊被結(jié)合,逐次遞推回*個(gè)邏輯塊。盡管上述兩種方法產(chǎn)生*相同的結(jié)果,但第二種對(duì)所有邏輯塊指令一起編寫的方法僅用在有八個(gè)(或少于八個(gè))邏輯塊組合的情況,也即要用七條(或七條以下)邏輯塊指令的情況。如圖1-12所示的梯形圖轉(zhuǎn)化為助記符時(shí),需要用AND LOAD指令,因?yàn)橛腥龑?duì)并聯(lián)條件串聯(lián)連接,如圖1-12所示。

圖1-12 三對(duì)并聯(lián)條件串聯(lián)連接情況
用第二種方法進(jìn)行編程時(shí),可以組合的邏輯塊多為八個(gè)。而采用*種方法編程時(shí),相連邏輯塊的數(shù)目沒有限制。
如圖1-13所示,梯形圖轉(zhuǎn)化為助記符時(shí),需要用OR LOAD指令,因?yàn)橛腥龑?duì)串聯(lián)條件并聯(lián)連接。
每對(duì)條件中的*個(gè)條件用分配的位操作數(shù)轉(zhuǎn)換成LOAD,然后和該對(duì)中另一個(gè)條件進(jìn)行與操作。前面兩個(gè)邏輯塊可用接下來的一條OR LOAD指令先編寫,而后一個(gè)邏輯塊用另一條OR LOAD指令編寫,或者首先對(duì)前面三個(gè)邏輯塊編寫,接著連續(xù)用兩條OR LOAD指令。

圖1-13 三對(duì)串聯(lián)條件并聯(lián)連接情況
同樣地,用第二種方法進(jìn)行編程時(shí),可以組合的邏輯塊多為八個(gè)。而采用*種方法編程時(shí),相連邏輯塊的數(shù)目沒有限制。
AND LD和OR LD只要組合在一起的邏輯塊數(shù)目不超出八個(gè),則用AND LD及OR LD指令的組合時(shí),上述的兩種方法都可以使用。
圖1-14所示出的梯形圖僅包含兩個(gè)邏輯塊。沒必要進(jìn)一步分割邏輯塊b部分,因?yàn)橹灰褂?/span>AND和OR指令便可對(duì)其編程。

圖1-14 梯形圖僅包含兩個(gè)邏輯塊
盡管圖1-15示出的梯形圖與圖1-14示出的很相似,但如果不把圖1-15中邏輯塊b分割成兩個(gè)用OR LOAD結(jié)合的邏輯塊,那么就不能對(duì)其進(jìn)行編程。在該例中,首先對(duì)這三個(gè)邏輯塊編程,接著使用OR LOAD指令來結(jié)合后兩個(gè)邏輯塊,隨后再用AND LOAD指令,它將由OR LOAD指令產(chǎn)生的執(zhí)行條件和邏輯塊a的執(zhí)行條件合起來。

使用邏輯塊指令時(shí),編寫到后必須按相反順序進(jìn)行,就是說,首先對(duì)后兩個(gè)邏輯塊用邏輯塊指令連接,隨后對(duì)產(chǎn)生于*個(gè)邏輯塊的執(zhí)行條件以及倒數(shù)第三個(gè)邏輯塊的執(zhí)行條件進(jìn)行編寫,然后繼續(xù)同樣步驟,直到完成*個(gè)邏輯塊連接為止,如圖1-15所示。

圖1-15 邏輯塊指令后編寫情況
在確定一個(gè)梯形圖中必須編寫哪些邏輯塊時(shí),常常需要將梯形圖分割成幾個(gè)大的邏輯塊,然后繼續(xù)逐個(gè)對(duì)這些大的邏輯塊分解,直到分割后的邏輯塊可以不需要邏輯塊指令。先對(duì)小的塊編程,再連接大一些的邏輯塊。既可用AND LOAD指令,也可用OR LOAD指令連接這些邏輯塊,這兩條指令總是連接存在著的后兩個(gè)執(zhí)行條件,而不管執(zhí)行條件是否來自于一個(gè)單獨(dú)的條件、邏輯塊或者來自于先前的邏輯塊指令。
在編寫復(fù)雜梯形圖時(shí),對(duì)邏輯塊的編寫開始于頂部的左端,而且在移至另一邏輯塊之前,先在本塊內(nèi)下移。這通常意味著在可選擇時(shí),先用OR LOAD指令編寫,再用AND LOAD指令編寫。
d.復(fù)雜的梯形圖。圖1-16示出的梯形圖必須被分割為兩大塊,然后每個(gè)大塊又被分為兩小塊,這樣才能用助記符編寫。如圖1-16所示,塊a與塊b需要一個(gè)AND LOAD操作,而在此操作之前,必須使用OR LOAD操作將兩邊的上下兩個(gè)邏輯塊連接起來,即分別將a1、a2和b1、b2連接起來。
分邏輯塊的方法可以較方便地進(jìn)行如圖1-17所示的這種類型的梯形圖編寫,其前提是按順序?qū)γ總€(gè)邏輯塊編寫,即先從上到下,接著從左到右。圖1-17中,用AND LOAD操作連接塊a和塊b。然后對(duì)塊c編寫,接著使用第二個(gè)AND LOAD操作將其和產(chǎn)生于*個(gè)AND LOAD的執(zhí)行條件連接起來。再接下來,要對(duì)塊d編寫,然后使用第三個(gè)AND LOAD操作將產(chǎn)生于塊d的執(zhí)行條件和來自于兩個(gè)AND LOAD操作的執(zhí)行條件連接起來,如此下去,直到邏輯塊n被連接起來為止。

圖1-17 AND LOAD邏輯塊n個(gè)連接
圖1-18示出的梯形圖先需要一個(gè)OR LOAD操作,緊接著是一個(gè)AND LOAD操作,這樣對(duì)頂部三個(gè)邏輯塊編寫,然后再用另兩個(gè)OR LOAD操作來完成助記符編程。
盡管可以按上面編寫程序執(zhí)行,但該程序可改寫為如圖1-19的形式,從而省去*條OR LD和AND LD指令,以便簡(jiǎn)化程序并節(jié)省內(nèi)存空間。
圖1-20示出的梯形圖需要五個(gè)邏輯塊,這里先按順序?qū)ξ鍌€(gè)邏輯塊編寫,然后利用OR LD和AND LD指令從后兩個(gè)塊開始,往前將它們連接起來。程序中地址00008的OR LD指令把塊d和e連接起來,隨后的AND LD指令將上述過程產(chǎn)生的執(zhí)行條件和塊c的執(zhí)行條件連接起來等。
類似地,圖1-20示出的梯形圖可以改畫為如圖1-21所示的梯形圖,從而簡(jiǎn)化了編程并可節(jié)省內(nèi)存空間。

圖1-21 簡(jiǎn)化梯形圖編程
如圖1-22所示的例子看上去很復(fù)雜,但僅用兩個(gè)邏輯塊指令便可對(duì)其進(jìn)行編程。

圖1-22 僅用兩個(gè)邏輯塊指令編程
*條邏輯塊指令用來連接產(chǎn)生于塊a與b的執(zhí)行條件,第二條指令用來把塊c的執(zhí)行條件和產(chǎn)生于IR 00003的常閉條件的執(zhí)行條件連接起來。梯形圖的其余部分可以用OR、AND和AND NOT指令進(jìn)行編寫。

安徽西門子S7-1200PLC模塊代理經(jīng)銷商