西門子s7-300系列基本指令系統(tǒng)課件_第1頁
已閱讀1頁,還剩240頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、第4章西門子S7-300系列PLC基本指令系統(tǒng),4.1 指令及其結(jié)構(gòu)4.2 位邏輯指令4.3 定時器與計數(shù)器指令4.4 數(shù)據(jù)處理功能指令4.5 數(shù)據(jù)運算指令4.6 控制指令思考與練習題,4.1 指令及其結(jié)構(gòu),4.1.1 指令的組成 1. 語句指令 一條指令由一個操作碼和一個操作數(shù)組成,操作數(shù)由標識符和參數(shù)組成。操作碼定義要執(zhí)行的功能,它告訴CPU該做什么;操作數(shù)為執(zhí)行該操作所需

2、要的信息,它告訴CPU用什么去做。例如:A I 1.0該指令是一條位邏輯操作指令,其中:“A”是操作碼,它表示執(zhí)行“與”操作;“I 1.0”是操作數(shù),它指出這是對輸入繼電器I 1.0進行的操作。,有些語句指令不帶操作數(shù)。它們操作的對象是惟一的,故為簡便起見,不再特別說明。例如:NOT是對邏輯操作結(jié)果(RLO)取反。,2. 梯形邏輯指令 梯形邏輯指令用圖形元素表示PLC要完成操作。在梯形邏輯指令中,其操作碼是用

3、圖素表示的,該圖素形象表明CPU做什么,其操作數(shù)的表示方法與語句指令相同。如: Q 4.0 ——( )該指令中:——( )可認為是操作碼,表示一個二進制賦值操作。Q 4.0是操作數(shù),表示賦值的對象。 梯形邏輯指令也可不帶操作數(shù)。如: ——|NOT|——是對邏輯操作結(jié)果取反的操作。,4.1.2 操作數(shù) 1. 標識符及

4、表示參數(shù) 一般情況下,指令的操作數(shù)在PLC的存儲器中,此時操作數(shù)由操作數(shù)標識符和參數(shù)組成。操作數(shù)標識符告訴處理器操作數(shù)放在存儲器的哪個區(qū)域及操作數(shù)位數(shù);標識參數(shù)則進一步說明操作數(shù)在該存儲區(qū)域內(nèi)的具體位置。 操作數(shù)標識符由主標識符和輔助標識符組成。主標識符表示操作數(shù)所在的存儲區(qū),輔助標識符進一步說明操作數(shù)的位數(shù)長度。若沒有輔助標識符指操作數(shù)的位數(shù)是一位。,主標識符有:I(輸入過程映像存儲區(qū)),Q(輸出過程映

5、象存儲區(qū)),M(位存儲區(qū)),PI(外部輸入),PQ(外部輸入),T(定時器),C(計數(shù)器),DB(數(shù)據(jù)塊),L(本地數(shù)據(jù));輔助標識符有:X(位),B(字節(jié)),W(字——2字節(jié)),D(雙字——4字節(jié))。 PLC物理存儲器是以字節(jié)為單位的,所以存儲單元規(guī)定為字節(jié)單元。位地址參數(shù)用一個點與字節(jié)地址分開。如:M 10.1 當操作數(shù)長度是字或雙字時,標識符后給出的標識參數(shù)是字或雙字內(nèi)的最低字節(jié)單元號。圖4.1

6、給出了字節(jié)、字、雙字的相互關(guān)系及表示方法。當使用寬度為字或雙字的地址時,應(yīng)保證沒有生成任何重疊的字節(jié)分配,以免造成數(shù)據(jù)讀寫錯誤。,圖4.1 以字節(jié)單元為基準標記存儲器存儲單元,位存儲區(qū)M,表4.1 存儲區(qū)及其功能,表4.1 存儲區(qū)及其功能,2. 操作數(shù)的表示法 在STEP7中,操作數(shù)有兩種表示方法:一是物理地址(絕對地址)表示法;二是符號地址表示法。為一個物理地址定義有意義的符號名,可使程序的可讀性增強,降低編程時由

7、于筆誤而造成的程序錯誤。 用物理地址表示操作數(shù)時,要明確指出操作數(shù)的所在存儲區(qū),該操作數(shù)的位數(shù)具體位置。例如:Q 4.0是用物理地址表示的操作數(shù),其中Q表示這是一個在輸出過程映像區(qū)中的輸出位,具體位置是第四個字節(jié)的第0位。 STEP7 允許用符號地址表示操作數(shù),如Q 4.0可用符號名MOTOR_ON替代表示,符號名必須先定義后使用,而且符號名必須是惟一的,不能重名。定義符號時,需要指明操作數(shù)所在的存儲區(qū),操

8、作數(shù)的位數(shù)、具體位置及數(shù)據(jù)類型。,4.1.3 尋址方式 操作數(shù)是指令的操作或運算對象。所謂尋址方式是指令得到操作數(shù)的方式,可以直接給出或間接給出??捎米鱏TEP7指令操作對象的有:常數(shù);S7狀態(tài)字中的狀態(tài)位;S7的各種寄存器、數(shù)據(jù)塊;功能塊FB,F(xiàn)C和系統(tǒng)功能塊SFB,SFC;S7的各存儲區(qū)中的單元。 S7有四種尋址方式,它們分別是:立即尋址、存儲器直接尋址、存儲器間接尋址和寄存器間接尋址。,1. 立即

