00西門子S7-300系列PLC基本指令_第1頁
00西門子S7-300系列PLC基本指令_第2頁
00西門子S7-300系列PLC基本指令_第3頁
00西門子S7-300系列PLC基本指令_第4頁
00西門子S7-300系列PLC基本指令_第5頁
已閱讀5頁,還剩136頁未讀, 繼續(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í)行的功能;操作數(shù)為執(zhí)行該操作所需要的信息,例如: A I 1.0 是一條位邏輯操作指令,其中:“A”是操作碼,它表示執(zhí)行“與”操作;“I 1.0”是操作數(shù),對輸入繼電器I 1.0進行的操作。 有些語句指令不帶操作數(shù)。它們操作的對象是惟一的。例如:NOT (是對邏輯操作結(jié)果(RLO)

2、取反。) 2. 梯形邏輯指令 梯形邏輯指令用圖形元素表示PLC要完成操作。在梯形邏輯指令中,其操作碼是用圖素表示的,該圖素形象表明CPU做什么,其操作數(shù)的表示方法與語句指令相同。如: Q 4.0 ( )該指令中:( )可認為是操作碼,表示一個二進制賦值操作。Q 4.0是操作數(shù),表示賦值的對象。 梯形邏輯指令也可不帶操作數(shù)。如: |NOT| 是對邏輯操作結(jié)果取反的操作。4.1.2 操作數(shù) 1. 標識符及表示參數(shù) 一般情況下,指令的操作數(shù)在PLC的存儲器中,此時操作數(shù)由操作數(shù)標識符和參數(shù)組成。 操作數(shù)標識符由主標識符和輔助標識符組成。主標識符表示操作數(shù)所在的存儲區(qū),輔助標識符進一步說明操作數(shù)的位數(shù)

