版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第四章S7-300軟件基礎(chǔ)4.1PLC編程基礎(chǔ)4.2STEP7的指令結(jié)構(gòu)4.3位邏輯指令4.5定時(shí)器與計(jì)數(shù)器指令第四章S7-300軟件基礎(chǔ)4.1PLC編程基礎(chǔ)4.1PLC編程基礎(chǔ)4.1.1STEP7編程語言
STEP7是S7-300/400系列PLC應(yīng)用設(shè)計(jì)軟件包,所支持的PLC編程語言非常豐富。該軟件的標(biāo)準(zhǔn)版支持STL(語句表)、LAD(梯形圖)及FBD(功能塊圖)3種基本編程語言,并且在STEP7中可以相互轉(zhuǎn)換。不同的編程語言可供不同知識(shí)背景的人員采用。其中LAD、STL和FBD是三種基本編程語言。4.1PLC編程基礎(chǔ)4.1.1STEP7編程語言4.1.1STEP7編程語言
LAD(LAD:LadderDiagram)簡稱梯形圖,LAD是使用最多的PLC編程語言。因與繼電器電路很相似,具有直觀易懂的特點(diǎn),很容易被熟悉繼電器控制的電氣人員所掌握,特別適合于數(shù)字量邏輯控制,也適合于熟悉繼電器電路的人員使用。LAD編程語言如圖4.1所示。圖4.1 LAD編程語言1、梯形圖(LAD)4.1.1STEP7編程語言LAD(LAD:Ladd4.1.1STEP7編程語言2、語句表(STL)STL(STL:StatementList)簡稱語句表,STL是一種類似于微機(jī)匯編語言的一種文本編程語言,由多條語句組成一個(gè)程序段。語句表適合于經(jīng)驗(yàn)豐富的程序員使用,可以實(shí)現(xiàn)某些梯形圖不能實(shí)現(xiàn)的功能。STL適用于喜歡用匯編語言編程的人員使用。STL編程語言如圖4.2所示。
圖4.2 STL編程語言4.1.1STEP7編程語言2、語句表(STL)圖4.4.1.1STEP7編程語言3、功能塊圖(FBD)FBD(FBD:FunctionBlockDiagram)簡稱功能塊圖,功能塊圖使用類似于布爾代數(shù)的圖形邏輯符號(hào)來表示控制邏輯,一些復(fù)雜的功能用指令框表示。FBD適合于有數(shù)字電路基礎(chǔ)的編程人員使用。FBD編程語言如圖4.3所示。4.1.1STEP7編程語言3、功能塊圖(FBD)4.1.1STEP7編程語言圖4.3 FBD編程語言4.1.1STEP7編程語言圖4.3 FBD編程語言4.1.2S7-300CPU的系統(tǒng)存儲(chǔ)器1、過程映像輸入表/輸出表(I/Q)過程映像輸入表(PII):循環(huán)掃描開始時(shí),存儲(chǔ)數(shù)字量輸入模塊的輸入信號(hào)的狀態(tài)。過程映像輸出表(PIQ):循環(huán)掃描結(jié)束時(shí),存儲(chǔ)用戶程序計(jì)算的輸出值,并將PIQ的內(nèi)容寫入數(shù)字量輸出模塊。2、內(nèi)部存儲(chǔ)器區(qū)(M)內(nèi)部存儲(chǔ)器區(qū)(M),主要用于存儲(chǔ)中間變量。3、定時(shí)器(T)存儲(chǔ)器區(qū)在CPU的存儲(chǔ)器中,有一個(gè)區(qū)域是專為定時(shí)器保留的。此存儲(chǔ)區(qū)域?yàn)槊總€(gè)定時(shí)器地址保留一個(gè)16位字。梯形圖邏輯指令集支持256個(gè)定時(shí)器。時(shí)間值可以用二進(jìn)制或BCD碼方式讀取。4.1.2S7-300CPU的系統(tǒng)存儲(chǔ)器1、過程映像4.1.2S7-300CPU的系統(tǒng)存儲(chǔ)器
4、計(jì)數(shù)器(C)存儲(chǔ)器區(qū)在用戶CPU的存儲(chǔ)器中,有為計(jì)數(shù)器保留的存儲(chǔ)區(qū)。此存儲(chǔ)區(qū)為每個(gè)計(jì)數(shù)器地址保留一個(gè)16位字。梯形圖指令集支持256個(gè)計(jì)數(shù)器。計(jì)數(shù)值(0~999)可以用二進(jìn)制或BCD碼方式讀取。5、數(shù)據(jù)塊/背景數(shù)據(jù)塊(DB)DB為共享數(shù)據(jù)塊,DBX2.3,DBB5,DBW10和DBD12。DI為背景數(shù)據(jù)塊,DIX,DIB,DIW和DID。6、外部I/O存儲(chǔ)區(qū)(PI/PQ)外設(shè)輸入(PI)區(qū)和外設(shè)輸出(PQ)區(qū)允許直接訪問本地的和分布式的輸入模塊和輸出模塊。4.1.2S7-300CPU的系統(tǒng)存儲(chǔ)器4、計(jì)數(shù)器(4.1.3S7-300CPU的寄存器
1、累加器(ACCUx)累加器用于處理字節(jié)、字或雙字的寄存器。S7-300有兩個(gè)32位累加器(ACCU1和ACCU2)。2、狀態(tài)字寄存器(16位)狀態(tài)字用于表示CPU執(zhí)行指令時(shí)所具有的狀態(tài)。一些指令是否執(zhí)行或以何方式執(zhí)行可能取決于狀態(tài)字中的某些位;執(zhí)行指令時(shí)也可能改變狀態(tài)字中的某些位,也能在位邏輯指令或字邏輯指令中訪問并檢測(cè)。狀態(tài)字的結(jié)構(gòu)如圖4.4所示。圖4.4狀態(tài)字的結(jié)構(gòu)4.1.3S7-300CPU的寄存器1、累加器(AC4.1.4STEP7數(shù)據(jù)類型在STEP7中,大多數(shù)指令要與具有一定大小的數(shù)據(jù)對(duì)象一起操作,不同的數(shù)據(jù)類型具有不同的格式。編程所用的數(shù)據(jù)要指定數(shù)據(jù)類型,要確定數(shù)據(jù)大小和數(shù)據(jù)的位結(jié)構(gòu)。數(shù)據(jù)類型分為3大類。1、基本數(shù)據(jù)類型基本數(shù)據(jù)類型有很多種,每種數(shù)據(jù)類型在分配內(nèi)存空間時(shí)有確定的位數(shù),如布爾型(BOOL)數(shù)據(jù)為1位,字節(jié)型(BYTE)數(shù)據(jù)為8位,字型(WORD)數(shù)據(jù)為16位,雙字型(DWORD)數(shù)據(jù)為32位。基本數(shù)據(jù)類型見表4-1。4.1.4STEP7數(shù)據(jù)類型在STEP7中,大多數(shù)指4.1.4STEP7數(shù)據(jù)類型表4-1STEP7中常用的基本數(shù)據(jù)類型4.1.4STEP7數(shù)據(jù)類型表4-1STEP7中常用4.1.4STEP7數(shù)據(jù)類型2、復(fù)式數(shù)據(jù)類型超過32位或由其他數(shù)據(jù)類型組成的數(shù)據(jù)為復(fù)式數(shù)據(jù)類型,STEP7允許4種復(fù)式數(shù)據(jù)類型,見表4-2。表4-2STEP7中的復(fù)式數(shù)據(jù)類型數(shù)據(jù)類型說明日期_時(shí)間DTDATE_AND_TIME定義64位區(qū)(8字節(jié))。用BCD碼存儲(chǔ)時(shí)間信息:字節(jié)0,年;字節(jié)1,月;字節(jié)2,日;字節(jié)3,小時(shí);字節(jié)4,分;字節(jié)5,秒;字節(jié)6和字節(jié)7的高位,毫秒;字節(jié)7的低位,星期幾字符串STRING可定義254個(gè)字符。字符串的默認(rèn)大小為256字節(jié)(存放254個(gè)字符,外加雙字節(jié)字頭),可以通過定義字符串的實(shí)際數(shù)目來減少預(yù)留值數(shù)組ARRAY定義一種數(shù)據(jù)格式的多維數(shù)組構(gòu)造STRUCT定義多種數(shù)據(jù)類型組合的數(shù)組4.1.4STEP7數(shù)據(jù)類型2、復(fù)式數(shù)據(jù)類型表4-2S4.1.4STEP7數(shù)據(jù)類型3、參數(shù)類型參數(shù)類型用于向FB和FC傳送參數(shù)。STEP7提供的參數(shù)類型見表4-3。參數(shù)大小說明定時(shí)器(Timer)2字節(jié)指定執(zhí)行邏輯塊時(shí)要使用的定時(shí)器,如T1計(jì)數(shù)器(Counter)2字節(jié)指定執(zhí)行邏輯塊時(shí)要使用的計(jì)數(shù)器,如C1塊BlockFBBlockFCBlockDBBlockSDB2字節(jié)如:FB1FC1DB1SDB1指針(Pointer)6字節(jié)定義內(nèi)存單元,如P#M30.0ANY10字節(jié)如果實(shí)參的數(shù)據(jù)類型未知,或可以使用任何數(shù)據(jù)類型時(shí),如P#M30.0,byte10表4-3STEP7的參數(shù)類型4.1.4STEP7數(shù)據(jù)類型3、參數(shù)類型參數(shù)大小說明定時(shí)4.1.5PLC編程的基本原則
1)外部輸入、輸出繼電器、內(nèi)部繼電器、定時(shí)器、計(jì)數(shù)器等器件的接點(diǎn)可多次重復(fù)使用;2)梯形圖每一行都是從左母線開始,線圈接在最右邊,接點(diǎn)不能放在線圈的右邊;3)線圈不能直接與左母線相連;4)同一編號(hào)的線圈在一個(gè)程序中使用兩次容易引起誤操作,應(yīng)盡量避免線圈重復(fù)使用;5)梯形圖程序必須符合順序執(zhí)行的原則,從左到右,從上到下地執(zhí)行,如不符合順序執(zhí)行的電路不能直接編程;6)在梯形圖中串聯(lián)接點(diǎn)、并聯(lián)接點(diǎn)的使用次數(shù)沒有限制,可無限次地使用。PLC編程應(yīng)該遵循以下基本原則:4.1.5PLC編程的基本原則1)外部輸入、輸出繼電器4.2STEP7的指令結(jié)構(gòu)
指令是程序的最小獨(dú)立單位,用戶程序是由若干條順序排列的指令構(gòu)成。STEP7編程語言其指令功能非常豐富。利用程序編輯器,可以進(jìn)行離線編程,即把程序存儲(chǔ)在編程器中,也可以進(jìn)行在線編程,將程序存儲(chǔ)在CPU中。4.2.1指令操作數(shù)
指令操作數(shù)(又稱編程元件)一般在用戶存儲(chǔ)區(qū)中,操作數(shù)由操作標(biāo)識(shí)符和參數(shù)組成。操作標(biāo)識(shí)符由主標(biāo)識(shí)符和輔助標(biāo)識(shí)符組成,主標(biāo)識(shí)符用來指定操作數(shù)所使用的存儲(chǔ)區(qū)類型,輔助標(biāo)識(shí)符則用來指定操作數(shù)的單位(如:位、字節(jié)、字、雙字等)。主標(biāo)識(shí)符有:I(輸入過程映像寄存器)、Q(輸出過程映像寄存器)、M(位存儲(chǔ)器)、PI(外部輸入寄存器)、PQ(外部輸出寄存器)、T(定時(shí)器)、C(計(jì)數(shù)器)、DB(數(shù)據(jù)塊寄存器)和L(本地?cái)?shù)據(jù)寄存器);輔助標(biāo)識(shí)符有:X(位)、B(字節(jié))、W(字)、D(雙字)。4.2.2尋址方式
所謂尋址方式就是指令執(zhí)行時(shí)獲取操作數(shù)的方式,可以直接或間接方式給出操作數(shù)。S7-300有4種尋址方式:立即尋址、存儲(chǔ)器直接尋址、存儲(chǔ)器間接尋址和寄存器間接尋址。4.2STEP7的指令結(jié)構(gòu)1、立即尋址
立即尋址是對(duì)常數(shù)或常量的尋址方式,其特點(diǎn)是操作數(shù)直接表示在指令中,或以唯一形式隱含在指令中。下面各條指令操作數(shù)均采用了立即尋址方式。SET//把RLO置1OWW#16#A320//將常量W#16#A320與累加器1“或”運(yùn)算L27//把整數(shù)27裝入累加器1LC#0100//把BCD碼常數(shù)0100裝入累加器12、存儲(chǔ)器直接尋址
存儲(chǔ)器直接尋址,簡稱直接尋址。該尋址方式在指令中直接給出操作數(shù)的存儲(chǔ)單元地址。存儲(chǔ)單元地址可用符號(hào)地址(如SB1、KM等)或絕對(duì)地址(如I0.0、Q4.1等)。下面各條指令操作數(shù)均采用了直接尋址方式。AI0.0//對(duì)輸入位I0.0進(jìn)行“與”邏輯操作SL20.0//把本地?cái)?shù)據(jù)位L20.0置1=M115.4//使存儲(chǔ)區(qū)位M115.4的內(nèi)容等于RLO的內(nèi)容LIB10//把輸入字節(jié)IB10的內(nèi)容裝入累加器1TDBD12//把累加器1中的內(nèi)容傳送給數(shù)據(jù)雙字DBD12中1、立即尋址3、存儲(chǔ)器間接尋址存儲(chǔ)器間接尋址,簡稱間接尋址。該尋址方式在指令中以存儲(chǔ)器的形式給出操作數(shù)所在存儲(chǔ)器單元的地址,也就是說該存儲(chǔ)器的內(nèi)容是操作數(shù)所在存儲(chǔ)器單元的地址。該存儲(chǔ)器一般稱為地址指針,在指令中需寫在方括號(hào)“[]”內(nèi)。地址指針可以是字或雙字,對(duì)于地址范圍小于65535的存儲(chǔ)器可以用字指針;對(duì)于其他存儲(chǔ)器則要使用雙字指針。存儲(chǔ)器間接尋址的雙字指針的格式如圖4.5所示。圖4.5寄存器間接尋址的指針格式3、存儲(chǔ)器間接尋址圖4.5寄存器間接尋址的指針格式4.3位邏輯指令位邏輯指令包含位邏輯運(yùn)算指令、定時(shí)器指令、計(jì)數(shù)器指令和位測(cè)試指令等??梢允褂梦贿壿嬛噶顠呙璨紶柌僮鲾?shù)的狀態(tài),通過“與(AND)”、“或(OR)”、“異或(XOR)”及其組合操作實(shí)現(xiàn)邏輯操作。所產(chǎn)生的結(jié)果(“1”或“0”)稱為邏輯運(yùn)算結(jié)果,存儲(chǔ)在狀態(tài)字的“RLO”中。邏輯操作結(jié)果(RLO)用于賦值、置位/復(fù)位布爾操作數(shù),也用于控制定時(shí)器和計(jì)數(shù)器的運(yùn)行。
4.3.1觸點(diǎn)與線圈
在LAD(梯形圖)程序中,通常使用類似繼電器控制電路中的觸點(diǎn)符號(hào)及線圈符號(hào)來表示PLC的位元件,被掃描的操作數(shù)(用絕對(duì)地址或符號(hào)地址表示)則標(biāo)注在觸點(diǎn)符號(hào)的上方,如圖4.6所示。圖4.6觸點(diǎn)符號(hào)的表示方式4.3位邏輯指令位邏輯指令包含位邏輯運(yùn)算指令、定時(shí)器指令1、常開觸點(diǎn)
對(duì)于常開觸點(diǎn)(動(dòng)合觸點(diǎn)),則對(duì)“1”掃描相應(yīng)操作數(shù)。在PLC中規(guī)定:若操作數(shù)是“1”則常開觸點(diǎn)“動(dòng)作”,即認(rèn)為是“閉合”的;若操作數(shù)是“0”,則常開觸點(diǎn)“復(fù)位”,即認(rèn)為是“打開”的。常開觸點(diǎn)所使用的操作數(shù)是:I、Q、M、L、D、T、C。2、常閉觸點(diǎn)
常閉觸點(diǎn)(動(dòng)斷觸點(diǎn))則對(duì)“0”掃描相應(yīng)操作數(shù)。在PLC中規(guī)定:若操作數(shù)是“1”則常閉觸點(diǎn)“動(dòng)作”,即觸點(diǎn)“斷開”;若操作數(shù)是“0”,則常閉觸點(diǎn)“復(fù)位”,即觸點(diǎn)“閉合”。常閉觸點(diǎn)所使用的操作數(shù)是:I、Q、M、L、D、T、C。3、輸出線圈(賦值指令)
輸出線圈與繼電器控制電路中的線圈一樣,如果有電流(信號(hào)流)流過線圈(RLO=“1”),則被驅(qū)動(dòng)的操作數(shù)置“1”;如果沒有電流流過線圈(RLO=“0”),則被驅(qū)動(dòng)的操作數(shù)復(fù)位(置“0”)。輸出線圈只能出現(xiàn)在梯形圖邏輯串的最右邊。輸出線圈等同于STL程序中的賦值指令(用等于號(hào)“=”表示)。輸出線圈所使用的操作數(shù)是:Q、M、L、D。1、常開觸點(diǎn)4、中間輸出在梯形圖設(shè)計(jì)時(shí),如果一個(gè)邏輯串很長不便于編輯時(shí),可以將邏輯串分成幾個(gè)段,前一段的邏輯運(yùn)算結(jié)果(RLO)可作為中間輸出,存儲(chǔ)在位存儲(chǔ)器(I、Q、M、L或D)中,該存儲(chǔ)位可以當(dāng)作一個(gè)觸點(diǎn)出現(xiàn)在其他邏輯串中。中間輸出只能放在梯形圖邏輯串的中間,而不能出現(xiàn)在最左端或最右端,如圖4.7所示。
(a)帶中間輸出的梯形圖(b)不帶中間輸出的等效梯形圖圖4.7帶中間輸出和不帶中間輸出的梯形圖程序4、中間輸出(a)帶中間輸出的梯形圖4.3.2位邏輯運(yùn)算指令4.3.2位邏輯運(yùn)算指令位邏輯運(yùn)算指令是對(duì)“0”或“1”的布爾操作數(shù)進(jìn)行掃描,經(jīng)過相應(yīng)的位邏輯運(yùn)算,將邏輯運(yùn)算結(jié)果“0”或“1”送到狀態(tài)字的RLO位。1、“與”和“與非”(A,AN)指令邏輯“與”在梯形圖里是用串聯(lián)的觸點(diǎn)回路表示的,如果串聯(lián)回路里的所有觸點(diǎn)皆閉合,該回路就通“電”了。如圖4.8所示。圖4.8“與”邏輯指令4.3.2位邏輯運(yùn)算指令4.3.2位邏輯運(yùn)算指令圖42、“或”和“或非”(O,ON)指令邏輯“或”在梯形圖里是用并聯(lián)的觸點(diǎn)回路表示的,被掃描的操作數(shù)標(biāo)在觸點(diǎn)上方。在圖4.9中,只要有一個(gè)觸點(diǎn)閉合,輸出0.1的信號(hào)狀態(tài)就為“1”。圖4.9“或”和“或非”邏輯梯形圖2、“或”和“或非”(O,ON)指令圖4.9“或”和“或非3、“異或”和“異或非”(X,XN)指令圖4.10是“異或”邏輯梯形圖,它類似“或”和“或非”指令,用于掃描并聯(lián)回路能否“通電”。圖4.10“異或”邏輯梯形圖3、“異或”和“異或非”(X,XN)指令圖4.10“異或”邏4、輸出指令邏輯輸出指令又稱為賦值操作指令,該操作把狀態(tài)字中RLO的值賦給指定的操作數(shù)(位地址)。表4.4列出了操作數(shù)的數(shù)據(jù)類型和所在的存儲(chǔ)區(qū)。LAD指令STL指令功能操作數(shù)類型存儲(chǔ)區(qū)<位地址>
—()=<位地址>邏輯串賦值輸出<位地址>BOOLQ、M、D、L<位地址>
—(#)——中間結(jié)果賦值輸出<位地址>BOOLQ、M、D、L表4.4輸出指令4、輸出指令LAD指令STL指令功能操作數(shù)類型存儲(chǔ)區(qū)<位地址【例4-1】用“與”、“或”、“輸出”指令編寫電機(jī)啟動(dòng)停止控制程序。編程元件地址分配:啟動(dòng)按鈕SB1(常開觸點(diǎn)),I0.1;停止按鈕SB2(常閉觸點(diǎn)),I0.2;接觸器線圈KM,Q0.0。用梯形圖編寫的控制程序如圖4.11所示。圖4.11電機(jī)啟??刂铺菪螆D程序【例4-1】用“與”、“或”、“輸出”指令編寫電機(jī)啟動(dòng)停4.4.3置位和復(fù)位指令置位/復(fù)位指令根據(jù)RLO的值,來決定被尋址位的信號(hào)狀態(tài)是否需要改變。若RLO的值為1,被尋址位的信號(hào)狀態(tài)被置1或清0;若RLO是0,則被尋址位的信號(hào)保持原狀態(tài)不變。置位/復(fù)位指令有關(guān)內(nèi)容見表4.5。表4.5置位/復(fù)位指令LAD指令STL指令功能操作數(shù)數(shù)據(jù)類型存儲(chǔ)區(qū)<位地址>
—(R)R<位地址>復(fù)位輸出<位地址>BOOLQ、M、D、LTIMERTCOUNTERC<位地址
—(S)S<位地址>置位輸出<位地址>BOOLQ、M、D、L4.4.3置位和復(fù)位指令LAD指令STL指令功能操作數(shù)(a)復(fù)位指令操作(b)置位操作指令圖4.12置位/復(fù)位指令(a)復(fù)位指令操作(b)置位操作指令【例4.2】用置位與復(fù)位指令編制傳送帶運(yùn)動(dòng)控制程序。如圖4.13所示為一個(gè)傳送帶,在傳送帶的起點(diǎn)有兩個(gè)按鈕:用于啟動(dòng)的S1和用于停止的S2。在傳送帶的尾端也有兩個(gè)按鈕:用于啟動(dòng)的S3和用于停止的S4。要求能從任一端啟動(dòng)或停止傳送帶。另外,當(dāng)傳送帶上的物件到達(dá)末端時(shí),傳感器S5使傳送帶停止。圖4.13傳送帶示意圖【例4.2】用置位與復(fù)位指令編制傳送帶運(yùn)動(dòng)控制程序。圖4.1地址分配梯形圖程序圖4.14控制傳送帶程序地址分配梯形圖程序圖4.14控制傳送帶程序4.4.4RS和SR觸發(fā)器如果置位/復(fù)位指令用功能框圖表示就構(gòu)成了觸發(fā)器。該功能框有兩個(gè)輸入端,分別是置位輸入端S和復(fù)位輸入端R,有一個(gè)輸出Q(位地址)。觸發(fā)器可分為兩種類型:置位優(yōu)先型(RS觸發(fā)器,當(dāng)R和S驅(qū)動(dòng)信號(hào)同時(shí)為“1”時(shí),觸發(fā)器最終為置位狀態(tài))和復(fù)位優(yōu)先型(SR觸發(fā)器,當(dāng)R和S驅(qū)動(dòng)信號(hào)同時(shí)為“1”時(shí),觸發(fā)器最終為復(fù)位狀態(tài))。觸發(fā)器指令和操作數(shù)指令見表4.6。復(fù)位優(yōu)先RS置位優(yōu)先型RS參數(shù)數(shù)據(jù)類型存儲(chǔ)區(qū)
<位地址>BOOLQ、M、D、L需要置位、復(fù)位的位S允許置位輸入R允許復(fù)位輸入Q<地址>的狀態(tài)表4.6RS觸發(fā)器4.4.4RS和SR觸發(fā)器復(fù)位優(yōu)先RS置位優(yōu)先型RS參RS觸發(fā)器分為置位優(yōu)先和復(fù)位優(yōu)先型兩種,置位優(yōu)先型RS觸發(fā)器的R端在S端之上,當(dāng)兩個(gè)輸入端都為1時(shí),下面的置位輸入最終有效。既置位輸入優(yōu)先,觸發(fā)器或被復(fù)位或保持復(fù)位不變,如圖4.15所示。圖4.15置位優(yōu)先型RS觸發(fā)器RS觸發(fā)器分為置位優(yōu)先和復(fù)位優(yōu)先型兩種,置位優(yōu)先型RS4.4.5位測(cè)試指令當(dāng)信號(hào)狀態(tài)變化時(shí)就產(chǎn)生跳變沿。當(dāng)從0變到1時(shí),產(chǎn)生一個(gè)上升沿(或正跳沿);若從1變到0,則產(chǎn)生一個(gè)下降沿(或負(fù)跳沿)。S7中有兩類跳變沿檢測(cè)指令,一種是對(duì)RLO的跳變沿檢測(cè)的指令,另一種是對(duì)觸點(diǎn)跳變沿直接檢測(cè)的梯形圖方塊指令。具體內(nèi)容見表4.7。4.4.5位測(cè)試指令當(dāng)信號(hào)狀態(tài)變化時(shí)就產(chǎn)生跳變沿。當(dāng)LAD指令STL指令功能操作數(shù)數(shù)據(jù)類型存儲(chǔ)區(qū)<位地址>FP<位地址>RLO正跳沿檢測(cè)<位地址>BOOLI、Q、M、D、L——(P)<位地址>FN<位地址>RLO負(fù)跳沿檢測(cè)<位地址>BOOLI、Q、M、D、L——(N)觸點(diǎn)正跳沿檢測(cè)觸點(diǎn)跳沿檢測(cè)參數(shù)數(shù)據(jù)類型存儲(chǔ)區(qū)<位地址1>被檢測(cè)的位(觸點(diǎn))BOOLI、Q、M、D、LM_BIT存儲(chǔ)被檢測(cè)位上一個(gè)掃描周期的狀態(tài)BOOLQ、M、DQ單穩(wěn)輸出BOOLI、Q、M、D、L表4.7跳變沿檢測(cè)指令LAD指令STL指令功能操作數(shù)數(shù)據(jù)類型存儲(chǔ)區(qū)<位地址>圖4.16是使用RLO正跳沿檢測(cè)指令的例子。這個(gè)例子中,若CPU檢測(cè)到輸入I1.0有一個(gè)正跳沿,將使得輸出Q4.0的線圈在一個(gè)掃描周期內(nèi)通電。對(duì)輸入I1.0常開觸點(diǎn)掃描的RLO值存放在存儲(chǔ)位M1.0中。圖4.16RLO正跳沿檢測(cè)圖4.16是使用RLO正跳沿檢測(cè)指令的例子。這個(gè)例子中,圖4.17是使用觸點(diǎn)負(fù)跳沿檢測(cè)指令的例子。圖中,由<位地址1>給出需要檢測(cè)的觸點(diǎn)編號(hào)(I0.3),<地址2>(M0.0)用于存放該觸點(diǎn)在前一個(gè)掃描周期的狀態(tài)。圖4.17觸點(diǎn)負(fù)跳沿檢測(cè)圖4.17是使用觸點(diǎn)負(fù)跳沿檢測(cè)指令的例子。圖中,由<位地【例4.3】設(shè)計(jì)故障信息顯示電路,若故障信號(hào)I0.0為1,使Q4.0控制的指示燈以1HZ的頻率閃爍。操作人員按復(fù)位按鈕I0.1后,如故障信息消失,指示燈熄滅。如果沒有消失,指示燈轉(zhuǎn)為常亮,直至故障消失。分析:故障信息顯示程序如圖4.18所示,在設(shè)置CPU屬性時(shí)令M1為時(shí)鐘存儲(chǔ)器字節(jié),其中的M1.5提供周期為1S的時(shí)鐘脈沖。出現(xiàn)故障時(shí),將I0.0提供的故障信號(hào)用M0.1鎖存起來,使Q4.0控制的指示燈以1Hz的頻率閃爍。按復(fù)位按鈕I0.1后,將故障鎖存信號(hào)M0.1復(fù)位為0狀態(tài),如果這時(shí)故障以消失,指示燈熄滅。如果沒有消失,M0.1的常閉觸點(diǎn)與I0.0的常開觸點(diǎn)組成的串聯(lián)電路使指示燈轉(zhuǎn)為常亮,直至故障消失,I0.0變?yōu)?狀態(tài)。圖4.18故障信息顯示梯形圖程序【例4.3】設(shè)計(jì)故障信息顯示電路,若故障信號(hào)I0.0為1,4.5定時(shí)器與計(jì)數(shù)器指令4.5.1定時(shí)器指令1、定時(shí)器的種類定時(shí)器是PLC中的重要部件,它用于實(shí)現(xiàn)或監(jiān)控時(shí)間序列。定時(shí)器是一種由位和字組成的復(fù)合單元,定時(shí)器的觸點(diǎn)由位表示,其定時(shí)時(shí)間值存儲(chǔ)在字存儲(chǔ)器中。不同的CPU模塊,用于定時(shí)器的存儲(chǔ)區(qū)域也不同,最多允許使用64∽512個(gè)定時(shí)器。在S7-300中有5種定時(shí)器可供選擇:脈沖定時(shí)器(SP)、擴(kuò)展定時(shí)器(SE)、接通延時(shí)定時(shí)器(SD)、帶保持的接通延時(shí)定時(shí)器(SS)和斷電延時(shí)定時(shí)器(SF)。2、定時(shí)器的組成在CPU的存儲(chǔ)器中留出了定時(shí)器區(qū)域,用于存儲(chǔ)定時(shí)器的定時(shí)時(shí)間值。每個(gè)定時(shí)器有一個(gè)16位的字和一個(gè)二進(jìn)制位,定時(shí)器的字用來存放它當(dāng)前的定時(shí)時(shí)間值,定時(shí)器觸點(diǎn)的狀態(tài)由它的位的狀態(tài)來決定。用定時(shí)器地址(T和定時(shí)器號(hào),例如T6)來存取它的時(shí)間值和定時(shí)器位,帶操作數(shù)的指令存取定時(shí)器位,帶字操作數(shù)的指令存取定時(shí)器的時(shí)間值。不同的CPU支持32∽512個(gè)定時(shí)器,在S7-300中,最多允許使用256個(gè)定時(shí)器。4.5定時(shí)器與計(jì)數(shù)器指令4.5.1定時(shí)器指令3、定時(shí)器的表示方法S7中的定時(shí)時(shí)間由時(shí)基和定時(shí)值兩部分組成,定時(shí)時(shí)間等于時(shí)基與定時(shí)值的乘積。采用減計(jì)時(shí),定時(shí)時(shí)間到后會(huì)引起定時(shí)器觸點(diǎn)的動(dòng)作。時(shí)間值以二進(jìn)制格式存放,定時(shí)器的第0位到第11位存放二進(jìn)制格式的定時(shí)值,第12、13位存放二進(jìn)制格式的時(shí)基,如圖4.19所示。表4.8給出了可能出現(xiàn)的組合情況。表4.8給出了可能出現(xiàn)的組合情況。圖4.19累加器1低字的內(nèi)容(定時(shí)值127,時(shí)基1s)3、定時(shí)器的表示方法圖4.19累加器1低字的內(nèi)容(定時(shí)值12表4.8時(shí)基與定時(shí)范圍設(shè)置定時(shí)時(shí)間,用戶需給累加器1裝入需要的數(shù)值,為避免格式錯(cuò)誤,用戶可以按下列的形式將時(shí)間預(yù)置值裝入累加器的低位字:1)十六進(jìn)制數(shù)W#16#wxyz,其中,w=時(shí)間基準(zhǔn),取值為0,1,2或3,分別表示時(shí)基為10ms,100ms,1s或10s;xyz為定時(shí)值,取值范圍為1~999;2)直接使用S5中的時(shí)間表示法裝入定時(shí)數(shù)值,例如:S5T#aH_bM_cS_dMS,其中,H=小時(shí),M=分鐘,S=秒,MS=毫秒;a、b、c、d為用戶設(shè)置的值。可輸入的最大時(shí)間值為9990s或2H-46M_30S。例如S5T#1H_12M_18S為1h12min18s;S5T#18S為18秒。表4.8時(shí)基與定時(shí)范圍設(shè)置定時(shí)時(shí)間,用戶需給累加器1裝入4、定時(shí)器梯形圖方塊指令1)S5脈沖定時(shí)器脈沖定時(shí)器的功能類似于數(shù)字電路中上升沿觸發(fā)的單穩(wěn)態(tài)電路,圖4.19中的指令框中,S為脈沖定時(shí)器的設(shè)置輸入端,TV為預(yù)置值輸入端,R為復(fù)位輸入端;Q為定時(shí)器位輸出端,BI輸出16進(jìn)制格式的當(dāng)前時(shí)間值,BCD輸出當(dāng)前時(shí)間值的BCD碼。圖4.19脈沖定時(shí)器指令4、定時(shí)器梯形圖方塊指令1)S5脈沖定時(shí)器圖4.19脈沖定在I0.0提供的啟動(dòng)輸入信號(hào)S的上升沿,脈沖定時(shí)器開始定時(shí),輸出Q04.0變?yōu)?。定時(shí)器的當(dāng)前時(shí)間值等于TV端輸入的預(yù)置值(即初值)減去啟動(dòng)后的時(shí)間值。定時(shí)時(shí)間到時(shí),當(dāng)前時(shí)間值變?yōu)?,Q輸出變?yōu)?狀態(tài)。在定時(shí)期間,如果I0.0的常開觸點(diǎn)斷開,則停止定時(shí),當(dāng)前時(shí)間值便為0,Q0.0的線圈斷電。工作時(shí)序如圖4.20,圖4.20中的t是定時(shí)器的預(yù)置值。R是復(fù)位輸入端,在定時(shí)器輸出為1時(shí),如果復(fù)位輸入I0.1由0變?yōu)?,定時(shí)器被復(fù)位,復(fù)位后輸出Q0.0變?yōu)?狀態(tài),當(dāng)前時(shí)間值和時(shí)標(biāo)被請(qǐng)0。BI輸出端輸出不帶時(shí)基的十六進(jìn)制整數(shù)格式的定時(shí)器當(dāng)前值,BCD輸出端輸出BCD碼格式的當(dāng)前時(shí)間值和時(shí)基。圖4.20脈沖定時(shí)器時(shí)序在I0.0提供的啟動(dòng)輸入信號(hào)S的上升沿,脈沖定時(shí)器開始定2)S5擴(kuò)展脈沖定時(shí)器S5擴(kuò)展脈沖定時(shí)器如圖4.21,各個(gè)輸入輸出端的意義與S5脈沖定時(shí)器相同。圖4.21擴(kuò)展脈沖定時(shí)器指令 在啟動(dòng)輸入信號(hào)S的上升沿,脈沖定時(shí)器開始定時(shí),在定時(shí)期間,Q輸出端為1狀態(tài),直到定時(shí)結(jié)束。在定時(shí)期間即使S輸入變?yōu)?狀態(tài),仍繼續(xù)定時(shí),Q輸出端為1狀態(tài),直到定時(shí)結(jié)束。在定時(shí)期間,如果S輸入又由0變?yōu)?狀態(tài),定時(shí)器被重新啟動(dòng),開始以預(yù)置的時(shí)間值定時(shí)。2)S5擴(kuò)展脈沖定時(shí)器圖4.21擴(kuò)展脈沖定時(shí)器指令 R輸入有0變?yōu)?狀態(tài)時(shí),定時(shí)器被復(fù)位,停止定時(shí)。復(fù)位后Q輸出端變?yōu)?狀態(tài),當(dāng)前時(shí)間和時(shí)標(biāo)被清0。工作時(shí)序圖如圖4.22所示。圖4.22擴(kuò)展脈沖定時(shí)器時(shí)序R輸入有0變?yōu)?狀態(tài)時(shí),定時(shí)器被復(fù)位,停止定時(shí)。復(fù)位后Q3)S5開通延時(shí)計(jì)時(shí)器接通延時(shí)定時(shí)器是使用最多的定時(shí)器,定時(shí)器各輸入端和輸出端的意義和S5脈沖定時(shí)器相同,如圖4.23。圖4.23開通延時(shí)定時(shí)器指令3)S5開通延時(shí)計(jì)時(shí)器圖4.23開通延時(shí)定時(shí)器指令在啟動(dòng)輸入信號(hào)S的上升沿,定時(shí)器開始定時(shí)。定時(shí)器的當(dāng)前時(shí)間值等于預(yù)設(shè)值TV減去啟動(dòng)后的時(shí)間值。如果定時(shí)期間S的狀態(tài)一直為1,定時(shí)時(shí)間到時(shí),當(dāng)前時(shí)間值變?yōu)?,Q輸出端變?yōu)?狀態(tài),使Q0.2的線圈通電。此后如果S輸入由1變?yōu)?,Q輸出端的信號(hào)也變?yōu)?。在定時(shí)期間,如果S輸入由1變?yōu)?,則停止定時(shí),當(dāng)前時(shí)間值保持不變。S又變?yōu)?時(shí),又從預(yù)設(shè)值開始定時(shí),工作時(shí)序圖如圖4.24。R是復(fù)位輸入信號(hào),定時(shí)器的S輸入為1時(shí),不管定時(shí)時(shí)間是否已到,只要復(fù)位輸出R由0變?yōu)?,定時(shí)器都要被復(fù)位,復(fù)位后當(dāng)前時(shí)間和時(shí)基被清0。如果定時(shí)時(shí)間已到,復(fù)位后輸出Q由1變?yōu)?。圖4.24開通延時(shí)計(jì)時(shí)器時(shí)序在啟動(dòng)輸入信號(hào)S的上升沿,定時(shí)器開始定時(shí)。定時(shí)器的當(dāng)前時(shí)4)S5保持型接通延時(shí)定時(shí)器定時(shí)器各輸入端和輸出端的意義與S5定時(shí)器相同,如圖4.25所示。在啟動(dòng)輸入信號(hào)S的上升沿,定時(shí)器開始定時(shí),工作時(shí)序圖如圖4.26所示,定時(shí)期間及輸入S變?yōu)?,仍然繼續(xù)定時(shí)。定時(shí)時(shí)間到時(shí),輸出Q變?yōu)?并保持。在定時(shí)期間,如果輸入S又由0變?yōu)?,定時(shí)器被重新啟動(dòng),又從預(yù)置值開始定時(shí)。不管輸入S是什么狀態(tài),只要復(fù)位輸入R從0變?yōu)?,定時(shí)器就被復(fù)位,輸出Q變?yōu)?。圖4.25保持型開通延時(shí)定時(shí)器4)S5保持型接通延時(shí)定時(shí)器圖4.25保持型開通延時(shí)定時(shí)器圖4.26保持型開通延時(shí)定時(shí)器時(shí)序圖4.26保持型開通延時(shí)定時(shí)器時(shí)序5)S5斷開延時(shí)定時(shí)器定時(shí)器各輸入端和輸出端的意義與S5脈沖延時(shí)器相同,如圖4.27。在啟動(dòng)輸入信號(hào)S的上升沿,定時(shí)器的Q輸出信號(hào)變?yōu)?狀態(tài),當(dāng)前時(shí)間值為0。在S輸入的下降沿,定時(shí)器開始定時(shí)。定時(shí)時(shí)間到時(shí),輸出Q變?yōu)?狀態(tài),正在定時(shí)的時(shí)候,如果S信號(hào)由0變?yōu)?,定時(shí)器的時(shí)間值保持不變,停止定時(shí)。如果輸入S重新變?yōu)?,定時(shí)器從預(yù)置值開始重新定時(shí)。圖4.26保持型開通延時(shí)定時(shí)器時(shí)序圖4.26保持型開通延復(fù)位輸入I0.1為1狀態(tài)時(shí),定時(shí)器被復(fù)位,時(shí)間值被清0,輸出Q變?yōu)?狀態(tài)。S5斷開延時(shí)定時(shí)器工作時(shí)序圖如圖4.28。圖4.27斷開延時(shí)定時(shí)器復(fù)位輸入I0.1為1狀態(tài)時(shí),定時(shí)器被復(fù)位,時(shí)間值被清0圖4.28斷開延時(shí)定時(shí)器工作時(shí)序圖5、定時(shí)器線圈指令1)脈沖定時(shí)器線圈脈沖定時(shí)器線圈的功能和時(shí)序圖和S5脈沖定時(shí)器的相同,定時(shí)器位為1時(shí),定時(shí)器的常開觸點(diǎn)閉合,常閉觸點(diǎn)斷開。在圖4.29中,當(dāng)I0.0的常開觸點(diǎn)由斷開變?yōu)榻油〞r(shí),定時(shí)器開始定時(shí),T0的常開觸點(diǎn)閉合。定時(shí)時(shí)間到時(shí),T0的常開觸點(diǎn)斷開。在定時(shí)期間,如果I0.0變?yōu)?狀態(tài),或者復(fù)位輸入I0.1變?yōu)?狀態(tài),T0的常開觸點(diǎn)都將斷開,定時(shí)器的當(dāng)前值被清0。圖4.28斷開延時(shí)定時(shí)器工作時(shí)序圖5、定時(shí)器線圈指令圖4.29脈沖定時(shí)器線圈2)擴(kuò)充的脈沖定時(shí)器線圈在圖4.30中,當(dāng)I0.2的常開觸點(diǎn)由斷開變?yōu)榻佑|時(shí),定時(shí)器T1開始定時(shí),在定時(shí)期間,T1的常開觸點(diǎn)閉合。定時(shí)時(shí)間到時(shí),T1的常開觸點(diǎn)斷開。在定時(shí)期間,即使I0.2變?yōu)?狀態(tài),仍繼續(xù)定時(shí)。定時(shí)期間如果I0.2又由0狀態(tài)變?yōu)?狀態(tài),定時(shí)器被重新啟動(dòng)。復(fù)位輸入I0.3由0變?yōu)?狀態(tài)時(shí),T1被復(fù)位,其常開觸點(diǎn)斷開。圖4.29脈沖定時(shí)器線圈3)接通延時(shí)定時(shí)器線圈如圖4.31當(dāng)I0.4的常開觸點(diǎn)由斷開變?yōu)榻油〞r(shí),定時(shí)器T2開始定時(shí),如果I0.4一直為1,定時(shí)時(shí)間到時(shí),T2的常開觸點(diǎn)閉合。定時(shí)期間如果SD的線圈斷電,T2的當(dāng)前時(shí)間保持不變。線圈重新通電時(shí),又從預(yù)置值開始定時(shí)。復(fù)位輸入I0.5變?yōu)?時(shí),T2的常開觸點(diǎn)斷開,時(shí)間被清0。圖4.30擴(kuò)充的脈沖定時(shí)器線圈3)接通延時(shí)定時(shí)器線圈圖4.30擴(kuò)充的脈沖定時(shí)器線圈4)保持型接通延時(shí)定時(shí)器線圈如圖4.32,當(dāng)I0.6的常開觸點(diǎn)由斷開變?yōu)榻油〞r(shí),定時(shí)器開始定時(shí)。定時(shí)期間即使T3的線圈斷電,仍繼續(xù)定時(shí)。定時(shí)時(shí)間到時(shí),T3的定時(shí)器位變?yōu)?,其常開觸點(diǎn)閉合。只有復(fù)位輸入I0.7變?yōu)?,才能使T3復(fù)位,復(fù)位后其定時(shí)器位變?yōu)?,常開觸點(diǎn)斷開。在定時(shí)期間,I0.6的常開觸點(diǎn)如果斷開后又變?yōu)榻油?,定時(shí)器將被重新啟動(dòng),以設(shè)置的預(yù)置值重新開始定時(shí)。圖4.31接通延時(shí)定時(shí)器線圈4)保持型接通延時(shí)定時(shí)器線圈圖4.31接通延時(shí)定時(shí)器線圈5)斷開延時(shí)定時(shí)器線圈如圖4.33,當(dāng)I1.0的常開觸點(diǎn)由斷開變?yōu)榻油〞r(shí),T4的輸出變?yōu)?,其常開觸點(diǎn)閉合。在I1.0的下降沿,定時(shí)器開始定時(shí)。定時(shí)器到時(shí),T5的時(shí)間值變?yōu)?,其常開觸點(diǎn)斷開。在定時(shí)期間,如果I1.0的常開觸點(diǎn)由斷開變?yōu)榻油?,定時(shí)器的時(shí)間值保持不變,停止定時(shí)。如果I1.0的常開觸點(diǎn)重新斷開,定時(shí)器從預(yù)置值開始重新啟動(dòng)定時(shí)。復(fù)位輸入I1.1為1狀態(tài)時(shí),定時(shí)器被復(fù)位,時(shí)間值被清0,Q4.4的線圈斷電。圖4.32保持型接通延時(shí)定時(shí)器線圈5)斷開延時(shí)定時(shí)器線圈圖4.32保持型接通延時(shí)定時(shí)器線圈對(duì)于以上不同形式的定時(shí)器指令,一般的選擇原則是:1、如果要求輸入信號(hào)為1的時(shí)間等于定時(shí)器的設(shè)定時(shí)間,且要求輸入與輸出信號(hào)狀態(tài)一致時(shí),可選擇脈沖定時(shí)器SP;2、如果要求輸出信號(hào)為1的時(shí)間等于定時(shí)器的設(shè)定時(shí)間,但不要求輸入與輸出信號(hào)狀態(tài)一致,不考慮輸入信號(hào)為1的時(shí)間長短,可選擇擴(kuò)展定時(shí)器SE;3、如果要求設(shè)定時(shí)間到且輸入信號(hào)仍為1時(shí),輸出信號(hào)才從0變到1,可選擇接通延時(shí)定時(shí)器SD;圖4.33斷開延時(shí)定時(shí)器線圈對(duì)于以上不同形式的定時(shí)器指令,一般的選擇原則是:圖4.334、如果要求設(shè)定時(shí)間到時(shí),輸出信號(hào)才從0變到1,而不考慮輸入信號(hào)此時(shí)的狀態(tài)及為1的時(shí)間長短可選擇保持型接通延遲定時(shí)器SS;5、如果要求輸入信號(hào)從0變到1時(shí),輸出信號(hào)也從0變化到1,當(dāng)輸入信號(hào)從1變化到0才開始延遲,延遲時(shí)間到時(shí)輸出信號(hào)才從1變化到0,可選擇斷開延遲定時(shí)器SF。【例4.4】脈沖定時(shí)器應(yīng)用:優(yōu)先搶答器設(shè)計(jì)圖4.32搶答器示意圖4、如果要求設(shè)定時(shí)間到時(shí),輸出信號(hào)才從0變到1,而不考慮輸入設(shè)計(jì)說明:參賽者要搶答主持人所提問題時(shí),需搶先按下桌上的按鈕;指示燈亮后需待主持人按下“復(fù)位”鍵R后才熄燈;對(duì)初中班學(xué)生照顧,只要按下SB11和SB12中任一個(gè)按鈕燈HL1都亮;對(duì)高三班學(xué)生限制,只有SB31和SB32都按下時(shí)燈HL3才亮;若在主持人按下“開始”按鈕S后10s內(nèi)有搶答按鈕壓下,則電磁鐵YC得電,使彩球搖動(dòng),以示競賽者得到一次幸運(yùn)的機(jī)會(huì);如果定時(shí)到仍未有搶答,則禁止繼續(xù)搶答,如圖4.32。參考答案:端子接線圖,如圖4.33.圖4.33搶答器端子接線圖設(shè)計(jì)說明:圖4.33搶答器端子接線圖I/O地址分配表,如圖4.34圖4.34搶答器I/O地址分配表
I/O地址分配表,如圖4.34圖4.34搶答器I/O地址分控制程序如圖4.35控制程序如圖4.35設(shè)置搶答定時(shí)器初中組搶答控制設(shè)置搶答定時(shí)器初中組搶答控制高一組搶答控制圖4.35搶答器的梯形圖程序高三組搶答控制高一組搶答控制圖4.35搶答器的梯形圖程序高三組搶答控制【例4.5】擴(kuò)展脈沖定時(shí)器應(yīng)用——電動(dòng)機(jī)延時(shí)自動(dòng)關(guān)閉控制??刂埔螅喊磩?dòng)起動(dòng)按鈕S1(I0.0),電動(dòng)機(jī)M(Q4.0)立即起動(dòng),延時(shí)5分鐘以后自動(dòng)關(guān)閉。起動(dòng)后按動(dòng)停止按鈕S2(I0.1),電動(dòng)機(jī)立即停機(jī)??刂瞥绦蛉鐖D4.36。圖4.36電動(dòng)機(jī)延時(shí)自動(dòng)關(guān)閉控制梯形圖【例4.5】擴(kuò)展脈沖定時(shí)器應(yīng)用——電動(dòng)機(jī)延時(shí)自動(dòng)關(guān)閉控制。圖【例4.6】接通延時(shí)定時(shí)器和脈沖定時(shí)器應(yīng)用——用定時(shí)器構(gòu)成一脈沖發(fā)生器,當(dāng)滿足一定條件時(shí),能夠輸出一定頻率和一定占空比的脈沖信號(hào)??刂埔螅寒?dāng)按鈕S1(I0.0)按下時(shí),輸出指示燈H1(Q4.0)以滅2s,亮1s規(guī)律交替進(jìn)行。
(方法1:使用接通延時(shí)定時(shí)器)
(方法2:使用脈沖定時(shí)器)
【例4.6】接通延時(shí)定時(shí)器和脈沖定時(shí)器應(yīng)用——用定時(shí)器構(gòu)成一圖4.37應(yīng)用接通延時(shí)定時(shí)器和脈沖定時(shí)器構(gòu)成脈沖發(fā)生器梯形圖圖4.37應(yīng)用接通延時(shí)定時(shí)器和脈沖定時(shí)器構(gòu)成脈沖發(fā)生器梯形圖【例4.7】接通延時(shí)定時(shí)器的應(yīng)用——電動(dòng)機(jī)順序起??刂啤?刂埔螅喝鐖D4.38所示,某傳輸線由兩個(gè)傳送帶組成,按物流要求,當(dāng)按動(dòng)起動(dòng)按鈕S1時(shí),皮帶電機(jī)Motor_2首先起動(dòng),延時(shí)5s后,皮帶電機(jī)Motor_1自動(dòng)起動(dòng);如果按動(dòng)停止按鈕S2,則Motor_1立即停機(jī),延時(shí)10s后,Motor_2自動(dòng)停機(jī)。圖4.38電機(jī)順序起停控制示意圖【例4.7】接通延時(shí)定時(shí)器的應(yīng)用——電動(dòng)機(jī)順序起??刂?。圖4圖4.40I/O地址分配表圖4.39電機(jī)順序起停控制接線端子圖
圖4.40I/O地址分配表圖4.39電機(jī)順序起??刂平泳€端子圖4.41電機(jī)順序起停控制梯形圖程序圖4.41電機(jī)順序起??刂铺菪螆D程序【4.8】閃爍燈控制程序。某信號(hào)燈HL,當(dāng)開關(guān)S1接通后,就以滅1S、亮2S的頻率不斷閃爍。IO地址分配:本例中只有一個(gè)輸入,開關(guān)S1,編程地址為I0.0;1個(gè)輸出,信號(hào)燈HL,編程地址為Q4.0。因?yàn)樾盘?hào)燈點(diǎn)亮和熄滅的時(shí)間不同,所以需要兩個(gè)定時(shí)器T1和T2,T1的時(shí)間設(shè)定值為2S,T2的時(shí)間設(shè)定值為1S??刂瞥绦蛉缦拢簣D4.42信號(hào)燈閃爍控制程序【4.8】閃爍燈控制程序。某信號(hào)燈HL,當(dāng)開關(guān)S1接通后,就【4.9】定時(shí)器擴(kuò)展應(yīng)用。在S7-300中,單個(gè)定時(shí)器的最大計(jì)時(shí)范圍是9990s(2H_46M_30S),如果超過這個(gè)范圍,可以采用兩個(gè)或多個(gè)定時(shí)器級(jí)聯(lián)的方法來擴(kuò)展計(jì)時(shí)范圍?,F(xiàn)在考慮一個(gè)要求延時(shí)為5個(gè)小時(shí)的控制任務(wù)。假定T1的時(shí)間設(shè)定值為2H_20M,T2的時(shí)間設(shè)定值為2H_40M,則T1+t2=5H。其控制程序如圖所示。圖4.43兩個(gè)定時(shí)器級(jí)聯(lián)梯形圖【4.9】定時(shí)器擴(kuò)展應(yīng)用。在S7-300中,單個(gè)定時(shí)器的最大【4.10】用定時(shí)器設(shè)計(jì)周期和占空比可調(diào)的震蕩電路。圖4.44中I0.0的常開觸點(diǎn)接通后,T8的線圈通電,開始定時(shí)。2S后定時(shí)時(shí)間到,T8的常開觸點(diǎn)接通,使Q4.7變?yōu)?狀態(tài),同時(shí)T9開始定時(shí)。3S后T9的定時(shí)時(shí)間到,它的常閉觸點(diǎn)斷開使T8的線圈斷電,T8的常開觸點(diǎn)斷開,使Q4.7和T9的線圈斷電。下一個(gè)掃描周期因T9的常閉觸點(diǎn)接通,T8又從預(yù)置值開始定時(shí),以后Q4.7的線圈將這樣的周期性地通電和斷電,直到I0.0變?yōu)?狀態(tài)。Q4.7線圈通電和斷電的時(shí)間分別等于T9和T8的預(yù)置值。振蕩電路實(shí)際上是一個(gè)有正反饋的電路,T8和T9通過它們的觸點(diǎn)分別控制對(duì)方的線圈,形成了正反饋。圖4.44振蕩電路梯形圖【4.10】用定時(shí)器設(shè)計(jì)周期和占空比可調(diào)的震蕩電路。圖4.44.5.2計(jì)數(shù)器指令計(jì)數(shù)器是PLC提供的一個(gè)基本功能,S7系列PLC的CPU中有專門的計(jì)數(shù)器存儲(chǔ)區(qū),計(jì)數(shù)器存儲(chǔ)區(qū)的大小由CPU的型號(hào)決定。例如:CPU313C的PLC計(jì)數(shù)存儲(chǔ)區(qū)為256個(gè)計(jì)數(shù)器,即C0-C255。每個(gè)計(jì)數(shù)器有一個(gè)16位的字和一個(gè)二進(jìn)制的位,計(jì)數(shù)器的字用來存放它的當(dāng)前值,計(jì)數(shù)器觸點(diǎn)的狀態(tài)由它的位的狀態(tài)來決定。計(jì)數(shù)器指令是存取計(jì)數(shù)器存儲(chǔ)區(qū)的唯一功能。S7300中有3種計(jì)數(shù)器可供選擇:加計(jì)數(shù)器(CU)、減計(jì)數(shù)器(CD)和加減技術(shù)器(CUD)。與定時(shí)器指令一樣,計(jì)數(shù)器指令在梯形圖中也有兩種表示形式:計(jì)數(shù)器線圈指令表4.9和計(jì)數(shù)器方框指令表4.10。兩者可實(shí)現(xiàn)相同的功能,用戶可根據(jù)實(shí)際需要選擇使用。表4.9計(jì)數(shù)器線圈指令表4.5.2計(jì)數(shù)器指令表4.10計(jì)數(shù)器方框指令表表4.10計(jì)數(shù)器方框指令表1、加計(jì)數(shù)器如圖4.45的指令框中,S為加計(jì)數(shù)器的設(shè)置輸入端,PV為設(shè)置值輸入端,CU為加計(jì)數(shù)脈沖輸入端,R為復(fù)位輸入端;Q為計(jì)數(shù)器位輸出端,CV輸出十六進(jìn)制格式的當(dāng)前計(jì)數(shù)值,BCD輸出當(dāng)前計(jì)數(shù)值的BCD碼。圖4.45加計(jì)數(shù)器梯形圖在“設(shè)置”輸入信號(hào)I0.1的上升沿,將預(yù)置值PV指定的值送入計(jì)數(shù)器字。在“加計(jì)數(shù)脈沖”輸入信號(hào)I0.0的上升沿,如果計(jì)數(shù)值小于999,計(jì)數(shù)值加1?!皬?fù)位”輸入信號(hào)I0.2為1時(shí),計(jì)數(shù)器被復(fù)位,計(jì)數(shù)值被清0。計(jì)數(shù)值大于0時(shí)計(jì)數(shù)器位即輸出Q為1;計(jì)數(shù)值為0時(shí),計(jì)數(shù)器復(fù)位也為0。1、加計(jì)數(shù)器圖4.45加計(jì)數(shù)器梯形圖如果在用“設(shè)置”輸入S設(shè)置計(jì)數(shù)器時(shí)CU輸入為1,即使信號(hào)沒有變化,下一個(gè)掃描周期也會(huì)計(jì)數(shù)。2、加計(jì)數(shù)器線圈設(shè)置計(jì)數(shù)值線圈SC用來設(shè)置計(jì)數(shù)值,該指令僅在RLO的上升沿(由0變?yōu)?)時(shí)執(zhí)行,此時(shí)預(yù)置值被送入指定的計(jì)數(shù)器。圖4.46中I0.2的觸點(diǎn)由斷開變?yōu)榻油〞r(shí),預(yù)置值6給送入計(jì)數(shù)器C10。圖中標(biāo)有CU的線圈為加計(jì)數(shù)線圈。在I0.0的上升沿,如果計(jì)數(shù)值小于6,計(jì)數(shù)值加1。復(fù)位輸入I0.3為1時(shí),計(jì)數(shù)器被復(fù)位,計(jì)數(shù)值被清0。圖4.46加計(jì)數(shù)線圈如果在用“設(shè)置”輸入S設(shè)置計(jì)數(shù)器時(shí)CU輸入為13、減計(jì)數(shù)器在圖4.47中的設(shè)置輸入S的上升沿,用PV指定的值預(yù)置減計(jì)數(shù)器。在減計(jì)數(shù)輸入信號(hào)CD上升沿,如果計(jì)數(shù)值大于0,計(jì)數(shù)值減1。復(fù)位輸入R為1時(shí),計(jì)數(shù)器被復(fù)位,計(jì)數(shù)值被清0。計(jì)數(shù)值大于0時(shí)計(jì)數(shù)器的輸出Q為1;計(jì)數(shù)值為0時(shí),Q為0。如果在設(shè)置計(jì)數(shù)器時(shí)CD輸入為1,即使信號(hào)沒有變化,下一掃描周期也會(huì)計(jì)數(shù)。圖4.47減計(jì)數(shù)器梯形圖3、減計(jì)數(shù)器圖4.47減計(jì)數(shù)器梯形圖4、減計(jì)數(shù)器線圈圖4.48中標(biāo)有CD的線圈為減計(jì)數(shù)線圈,I0.5的觸點(diǎn)由斷開變?yōu)榻油〞r(shí),預(yù)置值5被送入計(jì)數(shù)器C11。在I0.4的上升沿,如果計(jì)數(shù)值大于0,計(jì)數(shù)值減1.計(jì)數(shù)值非0時(shí),C11的常開觸點(diǎn)閉合,為0時(shí)c11的常開觸點(diǎn)斷開。復(fù)位輸入I0.6為1時(shí),計(jì)數(shù)器被復(fù)位,計(jì)數(shù)值被清0。圖4.48減計(jì)數(shù)器線圈4、減計(jì)數(shù)器線圈圖4.48減計(jì)數(shù)器線圈【4.11】用計(jì)數(shù)器擴(kuò)展定時(shí)器的定時(shí)范圍。s7300的定時(shí)器的最常定時(shí)時(shí)間為9990s,如果需要更長的定時(shí)時(shí)間,可以使用圖4.49所示的電路。I0.0為0狀態(tài)時(shí),計(jì)數(shù)器C0被復(fù)位。I0.0變?yōu)?狀態(tài)時(shí),其常開觸點(diǎn)接通,使T11和T12組成的震蕩電路開始工作,計(jì)數(shù)器的預(yù)置值999被送入計(jì)數(shù)器C0。I0.0的常閉觸點(diǎn)斷開,C0被解除復(fù)位。振蕩電路的振蕩周期為T11和T12預(yù)置值之和,圖中的振蕩電路相當(dāng)于周期為4小時(shí)的時(shí)鐘脈沖發(fā)生器。每隔4小時(shí),當(dāng)T12的定時(shí)時(shí)間到,T11的常開觸點(diǎn)由接通變?yōu)閿嚅_,其脈沖的下降沿通過減計(jì)數(shù)線圈CD使C0的計(jì)數(shù)值減1。計(jì)滿999個(gè)數(shù)(即3996H)C0的當(dāng)前值減為0,它的常閉觸點(diǎn)閉合,使Q5.4的線圈通電??偟亩〞r(shí)時(shí)間等于震蕩電路的振蕩周期乘以C0的計(jì)數(shù)預(yù)置值。圖4.49定時(shí)器范圍的擴(kuò)展【4.11】用計(jì)數(shù)器擴(kuò)展定時(shí)器的定時(shí)范圍。圖4.49定時(shí)器范5、加減計(jì)數(shù)器在設(shè)置輸入S的上升沿,見圖4.50,用PV指定的預(yù)置值設(shè)置加減計(jì)數(shù)器。復(fù)位輸入R為1時(shí),計(jì)數(shù)器被復(fù)位,計(jì)數(shù)值被清0。在加計(jì)數(shù)輸入信號(hào)CU的上升沿,如果計(jì)數(shù)器值小于999,計(jì)數(shù)器加1。在減計(jì)數(shù)器輸入信號(hào)CD的上升沿,如果計(jì)數(shù)器值大于0,計(jì)數(shù)值減1。如果兩個(gè)計(jì)數(shù)輸入均為上升沿,兩條指令均被執(zhí)行,計(jì)數(shù)值保持不變。計(jì)數(shù)值大于0時(shí)輸出信號(hào)Q為1;計(jì)數(shù)值為0時(shí),Q亦為0。如果在設(shè)置計(jì)數(shù)器時(shí)CU或CD輸入為1,即使信號(hào)沒有變化,下一掃描周期也會(huì)計(jì)數(shù)。
圖4.50加減計(jì)數(shù)器梯形圖方塊5、加減計(jì)數(shù)器圖4.50加減計(jì)數(shù)器梯形圖方塊4.5.3CPU的時(shí)鐘存儲(chǔ)器在S7系列PLC的CPU的位存儲(chǔ)器M中,可以任意指定一個(gè)字節(jié),如MB100作為時(shí)鐘脈沖存儲(chǔ)器,當(dāng)PLC運(yùn)行時(shí),MB100的各個(gè)位能周期性地改變二進(jìn)制值,即產(chǎn)生不同頻率或周期的時(shí)鐘脈沖。時(shí)鐘存儲(chǔ)器字節(jié)產(chǎn)生的時(shí)鐘脈沖與存儲(chǔ)器位的關(guān)系見表4.11。表4.11時(shí)鐘脈沖與存儲(chǔ)器位的關(guān)系4.5.3CPU的時(shí)鐘存儲(chǔ)器圖4.51硬件配置畫面圖4.52選擇CPU模板圖4.51硬件配置畫面圖4.52選擇CPU模板圖4.53設(shè)置時(shí)鐘存儲(chǔ)器【例4.12】時(shí)鐘存儲(chǔ)器與計(jì)數(shù)器的應(yīng)用。當(dāng)定時(shí)器不夠用時(shí),可以將計(jì)數(shù)器擴(kuò)展為定時(shí)器。圖4.54中給出了用減計(jì)數(shù)器擴(kuò)展定時(shí)器的控制程序,程序中使用了CPU的時(shí)鐘存儲(chǔ)器,設(shè)置MB10為時(shí)鐘存儲(chǔ)器,由表4-11可知M10.0的變化周期為0.1s。圖4.53設(shè)置時(shí)鐘存儲(chǔ)器圖4.54減計(jì)數(shù)器擴(kuò)展定時(shí)器的控制程序4.6數(shù)據(jù)處理指令數(shù)據(jù)處理指令包括數(shù)據(jù)傳送指令與數(shù)據(jù)轉(zhuǎn)換指令,其中輸出傳送包括數(shù)據(jù)裝入與傳送指令。4.6.1裝入和傳送指令 裝入(L,Load)指令和傳送(T,Transfer)指令用于在存儲(chǔ)區(qū)之間或存儲(chǔ)區(qū)與過程輸入、過程輸出之間交換數(shù)據(jù)。CPU執(zhí)行這些指令不受邏輯操作結(jié)果RLO的影響。 數(shù)據(jù)裝入L和數(shù)據(jù)傳送T指令通過累加器進(jìn)行數(shù)據(jù)交換。累加器是CPU中的一種專用寄存器,可以作為“緩沖器”。數(shù)據(jù)的傳送和交換一般是通過累加器進(jìn)行的,而不是在存儲(chǔ)區(qū)直接進(jìn)行。 在S7-300中,有兩個(gè)32位的累加器:累加器1和累加器2。當(dāng)執(zhí)行裝入指令L時(shí),是將源操作數(shù)裝入累加器1中,而累加器原有的數(shù)據(jù)移入累加器2中,累加器2中原有的內(nèi)容被覆蓋。當(dāng)執(zhí)行傳送指令T時(shí),是將累加器1中的內(nèi)容寫入目的存儲(chǔ)區(qū)中,累加器的內(nèi)容保持不變。L和T指令可以對(duì)字節(jié)(8位)、字(16位)、雙字(32位)數(shù)據(jù)進(jìn)行操作,當(dāng)數(shù)據(jù)長度小于32位時(shí),數(shù)據(jù)在累加器1中右對(duì)齊(低位對(duì)齊),其余各位填0。裝入指令與傳送指令見表4.12。圖4.54減計(jì)數(shù)器擴(kuò)展定時(shí)器的控制程序表4.12裝入指令與傳送指令表表4.12裝入指令與傳送指令表4.6.2梯形圖中方塊傳送指令在梯形圖中,用MOVE功能框圖表示裝入和傳送指令,指令框的輸入端在左邊,輸出端在右邊。能傳送數(shù)據(jù)長度為8位、16位或32位的所有基本數(shù)據(jù)類型。如果允許輸入端EN為1,則允許執(zhí)行傳送操作,使輸出OUT等于輸入IN,并使允許輸出端ENO為1。如果允許輸入端EN為0,則不進(jìn)行傳送操作,并使允許輸出端ENO為0。梯形圖傳送指令及操作數(shù)見表4.13。表4.13傳送指令梯形圖及操作數(shù)4.6.2梯形圖中方塊傳送指令【例4.13】當(dāng)輸入I0.2為1時(shí),執(zhí)行傳送操作,將MW20的內(nèi)容傳送到DBW20,且使輸出Q4.0為1。梯形圖控制程序如圖4.55。圖4.55傳送指令梯形圖控制程序4.6.2轉(zhuǎn)換指令轉(zhuǎn)換指令是將累加器1中的數(shù)據(jù)進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換,轉(zhuǎn)換的結(jié)果仍存放在累加器1中。STEP7能夠?qū)崿F(xiàn)的轉(zhuǎn)換操作有:BCD碼和整數(shù)到其他類型轉(zhuǎn)換指令;整數(shù)和實(shí)數(shù)的變換指令;實(shí)數(shù)取整指令;累加器1調(diào)整指令。【例4.13】當(dāng)輸入I0.2為1時(shí),執(zhí)行傳送操作,將MW201、BCD和整數(shù)的轉(zhuǎn)換,見表4.14。表4.14BCD和整數(shù)的轉(zhuǎn)換1、BCD和整數(shù)的轉(zhuǎn)換,見表4.14。【例4.14】如果輸入I0.1為1,則將MD0的內(nèi)容以7位BCD碼的格式裝入累加器1,并將其轉(zhuǎn)換為長整數(shù),存放到MD10,如果轉(zhuǎn)換不執(zhí)行,則輸出Q4.0為1。梯形圖控制程序如圖4.56所示。4.7運(yùn)算指令STEP7的運(yùn)算指令包括算數(shù)運(yùn)算指令、字邏輯運(yùn)算指令和比較指令。4.7.1算數(shù)運(yùn)算指令算術(shù)運(yùn)算指令包括整數(shù)(INT)運(yùn)算指令、雙整數(shù)(DINT)運(yùn)算指令和實(shí)數(shù)(REAL)運(yùn)算指令。無論是哪種數(shù)據(jù)類型均有以下四種運(yùn)算指令:1、加法運(yùn)算指令A(yù)DD2、減法運(yùn)算指令SUB3、乘法運(yùn)算指令MUL4、除法運(yùn)算指令DIV【例4.14】如果輸入I0.1為1,則將MD0的內(nèi)容以7位B整數(shù)、雙整數(shù)以及實(shí)數(shù)在指令中的簡寫分別為I、DI、R,因此由指令的名稱可以判斷指令的功能,例如ADD_R,表示實(shí)數(shù)指令加法指令。DIV_DI,表示雙整數(shù)除法指令。MUL_I,表示整數(shù)乘法指令。表4.15給出了算數(shù)運(yùn)算的方框圖指令,圖中的EN為使能輸入端,ENO為使能輸出端。IN1和IN2為操作數(shù)輸入端,OUT為運(yùn)算結(jié)果輸出端。在加減法指令中,IN1+IN2=OUT,IN1-IN2=OUT在乘除法指令中,IN1*IN2=OUT,IN1/IN2=OUT表4.15算數(shù)運(yùn)算的方框圖指令整數(shù)、雙整數(shù)以及實(shí)數(shù)在指令中的簡寫分別為I、D在圖4.57中,如果I0.6為1,MD2中的雙整數(shù)除以MD6中的雙整數(shù),運(yùn)算結(jié)果傳送到MD10。如果運(yùn)算未能成功地完成,則狀態(tài)字的OV和OS位為1,且使ENO為0,Q4.1為1狀態(tài);若運(yùn)算成功地完成,則狀態(tài)字的OV被清0,OS位保持原狀態(tài)不變,且使RLO為1。圖4.57整數(shù)除法指令在圖4.57中,如果I0.6為1,MD2中的雙【例4.15】壓力變送器的量程為0-10Mpa,輸出信號(hào)為4-20mA,S7-300的模擬量輸入模塊的量程為4-20mA,轉(zhuǎn)換后的數(shù)字量為0-27468,設(shè)轉(zhuǎn)換后的數(shù)字為N,試求以kPa為單位的壓力值。解:0-10MPa(0-10000kPa)對(duì)應(yīng)轉(zhuǎn)換后的數(shù)字0-27468,轉(zhuǎn)換公式為P=(10000×N)/27468kPa(4-1)值得注意的是在運(yùn)算時(shí)一定要先乘后除,否則會(huì)損失原數(shù)據(jù)的精度。假設(shè)A/D轉(zhuǎn)換后的數(shù)據(jù)N在MD6中,以kPa為單位的運(yùn)算結(jié)果在MW10中。圖4.58是實(shí)現(xiàn)式4-1中的運(yùn)算的梯形圖程序。圖4.58算術(shù)運(yùn)算指令【例4.15】壓力變送器的量程為0-10Mpa,如果某一方框指令的運(yùn)算結(jié)果超出了整數(shù)運(yùn)算指令的允許范圍,狀態(tài)位OV和OS將為1,使能輸入ENO為0,不會(huì)執(zhí)行在該方框指令右邊的指令。值得注意的是梯形圖中的MUL_I指令的運(yùn)算結(jié)果為16位整數(shù),A/D轉(zhuǎn)換后的最大數(shù)字為27468,乘以10000以后可能超過16位整數(shù)的允許范圍,所以需要使用雙字乘法指令MUL_DI。雙字除法指令DIV_DI的運(yùn)算結(jié)果為雙字,但是由式4-1可知運(yùn)算實(shí)際結(jié)果不會(huì)超過16位整數(shù)的最大值(32767),所以可以用MOVE指令將MD20的低字MW22中16位整數(shù)運(yùn)算結(jié)果傳送到MW10中。4.7.2字邏輯運(yùn)算指令字邏輯運(yùn)算指令按照布爾邏輯將成對(duì)的字(16位)和雙字(32位)逐位進(jìn)行比較。字邏輯運(yùn)算指令見表4.16。表4.16字邏輯運(yùn)算指令如果某一方框指令的運(yùn)算結(jié)果超出了整數(shù)運(yùn)算指令的【例4.17】如果I0.0為1,則只允許將MW0的第0-3位的數(shù)據(jù)狀態(tài)傳送到MW4的對(duì)應(yīng)位,而將MW0的其余屏蔽。如果傳送成功,則Q4.0為1。根據(jù)要求,可采用邏輯字與(AW)指令,控制程序如圖4.59所示。圖4.59邏輯字與控制程序【例4.17】如果I0.0為1,則只允許將MW0的第0-3位4.7.3比較指令比較指令用于對(duì)累加器2和累加器1中的數(shù)據(jù)進(jìn)行比較。數(shù)據(jù)類型可以是整數(shù)、長整數(shù)或?qū)崝?shù),但是要確保進(jìn)行比較的兩個(gè)數(shù)據(jù)的類型相同。如果比較條件滿足,則RLO為1,否則為0。梯形圖中的方框比較指令用來比較兩個(gè)同類型的數(shù),與語句表中的比較指令類似,可以比較整數(shù)(I)、雙整數(shù)(D)和浮點(diǎn)數(shù)(R),比較指令見表4.17。表4.17比較指令表4.7.3比較指令在使能輸入信號(hào)為1時(shí),比較IN1和IN2輸入的兩個(gè)操作數(shù)。方框比較指令在梯形圖中相當(dāng)于一個(gè)常開觸點(diǎn),可以與其他觸點(diǎn)串聯(lián)和并聯(lián)。如果被比較的兩個(gè)數(shù)滿足指令的大于、等于、小于條件,比較結(jié)果為真,等效觸點(diǎn)閉合,指令框有能流流過?!纠?.18】比較指令應(yīng)用實(shí)例圖4.60示出包括兩臺(tái)傳送帶的系統(tǒng),在兩臺(tái)傳送帶之間有一個(gè)倉庫區(qū)。傳送帶1將包裹運(yùn)送至臨時(shí)倉庫區(qū)。傳送帶1靠近倉庫區(qū)一端安裝的光電傳感器確定已有多少包裹運(yùn)送至倉庫區(qū)。傳送帶2將臨時(shí)庫區(qū)中的包裹運(yùn)送至裝貨場,在這里貨物由卡車運(yùn)送至顧客。傳送帶2靠近庫區(qū)一端安裝的光電傳感器確定已有多少包裹從庫區(qū)運(yùn)送至裝貨場。含5個(gè)指示燈的顯示盤表示臨時(shí)倉庫區(qū)的占用程度。圖4.61給出了啟動(dòng)顯示盤上指示燈的梯形邏輯程序。圖4.60裝有計(jì)數(shù)器和比較器的倉庫區(qū)在使能輸入信號(hào)為1時(shí),比較IN1和IN2輸入的程序段1:MW200中保存計(jì)數(shù)器C1當(dāng)前值的BCD碼,Q12.1指示“倉庫區(qū)不空”程序段2:Q12.0指示“倉庫區(qū)空”程序段3:如果計(jì)數(shù)器值大于等于50,則“倉庫區(qū)裝入50%”指示燈亮。程序段1:MW200中保存計(jì)數(shù)器C1當(dāng)前值的BCD碼,Q12程序段4:如果計(jì)數(shù)器值大于等于90,則“倉庫區(qū)裝入90%”指示燈亮。程序段5:如果計(jì)數(shù)器值大于等于100,則“倉庫區(qū)裝滿”指示燈亮,用輸出Q15.4將傳送帶1連鎖。圖4.61啟動(dòng)顯示盤上指示燈的梯形邏輯程序段4:如果計(jì)數(shù)器值大于等于90,則“倉庫區(qū)裝入90%”指思考與練習(xí)題1、S7-300系列PLC如何直接尋址?什么是間接尋址?如何使用?2、采用間接尋址方式設(shè)計(jì)一段程序,將10個(gè)字節(jié)的數(shù)據(jù)從100MB開始的存儲(chǔ)單元轉(zhuǎn)移到從200MB開始的存儲(chǔ)單元。3、試設(shè)計(jì)一個(gè)3H40M的長延時(shí)電路程序。4、編寫一段程序計(jì)算sin120+cos10的值。5、試設(shè)計(jì)一個(gè)照明燈的控制程序。當(dāng)按下接在I0.0上的按鈕后,接在Q4.0上的照明燈可發(fā)光30s,如果在這段時(shí)間內(nèi)又有人按下按鈕,則時(shí)間間隔從頭開始。這樣可確保在最后一次按完按鈕后,燈光可維持30s照明。6、試設(shè)計(jì)一個(gè)搶答器電路程序。出題人提出問題,3個(gè)答題人按動(dòng)按鈕,僅僅是最早按的人面前的信號(hào)燈亮。然后出題人按動(dòng)復(fù)位按鈕后,引出下一個(gè)問題。7、設(shè)計(jì)一個(gè)對(duì)鍋爐鼓風(fēng)機(jī)和引風(fēng)機(jī)控制的梯形圖程序??刂埔螅?1)開機(jī)時(shí)首先啟動(dòng)引風(fēng)機(jī),10s后自動(dòng)啟動(dòng)鼓風(fēng)機(jī);(2)停止時(shí)立即關(guān)斷鼓風(fēng)機(jī),20s后自動(dòng)關(guān)斷引風(fēng)機(jī)。思考與練習(xí)題1、S7-300系列PLC如何直接尋址?什么是第四章S7-300軟件基礎(chǔ)4.1PLC編程基礎(chǔ)4.2STEP7的指令結(jié)構(gòu)4.3位邏輯指令4.5定時(shí)器與計(jì)數(shù)器指令第四章S7-300軟件基礎(chǔ)4.1PLC編程基礎(chǔ)4.1PLC編程基礎(chǔ)4.1.1STEP7編程語言
STEP7是S7-300/400系列PLC應(yīng)用設(shè)計(jì)軟件包,所支持的PLC編程語言非常豐富。該軟件的標(biāo)準(zhǔn)版支持STL(語句表)、LAD(梯形圖)及FBD(功能塊圖)3種基本編程語言,并且在STEP7中可以相互轉(zhuǎn)換。不同的編程語言可供不同知識(shí)背景的人員采用。其中LAD、STL和FBD是三種基本編程語言。4.1PLC編程基礎(chǔ)4.1.1STEP7編程語言4.1.1STEP7編程語言
LAD(LAD:LadderDiagram)簡稱梯形圖,LAD是使用最多的PLC編程語言。因與繼電器電路很相似,具有直觀易懂的特點(diǎn),很容易被熟悉繼電器控制的電氣人員所掌握,特別適合于數(shù)字量邏輯控制,也適合于熟悉繼電器電路的人員使用。LAD編程語言如圖4.1所示。圖4.1 LAD編程語言1、梯形圖(LAD)4.1.1STEP7編程語言LAD(LAD:Ladd4.1.1STEP7編程語言2、語句表(STL)STL(STL:StatementList)簡稱語句表,STL是一種類似于微機(jī)匯編語言的一種文本編程語言,由多條語句組成一個(gè)程序段。語句表適合于經(jīng)驗(yàn)豐富的程序員使用,可以實(shí)現(xiàn)某些梯形圖不能實(shí)現(xiàn)的功能。STL適用于喜歡用匯編語言編程的人員使用。STL編程語言如圖4.2所示。
圖4.2 STL編程語言4.1.1STEP7編程語言2、語句表(STL)圖4.4.1.1STEP7編程語言3、功能塊圖(FBD)FBD(FBD:FunctionBlockDiagram)簡稱功能塊圖,功能塊圖使用類似于布爾代數(shù)的圖形邏輯符號(hào)來表示控制邏輯,一些復(fù)雜的功能用指令框表示。FBD適合于有數(shù)字電路基礎(chǔ)的編程人員使用。FBD編程語言如圖4.3所示。4.1.1STEP7編程語言3、功能塊圖(FBD)4.1.1STEP7編程語言圖4.3 FBD編程語言4.1.1STEP7編程語言圖4.3 FBD編程語言4.1.2S7-300CPU的系統(tǒng)存儲(chǔ)器1、過程映像輸入表/輸出表(I/Q)過程映像輸入表(PII):循環(huán)掃描開始時(shí),存儲(chǔ)數(shù)字量輸入模塊的輸入信號(hào)的狀態(tài)。過程映像輸出表(PIQ):循環(huán)掃描結(jié)束時(shí),存儲(chǔ)用戶程序計(jì)算的輸出值,并將PIQ的內(nèi)容寫入數(shù)字量輸出模塊。2、內(nèi)部存儲(chǔ)器區(qū)(M)內(nèi)部存儲(chǔ)器區(qū)(M),主要用于存儲(chǔ)中間變量。3、定時(shí)器(T)存儲(chǔ)器區(qū)在CPU的存儲(chǔ)器中,有一個(gè)區(qū)域是專為定時(shí)器保留的。此存儲(chǔ)區(qū)域?yàn)槊總€(gè)定時(shí)器地址保留一個(gè)16位字。梯形圖邏輯指令集支持256個(gè)定時(shí)器。時(shí)間值可以用二進(jìn)制或BCD碼方式讀取。4.1.2S7-300CPU的系統(tǒng)存儲(chǔ)器1、過程映像4.1.2S7-300CPU的系統(tǒng)存儲(chǔ)器
4、計(jì)數(shù)器(C)存儲(chǔ)器區(qū)在用戶CPU的存儲(chǔ)器中,有為計(jì)數(shù)器保留的存儲(chǔ)區(qū)。此存儲(chǔ)區(qū)為每個(gè)計(jì)數(shù)器地址保留一個(gè)16位字。梯形圖指令集支持256個(gè)計(jì)數(shù)器。計(jì)數(shù)值(0~999)可以用二進(jìn)制或BCD碼方式讀取。5、數(shù)據(jù)塊/背景數(shù)據(jù)塊(DB)DB為共享數(shù)據(jù)塊,DBX2.3,DBB5,DBW10和DBD12。DI為背景數(shù)據(jù)塊,DIX,DIB,DIW和DID。6、外部I/O存儲(chǔ)區(qū)(PI/PQ)外設(shè)輸入(PI)區(qū)和外設(shè)輸出(PQ)區(qū)允許直接訪問本地的和分布式的輸入模塊和輸出模塊。4.1.2S7-300CPU的系統(tǒng)存儲(chǔ)器4、計(jì)數(shù)器(4.1.3S7-300CPU的寄存器
1、累加器(ACCUx)累加器用于處理字節(jié)、字或雙字的寄存器。S7-300有兩個(gè)32位累加器(ACCU1和ACCU2)。2、狀態(tài)字寄存器(16位)狀態(tài)字用于表示CPU執(zhí)行指令時(shí)所具有的狀態(tài)。一些指令是否執(zhí)行或以何方式執(zhí)行可能取決于狀態(tài)字中的某些位;執(zhí)行指令時(shí)也可能改變狀態(tài)字中的某些位,也能在位邏輯指令或字邏輯指令中訪問并檢測(cè)。狀態(tài)字的結(jié)構(gòu)如圖4.4所示。圖4.4狀態(tài)字的結(jié)構(gòu)4.1.3S7-300CPU的寄存器1、累加器(AC4.1.4STEP7數(shù)據(jù)類型在STEP7中,大多數(shù)指令要與具有一定大小的數(shù)據(jù)對(duì)象一起操作,不同的數(shù)據(jù)類型具有不同的格式。編程所用的數(shù)據(jù)要指定數(shù)據(jù)類型,要確定數(shù)據(jù)大小和數(shù)據(jù)的位結(jié)構(gòu)。數(shù)據(jù)類型分為3大類。1、基本數(shù)據(jù)類型基本數(shù)據(jù)類型有很多種,每種數(shù)據(jù)類型在分配內(nèi)存空間時(shí)有確定的位數(shù),如布爾型(BOOL)數(shù)據(jù)為1位,字節(jié)型(BYTE)數(shù)據(jù)為8位,字型(WORD)數(shù)據(jù)為16位,雙字型(DWORD)數(shù)據(jù)為32位?;緮?shù)據(jù)類型見表4-1。4.1.4STEP7數(shù)據(jù)類型在STEP7中,大多數(shù)指4.1.4STEP7數(shù)據(jù)類型表4-1STEP7中常用的基本數(shù)據(jù)類型4.1.4STEP7數(shù)據(jù)類型表4-1STEP7中常用4.1.4STEP7數(shù)據(jù)類型2、復(fù)式數(shù)據(jù)類型超過32位或由其他數(shù)據(jù)類型組成的數(shù)據(jù)為復(fù)式數(shù)據(jù)類型,STEP7允許4種復(fù)式數(shù)據(jù)類型,見表4-2。表4-2STEP7中的復(fù)式數(shù)據(jù)類型數(shù)據(jù)類型說明日期_時(shí)間DTDATE_AND_TIME定義64位區(qū)(8字節(jié))。用BCD碼存儲(chǔ)時(shí)間信息:字節(jié)0,年;字節(jié)1,月;字節(jié)2,日;字節(jié)3,小時(shí);字節(jié)4,分;字節(jié)5,秒;字節(jié)6和字節(jié)7的高位,毫秒;字節(jié)7的低位,星期幾字符串STRING可定義254個(gè)字符。字符串的默認(rèn)大小為256字節(jié)(存放254個(gè)字符,外加雙字節(jié)字頭),可以通過定義字符串的實(shí)際數(shù)目來減少預(yù)留值數(shù)組ARRAY定義一種數(shù)據(jù)格式的多維數(shù)組構(gòu)造STRUCT定義多種數(shù)據(jù)類型組合的數(shù)組4.1.4STEP7數(shù)據(jù)類型2、復(fù)式數(shù)據(jù)類型表4-2S4.1.4STEP7數(shù)據(jù)類型3、參數(shù)類型參數(shù)類型用于向FB和FC傳送參數(shù)。STEP7提供的參數(shù)類型見表4-3。參數(shù)大小說明定時(shí)器(Timer)2字節(jié)指定執(zhí)行邏輯塊時(shí)要使用的定時(shí)器,如T1計(jì)數(shù)器(Counter)2字節(jié)指定執(zhí)行邏輯塊時(shí)要使用的計(jì)數(shù)器,如C1塊BlockFBBlockFCBlockDBBlockSDB2字節(jié)如:FB1FC1DB1SDB1指針(Pointer)6字節(jié)定義內(nèi)存單元,如P#M30.0ANY10字節(jié)如果實(shí)參的數(shù)據(jù)類型未知,或可以使用任何數(shù)據(jù)類型時(shí),如P#M30.0,byte10表4-3STEP7的參數(shù)類型4.1.4STEP7數(shù)據(jù)類型3、參數(shù)類型參數(shù)大小說明定時(shí)4.1.5PLC編程的基本原則
1)外部輸入、輸出繼電器、內(nèi)部繼電器、定時(shí)器、計(jì)數(shù)器等器件的接點(diǎn)可多次重復(fù)使用;2)梯形圖每一行都是從左母線開始,線圈接在最右邊,接點(diǎn)不能放在線圈的右邊;3)線圈不能直接與左母線相連;4)同一編號(hào)的線圈在一個(gè)程序中使用兩次容易引起誤操作,應(yīng)盡量避免線圈重復(fù)使用;5)梯形圖程序必須符合順序執(zhí)行的原則,從左到右,從上到下地執(zhí)行,如不符合順序執(zhí)行的電路不能直接編程;6)在梯形圖中串聯(lián)接點(diǎn)、并聯(lián)接點(diǎn)的使用次數(shù)沒有限制,可無限次地使用。PLC編程應(yīng)該遵循以下基本原則:4.1.5PLC編程的基本原則1)外部輸入、輸出繼電器4.2STEP7的指令結(jié)構(gòu)
指令是程序的最小獨(dú)立單位,用戶程序是由若干條順序排列的指令構(gòu)成。STEP7編程語言其指令功能非常豐富。利用程序編輯器,可以進(jìn)行離線編程,即把程序存儲(chǔ)在編程器中,也可以進(jìn)行在線編程,將程序存儲(chǔ)在CPU中。4.2.1指令操作數(shù)
指令操作數(shù)(又稱編程元件)一般在用戶存儲(chǔ)區(qū)中,操作數(shù)由操作標(biāo)識(shí)符和參數(shù)組成。操作標(biāo)識(shí)符由主標(biāo)識(shí)符和輔助標(biāo)識(shí)符組成,主標(biāo)識(shí)符用來指定操作數(shù)所使用的存儲(chǔ)區(qū)類型,輔助標(biāo)識(shí)符則用來指定操作數(shù)的單位(如:位、字節(jié)、字、雙字等)。主標(biāo)識(shí)符有:I(輸入過程映像寄存器)、Q(輸出過程映像寄存器)、M(位存儲(chǔ)器)、PI(外部輸入寄存器)、PQ(外部輸出寄存器)、T(定時(shí)器)、C(計(jì)數(shù)器)、DB(數(shù)據(jù)塊寄存器)和L(本地?cái)?shù)據(jù)寄存器);輔助標(biāo)識(shí)符有:X(位)、B(字節(jié))、W(字)、D(雙字)。4.2.2尋址方式
所謂尋址方式就是指令執(zhí)行時(shí)獲取操作數(shù)的方式,可以直接或間接方式給出操作數(shù)。S7-300有4種尋址方式:立即尋址、存儲(chǔ)器直接尋址、存儲(chǔ)器間接尋址和寄存器間接尋址。4.2STEP7的指令結(jié)構(gòu)1、立即尋址
立即尋址是對(duì)常數(shù)或常量的尋址方式,其特點(diǎn)是操作數(shù)直接表示在指令中,或以唯一形式隱含在指令中。下面各條指令操作數(shù)均采用了立即尋址方式。SET//把RLO置1OWW#16#A320//將常量W#16#A320與累加器1“或”運(yùn)算L27//把整數(shù)27裝入累加器1LC#0100//把BCD碼常數(shù)0100裝入累加器12、存儲(chǔ)器直接尋址
存儲(chǔ)器直接尋址,簡稱直接尋址。該尋址方式在指令中直接給出操作數(shù)的存儲(chǔ)單元地址。存儲(chǔ)單元地址可用符號(hào)地址(如SB1、KM等)或絕對(duì)地址(如I0.0、Q4.1等)。下面各條指令操作數(shù)均采用了直接尋址方式。AI0.0//對(duì)輸入位I0.0進(jìn)行“與”邏輯操作SL20.0//把本地?cái)?shù)據(jù)位L20.0置1=M115.4//使存儲(chǔ)區(qū)位M115.4的內(nèi)容等于RLO的內(nèi)容LIB10//把輸入字節(jié)IB10的內(nèi)容裝入累加器1TDBD12//把累加器1中的內(nèi)容傳送給數(shù)據(jù)雙字DBD12中1、立即尋址3、存儲(chǔ)器間接尋址存儲(chǔ)器間接尋址,簡稱間接尋址。該尋址方式在指令中以存儲(chǔ)器的形式給出操作數(shù)所在存儲(chǔ)器單元的地址,也就是說該存儲(chǔ)器的內(nèi)容是操作數(shù)所在存儲(chǔ)器單元的地址。該存儲(chǔ)器一般稱為地址指針,在指令中需寫在方括號(hào)“[]”內(nèi)。地址指針可以是字或雙字,對(duì)于地址范圍小于65535的存儲(chǔ)器可以用字指針;對(duì)于其他存儲(chǔ)器則要使用雙字指針。存儲(chǔ)器間接尋址的雙字指針的格式如圖4.5所示。圖4.5寄存器間接尋址的指針格式3、存儲(chǔ)器間接尋址圖4.5寄存器間接尋址的指針格式4.3位邏輯指令位邏輯指令包含位邏輯運(yùn)算指令、定時(shí)器指令、計(jì)數(shù)器指令和位測(cè)試指令等??梢允褂梦贿壿嬛噶顠呙璨紶柌僮鲾?shù)的狀態(tài),通過“與(AND)”、“或(OR)”、“異或(XOR)”及其組合操作實(shí)現(xiàn)邏輯操作。所產(chǎn)生的結(jié)果(“1”或“0”)稱為邏輯運(yùn)算結(jié)果,存儲(chǔ)在狀態(tài)字的“RLO”中。邏輯操作結(jié)果(RLO)用于賦值、置位/復(fù)位布爾操作數(shù),也用于控制定時(shí)器和計(jì)數(shù)器的運(yùn)行。
4.3.1觸點(diǎn)與線圈
在LAD(梯形圖)程序中,通常使用類似繼電器控制電路中的觸點(diǎn)符號(hào)及線圈符號(hào)來表示PLC的位元件,被掃描的操作數(shù)(用絕對(duì)地址或符號(hào)地址表示)則標(biāo)注在觸點(diǎn)符號(hào)的上方,如圖4.6所示。圖4.6觸點(diǎn)符號(hào)的表示方式4.3位邏輯指令位邏輯指令包含位邏輯運(yùn)算指令、定時(shí)器指令1、常開觸點(diǎn)
對(duì)于常開觸點(diǎn)(動(dòng)合觸點(diǎn)),則對(duì)“1”掃描相應(yīng)操作數(shù)。在PLC中規(guī)定:若操作數(shù)是“1”則常開觸點(diǎn)“動(dòng)作”,即認(rèn)為是“閉合”的;若操作數(shù)是“0”,則常開觸點(diǎn)“復(fù)位”,即認(rèn)為是“打開”的。常開觸點(diǎn)所使用的操作數(shù)是:I、Q、M、L、D、T、C。2、常閉觸點(diǎn)
常閉觸點(diǎn)(動(dòng)斷觸點(diǎn))則對(duì)“0”掃描相應(yīng)操作數(shù)。在PLC中規(guī)定:若操作數(shù)是“1”則常閉觸點(diǎn)“動(dòng)作”,即觸點(diǎn)“斷開”;若操作數(shù)是“0”,則常閉觸點(diǎn)“復(fù)位”,即觸點(diǎn)“閉合”。常閉觸點(diǎn)所使用的操作數(shù)是:I、Q、M、L、D、T、C。3、輸出線圈(賦值指令)
輸出線圈與繼電器控制電路中的線圈一樣,如果有電流(信號(hào)流)流過線圈(RLO=“1”),則被驅(qū)動(dòng)的操作數(shù)置“1”;如果沒有電流流過線圈(RLO=“0”),則被驅(qū)動(dòng)的操作數(shù)復(fù)位(置“0”)。輸出線圈只能出現(xiàn)在梯形圖邏輯串的最右邊。輸出線圈等同于STL程序中的賦值指令(用等于號(hào)“=”表示)。輸出線圈所使用的操作數(shù)是:Q、M、L、D。1、常開觸點(diǎn)4、中間輸出在梯形圖設(shè)計(jì)時(shí),如果一個(gè)邏輯串很長不便于編輯時(shí),可以將邏輯串分成幾個(gè)段,前一段的邏輯運(yùn)算結(jié)果(RLO)可作為中間輸出,存儲(chǔ)在位存儲(chǔ)器(I、Q、M、L或D)中,該存儲(chǔ)位可以當(dāng)作一個(gè)觸點(diǎn)出現(xiàn)在其他邏輯串中。中間輸出只能放在梯形圖邏輯串的中間,而不能出現(xiàn)在最左端或最右端,
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年加盟加盟推廣合同
- 2025年品牌推廣策劃協(xié)議
- 母嬰行業(yè)2025年度供應(yīng)鏈金融服務(wù)合同范本2篇
- 2025年度個(gè)人房貸逾期還款處理協(xié)議4篇
- 2025年度制造業(yè)代理記賬與智能制造項(xiàng)目合作合同4篇
- 二零二五年度戶外園林景觀施工合作協(xié)議4篇
- 2025年度汽車維修配件批發(fā)銷售合同
- 2025年度二零二五藥房員工聘用及顧客服務(wù)協(xié)議
- 2025年度服裝銷售提成獎(jiǎng)勵(lì)協(xié)議
- 2025年度音響設(shè)備保險(xiǎn)理賠合同
- 道路瀝青工程施工方案
- 《田口方法的導(dǎo)入》課件
- 內(nèi)陸?zhàn)B殖與水產(chǎn)品市場營銷策略考核試卷
- 票據(jù)業(yè)務(wù)居間合同模板
- 承包鋼板水泥庫合同范本(2篇)
- DLT 572-2021 電力變壓器運(yùn)行規(guī)程
- 公司沒繳社保勞動(dòng)仲裁申請(qǐng)書
- 損傷力學(xué)與斷裂分析
- 2024年縣鄉(xiāng)教師選調(diào)進(jìn)城考試《教育學(xué)》題庫及完整答案(考點(diǎn)梳理)
- 車借給別人免責(zé)協(xié)議書
- 應(yīng)急預(yù)案評(píng)分標(biāo)準(zhǔn)表
評(píng)論
0/150
提交評(píng)論