版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第3章S7-300系列PLC編程語言與基本指令系統(tǒng)3.1編程語言3.2指令及其結(jié)構(gòu)3.3位邏輯指令3.4定時(shí)器與計(jì)數(shù)器指令3.5數(shù)據(jù)處理功能指令3.6數(shù)據(jù)運(yùn)算指令3.7控制指令思考與練習(xí)題3.1s7-300/400編程語言3.1.1PLC編程語言的國際標(biāo)準(zhǔn)IEC(國際電工委員會)是為電子技術(shù)制定全球標(biāo)準(zhǔn)的世界性組織,IEC61131是PLC的國際標(biāo)準(zhǔn)。它由5部分組成:通用信息、設(shè)備要求和測試、編程語言、用戶指南、通信服務(wù)規(guī)范。其中IEC61131-3是PLC的編程語言標(biāo)準(zhǔn)。STEP7是s7-300/400系列PLC編程軟件,軟件包中配備了三種基本編程語言1.梯形圖(LAD)2.語句表(STL)3.功能塊圖(FBD)除此之外,選件包里提供了一些更高級的編程語言4.順序功能圖(SFC):對應(yīng)于西門子的s7Graph,用來編制順序控制程序。5.結(jié)構(gòu)文本(ST):是一種專用的高級語言,類似于PASCAL和C,適合于復(fù)雜計(jì)算任務(wù)和最優(yōu)化算法。6.S7HiGraph編程語言使用狀態(tài)圖來描述異步、非順序過程的編程語言。系統(tǒng)被分為幾個(gè)功能單元,每個(gè)單元呈現(xiàn)不同狀態(tài),各功能單元的同步信息可以在圖形之間交換,需要為不同之間的切換定義轉(zhuǎn)換條件,用類似于語句表的語言描述指定狀態(tài)的動作和狀態(tài)之間的轉(zhuǎn)換條件。7.S7CFC(ContinuousFuntionChart)編程語言以圖形方式連接程序庫中以塊的形式提供的各種功能,包括從簡單的邏輯操作到復(fù)雜的閉環(huán)和開環(huán)控制等領(lǐng)域。編程時(shí)將這些塊拷貝到圖中并用線連接起來。編程語言用戶類應(yīng)用語句表(STL)愿意用類似于機(jī)器碼語言編程的用戶程序在運(yùn)行時(shí)間和存貯空間要求上最優(yōu)梯形圖(LAD)習(xí)慣電路圖的用戶編寫邏輯控制程序功能圖(FBD)熟悉布爾代數(shù)邏輯圖的用戶編寫邏輯控制程序SCL(結(jié)構(gòu)控制語言)可選軟件包用高級語言。如PASCAL或C語言編程的用戶數(shù)據(jù)處理任務(wù)程序S7Graph(順序控制)可選軟件包有技術(shù)背景,沒有PLC編程經(jīng)驗(yàn)的用戶以順序過程的描述很方便S7HiGraph(狀態(tài)圖形)可選軟件包有技術(shù)背景,沒有PLC編程經(jīng)驗(yàn)的用戶以異步非順序過程的描述很方便CFC(連續(xù)功能圖)可選軟件包有技術(shù)背景,沒有PLC編程經(jīng)驗(yàn)的用戶適用于連續(xù)過程的描述3.1.2STEP7編程語言的程序結(jié)構(gòu)為了容易閱讀和理解,程序常常被分成若干部分。我們稱之為塊。程序包括用戶塊和系統(tǒng)塊。3-1塊的調(diào)用關(guān)系如下:系統(tǒng)啟動過程中,CPU動態(tài)工作過程上電初始化程序OB100刷新過程映像輸入表主程序OB1刷新過程映像輸出表注:對于數(shù)字量模塊不一定要進(jìn)行硬件組態(tài),而對于模擬量模塊一定要進(jìn)行硬件組態(tài)。數(shù)據(jù)類型決定了你以什么方式或格式理解或訪問存儲區(qū)中的數(shù)據(jù)。 基本數(shù)據(jù)類型:定義不超過32位的數(shù)據(jù)
復(fù)式數(shù)據(jù)類型:定義超過32位或由其它數(shù)據(jù)類型組成的數(shù)據(jù)數(shù)據(jù)類型
參數(shù)類型:定義傳給FB塊和FC塊的參數(shù)3.1.3數(shù)據(jù)類型1.基本數(shù)據(jù)類型基本數(shù)據(jù)類型見表常數(shù)的表示可以是字節(jié)、字、或雙字,也可以是十進(jìn)制、十六進(jìn)制ASCII或浮點(diǎn)數(shù)形式表示。如B#16#FF,W#16#FFFF,DW#16#FFFF_FFFF,2#1101_1010,L#+5(32位雙整數(shù))P#為地址指針常數(shù),如P#M2.0是M2.0的地址S5T#aD_bH_cM_dS_eMS,a,b,c,d,e分別是日、小時(shí)、分、秒、毫秒的數(shù)值,時(shí)間增量是10MS。C#為計(jì)數(shù)器的常數(shù)(BCD碼),如C#250B(b1,b2)、B(b1,b2,b3,b4)分別用來表示2B、4B常數(shù)。數(shù)據(jù)類型描述常用符號舉例表基本數(shù)據(jù)類型BOOL位TRUE,F(xiàn)ALSEBYTE字節(jié)B#16#FFCHAR字符‘A’WORD字W#16#FFFF,2#1111_1111_1111_1111,C#999,B(255,255)DWORD雙字DW#16#FFFF_FFFFF,B(255,255,255,255)INTDINT16位定點(diǎn)數(shù)32位定點(diǎn)數(shù)REALS5TIME浮點(diǎn)數(shù)S5格式時(shí)間值TIMEDATEIEC格式時(shí)間值日期TIME_OF_DAY時(shí)間日期1位8位8位16位32位16位32位32位16位32位16位32位-32768~+32767-2147483648~+21474836471.234E+02S5T#0ms,S5TIME#2h46m30s(最大值)T#-24d20h31m23s6ms,TIME#24d20h31m23s6msD#1990_01_01,Date#2089_12_31TOD#00:00:00:000,TIME_OF_DAY#23:59:59.9992.復(fù)合數(shù)據(jù)類型(1)數(shù)組(ARRAY)將同一類型的數(shù)據(jù)合成一組,形成一個(gè)單元。(2)結(jié)構(gòu)(STRUCT)將不同類型的數(shù)據(jù)合成一組,形成一個(gè)單元。(3)字符串(STRING)將多個(gè)字符(CHAR)組成一維數(shù)組,形成字符串。(4)其它日期和時(shí)間類型、用戶定義的數(shù)據(jù)類型UDT。其中UDT類型在FB塊中也常常使用。3.參數(shù)類型參數(shù)類型為邏輯塊之間傳遞形參而設(shè)定的。(1)TIMER和COUNT,如T3,C21(2)BLOCK,如FB,FC,DB(3)POINTER(指針)指針指向一個(gè)變量的地址,即用地址作實(shí)參,如p#m50.0是指向M50.0雙字地址指針。(4)ANY用于實(shí)參的數(shù)據(jù)類型未知或?qū)崊⒖梢允褂萌我鈹?shù)據(jù)類型的情況。占用10B,如p#DB1.DBX0.0BYTE30,表示DB1中以0地址為起始地址的30個(gè)字節(jié)。4.1.3CPU的存儲區(qū)裝載存儲器工作存儲器RAM系統(tǒng)存儲器RAM動態(tài)裝載存儲器RAM可保持的裝載存儲器FEPROM用戶程序,如邏輯塊,數(shù)據(jù)塊位存儲器,定時(shí)器,計(jì)數(shù)器局部數(shù)據(jù)堆棧,塊堆棧中斷堆棧,中斷緩沖區(qū)過程映像I/O表裝載存儲器是RAM和FEPROM,用于保存不包含地址和注釋的用戶程序和系統(tǒng)數(shù)據(jù)(組態(tài)、連接和模塊參數(shù)等)。有的CPU有集成裝載存儲器,有的可以用微存儲卡(MMC)來擴(kuò)展。斷電時(shí)數(shù)據(jù)保存在MMC存儲器中,因此數(shù)據(jù)塊的內(nèi)容基本上被永久保存。下載程序時(shí),用戶程序(邏輯塊和數(shù)據(jù)塊)被下載到CPU的裝載存儲器中,CPU把可執(zhí)行的部分復(fù)制到工作存儲器,符號表和注釋保存在編程設(shè)備中。工作存儲器是集成的高速存取的RAM存儲器,用于存儲CPU運(yùn)行時(shí)的用戶程序和數(shù)據(jù),如組織塊、功能塊、功能、數(shù)據(jù)塊。復(fù)位CPU的存儲器時(shí),RAM中的程序被清除,F(xiàn)EPROM中的程序不會被清除。系統(tǒng)存儲器為用戶提供的存儲器組件,被劃分為若干個(gè)地址區(qū)域,如過程映像輸入I、過程映像輸出Q、位存儲器M、定時(shí)器T、計(jì)數(shù)器C、塊堆棧(B堆棧)、中斷堆棧(I中斷)和診斷緩沖區(qū)等。S7-300PLC存儲區(qū)圖S7-300存儲區(qū)示意圖表程序可訪問的存儲區(qū)及功能3.2指令及其結(jié)構(gòu)3.2.1指令的組成1.語句指令語句指令用助記符表示PLC要完成的操作。指令:操作碼+操作數(shù)操作碼用來指定要執(zhí)行的功能,告訴CPU該進(jìn)行什么操作;操作數(shù)內(nèi)包含為執(zhí)行該操作所必需的信息,告訴CPU用什么地方的數(shù)據(jù)來執(zhí)行此操作。例如: AI1.0該指令是一條位邏輯操作指令,其中:“A”是操作碼,它表示執(zhí)行“與”操作;“I1.0”是操作數(shù),它指出這是對輸入繼電器I1.0進(jìn)行的操作。有些語句指令不帶操作數(shù)。它們操作的對象是惟一的,故為簡便起見,不再特別說明。例如: NOT//是對邏輯操作結(jié)果(RLO)取反 SET//把RLO置1。
2.梯形邏輯指令
梯形邏輯指令用圖形元素表示PLC要完成操作。在梯形邏輯指令中,其操作碼是用圖素表示的,該圖素形象表明CPU做什么,其操作數(shù)的表示方法與語句指令相同。如:例如:
該梯形圖中:——()可認(rèn)為是操作碼,表示一個(gè)二進(jìn)制賦值操作。Q0.0是操作數(shù),表示賦值的對象。梯形邏輯指令也可不帶操作數(shù)。
——|NOT|——是對邏輯操作結(jié)果取反的操作。
4.2.2操作數(shù)1.標(biāo)識符及標(biāo)識參數(shù)主標(biāo)識符(操作數(shù)存放的存儲器的區(qū)域):I、Q、PI、PQ、M、T、C、L、DB輔助標(biāo)識符
(操作數(shù)的位數(shù)長度):X、B、W、D標(biāo)識符
標(biāo)識參數(shù)
(操作數(shù)在該存儲區(qū)域內(nèi)的具體位置)
操作數(shù)
注釋: I:輸入過程映像存儲區(qū) Q:輸出過程映像存儲區(qū) PI:外部輸入 PQ:外部輸出 M:位存儲區(qū) T:定時(shí)器 C:計(jì)數(shù)器 L:本地?cái)?shù) DB:數(shù)據(jù) X:位 B:字 W: D:雙字注意:①PLC物理存儲器是以字節(jié)為單位的。②當(dāng)操作數(shù)長度是字或雙字時(shí),標(biāo)識符后給出的標(biāo)識參數(shù)是字或雙字內(nèi)的最低字節(jié)單元號。③當(dāng)使用寬度是字或雙字的地址時(shí),應(yīng)保證沒有生成任何重疊的字節(jié)分配,以免造成數(shù)據(jù)讀寫錯(cuò)誤。一般情況下,指令的操作數(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(輸出過程映象存儲區(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é)地址分開。如: M10.1當(dāng)操作數(shù)長度是字或雙字時(shí),標(biāo)識符后給出的標(biāo)識參數(shù)是字或雙字內(nèi)的最低字節(jié)單元號。圖3.1給出了字節(jié)、字、雙字的相互關(guān)系及表示方法。當(dāng)使用寬度為字或雙字的地址時(shí),應(yīng)保證沒有生成任何重疊的字節(jié)分配,以免造成數(shù)據(jù)讀寫錯(cuò)誤。圖3.1以字節(jié)單元為基準(zhǔn)標(biāo)記存儲器存儲單元位存儲區(qū)M表3.2存儲區(qū)及其功能
表3.2存儲區(qū)及其功能
2.操作數(shù)的表示法
操作數(shù)的表示法物理地址(絕對地址)符號地址(必須先定義后使用,而且符號名必須是唯一的)關(guān)于定義符號地址的幾點(diǎn)說明:當(dāng)你在表中輸入符號地址時(shí),應(yīng)注意以下幾點(diǎn):
列注意符號在整個(gè)符號表中名字必須唯一。當(dāng)你確認(rèn)該區(qū)域的輸入或退出該區(qū)域時(shí),不唯一的符號則被標(biāo)定出來。符號名最長可達(dá)24個(gè)字符。引號(“”)不允許使用。地址當(dāng)你確認(rèn)該區(qū)域的輸入或退出該區(qū)域時(shí),程序會自動檢查該地址輸入是否是允許的。數(shù)據(jù)類型當(dāng)你確認(rèn)或退出地址時(shí),該區(qū)域被自動地賦予一個(gè)缺省數(shù)據(jù)類型。如果你修改這個(gè)缺省類型,程序會檢查你的數(shù)據(jù)類型是否與地址相匹配。注釋你可以輸入注釋簡單地解釋該符號的功能(最多80個(gè)字符)。在STEP7中,操作數(shù)有兩種表示方法:一是物理地址(絕對地址)表示法;二是符號地址表示法。為一個(gè)物理地址定義有意義的符號名,可使程序的可讀性增強(qiáng),降低編程時(shí)由于筆誤而造成的程序錯(cuò)誤。用物理地址表示操作數(shù)時(shí),要明確指出操作數(shù)的所在存儲區(qū),該操作數(shù)的位數(shù)具體位置。例如:Q4.0是用物理地址表示的操作數(shù),其中Q表示這是一個(gè)在輸出過程映像區(qū)中的輸出位,具體位置是第四個(gè)字節(jié)的第0位。STEP7允許用符號地址表示操作數(shù),如Q4.0可用符號名MOTOR_ON替代表示,符號名必須先定義后使用,而且符號名必須是惟一的,不能重名。定義符號時(shí),需要指明操作數(shù)所在的存儲區(qū),操作數(shù)的位數(shù)、具體位置及數(shù)據(jù)類型。3.局域(塊定義)符號和共享符號共享符號局域符號有效性?在整個(gè)用戶程序中有效?可以被所有的塊使用?在所有的塊中含義是一樣的?在整個(gè)用戶程序中是唯一的?只在定義的塊有效?相同的符號可在不同的塊中用于不同的目的允許使用的字符?字母、數(shù)字及特殊字符。?除0X00,0XFF及引號以外的強(qiáng)調(diào)號?如使用特殊字符,則符號須寫出在引號內(nèi)。?字母?數(shù)字?下劃線(_)(注意:不允許使用兩個(gè)連續(xù)的下劃線)使用你可以為以下各項(xiàng)定義共享符號:?I/O信號(I,IB,IW,ID,Q,QB,QW,QD)?I/O輸入與輸出(PI,PQ)?存儲位(M,MB,MW,MD)?定時(shí)器(T)/計(jì)數(shù)器(C)?邏輯塊(FB,F(xiàn)C,SFB,SFC)?數(shù)據(jù)塊(DB)?用戶定義數(shù)據(jù)類型(UDT)?變量表(VAT)你可以為以下各項(xiàng)定義局域符號:?塊參數(shù)(輸入,輸出和輸入輸出參數(shù))?塊的靜態(tài)數(shù)據(jù)?塊的臨時(shí)數(shù)據(jù)在哪里定義符號表塊的變量聲明表?符號表中定義的符號(共享)顯示在引號內(nèi)。?塊變量聲明表中的符號(局域)顯示時(shí)前面加上“#”。提示:使用菜單命令View>Display>SymbolicRepresentation,你可以在所有聲明的符號地址和絕對地址之間進(jìn)行切換。3.2.3尋址方式操作數(shù)是指令的操作或運(yùn)算對象。所謂尋址方式是指令得到操作數(shù)的方式,可以直接給出或間接給出??捎米鱏TEP7指令操作對象的有:常數(shù);S7狀態(tài)字中的狀態(tài)位;S7的各種寄存器、數(shù)據(jù)塊;功能塊FB,F(xiàn)C和系統(tǒng)功能塊SFB,SFC;S7的各存儲區(qū)中的單元。S7有四種尋址方式,它們分別是:立即尋址、存儲器直接尋址、存儲器間接尋址和寄存器間接尋址。立即尋址:操作數(shù)本身直角接包含在指令中直接尋址:指令中直接給出操作數(shù)的存儲單元地址
存儲器間接尋址寄存器間接尋址
S7尋址方式
1.立即尋址這是對常數(shù)或常量的尋址方式。操作數(shù)本身直接包含在指令中。有些指令中的操作數(shù)是惟一的,為方便起見不再在指令中特別寫出。下面是立即尋址的例子:SET //把RLO置1OWW#16#A320//將常量W#16#A320與累加器1“或”運(yùn)算L27//把整數(shù)27裝入累加器1L'ABCD'//把ASCII碼字符ABCD裝入累加器1LC#0100//把BCD碼常數(shù)0100裝入累加器1
2.直接尋址包括對寄存器和存儲器的直接尋址。在直接尋址的指令中,直接給出操作數(shù)的存儲單元地址。例如:AI0.0//對輸入位I0.0進(jìn)行“與”邏輯操作SL20.0//把本地?cái)?shù)據(jù)位L20.0置1=M115.4//使存儲區(qū)位M115.4的內(nèi)容等于RLO的內(nèi)容LIB10//把輸入字節(jié)IB10的內(nèi)容裝入累加器1TDBD12//把累加器1中的內(nèi)容傳送給數(shù)據(jù)雙字DBD12中
3.存儲器間接尋址在存儲器間接尋址的指令中,給出一個(gè)存儲器(必須是表3.1中的存儲器),該存儲器的內(nèi)容是操作數(shù)所在存儲單元的地址,該地址又被稱為地址指針。存儲器間接尋址方式的優(yōu)點(diǎn)是,當(dāng)程序執(zhí)行時(shí),能改變操作數(shù)的存儲器地址,這對程序中的循環(huán)尤為重要。以下是使用存儲器雙字指針間接尋址的例子:AI[MD2]//對由MD2指出的輸入位進(jìn)行“與”邏輯操作。如:MD2的值為//2#00000000000000000000000001010110,則是對I10.6進(jìn)行“與”操作。=DIX[DBD2]//將RLO賦值給數(shù)據(jù)位,具體數(shù)據(jù)由數(shù)據(jù)雙字DBD2指出。LIB[DID4]//將由數(shù)據(jù)雙字DID4指出的輸入字節(jié)裝入累加器1。如:DID4的值為2#000000000000000000000000//01010000,則是對IB10進(jìn)行裝入操作。OQ[LD3]//對由本地?cái)?shù)據(jù)雙字指出的輸出位進(jìn)行“或”邏輯操作。依據(jù)要描述的地址復(fù)雜程度,地址指針可以是字或雙字的,存儲指針的存儲器大小也應(yīng)是字的或雙字的,由于定時(shí)器(T)、計(jì)數(shù)器(C)、數(shù)據(jù)塊(DB)、功能塊(FB或FC)的編號范圍在0到65535之內(nèi),所以用字指針就足夠了,相應(yīng)的也只需字存儲器存儲指針。其它的地址,如:輸入位、輸出位,則要用到雙字指針,并用雙字存儲器存儲指針。指針的兩種格式如圖3.2所示。如果要用雙字格式的指針訪問一個(gè)字、字節(jié)或雙字存儲器,必須保證指針中的位編號為0。圖3.2存儲器間接尋址的指針格式位3至18(范圍0至65535):被尋址字節(jié)的字節(jié)編號 位0至2(范圍0至7):被尋址位的位編號下面的例子顯示如何產(chǎn)生字或雙字指針并用其尋址:L+5//將整數(shù)+5裝入累加器1TMW2//將累加器1的內(nèi)容傳送給存儲字MW2,此時(shí)MW2的內(nèi)容為5OPNDB[MW2]//打開由MW2指出的數(shù)據(jù)塊,即,打開數(shù)據(jù)塊5LP#8.7//將2#00000000000000000000000001000111(二進(jìn)制數(shù))裝入累加器1TMD2//將累加器1的內(nèi)容傳送給存儲字MD2,此時(shí)MD2的內(nèi)容為//2#00000000000000000000000001000111LP#4.0//將2#00000000000000000000000000100000裝入累加器1,累//加器1原內(nèi)容被裝入累加器2+I//將累加器1和累加器2內(nèi)容相加,在累加器1中得到的“和”為 //2#00000000000000000000000001100111TMD4//將累加器1的當(dāng)前內(nèi)容傳送給存儲字MD4AI[MD2]//對輸入位I8.7進(jìn)行“與”邏輯操作=Q[MD4]//將RLO賦值給輸出位Q12.7
4.寄存器間接尋址在S7中有兩個(gè)地址寄存器,它們是AR1和AR2。通過地址寄存器,可以對各存儲區(qū)的存儲器內(nèi)容實(shí)現(xiàn)寄存器間接尋址。地址寄存器的內(nèi)容加上偏移量形成地址指針,該指針指向數(shù)值所在的存儲單元。地址寄存器存儲的地址指針有兩種格式,其長度均為雙字。圖3.3給出了這兩種格式的細(xì)節(jié)及其差別。其中,第一種地址指針格式包括被尋址數(shù)值所在存儲單元地址的字節(jié)編號和位編號,至于對哪個(gè)存儲區(qū)尋址,則必須在指令中明確直接給出。這種指針格式適用于在確定的存儲區(qū)內(nèi)尋址,即區(qū)內(nèi)寄存器間接尋址。而第二種地址指針格式中還包含了數(shù)值所在存儲區(qū)的說明位(存儲區(qū)域標(biāo)志位),這樣,就可通過改變這些位,實(shí)現(xiàn)跨區(qū)尋址,這種指針格式用于區(qū)域間寄存器間接尋址。區(qū)域標(biāo)識位的組合狀態(tài)見表3.2。圖3.3寄存器間接尋址的指針格式3124231615870位31=0表明是區(qū)域內(nèi)寄存器間接尋址;=1表明是區(qū)域間寄存器間接尋址。位24、25和26(rrr):區(qū)域標(biāo)識(見表3.2)位3至18(bbbbbbbbbbbbbbbb):被尋址位的字節(jié)編號(范圍0至65535)位0至2(×××):被尋址的位編號(范圍0至7)表3.3地址指針區(qū)域標(biāo)識位含義如果要用到寄存器指針格式訪問一個(gè)字節(jié)、字或雙字,則必須保證指針中位地址編號為0。下面的例子分別說明如何使用這兩種指針格式實(shí)現(xiàn)間接尋址:LP#8.6//將2#00000000000000000000000001000110裝入累加器1LAR1//將累加器1的內(nèi)容傳送至地址寄存器1AI[AR1,P#0.0]//地址寄存器1加偏移量結(jié)果為2#0000000000000000//////0000000001000110,指明是對輸入位I8.6進(jìn)行“與”操作=Q[AR1,P#4.1]//地址寄存器1加偏移量結(jié)果為2#0000000000000000//////0000000001100111,指明對輸出位Q12.7進(jìn)行賦值操作LP#8.0//將2#00000000000000000000000001000000裝入累加器1LAR2//將累加器1的內(nèi)容傳送至地址寄存器2LIB[AR2,P#2.0]//將輸入字節(jié)IB10的內(nèi)容裝入累加器1TMW[AR2,P#200.0]//將累加器1的內(nèi)容傳送至存儲字MW208LP#I8.7//將2#10000001000000000000000001000111裝入累加器1LAR1//將累加器1的內(nèi)容傳送至地址寄存器1LP#Q8.7//將2#10000010000000000000000001000111裝入累加器1LAR2//將累加器1的內(nèi)容傳送至地址寄存器2A[AR1,P#0.0]//對輸入位I8.7進(jìn)行“與”邏輯操作=[AR2,P#1.1]//賦值給輸出位Q10.0LP#I8.0//將輸入位I8.0的雙字指針裝入累加器1LAR2//將累加器1的內(nèi)容傳送至地址寄存器2LP#M8.0//將存儲位M8.0的雙字指針裝入累加器1LAR1//將累加器1的內(nèi)容傳送至地址寄存器1LB[AR2,P#2.0]//把輸入字節(jié)IB10裝入累加器1,輸入字節(jié)10為8(AR2)加2(偏移量)TD[AR1,P#56.0]//把存儲雙字MD64裝入累加器1,存儲雙字64為8(AR1)//加56(偏移量)3.2.4狀態(tài)字狀態(tài)字用于表示CPU執(zhí)行指令時(shí)所具有的狀態(tài)。一些指令是否執(zhí)行或以何方式執(zhí)行可能取決于狀態(tài)字中的某些位;執(zhí)行指令時(shí)也可能改變狀態(tài)字中的某些位;你也能在位邏輯指令或字邏輯指令中訪問并檢測它們。圖3.4顯示了狀態(tài)字的結(jié)構(gòu)。圖3.4狀態(tài)字的結(jié)構(gòu)159876543210(1)首次檢測位(FC)狀態(tài)字的位0稱為首次檢測位。若FC位的狀態(tài)為0,則表明一個(gè)梯形邏輯網(wǎng)絡(luò)的開始,或指令為邏輯串第一條指令。CPU對邏輯串第一條指令的檢測(稱為首次檢測)產(chǎn)生的結(jié)果直接保存在狀態(tài)字的RLO位中,經(jīng)過首次檢測存放在RLO中的0或1被稱為首次檢測結(jié)果。FC位在邏輯串的開始時(shí)總是0,在邏輯串指令執(zhí)行過程中FC位為1,輸出指令或與邏輯運(yùn)算有關(guān)的轉(zhuǎn)移指令(表示一個(gè)邏輯串結(jié)束的指令)將FC清0。(2)邏輯操作結(jié)果(RLO)狀態(tài)字的位1稱為邏輯操作結(jié)果RLO(ResultofLogicOperation)。該位存儲位邏輯指令或算術(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)位。狀態(tài)位不能用指令檢測,它只是在程序測試中被CPU解釋并使用。如果一條指令是對存儲區(qū)操作的位邏輯指令,則無論是對該位的讀與寫操作,STA總是與該位的值取得一致;對不訪問存儲區(qū)的位邏輯指令來說,STA沒有意義,此時(shí)它總被置為1。(4)或位(OR)狀態(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ò)誤:溢出、非法操作、不規(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)生過錯(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)。詳見表3.4和表3.5。表3.4算術(shù)運(yùn)算后的CC1和CC0表3.5比較、移位和循環(huán)移位、字邏輯指令后的CC1和CC0(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。在用戶編寫的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。3.3位邏輯指令位邏輯指令主要包括位邏輯運(yùn)算指令、位操作指令和位測試指令,它們可以對布爾操作數(shù)(BOOL)的信號映態(tài)掃描并完成邏輯操作。邏輯操作結(jié)果(RLO)用以賦值、置位、復(fù)位布爾操作數(shù),也控制定時(shí)器和計(jì)數(shù)器的運(yùn)行。3.3.1位邏輯運(yùn)算指令位邏輯運(yùn)算指令是“與”(AND)、“或”(OR)、“異或”(XOR)指令及其組合。它對“0”或“1”這些布爾操作數(shù)掃描,經(jīng)邏輯運(yùn)算后將邏輯操作結(jié)果送入狀態(tài)字的RLO位。語句指令助記符指令指令前RLO地址狀態(tài)RLO結(jié)果A與001101010001AN與非001101010010O或001101010111布爾邏輯串內(nèi)的真值表(根據(jù)下列表可以確定第二條布爾位操作后的RLO)ON或非001101011011X異或001101010110XN異或非001101011001助記符指令地址狀態(tài)RLO結(jié)果A與0101AN與非0110O或0101ON或非0110X異或0101XN異或非0110布爾邏輯串開始的真值表梯形圖邏輯指令常開接點(diǎn)(動合觸點(diǎn))元素和參數(shù)常閉接點(diǎn)(動斷觸點(diǎn))元素和參數(shù)
1.“與”和“與非”(A,AN)指令
邏輯“與”在梯形圖里是用串聯(lián)的觸點(diǎn)回路表示的,被掃描的操作數(shù)則表示為觸點(diǎn)符號,操作數(shù)標(biāo)在觸點(diǎn)上方。如果觸點(diǎn)是常開觸點(diǎn)(動合觸點(diǎn)),則對“1”掃描相應(yīng)操作數(shù)。在PLC中規(guī)定:若操作數(shù)是“1”,則常開觸點(diǎn)“動作”,即認(rèn)為是“閉合”的;若操作數(shù)是“0”,則常開觸點(diǎn)“不動作”,即觸點(diǎn)仍然打開。如果觸點(diǎn)是常閉觸點(diǎn)(動斷觸點(diǎn)),則對“0”掃描相應(yīng)操作數(shù)。在PLC中規(guī)定:若操作數(shù)是“1”,則常閉觸點(diǎn)“動作”,即觸點(diǎn)“斷開”;若操作數(shù)是“0”,則常閉觸點(diǎn)“不動作”,即觸點(diǎn)仍保持閉合。如果串聯(lián)回路里的所有觸點(diǎn)皆閉合,該回路就通“電”了。在圖3.5的回路中,如果所有觸點(diǎn)閉合,即當(dāng)輸入I0.0和輸出Q4.1的信號狀態(tài)都是“1”(觸點(diǎn)閉合)、且位存儲器M10.1為“0”(該觸點(diǎn)仍保持原閉合位置)時(shí),輸出Q4.0才為“1”;如果有一個(gè)或多個(gè)觸點(diǎn)是打開的,則輸出Q4.0的信號狀態(tài)就為“0”(繼電器觸點(diǎn)打開)。上述梯形邏輯圖,可用語句表指令完全表示。對應(yīng)的語句表為:AI0.0AQ4.1ANM10.1=Q4.0圖3.5“與”邏輯梯形圖()I0.0Q4.1M10.1Q4.0在上面的語句表中,操作數(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”。如果操作數(shù)的信號狀態(tài)是“1”,則掃描結(jié)果就是“0”。在第一條語句里,CPU掃描的是輸入I0.0本次掃描也被稱為首次掃描。首次掃描的結(jié)果被直接保存在RLO(邏輯操作結(jié)果)中,在下一條語句中,掃描操作數(shù)輸出Q4.1;這次掃描的結(jié)果和RLO中保存的上一次結(jié)果相“與”,產(chǎn)生的新結(jié)果再存入RLO。如此逐一進(jìn)行,在邏輯序列結(jié)束處的RLO可用作進(jìn)一步處理。例如,用來激勵(lì)一個(gè)輸出信號。在上面的語句表中,把RLO的值賦給輸出Q4.0(=Q4.0)。
2.“或”和“或非”(O,ON)指令邏輯“或”在梯形圖里是用并聯(lián)的觸點(diǎn)回路表示的,被掃描的操作數(shù)標(biāo)在觸點(diǎn)上方。在觸點(diǎn)并聯(lián)的情況下,若有一個(gè)或一個(gè)以上的觸點(diǎn)閉合,則該回路就“通電”。在圖3.6中,驅(qū)動信號通過并聯(lián)觸點(diǎn)回路加到輸出Q4.1。只要有一個(gè)觸點(diǎn)閉合,輸出4.1的信號狀態(tài)就為“l(fā)”。如果所有的觸點(diǎn)都是打開的,則輸出Q4.1就為“0”。在圖3.6中,僅當(dāng)輸入I1.1和輸出Q4.0兩者都為“0”,且M2.0為“1”時(shí),輸出Q4.1才為“0”。圖3.6“或”邏輯梯形圖I1.1M2.0Q4.0()Q4.1上述梯形邏輯圖,也可用語句表指令表示。對應(yīng)的語句表為:OI1.1ONM2.0OQ4.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)算,則用助記符“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的值賦給輸出Q4.1。
3.“異或”和“異或非”(X,XN)指令圖3.7是“異或”邏輯梯形圖,下面是與梯形圖對應(yīng)的語句表。在的語句表中,使用了“異或”和“異或非”指令,分別用助記符“X”和“XN”來標(biāo)識。它類似“或”和“或非”指令,用于掃描并聯(lián)回路能否“通電”。XI1.0XNI1.1=Q4.0當(dāng)執(zhí)行語句表中的第一條指令時(shí),首次掃描的結(jié)果被直接保存在RLO中,然后RLO中的值和第二條指令的掃描結(jié)果進(jìn)行“異或”操作,得到的新結(jié)果再存入RLO。如此掃描、“異或”并刷新RLO,直到賦值指令將RLO的值賦給輸出Q4.0。圖中,僅當(dāng)兩個(gè)觸點(diǎn)(輸入I1.0和輸入I1.1)的掃描結(jié)果不同,即只有一個(gè)為“1”時(shí),RLO才為“1”,并賦值給輸出使Q4.0為“1”。若兩個(gè)信號的掃描結(jié)果相同(均為“1”或“0”),則Q4.0為“0”。與O和ON比較,X和XN排除了兩個(gè)信號掃描結(jié)果為“1”時(shí),使輸出為“1”的可能。圖3.7“異或”邏輯梯形圖3.3.2位操作指令1.輸出指令邏輯串輸出指令又稱為賦值操作指令,該操作把狀態(tài)字中RLO的值賦給指定的操作數(shù)(位地址)。若RLO為“1”,則操作數(shù)被置位,否則操作數(shù)被復(fù)位。表3.5列出了操作數(shù)的數(shù)據(jù)類型和所在的存儲區(qū)。邏輯串輸出指令通過把首次檢測位(FC位)置0,來結(jié)束一個(gè)邏輯串。當(dāng)FC位為0時(shí),表明程序中的下一條指令是一個(gè)新邏輯串的第一條指令,CPU對其進(jìn)行首次掃描操作。這一點(diǎn)在梯形圖中顯示得很清楚。表3.6輸出指令LAD輸出指令像繼電器邏輯圖中的線圈一樣工作。如果電流能夠流經(jīng)電路到達(dá)線圈(即RLO為1)的話,則繼電器線圈通電,其常開觸點(diǎn)閉合,否則線圈不通電,常開觸點(diǎn)斷開。在LAD中,只能將輸出指令放在邏輯符號串的最右端,但其前面必須有鏈路,不能將輸出指令單獨(dú)放在一個(gè)空網(wǎng)絡(luò)中。一個(gè)RLO可被用來驅(qū)動幾個(gè)輸出元件。在LAD中,輸出線圈是上下依次排列的。在STL中,與輸出信號有關(guān)的指令被一個(gè)接一個(gè)地連續(xù)編程,這些輸出具有相同的優(yōu)先級。圖3.8是多重輸出梯形圖,與之對應(yīng)的語句表如下:AI0.0AI0.1ONI0.2=Q4.0AI0.3=Q4.1圖3.8是多重輸出梯形圖中間輸出指令在存儲邏輯中,用于存儲RLO的中間值,該值是中間輸出指令前的位前的邏輯操作結(jié)果。在與其它觸點(diǎn)串聯(lián)的情況下,中間輸出與一般觸點(diǎn)的功能一樣。中間輸出指令不能用于結(jié)束一個(gè)邏輯串,因此,中間輸出指令不能放在邏輯串的結(jié)尾或分支的結(jié)尾處,圖3.9是中間輸出梯形圖。從圖3.9中可以看出,中間輸出指令能夠在位操作邏輯串中驅(qū)動等效繼電器,并影響繼電器的觸點(diǎn)狀態(tài)。這使得梯形圖可以多級輸出,從而提高了編程效率。圖3.9中間輸出
2.置位/復(fù)位指令置位/復(fù)位指令根據(jù)RLO的值,來決定被尋址位的信號狀態(tài)是否需要改變。若RLO的值為1,被尋址位的信號狀態(tài)被置1或清0;若RLO是0,則被尋址位的信號保持原狀態(tài)不變。置位/復(fù)位指令有關(guān)內(nèi)容見表3.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é)束一個(gè)邏輯串,因此,在LAD中置位/復(fù)位指令要放在邏輯串的最右端,而不能放在邏輯串中間。復(fù)位指令還可用于復(fù)位定時(shí)器和計(jì)數(shù)器。表3.7置位/復(fù)位指令(S)圖3.10置位/復(fù)位指令(a)復(fù)位指令操作
3.RS觸發(fā)器RS觸發(fā)器梯形圖方塊指令表示見表3.8。方塊中標(biāo)有一個(gè)置位輸入(S)端,一個(gè)復(fù)位輸入(R)端,輸出端標(biāo)為Q。觸發(fā)器可以用在邏輯串最右端,結(jié)束一個(gè)邏輯串,也可用在邏輯串中,影響右邊的邏輯操作結(jié)果。表3.8RS觸發(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ù)位輸入最終有效.既復(fù)位輸入優(yōu)先,觸發(fā)器或被置位或保持置位不變。圖3.11給出了使用置位優(yōu)先型RS觸發(fā)器的梯形圖例子,圖中也給出了與梯形圖對應(yīng)的語句表程序。AI0.0RM0.0AI0.1SM0.0AM0.0=Q4.0圖3.11置位優(yōu)先型RS觸發(fā)器
4.對RLO的直接操作指令這一類指令直接對邏輯操作結(jié)果RLO進(jìn)行操作,改變狀態(tài)字中RLO位的狀態(tài)。有關(guān)內(nèi)容見表3.8。表3.8對RLO的直接操作指令3.3.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中有兩類跳變沿檢測指令,一種是對RLO的跳變沿檢測的指令,另一種是對觸點(diǎn)跳變沿直接檢測的梯形圖方塊指令。具體內(nèi)容見表3.9。表3.9跳變沿檢測指令圖3.12是使用RLO正跳沿檢測指令的例子。這個(gè)例子中,若CPU檢測到輸入I1.0有一個(gè)正跳沿,將使得輸出Q4.0的線圈在一個(gè)掃描周期內(nèi)通電。對輸入I1.0常開觸點(diǎn)掃描的RLO值(在本例中,此RLO正好與輸入I1.0的信號狀態(tài)相同)存放在存儲位M1.0中。圖3.12RLO正跳沿檢測在掃描周期中,CPU對I1.0信號狀態(tài)掃描并形成RLO值,若該RLO值是1而存放在M1.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和FN檢測到的是在RLO中表現(xiàn)出的變化,而不是觸點(diǎn)的狀態(tài)變化(前面的圖中是特例)。因?yàn)?,一般情況下,RLO可能由一個(gè)邏輯串形成,并不單獨(dú)與某觸點(diǎn)的狀態(tài)直接相關(guān)。若需要在邏輯串中單獨(dú)檢測某觸點(diǎn)的跳變沿,可使用對觸點(diǎn)跳變沿直接檢測的梯形圖方塊指令。圖3.13是使用觸點(diǎn)負(fù)跳沿檢測指令的例子。圖中,由<位地址1>給出需要檢測的觸點(diǎn)編號(I0.3),<地址2>(M0.0)用于存放該觸點(diǎn)在前一個(gè)掃描周期的狀態(tài)。圖3.13觸點(diǎn)負(fù)跳沿檢測執(zhí)行觸點(diǎn)正跳沿檢測指令時(shí),CPU將<位地址1>的當(dāng)前觸點(diǎn)狀態(tài)與存在<地址2>中的上次觸點(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)的特性是:若方塊的Q為1,則觸點(diǎn)閉合;若Q為0,則觸點(diǎn)斷開。3.3.4位邏輯指令編程舉例例1.傳送帶控制圖3.14表示一個(gè)能夠電氣啟動的傳送帶。在傳送帶的起點(diǎn)有兩個(gè)按鈕開關(guān):用于START的S1和用于STOP的S2。在傳送帶的尾部也有兩個(gè)按鈕開關(guān):S3用于START,S4用于STOP??梢詮娜我欢藛踊蛲V箓魉蛶?。另外,當(dāng)傳送帶上的物件到達(dá)末端時(shí),傳感器S5使傳送帶停機(jī)。圖3.14傳送帶示意圖表3.10用于傳送帶系統(tǒng)符號編程的元素圖3.15控制傳送帶的梯形圖與相應(yīng)的語句表圖3.16串并聯(lián)組合邏輯梯形圖(a)先并后串邏輯梯形圖;(b)先串后并邏輯梯形圖例2.串并聯(lián)組合表示法
當(dāng)邏輯串是復(fù)雜組合時(shí),CPU的掃描順序是先“與”后“或”。圖3.16(a)給出的梯形邏輯是觸點(diǎn)先并后串的例子,與其對應(yīng)的語句表為:A(OI0.0OI0.2)A(OM10.0OM0.3)AM10.1=Q4.0圖3.16(b)是先串后并的例子,與其對應(yīng)的語句表如下:A(AI0.0AM10.0OAI0.2AM0.3)AM10.1=Q4.0例3.風(fēng)機(jī)監(jiān)控程序某設(shè)備有三臺風(fēng)機(jī),當(dāng)設(shè)備處于運(yùn)行狀態(tài)時(shí),如果風(fēng)機(jī)至少有兩臺以上轉(zhuǎn)動,則指示燈常亮;如果僅有一臺風(fēng)機(jī)轉(zhuǎn)動,則指示燈以0.5Hz的頻率閃爍;如果沒有任何風(fēng)機(jī)轉(zhuǎn)動,則指示燈以2Hz的頻率閃爍。當(dāng)設(shè)備不運(yùn)行時(shí),指示燈不亮。實(shí)現(xiàn)上述功能的梯形圖程序見圖3.17。圖3.17風(fēng)機(jī)監(jiān)控程序下面給出實(shí)現(xiàn)風(fēng)機(jī)狀態(tài)檢測的語句表程序,從中可看出中間輸出指令的用法:輸入位I0.0,I0.1,I0.2分別表示風(fēng)機(jī)1,2,3。存儲位M100.3為2Hz的頻率信號,M100.7為0.5Hz的信號。風(fēng)機(jī)轉(zhuǎn)動狀態(tài)指示燈由Q4.0控制。存儲位M10.0為1時(shí)用于表示至少有兩臺風(fēng)機(jī)轉(zhuǎn)動,M10.1為1時(shí)表示沒有風(fēng)機(jī)轉(zhuǎn)動。例4.二分頻器二分頻器是一種具有一個(gè)輸入端和一個(gè)輸出端的功能單元,輸出頻率為輸入頻率的一半。如下,輸入為I0.0,輸出為Q4.0。梯形圖程序:語句表程序:方法2例5燈泡控制程序一盞燈泡由一個(gè)按鈕來控制,已知第一次按下按鈕,燈泡亮,第二次按下按鈕,燈光滅。PLC接線圖定義符號地址符號地址絕對地址類據(jù)類型說明S0I0.0BOOL按鈕L0Q0.0BOOL燈泡M0M0.0BOOL標(biāo)標(biāo)位梯形圖程序3.4定時(shí)器與計(jì)數(shù)器指令3.4.1定時(shí)器指令定時(shí)器可以提供等待時(shí)間或監(jiān)控時(shí)間,定時(shí)器還可產(chǎn)生一定寬度的脈沖,亦可測量時(shí)間。定時(shí)器是一種由位和字組成的復(fù)合單元,定時(shí)器的觸點(diǎn)由位表示,其定時(shí)時(shí)間值存儲在字存儲器中。脈沖定時(shí)器(SP)擴(kuò)展脈沖定時(shí)器(SE)接通延時(shí)定時(shí)器(SD)保持型接通延時(shí)定時(shí)器(SS)關(guān)斷延時(shí)定時(shí)器(SF)定時(shí)器的種類1.定時(shí)器的組成在CPU的存儲器中留出了定時(shí)器區(qū)域,該區(qū)域用于存儲定時(shí)器的定時(shí)時(shí)間值。每個(gè)定時(shí)器為2B,稱為定時(shí)字。在S7-300中,定時(shí)器區(qū)為512B,因此最多允許使用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)的動作。定時(shí)器的第0位到第11位存放二進(jìn)制格式的定時(shí)值,第12、13位存放二進(jìn)制格式的時(shí)基(如圖3.18所示)。這12位二進(jìn)制代碼表示的數(shù)值范圍是0~4096,實(shí)際使用范圍是0~999。時(shí)基和時(shí)間值可以任意組合,以得到不同的定時(shí)分辨率和定時(shí)時(shí)間。表3.11中給出了可能的組合情況。從表3.11中可以看出,時(shí)基小,則定時(shí)分辨率高,但定時(shí)時(shí)間范圍窄;時(shí)基大,則定時(shí)分辨率低,但定時(shí)時(shí)間范圍寬。圖3.18累加器1低字的內(nèi)容(定時(shí)值127,時(shí)基ls)表3.11時(shí)基與定時(shí)范圍當(dāng)定時(shí)器啟動時(shí),累加器1低字的內(nèi)容被當(dāng)作定時(shí)時(shí)間裝入定時(shí)字中。這一過程是由操作系統(tǒng)控制自動完成的,用戶只需給累加器1裝入不同的數(shù)值,即可設(shè)置需要的定時(shí)時(shí)間。為累加器1裝入定時(shí)時(shí)間值的表示方法:為累加器1裝入數(shù)值的指令很多,但在累加器1低字中的數(shù)據(jù)應(yīng)符合圖3.18所示的格式。為避免格式錯(cuò)誤,推薦采用下述直觀的句法:方法1:
LW#16#wxyz其中,w,x,y,z均為十進(jìn)制數(shù)。w為時(shí)基,取值為0,1,2或3,分別表示時(shí)基為10ms,l00ms,1s或10s;xyz為定時(shí)值,取值范圍為1~999。方法2:也可直接使用S5中的時(shí)間表示法裝入定時(shí)數(shù)值,例如: LS5T#aH_bbM_ccS_dddMS其中,a:小時(shí),bb:分鐘,cc:秒,ddd:毫秒,范圍:1MS到2H_46M_30S;此時(shí),時(shí)基是自動選擇的,原則是根據(jù)定時(shí)時(shí)間選擇能滿足定時(shí)范圍要求的最小時(shí)基。
2.定時(shí)器的啟動與運(yùn)行PLC中的定時(shí)器相當(dāng)于時(shí)間繼電器。在使用時(shí)間繼電器時(shí),要為其設(shè)置定時(shí)時(shí)間,當(dāng)時(shí)間繼電器的線圈通電后,時(shí)間繼電器被啟動。若定時(shí)時(shí)間到,繼電器的觸點(diǎn)動作。當(dāng)時(shí)間繼電器的線圈斷電時(shí),也將引起其觸點(diǎn)的動作。該觸點(diǎn)可以在控制線路中控制其它繼電器。S7中的定時(shí)器與時(shí)間繼電器的工作特點(diǎn)相似,對定時(shí)器同樣要設(shè)置定時(shí)時(shí)間,也要啟動定時(shí)器(使定時(shí)器線圈通電)。除此之外,定時(shí)器還增加了一些功能,如隨時(shí)復(fù)位定時(shí)器、隨時(shí)重置定時(shí)時(shí)間(定時(shí)器再啟動)、查看當(dāng)前剩余定時(shí)時(shí)間等。S7中的定時(shí)器不僅功能強(qiáng),而且類型多。圖3.19給出了為定時(shí)作業(yè)如何正確選擇定時(shí)器的示意圖。以下將以LAD方塊圖為主詳細(xì)介紹定時(shí)器的運(yùn)行原理及使用方法。圖3.19五種類型定時(shí)器總覽3.定時(shí)器梯形圖方塊指令1)脈沖定時(shí)器(見表3.13)表3.13脈沖定時(shí)器如果RLO有正跳沿,則脈沖定時(shí)器啟動指令,以給出的時(shí)間值啟動指定的定時(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í)間)過去之前RLO由1變?yōu)?,則定時(shí)器被復(fù)位至啟動前的狀態(tài),在這種情況下定時(shí)器的常開觸點(diǎn)斷開。圖3.20脈沖定時(shí)器指令圖3.20是使用脈沖定時(shí)器的梯形圖編程例子,圖3.21是脈沖定時(shí)器的時(shí)序。以下是與梯形圖對應(yīng)的語句表: A I0.0 L S5T#2SSP T5 //以脈沖定時(shí)器方式啟動T5A I0.1R T5 //復(fù)位定時(shí)器T5A T5= Q4.0 //使用定時(shí)器T5的觸點(diǎn)圖3.21脈沖定時(shí)器時(shí)序2)擴(kuò)展脈沖定時(shí)器(見表3.14)表3.14擴(kuò)展脈沖定時(shí)器如果RLO有正跳沿,則擴(kuò)展(輸入)脈沖定時(shí)器啟動指令,以給出的時(shí)間值啟動指定的定時(shí)器。即使RLO變?yōu)?,定時(shí)器仍保持運(yùn)行,直到定時(shí)時(shí)間到后才停止(定時(shí)器被復(fù)位)。在定時(shí)器運(yùn)行時(shí),其常開觸點(diǎn)閉合,即對該定時(shí)器按1掃描的結(jié)果為1。當(dāng)定時(shí)時(shí)間到后,則常開觸點(diǎn)斷開,對1信號的掃描結(jié)果為0。圖3.22擴(kuò)展脈沖定時(shí)器指令圖3.22是使用擴(kuò)展脈沖定時(shí)器的梯形圖編程例子,圖3.23是擴(kuò)展脈沖定時(shí)器的時(shí)序。以下是與梯形圖對應(yīng)的語句表:A I0.0L S5T#2SSE T5 //以擴(kuò)展脈沖定時(shí)器方式啟動T5A I0.1R T5 //復(fù)位定時(shí)器T5A T5= Q4.0 //使用定時(shí)器T5的觸點(diǎn)圖3.23擴(kuò)展脈沖定時(shí)器時(shí)序3)接通延時(shí)定時(shí)器(見表3.14)表3.14接通延時(shí)定時(shí)器如果RLO有正跳沿,則接通延時(shí)定時(shí)器啟動指令,以給出的時(shí)間值啟動指定的定時(shí)器。當(dāng)定時(shí)時(shí)間到后,則常開觸點(diǎn)閉合并保持(對1信號的掃描結(jié)果為1)。直到RLO變?yōu)?,定時(shí)器才被復(fù)位至啟動前的狀態(tài),此時(shí)定時(shí)器的常開觸點(diǎn)斷開。若在給定的時(shí)間(即定時(shí)時(shí)間)過去之前RLO由1變?yōu)?,則定時(shí)器也被復(fù)位。圖3.24接通延時(shí)定時(shí)器指令圖3.24是使用接通延時(shí)定時(shí)器的梯形圖編程例子,圖3.25是接通延時(shí)定時(shí)器的時(shí)序。以下是與梯形圖對應(yīng)的語句表:A I0.0L S5T#2SSD T5 //以接通延時(shí)定時(shí)器方式啟動T5A I0.1R T5 //復(fù)位定時(shí)器T5A T5= Q4.0 //使用定時(shí)器T5的觸點(diǎn)圖3.25接通延時(shí)定時(shí)器時(shí)序4)保持型接通延時(shí)定時(shí)器(見表3.16)表3.16保持型接通延時(shí)定時(shí)器如果RLO有正跳沿,則保持型接通延時(shí)定時(shí)器啟動指令,以給出的時(shí)間值啟動指定的定時(shí)器,即使RLO變?yōu)?,定時(shí)器仍保持運(yùn)行。此時(shí),定時(shí)器常開觸點(diǎn)斷開(即對該定時(shí)器按1掃描的結(jié)果為0),當(dāng)定時(shí)時(shí)間到后,常開觸點(diǎn)閉合并保持。若RLO再有一個(gè)正跳沿,定時(shí)器重新啟動,只有用復(fù)位指令才能復(fù)位該定時(shí)器。圖3.26是使用保持型接通延時(shí)定時(shí)器的梯形圖編程例子,圖3.27是保持型接通延時(shí)定時(shí)器的時(shí)序。圖3.26保持型接通延時(shí)定時(shí)器指令圖3.27保持型接通延時(shí)定時(shí)器時(shí)序以下是與梯形圖對應(yīng)的語句表:A I0.0L S5T#2SSS T5 //以保持型接通延時(shí)定時(shí)器方式啟動T5A I0.1R T5 //復(fù)位定時(shí)器T5A T5= Q4.0 //使用定時(shí)器T5的觸點(diǎn)5)關(guān)斷延時(shí)定時(shí)器(見表3.17)表3.17關(guān)斷延時(shí)定時(shí)器如果RLO有負(fù)跳沿,則關(guān)斷延時(shí)定時(shí)器啟動指令,以給出的時(shí)間值啟動指定的定時(shí)器。當(dāng)RLO為1或在定時(shí)器運(yùn)行時(shí),其常開觸點(diǎn)閉合,即對該定時(shí)器按1掃描的結(jié)果為1。當(dāng)定時(shí)時(shí)間到后,則常開觸點(diǎn)斷開。若在給定的時(shí)間(即定時(shí)時(shí)間)過去之前RLO由0變?yōu)?,則定時(shí)器被復(fù)位至啟動前的狀態(tài)。一直到RLO從1變?yōu)?之前,定時(shí)器不再啟動(使用FR指令除外)。圖3.28關(guān)斷延時(shí)定時(shí)器指令圖3.28是使用關(guān)斷延時(shí)定時(shí)器的梯形圖編程例子,圖3.29是關(guān)斷延時(shí)定時(shí)器的時(shí)序。以下是與梯形圖對應(yīng)的語句表:A I0.0L S5T#2SSF T5 //以關(guān)斷延時(shí)定時(shí)器方式啟動T5A I0.1R T5 //復(fù)位定時(shí)器T5A T5= Q4.0 //使用定時(shí)器T5的觸點(diǎn)圖3.29關(guān)斷延時(shí)定時(shí)器時(shí)序4.定時(shí)器線圈指令表3.18定時(shí)器線圈指令圖3.30擴(kuò)展脈沖定時(shí)器線圈指令圖3.30以擴(kuò)展脈沖定時(shí)器為例說明定時(shí)器線圈指令的用法。與梯形圖功能對應(yīng)的語句表程序如下:A I0.0L S5T#2SSE T5 //以擴(kuò)展脈沖定時(shí)器方式啟動T5A I0.1R T5 //復(fù)位定時(shí)器T5A T5= Q4.0 //使用定時(shí)器T5的觸點(diǎn)定時(shí)器應(yīng)用舉例例1脈沖發(fā)生器
用定時(shí)器可構(gòu)成脈沖發(fā)生器,這里用了兩個(gè)定時(shí)器產(chǎn)生頻率占空比均可設(shè)置的脈沖信號。如下圖的脈沖發(fā)生器的時(shí)序圖,當(dāng)輸入I0.0為1時(shí),輸出Q0.0為1或0交替進(jìn)行,脈沖信號的周期為3s,脈沖寬度為1s。
梯形圖程序:網(wǎng)絡(luò)1A I0.0AN T1L S5T#2SSD T2網(wǎng)絡(luò)2A T2L SST#1SSD T1A T2= Q0.0
例2.頻率監(jiān)測器頻率監(jiān)測器用于監(jiān)測脈沖信號的頻率,若其低于下限,則指示燈亮,“確認(rèn)”按鍵能使指示燈復(fù)位。為此,使用了一個(gè)擴(kuò)展脈沖定時(shí)器,即每當(dāng)頻率信號有一個(gè)上升沿就啟動一次定時(shí)器。如果超過了定時(shí)時(shí)間沒有啟動定時(shí)器,則表明兩個(gè)脈沖之間的時(shí)間間隔太長,即頻率太低了。圖3.36為頻率監(jiān)測器時(shí)序。圖3.36頻率監(jiān)測器時(shí)序圖3.37頻率監(jiān)測梯形圖程序在頻率監(jiān)測程序中,輸入I0.0用于關(guān)閉監(jiān)測器,I0.1用于確認(rèn)頻率低;輸出Q4.0用以控制指示燈。定時(shí)器T1的定時(shí)時(shí)間為2s,即設(shè)置脈沖信號M10.0的頻率監(jiān)測下限為0.5Hz。梯形圖程序見圖3.37,以下是頻率監(jiān)測語句表程序:A M10.0AN I0.0L S5T#2SSE T1AN T1S Q4.0O I0.1O I0.0R Q4.0例3:順序循環(huán)執(zhí)行程序當(dāng)X0接通,燈Y0亮;經(jīng)5s后,燈Y0滅,燈Y1亮;經(jīng)5s后,燈Y1滅,燈Y2亮,再過5s后,燈Y2滅,燈Y0亮,如此順序循環(huán),其時(shí)序圖如下。例4.電動機(jī)順序啟動控制程序
有三臺電動機(jī)M1、M2、M3,按下啟動按鈕后M1啟動,延時(shí)5s后M2啟動,再延時(shí)16s后M3啟動。
PLC接線定義符號地址梯形圖程序例5.十字路口的交通指揮信號燈布置如下圖:
一、控制要求(1)信號燈系統(tǒng)由一個(gè)啟動開關(guān)控制,當(dāng)啟動開關(guān)接通時(shí),該信號燈系統(tǒng)開始工作,當(dāng)啟動開關(guān)關(guān)斷時(shí),所有信號燈都熄滅。(2)南北綠燈和東西綠燈不能同時(shí)亮。如果同時(shí)亮應(yīng)關(guān)閉信號燈系統(tǒng),并立刻報(bào)警。(3)南北紅燈亮維持25s。在南北紅燈亮的同時(shí)東西綠燈也亮,并維持20s。到20s時(shí),東西綠燈閃亮,閃亮3s后熄滅,此時(shí),東西黃燈亮,并維持2s。到2s時(shí),東西黃燈熄滅,東西紅燈亮。同時(shí),南北紅燈熄滅,南北綠燈亮。(4)東西紅燈亮維持30s。南北綠燈亮維持25s,然后閃亮3s后熄滅。同時(shí)南北黃燈亮,維持2s后熄滅,這時(shí)南北紅燈亮,東西綠燈亮。(5)以上南北、東西信號燈周而復(fù)始地交替工作狀態(tài),指揮著十字路口的交通,其時(shí)序如下所示。二、PLC接線三、定義符號地址四、梯形圖程序3.4.2計(jì)數(shù)器指令S7中的計(jì)數(shù)器用于對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中保留一塊存儲區(qū)作為計(jì)數(shù)器計(jì)數(shù)值存儲區(qū),每個(gè)計(jì)數(shù)器占用兩個(gè)字節(jié),稱為計(jì)數(shù)器字。計(jì)數(shù)器字中的第0~11位表示計(jì)數(shù)值(二進(jìn)制格式),計(jì)數(shù)范圍是0~999。當(dāng)計(jì)數(shù)值達(dá)到上限999時(shí),累加停止。計(jì)數(shù)值到達(dá)下限0時(shí),將不再減小。對計(jì)數(shù)器進(jìn)行置數(shù)(設(shè)置初始值)操作時(shí),累加器1低字中的內(nèi)容被裝入計(jì)數(shù)器字。計(jì)數(shù)器的計(jì)數(shù)值,將以此為初值增加或減小??梢杂枚喾N方式為累加器1置數(shù),但要確保累加器1低字符合圖3.31規(guī)定的格式。圖3.31累加器1低字的內(nèi)容計(jì)數(shù)值1272.計(jì)數(shù)器梯形圖方塊指令表3.19計(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)信號和讀取當(dāng)前計(jì)數(shù)值。在圖3.32中使用了梯形圖可逆計(jì)數(shù)器方塊指令,輸入I0.0的正跳沿使計(jì)數(shù)器C10的計(jì)數(shù)值增加,輸入I0.1使計(jì)數(shù)值減小。計(jì)數(shù)器C10的狀態(tài)用于控制輸出Q4.0。給C10預(yù)置的初始值放在MW10中,當(dāng)I0.2有正跳沿時(shí),該值被置入計(jì)數(shù)器C10。以下是與梯形圖對應(yīng)的語句表程序:圖3.32可逆計(jì)數(shù)器梯形圖方塊應(yīng)用A I0.0CU C10//若I0.0有正跳沿,則計(jì)數(shù)器C10的計(jì)數(shù)值加1A I0.1CD C10 //若I0.1有正跳沿,則計(jì)數(shù)器C10的計(jì)數(shù)值減1A I0.2L MW10S C10 //若I0.2有正跳沿,則C1置數(shù)A I0.3R C10 //若I0.3有正跳沿,則C10復(fù)位A C10= Q4.0 //若C10數(shù)值不為0,則Q4.0為13.計(jì)數(shù)器線圈指令表3.20計(jì)數(shù)器線圈指令圖3.33以加計(jì)數(shù)器為例說明計(jì)數(shù)器線圈指令的用法。與梯形圖功能對應(yīng)的語句表程序如下:A I0.0L C#100S C10A I0.1CU C10A I0.2R C10A C10= Q4.0這個(gè)例子用于對輸入I0.1的正跳沿計(jì)數(shù)。每一個(gè)正跳沿使計(jì)數(shù)器C10的計(jì)數(shù)值加1。輸入I0.0的信號狀態(tài)從0變?yōu)?,則計(jì)數(shù)器C10被置初始值100,C#表示以BCD碼格式輸入一個(gè)數(shù)值。若沒有正跳沿,計(jì)數(shù)器C10的計(jì)數(shù)值保持不變。輸入I0.2若為1,計(jì)數(shù)器被復(fù)位。計(jì)數(shù)器C10的計(jì)數(shù)值若不等于0,則C10輸出狀態(tài)為1,Q4.0也為1。3.4.3應(yīng)用舉例例1.計(jì)數(shù)器擴(kuò)展為定時(shí)器當(dāng)定時(shí)器不夠用時(shí),可以用計(jì)數(shù)器擴(kuò)展為定時(shí)器.程序中使用了CPU的時(shí)鐘存儲器,設(shè)置MB100為時(shí)鐘存儲器,則M100.0的變化周期為0.1s。在程序中,如果I0.1的正跳沿為減計(jì)數(shù)器C0置數(shù).若I0.0為1,則C0每0.1s減1。當(dāng)C0減到0后,輸出Q0.0為1.I0.1的又一個(gè)正跳沿使C0置數(shù)并使輸出為0.這樣,在I0.0為1后2s(20*0.1s=2s),Q0.0為1,I0.1的正跳沿使Q0.0復(fù)位.例2.長時(shí)間延時(shí)程序采用定時(shí)器和計(jì)數(shù)器可以組成長時(shí)間延時(shí)程序,如下:當(dāng)輸入I0.0接通時(shí),定時(shí)器T0經(jīng)過10s時(shí)間延時(shí)后,其動合觸點(diǎn)T0閉合,計(jì)數(shù)器C0開始遞減運(yùn)算,與此同時(shí)T0的動斷觸點(diǎn)是斷開的,造成T0線圈斷電,使T0的動合觸點(diǎn)斷開,C0僅計(jì)數(shù)一次,而后T0線圈又接通,如此循環(huán).當(dāng)C0經(jīng)過10s*10=100s時(shí)間后,計(jì)數(shù)器C0輸出為0,輸出Q0.0接通,具有長時(shí)間延時(shí)的功能.例3.當(dāng)X0接通,燈Y0亮;經(jīng)5s后,燈Y0滅,燈Y1亮;經(jīng)5s后,燈Y1滅,燈Y2亮,再過5s后,燈Y2滅,燈Y0亮,如此順序循環(huán)10次后自動停止。3.5數(shù)據(jù)處理功能指令3.5.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)容保持不變。L和T指令可對字節(jié)(8位)、字(16位)、雙字(32位)數(shù)據(jù)進(jìn)行操作,當(dāng)數(shù)據(jù)長度小于32位時(shí),數(shù)據(jù)在累加器右對齊(低位對齊),其余各位填0。裝入和傳送操作有三種尋址方式,即立即尋址、直接尋址和間接尋址。1.對累加器1的裝入和傳送指令L+5 //將立即數(shù)+5裝入累加器1中LMW10 //將MW10中的值裝入累加器1中LIB[DID8] //將由數(shù)據(jù)雙字DID8指出的輸入字節(jié)裝入累加器1中TMW20 //將累加器1中的內(nèi)容傳送給存儲字MW20TMW[AR1,P#10.0] //將累加器1中的內(nèi)容傳送給由地址寄存器1加偏移量確定的存儲字中
2.讀取或傳送狀態(tài)字LSTW //將狀態(tài)字中0~8位裝入累加器1中,累 加器9~3l位被清0TSTW //將累加器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í)間。同理,對當(dāng)前計(jì)數(shù)值也有直接裝載和以BCD碼格式讀出計(jì)數(shù)值之分。例如:
LT1//將定時(shí)器T1中二進(jìn)制格式的時(shí)間值直接裝入累加器1的低字中LCT1//將定時(shí)器T1中的時(shí)間值和時(shí)基以BCD碼格式裝入累加器1的低字中LC1//將計(jì)數(shù)器C1中二進(jìn)制格式的計(jì)數(shù)值直接裝入累加器1的低字中LCC1//將計(jì)數(shù)器Cl中的計(jì)數(shù)值以BCD碼格式裝入累加器1的低字中
4.地址寄存器裝入和傳送對于地址寄存器,可以不經(jīng)過累加器l而直接將操作數(shù)裝入或傳送,或?qū)蓚€(gè)地址寄
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 武漢輕工大學(xué)《教育統(tǒng)計(jì)學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 汽車委托服務(wù)合同范例
- 泳池設(shè)備保養(yǎng)合同范例
- 設(shè)備購銷簡易合同范例
- 中介承租合同范例
- 戶外租賃餐具合同范例
- 承兌貼息合同范例
- 車庫合租協(xié)議合同范例
- 廣告架租賃合同范例
- 廠房倉庫合同范例范例
- LTE高負(fù)荷小區(qū)的優(yōu)化解決方案
- 中國肺動脈高壓診斷與治療指南(2021版)解讀
- 2023年浙江省高考?xì)v史選考模擬試卷及答案解析
- 高一語文必修一新聞和報(bào)告文學(xué)閱讀復(fù)習(xí)題及答案解析
- 泛海三江JB-QGL-9100火災(zāi)報(bào)警控制器(聯(lián)動型)使用手冊
- 技術(shù)創(chuàng)新文獻(xiàn)綜述
- 第17課中國工農(nóng)紅軍長征30張PPT課件 部編版八年級歷史上冊第五單元
- 6077三菱帕杰羅v86v93v98w維修手冊原廠
- 中華人民共和國史馬工程課件01第一章
- 集裝箱碼頭業(yè)務(wù)流程圖
- GB/T 37234-2018文件鑒定通用規(guī)范
評論
0/150
提交評論