9、尋址 這是對常數(shù)或常量的尋址方式。操作數(shù)本身直接包含在指令中。有些指令中的操作數(shù)是惟一的,為方便起見不再在指令中特別寫出。下面是立即尋址的例子:SET //把RLO置1OW W#16#A320 //將常量W#16#A320與累加器1“或”運算L 27 //把整數(shù)27裝入累加器1L 'ABCD'

10、; //把ASCII碼字符ABCD裝入累加器1L C#0100 //把BCD碼常數(shù)0100裝入累加器1,2. 直接尋址 包括對寄存器和存儲器的直接尋址。在直接尋址的指令中,直接給出操作數(shù)的存儲單元地址。例如:A I 0.0 //對輸入位I 0.0進行“與”邏輯操作S L 20.0 //把本地數(shù)據(jù)位L 20.

11、0置1= M 115.4 //使存儲區(qū)位M 115.4的內(nèi)容等于RLO的內(nèi)容L IB 10 //把輸入字節(jié)IB 10的內(nèi)容裝入累加器1T DBD 12 //把累加器1中的內(nèi)容傳送給數(shù)據(jù)雙字DBD 12中,3. 存儲器間接尋址 在存儲器間接尋址的指令中,給出一個存儲器(必須是表4.1中的存儲器),該存儲器的內(nèi)容是操作數(shù)所在存儲單元的地址,該地址又被稱為地址指

12、針。存儲器間接尋址方式的優(yōu)點是,當程序執(zhí)行時,能改變操作數(shù)的存儲器地址,這對程序中的循環(huán)尤為重要。以下是使用存儲器雙字指針間接尋址的例子: A I[MD 2] //對由MD 2指出的輸入位進行“與”邏輯操作。如:MD 2的值為 //2#0000 0000 0000 0000 0000 0000 0101 0110,則是對I 10.6進行“與”操作。 = DIX[DBD

13、2] //將RLO賦值給數(shù)據(jù)位,具體數(shù)據(jù)由數(shù)據(jù)雙字DBD 2指出。,L IB[DID 4] //將由數(shù)據(jù)雙字DID 4指出的輸入字節(jié)裝入累加器1。如:DID 4的值為2#0000 0000 0000 0000 0000 0000 // 0101 0000,則是對IB 10進行裝入操作。 O Q[LD 3] //對由本地數(shù)據(jù)雙字指出的輸出位進行“或”邏輯操作。,依據(jù)要描述的地址復(fù)雜程度,地址指針

14、可以是字或雙字的,存儲指針的存儲器大小也應(yīng)是字的或雙字的,由于定時器(T)、計數(shù)器(C)、數(shù)據(jù)塊(DB)、功能塊(FB或FC)的編號范圍在0到65 535之內(nèi),所以用字指針就足夠了,相應(yīng)的也只需字存儲器存儲指針。其它的地址,如:輸入位、輸出位,則要用到雙字指針,并用雙字存儲器存儲指針。指針的兩種格式如圖4.2所示。如果要用雙字格式的指針訪問一個字、字節(jié)或雙字存儲器,必須保證指針中的位編號為0。,圖4.2 存儲器間接尋址的指針格式,位3至

15、18(范圍0至65535):被尋址字節(jié)的字節(jié)編號 位0至2(范圍0至7):被尋址位的位編號,下面的例子顯示如何產(chǎn)生字或雙字指針并用其尋址:L +5 //將整數(shù)+5裝入累加器1T MW 2 //將累加器1的內(nèi)容傳送給存儲字MW 2,此時MW 2的內(nèi)容為5OPN DB[MW 2] //打開由MW 2指出的數(shù)據(jù)塊,即,打開數(shù)據(jù)塊5L P#8.7 //將2

16、#0000 0000 0000 0000 0000 0000 0100 0111(二進制數(shù))裝入累加器1T MD 2 //將累加器1的內(nèi)容傳送給存儲字MD 2,此時MD 2的內(nèi)容為//2#0000 0000 0000 0000 0000 0000 0100 0111L P#4.0 //將2#0000 0000 0000 0000 0000 0000 0010 0000裝入累加器1,累//加器1原內(nèi)容

17、被裝入累加器2,+I //將累加器1和累加器2內(nèi)容相加,在累加器1中得到的“和”為 //2#0000 0000 0000 0000 0000 0000 0110 0111T MD 4 //將累加器1的當前內(nèi)容傳送給存儲字MD 4A I[MD 2] //對輸入位I 8.7進行“與”邏輯操作= Q[MD 4] //將RLO賦值給輸出位Q 12.7,4. 寄存器間接尋

18、址 在S7中有兩個地址寄存器,它們是AR1和AR2。通過地址寄存器,可以對各存儲區(qū)的存儲器內(nèi)容實現(xiàn)寄存器間接尋址。地址寄存器的內(nèi)容加上偏移量形成地址指針,該指針指向數(shù)值所在的存儲單元。,地址寄存器存儲的地址指針有兩種格式,其長度均為雙字。圖4.3給出了這兩種格式的細節(jié)及其差別。其中,第一種地址指針格式包括被尋址數(shù)值所在存儲單元地址的字節(jié)編號和位編號,至于對哪個存儲區(qū)尋址,則必須在指令中明確直接給出。這種指針格式適用于在確