3、長度。若沒有輔助標識符指操作數(shù)的位數(shù)是一位。 主標識符有:I(輸入過程映像存儲區(qū)),Q(輸出過程映象存儲區(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給出了字節(jié)、字、雙字的相互關(guān)系及表示方法。當使用寬度為字或雙字的地址時,應保證沒有生成任何重疊的字節(jié)分配

4、,以免造成數(shù)據(jù)讀寫錯誤。圖4.1 以字節(jié)單元為基準標記存儲器存儲單元位存儲區(qū)M表4.1 存儲區(qū)及其功能 表4.1 存儲區(qū)及其功能 2. 操作數(shù)的表示法 在STEP7中,操作數(shù)有兩種表示方法:一是物理地址(絕對地址)表示法;二是符號地址表示法。 用物理地址表示操作數(shù)時,要明確指出操作數(shù)的所在存儲區(qū),該操作數(shù)的位數(shù)具體位置。例如:Q 4.0。 STEP7 允許用符號地址表示操作數(shù),如Q 4.0可用符號名MOTOR_ON替代表示,符號名必須先定義后使用,而且符號名必須是惟一的,不能重名。 定義符號時,需要指明操作數(shù)所在的存儲區(qū),操作數(shù)的位數(shù)、具體位置及數(shù)據(jù)類型。4.1.3 尋址方式 操作數(shù)是指令的操

5、作或運算對象。所謂尋址方式是指令得到操作數(shù)的方式,可以直接給出或間接給出。 STEP7指令操作對象的有:常數(shù);S7狀態(tài)字中的狀態(tài)位;S7的各種寄存器、數(shù)據(jù)塊;功能塊FB,F(xiàn)C和系統(tǒng)功能塊SFB,SFC;S7的各存儲區(qū)中的單元。 S7有四種尋址方式:立即尋址、存儲器直接尋址、存儲器間接尋址和寄存器間接尋址。 1. 立即尋址 這是對常數(shù)或常量的尋址方式。操作數(shù)本身直接包含在指令中。下面是立即尋址的例子:SET /把RLO置1OW W#16#A320 /將常量W#16#A320與累加器1“或”運算L 27 /把整數(shù)27裝入累加器1L ABCD /把ASCII碼字符ABCD裝入累加器1L C#0100

6、 /把BCD碼常數(shù)0100裝入累加器1 2. 直接尋址 包括對寄存器和存儲器的直接尋址。在直接尋址的指令中,直接給出操作數(shù)的存儲單元地址。例如:A I 0.0 /對輸入位I 0.0進行“與”邏輯操作S L 20.0 /把本地數(shù)據(jù)位L 20.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ù)所在存儲單元的地址,該地址又被稱為地址指針。存儲

7、器間接尋址方式的優(yōu)點是,當程序執(zhí)行時,能改變操作數(shù)的存儲器地址,這對程序中的循環(huán)尤為重要。例如: A IMD 2 /對由MD 2指出的輸入位進行“與”邏輯操作。如:MD 2的值為 /2#0000 0000 0000 0000 0000 0000 0101 0110 則是對I 10.6進行“與”操作。 圖4.2 存儲器間接尋址的指針格式位3至18(范圍0至65535) : 被尋址字節(jié)的字節(jié)編號位0至2(范圍0至7) : 被尋址位的位編號 4. 寄存器間接尋址 在S7中有兩個地址寄存器,它們是AR1和AR2。通過地址寄存器,可以對各存儲區(qū)的存儲器內(nèi)容實現(xiàn)寄存器間接尋址。地址寄存器的內(nèi)容加上偏移量形

8、成地址指針,該指針指向數(shù)值所在的存儲單元。 地址寄存器存儲的地址指針有兩種格式: 區(qū)內(nèi)寄存器間接尋址區(qū)域間寄存器間接尋址。其長度均為雙字。圖4.3給出了這兩種格式的細節(jié)及其差別,區(qū)域標識位的組合狀態(tài)見表4.2。圖4.3 寄存器間接尋址的指針格式31 24 23 16 15 8 7 0位31=0表明是區(qū)域內(nèi)寄存器間接尋址;=1表明是區(qū)域間寄存器間接尋址。位24、25和26(r r r):區(qū)域標識(見表3.2)位3至18(bbbb bbbb bbbb bbbb):被尋址位的字節(jié)編號(范圍0至65535)位0至2():被尋址的位編號(范圍0至7)表4.2 地址指針區(qū)域標識位含義4.1.4 狀態(tài)字 狀

9、態(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 2 1 0(1)首次檢測位(FC) 狀態(tài)字的位0稱為首次檢測位。若FC位的狀態(tài)為0,則表明一個梯形邏輯網(wǎng)絡(luò)的開始,或指令為邏輯串第一條指令。 (2)邏輯操作結(jié)果(RLO) 邏輯操作結(jié)果RLO(Result of Logic Operation)。該位存儲位邏輯指令或算術(shù)比較指令的結(jié)果。 (3)狀態(tài)位(STA) 狀態(tài)位不能用指令檢

10、測,它只是在程序測試中被CPU解釋并使用。(4)或位(OR) 狀態(tài)字的位3稱為或位(OR)。在先邏輯“與”后邏輯“或”的邏輯串中,OR位暫存邏輯“與”的操作結(jié)果,以便進行后面的邏輯“或”運算。其它指令將OR位清0。(5)溢出位(OV) 溢出位被置1,表明一個算術(shù)運算或浮點數(shù)比較指令執(zhí)行時出現(xiàn)錯誤 ( 錯誤:溢出、非法操作、不規(guī)范格式 ) 。(6)溢出狀態(tài)保持位(OS) OV被置1時OS也被置1;OV被清0時OS仍保持。只有下面的指令才能復位OS位:JOS(OS=1時跳轉(zhuǎn));塊調(diào)用和塊結(jié)束指令。 (7)條件碼1(CC1)和條件碼0(CC0) 狀態(tài)字的位7和位6稱為條件碼1和條件碼0。這兩位結(jié)合起

11、來用于表示在累加器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 (8)二進制結(jié)果位(BR) 它將字處理程序與位處理聯(lián)系起來,用于表示字操作結(jié)果是否正確(異常)。將BR位加入程序后,無論字操作結(jié)果如何,都不會造成二進制邏輯鏈中斷。在LAD的方塊指令中,BR位與ENO有對應關(guān)系,用于表明方塊指令是否被正確執(zhí)行:如果執(zhí)行出現(xiàn)了錯誤,BR位為0,ENO也為0;如果功能被正確執(zhí)行,BR位為1,ENO也為1。 在用戶編寫的FB和FC程序中,必

12、須對BR位進行管理,當功能塊正確運行后使BR位為1,否則使其為0。使用STL指令SAVE或LAD指令(SAVE),可將RLO存入BR中,從而達到管理BR位的目的。當FB或FC執(zhí)行無錯誤時,使RLO為1并存入BR,否則,在BR中存入0。4.2 位邏輯指令 位邏輯指令主要包括:位邏輯運算指令、位操作指令和位測試指令,邏輯操作結(jié)果(RLO)用以賦值、置位、復位布爾操作數(shù),也控制定時器和計數(shù)器的運行。4.2.1 位邏輯運算指令 位邏輯運算指令是“與”(AND)、“或”(OR)、“異或”(XOR)指令及其組合。它對“0”或“1”這些布爾操作數(shù)掃描,經(jīng)邏輯運算后將邏輯操作結(jié)果送入狀態(tài)字的RLO位。 1.

13、“與”和“與非”(A,AN)指令 邏輯“與”在梯形圖里是用串聯(lián)的觸點回路表示的,如果串聯(lián)回路里的所有觸點皆閉合,該回路就通“電”了。在圖4.5的回路所示: 圖4.5 “與”邏輯梯形圖 上述梯形邏輯圖,可用語句表指令完全表示,對應的語句表為:A I0.0 A Q 4.1AN M10.1 Q4.0 ( )I0.0 Q4.1 M10.1 Q4.0 2. “或”和“或非”(O,ON)指令 邏輯“或”在梯形圖里是用并聯(lián)的觸點回路表示的,被掃描的操作數(shù)標在觸點上方。在圖4.6中,只要有一個觸點閉合,輸出4.1的信號狀態(tài)就為“l(fā)”。 I1.1 M2.0 Q4.0 圖4.6 “或”邏輯梯形圖及語句表O I1.

14、1 ON M2.0 O Q4.0 Q4.1 ( )Q4.1 3. “異或”和“異或非”(X,XN)指令 圖4.7是“異或”邏輯梯形圖,下面是與梯形圖對應的語句表。在的語句表中,使用了“異或”和“異或非”指令,分別用助記符“X”和“XN”來標識。它類似“或”和“或非”指令,用于掃描并聯(lián)回路能否“通電”。 X I 0.0 X I 0.1 Q 4.0圖4.7 “異或”邏輯梯形圖 4.2.2 位操作指令 1. 輸出指令 邏輯串輸出指令又稱為賦值操作指令,該操作把狀態(tài)字中RLO的值賦給指定的操作數(shù)(位地址)。表4.5列出了操作數(shù)的數(shù)據(jù)類型和所在的存儲區(qū)。表4.5 輸出指令A I0.0A I0.1ON I

15、0.2 Q4.0 A I0.3 Q4.1圖4.8 多重輸出梯形圖 一個RLO可被用來驅(qū)動幾個輸出元件。在LAD中,輸出線圈是上下依次排列的。在STL中,與輸出信號有關(guān)的指令被一個接一個地連續(xù)編程,這些輸出具有相同的優(yōu)先級。圖4.8是多重輸出梯形圖,與之對應的語句表如下: 2 . 置位復位指令 置位復位指令根據(jù)RLO的值,來決定被尋址位的信號狀態(tài)是否需要改變。若RLO的值為1,被尋址位的信號狀態(tài)被置1或清0;若RLO是0,則被尋址位的信號保持原狀態(tài)不變。置位復位指令有關(guān)內(nèi)容見表4.6。表4.6 置位復位指令 圖4.10 置位復位指令(a) 復位指令操作 (b)置位指令操作 3. RS觸發(fā)器 RS

16、觸發(fā)器梯形圖方塊指令表示見表4.7。方塊中標有一個置位輸入(S)端,一個復位輸入(R)端,輸出端標為Q。觸發(fā)器可以用在邏輯串最右端,結(jié)束一個邏輯串,也可用在 邏輯串中,影響右邊的邏輯操作結(jié)果。 表4.7 RS觸發(fā)器 RS觸發(fā)器分為置位優(yōu)先和復位優(yōu)先型兩種, 置位優(yōu)先型RS觸發(fā)器的R端在S端之上,當兩個輸入端都為1時,下面的置位輸入最終有效。既置位輸入優(yōu)先,觸發(fā)器或被復位或保持復位不變,如圖4.11。 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)字

17、中RLO位的狀態(tài)。有關(guān)內(nèi)容見表4.8。表4.8 對RLO的直接操作指令4.2.3 位測試指令 當信號狀態(tài)變化時就產(chǎn)生跳變沿。當從0變到1時,產(chǎn)生一個上升沿(或正跳沿);若從1變到0,則產(chǎn)生一個下降沿(或負跳沿)。 S7中有兩類跳變沿檢測指令,一種是對RLO的跳變沿檢測的指令,另一種是對觸點跳變沿直接檢測的梯形圖方塊指令。具體內(nèi)容見表4.9。 圖4.12是使用RLO正跳沿檢測指令的例子。這個例子中,若CPU檢測到輸入I 1.0有一個正跳沿,將使得輸出Q 4.0的線圈在一個掃描周期內(nèi)通電。對輸入I 1.0常開觸點掃描的RLO值存放在存儲位M 1.0中。表4.9 跳變沿檢測指令圖4.12 RLO正跳

18、沿檢測圖4.13 觸點負跳沿檢測 圖4.13是使用觸點負跳沿檢測指令的例子。圖中,由給出需要檢測的觸點編號(I 0.3),(M 0.0)用于存放該觸點在前一個掃描周期的狀態(tài)。4.2.4 位邏輯指令編程舉例 1. 傳送帶控制 圖4.14表示一個能夠電氣啟動的傳送帶。在傳送帶的起點有兩個按鈕開關(guān):用于START的S1和用于STOP的S2。在傳送帶的尾部也有兩個按鈕開關(guān):S3用于START,S4用于STOP。可以從任一端啟動或停止傳送帶。另外,當傳送帶上的物件到達末端時,傳感器S5使傳送帶停機。圖4.14 傳送帶示意圖表4.10 用于傳送帶系統(tǒng)符號編程的元素圖4.15 控制傳送帶程序 2. 串并聯(lián)組

19、合表示法 當邏輯串是復雜組合時,CPU的掃描順序是先“與”后“或”。圖4.16 (a)給出的梯形邏輯是觸點先并后串的例子,與其對應的語句表為: A( O I0.0 O I0.2 ) A( O M10.0 O M0.3 ) A M10.1 Q4.0 圖4.16 串并聯(lián)組合邏輯梯形圖 圖4.16(b)是先串后并的例子,與其對應的語句表如下: A( A I0.0 A M10.0 O A I0.2 A M0.3 ) A M10.1 Q4.0 3. 風機監(jiān)控程序 某設(shè)備有三臺風機,當設(shè)備處于運行狀態(tài)時,如果風機至少有兩臺以上轉(zhuǎn)動,則指示燈常亮;如果僅有一臺風機轉(zhuǎn)動,則指示燈以0.5 Hz的頻率閃爍;如果

20、沒有任何風機轉(zhuǎn)動,則指示燈以2 Hz的頻率閃爍。當設(shè)備不運行時,指示燈不亮。實現(xiàn)上述功能的梯形圖程序見圖4.17。圖4.17 風機監(jiān)控程序 注:輸入位I0.0,I0.1,I0.2分別為風機1,2,3的反饋輸入端。M9.3 為2 Hz頻率CPU中的時鐘信號;M9.7為0.5 Hz頻率信號。 下面給出實現(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 I0.1 AN I0.2 M10.1 A M10.1 A M9.3 ) O

21、AN M10.0 AN M10.1 A M9.7 ) A Q4.0 Q4.14.3 定時器與計數(shù)器指令4.3.1 定時器指令 定時器是PLC中的重要部件,它用于實現(xiàn)或監(jiān)控時間序列。定時器是一種由位和字組成的復合單元,定時器的觸點由位表示,其定時時間值存儲在字存儲器中。 S7-300/400提供的定時器有: 脈沖定時器(SP)擴展定時器(SE)接通延時定時器(SD)帶保持的接通延時定時器(SS)和斷電延時定時器(SF)。 1. 定時器的組成 在CPU的存儲器中留出了定時器區(qū)域,用于存儲定時器的定時時間值。每個定時器為2 B,稱為定時字。在S7-300中,最多允許使用256個定時器。 S7中定時時

