




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(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í)符和參數(shù)組成。操作碼定義要執(zhí)行的功能,它告訴CPU該做什么;操作數(shù)為執(zhí)行該操作所需要的信息,它告訴CPU用什么去做。例如:該指令是一條位邏輯操作指令,其中:“A是操作碼,它表示執(zhí)行“與操作;“I 1.0是操作數(shù),它指出這是對(duì)輸入繼電器進(jìn)行的操作。 有些語句指令不帶操作數(shù)。它們操作的對(duì)象是惟一的,故為簡便起見
2、,不再特別說明。例如:NOT是對(duì)邏輯操作結(jié)果(RLO)取反。 2. 梯形邏輯指令 梯形邏輯指令用圖形元素表示PLC要完成操作。在梯形邏輯指令中,其操作碼是用圖素表示的,該圖素形象說明CPU做什么,其操作數(shù)的表示方法與語句指令相同。如: ( )該指令中:( )可認(rèn)為是操作碼,表示一個(gè)二進(jìn)制賦值操作。是操作數(shù),表示賦值的對(duì)象。 梯形邏輯指令也可不帶操作數(shù)。如: |NOT|是對(duì)邏輯操作結(jié)果取反的操作。4.1.2 操作數(shù) 1. 標(biāo)識(shí)符及表示參數(shù) 一般情況下,指令的操作數(shù)在PLC的存儲(chǔ)器中,此時(shí)操作數(shù)由操作數(shù)標(biāo)識(shí)符和參數(shù)組成。操作數(shù)標(biāo)識(shí)符告訴處理器操作數(shù)放在存儲(chǔ)器的哪個(gè)區(qū)域及操作數(shù)位數(shù);標(biāo)識(shí)參數(shù)那么進(jìn)一
3、步說明操作數(shù)在該存儲(chǔ)區(qū)域內(nèi)的具體位置。 操作數(shù)標(biāo)識(shí)符由主標(biāo)識(shí)符和輔助標(biāo)識(shí)符組成。主標(biāo)識(shí)符表示操作數(shù)所在的存儲(chǔ)區(qū),輔助標(biāo)識(shí)符進(jìn)一步說明操作數(shù)的位數(shù)長度。假設(shè)沒有輔助標(biāo)識(shí)符指操作數(shù)的位數(shù)是一位。 主標(biāo)識(shí)符有:I(輸入過程映像存儲(chǔ)區(qū)),Q(輸出過程映象存儲(chǔ)區(qū)),M(位存儲(chǔ)區(qū)),PI(外部輸入),PQ(外部輸入),T(定時(shí)器),C(計(jì)數(shù)器),DB(數(shù)據(jù)塊),L(本地?cái)?shù)據(jù));輔助標(biāo)識(shí)符有:X(位),B(字節(jié)),W(字2字節(jié)),D(雙字4字節(jié))。 PLC物理存儲(chǔ)器是以字節(jié)為單位的,所以存儲(chǔ)單元規(guī)定為字節(jié)單元。位地址參數(shù)用一個(gè)點(diǎn)與字節(jié)地址分開。如: 當(dāng)操作數(shù)長度是字或雙字時(shí),標(biāo)識(shí)符后給出的標(biāo)識(shí)參數(shù)是字或雙字
4、內(nèi)的最低字節(jié)單元號(hào)。圖給出了字節(jié)、字、雙字的相互關(guān)系及表示方法。當(dāng)使用寬度為字或雙字的地址時(shí),應(yīng)保證沒有生成任何重疊的字節(jié)分配,以免造成數(shù)據(jù)讀寫錯(cuò)誤。圖4.1 以字節(jié)單元為基準(zhǔn)標(biāo)記存儲(chǔ)器存儲(chǔ)單元位存儲(chǔ)區(qū)M表4.1 存儲(chǔ)區(qū)及其功能 表4.1 存儲(chǔ)區(qū)及其功能 2. 操作數(shù)的表示法 在STEP7中,操作數(shù)有兩種表示方法:一是物理地址(絕對(duì)地址)表示法;二是符號(hào)地址表示法。為一個(gè)物理地址定義有意義的符號(hào)名,可使程序的可讀性增強(qiáng),降低編程時(shí)由于筆誤而造成的程序錯(cuò)誤。 用物理地址表示操作數(shù)時(shí),要明確指出操作數(shù)的所在存儲(chǔ)區(qū),該操作數(shù)的位數(shù)具體位置。例如:是用物理地址表示的操作數(shù),其中Q表示這是一個(gè)在輸出過程
5、映像區(qū)中的輸出位,具體位置是第四個(gè)字節(jié)的第0位。 STEP7 允許用符號(hào)地址表示操作數(shù),如可用符號(hào)名MOTOR_ON替代表示,符號(hào)名必須先定義后使用,而且符號(hào)名必須是惟一的,不能重名。定義符號(hào)時(shí),需要指明操作數(shù)所在的存儲(chǔ)區(qū),操作數(shù)的位數(shù)、具體位置及數(shù)據(jù)類型。4.1.3 尋址方式 操作數(shù)是指令的操作或運(yùn)算對(duì)象。所謂尋址方式是指令得到操作數(shù)的方式,可以直接給出或間接給出??捎米鱏TEP7指令操作對(duì)象的有:常數(shù);S7狀態(tài)字中的狀態(tài)位;S7的各種存放器、數(shù)據(jù)塊;功能塊FB,F(xiàn)C和系統(tǒng)功能塊SFB,SFC;S7的各存儲(chǔ)區(qū)中的單元。 S7有四種尋址方式,它們分別是:立即尋址、存儲(chǔ)器直接尋址、存儲(chǔ)器間接尋址
6、和存放器間接尋址。 1. 立即尋址 這是對(duì)常數(shù)或常量的尋址方式。操作數(shù)本身直接包含在指令中。有些指令中的操作數(shù)是惟一的,為方便起見不再在指令中特別寫出。下面是立即尋址的例子:SET /把RLO置1OW W#16#A320 /將常量W#16#A320與累加器1“或運(yùn)算L 27 /把整數(shù)27裝入累加器1L ABCD /把ASCII碼字符ABCD裝入累加器1L C#0100 /把BCD碼常數(shù)0100裝入累加器1 2. 直接尋址 包括對(duì)存放器和存儲(chǔ)器的直接尋址。在直接尋址的指令中,直接給出操作數(shù)的存儲(chǔ)單元地址。例如:A I 0.0 /對(duì)輸入位進(jìn)行“與邏輯操作S L 20.0 /把本地?cái)?shù)據(jù)位置1= M
7、115.4 /使存儲(chǔ)區(qū)位的內(nèi)容等于RLO的內(nèi)容L IB 10 /把輸入字節(jié)IB 10的內(nèi)容裝入累加器1T DBD 12 /把累加器1中的內(nèi)容傳送給數(shù)據(jù)雙字DBD 12中 3. 存儲(chǔ)器間接尋址 在存儲(chǔ)器間接尋址的指令中,給出一個(gè)存儲(chǔ)器(必須是表中的存儲(chǔ)器),該存儲(chǔ)器的內(nèi)容是操作數(shù)所在存儲(chǔ)單元的地址,該地址又被稱為地址指針。存儲(chǔ)器間接尋址方式的優(yōu)點(diǎn)是,當(dāng)程序執(zhí)行時(shí),能改變操作數(shù)的存儲(chǔ)器地址,這對(duì)程序中的循環(huán)尤為重要。以下是使用存儲(chǔ)器雙字指針間接尋址的例子: A IMD 2 /對(duì)由MD 2指出的輸入位進(jìn)行“與邏輯操作。如:MD 2的值為 /2#0000 0000 0000 0000 0000 000
8、0 0101 0110,那么是對(duì)進(jìn)行“與操作。 = DIXDBD 2 /將RLO賦值給數(shù)據(jù)位,具體數(shù)據(jù)由數(shù)據(jù)雙字DBD 2指出。 L IBDID 4 /將由數(shù)據(jù)雙字DID 4指出的輸入字節(jié)裝入累加器1。如:DID 4的值為2#0000 0000 0000 0000 0000 0000 / 0101 0000,那么是對(duì)IB 10進(jìn)行裝入操作。 O QLD 3 /對(duì)由本地?cái)?shù)據(jù)雙字指出的輸出位進(jìn)行“或邏輯操作。 依據(jù)要描述的地址復(fù)雜程度,地址指針可以是字或雙字的,存儲(chǔ)指針的存儲(chǔ)器大小也應(yīng)是字的或雙字的,由于定時(shí)器(T)、計(jì)數(shù)器(C)、數(shù)據(jù)塊(DB)、功能塊(FB或FC)的編號(hào)范圍在0到65 535之
9、內(nèi),所以用字指針就足夠了,相應(yīng)的也只需字存儲(chǔ)器存儲(chǔ)指針。其它的地址,如:輸入位、輸出位,那么要用到雙字指針,并用雙字存儲(chǔ)器存儲(chǔ)指針。指針的兩種格式如下圖。如果要用雙字格式的指針訪問一個(gè)字、字節(jié)或雙字存儲(chǔ)器,必須保證指針中的位編號(hào)為0。圖4.2 存儲(chǔ)器間接尋址的指針格式位3至18(范圍0至65535):被尋址字節(jié)的字節(jié)編號(hào) 位0至2(范圍0至7):被尋址位的位編號(hào)下面的例子顯示如何產(chǎn)生字或雙字指針并用其尋址:L +5 /將整數(shù)+5裝入累加器1T MW 2 /將累加器1的內(nèi)容傳送給存儲(chǔ)字MW 2,此時(shí)MW 2的內(nèi)容為5OPN DBMW 2 /翻開由MW 2指出的數(shù)據(jù)塊,即,翻開數(shù)據(jù)塊5L P#8.
10、7 /將2#0000 0000 0000 0000 0000 0000 0100 0111(二進(jìn)制數(shù))裝入累加器1T MD 2 /將累加器1的內(nèi)容傳送給存儲(chǔ)字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)容被裝入累加器2+I /將累加器1和累加器2內(nèi)容相加,在累加器1中得到的“和為 /2#0000 0000 0000 0000 0000 0000 0110 0111T MD 4 /將累加器1的當(dāng)前內(nèi)
11、容傳送給存儲(chǔ)字MD 4A IMD 2 /對(duì)輸入位進(jìn)行“與邏輯操作= QMD 4 /將RLO賦值給輸出位 4. 存放器間接尋址 在S7中有兩個(gè)地址存放器,它們是AR1和AR2。通過地址存放器,可以對(duì)各存儲(chǔ)區(qū)的存儲(chǔ)器內(nèi)容實(shí)現(xiàn)存放器間接尋址。地址存放器的內(nèi)容加上偏移量形成地址指針,該指針指向數(shù)值所在的存儲(chǔ)單元。 地址存放器存儲(chǔ)的地址指針有兩種格式,其長度均為雙字。圖給出了這兩種格式的細(xì)節(jié)及其差異。其中,第一種地址指針格式包括被尋址數(shù)值所在存儲(chǔ)單元地址的字節(jié)編號(hào)和位編號(hào),至于對(duì)哪個(gè)存儲(chǔ)區(qū)尋址,那么必須在指令中明確直接給出。這種指針格式適用于在確定的存儲(chǔ)區(qū)內(nèi)尋址,即區(qū)內(nèi)存放器間接尋址。而第二種地址指針格
12、式中還包含了數(shù)值所在存儲(chǔ)區(qū)的說明位(存儲(chǔ)區(qū)域標(biāo)志位),這樣,就可通過改變這些位,實(shí)現(xiàn)跨區(qū)尋址,這種指針格式用于區(qū)域間存放器間接尋址。區(qū)域標(biāo)識(shí)位的組合狀態(tài)見表。圖4.3 存放器間接尋址的指針格式31 24 23 16 15 8 7 0位31=0表明是區(qū)域內(nèi)寄存器間接尋址;=1表明是區(qū)域間寄存器間接尋址。位24、25和26(r r r):區(qū)域標(biāo)識(shí)(見表3.2)位3至18(bbbb bbbb bbbb bbbb):被尋址位的字節(jié)編號(hào)(范圍0至65535)位0至2():被尋址的位編號(hào)(范圍0至7)表4.2 地址指針區(qū)域標(biāo)識(shí)位含義 如果要用到存放器指針格式訪問一個(gè)字節(jié)、字或雙字,那么必須保證指針中位地址
13、編號(hào)為0。下面的例子分別說明如何使用這兩種指針格式實(shí)現(xiàn)間接尋址:L P#8.6 /將2#0000 0000 0000 0000 0000 0000 0100 0110裝入累加器1LAR1 /將累加器1的內(nèi)容傳送至地址存放器1A IAR1,P#0.0 /地址存放器1加偏移量結(jié)果為2#0000 0000 0000 0000 / / / 0000 0000 0100 0110,指明是對(duì)輸入位進(jìn)行“與操作= QAR1,P#4.1 /地址存放器1加偏移量結(jié)果為2#0000 0000 0000 0000 / / / 0000 0000 01100111,指明對(duì)輸出位進(jìn)行賦值操作L P#8.0 /將2#00
14、00 0000 0000 0000 0000 0000 0100 0000裝入累加器1LAR2 /將累加器1的內(nèi)容傳送至地址存放器2L IBAR2,P#2.0 /將輸入字節(jié)IB 10的內(nèi)容裝入累加器1T MWAR2,P#200.0 /將累加器1的內(nèi)容傳送至存儲(chǔ)字MW 208L P#I8.7 /將2#1000 0001 0000 0000 0000 0000 0100 0111裝入累加器1LAR1 /將累加器1的內(nèi)容傳送至地址存放器1L P#Q8.7 /將2#1000 0010 0000 0000 0000 0000 0100 0111裝入累加器1LAR2 /將累加器1的內(nèi)容傳送至地址存放器2A
15、 AR1,P#0.0 /對(duì)輸入位進(jìn)行“與邏輯操作= AR2,P#1.1 /賦值給輸出位Q10.0 L P#I8.0 /將輸入位的雙字指針裝入累加器1LAR2 /將累加器1的內(nèi)容傳送至地址存放器2L P#M8.0 /將存儲(chǔ)位的雙字指針裝入累加器1LAR1 /將累加器1的內(nèi)容傳送至地址存放器1L BAR2,P#2.0 /把輸入字節(jié)IB 10裝入累加器1,輸入字節(jié)10為8(AR2)加2(偏移量)T DAR1,P#56.0 /把存儲(chǔ)雙字MD 64裝入累加器1,存儲(chǔ)雙字64為8(AR1)/加56(偏移量)4.1.4 狀態(tài)字 狀態(tài)字用于表示CPU執(zhí)行指令時(shí)所具有的狀態(tài)。一些指令是否執(zhí)行或以何方式執(zhí)行可能取
16、決于狀態(tài)字中的某些位;執(zhí)行指令時(shí)也可能改變狀態(tài)字中的某些位;你也能在位邏輯指令或字邏輯指令中訪問并檢測(cè)它們。圖顯示了狀態(tài)字的結(jié)構(gòu)。圖4.4 狀態(tài)字的結(jié)構(gòu)15 9 8 7 6 5 4 3 2 1 0 (1)首次檢測(cè)位(FC) 狀態(tài)字的位0稱為首次檢測(cè)位。若FC位的狀態(tài)為0,則表明一個(gè)梯形邏輯網(wǎng)絡(luò)的開始,或指令為邏輯串第一條指令。CPU對(duì)邏輯串第一條指令的檢測(cè)(稱為首次檢測(cè))產(chǎn)生的結(jié)果直接保存在狀態(tài)字的RLO位中,經(jīng)過首次檢測(cè)存放在RLO中的0或1被稱為首次檢測(cè)結(jié)果。FC位在邏輯串的開始時(shí)總是0,在邏輯串指令執(zhí)行過程中FC位為1,輸出指令或與邏輯運(yùn)算有關(guān)的轉(zhuǎn)移指令(表示一個(gè)邏輯串結(jié)束的指令)將FC
17、清0。 (2)邏輯操作結(jié)果(RLO) 狀態(tài)字的位1稱為邏輯操作結(jié)果RLO(Result of Logic Operation)。該位存儲(chǔ)位邏輯指令或算術(shù)比較指令的結(jié)果。在邏輯串中,RLO位的狀態(tài)能夠表示有關(guān)信號(hào)流的信息。RLO的狀態(tài)為1,表示有信號(hào)流(通);為0,表示無信號(hào)流(斷)??捎肦LO觸發(fā)跳轉(zhuǎn)指令。 (3)狀態(tài)位(STA) 狀態(tài)字的位2稱為狀態(tài)位。狀態(tài)位不能用指令檢測(cè),它只是在程序測(cè)試中被CPU解釋并使用。如果一條指令是對(duì)存儲(chǔ)區(qū)操作的位邏輯指令,那么無論是對(duì)該位的讀與寫操作,STA總是與該位的值取得一致;對(duì)不訪問存儲(chǔ)區(qū)的位邏輯指令來說,STA沒有意義,此時(shí)它總被置為1。 (4)或位(O
18、R) 狀態(tài)字的位3稱為或位(OR)。在先邏輯“與后邏輯“或的邏輯串中,OR位暫存邏輯“與的操作結(jié)果,以便進(jìn)行后面的邏輯“或運(yùn)算。其它指令將OR位清0。 (5)溢出位(OV) 狀態(tài)字的位4稱為溢出位,溢出位被置1,說明一個(gè)算術(shù)運(yùn)算或浮點(diǎn)數(shù)比較指令執(zhí)行時(shí)出現(xiàn)錯(cuò)誤(錯(cuò)誤:溢出、非法操作、不標(biāo)準(zhǔn)格式)。后面的算術(shù)運(yùn)算或浮點(diǎn)數(shù)比較指令執(zhí)行結(jié)果正常的話OV位就被清0。 (6)溢出狀態(tài)保持位(OS) 狀態(tài)字的位5稱為溢出狀態(tài)保持位(或稱為存儲(chǔ)溢出位)。OV被置1時(shí)OS也被置1;OV被清0時(shí)OS仍保持。所以它保存了OV位,可用于指明在先前的一些指令執(zhí)行中是否產(chǎn)生過錯(cuò)誤。只有下面的指令才能復(fù)位OS位:JOS(O
19、S=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 算術(shù)運(yùn)算后的CC1和CC0表4.4 比較、移位和循環(huán)移位、字邏輯指令后的CC1和CC0 (8)二進(jìn)制結(jié)果位(BR) 狀態(tài)字的位8稱為二進(jìn)制結(jié)果位。它將字處理程序與位處理聯(lián)系起來,在一段既有位操作又有字操作的程序中,用于表示字操作結(jié)果是否正確(異常)。將BR位參加程序后,無論字操作結(jié)果如何,都不會(huì)造成二進(jìn)制邏輯鏈中斷。在LAD的
20、方塊指令中,BR位與ENO有對(duì)應(yīng)關(guān)系,用于說明方塊指令是否被正確執(zhí)行:如果執(zhí)行出現(xiàn)了錯(cuò)誤,BR位為0,ENO也為0;如果功能被正確執(zhí)行,BR位為1,ENO也為1。 在用戶編寫的FB和FC程序中,必須對(duì)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)算指令、位操作指令和位測(cè)試指令,它們可以對(duì)布爾操作數(shù)(BOOL)的信號(hào)映態(tài)掃描并完成邏輯操作。邏輯操作結(jié)果(RLO)用以
21、賦值、置位、復(fù)位布爾操作數(shù),也控制定時(shí)器和計(jì)數(shù)器的運(yùn)行。4.2.1 位邏輯運(yùn)算指令 位邏輯運(yùn)算指令是“與(AND)、“或(OR)、“異或(XOR)指令及其組合。它對(duì)“0或“1這些布爾操作數(shù)掃描,經(jīng)邏輯運(yùn)算后將邏輯操作結(jié)果送入狀態(tài)字的RLO位。 1. “與和“與非(A,AN)指令 邏輯“與在梯形圖里是用串聯(lián)的觸點(diǎn)回路表示的,被掃描的操作數(shù)那么表示為觸點(diǎn)符 號(hào),操作數(shù)標(biāo)在觸點(diǎn)上方。如果觸點(diǎn)是常開觸點(diǎn)(動(dòng)合觸點(diǎn)),那么對(duì)“1掃描相應(yīng)操作數(shù)。在PLC中規(guī)定:假設(shè)操作數(shù)是“1,那么常開觸點(diǎn)“動(dòng)作,即認(rèn)為是“閉合的;假設(shè)操作數(shù)是“0,那么常開觸點(diǎn)“不動(dòng)作,即觸點(diǎn)仍然翻開。如果觸點(diǎn)是常閉觸點(diǎn)(動(dòng)斷觸點(diǎn)),那
22、么對(duì)“0掃描相應(yīng)操作數(shù)。在PLC中規(guī)定:假設(shè)操作數(shù)是“1,那么常閉觸點(diǎn)“動(dòng)作,即觸點(diǎn)“斷開;假設(shè)操作數(shù)是“0,那么常閉觸點(diǎn)“不動(dòng)作,即觸點(diǎn)仍保持閉合。 如果串聯(lián)回路里的所有觸點(diǎn)皆閉合,該回路就通“電了。在圖的回路中,如果所有觸點(diǎn)閉合,即當(dāng)輸入和輸出的信號(hào)狀態(tài)都是“1(觸點(diǎn)閉合)、且位存儲(chǔ)器為“0(該觸點(diǎn)仍保持原閉合位置)時(shí),輸出才為“1;如果有一個(gè)或多個(gè)觸點(diǎn)是翻開的,那么輸出的信號(hào)狀態(tài)就為“0(繼電器觸點(diǎn)翻開)。 上述梯形邏輯圖,可用語句表指令完全表示。對(duì)應(yīng)的語句表為:A I0.0 AN M10.1 Q4.0 圖4.5 “與邏輯梯形圖 ( )I0.0 Q4.1 M10.1 Q4.0 在上面的語
23、句表中,操作數(shù)是被依次掃描的,其掃描的結(jié)果再邏輯“與。對(duì)信號(hào)狀態(tài)進(jìn)行“1掃描,并做邏輯與運(yùn)算,那么用助記符“A來標(biāo)識(shí),相關(guān)的操作數(shù)指定了要掃描對(duì)象。當(dāng)操作數(shù)的信號(hào)狀態(tài)是“1時(shí),其掃描結(jié)果也是“1。如果操作數(shù)的信號(hào)狀態(tài)是“0,那么掃描結(jié)果也是“0。對(duì)信號(hào)狀態(tài)進(jìn)行“0掃描,并做邏輯“與運(yùn)算,那么用助記符“AN來標(biāo)識(shí)取反的“與邏輯操作當(dāng)操作數(shù)的信號(hào)狀態(tài)是“0時(shí),其掃描結(jié)果就是“1。如果操作數(shù)的信號(hào)狀態(tài)是“1,那么掃描結(jié)果就是“0。 在第一條語句里,CPU掃描的是輸入本次掃描也被稱為首次掃描。首次掃描的結(jié)果被直接保存在RLO(邏輯操作結(jié)果)中,在下一條語句中,掃描操作數(shù)輸出;這次掃描的結(jié)果和RLO中保
24、存的上一次結(jié)果相“與,產(chǎn)生的新結(jié)果再存入RLO。如此逐一進(jìn)行,在邏輯序列結(jié)束處的RLO可用作進(jìn)一步處理。例如,用來鼓勵(lì)一個(gè)輸出信號(hào)。在上面的語句表中,把RLO的值賦給輸出Q 4.0(Q 4.0)。 2. “或和“或非(O,ON)指令 邏輯“或在梯形圖里是用并聯(lián)的觸點(diǎn)回路表示的,被掃描的操作數(shù)標(biāo)在觸點(diǎn)上方。在 觸點(diǎn)并聯(lián)的情況下,假設(shè)有一個(gè)或一個(gè)以上的觸點(diǎn)閉合,那么該回路就“通電。在圖中,驅(qū)動(dòng)信號(hào)通過并聯(lián)觸點(diǎn)回路加到輸出。只要有一個(gè)觸點(diǎn)閉合,輸出的信號(hào)狀態(tài)就為“l(fā)。如果所有的觸點(diǎn)都是翻開的,那么輸出就為“0。在圖中,僅當(dāng)輸入和輸出兩者都為“0,且為“1時(shí),輸出才為“0。圖4.6 “或邏輯梯形圖 I
25、1.1 M2.0 Q4.0 上述梯形邏輯圖,也可用語句表指令表示。對(duì)應(yīng)的語句表為: O I1.1 ON M2.0 O Q4.0 Q4.1 在上面的語句表中,操作數(shù)是依次被掃描的,其掃描的結(jié)果再邏輯“或。對(duì)信號(hào)狀態(tài)進(jìn)行“1掃描,并做邏輯“或運(yùn)算,用助記符“O來標(biāo)識(shí)。當(dāng)操作數(shù)的信號(hào)狀態(tài)是“1時(shí),其掃描結(jié)果也是“1。對(duì)信號(hào)狀態(tài)進(jìn)行“0掃描,并做邏輯“或運(yùn)算,那么用助記符“ON來標(biāo)識(shí)取反的“或邏輯操作當(dāng)操作數(shù)的信號(hào)狀態(tài)是“0時(shí),其掃描結(jié)果就是“1。如果操作數(shù)的信號(hào)狀態(tài)是“1,那么掃描結(jié)果就是“0。 在第一條語句里,處理器掃描的是輸入首次掃描的結(jié)果被直接保存在RLO中,并和下一條語句的掃描結(jié)果相“或,產(chǎn)
26、生的新結(jié)果再存入RLO。如此逐一進(jìn)行,在邏輯序列結(jié)束處的RLO可用作進(jìn)一步處理。例如,用來鼓勵(lì)一個(gè)輸出信號(hào)。在上面的語句表中,把RLO的值賦給輸出。 3. “異或和“異或非(X,XN)指令 圖是“異或邏輯梯形圖,下面是與梯形圖對(duì)應(yīng)的語句表。在的語句表中,使用了“異或和“異或非指令,分別用助記符“X和“XN來標(biāo)識(shí)。它類似“或和“或非指令,用于掃描并聯(lián)回路能否“通電。 X 當(dāng)執(zhí)行語句表中的第一條指令時(shí),首次掃描的結(jié)果被直接保存在RLO中,然后RLO中的值和第二條指令的掃描結(jié)果進(jìn)行“異或操作,得到的新結(jié)果再存入RLO。如此掃描、“異或并刷新RLO,直到賦值指令將RLO的值賦給輸出Q 4.0 。 圖中
27、,僅當(dāng)兩個(gè)觸點(diǎn)(輸入和輸入I1.1)的掃描結(jié)果不同,即只有一個(gè)為“1時(shí),RLO才為“1,并賦值給輸出使為“1。假設(shè)兩個(gè)信號(hào)的掃描結(jié)果相同(均為“1或“0),那么為“0。與O和ON比較,X和XN排除了兩個(gè)信號(hào)掃描結(jié)果為“1時(shí),使輸出為“1的可能。 圖4.7 “異或邏輯梯形圖 4.2.2 位操作指令 1. 輸出指令 邏輯串輸出指令又稱為賦值操作指令,該操作把狀態(tài)字中RLO的值賦給指定的操作數(shù)(位地址)。假設(shè)RLO為“1,那么操作數(shù)被置位,否那么操作數(shù)被復(fù)位。表列出了操作數(shù)的數(shù)據(jù)類型和所在的存儲(chǔ)區(qū)。 邏輯串輸出指令通過把首次檢測(cè)位(FC位)置0,來結(jié)束一個(gè)邏輯串。當(dāng)FC位為0時(shí),說明程序中的下一條指
28、令是一個(gè)新邏輯串的第一條指令,CPU對(duì)其進(jìn)行首次掃描操作。這一點(diǎn)在梯形圖中顯示得很清楚。表4.5 輸出指令 LAD輸出指令像繼電器邏輯圖中的線圈一樣工作。如果電流能夠流經(jīng)電路到達(dá)線圈(即RLO為1)的話,那么繼電器線圈通電,其常開觸點(diǎn)閉合,否那么線圈不通電,常開觸點(diǎn)斷開。在LAD中,只能將輸出指令放在邏輯符號(hào)串的最右端,但其前面必須有鏈路,不能將輸出指令單獨(dú)放在一個(gè)空網(wǎng)絡(luò)中。 一個(gè)RLO可被用來驅(qū)動(dòng)幾個(gè)輸出元件。在LAD中,輸出線圈是上下依次排列的。在STL中,與輸出信號(hào)有關(guān)的指令被一個(gè)接一個(gè)地連續(xù)編程,這些輸出具有相同的優(yōu)先級(jí)。圖是多重輸出梯形圖,與之對(duì)應(yīng)的語句表如下:圖是多重輸出梯形圖 中
29、間輸出指令在存儲(chǔ)邏輯中,用于存儲(chǔ)RLO的中間值,該值是中間輸出指令前的位前的邏輯操作結(jié)果。在與其它觸點(diǎn)串聯(lián)的情況下,中間輸出與一般觸點(diǎn)的功能一樣。中間輸出指令不能用于結(jié)束一個(gè)邏輯串,因此,中間輸出指令不能放在邏輯串的結(jié)尾或分支的結(jié)尾處,圖是中間輸出梯形圖。 從圖中可以看出,中間輸出指令能夠在位操作邏輯串中驅(qū)動(dòng)等效繼電器,并影響繼電器的觸點(diǎn)狀態(tài)。這使得梯形圖可以多級(jí)輸出,從而提高了編程效率。圖4.9 中間輸出 2 . 置位復(fù)位指令 置位復(fù)位指令根據(jù)RLO的值,來決定被尋址位的信號(hào)狀態(tài)是否需要改變。假設(shè)RLO的值為1,被尋址位的信號(hào)狀態(tài)被置1或清0;假設(shè)RLO是0,那么被尋址位的信號(hào)保持原狀態(tài)不變
30、。置位復(fù)位指令有關(guān)內(nèi)容見表。 對(duì)于置位操作,一旦RLO為1,那么被尋址信號(hào)(輸出信號(hào))狀態(tài)置1,即使RLO又變?yōu)?,輸出仍保持為1;對(duì)于復(fù)位操作,一旦RLO為1,那么被尋址信號(hào)(輸出信號(hào))狀態(tài)置 0,即使RLO又變?yōu)?,輸出仍保持為0;這一特性又被稱為靜態(tài)的置位復(fù)位,相應(yīng)地,賦值輸出被稱為動(dòng)態(tài)賦值輸出。置位復(fù)位指令也用于結(jié)束一個(gè)邏輯串,因此,在LAD中置位復(fù)位指令要放在邏輯串的最右端,而不能放在邏輯串中間。復(fù)位指令還可用于復(fù)位定時(shí)器和計(jì)數(shù)器。 表4.6 置位復(fù)位指令( S )圖4.10 置位復(fù)位指令(a) 復(fù)位指令操作 3. RS觸發(fā)器 RS觸發(fā)器梯形圖方塊指令表示見表。方塊中標(biāo)有一個(gè)置位輸入
31、(S)端,一個(gè)復(fù)位輸入(R)端,輸出端標(biāo)為Q。觸發(fā)器可以用在邏輯串最右端,結(jié)束一個(gè)邏輯串,也可用在 邏輯串中,影響右邊的邏輯操作結(jié)果。 表4.7 RS觸發(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時(shí),下面的復(fù)位輸入最
32、終有效既復(fù)位輸入優(yōu)先,觸發(fā)器或被置位或保持置位不變。圖給出了使用置位優(yōu)先型RS觸發(fā)器的梯形圖例子,圖中也給出了與梯形圖對(duì)應(yīng)的語句表程序。A I0.0 A M0.0 = Q4.0 圖4.11 置位優(yōu)先型RS觸發(fā)器 4. 對(duì)RLO的直接操作指令 這一類指令直接對(duì)邏輯操作結(jié)果RLO進(jìn)行操作,改變狀態(tài)字中RLO位的狀態(tài)。有關(guān)內(nèi)容見表。表4.8 對(duì)RLO的直接操作指令4.2.3 位測(cè)試指令 當(dāng)信號(hào)狀態(tài)變化時(shí)就產(chǎn)生跳變沿。當(dāng)從0變到1時(shí),產(chǎn)生一個(gè)上升沿(或正跳沿);假設(shè)從1變到0,那么產(chǎn)生一個(gè)下降沿(或負(fù)跳沿)。跳變沿檢測(cè)的原理是:在每個(gè)掃描周期中把信號(hào)狀態(tài)和它在前一個(gè)掃描周期的狀態(tài)進(jìn)行比較,假設(shè)不同那么
33、說明有一個(gè)跳變沿。因此,前一個(gè)周期里的信號(hào)狀態(tài)必須被存儲(chǔ),以便能和新的信號(hào)狀態(tài)相比較。 S7中有兩類跳變沿檢測(cè)指令,一種是對(duì)RLO的跳變沿檢測(cè)的指令,另一種是對(duì)觸點(diǎn)跳變沿直接檢測(cè)的梯形圖方塊指令。具體內(nèi)容見表。表4.9 跳變沿檢測(cè)指令 圖是使用RLO正跳沿檢測(cè)指令的例子。這個(gè)例子中,假設(shè)CPU檢測(cè)到輸入有一個(gè)正跳沿,將使得輸出的線圈在一個(gè)掃描周期內(nèi)通電。對(duì)輸入常開觸點(diǎn)掃描的RLO值(在本例中,此RLO正好與輸入的信號(hào)狀態(tài)相同)存放在存儲(chǔ)位中。圖4.12 RLO正跳沿檢測(cè) 在掃描周期中,CPU對(duì)信號(hào)狀態(tài)掃描并形成RLO值,假設(shè)該RLO值是1而存放在中的上次RLO值是0,這說明FP指令檢測(cè)到一個(gè)R
34、LO的正跳沿,那么FP指令把RLO位置1。如果RLO在相鄰的兩個(gè)掃描周期中相同(全為1或0),那么FP語句把RLO位清0。同樣,如果FN指令檢測(cè)到一個(gè)RLO的負(fù)跳沿,那么FN指令把RLO位置1。如果RLO在相鄰的兩個(gè)掃描周期中相同(全為1或0),那么FN語句把RLO位清0。 需要注意的是,在編程時(shí)必須考慮到,F(xiàn)P和FN檢測(cè)到的是在RLO中表現(xiàn)出的變化,而不是觸點(diǎn)的狀態(tài)變化(前面的圖中是特例)。因?yàn)?,一般情況下,RLO可能由一個(gè)邏輯串形成,并不單獨(dú)與某觸點(diǎn)的狀態(tài)直接相關(guān)。假設(shè)需要在邏輯串中單獨(dú)檢測(cè)某觸點(diǎn)的跳變沿,可使用對(duì)觸點(diǎn)跳變沿直接檢測(cè)的梯形圖方塊指令。圖是使用觸點(diǎn)負(fù)跳沿檢測(cè)指令的例子。圖中,
35、由給出需要檢測(cè)的觸點(diǎn)編號(hào)(I 0.3),(M 0.0)用于存放該觸點(diǎn)在前一個(gè)掃描周期的狀態(tài)。圖4.13 觸點(diǎn)負(fù)跳沿檢測(cè) 執(zhí)行觸點(diǎn)正跳沿檢測(cè)指令時(shí),CPU將的當(dāng)前觸點(diǎn)狀態(tài)與存在中的上次觸點(diǎn)狀態(tài)相比較,假設(shè)當(dāng)前為1上次為0,說明有正跳沿產(chǎn)生,那么輸出Q置1;其它情況下,輸出Q被清0。對(duì)于觸點(diǎn)負(fù)跳沿指令,假設(shè)當(dāng)前為0上次為1,那么輸出Q置1,其余情況Q被清0。由于不可能在相鄰的兩個(gè)掃描周期中連續(xù)檢測(cè)到正跳沿(或負(fù)跳沿),因此,輸出Q只可能在一個(gè)掃描周期中保持為1(單穩(wěn)輸出)。 在梯形圖中,觸點(diǎn)跳變沿檢測(cè)方塊和RS觸發(fā)器方塊可被看做一個(gè)特殊常開觸點(diǎn)。該常開觸點(diǎn)的特性是:假設(shè)方塊的Q為1,那么觸點(diǎn)閉合;
36、假設(shè)Q為0,那么觸點(diǎn)斷開。 4.2.4 位邏輯指令編程舉例 1. 傳送帶控制 圖表示一個(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 用于傳送帶系統(tǒng)符號(hào)編程的元素圖4.15 控制傳送帶的梯形圖與相應(yīng)的語句表 2. 串并聯(lián)組合表示法 當(dāng)邏輯串是復(fù)雜組合時(shí),CPU的掃描順序是先“與后“或。圖4.16 (a)給出的梯形邏輯是觸點(diǎn)先并后串的例子,與其對(duì)應(yīng)的語句表為
37、: A( ) A( ) Q4.0 圖4.16(b)是先串后并的例子,與其對(duì)應(yīng)的語句表如下: A( A I0.0 O A I0.2 A M0.3 ) 圖4.16 串并聯(lián)組合邏輯梯形圖 (a) 先并后串邏輯梯形圖;(b) 先串后并邏輯梯形圖 3. 風(fēng)機(jī)監(jiān)控程序 某設(shè)備有三臺(tái)風(fēng)機(jī),當(dāng)設(shè)備處于運(yùn)行狀態(tài)時(shí),如果風(fēng)機(jī)至少有兩臺(tái)以上轉(zhuǎn)動(dòng),那么指示燈常亮;如果僅有一臺(tái)風(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í),指示燈不亮。實(shí)現(xiàn)上述功能的梯形圖程序見圖。圖4.17 風(fēng)機(jī)監(jiān)控程序 圖中,輸入位,分別表示風(fēng)機(jī)1,2,3。當(dāng)風(fēng)機(jī)轉(zhuǎn)動(dòng)時(shí),信號(hào)狀態(tài)為
38、1。使用CPU中的時(shí)鐘存儲(chǔ)器功能,并將其存儲(chǔ)在字節(jié)MB 9中,那么存儲(chǔ)位為2 Hz頻率信號(hào),為0.5 Hz頻率信號(hào)。存儲(chǔ)位為1時(shí)用于表示至少有兩臺(tái)風(fēng)機(jī)轉(zhuǎn)動(dòng),為1表示沒有風(fēng)機(jī)轉(zhuǎn)動(dòng)。設(shè)備運(yùn)行狀態(tài)用輸出位表示,為1時(shí)設(shè)備運(yùn)行。風(fēng)機(jī)轉(zhuǎn)動(dòng)狀態(tài)指示燈由控制。 下面給出實(shí)現(xiàn)風(fēng)機(jī)狀態(tài)檢測(cè)的語句表程序,從中可看出中間輸出指令的用法: A( A( O O ) O( ) O )4.3 定時(shí)器與計(jì)數(shù)器指令4.3.1 定時(shí)器指令 定時(shí)器是PLC中的重要部件,它用于實(shí)現(xiàn)或監(jiān)控時(shí)間序列。定時(shí)器是一種由位和字組成的復(fù)合單元,定時(shí)器的觸點(diǎn)由位表示,其定時(shí)時(shí)間值存儲(chǔ)在字存儲(chǔ)器中。S7-300/400提供了多種形式的定時(shí)器:脈沖定
39、時(shí)器(SP)、擴(kuò)展定時(shí)器(SE)、接通延時(shí)定時(shí)器(SD)、帶保持的接通延時(shí)定時(shí)器(SS)和斷電延時(shí)定時(shí)器(SF)。 1. 定時(shí)器的組成 在CPU的存儲(chǔ)器中留出了定時(shí)器區(qū)域,該區(qū)域用于存儲(chǔ)定時(shí)器的定時(shí)時(shí)間值。每個(gè)定時(shí)器為2 B,稱為定時(shí)字。在S7-300中,定時(shí)器區(qū)為512 B,因此最多允許使用256個(gè)定時(shí)器。因?yàn)槎〞r(shí)器區(qū)域的編址(以T打頭后跟定時(shí)器號(hào),只能按字訪問)以及存儲(chǔ)格式的特殊性,所以只有通過使用有關(guān)的定時(shí)器指令才能對(duì)該區(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í)間到后會(huì)引
40、起定時(shí)器觸點(diǎn)的動(dòng)作。 定時(shí)器的第0位到第11位存放二進(jìn)制格式的定時(shí)值,第12、13位存放二進(jìn)制格式的時(shí)基(如下圖)。這12位二進(jìn)制代碼表示的數(shù)值范圍是04096,實(shí)際使用范圍是0999。時(shí)基和時(shí)間值可以任意組合,以得到不同的定時(shí)分辨率和定時(shí)時(shí)間。表中給出了可能的組合情況。從表中可以看出,時(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í)字中。這一過程是由 操作系統(tǒng)控制自動(dòng)完成的,用戶只需給累加器1裝入不同的數(shù)值,即可
41、設(shè)置需要的定時(shí)時(shí) 間。為累加器1裝入數(shù)值的指令很多,但在累加器1低字中的數(shù)據(jù)應(yīng)符合圖所示的格式。為防止格式錯(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í)值,取值范圍為1999。 也可直接使用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í)器的
42、啟動(dòng)與運(yùn)行 PLC中的定時(shí)器相當(dāng)于時(shí)間繼電器。在使用時(shí)間繼電器時(shí),要為其設(shè)置定時(shí)時(shí)間,當(dāng)時(shí)間繼電器的線圈通電后,時(shí)間繼電器被啟動(dòng)。假設(shè)定時(shí)時(shí)間到,繼電器的觸點(diǎn)動(dòng)作。當(dāng)時(shí)間繼電器的線圈斷電時(shí),也將引起其觸點(diǎn)的動(dòng)作。該觸點(diǎn)可以在控制線路中控制其它繼電器。 S7中的定時(shí)器與時(shí)間繼電器的工作特點(diǎn)相似,對(duì)定時(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),而且類型多。圖給出了為定時(shí)作業(yè)如何正確選擇定時(shí)器的示意圖。以下將以LAD方塊圖為主詳細(xì)介紹定時(shí)器的運(yùn)行原理
43、及使用方法。圖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)閉合,即對(duì)該定時(shí)器按1掃描的結(jié)果為1。當(dāng)定時(shí)時(shí)間到,常開觸點(diǎn)斷開,對(duì)1信號(hào)的掃描結(jié)果為0。假設(shè)在給定的時(shí)間(即定時(shí)時(shí)間)過去之前RLO由1變?yōu)?,那么定時(shí)器被復(fù)位至啟動(dòng)前的狀態(tài),在這種情況下定時(shí)器的常開觸點(diǎn)斷開。 圖是使用脈沖定時(shí)器的梯形圖編程例子,圖是脈沖定時(shí)器的時(shí)序。以下是與梯形圖對(duì)應(yīng)的語句表:A I0.0 L S5T#2S
44、SP T5 /以脈沖定時(shí)器方式啟動(dòng)T5 R T5 /復(fù)位定時(shí)器T5 A T5 Q4.0 /使用定時(shí)器T5的觸點(diǎn)圖4.20 脈沖定時(shí)器指令圖4.21 脈沖定時(shí)器時(shí)序2) 擴(kuò)展脈沖定時(shí)器(見表4.13)表4.13 擴(kuò)展脈沖定時(shí)器 如果RLO有正跳沿,那么擴(kuò)展(輸入)脈沖定時(shí)器啟動(dòng)指令,以給出的時(shí)間值啟動(dòng)指定的定時(shí)器。即使RLO變?yōu)?,定時(shí)器仍保持運(yùn)行,直到定時(shí)時(shí)間到后才停止(定時(shí)器被復(fù)位)。在定時(shí)器運(yùn)行時(shí),其常開觸點(diǎn)閉合,即對(duì)該定時(shí)器按1掃描的結(jié)果為1。當(dāng)定時(shí)時(shí)間到后,那么常開觸點(diǎn)斷開,對(duì)1信號(hào)的掃描結(jié)果為0。 圖是使用擴(kuò)展脈沖定時(shí)器的梯形圖編程例子,圖是擴(kuò)展脈沖定時(shí)器的時(shí)序。以下是與梯形圖對(duì)應(yīng)的
45、語句表: A I0.0 L S5T#2S SE T5 /以擴(kuò)展脈沖定時(shí)器方式啟動(dòng)T5 R T5 /復(fù)位定時(shí)器T5 A T5 Q4.0/使用定時(shí)器T5的觸點(diǎn)圖4.22 擴(kuò)展脈沖定時(shí)器指令圖4.23 擴(kuò)展脈沖定時(shí)器時(shí)序3) 接通延時(shí)定時(shí)器(見表4.14)表4.14 接通延時(shí)定時(shí)器 如果RLO有正跳沿,那么接通延時(shí)定時(shí)器啟動(dòng)指令,以給出的時(shí)間值啟動(dòng)指定的定時(shí)器。當(dāng)定時(shí)時(shí)間到后,那么常開觸點(diǎn)閉合并保持(對(duì)1信號(hào)的掃描結(jié)果為1)。直到RLO變?yōu)?,定時(shí)器才被復(fù)位至啟動(dòng)前的狀態(tài),此時(shí)定時(shí)器的常開觸點(diǎn)斷開。假設(shè)在給定的時(shí)間(即定時(shí)時(shí)間)過去之前RLO由1變?yōu)?,那么定時(shí)器也被復(fù)位。 圖是使用接通延時(shí)定時(shí)器的
46、梯形圖編程例子,圖是接通延時(shí)定時(shí)器的時(shí)序。以下是與梯形圖對(duì)應(yīng)的語句表: A I0.0 L S5T#2S SD T5 /以接通延時(shí)定時(shí)器方式啟動(dòng)T5 R T5/復(fù)位定時(shí)器T5 A T5 Q4.0/使用定時(shí)器T5的觸點(diǎn)圖4.24 接通延時(shí)定時(shí)器指令圖4.25 接通延時(shí)定時(shí)器時(shí)序4) 保持型接通延時(shí)定時(shí)器(見表4.15)表4.15 保持型接通延時(shí)定時(shí)器 如果RLO有正跳沿,那么保持型接通延時(shí)定時(shí)器啟動(dòng)指令,以給出的時(shí)間值啟動(dòng)指定的定時(shí)器,即使RLO變?yōu)?,定時(shí)器仍保持運(yùn)行。此時(shí),定時(shí)器常開觸點(diǎn)斷開(即對(duì)該定時(shí)器按1掃描的結(jié)果為0),當(dāng)定時(shí)時(shí)間到后,常開觸點(diǎn)閉合并保持。假設(shè)RLO再有一個(gè)正跳沿,定時(shí)器
47、重新啟動(dòng),只有用復(fù)位指令才能復(fù)位該定時(shí)器。 圖是使用保持型接通延時(shí)定時(shí)器的梯形圖編程例子,圖是保持型接通延時(shí)定時(shí)器的時(shí)序。圖4.26 保持型接通延時(shí)定時(shí)器指令圖4.27 保持型接通延時(shí)定時(shí)器時(shí)序以下是與梯形圖對(duì)應(yīng)的語句表:L S5T#2SSS T5 /以保持型接通延時(shí)定時(shí)器方式啟動(dòng)T5R T5 /復(fù)位定時(shí)器T5A T5 Q4.0 /使用定時(shí)器T5的觸點(diǎn)5) 關(guān)斷延時(shí)定時(shí)器(見表4.16)表4.16 關(guān)斷延時(shí)定時(shí)器 如果RLO有負(fù)跳沿,那么關(guān)斷延時(shí)定時(shí)器啟動(dòng)指令,以給出的時(shí)間值啟動(dòng)指定的定時(shí) 器。當(dāng)RLO為1或在定時(shí)器運(yùn)行時(shí),其常開觸點(diǎn)閉合,即對(duì)該定時(shí)器按1掃描的結(jié)果為1。當(dāng)定時(shí)時(shí)間到后,那么常
48、開觸點(diǎn)斷開。假設(shè)在給定的時(shí)間(即定時(shí)時(shí)間)過去之前RLO由0變?yōu)?,那么定時(shí)器被復(fù)位至啟動(dòng)前的狀態(tài)。一直到RLO從1變?yōu)?之前,定時(shí)器不再啟動(dòng)(使用FR指令除外)。 圖是使用關(guān)斷延時(shí)定時(shí)器的梯形圖編程例子,圖是關(guān)斷延時(shí)定時(shí)器的時(shí)序。以下是與梯形圖對(duì)應(yīng)的語句表:A I0.0 L S5T#2S SF T5 /以關(guān)斷延時(shí)定時(shí)器方式啟動(dòng)T5 R T5 /復(fù)位定時(shí)器T5 A T5 Q4.0/使用定時(shí)器T5的觸點(diǎn)圖4.28 關(guān)斷延時(shí)定時(shí)器指令圖4.29 關(guān)斷延時(shí)定時(shí)器時(shí)序4. 定時(shí)器線圈指令表4.17 定時(shí)器線圈指令 圖以擴(kuò)展脈沖定時(shí)器為例說明定時(shí)器線圈指令的用法。與梯形圖功能對(duì)應(yīng)的語句表程序如下: L
49、S5T#2S SE T5 /以擴(kuò)展脈沖定時(shí)器方式啟動(dòng)T5 R T5 /復(fù)位定時(shí)器T5 A T5 Q4.0 /使用定時(shí)器T5的觸點(diǎn)圖4.30 擴(kuò)展脈沖定時(shí)器線圈指令4.3.2 計(jì)數(shù)器指令 S7中的計(jì)數(shù)器用于對(duì)RLO正跳沿計(jì)數(shù)。計(jì)數(shù)器是一種復(fù)合單元,它由表示當(dāng)前計(jì)數(shù)值的字和表示其狀態(tài)的位組成。S7中有三種計(jì)數(shù)器,它們分別是加計(jì)數(shù)器、減計(jì)數(shù)器和可逆計(jì)數(shù)器。 1. 計(jì)數(shù)器組成 在CPU中保存一塊存儲(chǔ)區(qū)作為計(jì)數(shù)器計(jì)數(shù)值存儲(chǔ)區(qū),每個(gè)計(jì)數(shù)器占用兩個(gè)字節(jié),稱為計(jì)數(shù)器字。計(jì)數(shù)器字中的第011位表示計(jì)數(shù)值(二進(jìn)制格式),計(jì)數(shù)范圍是0999。當(dāng)計(jì)數(shù)值到達(dá)上限999時(shí),累加停止。計(jì)數(shù)值到達(dá)下限0時(shí),將不再減小。對(duì)計(jì)數(shù)
50、器進(jìn)行置數(shù)(設(shè)置初始值)操作時(shí),累加器1低字中的內(nèi)容被裝入計(jì)數(shù)器字。計(jì)數(shù)器的計(jì)數(shù)值,將以此為初值增加或減小??梢杂枚喾N方式為累加器1置數(shù),但要確保累加器1低字符合圖規(guī)定的格式。圖4.31 累加器1低字的內(nèi)容計(jì)數(shù)值1272. 計(jì)數(shù)器梯形圖方塊指令表4.18 計(jì)數(shù)器梯形圖方塊指令 使用復(fù)位指令R可復(fù)位計(jì)數(shù)器。計(jì)數(shù)器被復(fù)位后,其計(jì)數(shù)值被清0,計(jì)數(shù)器輸出狀態(tài)也為0(常開觸點(diǎn)斷開)。計(jì)數(shù)器的各項(xiàng)操作應(yīng)按以下順序(編程順序)進(jìn)行:加計(jì)數(shù)、減計(jì)數(shù)、計(jì)數(shù)器置數(shù)、計(jì)數(shù)器復(fù)位、使用計(jì)數(shù)器輸出狀態(tài)信號(hào)和讀取當(dāng)前計(jì)數(shù)值。 在圖中使用了梯形圖可逆計(jì)數(shù)器方塊指令,輸入的正跳沿使計(jì)數(shù)器C10的計(jì)數(shù)值增加,輸入使計(jì)數(shù)值減小。
51、計(jì)數(shù)器C10的狀態(tài)用于控制輸出。給C10預(yù)置的初始值放在MW10中,當(dāng)有正跳沿時(shí),該值被置入計(jì)數(shù)器C10。以下是與梯形圖對(duì)應(yīng)的語句表程序:圖4.32 可逆計(jì)數(shù)器梯形圖方塊應(yīng)用CU C10 /假設(shè)有正跳沿,那么計(jì)數(shù)器C10的計(jì)數(shù)值加1A I0.1 CD C10 /假設(shè)有正跳沿,那么計(jì)數(shù)器C10的計(jì)數(shù)值減1 L MW10S C10 /假設(shè)有正跳沿,那么C1置數(shù)R C10 /假設(shè)有正跳沿,那么C10復(fù)位A C10= Q4.0 /假設(shè)C10數(shù)值不為0,那么為13. 計(jì)數(shù)器線圈指令表4.19 計(jì)數(shù)器線圈指令 圖以加計(jì)數(shù)器為例說明計(jì)數(shù)器線圈指令的用法。與梯形圖功能對(duì)應(yīng)的語句表程序如下: L C#100 S
52、 C10 CU C10 R C10 AC10 Q4.0 這個(gè)例子用于對(duì)輸入的正跳沿計(jì)數(shù)。每一個(gè)正跳沿使計(jì)數(shù)器C10的計(jì)數(shù)值加1。輸入的信號(hào)狀態(tài)從0變?yōu)?,那么計(jì)數(shù)器C10被置初始值100,C#表示以BCD碼格式輸入一個(gè)數(shù)值。假設(shè)沒有正跳沿,計(jì)數(shù)器C10的計(jì)數(shù)值保持不變。輸入假設(shè)為1,計(jì)數(shù)器被復(fù)位。計(jì)數(shù)器C10的計(jì)數(shù)值假設(shè)不等于0,那么C10輸出狀態(tài)為1,也為1。4.3.3 應(yīng)用舉例 1. 脈沖發(fā)生器 用定時(shí)器構(gòu)成一個(gè)脈沖發(fā)生器,使其產(chǎn)生如下圖的脈沖時(shí)序,脈沖信號(hào)的周期為3 s,脈沖寬度為1 s。我們知道,用兩個(gè)定時(shí)器可以產(chǎn)生頻率占空比均可設(shè)置的脈沖信號(hào)。在本例程序中,用定時(shí)器T1設(shè)置輸出為1的
53、時(shí)間(脈沖寬度),為0的時(shí)間由定時(shí)器T2設(shè)置為2 s。當(dāng)輸入為1時(shí),輸出為1或?yàn)?來交替進(jìn)行。圖為梯形圖程序,對(duì)應(yīng)的語句表程序如下: 網(wǎng)絡(luò)12 AN T1 L S5T#2S SD T2 網(wǎng)絡(luò)13 A T2 L SST#1S SD T1 A T2 Q4.0 圖4.34 脈沖發(fā)生器時(shí)序圖4.35 脈沖發(fā)生器梯形圖 2. 頻率監(jiān)測(cè)器 頻率監(jiān)測(cè)器用于監(jiān)測(cè)脈沖信號(hào)的頻率,假設(shè)其低于下限,那么指示燈亮,“確認(rèn)按鍵能使指示燈復(fù)位。為此,使用了一個(gè)擴(kuò)展脈沖定時(shí)器,即每當(dāng)頻率信號(hào)有一個(gè)上升沿就啟動(dòng)一次定時(shí)器。如果超過了定時(shí)時(shí)間沒有啟動(dòng)定時(shí)器,那么說明兩個(gè)脈沖之間的時(shí)間間隔太長,即頻率太低了。圖為頻率監(jiān)測(cè)器時(shí)序。
54、圖4.36 頻率監(jiān)測(cè)器時(shí)序 在頻率監(jiān)測(cè)程序中,輸入用于關(guān)閉監(jiān)測(cè)器,用于確認(rèn)頻率低;輸出用以控制指示燈。定時(shí)器T1的定時(shí)時(shí)間為2 s,即設(shè)置脈沖信號(hào)的頻率監(jiān)測(cè)下限為0.5 Hz。梯形圖程序見圖,以下是頻率監(jiān)測(cè)語句表程序: L S5T#2S SE T1 AN T1圖4.37 頻率監(jiān)測(cè)梯形圖程序4.4 數(shù)據(jù)處理功能指令4.4.1 裝入和傳送指令 裝入(L)和傳送(T)指令可以在存儲(chǔ)區(qū)之間或存儲(chǔ)區(qū)與過程輸入、輸出之間交換數(shù) 據(jù)。CPU執(zhí)行這些指令不受邏輯操作結(jié)果RLO的影響。L指令將源操作數(shù)裝入累加器1 中,而累加器原有的數(shù)據(jù)移入累加器2中,累加器2中原有的內(nèi)容被覆蓋。T指令將累加 器1中的內(nèi)容寫入目
55、的存儲(chǔ)區(qū)中,累加器的內(nèi)容保持不變。L和T指令可對(duì)字節(jié)(8位)、字(16位)、雙字(32位)數(shù)據(jù)進(jìn)行操作,當(dāng)數(shù)據(jù)長度小于32位時(shí),數(shù)據(jù)在累加器右對(duì)齊(低位對(duì)齊),其余各位填0。裝入和傳送操作有三種尋址方式,即立即尋址、直接尋址和間接尋址。1. 對(duì)累加器1的裝入和傳送指令L 5 /將立即數(shù)5裝入累加器1中L MW 10 /將MW10中的值裝入累加器1中L IBDID 8 /將由數(shù)據(jù)雙字DID8指出的輸入字節(jié)裝入累加器1中T MW 20 /將累加器1中的內(nèi)容傳送給存儲(chǔ)字MW20 T MWAR1,P#10.0 /將累加器1中的內(nèi)容傳送給由地址存放器1加偏移量確定的存儲(chǔ)字中 2. 讀取或傳送狀態(tài)字 L
56、STW /將狀態(tài)字中08位裝入累加器1中,累 加器93l位被清0 T STW /將累加器1中的內(nèi)容傳送到狀態(tài)字中 3. 裝入時(shí)間值或計(jì)數(shù)值 定時(shí)器字中的剩余時(shí)間值以二進(jìn)制格式保存,用L指令從定時(shí)器字中讀出二進(jìn)制時(shí)間值裝入累加器1中,稱為直接裝載。也可用LC指令以BCD碼格式讀出時(shí)間值,裝入累加器1低字中,稱為BCD碼格式讀出時(shí)間值。以BCD碼格式裝入時(shí)間值可以同時(shí)獲得時(shí)間值和時(shí)基,時(shí)基與時(shí)間值相乘就得到定時(shí)剩余時(shí)間。同理,對(duì)當(dāng)前計(jì)數(shù)值也有直接裝載和以BCD碼格式讀出計(jì)數(shù)值之分。例如: L T1 /將定時(shí)器T1中二進(jìn)制格式的時(shí)間值直接裝入累加器1的低字中 LC T1 /將定時(shí)器T1中的時(shí)間值和時(shí)
57、基以BCD碼格式裝入累加器1的低字中 L C1 /將計(jì)數(shù)器C1中二進(jìn)制格式的計(jì)數(shù)值直接裝入累加器1的低字中 LC C1 /將計(jì)數(shù)器Cl中的計(jì)數(shù)值以BCD碼格式裝入累加器1的低字中 4. 地址存放器裝入和傳送 對(duì)于地址存放器,可以不經(jīng)過累加器l而直接將操作數(shù)裝入或傳送,或?qū)蓚€(gè)地址寄 存器的內(nèi)容直接交換。下面的例子說明了指令的用法: LAR1 P# I 0.0 /將輸入位的地址指針裝入AR1 LAR2 P# 0.0 /將二進(jìn)制數(shù)2#0000 0000 0000 0000 0000 0000 0000 0000裝入AR2 LAR1 P#Start /將符號(hào)名為Start的存儲(chǔ)器的地址指針裝入AR1
58、 LAR1 AR2 /將AR2的內(nèi)容裝入AR1 LAR1 DBD 20 /將數(shù)據(jù)雙字DBD 20的內(nèi)容裝入AR1 TAR1 AR2 /將ARl的內(nèi)容傳送至AR2 TAR2 /將AR2的內(nèi)容傳送至累加器1 TAR1 MD 20 /將ARl的內(nèi)容傳送至存儲(chǔ)器雙字MD 20 CAR /交換AR1和AR2的內(nèi)容5. 梯形圖方塊傳送指令表4.20 梯形圖方塊傳送指令 方塊傳送(MOVE)指令用于為變量賦值。如果允許輸入端EN為1,就執(zhí)行傳送操作,使輸出OUT等于輸入IN,并使ENO為1;如果EN為0,那么不進(jìn)行傳送操作,并使ENO為0。ENO總保持與EN相同的信號(hào)狀態(tài)。 用MOVE方塊指令,能傳送數(shù)據(jù)長
59、度為8位、16位或32位的所有根本數(shù)據(jù)類型(包括常數(shù))。但傳送用戶自定義的數(shù)據(jù)類型,如數(shù)組或結(jié)構(gòu),那么必須用系統(tǒng)集成功能(SFC)進(jìn)行。圖給出了MOVE方塊指令的用法。圖4.38 使用MOVE方塊指令下面是與圖的梯形圖方塊指令根本相同的語句表程序: JNB _0001 L MW10 T DBW12 SET /使RLO為1 SAVE /使BR為1 CLR_0001: A BR 4.4.2 轉(zhuǎn)換指令 轉(zhuǎn)換指令首先將源數(shù)據(jù)按照規(guī)定的格式讀入累加器,然后在累加器中對(duì)數(shù)據(jù)進(jìn)行類型轉(zhuǎn)換,最后再將轉(zhuǎn)換的結(jié)果傳送到目的地址。能夠?qū)崿F(xiàn)的轉(zhuǎn)換操作有:BCD碼和整數(shù)及長整數(shù)間的轉(zhuǎn)換,實(shí)數(shù)和長整數(shù)間的轉(zhuǎn)換,數(shù)的取反、
60、取負(fù)等。在STEP 7中,整數(shù)和長整數(shù)是以補(bǔ)碼形式表示的。BCD碼數(shù)值有兩種:一種是字(16位)格式的BCD碼數(shù),其數(shù)值范圍是999999;另一種是雙字(32位)格式的BCD碼數(shù),范圍為9 999 9999 999 999。1. BCD和整數(shù)間的轉(zhuǎn)換表4.21 BCD和整數(shù)間的轉(zhuǎn)換表4.21 BCD和整數(shù)間的轉(zhuǎn)換 由于3位BCD數(shù)所能表示的范圍是999999,小于16位整數(shù)的數(shù)值范圍,因此,一個(gè)整數(shù)到BCD數(shù)的轉(zhuǎn)換并不總是可行的。在執(zhí)行ITB指令時(shí),如果整數(shù)超出了BCD碼所能表示的范圍,那么將得不到有效的轉(zhuǎn)換結(jié)果。同時(shí),狀態(tài)字中的溢出位(OV)和溢出保持位(OS)將被置為1。在程序中,一般需要
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 幼兒園大班月工作計(jì)劃4
- 電力設(shè)備夏季安全生產(chǎn)培訓(xùn)
- 新員工個(gè)人工作總結(jié)
- 銀行會(huì)計(jì)人員年度個(gè)人工作計(jì)劃
- 醫(yī)院保安年部終工作計(jì)劃
- 二零二五年度國際工程合作貸款連帶責(zé)任保證擔(dān)保合同范本
- 二零二五年度衛(wèi)生院醫(yī)生臨時(shí)聘用合同(基層醫(yī)療機(jī)構(gòu)信息化改造)
- 二零二五年度綠色生態(tài)住宅工程設(shè)計(jì)合同
- 二零二五年度客戶價(jià)格保密及市場(chǎng)調(diào)研合作協(xié)議
- 二零二五年度稻谷種植基地土地流轉(zhuǎn)合同
- 2024解析:第十章 浮力、阿基米德原理及其應(yīng)用-講核心(解析版)
- 華東師范大學(xué)《社會(huì)學(xué)概論》2023-2024學(xué)年第一學(xué)期期末試卷
- 少先隊(duì)活動(dòng)課《民族團(tuán)結(jié)一家親-同心共筑中國夢(mèng)》課件
- 2024年四川省公務(wù)員錄用考試《行測(cè)》真題及答案解析
- 防彈衣市場(chǎng)分析及投資價(jià)值研究報(bào)告
- 3.1《中國科學(xué)技術(shù)史序言(節(jié)選)》課件
- 生態(tài)旅游學(xué)課程設(shè)計(jì)
- 智能制造系統(tǒng)解決方案“揭榜掛帥”項(xiàng)目申報(bào)書
- 《管理研究方法》教學(xué)大綱
- 食材配送總體服務(wù)計(jì)劃方案
- 2024年機(jī)動(dòng)車駕駛員考試《科目一》試卷及解答參考
評(píng)論
0/150
提交評(píng)論