19、定的存儲區(qū)內(nèi)尋址,即區(qū)內(nèi)寄存器間接尋址。而第二種地址指針格式中還包含了數(shù)值所在存儲區(qū)的說明位(存儲區(qū)域標志位),這樣,就可通過改變這些位,實現(xiàn)跨區(qū)尋址,這種指針格式用于區(qū)域間寄存器間接尋址。區(qū)域標識位的組合狀態(tài)見表4.2。,圖4.3 寄存器間接尋址的指針格式,表4.2 地址指針區(qū)域標識位含義,如果要用到寄存器指針格式訪問一個字節(jié)、字或雙字,則必須保證指針中位地址編號為0。下面的例子分別說明如何使用這兩種指針格式實現(xiàn)間接尋址:L

20、P#8.6 //將2#0000 0000 0000 0000 0000 0000 0100 0110裝入累加器1LAR1 //將累加器1的內(nèi)容傳送至地址寄存器1A I[AR1,P#0.0] //地址寄存器1加偏移量結(jié)果為2#0000 0000 0000 0000 // // // 0000 0000 0100 0110,指明是對輸入位I 8.6進行“與”操作=

21、 Q[AR1,P#4.1] //地址寄存器1加偏移量結(jié)果為2#0000 0000 0000 0000 // // // 0000 0000 01100111,指明對輸出位Q12.7進行賦值操作L P#8.0 //將2#0000 0000 0000 0000 0000 0000 0100 0000裝入累加器1,LAR2 //將累加器1的內(nèi)容傳送至地址寄存器2L IB

22、[AR2,P#2.0] //將輸入字節(jié)IB 10的內(nèi)容裝入累加器1T MW[AR2,P#200.0] //將累加器1的內(nèi)容傳送至存儲字MW 208L P#I8.7 //將2#1000 0001 0000 0000 0000 0000 0100 0111裝入累加器1LAR1 //將累加器1的內(nèi)容傳送至地址寄存器1L P#Q8.7 //將2#

23、1000 0010 0000 0000 0000 0000 0100 0111裝入累加器1LAR2 //將累加器1的內(nèi)容傳送至地址寄存器2A [AR1,P#0.0] //對輸入位I 8.7進行“與”邏輯操作= [AR2,P#1.1] //賦值給輸出位Q10.0 L P#I8.0 //將輸入位I 8.0的雙字指針裝入累加器1,LAR2

24、//將累加器1的內(nèi)容傳送至地址寄存器2L P#M8.0 //將存儲位M 8.0的雙字指針裝入累加器1LAR1 //將累加器1的內(nèi)容傳送至地址寄存器1L B[AR2,P#2.0] //把輸入字節(jié)IB 10裝入累加器1,輸入字節(jié)10為8(AR2)加2(偏移量)T D[AR1,P#56.0] //把存儲雙字MD 64裝入累加器1,存儲雙字64為8(AR1)//加56(偏移量),

25、4.1.4 狀態(tài)字 狀態(tài)字用于表示CPU執(zhí)行指令時所具有的狀態(tài)。一些指令是否執(zhí)行或以何方式執(zhí)行可能取決于狀態(tài)字中的某些位;執(zhí)行指令時也可能改變狀態(tài)字中的某些位;你也能在位邏輯指令或字邏輯指令中訪問并檢測它們。圖4.4顯示了狀態(tài)字的結(jié)構(gòu)。,圖4.4 狀態(tài)字的結(jié)構(gòu),15 9 8 7 6 5 4 3

26、 2 1 0,(2)邏輯操作結(jié)果(RLO) 狀態(tài)字的位1稱為邏輯操作結(jié)果RLO(Result of Logic Operation)。該位存儲位邏輯指令或算術(shù)比較指令的結(jié)果。在邏輯串中,RLO位的狀態(tài)能夠表示有關(guān)信號流的信息。RLO的狀態(tài)為1,表示有信號流(通);為0,表示無信號流(斷)??捎肦LO觸發(fā)跳轉(zhuǎn)指令。,(3)狀態(tài)位(STA) 狀態(tài)字的位2稱為狀態(tài)位。

27、狀態(tài)位不能用指令檢測,它只是在程序測試中被CPU解釋并使用。如果一條指令是對存儲區(qū)操作的位邏輯指令,則無論是對該位的讀與寫操作,STA總是與該位的值取得一致;對不訪問存儲區(qū)的位邏輯指令來說,STA沒有意義,此時它總被置為1。 (4)或位(OR) 狀態(tài)字的位3稱為或位(OR)。在先邏輯“與”后邏輯“或”的邏輯串中,OR位暫存邏輯“與”的操作結(jié)果,以便進行后面的邏輯“或”運算。其它指令將OR位清0。,(5)溢

28、出位(OV) 狀態(tài)字的位4稱為溢出位,溢出位被置1,表明一個算術(shù)運算或浮點數(shù)比較指令執(zhí)行時出現(xiàn)錯誤(錯誤:溢出、非法操作、不規(guī)范格式)。后面的算術(shù)運算或浮點數(shù)比較指令執(zhí)行結(jié)果正常的話OV位就被清0。 (6)溢出狀態(tài)保持位(OS) 狀態(tài)字的位5稱為溢出狀態(tài)保持位(或稱為存儲溢出位)。OV被置1時OS也被置1;OV被清0時OS仍保持。所以它保存了OV位,可用于指明在先前的一些指令執(zhí)行中是否產(chǎn)生過

29、錯誤。只有下面的指令才能復(fù)位OS位:JOS(OS=1時跳轉(zhuǎn));塊調(diào)用指令和塊結(jié)束指令。,(7)條件碼1(CC1)和條件碼0(CC0) 狀態(tài)字的位7和位6稱為條件碼1和條件碼0。這兩位結(jié)合起來用于表示在累加器1中產(chǎn)生的算術(shù)運算或邏輯運算結(jié)果與0的大小關(guān)系;比較指令的執(zhí)行結(jié)果或移位指令的移出位狀態(tài)。詳見表4.3和表4.4。,表4.3 算術(shù)運算后的CC1和CC0,表4.4 比較、移位和循環(huán)移位、字邏輯指令后的CC1和CC0

30、,(8)二進制結(jié)果位(BR) 狀態(tài)字的位8稱為二進制結(jié)果位。它將字處理程序與位處理聯(lián)系起來,在一段既有位操作又有字操作的程序中,用于表示字操作結(jié)果是否正確(異常)。將BR位加入程序后,無論字操作結(jié)果如何,都不會造成二進制邏輯鏈中斷。在LAD的方塊指令中,BR位與ENO有對應(yīng)關(guān)系,用于表明方塊指令是否被正確執(zhí)行:如果執(zhí)行出現(xiàn)了錯誤,BR位為0,ENO也為0;如果功能被正確執(zhí)行,BR位為1,ENO也為1。 在用

31、戶編寫的FB和FC程序中,必須對BR位進行管理,當功能塊正確運行后使BR位為1,否則使其為0。使用STL指令SAVE或LAD指令——(SAVE),可將RLO存入BR中,從而達到管理BR位的目的。當FB或FC執(zhí)行無錯誤時,使RLO為1并存入BR,否則,在BR中存入0。,,4.2 位邏輯指令,位邏輯指令主要包括位邏輯運算指令、位操作指令和位測試指令,它們可以對布爾操作數(shù)(BOOL)的信號映態(tài)掃描并完成邏輯操作。邏輯操作結(jié)果(RLO)用以賦

32、值、置位、復(fù)位布爾操作數(shù),也控制定時器和計數(shù)器的運行。,4.2.1 位邏輯運算指令 位邏輯運算指令是“與”(AND)、“或”(OR)、“異或”(XOR)指令及其組合。它對“0”或“1”這些布爾操作數(shù)掃描,經(jīng)邏輯運算后將邏輯操作結(jié)果送入狀態(tài)字的RLO位。,1. “與”和“與非”(A,AN)指令 邏輯“與”在梯形圖里是用串聯(lián)的觸點回路表示的,被掃描的操作數(shù)則表示為觸點符 號,操作數(shù)標在觸點上方。如果

33、觸點是常開觸點(動合觸點),則對“1”掃描相應(yīng)操作數(shù)。在PLC中規(guī)定:若操作數(shù)是“1”,則常開觸點“動作”,即認為是“閉合”的;若操作數(shù)是“0”,則常開觸點“不動作”,即觸點仍然打開。如果觸點是常閉觸點(動斷觸點),則對“0”掃描相應(yīng)操作數(shù)。在PLC中規(guī)定:若操作數(shù)是“1”,則常閉觸點“動作”,即觸點“斷開”;若操作數(shù)是“0”,則常閉觸點“不動作”,即觸點仍保持閉合。,如果串聯(lián)回路里的所有觸點皆閉合,該回路就通“電”了。在圖4.5的回路

34、中,如果所有觸點閉合,即當輸入I 0.0和輸出Q 7.3的信號狀態(tài)都是“1”(觸點閉合)、且位存儲器M 10.6為“0”(該觸點仍保持原閉合位置)時,輸出Q 4.0才為“1”;如果有一個或多個觸點是打開的,則輸出Q 4.0的信號狀態(tài)就為“0”(繼電器觸點打開)。 上述梯形邏輯圖,可用語句表指令完全表示。對應(yīng)的語句表為:,A I0.0 A Q 4.1AN M10.1 = Q4.0,圖

35、4.5 “與”邏輯梯形圖,在上面的語句表中,操作數(shù)是被依次掃描的,其掃描的結(jié)果再邏輯“與”。對信號狀態(tài)進行“1”掃描,并做邏輯”與”運算,則用助記符“A”來標識,相關(guān)的操作數(shù)指定了要掃描對象。當操作數(shù)的信號狀態(tài)是“1”時,其掃描結(jié)果也是“1”。如果操作數(shù)的信號狀態(tài)是“0”,則掃描結(jié)果也是“0”。對信號狀態(tài)進行“0”掃描,并做邏輯“與”運算,則用助記符“AN”來標識取反的“與”邏輯操作.當操作數(shù)的信號狀態(tài)是“0”時,其掃描結(jié)果就是“1”。

36、如果操作數(shù)的信號狀態(tài)是“1”,則掃描結(jié)果就是“0”。,在第一條語句里,CPU掃描的是輸入I0.0本次掃描也被稱為首次掃描。首次掃描的結(jié)果被直接保存在RLO(邏輯操作結(jié)果)中,在下一條語句中,掃描操作數(shù)輸出Q 4.1;這次掃描的結(jié)果和RLO中保存的上一次結(jié)果相“與”,產(chǎn)生的新結(jié)果再存入RLO。如此逐一進行,在邏輯序列結(jié)束處的RLO可用作進一步處理。例如,用來激勵一個輸出信號。在上面的語句表中,把RLO的值賦給輸出Q 4.0(=Q 4.0)

37、。,2. “或”和“或非”(O,ON)指令 邏輯“或”在梯形圖里是用并聯(lián)的觸點回路表示的,被掃描的操作數(shù)標在觸點上方。在 觸點并聯(lián)的情況下,若有一個或一個以上的觸點閉合,則該回路就“通電”。在圖4.6中,驅(qū)動信號通過并聯(lián)觸點回路加到輸出Q 4.1。只要有一個觸點閉合,輸出4.1的信號狀態(tài)就為“l(fā)”。如果所有的觸點都是打開的,則輸出Q 4.1就為“0”。在圖4.6中,僅當輸入I1.1和輸出Q 4.0兩者都為“0”,且M2.

38、0為“1”時,輸出Q 4.1才為“0”。,圖4.6 “或”邏輯梯形圖,上述梯形邏輯圖,也可用語句表指令表示。對應(yīng)的語句表為:,O I1.1 ON M2.0 O Q4.0 = Q4.1,在上面的語句表中,操作數(shù)是依次被掃描的,其掃描的結(jié)果再邏輯“或”。對信號狀態(tài)進行“1掃描,并做邏輯“或”運算,用助記符“O”來標識。當操作數(shù)的信號狀態(tài)是“1”時,其掃描結(jié)果也是“1”。對信號狀態(tài)進行“0”掃描,并做邏輯“或”運算,則用助記

39、符“ON”來標識取反的“或”邏輯操作.當操作數(shù)的信號狀態(tài)是“0”時,其掃描結(jié)果就是“1”。如果操作數(shù)的信號狀態(tài)是“1”,則掃描結(jié)果就是“0”。,在第一條語句里,處理器掃描的是輸入I1.1.首次掃描的結(jié)果被直接保存在RLO中,并和下一條語句的掃描結(jié)果相“或”,產(chǎn)生的新結(jié)果再存入RLO。如此逐一進行,在邏輯序列結(jié)束處的RLO可用作進一步處理。例如,用來激勵一個輸出信號。在上面的語句表中,把RLO的值賦給輸出Q 4.1。,3. “異或”和“異

40、或非”(X,XN)指令 圖4.7是“異或”邏輯梯形圖,下面是與梯形圖對應(yīng)的語句表。在的語句表中,使用了“異或”和“異或非”指令,分別用助記符“X”和“XN”來標識。它類似“或”和“或非”指令,用于掃描并聯(lián)回路能否“通電”。,X I 1.0 XN I 1.1 = Q 4.0,當執(zhí)行語句表中的第一條指令時,首次掃描的結(jié)果被直接保存在RLO中,然后RLO中的值和第二條指令的掃描結(jié)

41、果進行“異或”操作,得到的新結(jié)果再存入RLO。如此掃描、“異或”并刷新RLO,直到賦值指令將RLO的值賦給輸出Q 4.0 。 圖中,僅當兩個觸點(輸入I1.0和輸入I1.1)的掃描結(jié)果不同,即只有一個為“1”時,RLO才為“1”,并賦值給輸出使Q 4.0為“1”。若兩個信號的掃描結(jié)果相同(均為“1”或“0”),則Q 4.0為“0”。與O和ON比較,X和XN排除了兩個信號掃描結(jié)果為“1”時,使輸出為“1”的可能。,圖4.7

42、 “異或”邏輯梯形圖,4.2.2 位操作指令 1. 輸出指令 邏輯串輸出指令又稱為賦值操作指令,該操作把狀態(tài)字中RLO的值賦給指定的操作數(shù)(位地址)。若RLO為“1”,則操作數(shù)被置位,否則操作數(shù)被復(fù)位。表4.5列出了操作數(shù)的數(shù)據(jù)類型和所在的存儲區(qū)。 邏輯串輸出指令通過把首次檢測位(FC位)置0,來結(jié)束一個邏輯串。當FC位為0時,表明程序中的下一條指令是一個新邏輯串的第一條指令,CPU對其進

43、行首次掃描操作。這一點在梯形圖中顯示得很清楚。,表4.5 輸出指令,LAD輸出指令像繼電器邏輯圖中的線圈一樣工作。如果電流能夠流經(jīng)電路到達線圈(即RLO為1)的話,則繼電器線圈通電,其常開觸點閉合,否則線圈不通電,常開觸點斷開。在LAD中,只能將輸出指令放在邏輯符號串的最右端,但其前面必須有鏈路,不能將輸出指令單獨放在一個空網(wǎng)絡(luò)中。 一個RLO可被用來驅(qū)動幾個輸出元件。在LAD中,輸出線圈是上下依次排列的。在STL中,

44、與輸出信號有關(guān)的指令被一個接一個地連續(xù)編程,這些輸出具有相同的優(yōu)先級。圖4.8是多重輸出梯形圖,與之對應(yīng)的語句表如下:,A I0.0A I0.1ON I0.2 = Q4.0 A I0.3 = Q4.1,圖4.8是多重輸出梯形圖,中間輸出指令在存儲邏輯中,用于存儲RLO的中間值,該值是中間輸出指令前的位前的邏輯操作結(jié)果。在與其它觸點串聯(lián)的情況下,中間輸出與一般觸點的功能一樣。中間輸出指

45、令不能用于結(jié)束一個邏輯串,因此,中間輸出指令不能放在邏輯串的結(jié)尾或分支的結(jié)尾處,圖4.9是中間輸出梯形圖。 從圖4.9中可以看出,中間輸出指令能夠在位操作邏輯串中驅(qū)動等效繼電器,并影響繼電器的觸點狀態(tài)。這使得梯形圖可以多級輸出,從而提高了編程效率。,圖4.9 中間輸出,2 . 置位/復(fù)位指令 置位/復(fù)位指令根據(jù)RLO的值,來決定被尋址位的信號狀態(tài)是否需要改變。若RLO的值為1,被尋址位的信號狀態(tài)被置1或

46、清0;若RLO是0,則被尋址位的信號保持原狀態(tài)不變。置位/復(fù)位指令有關(guān)內(nèi)容見表4.6。 對于置位操作,一旦RLO為1,則被尋址信號(輸出信號)狀態(tài)置1,即使RLO又變?yōu)?,輸出仍保持為1;對于復(fù)位操作,一旦RLO為1,則被尋址信號(輸出信號)狀態(tài)置 0,即使RLO又變?yōu)?,輸出仍保持為0;這一特性又被稱為靜態(tài)的置位/復(fù)位,相應(yīng)地,賦值輸出被稱為動態(tài)賦值輸出。置位/復(fù)位指令也用于結(jié)束一個邏輯串,因此,在LAD中置位/復(fù)位