22、間由時基和定時值兩部分組成,定時時間等于時基與定時值的乘積。采用減計時。定時時間到后會引起定時器觸點的動作。 定時器的第0位到第11位存放二進制格式的定時值,第12、13位存放二進制格式的時基(如圖4.18所示)。表4.11給出了可能出現(xiàn)的組合情況。圖4.18 累加器1低字的內(nèi)容(定時值127,時基l s)表4.11 時基與定時范圍 設(shè)置定時時間,用戶需給累加器1裝入需要的數(shù)值,避免格式錯誤,推薦采用下述直觀的句法: L W#16#wxyz其中,w為時基,取值為0,1,2或3,分別表示時基為10 ms,l00 ms,1 s或10 s;xyz為定時值,取值范圍為1999。 也可直接使用S5中的時

23、間表示法裝入定時數(shù)值,例如: L S5T#aH_bbM_ccS_dddMS其中,a:小時,bb:分鐘,cc:秒,ddd:毫秒,時基是自動選擇的,原則是能滿足定時范圍要求的最小時基。2. 定時器的啟動與運行 S7中的定時器與時間繼電器的工作特點相似,對定時器同樣要設(shè)置定時時間,也要啟動定時器(使定時器線圈通電)。除此之外,定時器還增加了一些功能,如隨時復位定時器、隨時重置定時時間(定時器再啟動)、查看當前剩余定時時間等。S7中的定時器不僅功能強,而且類型多。圖4.19給出了為定時作業(yè)如何正確選擇定時器的示意圖。以下將以LAD方塊圖為主詳細介紹定時器的運行原理及使用方法。圖4.19 五種類型定時器

