




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
第5章S7-200PLC的指令系統(tǒng)
學習目標:
熟練掌握梯形圖和語句表的編程方法,掌握基本指令和功能指令中的常用指令,了解和會用其他指令。通過對本章的學習,做到可以根據(jù)需要編制出結(jié)構(gòu)較復雜的控制程序。第5章S7-200PLC的指令系統(tǒng)
教學內(nèi)容:
5.1S7-200PLC編程基礎
5.2S7-200PLC的基本指令及編程方法
5.3S7-200PLC的功能指令及編程方法第5章S7-200PLC的指令系統(tǒng)S7-200系列PLC主機中有兩類指令集:IEC1131—3指令集;SIMATIC指令集。
IEC1131—3指令集是國際電工委員會(IEC)制定的PLC國際標準1131—3ProgrammingLanguage(編程語言)中推薦的標準語言,只能用梯形圖(LAD)和功能塊圖(FBD)編程語言編程,通常指令執(zhí)行時間較長。
SIMATIC指令集是西門子公司為S7-200PLC設計的編程語言,該指令通常執(zhí)行時間短,而且可以用梯形圖(LAD)、功能塊圖(FBD)和語句表(STL)三種編程語言。5.1S7-200PLC編程基礎
5.1.1編程語言SIMATIC指令集是西門子公司專為S7-200PLC設計的編程語言。該指令集中,大多數(shù)指令也符合IEC1131—3標準。SIMATIC指令集不支持系統(tǒng)完全數(shù)據(jù)類型檢查。使用SIMATIC指令集,可以用梯形圖(LAD)、功能塊圖(FBD)和語句表(STL)編程語言編程。返回5.1.1編程語言1.梯形圖(LAD)編程語言圖5-1
梯形圖(LAD)
梯形圖(LAD)是與電氣控制電路相呼應的圖形語言。它沿用了繼電器、觸頭、串并聯(lián)等術(shù)語和類似的圖形符號,并簡化了符號,還增加了一些功能性的指令。梯形圖按自上而下,從左到右的順序排列,最左邊的豎線稱為起始母線也叫左母線,然后按一定的控制要求和規(guī)則連接各個接點,最后以繼電器線圈(或再接右母線)結(jié)束,稱為一邏輯行或叫一“梯級”。通常一個梯形圖中有若干邏輯行(梯級),形似梯子,如圖5-1所示。
右母線省略
2.功能塊圖(FBD)編程語言5.1.1編程語言圖5-2
功能塊圖(FBD)對應圖5-1中的I0.1長閉觸點
功能塊圖(FBD)類似于普通邏輯功能圖,它沿用了半導體邏輯電路的邏輯框圖的表達方式。一般用一種功能方框表示一種特定的功能,框圖內(nèi)的符號表達了該功能塊圖的功能。功能塊圖通常有若干個輸入端和若干個輸出端。輸入端是功能塊圖的條件,輸出端是功能塊圖的運算結(jié)果。5.1.1編程語言3.語句表(STL)編程語言
語句表(STL)是用助記符來表達PLC的各種控制功能的。它類似于計算機的匯編語言,但比匯編語言更直觀易懂,編程簡單,因此也是應用很廣泛的一種編程語言。這種編程語言可使用簡易編程器編程,但比較抽象,一般與梯形圖語言配合使用,互為補充。圖5-3
語句表(STL)
通常梯形圖(LAD)程序、功能塊圖(FBD)程序、語句表(STL)程序可有條件的方便地轉(zhuǎn)換(以網(wǎng)絡為單位轉(zhuǎn)換)。但是,語句表(STL)可以編寫梯形圖(LAD)或功能塊圖(FBD)無法實現(xiàn)的程序。5.1.2數(shù)據(jù)類型1.基本數(shù)據(jù)類型及數(shù)據(jù)類型檢查(1)基本數(shù)據(jù)類型
S7-200PLC的指令參數(shù)所用的基本數(shù)據(jù)類型有:1位布爾型(BOOL)
8位字節(jié)型(BYTE)
16位無符號整數(shù)型(WORD)
16位有符號整數(shù)型(INT)
32位無符號雙字整數(shù)型(DWORD)
32位有符號雙字整數(shù)型(DINT)
32位實數(shù)型(REAL)。實數(shù)型(REAL)是按照ANSI/IEEE754—1985標準(單精度)的表示格式規(guī)定。返回5.1.2數(shù)據(jù)類型(2)數(shù)據(jù)類型檢查PLC對數(shù)據(jù)類型檢查有助于避免常見的編程錯誤。數(shù)據(jù)類型檢查分為三級:完全數(shù)據(jù)類型檢查、簡單數(shù)據(jù)類型檢查和無數(shù)據(jù)類型檢查S7-200PLC的SIMATIC指令集不支持完全數(shù)據(jù)類型檢查。使用局部變量時,執(zhí)行簡單數(shù)據(jù)類型檢查;使用全局變量時,指令操作數(shù)為地址而不是可選的數(shù)據(jù)類型時,執(zhí)行無數(shù)據(jù)類型檢查。完全數(shù)據(jù)類型檢查時,用戶選定的數(shù)據(jù)類型和等價的數(shù)據(jù)類型如表5-1所示。簡單數(shù)據(jù)類型檢查時用戶選定的數(shù)據(jù)類型和等價的數(shù)據(jù)類型如表5-2所示。在無數(shù)據(jù)類型檢查時,用戶選定地址與分配的等價數(shù)據(jù)類型如表5-3所示。5.1.2數(shù)據(jù)類型用戶選定的數(shù)據(jù)類型
與之等價的數(shù)據(jù)類型
BOOLBOOLBYTEBYTEWORDWORDINTINTDWORDDWORDDINTDINTREALREAL用戶選定的數(shù)據(jù)類型與之等價的數(shù)據(jù)類型BOOLBOOLBYTEBYTEWORDWORD,INTINTWORD,INTDWORDDWORD,DINTDINTDWORD,DINTREALREAL用戶選定的數(shù)據(jù)類型與之等價的數(shù)據(jù)類型V0.0BOOLVB0
BYTEVW0WORD,INTVD0DWORD,DINT,REAL表5-1完全數(shù)據(jù)類型檢查表5-2簡單數(shù)據(jù)類型檢查
表5-3無數(shù)據(jù)類型檢查5.1.2數(shù)據(jù)類型2.數(shù)據(jù)長度與數(shù)值范圍
CPU存儲器中存放的數(shù)據(jù)類型可分為BOOL、BYTE、WORD、INT、DWORD、DINT、REAL。不同的數(shù)據(jù)類型具有不同的數(shù)據(jù)長度和數(shù)值范圍。在上述數(shù)據(jù)類型中,用字節(jié)(B)型、字(W)型、雙字(D)型分別表示8位、16位、32位數(shù)據(jù)的數(shù)據(jù)長度。不同的數(shù)據(jù)長度對應的數(shù)值范圍如表5-4所示。
SIMATIC指令集中,指令的操作數(shù)是具有一定的數(shù)據(jù)類型和長度。如整數(shù)乘法指令的操作數(shù)是字型數(shù)據(jù);數(shù)據(jù)傳送指令的操作數(shù)可以是字節(jié)或字或雙字型數(shù)據(jù)。由于S7-200SIMATIC指令集不支持完全數(shù)據(jù)類型檢查。因此編程時應注意操作數(shù)的數(shù)據(jù)類型和指令標識符相匹配。
5.1.3存儲器區(qū)域PLC的存儲器分為程序區(qū)、系統(tǒng)區(qū)、數(shù)據(jù)區(qū)。
程序區(qū)用于存放用戶程序,存儲器為EEPROM。
系統(tǒng)區(qū)用于存放有關PLC配置結(jié)構(gòu)的參數(shù),如PLC主機及擴展模塊的I/O配置和編址、配置PLC站地址,設置保護口令、停電記憶保持區(qū)、軟件濾波功能等,存儲器為EEPROM。數(shù)據(jù)區(qū)是S7-200CPU提供的存儲器的特定區(qū)域。它包括輸入映象寄存器(I)、輸出映像寄存器(Q)、變量存儲器(V)、內(nèi)部標志位存儲器(M)、順序控制繼電器存儲器(S)、特殊標志位存儲器(SM)、局部存儲器(L)、定時器存儲器(T)、計數(shù)器存儲器(C)、模擬量輸入映像寄存器(AI)、模擬量輸出映像寄存器(AQ)、累加器(AC)、高速計數(shù)器(HC)。存儲器為EEPROM和RAM。返回5.1.3存儲器區(qū)域1.數(shù)據(jù)區(qū)存儲器的地址表示格式(1)位地址格式數(shù)據(jù)區(qū)存儲器區(qū)域的某一位的地址格式為:Ax.y。必須指定存儲器區(qū)域標識符A、字節(jié)地址x及位號y。例I4.5表示圖5-4中黑色標記的位地址。I是變量存儲器的區(qū)域標識符,4是字節(jié)地址,5是位號,在字節(jié)地址4與位號5之間用點號“.”隔開。
存儲器是由許多存儲單元組成,每個存儲單元都有惟一的地址,可以依據(jù)存儲器地址來存取數(shù)據(jù)。數(shù)據(jù)區(qū)存儲器地址的表示格式有位、字節(jié)、字、雙字地址格式。5.1.3存儲器區(qū)域圖5-4位尋址格式MSB表示最高位LSB表示最低位5.1.3存儲器區(qū)域(2)字節(jié)、字、雙字地址格式
數(shù)據(jù)區(qū)存儲器區(qū)域的字節(jié)、字、雙字地址格式為:ATx。必須指定區(qū)域標識符A、數(shù)據(jù)長度T以及該字節(jié)、字或雙字的起始字節(jié)地址x。圖5-5中,用VB100、VW100、VD100分別表示字節(jié)、字、雙字的地址。VW100由VB100、VB101兩個字節(jié)組成;VD100由VB100~VB103四個組成。圖5-5字節(jié)、字、雙字尋址格式5.1.3存儲器區(qū)域(3)其他地址格式
數(shù)據(jù)區(qū)存儲器區(qū)域中,還包括定時器存儲器(T)、計數(shù)器存儲器(C)、累加器(AC)、高速計數(shù)器(HC)等,它們是模擬相關的電器元件的。它們的地址格式為:Ay。由區(qū)域標識符A和元件號y組成,例T24表示某定時器的地址,T是定時器的區(qū)域標識符,24是定時器號,同時T24又可表示此定時器的當前值。(1)輸入/輸出映像寄存器(I/Q)
①輸入映像寄存器(I)
PLC的輸入端子是從外部接收輸入信號的窗口。每一個輸入端子與輸入映像寄存器(I)的相應位相對應。輸入點的狀態(tài),在每次掃描周期開始(或結(jié)束)時進行采樣,并將采
2.數(shù)據(jù)區(qū)存儲器區(qū)域5.1.3存儲器區(qū)域
樣值存于輸入映像寄存器,作為程序處理時輸入點狀態(tài)的依據(jù)。輸入映像寄存器的狀態(tài)只能由外部輸入信號驅(qū)動,而不能在內(nèi)部由程序指令來改變。輸入映像寄存器(I)的地址格式為:
位地址:I[字節(jié)地址].[位地址],如I0.1。
字節(jié)、字、雙字地址:I[數(shù)據(jù)長度][起始字節(jié)地址],如IB4、IW6、ID10。
CPU226模塊輸入映像寄存器的有效地址范圍為:
I(0.0~15.7);IB(0~15);IW(0~14);ID(0~12)。5.1.3存儲器區(qū)域②輸出映像寄存器(Q)每一個輸出模塊的端子與輸出映像寄存器的相應位相對應。CPU將輸出判斷結(jié)果存放在輸出映像寄存器中,在掃描周期的結(jié)尾,CPU以批處理方式將輸出映像寄存器的數(shù)值復制到相應的輸出端子上。通過輸出模塊將輸出信號傳送給外部負載。輸出映像寄存器(Q)地址格式為:
位地址:Q[字節(jié)地址].[位地址],如Q1.1
字節(jié)、字、雙字地址:Q[數(shù)據(jù)長度][起始字節(jié)地址],如QB5、QW8、QD11。
CPU226模塊輸出映像寄存器的有效地址范圍為:
Q(0.0~15.7);QB(0~15);QW(0~14);QD(0~12)。5.1.3存儲器區(qū)域
在程序的執(zhí)行過程中,對于輸入或輸出的存取通常是通過映像寄存器,而不是實際的輸入、輸出端子。S7-200CPU執(zhí)行有關輸入輸出程序時的操作過程如圖5-6所示。圖5-6S7-200CPU輸入、輸出的操作返回5.1.3存儲器區(qū)域(2)內(nèi)部標志位存儲器(M)
內(nèi)部標志位存儲器(M)也稱內(nèi)部線圈,是模擬繼電器控制系統(tǒng)中的中間繼電器,它存放中間操作狀態(tài),或存儲其他相關的數(shù)據(jù)。內(nèi)部標志位存儲器(M)以位為單位使用,也可以字節(jié)、字、雙字為單位使用。內(nèi)部標志位存儲器(M)的地址格式為:
位地址:M[字節(jié)地址].[位地址],如M26.7。
字節(jié)、字、雙字地址:M[數(shù)據(jù)長度][起始字節(jié)地址],如MB11、MW23、MD26。
CPU226模塊內(nèi)部標志位存儲器的有效地址范圍為:
M(0.0~31.7);MB(0~31);MW(0~30);MD(0~28)。5.1.3存儲器區(qū)域(3)
變量存儲器(V)變量存儲器(V)存放全局變量、存放程序執(zhí)行過程中控制邏輯操作的中間結(jié)果或其他相關的數(shù)據(jù)。變量存儲器是全局有效。全局有效是指同一個存儲器可以在任一程序分區(qū)(主程序、子程序、中斷程序)被訪問。
V存儲器的地址格式為:
位地址:V[字節(jié)地址].[位地址],如V10.2。
字節(jié)、字、雙字地址:V[數(shù)據(jù)長度][起始字節(jié)地址],如VB20、VW100、VD320。
CPU226模塊變量存儲器的有效地址范圍為:
V(0.0~5119.7);VB(0~5119);VW(0~5118);
VD(0~5116)。5.1.3存儲器區(qū)域(4)局部存儲器(L)局部存儲器用來存放局部變量。局部存儲器是局部有效的。局部有效是指某一局部存儲器只能在某一程序分區(qū)(主程序或子程序或中斷程序)中使用。
S7-200PLC提供64個字節(jié)局部存儲器,局部存儲器可用作暫時存儲器或為子程序傳遞參數(shù)??梢园次?、字節(jié)、字、雙字訪問局部存儲器??梢园丫植看鎯ζ髯鳛殚g接尋址的指針,但是不能作為間接尋址的存儲器區(qū)。局部存儲器(L)的地址格式為:
位地址:L[字節(jié)地址].[位地址],如L0.0。
字節(jié)、字、雙字地址:L[數(shù)據(jù)長度][起始字節(jié)地址],如LB33、LW44、LD55。
CPU226模塊局部存儲器的有效地址范圍為:
L(0.0~63.7);LB(0~63);LW(0~62);LD(0~60)。5.1.3存儲器區(qū)域(5)順序控制繼電器存儲器(S)順序控制繼電器(S)用于順序控制(或步進控制)。順序控制繼電器指令(SCR)基于順序功能圖(SFC)的編程方式。SCR指令提供控制程序的邏輯分段,從而實現(xiàn)順序控制。順序控制繼電器存儲器(S)的地址格式為:
位地址:S[字節(jié)地址].[位地址],如S3.1。
字節(jié)、字、雙字地址:S[數(shù)據(jù)長度][起始字節(jié)地址],如SB4、SW10、SD21。
CPU226模塊順序控制繼電器存儲器的有效地址范圍為:
S(0.0~31.7);SB(0~31);SW(0~30);SD(0~28)。返回5.1.3存儲器區(qū)域(6)特殊標志位存儲器(SM)特殊標志位(SM)即特殊內(nèi)部線圈。它是用戶程序與系統(tǒng)程序之間的界面,為用戶提供一些特殊的控制功能及系統(tǒng)信息,用戶對操作的一些特殊要求也通過特殊標志位(SM)通知系統(tǒng)。特殊標志位區(qū)域分為只讀區(qū)域(SM0.0~SM29.7,頭30個字節(jié)為只讀區(qū))和可讀寫區(qū)域,在只讀區(qū)特殊標志位,用戶只能利用其觸點。特殊標志位存儲器(SM)的地址表示格式為:
位地址:SM[字節(jié)地址].[位地址],如SM0.1。字節(jié)、字、雙字地址:SM[數(shù)據(jù)長度][起始字節(jié)地址],如SMB86、SMW100、SMD12。
CPU226模塊特殊標志位存儲器的有效地址范圍為:
SM(0.0~549.7);SMB(0~549);SMW(0~548);
SMD(0~546)。5.1.3存儲器區(qū)域(7)定時器存儲器(T)
定時器是模擬繼電器控制系統(tǒng)中的時間繼電器。S7-200PLC定時器的時基有三種:1ms、10ms、100ms。通常定時器的設定值由程序賦予,需要時也可在外部設定。定時器存儲器地址表示格式為:T[定時器號],如T24。
S7-200PLC定時器存儲器的有效地址范圍為:T(0~255)。
(8)計數(shù)器存儲器(C)計數(shù)器是累計其計數(shù)輸入端脈沖電平由低到高的次數(shù),有三種類型:增計數(shù)、減計數(shù)、增減計數(shù)。通常計數(shù)器的設定值由程序賦予,需要時也可在外部設定。計數(shù)器存儲器地址表示格式為:C[計數(shù)器號],如C3。
S7-200PLC計數(shù)器存儲器的有效地址范圍為:C(0~255)。5.1.3存儲器區(qū)域(9)模擬量輸入映像寄存器(AI)模擬量輸入模塊將外部輸入的模擬信號的模擬量轉(zhuǎn)換成1個字長的數(shù)字量,存放在模擬量輸入映像寄存器(AI)中,供CPU運算處理。模擬量輸入(AI)的值為只讀值。模擬量輸入映像寄存器(AI)的地址格式為:
AIW[起始字節(jié)地址],如AIW4。模擬量輸入映像寄存器(AI)的地址必須用偶數(shù)字節(jié)地址(如AIW0,AIW2,AIW4…)來表示。
CPU226模塊模擬量輸入映像寄存器(AI)的有效地址的范圍為:AIW(0~62)。返回5.1.3存儲器區(qū)域(10)模擬量輸出映像寄存器(AQ)
CPU運算的相關結(jié)果存放在模擬量輸出映像寄存器(AQ)中,供D/A轉(zhuǎn)換器將1個字長的數(shù)字量轉(zhuǎn)換為模擬量,以驅(qū)動外部模擬量控制的設備。模擬量輸出映像寄存器(AQ)中的數(shù)字量為只寫值。模擬量輸出映像寄存器(AQ)的地址格式為:
AQW[起始字節(jié)地址],如AQW10。模擬量輸出映像寄存器(AQ)的地址必須用偶數(shù)字節(jié)地址(如AQW0,AQW2,AQW4…)來表示。
CPU226模塊模擬量輸出映像寄存器(AQ)的有效地址的范圍為:AQW(0~62)。5.1.3存儲器區(qū)域(11)累加器(AC)累加器是用來暫時存儲計算中間值的存儲器,也可向子程序傳遞參數(shù)或返回參數(shù)。S7-200CPU提供了4個32位累加器(AC0、AC1、AC2、AC3)。累加器的地址格式為:AC[累加器號],如AC0。
CPU226模塊累加器的有效地址范圍為:AC(0~3)。累加器是可讀寫單元,可以按字節(jié)、字、雙字存取累加器中的數(shù)值。由指令標識符決定存取數(shù)據(jù)的長度,例如,MOVB指令存取累加器的字節(jié),DECW指令存取累加器的字,INCD指令存取累加器的雙字。按字節(jié)、字存取時,累加器只存取存儲器中數(shù)據(jù)的低8位、低16位;以雙字存取時,則存取存儲器的32位。5.1.3存儲器區(qū)域(12)高速計數(shù)器(HC)高速計數(shù)器用來累計高速脈沖信號。當高速脈沖信號的頻率比CPU掃描速率更快時,必須要用高速計數(shù)器計數(shù)。高速計數(shù)器的當前值寄存器為32位(bit),讀取高速計數(shù)器當前值應以雙字(32位)來尋址。高速計數(shù)器的當前值為只讀值。高速計數(shù)器地址格式為:HC[高速計數(shù)器號],如HC1。
CPU226模塊高速計數(shù)器的有效地址范圍為:HC(0~5)。
5.1.4尋址方式
1.立即尋址
指令中如何提供操作數(shù)或操作數(shù)地址,稱為尋址方式。
S7-200PLC的尋址方式有:立即尋址、直接尋址、間接尋址。
立即尋址方式是,指令直接給出操作數(shù),操作數(shù)緊跟著操作碼,在取出指令的同時也就取出了操作數(shù),立即有操作數(shù)可用,所以稱為立即操作數(shù)或立即尋址。
CPU以二進制方式存儲所有常數(shù)。指令中可用十進制、十六進制、ASCII碼或浮點數(shù)形式來表示。表示格式舉例如下:十進制常數(shù):30112十六進制常數(shù):16#42FASCII常數(shù):‘INPUT’實數(shù)或浮點常數(shù):+1.1E-10二進制常數(shù):2#0101
1110
#為常數(shù)的進制格式說明符
返回5.1.4尋址方式2.直接尋址
直接尋址方式是,指令直接使用存儲器或寄存器的元件名稱和地址編號,根據(jù)這個地址就可以立即找到該數(shù)據(jù)。操作數(shù)的地址應按規(guī)定的格式表示。指令中,數(shù)據(jù)類型應與指令標識符相匹配。不同數(shù)據(jù)長度的尋址指令舉例如下:位尋址:ANDQ5.5字節(jié)尋址:ORBVB33,LB21字尋址:MOVWAC0,AQW2雙字尋址:MOVDAC1,VD200
返回5.1.4尋址方式3.間接尋址
間接尋址方式是,指令給出了存放操作數(shù)地址的存儲單元的地址(也稱地址指針)??勺鳛榈刂分羔樀拇鎯ζ饔校篤、L、AC(1~3)可間接尋址的存儲器區(qū)域有:I、Q、V、M、S、T(僅當前值)、C(僅當前值)。對獨立的位(BIT)值或模擬量值不能進行間接尋址。(1)建立指針間接尋址前,應先建立指針。指針為雙字長,是所要訪問的存儲單元(最大為雙字型32位)的物理地址。只能使用變量存儲器(V)、局部存儲器(L)或累加器(AC1、AC2、AC3)作為指針,AC0不能用作間接尋址的指針。
5.1.4尋址方式
將所要訪問的存儲器單元的地址裝入用來作為指針的存儲器單元或寄存器,裝入的是地址而不是數(shù)據(jù)本身,格式如下:MOVD&VB200,AC1“&”為地址符號,與單元組合表示所對應單元的32位物理地址,VB200只是一個直接地址編碼,并不是它的物理地址。指令中的第二個地址數(shù)據(jù)長度必須是雙字長,如:AC、LD和VD。這里地址“VB200”要用32位表示,因而必須使用雙字傳送指令(MOVD)。指令中的&VB200如果改為&VW200或&VD200效果完全相同。因為具體的尋址范圍取決于隨后的間接存取指令類型。5.1.4尋址方式(2)間接存取依據(jù)指針中的內(nèi)容值作為地址存取數(shù)據(jù)。使用指針可存取字節(jié)、字、雙字型的數(shù)據(jù),
下面兩條指令是建立指針和間接存取的應用方法:
MOVD&VB200,AC1MOVW*AC1,AC0
執(zhí)行指令MOVW*AC1,AC0,把指針中的內(nèi)容值(VB200)作為地址,由于指令MOVW的標識符是“W”,因而指令操作數(shù)的數(shù)據(jù)長度應是字型,把地址VB200、VB201處2個字節(jié)的內(nèi)容(1234)傳送到AC0。指針處的值(即1234),為字型數(shù)據(jù),如圖5-7所示,操作數(shù)(AC1)前面的“*”號表示該操作數(shù)(AC1)為指針。
返回5.1.4尋址方式圖5-7
間接尋址
把VB200的地址送入AC1建立指針
把指針處的值送到AC0
本指令是MOVW,為字型長度,則AC0的高16位空閑未用;若是MOVD雙字型指令,則將VB200~VB203的內(nèi)容(即12345678)送到AC0
這里給出的是起始字節(jié)地址,而并不表示數(shù)據(jù)長度(由隨后間接存取指令類型決定)為字型。所以,如果改為&VB200或&VD200效果完全相同。5.1.4尋址方式(3)修改指針
存取連續(xù)地址的存儲單元中數(shù)據(jù)時,通過修改指針可以非常方便地存取數(shù)據(jù)。在S7-200PLC中,指針的內(nèi)容不會自動改變,可用自增或自減等指令修改指針值。這樣就可連續(xù)地存取存儲單元中的數(shù)據(jù)。
圖5-8中,用兩次自增指令INCDAC1,將AC1指針中的值(VB200)修改為VB202后,指針即指向新地址VB202。執(zhí)行指令MOVW*AC1,AC0,這樣就可在變量存儲器(V)中連續(xù)地存取數(shù)據(jù),將VB202、VB203二個字節(jié)的數(shù)據(jù)(5678)傳送到AC0。
5.1.4尋址方式
修改指針值時,應根據(jù)存取的數(shù)據(jù)長度來進行調(diào)整。若對字節(jié)進行存取,指針值加1(或減1);若對字進行存取、或?qū)Χ〞r器、計數(shù)器的當前值進行存取,指針值加2(或減2);若對雙字進行存取,則指針值加4(或減4)。圖5-8中,存取的數(shù)據(jù)長度是字型數(shù)據(jù),因而指針值加2。
圖5-8
修改指針
把指針增加兩次,指向下一個字
把AC1(VW202)所指向的字數(shù)值送到AC0
5.1.5用戶程序結(jié)構(gòu)
用戶程序可分為三個程序分區(qū):主程序、子程序(可選)和中斷程序(可選)。主程序(OB1):是用戶程序的主體。CPU在每個掃描周期都要執(zhí)行一次主程序指令。子程序:是程序的可選部分,只有當主程序調(diào)用時,才能夠執(zhí)行。合理使用子程序,可以優(yōu)化程序結(jié)構(gòu),減少掃描時間。中斷程序:是程序的可選部分,只有當中斷事件發(fā)生時,才能夠執(zhí)行。中斷程序可在掃描周期的任意點執(zhí)行。
返回5.1.6編程的一般規(guī)則1.網(wǎng)絡
在梯形圖(LAD)中,程序被分成稱為網(wǎng)絡的一些程序段。每個梯形圖網(wǎng)絡是由一個或多個梯級組成。功能塊圖(FBD)中,使用網(wǎng)絡概念給程序分段。
語句表(STL)程序中,使用“網(wǎng)絡”這個關鍵詞對程序分段。對梯形圖、功能塊圖、語句表程序分段后,就可通過編程軟件實現(xiàn)它們之間的相互轉(zhuǎn)換。
返回5.1.6編程的一般規(guī)則2.梯形圖(LAD)/功能塊圖(FBD)
梯形圖中左、右垂直線稱為左、右母線。STEP7-Micro/WIN32梯形圖編輯器在繪圖時,通常將右母線省略。在左、右母線之間是由觸點、線圈或功能框組合的有序排列。梯形圖的輸入總是在圖形的左邊,輸出總是在圖形的右邊,因而觸點與左母線相連,線圈或功能框終止右母線,從而構(gòu)成一個梯級。在一個梯級中,左、右母線之間是一個完整的“電路”,不允許“短路”、“開路”,也不允許“能流”反向流動。功能塊圖中輸入總是在框圖的左邊,輸出總是在框圖的右邊。
5.1.6編程的一般規(guī)則3.允許輸入端、允許輸出端
在梯形圖(LAD)、功能塊圖(FBD)中,功能框的EN端是允許輸入端,功能框的允許輸入端必須存在“能流”,即與之相連的邏輯運算結(jié)果為1(即EN=1),才能執(zhí)行該功能框的功能。在語句表(STL)程序中沒有EN允許輸入端,但是允許執(zhí)行STL指令的條件是棧頂?shù)闹当仨毷恰?”。在梯形圖(LAD)、功能塊圖(FBD)中,功能框的ENO端是允許輸出端,允許功能框的布爾量輸出。用于指令的級聯(lián)。
如果執(zhí)行過程中存在錯誤,那么“能流”就在出現(xiàn)錯誤的功能框終止,即ENO=0。
5.1.6編程的一般規(guī)則4.條件/無條件輸入
條件輸入:在梯形圖(LAD)、功能塊圖(FBD)中,與“能流”有關的功能框或線圈不直接與左母線連接。
無條件輸入:在梯形圖(LAD)、功能塊圖(FBD)中,與“能流”無關的功能框或線圈直接與左母線連接。例如LBL、NEXT、SCR、SCRE等。
5.無允許輸出端的指令
在梯形圖(LAD)、功能塊圖(FBD)中,無允許輸出端(ENO)的指令方框,不能用于級聯(lián)。如CALLSBR
N(N1,…)子程序調(diào)用指令和LBL、SCR等。
5.2S7-200PLC的基本指令及編程方法
S7-200PLC的基本指令多用于開關量邏輯控制,本節(jié)著重介紹梯形圖指令和語句表指令,并討論基本指令的功能及編程方法。
編程時,應注意各操作數(shù)的數(shù)據(jù)類型及數(shù)值范圍。CPU對非法操作數(shù)將生成編譯錯誤代碼。有關S7-200CPU模塊操作數(shù)的范圍如表5-5所示。
返回5.2.1基本邏輯指令
基本邏輯指令在語句表語言中是指對位存儲單元的簡單邏輯運算,在梯形圖中是指對觸點的簡單連接和對標準線圈的輸出。
S7-200可編程序控制器使用一個邏輯堆棧來分析控制邏輯,用語句表編程時要根據(jù)這一堆棧邏輯進行組織程序,用相關指令來實現(xiàn)堆棧操作,用梯形圖和功能框圖時,程序員不必考慮主機的這一邏輯,這兩種編程工具自動地插入必要的指令來處理各種堆棧邏輯操作。
S7-200可編程序控制器的主機邏輯堆棧結(jié)構(gòu)如表5-6所示。
返回5.2.1基本邏輯指令
邏輯堆棧結(jié)構(gòu)是由九個堆棧存儲器位組成的串聯(lián)堆棧,棧頂是布爾型數(shù)據(jù)進出堆棧的必由之路。進棧時,數(shù)據(jù)由棧頂壓入,堆棧中原來所存的數(shù)據(jù)被串行下移一格,如果原來STACK(堆疊)8中存有數(shù)據(jù),則這數(shù)據(jù)被推出堆棧而自動丟失。出棧時,數(shù)據(jù)從棧頂被取出,所有數(shù)據(jù)串行上移一格,STACK8中隨機地裝入一個數(shù)值。表5-6
邏輯堆棧結(jié)構(gòu)堆棧結(jié)構(gòu)名稱說明S0STACK0第一個堆棧
S1STACK1第二個堆棧S2STACK2第三個堆棧S3STACK3第四個堆棧S4STACK4第五個堆棧S5STACK5第六個堆棧S6STACK6第七個堆棧S7STACK7第八個堆棧S8STACK8第九個堆棧棧頂5.2.1基本邏輯指令
棧頂STACK0在此邏輯堆棧的位運算中兼有累加器的作用,存放第一操作數(shù)。對于簡單邏輯指令,通常是進棧操作和一些最簡單的位運算,這些運算是棧頂與第二個堆棧的內(nèi)容進行與、或、非等邏輯運算。對于復雜指令,可以是堆棧中的其他數(shù)據(jù)位直接進行運算,結(jié)果經(jīng)棧頂彈出?;具壿嬛噶钪饕藴视|點指令、正負跳變指令、置位和復位指令等,主要是與位相關的輸入輸出及觸點的簡單連接。5.2.1基本邏輯指令1.標準觸點指令
標準觸點指令有LD、LDN、A、AN、O、ON、NOT、=指令(語句表)。這些指令對存儲器位在邏輯堆棧中進行操作。由于堆棧存儲單元數(shù)的限制,語句表中A、O、AN、ON指令最多可以連用有限次。同樣,梯形圖中,最多一次串聯(lián)或并聯(lián)的觸點數(shù)也有一定限制,功能框圖中AND和OR指令盒中輸入的個數(shù)也不能超過這個范圍
標準觸點指令中如果有操作數(shù),則為BOOL型,操作數(shù)的編址范圍可以是:I、Q、M、SM、T、C、S、VL。
返回5.2.1基本邏輯指令(1)裝入常開指令:LD
在梯形圖中,每個從左母線開始的單一邏輯行、每個程序塊(邏輯梯級)的開始、指令盒的輸入端都必須使用LD和LDN這兩條指令。以常開觸點開始時用LD指令,以常閉觸點開始時則用LDN指令。本指令對各類內(nèi)部編程元件的常開觸點都適用。指令格式:LDbit;例:LDI0.2(2)裝入常閉指令:LDN
每個以常閉觸點開始的邏輯行都使用這一指令,各類內(nèi)部編程元件的常閉觸點都適用。指令格式:LDNbit;例:
LDNI0.25.2.1基本邏輯指令(3)與常開指令:A
即串聯(lián)一個常開觸點。由于堆棧存儲器數(shù)量的限制,梯形圖中,一次最多可以有七個常開觸點串聯(lián)。指令格式:Abit;例:
AM2.4(4)與常閉指令:AN即在梯形圖中串聯(lián)一個常閉觸點。在一個邏輯行中,最多可以連用六次。指令格式:ANbit;例:
ANM2.4(5)或常開指令:O即并聯(lián)一個常開觸點。在梯形圖中,一次最多可以有七個觸點相互并聯(lián)。指令格式:Obit;例:
OM2.65.2.1基本邏輯指令(6)或常閉指令:ON即并聯(lián)一個常閉觸點。在梯形圖中,一次最多可以連用六次。指令格式:ONbit;例:
ONM2.6(7)輸出指令:=將邏輯運算結(jié)果輸出到指定存儲器位或輸出繼電器對應的映像寄存器位,以驅(qū)動本位線圈。指令格式:=bit;例:
=Q2.6
在語句表中,LD、LDN、A、AN、O、ON、這幾條指令的執(zhí)行對邏輯堆棧的影響分別如表5-7、表5-8及其后的說明。
返回5.2.1基本邏輯指令
指令LDI0.1(假設I0.1=1)執(zhí)行情況如表5-7所示。如果是LDN指令,則將操作數(shù)取反后再裝入棧頂,其他操作相同。
表5-7LDI0.1的執(zhí)行
名稱執(zhí)行前執(zhí)行后說明STACK0S01將新值I0.1=1裝入堆棧
STACK1S1S0由S0下移一個單元得到
STACK2S2S1由S1下移一個單元得到STACK3S3S2由S2下移一個單元得到STACK4S4S3由S3下移一個單元得到STACK5S5S4由S4下移一個單元得到STACK6S6S5由S5下移一個單元得到STACK7S7S6由S6下移一個單元得到STACK8S8S7由S7下移一個單元得到
原值S0串行下移一個單元,其余以此類推。
原S8自動丟失。
5.2.1基本邏輯指令
指令AI0.2(假設I0.2=0)執(zhí)行情況如表5-8所示。如果是AN指令,則將操作數(shù)取反后再和棧頂值相與,結(jié)果放回棧頂。即:1*1=1→S0
表5-8
指令AI0.2的執(zhí)行
名稱執(zhí)行前執(zhí)行后說明STACK010執(zhí)行前棧頂值為1。執(zhí)行是用棧頂值和指令操作數(shù)(I0.2的值為0)進行與運算,結(jié)果放回棧頂。即:S0*I0.2=1*0=0→S0STACK1S1S1STACK2S2S2STACK3S3S3STACK4S4S4STACK5S5S5STACK6S6S6STACK7S7S7STACK8S8S85.2.1基本邏輯指令程序?qū)嵗鹤屑毐容^不同編程工具的區(qū)別與聯(lián)系。
LDI0.0//裝入常開觸點OI0.1//或常開觸點AI0.2//與常開觸點=Q0.0//輸出觸點,
//如果本梯級中將I0.1的觸點改
//為Q0.0的常開觸點,則成為電
//機起動停止控制環(huán)節(jié)的梯形圖
LDNI0.0//裝入常閉觸點ONI0.0//或常閉觸點ANI0.2//與常閉觸點=Q0.1///輸出觸點
LDI0.0//OI0.1//AI0.2//NOT//取非,即輸出反相=Q0.3//圖5-9
標準觸點LAD和STL例返回5.2.1基本邏輯指令LDI0.0//OI0.1//AI0.2//=Q0.0//
LDNI0.0//ONI0.1//ANI0.2//=Q0.1//
LDI0.0//OI0.1//AI0.2//NOT//=Q0.3//圖5-10
標準觸點FBD例5.2.1基本邏輯指令程序執(zhí)行的時序圖如圖5-11所示。
圖5-11
時序圖
由于取非指令NOT緣故,Q0.0與Q0.3反相5.2.1基本邏輯指令2.正負跳變指令
正負跳變指令在梯形圖中以觸點形式使用。用于檢測脈沖的正跳變(上升沿)或負跳變(下降沿),利用跳變讓能流接通一個掃描周期,即可以產(chǎn)生一個掃描周期長度的微分脈沖,常用此脈沖觸發(fā)內(nèi)部繼電器線圈。(1)正跳變指令:EU
正跳變觸點檢測到脈沖的每一次正跳變后,產(chǎn)生一個微分脈沖。指令格式:EU(無操作數(shù))
返回5.2.1基本邏輯指令(2)負跳變指令:ED
負跳變觸點檢測到脈沖的每一次負跳變后,產(chǎn)生一個微分脈沖。指令格式:ED(無操作數(shù))正、負跳變觸點指令編程舉例如圖5-12所示。
圖5-12
正、負跳變觸點指令編程一個掃描周期長度
5.2.1基本邏輯指令3.置位和復位指令
置位即置1,復位即置0。置位和復位指令可以將位存儲區(qū)的某一位開始的一個或多個(最多可達255個)同類存儲器位置1或置0。這兩條指令在使用時需指明三點:操作性質(zhì)、開始位和位的數(shù)量。各操作數(shù)類型及范圍如表5-9所示。
表5-9
置位和復位指令操作數(shù)類型及范圍
操作數(shù)范圍
類型
位bitI,Q,M,SM,TC,V,S,LBOOL型
數(shù)量NVB,IB,QB,MB,SMB,LB,SB,AC,*VD,*AC,*LDBYTE型(最大255)5.2.1基本邏輯指令(1)置位指令:S
將位存儲區(qū)的指定位(位bit)開始的N個同類存儲器位置位。指令格式:Sbit,N;例:
SQ0.0,
1(2)服位指令:R
將位存儲區(qū)的指定位(位bit)開始的N個同類存儲器位復位。當用復位指令時,如果是對定時器T位或計數(shù)器C位進行復位,則定時器或計數(shù)器位被復位,同時,定時器或計數(shù)器的當前值被清零。指令格式:Rbit,N;例:
RQ0.2,
3返回5.2.1基本邏輯指令在語句表(STL)中,當棧頂值為1時,才能執(zhí)行置位指令S或復位指令R。置位后即使棧頂值變?yōu)?,仍保持置位;復位后即使棧頂值變?yōu)?,仍保持復位??梢娺@兩條指令均有“記憶”功能。置位和復位指令應用編程序舉例如圖5-13所示。
圖5-13置位復位指令5.2.2立即操作指令
立即指令允許對輸入和輸出點進行快速和直接存取。當用立即指令讀取輸入點的狀態(tài)時,相應的輸入映像寄存器中的值并未發(fā)生更新;用立即指令訪問輸出點時,訪問的同時,相應的輸出寄存器的內(nèi)容也被刷新。只有輸入繼電器I和輸出繼電器Q可以使用立即指令。
返回5.2.2立即操作指令1.立即觸點指令
在每個標準觸點指令的后面加“I”。指令執(zhí)行時,立即讀取物理輸入點的值,但是不刷新相應映像寄存器的值。這類指令包括:LDI、LDNI、AI、ANI、OI和ONI。下面以LDI指令為例。指令格式:LDIbit(bit只能是I類型)例:
LDII0.25.2.2立即操作指令2.立即輸出指令3.立即置位指令
=I,立即輸出指令。用立即指令訪問輸出點時,把棧頂值立即復制到指令所指定的物理輸出點,同時,相應的輸出映像寄存器的內(nèi)容也被刷新。指令格式:=Ibit(bit只能是Q類型)例:
=IQ0.2SI,立即置位指令。用立即置位指令訪問輸出點時,從指令所指出的位(bit)開始的N個(最多為128個)物理輸出點被立即置位,同時,相應的輸出映像寄存器的內(nèi)容也被刷新。指令格式:SIbit,N;例:
SIQ0.0,
25.2.2立即操作指令4.立即復位指令
RI,立即復位指令。用立即復位指令訪問輸出點時,從指令所指出的位(bit)開始的N個(最多為128個)物理輸出點被立即復位,同時,相應的輸出映像寄存器的內(nèi)容也被刷新。各操作數(shù)類型及范圍如表5-9所示。
指令格式:RIbit,N;例:RIQ0.0,1表5-10
立即置位和立即復位指令操作數(shù)類型及范圍
操作數(shù)范圍
類型
位bitQBOOL型
數(shù)量NVB,IB,QB,MB,SMB,LB,SB,AC,*VD,*AC,*LD,常數(shù)
BYTE型(最大128)5.2.2立即操作指令應用舉例:
LDI0.0//裝入常開觸點
=Q0.0//輸出觸點,非立即
=IQ0.1//立即輸出觸點
SIQ0.2,1//從Q0.2開始的1個觸點被立即置1
LDII0.0//立即輸入觸點指令
=Q0.3//輸出觸點,非立即圖5-14
立即指令程序5.2.2立即操作指令圖5-15立即指令時序圖
5.2.3
復雜邏輯指令
基本邏輯指令涉及可編程元件的觸點和線圈的簡單連接,不能表達在梯形圖中觸點的復雜連接結(jié)構(gòu)。復雜邏輯指令主要用來描述對觸點進行的復雜連接,同時,它們對邏輯堆棧也可以實現(xiàn)非常復雜的操作。本類指令包括:ALD、OLD、LPS、LRD、LPP和LDS,這些指令中除LDS外,其余指令都無操作數(shù)。
返回5.2.3
復雜邏輯指令1.棧裝載與指令
2.棧裝載或指令
OLD,棧裝載或指令(或塊)。用于將串聯(lián)電路塊進行并聯(lián)連接。執(zhí)行OLD指令,將堆棧中的第一級和第二級的值進行邏輯“或”操作,結(jié)果置于棧頂(堆棧第一級),并將堆棧中其余各級的內(nèi)容依次上彈一級。
ALD,棧裝載與指令(與塊)。用于將并聯(lián)電路塊進行串聯(lián)連接。執(zhí)行ALD指令,將堆棧中的第一級和第二級的值進行邏輯“與”操作,結(jié)果置于棧頂(堆棧第一級),并將堆棧中的第三級至第九級的值依次上彈一級。
5.2.3
復雜邏輯指令
棧裝載與指令和棧裝載或指令的操作過程如圖5-16所示,圖中“x”表示不確定值。
圖5-16
棧裝載與指令和棧裝載或指令的操作過程
5.2.3
復雜邏輯指令3.邏輯推入棧指令
4.邏輯讀棧指令
LPS,邏輯推入棧指令(分支或主控指令)。用于復制棧頂?shù)闹挡⑦@個值推入棧頂,原堆棧中各級棧值依次下壓一級。在梯形圖中的分支結(jié)構(gòu)中,用于生成一條新的母線,左側(cè)為主控邏輯塊時,第一個完整的從邏輯行從此處開始。
LRD,邏輯讀棧指令。把堆棧中第二級的值復制到棧頂。堆棧沒有推入?;驈棾鰲2僮?,但原棧頂值被新的復制值取代。在梯形圖中的分支結(jié)構(gòu)中,當左側(cè)為主控邏輯塊時,開始第二個和后邊更多的從邏輯塊。應注意,LPS后第一個和最后一個從邏輯塊不用本指令。
返回5.2.3
復雜邏輯指令5.邏輯棧彈出指令
6.裝入堆棧指令
LPP,邏輯棧彈出指令(分支結(jié)束或主控復位指令)。堆棧作彈出棧操作,將棧頂值彈出,原堆棧中各級棧值依次上彈一級,堆棧第二級的值成為新的棧頂值。在梯形圖中的分支結(jié)構(gòu)中,用于將LPS指令生成的一條新母線進行恢復。應注意,LPS與LPP必須配對使用。LDS,裝入堆棧指令。復制堆棧中的第級的值到棧頂。原棧中各級棧值依次下壓一級,棧底值丟失。
LPS、LRD、LPP、LDS指令操作過程如圖5-17所示。
5.2.3
復雜邏輯指令圖5-17LPS、LRD、LPP、LDS指令的操作過程5.2.3
復雜邏輯指令應用舉例:
LDI0.0//裝入常開觸點OI2.2//或常開觸點LDI0.1//被串的塊開始LDI2.0//被并路開始AI2.1//與常開觸點OLD//棧裝載或,并路結(jié)束ALD//棧裝載與,串路結(jié)束=Q5.0//輸出觸點LDI0.0//裝入常開觸點LPS//邏輯推入棧,主控AI0.5//與常開觸點=Q7.0//輸出觸點LRD//邏輯讀棧,新母線LDI2.1//裝入常開觸點OI1.3//或常開觸點ALD//棧裝載與=Q6.0//輸出觸點LPP//邏輯彈出棧,母線復原LDI3.1//裝入常開出觸點OI2.0//或常開觸點ALD//棧裝載與=Q1.3//輸出觸點圖5-18
復雜邏輯指令的應用
返回5.2.4取非觸點指令和空操作指令
1.取非觸點指令
NOT,取非觸點指令。用來改變能流的狀態(tài)。能流到達取非觸點時,能流就停止;能流未到達取非觸點時,能流就通過。在語句表中,取非觸點指令對堆棧的棧頂作取反操作,改變棧頂值。棧頂值由0變?yōu)?,或者由1變?yōu)?。取非觸點指令無操作數(shù)。
圖5-19
取非觸點指令編程
返回5.2.4取非觸點指令和空操作指令2.空操作指令
NOP,空操做指令。使能輸入有效時,執(zhí)行空操作指令。空操做指令不影響用戶程序的執(zhí)行,操作數(shù)N是標號,是一個0~225的常數(shù)。LDI0.0//使能輸入NOP30//空操作指令,標號為30
圖5-20
空操作指令編程
5.2.5定時器和計數(shù)器指令
1.定時器指令
定時器是由集成電路構(gòu)成,是PLC中的重要硬件編程元件。定時器編程時提前輸入時間預設值,在運行時當定時器的輸入條件滿足時開始計時,當前值從0開始按一定的時間單位增加,當定時器的當前值達到預設值時,定時器發(fā)生動作,發(fā)出中斷請求,以便PLC響應而作出相應的動作。此時它對應的常開觸點閉合,常閉觸點斷開。系統(tǒng)提供3種定時指令:TON(通電延時)、TONR(有記憶通電延時)和TOF(斷電延時)。S7-200定時器的分辨率(時間增量/時間單位/分辨率)有3個等級:1ms、10ms和100ms,分辨率等級和定時器號關系如表5-11所示。返回5.2.5定時器和計數(shù)器指令表5-11
定時器號和分辨率定時器類型分辯率/ms計時范圍/s定時器號TONTOF132.767T32,T9610327.67T33~T36,T97~T1001003276.7T37~T63,T101~T255TONR132.767T0,T6410327.67T1~T4,T65~T681003276.7T5~T31,T69~95定時時間的計算:T=PT?S???(T為實際定時時間,PT為預設值,S為分辨率等級)例如:TON指令用定時器T33,預設值為125,則實際定時時間
T=125?10=1250ms5.2.5定時器和計數(shù)器指令定時器指令操作數(shù)有3個:編號、預設值和使能輸入。1)編號:用定時器的名稱和它的常數(shù)編號(最大255)來表示,即Txxx,如:T4。T4不僅僅是定時器的編號,它還包含兩方面的變量信息:定時器位和定時器當前值。定時器位:定時器位與時間繼電器的輸出相似,當定時器的當前值達到預設值PT時,該位被置為“1”。定時器當前值:存儲定時器當前所累計的時間,它用16位符號整數(shù)來表示,故最大計數(shù)值為32767。2)預設值PT:數(shù)據(jù)類型為INT型。尋址范圍可以是VW、IW、QW、MW、SW、SMW、LW、AIW、T、C、AC、*VD、*AC、*LD和常數(shù)。3)使能輸入(只對LAD和FBD):BOOL型,可以是I、Q、M、SM、T、C、V、S、L和能流??梢杂脧臀恢噶顏韺?種定時器復位,復位指令的執(zhí)行結(jié)果是:使定時器位變?yōu)镺FF:定時器當前值變?yōu)?。5.2.5定時器和計數(shù)器指令(1)接通延時定時器指令:TON
用于單一間隔定時。上電周期或首次掃描,定時器位OFF,當前值為0。使能輸入接通時,定時器位為OFF,當前值從0開始計數(shù)時間,當前值達到預設值時,定時器位為ON,當前值連續(xù)計數(shù)到32767。使能輸入斷開,定時器自動復位,即定時器位OFF,當前值為0。填“計定時器號”,如:T35填“預設值”,如:100指令格式:TONTxxx,PT例:TONT120,8返回5.2.5定時器和計數(shù)器指令(2)有記憶接通延時定時器指令:TONR
用于對許多間隔的累計定時。上電周期或首次掃描,定時器位OFF,當前值保持。使能輸入接通時,定時器位為OFF,當前值從0開始累計計數(shù)時間。使能輸入斷開,定時器位和當前值保持最后狀態(tài)。使能輸入再次接通時,當前值從上次的保持值繼續(xù)計數(shù),當累計當前值達到預設值時,定時器位ON,當前值連續(xù)計數(shù)到32767。
填“計定時器號”,如:T31填“預設值”,如:100TONR定時器只能用復位指令進行復位操作,使當前值清零。指令格式:TONRTxxx,PT;例:TONRT20,635.2.5定時器和計數(shù)器指令(3)斷開延時定時器指令:TOF
用于斷開后的單一間隔定時。上電周期或首次掃描,定時器位OFF,當前值為0。使能輸入接通時,定時器位為ON,當前值為0。當使能輸入由接通到斷開時,定時器開始計數(shù),當前值達到預設值時,定時器位OFF,當前值等于預設值,停止計數(shù)。TOF復位后,如果使能輸入再有從ON到OFF的負跳變,則可實現(xiàn)再次啟動。填“計定時器號”,如:T35填“預設值”,如:100指令格式:TOFTxxx,PT;例TOFT35,65.2.5定時器和計數(shù)器指令LDI0.0//使能輸入
TONT35,+4//通電延時定時器,延時時間為40ms
LDI0.0//使能輸入
TONRT2.+10//有記憶通電延時定時器,
//延時時間為1000ms
LDI0.0//使能輸入
TOFT36,+3//斷電延時定時器,延時時間為30ms
(4)應用舉例:圖5-21
定時器特性
T35為通電延時定時器T2為有記憶通電延時定時器T36為斷電延時定時器5.2.5定時器和計數(shù)器指令
上述梯形圖程序中輸入輸出執(zhí)行時序關系如圖5-22所示。
圖5-22
定時器時序
返回5.2.5定時器和計數(shù)器指令(5)應用定時器指令應注意的幾個問題
①
不能把一個定時器號同時用作斷開延時定時器(TOF)和接通延時定時器(TON)。②
使用復位(R)指令對定時器復位后,定時器位位“0”,定時器當前值為“0”。③
有記憶接通延時定時器(TONR)只能通過復位指令進行復位。④對于斷開延時定時器(TOF),需要輸入端有一個負跳變(由on到off)的輸入信號啟動計時。⑤不同精度的定時器,它們當前值的刷新周期是不同的,具體情況如下:5.2.5定時器和計數(shù)器指令1)1ms分辨率定時器
1ms分辨率定時器啟動后,定時器對1ms的時間間隔(時基信號)進行計時。定時器當前值每隔1ms刷新一次,在一個掃描周期中要刷新多次,而不和掃描周期同步。
2)10ms分辨率定時器10ms分辨率定時器啟動后,定時器對10ms的時間間隔進行計時。程序執(zhí)行時,在每次掃描周期開始對10ms定時器刷新,在一個掃描周期內(nèi)定時器當前值保持不變。
3)100ms分辨率定時器
100ms分辨率定時器啟動后,定時器對100ms的時間間隔進行計時。只有在定時器指令執(zhí)行時,100ms定時器的當前值才被刷新。
5.2.5定時器和計數(shù)器指令
舉例說明:在圖5-23a中,T32定時器1ms更新一次。當定時器當前值100在圖示A處刷新,Q0.0可以接通一個掃描周期,若在其他位置刷新,Q0.0則用永遠不會接通。而在A處刷新的概率是很小的。若改為圖5-23b,就可保證當定時器當前值達到設定值時,Q0.0會接通一個掃描周期。圖5-23a同樣不適合10ms分辨率定時器。
圖5-231ms定時器編程5.2.5定時器和計數(shù)器指令
在子程序和中斷程序中不易使用100ms定時器。子程序和中斷程序不是每個掃描周期都執(zhí)行的,那么在子程序和中斷程序中的100ms定時器的當前值就不能及時刷新,造成時基脈沖丟失,致使計時失準;在主程序中,不能重復使用同一個100ms的定時器號,否則該定時器指令在一個掃描周期中多次被執(zhí)行,定時器的當前值在一個掃描周期中多次被刷新。這樣,定時器就會多計了時基脈沖,同樣造成計時失準。因而,100ms定時器只能用于每個掃描周期內(nèi)同一定時器指令執(zhí)行一次,且僅執(zhí)行一次的場合。100ms定時器的編程例子如圖5-24a所示。
a)b)圖5-24100ms定時器的應用返回5.2.5定時器和計數(shù)器指令2.計數(shù)器指令
計數(shù)器用來累計輸入脈沖的次數(shù)。計數(shù)器也是由集成電路構(gòu)成,是應用非常廣泛的編程元件,經(jīng)常用來對產(chǎn)品進行計數(shù)。計數(shù)器與定時器的結(jié)構(gòu)和使用基本相似,編程時輸入它的預設值PV(計數(shù)的次數(shù)),計數(shù)器累計它的脈沖輸入端電位上升沿(正跳變)個數(shù),當計數(shù)器達到預設值PV時,發(fā)出中斷請求信號,以便PLC作出相應的處理。計數(shù)器指令有3種:增計數(shù)CTU、增減計數(shù)CTUD和減計數(shù)CTD。指令操作數(shù)有4方面:編號、預設值、脈沖輸入和復位輸入。5.2.5定時器和計數(shù)器指令1)編號:用計數(shù)器名稱和它的常數(shù)編號(最大255)來表示,即Cxxx,如:C6。C6不僅僅是計數(shù)器的編號,它還包含兩方面的變量信息:計數(shù)器位和計數(shù)器當前值。計數(shù)器位:表示計數(shù)器是否發(fā)生動作的狀態(tài),當計數(shù)器的當前值達到預設值PV時,該位被置為“1”。計數(shù)器當前值:存儲計數(shù)器當前所累計的脈沖個數(shù),它用16位符號整數(shù)(INT)來表示,故最大計數(shù)值為32767。2)預設值PV:數(shù)據(jù)類型為INT型。尋址范圍可以是VW、IW、QW、MW、SW、SMW、LW、AIW、T、C、AC、*VD、*AC、*LD和常數(shù)。
3)脈沖輸入:BOOL型,可以是I、Q、M、SM、T、C、V、S、L和能流。
5.2.5定時器和計數(shù)器指令
4)復位輸入:與脈沖輸入同類型和范圍。(1)增計數(shù)器指令:CTU首次掃描,定時器位OFF,當前值為0。在增計數(shù)器的計數(shù)輸入端(CU)脈沖輸入的每個上升沿,計數(shù)器計數(shù)1次,當前值增加1個單位,當前值達到預設值時,計數(shù)器位ON,當前值繼續(xù)計數(shù)到32767停止計數(shù)。復位輸入有效或執(zhí)行復位指令,計數(shù)器自動復位,即計數(shù)器位OFF,當前值為0。
指令格式:CTUCxxx,PV;例:CTUC20,3填“計數(shù)器器號”,如:C30填“預設值”,如:3脈沖輸入復位輸入5.2.5定時器和計數(shù)器指令應用舉例:LDI0.0//計數(shù)脈沖信號輸入端LDI0.1//復位信號輸入端CTUC20,+3//增計數(shù),計數(shù)設定值為3個脈沖
LDC20//裝入計數(shù)器觸點=Q0.0//輸出觸點圖5-25
增計數(shù)程序及時序5.2.5定時器和計數(shù)器指令(2)增減計數(shù)器指令:CTUD
該指令有兩個脈沖輸入端:CU輸入端用于遞增計數(shù),CD輸入端用于遞減計數(shù)。首次掃描,定時器位OFF,當前值為0。CU輸入的每個上升沿,計數(shù)器當前值增加1個單位,CD輸入的每個上升沿,都使計數(shù)器當前值減小1個單位,當前值達到預設值時,計數(shù)器位ON。增減計數(shù)器計數(shù)到32767(最大值)后,下一個CU輸入的上升沿將使當前值跳變?yōu)樽钚≈担èC32768);反之,當前值達到最小值(–32768)時,下一個CD輸入的上升沿將使當前值跳變?yōu)樽畲笾担?2767)。復位輸入有效或執(zhí)行復位指令,計數(shù)器自動復位,即計數(shù)器位OFF,當前值為0。
指令格式:CTUDx,PV;例:TUDC30,5返回5.2.5定時器和計數(shù)器指令
LDI0.0//增計數(shù)輸入端
LDI0.1//減計數(shù)輸入端
LDI0.2//復位端
CTUDC30,+5//增減計數(shù),設定脈沖數(shù)為5
LDC30//裝入計數(shù)器觸點
=Q0.0//輸出觸點應用舉例:圖5-26增減計數(shù)程序及時序
5.2.5定時器和計數(shù)器指令(3)減計數(shù)器指令:CTD
首次掃描,定時器位OFF,當前值為預設值PV。計數(shù)器檢測到CD輸入的每個上升沿時,計數(shù)器當前值減小1個單位,當前值減到0時,計數(shù)器位ON。復位輸入有效或執(zhí)行復位指令,計數(shù)器自動復位,即計數(shù)器位OFF,當前值復位為預設值,而不是0。
指令格式:CTDCxxx,PV;例:CTDC40,45.2.5定時器和計數(shù)器指令應用舉例:
LDI0.0//減計數(shù)脈沖輸入端
LDI0.1//復位輸入端
CTDC40,+4//減計數(shù)器,設定計數(shù)脈沖
//數(shù)為4
LDC40//裝入計數(shù)器觸點
=Q0.0//輸出觸點圖5-27
減計數(shù)程序及時序5.2.6順序控制繼電器指令S7-200CPU含有256個順序控制繼電器(SCR)用于順序控制。S7-200包含順序控制指令,可以模仿控制進程的步驟,對程序邏輯分段;可以將程序分成單個流程的順序步驟,也可同時激活多個流程;可以使單個流程有條件地分成多支單個流程,也可以使多個流程有條件地重新匯集成單個流程。從而對一個復雜的工程可以十分方便地編制控制程序。
系統(tǒng)提
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國仿真百合花數(shù)據(jù)監(jiān)測研究報告
- 河南2025年02月河南省安陽市殷都區(qū)區(qū)直事業(yè)單位公開選調(diào)34名工作人員筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 二零二五年度汽車銷售區(qū)域代理權(quán)轉(zhuǎn)讓協(xié)議書
- 二零二五年度外墻施工安全監(jiān)管及責任協(xié)議
- 二零二五年度茶山租賃與茶葉種植與鄉(xiāng)村旅游發(fā)展合同
- 二零二五年度辦公室使用權(quán)及裝修設計轉(zhuǎn)讓合同
- 2025年度電視劇配角演出合同模板下載
- 二零二五年度大棚果樹栽培技術(shù)合作框架協(xié)議
- 2025年中國浴室漱口杯市場調(diào)查研究報告
- 2025年度知識產(chǎn)權(quán)運營代理服務委托協(xié)議書模板
- JCT908-2013 人造石的標準
- ISO9001-2015質(zhì)量管理體系要求培訓教材
- 腦梗死臨床路徑
- 部編人教版二年級下冊道德與法治教學反思
- 護理工作人員年度考核個人總結(jié)
- 小學生分享ppt課件-景區(qū)介紹《牛首山》
- 倫理審查表(一式三份)
- 石膏幾何體結(jié)構(gòu)素描教案
- 祥康健康快車王晗老師講座收集驗方
- 禮儀與教化 課件-2023-2024學年高中美術(shù)湘美版(2019)美術(shù)鑒賞
- 新生兒早期基本保健課件
評論
0/150
提交評論