47、指令要放在邏輯串的最右端,而不能放在邏輯串中間。復(fù)位指令還可用于復(fù)位定時器和計數(shù)器。,表4.6 置位/復(fù)位指令,,,( S ),圖4.10 置位/復(fù)位指令(a) 復(fù)位指令操作,3. RS觸發(fā)器 RS觸發(fā)器梯形圖方塊指令表示見表4.7。方塊中標有一個置位輸入(S)端,一個復(fù)位輸入(R)端,輸出端標為Q。觸發(fā)器可以用在邏輯串最右端,結(jié)束一個邏輯串,也可用在 邏輯串中,影響右邊的邏輯操作結(jié)果。,表4.7 RS觸

48、發(fā)器,如果置位輸入為1,即有電加到S端,則觸發(fā)器置位。此時,即使置位輸入為0,觸發(fā)器也保持置位不變。如果復(fù)位輸入為1,即有電加到R端,則觸發(fā)器復(fù)位。此時,即使復(fù)位輸入為0,觸發(fā)器也保持復(fù)位不變。RS觸發(fā)器分為置位優(yōu)先和復(fù)位優(yōu)先型兩種。 置位優(yōu)先型RS觸發(fā)器的R端在S端之上,當兩個輸入端都為1時,下面的置位輸入最終有效。既置位輸入優(yōu)先,觸發(fā)器或被復(fù)位或保持復(fù)位不變。,復(fù)位優(yōu)先型RS觸發(fā)器的S端在R端之上,當兩個輸入端都為1