24、總覽圖4.20 脈沖定時器指令S_PULSET5SQRTVBCDBI( )Q4.0S5T#2SI0.0I0.13. 定時器梯形圖方塊指令1) 脈沖定時器 A I0.0 L S5T#2S SP T5 A I0.1 R T5 A T5 Q4.0 圖4.21 脈沖定時器時序圖4.22接通延時定時器指令S_ODTT5SQRTVBCDBI( )Q4.0S5T#2SI0.0I0.1 A I0.0 L S5T#2S SD T5 A I0.1 R T5 A T5 Q4.03) 延時接通定時器圖4.23 延時接通定時器時序4. 定時器線圈指令表4.12 定時器線圈指令圖4.24 擴展脈沖定時器線圈指令 A I0

25、.0 L S5T#2S SE T5 A I0.1 R T5 A T5 Q4.0 4.3.2 計數(shù)器指令 * S7中的計數(shù)器用于:對RLO正跳沿計數(shù)。* 計數(shù)器是由表示當前計數(shù)值的字及狀態(tài)的位組成。* S7中有三種計數(shù)器 加計數(shù)器 (S_CU)減計數(shù)器 (S_CD)可逆計數(shù)器(S_CUD)圖4.25 累加器1低字的內(nèi)容計數(shù)值127計數(shù)器組成 在CPU中保留一塊存儲區(qū)作為計數(shù)器計數(shù)值存儲區(qū),每個計數(shù)器占用兩個字節(jié),計數(shù)器字中的第011位表示計數(shù)值(二進制格式),計數(shù)范圍是0999。2. 計數(shù)器梯形圖方塊指令表4.13 計數(shù)器梯形圖方塊指令圖4.26 可逆計數(shù)器梯形圖方塊應用A I0.0CU C10

