2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩240頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

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

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

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

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

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

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

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

8、作數(shù)的位數(shù)、具體位置及數(shù)據(jù)類型。,4.1.3 尋址方式 操作數(shù)是指令的操作或運(yùn)算對象。所謂尋址方式是指令得到操作數(shù)的方式,可以直接給出或間接給出。可用作STEP7指令操作對象的有:常數(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“或”運(yùn)算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進(jìn)行“與”邏輯操作S L 20.0 //把本地?cái)?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. 存儲器間接尋址 在存儲器間接尋址的指令中,給出一個(gè)存儲器(必須是表4.1中的存儲器),該存儲器的內(nèi)容是操作數(shù)所在存儲單元的地址,該地址又被稱為地址指

12、針。存儲器間接尋址方式的優(yōu)點(diǎn)是,當(dāng)程序執(zhí)行時(shí),能改變操作數(shù)的存儲器地址,這對程序中的循環(huán)尤為重要。以下是使用存儲器雙字指針間接尋址的例子: A I[MD 2] //對由MD 2指出的輸入位進(jìn)行“與”邏輯操作。如:MD 2的值為 //2#0000 0000 0000 0000 0000 0000 0101 0110,則是對I 10.6進(jìn)行“與”操作。 = 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進(jìn)行裝入操作。 O Q[LD 3] //對由本地?cái)?shù)據(jù)雙字指出的輸出位進(jìn)行“或”邏輯操作。,依據(jù)要描述的地址復(fù)雜程度,地址指針

14、可以是字或雙字的,存儲指針的存儲器大小也應(yīng)是字的或雙字的,由于定時(shí)器(T)、計(jì)數(shù)器(C)、數(shù)據(jù)塊(DB)、功能塊(FB或FC)的編號范圍在0到65 535之內(nèi),所以用字指針就足夠了,相應(yīng)的也只需字存儲器存儲指針。其它的地址,如:輸入位、輸出位,則要用到雙字指針,并用雙字存儲器存儲指針。指針的兩種格式如圖4.2所示。如果要用雙字格式的指針訪問一個(gè)字、字節(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,此時(shí)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(二進(jìn)制數(shù))裝入累加器1T MD 2 //將累加器1的內(nèi)容傳送給存儲字MD 2,此時(shí)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的當(dāng)前內(nèi)容傳送給存儲字MD 4A I[MD 2] //對輸入位I 8.7進(jìn)行“與”邏輯操作= Q[MD 4] //將RLO賦值給輸出位Q 12.7,4. 寄存器間接尋

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

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

21、 Q[AR1,P#4.1] //地址寄存器1加偏移量結(jié)果為2#0000 0000 0000 0000 // // // 0000 0000 01100111,指明對輸出位Q12.7進(jìn)行賦值操作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進(jìn)行“與”邏輯操作= [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í)行指令時(shí)所具有的狀態(tài)。一些指令是否執(zhí)行或以何方式執(zhí)行可能取決于狀態(tài)字中的某些位;執(zhí)行指令時(shí)也可能改變狀態(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,表示無信號流(斷)。可用RLO觸發(fā)跳轉(zhuǎn)指令。,(3)狀態(tài)位(STA) 狀態(tài)字的位2稱為狀態(tài)位。

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

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

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

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

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

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

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

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

35、4.5 “與”邏輯梯形圖,在上面的語句表中,操作數(shù)是被依次掃描的,其掃描的結(jié)果再邏輯“與”。對信號狀態(tài)進(jìn)行“1”掃描,并做邏輯”與”運(yùn)算,則用助記符“A”來標(biāo)識,相關(guān)的操作數(shù)指定了要掃描對象。當(dāng)操作數(shù)的信號狀態(tài)是“1”時(shí),其掃描結(jié)果也是“1”。如果操作數(shù)的信號狀態(tài)是“0”,則掃描結(jié)果也是“0”。對信號狀態(tài)進(jìn)行“0”掃描,并做邏輯“與”運(yùn)算,則用助記符“AN”來標(biāo)識取反的“與”邏輯操作.當(dāng)操作數(shù)的信號狀態(tài)是“0”時(shí),其掃描結(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。如此逐一進(jìn)行,在邏輯序列結(jié)束處的RLO可用作進(jìn)一步處理。例如,用來激勵(lì)一個(gè)輸出信號。在上面的語句表中,把RLO的值賦給輸出Q 4.0(=Q 4.0)

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

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

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

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

41、果進(jìn)行“異或”操作,得到的新結(jié)果再存入RLO。如此掃描、“異或”并刷新RLO,直到賦值指令將RLO的值賦給輸出Q 4.0 。 圖中,僅當(dāng)兩個(gè)觸點(diǎn)(輸入I1.0和輸入I1.1)的掃描結(jié)果不同,即只有一個(gè)為“1”時(shí),RLO才為“1”,并賦值給輸出使Q 4.0為“1”。若兩個(gè)信號的掃描結(jié)果相同(均為“1”或“0”),則Q 4.0為“0”。與O和ON比較,X和XN排除了兩個(gè)信號掃描結(jié)果為“1”時(shí),使輸出為“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é)束一個(gè)邏輯串。當(dāng)FC位為0時(shí),表明程序中的下一條指令是一個(gè)新邏輯串的第一條指令,CPU對其進(jìn)

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

44、與輸出信號有關(guān)的指令被一個(gè)接一個(gè)地連續(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é)果。在與其它觸點(diǎn)串聯(lián)的情況下,中間輸出與一般觸點(diǎn)的功能一樣。中間輸出指

45、令不能用于結(jié)束一個(gè)邏輯串,因此,中間輸出指令不能放在邏輯串的結(jié)尾或分支的結(jié)尾處,圖4.9是中間輸出梯形圖。 從圖4.9中可以看出,中間輸出指令能夠在位操作邏輯串中驅(qū)動(dòng)等效繼電器,并影響繼電器的觸點(diǎn)狀態(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)地,賦值輸出被稱為動(dòng)態(tài)賦值輸出。置位/復(fù)位指令也用于結(jié)束一個(gè)邏輯串,因此,在LAD中置位/復(fù)位

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

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

49、時(shí),下面的復(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進(jìn)行操作,改變狀態(tài)字中RLO位的狀態(tài)。有關(guān)內(nèi)容

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

51、RLO的跳變沿檢測的指令,另一種是對觸點(diǎn)跳變沿直接檢測的梯形圖方塊指令。具體內(nèi)容見表4.9。,表4.9 跳變沿檢測指令,圖4.12是使用RLO正跳沿檢測指令的例子。這個(gè)例子中,若CPU檢測到輸入I 1.0有一個(gè)正跳沿,將使得輸出Q 4.0的線圈在一個(gè)掃描周期內(nèi)通電。對輸入I 1.0常開觸點(diǎn)掃描的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指令檢測到一個(gè)RLO的正跳沿,那么FP指令把RLO位置1。如果RLO在相鄰的兩個(gè)掃描周期中相同(全為1或0),那么FP語句把RLO位清0。同樣,如果FN指令檢測到一個(gè)RLO的負(fù)跳沿,那么FN指令把RLO位置1。如果RLO在相鄰的兩個(gè)掃描周期中相同(全為1或0),那么FN語句把RLO位清0。,需要注意的是,在編程時(shí)必須考慮到,F(xiàn)P

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

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

55、的Q為1,則觸點(diǎn)閉合;若Q為0,則觸點(diǎn)斷開。,4.2.4 位邏輯指令編程舉例 1. 傳送帶控制 圖4.14表示一個(gè)能夠電氣啟動(dòng)的傳送帶。在傳送帶的起點(diǎn)有兩個(gè)按鈕開關(guān):用于START的S1和用于STOP的S2。在傳送帶的尾部也有兩個(gè)按鈕開關(guān):S3用于START,S4用于STOP??梢詮娜我欢藛?dòng)或停止傳送帶。另外,當(dāng)傳送帶上的物件到達(dá)末端時(shí),傳感器S5使傳送帶停機(jī)。,圖4.14 傳送帶示意圖,表4.10

56、 用于傳送帶系統(tǒng)符號編程的元素,圖4.15 控制傳送帶的梯形圖與相應(yīng)的語句表,2. 串并聯(lián)組合表示法 當(dāng)邏輯串是復(fù)雜組合時(shí),CPU的掃描順序是先“與”后“或”。圖4.16 (a)給出的梯形邏輯是觸點(diǎn)先并后串的例子,與其對應(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. 風(fēng)機(jī)監(jiān)控程序 某設(shè)備有三臺風(fēng)機(jī),當(dāng)設(shè)備處于運(yùn)行狀態(tài)時(shí),如果風(fēng)機(jī)至少有兩臺以上轉(zhuǎn)動(dòng),則指示燈常亮;如果僅有一臺風(fēng)機(jī)轉(zhuǎn)動(dòng),則指示燈以0.5 Hz的頻率閃爍;如果沒有任何風(fēng)機(jī)轉(zhuǎn)動(dòng),則指示燈以2 Hz的頻率閃爍。當(dāng)設(shè)備不運(yùn)行時(shí),指示燈不亮。

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

60、4.1控制。,下面給出實(shí)現(xiàn)風(fēng)機(jī)狀態(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í)器與計(jì)數(shù)器指令,4.3.1 定時(shí)器指令 定時(shí)器是PLC中的重要部件,它用于實(shí)現(xiàn)或監(jiān)控時(shí)間序列。定

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

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

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

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

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

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

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

69、前RLO由1變?yōu)?,則定時(shí)器被復(fù)位至啟動(dòng)前的狀態(tài),在這種情況下定時(shí)器的常開觸點(diǎn)斷開。,圖4.20是使用脈沖定時(shí)器的梯形圖編程例子,圖4.21是脈沖定時(shí)器的時(shí)序。以下是與梯形圖對應(yīng)的語句表:A I0.0 L S5T#2S SP T5 //以脈沖定時(shí)器方式啟動(dòng)T5 A I0.1 R T5 //復(fù)位定時(shí)器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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論