49、時,下面的復(fù)位輸入最終有效.既復(fù)位輸入優(yōu)先,觸發(fā)器或被置位或保持置位不變。圖4.11給出了使用置位優(yōu)先型RS觸發(fā)器的梯形圖例子,圖中也給出了與梯形圖對應(yīng)的語句表程序。,A I0.0 R M0.0A I0.1S M0.0A M0.0 = Q4.0,圖4.11 置位優(yōu)先型RS觸發(fā)器,4. 對RLO的直接操作指令 這一類指令直接對邏輯操作結(jié)果RLO進行操作,改變狀態(tài)字中RLO位的狀態(tài)。有關(guān)內(nèi)容

50、見表4.8。,表4.8 對RLO的直接操作指令,4.2.3 位測試指令 當信號狀態(tài)變化時就產(chǎn)生跳變沿。當從0變到1時,產(chǎn)生一個上升沿(或正跳沿);若從1變到0,則產(chǎn)生一個下降沿(或負跳沿)。跳變沿檢測的原理是:在每個掃描周期中把信號狀態(tài)和它在前一個掃描周期的狀態(tài)進行比較,若不同則表明有一個跳變沿。因此,前一個周期里的信號狀態(tài)必須被存儲,以便能和新的信號狀態(tài)相比較。 S7中有兩類跳變沿檢測指令,一種是對