26、 A I0.1 CD C10 A I0.2L MW10S C10A I0.3R C10 A C10= Q4.03. 計數(shù)器線圈指令表4.14 計數(shù)器線圈指令4.3.3 應用舉例 1. 脈沖發(fā)生器 用定時器構(gòu)成一個脈沖發(fā)生器,使其產(chǎn)生如圖4.27所示的脈沖時序,脈沖信號的周期為3 s,脈沖寬度為1 s,圖4.35為梯形圖及語句表程序。圖4.27 脈沖發(fā)生器時序 網(wǎng)絡(luò)1 A I0.0 AN T1 L S5T#2S SD T2 網(wǎng)絡(luò)2 A T2 L SST#1S SD T1 A T2 Q4.0 2圖4.28 脈沖發(fā)生器梯形圖 2. 頻率監(jiān)測器 頻率監(jiān)測器用于監(jiān)測脈沖信號的頻率,若其低于下限,則指示燈

27、亮,“確認”按鍵能使指示燈復位。為此,使用了一個擴展脈沖定時器,即每當頻率信號有一個上升沿就啟動一次定時器。如果超過了定時時間沒有啟動定時器,則表明兩個脈沖之間的時間間隔太長,即頻率太低了。圖4.29為頻率監(jiān)測器時序。圖4.29 頻率監(jiān)測器時序 圖4.30 頻率監(jiān)測梯形圖程序 在頻率監(jiān)測程序中,輸入I0.0用于關(guān)閉監(jiān)測器,I0.1用于確認頻率低;輸出Q4.0用以控制指示燈。定時器T1的定時時間為2 s,即設(shè)置脈沖信號M10.0的頻率監(jiān)測下限為0.5 Hz。 A M10.0 AN I0.0 L S5T#2S SE T1 AN T1 S Q4.0 O I0.1 O I0.0 R Q4.04.4 數(shù)

28、據(jù)處理功能指令4.4.1 裝入和傳送指令 裝入(L)和傳送(T)指令可以在存儲區(qū)之間或存儲區(qū)與過程輸入、輸出之間交換數(shù)據(jù)。CPU執(zhí)行這些指令不受邏輯操作結(jié)果RLO的影響。 L指令將源操作數(shù)裝入累加器1中,而累加器原有的數(shù)據(jù)移入累加器2中,累加器2中原有的內(nèi)容被覆蓋。 T指令將累加器1中的內(nèi)容寫入目的存儲區(qū)中,累加器的內(nèi)容保持不變。對累加器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)容傳送給存儲字MW20 T MWAR1,P#10.0 /

29、將累加器1中的內(nèi)容傳送給由地址寄存器1加偏移 /量確定的存儲字中 2. 讀取或傳送狀態(tài)字 L STW /將狀態(tài)字中08位裝入累加器1中,累 加器93l位被清0 T STW /將累加器1中的內(nèi)容傳送到狀態(tài)字中 3. 裝入時間值或計數(shù)值L T1 /將定時器T1中二進制格式的時間值直接裝入累加器1的低字中 LC T1 /將定時器T1的時間值和時基以BCD碼裝入累加器1的低字中L C1/將計數(shù)器C1中二進制格式的計數(shù)值直接裝入累加器1的低字中LC C1/將計數(shù)器C l中的計數(shù)值以BCD碼格式裝入累加器1的低字中4. 地址寄存器裝入和傳送 對于地址寄存器,可以不經(jīng)過累加器l而直接將操作數(shù)裝入或傳送,或?qū)?/p>

30、兩個地址寄 存器的內(nèi)容直接交換。下面的例子說明了指令的用法: LAR1 P# I 0.0 /將輸入位I0.0的地址指針裝入AR1 LAR2 P# 0.0 /將二進制數(shù)2#0000 0000 0000 0000 0000 0000 0000 0000裝入AR2 LAR1 P#Start /將符號名為Start的存儲器的地址指針裝入AR1 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)容傳送至存儲器雙字MD

31、20 CAR /交換AR1和AR2的內(nèi)容5. 梯形圖方塊傳送指令表4.15 梯形圖方塊傳送指令圖4.31 使用MOVE方塊指令MOVEENINENOOUTDBW12( )Q4.0MW10I0.0 A I0.0 JNB _0001 L MW10 T DBW12 SET /使RLO為1 SAVE /使BR為1 CLR_0001: A BR Q4.04.4.2 轉(zhuǎn)換指令 轉(zhuǎn)換指令首先將源數(shù)據(jù)按照規(guī)定的格式讀入累加器,然后在累加器中對數(shù)據(jù)進行類型轉(zhuǎn)換,最后再將轉(zhuǎn)換的結(jié)果傳送到目的地址。能夠?qū)崿F(xiàn)的轉(zhuǎn)換操作有: * BCD碼和整數(shù)及長整數(shù)間的轉(zhuǎn)換 ( BTI , ITB , ITD , BTD , DTB

32、 , DTR ) * 實數(shù)和長整數(shù)間的轉(zhuǎn)換 ( RND , TRUNC , RND+ , RND- ) * 數(shù)的取反、取負等 ( INVI , INVD , NEGI , NEGD , NEGR )1. BCD和整數(shù)間的轉(zhuǎn)換表4.16 BCD和整數(shù)間的轉(zhuǎn)換表4.16 BCD和整數(shù)間的轉(zhuǎn)換 2. 實數(shù)和長整數(shù)間的轉(zhuǎn)換 實數(shù)和長整數(shù)間的轉(zhuǎn)換見表4.17。 因為實數(shù)的數(shù)值范圍遠大于32位整數(shù),所以有的實數(shù)不能成功地轉(zhuǎn)換為32位整數(shù)。如果被轉(zhuǎn)換的實數(shù)格式非法或超出了32位整數(shù)的表示范圍,則得不到有效結(jié)果,而且狀態(tài)字中的OV和OS被置1。表4.17 實數(shù)和長整數(shù)間的轉(zhuǎn)換3. 數(shù)的取反、取負表4.18 數(shù)

33、的取反、取負4.4.3 比較指令 1. 比較指令表4.19 比 較 指 令表4.19 比 較 指 令表4.19 比 較 指 令圖4.32 整數(shù)比較CMP=1IN1IN2MW0MW2I0.1I0.1( S )Q4.0 A I0.0 A I0.1 A( L MW0 L MW2 =I ) S Q4.0 2. 比較指令應用實例 圖4.33示出包括兩臺傳送帶的系統(tǒng),在兩臺傳送帶之間有一個倉庫區(qū)。傳送帶1將包裹運送至臨時倉庫區(qū)。傳送帶1靠近倉庫區(qū)一端安裝的光電傳感器確定已有多少包裹運送至倉庫區(qū)。傳送帶2將臨時庫區(qū)中的包裹運送至裝貨場,在這里貨物由卡車運送至顧客。傳送帶2靠近庫區(qū)一端安裝的光電傳感器確定已有