51、RLO的跳變沿檢測的指令,另一種是對觸點跳變沿直接檢測的梯形圖方塊指令。具體內(nèi)容見表4.9。,表4.9 跳變沿檢測指令,圖4.12是使用RLO正跳沿檢測指令的例子。這個例子中,若CPU檢測到輸入I 1.0有一個正跳沿,將使得輸出Q 4.0的線圈在一個掃描周期內(nèi)通電。對輸入I 1.0常開觸點掃描的RLO值(在本例中,此RLO正好與輸入I 1.0的信號狀態(tài)相同)存放在存儲位M 1.0中。,圖4.12 RLO正跳沿檢測,在掃描周期中,C

52、PU對I 1.0信號狀態(tài)掃描并形成RLO值,若該RLO值是1而存放在M 1.0中的上次RLO值是0,這說明FP指令檢測到一個RLO的正跳沿,那么FP指令把RLO位置1。如果RLO在相鄰的兩個掃描周期中相同(全為1或0),那么FP語句把RLO位清0。同樣,如果FN指令檢測到一個RLO的負跳沿,那么FN指令把RLO位置1。如果RLO在相鄰的兩個掃描周期中相同(全為1或0),那么FN語句把RLO位清0。,需要注意的是,在編程時必須考慮到,F(xiàn)P