34、多少包裹從庫區(qū)運送至裝貨場。含5個指示燈的顯示盤表示臨時倉庫區(qū)的占用程度。圖4.34給出了啟動顯示盤上指示燈的梯形邏輯程序。圖4.33 裝有計數(shù)器和比較器的倉庫區(qū)圖4.34 啟動顯示盤上指示燈的梯形邏輯程序段1:MW200中保存計數(shù)器C1當前值的BCD碼,Q12.1指示“倉庫區(qū)不空”程序段2:Q12.0指示“倉庫區(qū)空”I0.0I0.1I0.2I0.3C#100圖4.34 啟動顯示盤上指示燈的梯形邏輯與圖4.34對應的語句表程序如下:A I12.0CU C1A I12.1CD C1AN C1= Q12.0A C1= Q12.1L +50L C1=I= Q15.3L C1L +100=I= Q15

35、.44.4.4 移位和循環(huán)移位指令 移位指令將輸入IN中的內(nèi)容向左或向右逐位移動。移動次數(shù)由輸入值N提供的數(shù)值確定。移位后空出的位填以0或符號位(0代表正,1代表負),被移動的最后一位保存在狀態(tài)字中的CCl里,CC0和OV被復位為0??墒褂脳l件跳轉(zhuǎn)指令對CCl進行判斷。循環(huán)移位指令與一般移位指令的差別是:循環(huán)移位指令的空位填以從IN中移出的位。1無符號數(shù)移位指令表4.20 無符號數(shù)移位指令圖4.35 輸入IN左移5位2. 有符號數(shù)移位指令 表4.21 有符號數(shù)移位指令圖4.36 輸入IN帶符號右移4位3. 循環(huán)移位指令表4.22 循環(huán)移位指令圖4.37 輸入IN循環(huán)左移3位圖4.38 輸入IN

36、循環(huán)右移3位4.4.5 累加器操作和地址寄存器指令 1. 累加器操作指令表4.23 累加器操作指令圖4.39 CAW、CAD指令執(zhí)行時累加器1的變化 下面的例子說明了在有條件觸發(fā)的程序中INC指令是如何工作的。本例以存儲字節(jié)MB10作為循環(huán)次數(shù)計數(shù)暫存器,用INC指令修正循環(huán)次數(shù),循環(huán)體中的程序連續(xù)執(zhí)行5次。 LOOP:L MB10 /循環(huán)體開始,裝載存儲字節(jié)至累加器1 INC 1 /循環(huán)計數(shù)器加1 T MB10 /保存循環(huán)次數(shù) L B#16#5 I /比較 JC ERR /如果數(shù)據(jù)塊長度大于50,則跳轉(zhuǎn)至ERR標號處 A I0.0 BEU /無條件結(jié)束當前塊ERR:CALL FC10 /對于

37、塊長度大于50的情況,調(diào)用FC10做相應的處理4. 顯示和空操作指令表4.26 顯示和空操作指令4.5 數(shù)據(jù)運算指令4.5.1 算術(shù)運算指令 在STEP 7中可以對整數(shù)、長整數(shù)和實數(shù)進行加、減、乘、除算術(shù)運算。算術(shù)運算指令在累加器l和2中進行,累加器2中的值作為被減數(shù)或被除數(shù)。算術(shù)運算的結(jié)果保存在累加器l中,累加器1中原有的值被運算結(jié)果覆蓋,累加器2中的值保持不變。算術(shù)運算指令對狀態(tài)字的某些位將產(chǎn)生影響,這些位是CCl和CC0,OV,OS??梢杂梦徊僮髦噶罨驐l件跳轉(zhuǎn)指令對狀態(tài)字中的標志位進行判斷操作。1. 整數(shù)算術(shù)運算 表4.27 整數(shù)算術(shù)運算圖4.40 使用整數(shù)加法方塊指令下面是與圖4.40

38、所示梯形圖完全對應的語句表程序: A( A I0.0 JNB _0001 L MW0 L MW2 +I T MW10 AN OV /若OV為1,則RLO為0,否則RLO為1 SAVE /使BRRLO CLR _0001:A BR ) NOT S Q4.02. 實數(shù)算術(shù)運算 表4.28 實數(shù)算術(shù)運算4.5.2 字邏輯運算指令表4.29 字邏輯運算指令4.5.3 數(shù)據(jù)運算指令應用舉例 1. 運用算術(shù)運算指令完成方程式運算 運用算術(shù)運算指令完成下面的方程式運算,其梯形邏輯圖如圖4.41所示。MW4(IW 0DBW 3)15)/MW 0圖4.41 算術(shù)運算指令梯形邏輯實現(xiàn)相同運算的語句表程序如下: L

39、 IW0 /將輸入字IW0的內(nèi)容裝入累加器1 L DBW3 /將DBW3的內(nèi)容裝入累加器1,累加器1原內(nèi)容裝入累加器2 +I /累加器2與累加器1相加,結(jié)果存在累加器1中 L +15 /將常數(shù)15裝入累加器1,累加器l原內(nèi)容(和)裝入累加器2 *I /累加器2與累加器1相乘,結(jié)果為長整數(shù)放在累加器1中 L MW0 /將存儲雙字MD0的內(nèi)容裝入累加器1,累加器1原內(nèi)容裝入累加器2 /I /累加器2除累加器1,結(jié)果的整數(shù)部分存在累加器1中 T MW4 /將運算結(jié)果傳送至存儲雙字MD4完成相同運算功能的梯形圖程序和語句表程序各有優(yōu)缺點:梯形圖程序直觀易讀;語句表程序簡潔,而且使用中間結(jié)果存儲器較少。

40、 2. 用位邏輯運算指令實現(xiàn)對信號的跳變沿檢測 對輸入位I12.0I13.7進行跳變沿檢測,并將正跳沿的檢測結(jié)果存入存儲位M14.0M15.7的對應位中(1表示有跳變,0表示無跳變),負跳沿的結(jié)果存入M16.0M17.7中。為此,在檢測正跳沿時,使用存儲位M10.0M11.7存儲對應輸入位在前一個掃描周期時的狀態(tài);在檢測負跳沿時用M12.0M13.7。相應的語句表程序如下:網(wǎng)絡(luò)10:正跳沿檢測 L MW10 /將輸入位的上一個周期狀態(tài)裝入累加器1低字中 L IW12 /將輸入位的當前狀態(tài)裝入累加器1低字中,上一個周期狀態(tài)被移入累加器 2 T MW10 /保存當前狀態(tài),供下一個掃描周期使用 XO

41、W /異或運算后,當前狀態(tài)與以前不同的位在累加器1低字中被置為1 L IW12 /重新裝入當前狀態(tài),累加器 1原內(nèi)容移入累加器2 AW /與運算后,當前狀態(tài)為0的位被清0(負跳變被屏蔽) T MW14 /將正跳變檢測結(jié)果送入MW 14 網(wǎng)絡(luò)11:負跳沿檢測 L MW12 /將輸入位的上一個周期狀態(tài)寫入累加器1低字中 L IW12 /將輸入位的當前狀態(tài)裝入累加器l低字中,上一個周期狀 態(tài)被移入累加器2 T MW12 /保存當前狀態(tài),供下一個掃描周期使用 XOW /異或運算后,當前狀態(tài)與以前不同的位在累加器1低字中 被置為1 L IW12 /重新裝入當前狀態(tài),累加器1原內(nèi)容移入累加器2 INVI

42、/將當前狀態(tài)取反 AW /與運算后,當前狀態(tài)為1的位(上條指令中已被取反)被清 0(正跳變被屏蔽) T MW16 /將負跳變檢測結(jié)果送入MW 164.6 控 制 指 令4.6.1 邏輯控制指令 邏輯控制指令是指邏輯塊內(nèi)的跳轉(zhuǎn)和循環(huán)指令,這些指令中止程序原有的線性邏輯流,跳到另一處執(zhí)行程序。跳轉(zhuǎn)或循環(huán)指令的操作數(shù)是地址標號,該地址標號指出程序要跳往何處,標號最多為4個字符,第一個字符必須是字母,其余字符可為字母或數(shù)字。 1. 無條件跳轉(zhuǎn)指令(JU) 無條件跳轉(zhuǎn)指令(JU)將無條件中斷正常的程序邏輯流,使程序跳轉(zhuǎn)到目標處繼續(xù)執(zhí)行,見圖4.42。圖4.42 使用跳轉(zhuǎn)指令控制程序流2. 條件跳轉(zhuǎn)指令表4.30 條件轉(zhuǎn)移指令表4.31 條件跳轉(zhuǎn)指令與CC0、CC1的關(guān)系圖4.43 條件跳轉(zhuǎn)指令控制程序流程 3. 循環(huán)指令 使用循環(huán)指令(LOOP)可以多次重復執(zhí)行特定的程序段,重復執(zhí)行的次數(shù)存在累加器1中,即以

溫馨提示

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

評論

0/150

提交評論