53、和FN檢測到的是在RLO中表現(xiàn)出的變化,而不是觸點的狀態(tài)變化(前面的圖中是特例)。因為,一般情況下,RLO可能由一個邏輯串形成,并不單獨與某觸點的狀態(tài)直接相關(guān)。若需要在邏輯串中單獨檢測某觸點的跳變沿,可使用對觸點跳變沿直接檢測的梯形圖方塊指令。圖4.13是使用觸點負跳沿檢測指令的例子。圖中,由給出需要檢測的觸點編號(I 0.3),(M 0.0)用于存放該觸點在前一個掃描周期的狀態(tài)。,圖4.13 觸點負跳沿檢測,執(zhí)行觸點正跳沿檢測指令

54、時,CPU將的當前觸點狀態(tài)與存在中的上次觸點狀態(tài)相比較,若當前為1上次為0,表明有正跳沿產(chǎn)生,則輸出Q置1;其它情況下,輸出Q被清0。對于觸點負跳沿指令,若當前為0上次為1,則輸出Q置1,其余情況Q被清0。由于不可能在相鄰的兩個掃描周期中連續(xù)檢測到正跳沿(或負跳沿),因此,輸出Q只可能在一個掃描周期中保持為1(單穩(wěn)輸出)。 在梯形圖中,觸點跳變沿檢測方塊和RS觸發(fā)器方塊可被看做一個特殊常開觸點。該常開觸點的特性是:若方塊

55、的Q為1,則觸點閉合;若Q為0,則觸點斷開。,4.2.4 位邏輯指令編程舉例 1. 傳送帶控制 圖4.14表示一個能夠電氣啟動的傳送帶。在傳送帶的起點有兩個按鈕開關(guān):用于START的S1和用于STOP的S2。在傳送帶的尾部也有兩個按鈕開關(guān):S3用于START,S4用于STOP??梢詮娜我欢藛踊蛲V箓魉蛶АA硗?,當傳送帶上的物件到達末端時,傳感器S5使傳送帶停機。,圖4.14 傳送帶示意圖,表4.10

56、 用于傳送帶系統(tǒng)符號編程的元素,圖4.15 控制傳送帶的梯形圖與相應(yīng)的語句表,2. 串并聯(lián)組合表示法 當邏輯串是復(fù)雜組合時,CPU的掃描順序是先“與”后“或”。圖4.16 (a)給出的梯形邏輯是觸點先并后串的例子,與其對應(yīng)的語句表為: A( O I0.0 O I0.2 ) A( O M10.0 O M0.3 ) A

57、 M10.1 = Q4.0,圖4.16(b)是先串后并的例子,與其對應(yīng)的語句表如下: A( A I0.0 A M10.0 O A I0.2 A M0.3

58、 ) A M10.1 = Q4.0,圖4.16 串并聯(lián)組合邏輯梯形圖 (a) 先并后串邏輯梯形圖;(b) 先串后并邏輯梯形圖,3. 風機監(jiān)控程序 某設(shè)備有三臺風機,當設(shè)備處于運行狀態(tài)時,如果風機至少有兩臺以上轉(zhuǎn)動,則指示燈常亮;如果僅有一臺風機轉(zhuǎn)動,則指示燈以0.5 Hz的頻率閃爍;如果沒有任何風機轉(zhuǎn)動,則指示燈以2 Hz的頻率閃爍。當設(shè)備不運行時,指示燈不亮。

59、實現(xiàn)上述功能的梯形圖程序見圖4.17。,圖4.17 風機監(jiān)控程序,圖中,輸入位I0.0,I0.1,I0.2分別表示風機1,2,3。當風機轉(zhuǎn)動時,信號狀態(tài)為1。使用CPU中的時鐘存儲器功能,并將其存儲在字節(jié)MB 9中,則存儲位M9.3為2 Hz頻率信號,M9.7為0.5 Hz頻率信號。存儲位M10.0為1時用于表示至少有兩臺風機轉(zhuǎn)動,M10.1為1表示沒有風機轉(zhuǎn)動。設(shè)備運行狀態(tài)用輸出位Q4.0表示,為1時設(shè)備運行。風機轉(zhuǎn)動狀態(tài)指示燈由Q

60、4.1控制。,下面給出實現(xiàn)風機狀態(tài)檢測的語句表程序,從中可看出中間輸出指令的用法: A( A( A I0.0 A I0.1 O A I0.0 A I0.2 O A I0.1 A I0.2 ) = M10.0,A M10.0 O( AN I0.0 AN

61、I0.1 AN I0.2 = M10.1 A M10.1 A M9.3 ) O AN M10.0 AN M10.1 A M9.7 ) A Q4.0 = Q4.1,,4.3 定時器與計數(shù)器指令,4.3.1 定時器指令 定時器是PLC中的重要部件,它用于實現(xiàn)或監(jiān)控時間序列。定

62、時器是一種由位和字組成的復(fù)合單元,定時器的觸點由位表示,其定時時間值存儲在字存儲器中。S7-300/400提供了多種形式的定時器:脈沖定時器(SP)、擴展定時器(SE)、接通延時定時器(SD)、帶保持的接通延時定時器(SS)和斷電延時定時器(SF)。,1. 定時器的組成 在CPU的存儲器中留出了定時器區(qū)域,該區(qū)域用于存儲定時器的定時時間值。每個定時器為2 B,稱為定時字。在S7-300中,定時器區(qū)為512 B,因此最多允

63、許使用256個定時器。因為定時器區(qū)域的編址(以T打頭后跟定時器號,只能按字訪問)以及存儲格式的特殊性,所以只有通過使用有關(guān)的定時器指令才能對該區(qū)域進行訪問。 S7中定時時間由時基和定時值兩部分組成,定時時間等于時基與定時值的乘積。當定時器運行時,定時值不斷減1,直至減到0,減到0表示定時時間到。定時時間到后會引起定時器觸點的動作。,定時器的第0位到第11位存放二進制格式的定時值,第12、13位存放二進制格式的時基(如圖4

64、.18所示)。這12位二進制代碼表示的數(shù)值范圍是0~4096,實際使用范圍是0~999。時基和時間值可以任意組合,以得到不同的定時分辨率和定時時間。表4.11中給出了可能的組合情況。從表4.11中可以看出,時基小,則定時分辨率高,但定時時間范圍窄;時基大,則定時分辨率低,但定時時間范圍寬。,圖4.18 累加器1低字的內(nèi)容(定時值127,時基l s),表4.11 時基與定時范圍,當定時器啟動時,累加器1低字的內(nèi)容被當作定時時間裝入定時

65、字中。這一過程是由 操作系統(tǒng)控制自動完成的,用戶只需給累加器1裝入不同的數(shù)值,即可設(shè)置需要的定時時 間。為累加器1裝入數(shù)值的指令很多,但在累加器1低字中的數(shù)據(jù)應(yīng)符合圖4.18所示的格式。為避免格式錯誤,推薦采用下述直觀的句法: L W#16#wxyz其中,w,x,y,z均為十進制數(shù)。w為時基,取值為0,1,2或3,分別表示時基為10 ms,l00 ms,1 s或10 s;xyz為定時值,取值范圍為1~999。

66、,也可直接使用S5中的時間表示法裝入定時數(shù)值,例如: L S5T#aH_bbM_ccS_dddMS其中,a:小時,bb:分鐘,cc:秒,ddd:毫秒,范圍:1MS到2H_46M_308;此時,時基是自動選擇的,原則是根據(jù)定時時間選擇能滿足定時范圍要求的最小時基。,2. 定時器的啟動與運行 PLC中的定時器相當于時間繼電器。在使用時間繼電器時,要為其設(shè)置定時時間,當時間繼電器的線圈通電后,時間繼電器被啟動

67、。若定時時間到,繼電器的觸點動作。當時間繼電器的線圈斷電時,也將引起其觸點的動作。該觸點可以在控制線路中控制其它繼電器。,S7中的定時器與時間繼電器的工作特點相似,對定時器同樣要設(shè)置定時時間,也要啟動定時器(使定時器線圈通電)。除此之外,定時器還增加了一些功能,如隨時復(fù)位定時器、隨時重置定時時間(定時器再啟動)、查看當前剩余定時時間等。S7中的定時器不僅功能強,而且類型多。圖4.19給出了為定時作業(yè)如何正確選擇定時器的示意圖。以下將以L

68、AD方塊圖為主詳細介紹定時器的運行原理及使用方法。,圖4.19 五種類型定時器總覽,3. 定時器梯形圖方塊指令1) 脈沖定時器(見表4.12),表4.12 脈 沖 定 時 器,如果RLO有正跳沿,則脈沖定時器啟動指令,以給出的時間值啟動指定的定時器。只要RLO為1,定時器就保持運行。在定時器運行時,其常開觸點閉合,即對該定時器按1掃描的結(jié)果為1。當定時時間到,常開觸點斷開,對1信號的掃描結(jié)果為0。若在給定的時間(即定時時間)過去之

69、前RLO由1變?yōu)?,則定時器被復(fù)位至啟動前的狀態(tài),在這種情況下定時器的常開觸點斷開。,圖4.20是使用脈沖定時器的梯形圖編程例子,圖4.21是脈沖定時器的時序。以下是與梯形圖對應(yīng)的語句表:A I0.0 L S5T#2S SP T5 //以脈沖定時器方式啟動T5 A I0.1 R T5 //復(fù)位定時器T5 A T5

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論