版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
S7-200PLC指令系統(tǒng)第五章一、編程語言(一)梯形圖(LAD)編程語言
梯形圖是與電氣控制電路圖相呼應的圖形語言。它來源于繼電器邏輯控制系統(tǒng)的描述。(二)功能塊圖(FBD)
功能塊圖類似于普通邏輯概念圖,沿用了半導體邏輯電路的邏輯框圖表達方式。(三)語句表(STL)
語句表程序設(shè)計語言是用布爾助記符來描述程序的一種程序設(shè)計語言,計算機中的匯編語言非常相似,目前已經(jīng)可以應用高級語言。
語句表可以編寫梯形圖或功能塊無法實現(xiàn)的程序。第一節(jié)S7-200PLC編程的基本概念圖5-1功能塊圖(FBD)二、數(shù)據(jù)類型1、基本數(shù)據(jù)類型1位布爾型(BOOL)8位字節(jié)型(BYTE)16位無符號整數(shù)型(WORD)16位有符號整數(shù)型(INT)32位無符號雙字整數(shù)型(DWORD)32位有符號雙字整數(shù)型(DINT)32位實數(shù)型(REAL)。實數(shù)型(REAL)是按照NSI/IEEE754—1985標準(單精度)的表示格式規(guī)定。
(一)基本數(shù)據(jù)類型及數(shù)據(jù)類型檢查表5-22、數(shù)據(jù)類型檢查(1)PLC對數(shù)據(jù)類型檢查有助于避免常見的編程錯誤。分為三級:完全數(shù)據(jù)類型檢查、簡單數(shù)據(jù)類型檢查和無數(shù)據(jù)類型檢查。(2)S7-200PLC的SIMATIC指令集不支持完全數(shù)據(jù)類型檢查。使用局部變量時,執(zhí)行簡單數(shù)據(jù)類型檢查;使用全局變量時,指令操作數(shù)為地址而不是可選的數(shù)據(jù)類型時,執(zhí)行無數(shù)據(jù)類型檢查。表5-1表5-3(二)數(shù)據(jù)長度與數(shù)值范圍表5-4數(shù)據(jù)長度與數(shù)值數(shù)據(jù)的數(shù)值范圍:無符號數(shù)為0~2n,有符號數(shù)為-2n-1~2n-1。注意實數(shù)的數(shù)值范圍-1038~1038。
程序區(qū)用于存放用戶程序,存儲器為EEPROM。
系統(tǒng)區(qū)用于存放有關(guān)PLC配置結(jié)構(gòu)的參數(shù),如PLC主機及擴展模塊的I/O配置和編址、配置PLC站地址,設(shè)置保護口令、停電記憶保持區(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。三、存儲器區(qū)域
PLC的存儲器分為程序區(qū)、系統(tǒng)區(qū)、數(shù)據(jù)區(qū)。(一)數(shù)據(jù)區(qū)存儲器的地址表示格式
存儲器是由許多存儲單元組成,每個存儲單元都有惟一的地址,可以依據(jù)存儲器地址來存取數(shù)據(jù)。數(shù)據(jù)區(qū)存儲器地址的表示格式有位、字節(jié)、字、雙字地址格式。1、位地址格式某一位的地址由存儲器區(qū)域標識符、字節(jié)地址及位號構(gòu)成,如V5.4,I0.0等。圖5-2存儲器中的位字地址(1)字節(jié)編址的指定方式為:(區(qū)域標志符)B(字節(jié)號),如IB0表示由I0.0~I0.7這8位組成的字節(jié)。(2)字編址的指定方式為:(區(qū)域標志符)W(起始字節(jié)號),且最高有效字節(jié)為起始字節(jié)。例如VW100表示由VB100和VB101這2字節(jié)組成的字。(3)雙字編址的指定方式為:(區(qū)域標志符)D(起始字節(jié)號),且最高有效字節(jié)為起始字節(jié)。例如VD100表示由VB100到VB103這4字節(jié)組成的雙字。2、字節(jié)、字、雙字地址格式3、其他地址格式
數(shù)據(jù)區(qū)存儲器區(qū)域中,還包括定時器存儲器(T)、計數(shù)器存儲器(C)、累加器(AC)、高速計數(shù)器(HC)等,它們是模擬相關(guān)的電器元件的。它們的地址格式為:Ay。
由區(qū)域標識符A和元件號y組成,例T24表示某定時器的地址,T是定時器的區(qū)域標識符,24是定時器號,同時T24又可表示此定時器的當前值。(二)數(shù)據(jù)區(qū)存儲器區(qū)域1、輸入/輸出映像寄存器(I/Q)(1)輸入映像寄存器(I)
PLC的輸入端子輸入映像寄存器(I)的相應位。輸入映像寄存器的狀態(tài)只能由外部輸入信號驅(qū)動,而不能在內(nèi)部由程序指令來改變。位地址:I[字節(jié)地址].[位地址],如I0.1;字節(jié)、字、雙字地址:I[數(shù)據(jù)長度][起始字節(jié)地址],如IB4、IW6、ID10。(2)輸出映像寄存器(Q)
每一個輸出模塊的端子與輸出映像寄存器的相應位相對應。CPU將輸出判斷結(jié)果存放在輸出映像寄存器中,在掃描周期的結(jié)尾,CPU以批處理方式將輸出映像寄存器的數(shù)值復制到相應的輸出端子上。
在程序的執(zhí)行過程中,對于輸入或輸出的存取通常是通過映像寄存器,而不是實際的輸入、輸出端子。S7-200CPU執(zhí)行有關(guān)輸入輸出程序時的操作過程如圖所示。
2、內(nèi)部標志位存儲器(M)內(nèi)部標志位存儲器(M)也稱內(nèi)部線圈,是模擬繼電器控制系統(tǒng)中的中間繼電器,它存放中間操作狀態(tài),或存儲其它相關(guān)數(shù)據(jù)。如M26.7,MB11,MW23,MD26。3、變量存儲器(V)變量存儲器(V)存放全局變量、存放程序執(zhí)行過程中控制邏輯操作的中間結(jié)果或其他相關(guān)數(shù)據(jù)。變量存儲器全局有效。全局有效是指同一個存儲器可以在任一程序分區(qū)(主程序、子程序、中斷程序)被訪問。如V10.2,VB20,VW100,WD320。4、局部存儲器(L)局部存儲器(L)存放局部變量,是局部有效的。局部有效是指某一局部存儲器只能在某一程序分區(qū)(主程序或子程序或中斷程序)中使用。如L0.0,LB33,LW44,LD55。6、特殊標志位存儲器(SM)特殊標志位(SM)即特殊內(nèi)部線圈,它是用戶與系統(tǒng)程序之間的界面。
SM0.0RUN監(jiān)控,PLC在RUN方式時,SM0.0總為1;
SM0.1初始脈沖,SM0.1接通一個掃描周期;
SM0.3PLC上電進入RUN方式時,SM0.3接通一個掃描周期;
SM0.5秒脈沖,占空比為50%,周期為1s的脈沖。5、順序控制繼電器存儲器(S)順序控制繼電器(S)用于順序控制(或步進控制)。順序控制繼電器指令(SCR)基于順序功能圖(SFC)的編程方式。SCR指令提供控制程序的邏輯分段,從而實現(xiàn)順序控制。如S3.1,SB4,SW10,SD21。7、定時器(T)定時器是模擬繼電器控制系統(tǒng)中的時間繼電器。時基有三種:1ms、10ms、100ms。定時器存儲器地址表示格式為:T[定時器號],如T24。S7-200PLC定時器存儲器的有效地址范圍為:T(0~255)。8、計數(shù)器(T)計數(shù)器是累計其計數(shù)輸入端脈沖電平由低到高的次數(shù),有三種類型:增計數(shù)、減計數(shù)、增減計數(shù)。計數(shù)器存儲器地址表示格式為:C[計數(shù)器號],如C3。S7-200PLC計數(shù)器存儲器的有效地址范圍為:C(0~255)。9、模擬量輸入映像寄存器(AI)模擬量輸入模塊將外部輸入的模擬信號的模擬量轉(zhuǎn)換成1個字長的數(shù)字量,存放在模擬量輸入映像寄存器(AI)中,供CPU運算處理。如AIW0,AIW2,AIW4等。10、模擬量輸出映像寄存器(AO)
CPU運算結(jié)果存放在模擬量輸出映像寄存器(AQ)中,供D/A轉(zhuǎn)換器將1個字長的數(shù)字量轉(zhuǎn)換成模擬量。如AQW0,AQW2,AQW4等。11、累加器(AC)累加器用來暫存計算中間值的存儲器,也可向子程序傳遞參數(shù)或返回參數(shù)。S7-200CPU累加器:AC0、AC1、AC2、AC3。
累加器是可讀寫單元,可以按字節(jié)、字、雙字存取累加器中的數(shù)值。由指令標識符決定存取數(shù)據(jù)的長度,例如,MOVB指令存取累加器的字節(jié),DECW指令存取累加器的字,INCD指令存取累加器的雙字。按字節(jié)、字存取時,累加器只存取存儲器中數(shù)據(jù)的低8位、低16位;以雙字存取時,則存取存儲器的32位。12、高速計數(shù)器(HC)高速計數(shù)器用來累計高速脈沖信號,當高速脈沖信號頻率比CPU掃描速率更快時,必須使用高速計數(shù)器。CPU226高速計數(shù)器:HC(0~5)。
四、尋址方式指令中如何提供操作數(shù)或操作數(shù)地址,稱為尋址方式。S7-200PLC的尋址方式有:立即尋址、直接尋址、間接尋址。
(一)立即尋址指令直接給出操作數(shù),操作數(shù)緊跟著操作碼。十進制常數(shù):30112十六進制常數(shù):16#42FASCII常數(shù):‘INPUT’實數(shù)或浮點常數(shù):+1.112E-10
二進制常數(shù):2#0101
1110#為常數(shù)的進制格式說明符
(二)直接尋址指令直接給出操作數(shù)的地址的尋址方式稱為直接尋址。有按位、字節(jié)、字、雙字的尋址方式。位尋址:ANDQ5.5字節(jié)尋址:ORBVB33,LB21字尋址:MOVWAC0,AQW2雙字尋址:MOVDAC1,VD200(三)間接尋址間接尋址通過使用地址指針來存取存儲器中的數(shù)據(jù)。在S7-200中允許使用指針對I、Q、M、V、S、T、C(僅當前值)存儲區(qū)進行間接尋址。1、建立指針
間接尋址前,應先建立指針。指針為雙字長,是所要訪問的存儲單元(最大為雙字型32位)的物理地址。只能使用變量存儲器(V)、局部存儲器(L)或累加器(AC1、AC2、AC3)作為指針,AC0不能用作間接尋址的指針。2、指針建立好后,利用指針存取數(shù)據(jù)3、修改指針在取連續(xù)地址的存儲單元中數(shù)據(jù)時,通過修改指針可以非常方便地存取數(shù)據(jù)。修改指針值時,應根據(jù)存取的數(shù)據(jù)長度來進行調(diào)整。若對字節(jié)進行存取,指針值加1(或減1);若對字進行存取、或?qū)Χ〞r器、計數(shù)器的當前值進行存取,指針值加2(或減2);若對雙字進行存取,則指針值加4(或減4)。圖5-5
使用指針間接尋址
把VB200的地址送入AC1建立指針
把指針處的值送到AC0
本指令是MOVW,為字型長度,則AC0的高16位空閑未用;若是MOVD雙字型指令,則將VB200~VB203的內(nèi)容(即12345678)送到AC0
這里給出的是起始字節(jié)地址,而并不表示數(shù)據(jù)長度(由隨后間接存取指令類型決定)為字型。所以,如果改為&VB200或&VD200效果完全相同。把指針增加兩次,指向下一個字
把AC1(VW202)所指向的字數(shù)值送到AC0
圖5-6
存取數(shù)據(jù)值時指針的修改
五、用戶程序的結(jié)構(gòu)
用戶程序可分為三個程序分區(qū):主程序、子程序(可選)和中斷程序(可選)。主程序(OB1):是用戶程序的主體。CPU在每個掃描周期都要執(zhí)行一次主程序指令。子程序:是程序的可選部分,主程序調(diào)用時才能夠執(zhí)行。中斷程序:是程序的可選部分,只有當中斷事件發(fā)生時,才能夠執(zhí)行。中斷程序可在掃描周期的任意點執(zhí)行。第二節(jié)S7-200PLC的基本指令及編程方法常開觸點I0.0觸點地址編號I0.1常閉觸點觸點地址編號I0.0Q0.0標準線圈線圈地址編號()1)外接輸入電路閉合時,輸入映像寄存器為“1”狀態(tài),梯型圖中對應的“-||-”接通,“-|/|-”斷開。2)外接輸入電路斷開時,輸入映像寄存器為“0”狀態(tài),梯型圖中對應的“-||-”
斷開,“-|/|-”
閉合。3)梯形圖中某一個線圈“通電”時,對應的輸出映像寄存器的位為“1”,對應外部的負載通電工作。4)梯形圖中某一個線圈“斷電”時,對應的輸出映像寄存器的位為“0”,對應外部的負載斷電,停止工作。一、基本邏輯指令邏輯關(guān)系梯形圖助記符I0.0I0.1LD I0.0A I0.1= Q0.0與AND當I0.0與I0.1
都“ON”時,則輸出Q0.0
“ON”(1)。Q0.0()LD I0.0O I0.1= Q0.0或OR當I0.0
或I0.0
“ON”時,則輸出Y0
“ON”(1)I0.0I0.1Q0.0()LDN
I0.1= Q0.0非NOT當I0.1
“OFF”時則輸出Q0.0
“ON”(1)Q0.0I0.1()邏輯關(guān)系梯形圖助記符LD I0.0O I0.1LD I0.2O I0.3ALD=Q0.0當“I0.0或I0.1”與“I0.2
或I0.3”
都“ON”時,則輸出Y0
“ON”。區(qū)塊與ALD(AndStack)區(qū)塊或OLD(OrStack)當“I0.0
與I0.1”或“I0.2
與I0.3非”
“ON”時,則輸出Q0.0
“ON”。I0.0I0.1I0.2I0.3Q0.0I0.0I0.2I0.1I0.3Q0.0LD I0.0O I0.1LD I0.2O I0.3OLD=Q0.0例1:直接啟動停車控制I/O分配:I0.0:停車I0.1:啟動Q0.1:KM語句表LDI0.1OQ0.0AI0.0=Q0.0繼電器控制電路圖I/O分配決定PLC的端子接線圖PLC的端子接線方式又決定編程語言I/O分配:I0.0:停車I0.1:啟動Q0.1:KMQ0.0I0.0Q0.0I0.1置位、復位指令硬件接線及I/O分配連續(xù)按鈕SB1-I0.0點動按鈕SB2-I0.1停止按鈕SB3-I0.2SB1KM1SB2SB3電源Q0.0L+I0.0I0.1I0.21LFR正確的程序分析、程序掃描周期的理解連續(xù)按鈕SB1-I0.0點動按鈕SB2-I0.1停止按鈕SB3-I0.2SB1KM1SB2SB3電源Q0.0L+I0.0I0.1I0.21LFR接觸器聯(lián)鎖正反轉(zhuǎn)控制電路電動機的正反轉(zhuǎn)控制FUKM1QS正轉(zhuǎn)接觸器反轉(zhuǎn)接觸器L1L2L3主電路KM2FRM3~注意調(diào)相電動機的正反轉(zhuǎn)控制I/O接線圖正轉(zhuǎn)啟動SB2-I0.0反轉(zhuǎn)啟動SB3-I0.1
停止SB1-I0.2KM2SB2KM1SB3SB1KM2KM1電源FR正轉(zhuǎn)接觸器KM1-Q0.0反轉(zhuǎn)接觸器KM2-Q0.1正轉(zhuǎn)互鎖反轉(zhuǎn)互鎖Q0.0L+I0.0I0.1I0.2Q0.11L電動機的正反轉(zhuǎn)控制梯形圖正轉(zhuǎn)反轉(zhuǎn)I0.1Q0.1I0.0Q0.0I0.2Q0.1()I0.0Q0.0I0.1Q0.1I0.2Q0.0()注意圖中兩個自保持回路的不同!KM2SB2KM1SB3SB1KM2KM1電源FRQ0.0L+I0.0I0.1I0.2Q0.11L二、立即I/O指令(一)立即輸入指令在每個標準觸點指令的后面加“I”。指令執(zhí)行時,立即讀取物理輸入點的值,但不刷新相應映像寄存器的值。(二)立即輸出指令用立即指令訪問輸出點時,把棧頂值立即復制到指令所指定的物理輸出點,同時,相應的輸出映像寄存器的內(nèi)容也被刷新。(三)立即置位和立即復位指令用立即置位指令訪問輸出點時,從指令所指出的位(bit)開始的N個(最多為128個)物理輸出點被立即置位,同時,相應的輸出映像寄存器的內(nèi)容也被刷新。用立即復位指令訪問輸出點時,從指令所指出的位(bit)開始的N個(最多為128個)物理輸出點被立即復位,同時,相應的輸出映像寄存器的內(nèi)容也被刷新。說明:立即I/O指令是直接訪問物理輸入輸出點的,比一般指令訪問輸入輸出映像寄存器占用CPU時間要長,不能盲目使用。例:三、邏輯堆棧指令邏輯堆棧指令只用于語句表(STL)編程,使用梯形圖(LAD)、功能塊(FBD)編程時,編輯器會自動插入相關(guān)的指令處理堆棧操作。四、取非觸點指令和空操作指令
取非觸點可以改變能流的狀態(tài)。觸點左側(cè)為1時,右側(cè)為0,能流就停止;觸點左側(cè)為0時,右側(cè)為1,能流就通過。
空操作(NOPN)指令不影響程序的執(zhí)行,操作數(shù)N是一個0~255之間的常數(shù)。五、正/負跳變觸點指令正跳變觸點檢測到脈沖的每一次正跳變后,產(chǎn)生一個掃描周期的脈沖。指令格式:負跳變觸點檢測到脈沖的每一次負跳變后,產(chǎn)生一個掃描周期的脈沖。指令格式:應用舉例:六、定時器和計數(shù)器指令輸入接點設(shè)定值:1~32767定時器號碼(0~255)INPTT37TON定時器的實際設(shè)定時間:T=設(shè)定值PT×分辨率
類型TON:接通延時定時器
TOF:斷開延時定時器
TONR:有記憶接通延時定時器(一)定時器指令TS=5×0.1=0.5s1、接通延時定時器其工作波形圖如下:計時值設(shè)定值Q0.1(T37)I1.0TST37TONPTINI1.05()T37Q0.1首次掃描,定時器位OFF,當前值為0。使能輸入接通時,定時器位為OFF,當前值從0開始計數(shù)時間,當前值達到預設(shè)值時,定時器位為ON,當前值連續(xù)計數(shù)到32767。使能輸入斷開,定時器自動復位,即定時器位OFF,當前值為0。
其工作波形圖如下:輸入端Q0.1當前值設(shè)定值TS=120*10msM0.1TONRPTINI0.1120T4()T4Q0.1()T4R1M0.1最大值327671202、有記憶接通延時定時器首次掃描,定時器位OFF,當前值保持,使能輸入接通時,定時器位為OFF,當前值從保持值開始計數(shù)時間,當前值達到預設(shè)值時,定時器位為ON,當前值連續(xù)計數(shù)到32767。定時器用復位指令清除當前值。
TS3、斷開延時定時器(TOF)TOFPTINI1.28T97()T97Q0.1TS=1200*0.1=120S上電周期或首次掃描,定時器位OFF,當前值為0。使能輸入接通時,定時器位為ON,當前值為0。當使能輸入由接通到斷開時,定時器開始計數(shù),當前值達到預設(shè)值時,定時器位OFF,當前值等于預設(shè)值,停止計數(shù)。TOF復位后,如果使能輸入再有從ON到OFF的負跳變,則可實現(xiàn)再次啟動。其工作波形圖如下:I1.2Q0.1計時值設(shè)定值TS串電阻降壓起動硬件接線圖及程序(二)計數(shù)器指令定時器是對PLC內(nèi)部的時鐘脈沖進行計數(shù),而計數(shù)器是對外部的或由程序產(chǎn)生的計數(shù)脈沖進行計數(shù)。計數(shù)器用來累計輸入脈沖的次數(shù),經(jīng)常用來對產(chǎn)品進行計數(shù)。計數(shù)器與定時器的結(jié)構(gòu)和使用基本相似,編程時輸入它的預設(shè)值PV(計數(shù)的次數(shù)),計數(shù)器累計它的脈沖輸入端電位上升沿(正跳變)個數(shù),當計數(shù)器達到預設(shè)值PV時,發(fā)出中斷請求信號,以便PLC作出相應的處理。計數(shù)器指令有3種:增計數(shù)CTU、增減計數(shù)CTUD和減計數(shù)CTD。當前值等于或大于設(shè)定值時,計數(shù)器位被置為“1”。1、增計數(shù)器CTU指令首次掃描,定時器位OFF,當前值為0。脈沖輸入的每個上升沿,計數(shù)器計數(shù)1次,當前值增加1個單位,當前值達到預設(shè)值時,計數(shù)器位ON,當前值繼續(xù)計數(shù)到32767停止計數(shù)。復位輸入有效或執(zhí)行復位指令,計數(shù)器自動復位,即計數(shù)器位OFF,當前值為0。2、增/減計數(shù)器(CTUD)指令增計數(shù)減計數(shù)復位C(0~255)I2.0I1.1I1.2當前值輸出端當前值
首次掃描,定時器位OFF,當前值為0。當前值等于或大于預設(shè)值時,計數(shù)器位ON。
增減計數(shù)器計數(shù)到32767(最大值)后,下一個CU輸入的上升沿將使當前值跳變?yōu)樽钚≈担èC32768);反之,當前值達到最小值(–32768)時,下一個CD輸入的上升沿將使當前值跳變?yōu)樽畲笾担?2767)。復位輸入有效或執(zhí)行復位指令,計數(shù)器自動復位,即計數(shù)器位OFF,當前值為0。3、減計數(shù)器CUPVC(0~255)LD復位,裝設(shè)定值計脈沖數(shù)設(shè)定值CTD首次掃描,定時器位OFF,當前值為預設(shè)值PV。計數(shù)器檢測到CD輸入的每個上升沿時,計數(shù)器當前值減小1個單位,當前值減到0時,計數(shù)器位ON。無復位端,在裝載輸入端接通時,使計數(shù)器復位并把設(shè)定值裝入當前寄存器中。計數(shù)器應用舉例:產(chǎn)品數(shù)量檢測產(chǎn)品通過檢測器PH機械手KM1KM2傳送帶電機PLC的I/O分配:I0.0—傳送帶停機按鈕I0.1—傳送帶起動按鈕I0.2—產(chǎn)品通過檢測器PHQ0.0—傳送帶電機KM1Q0.1—機械手KM2T37—定時器,定時2秒C20—計數(shù)器,初始值24(每24個產(chǎn)品機械手動作1次)機械手動作后,延時2秒,將機械手電磁鐵切斷,同時將C20復位。C20復位后,Q0.1和T37也復位 電機起動后,Q0.0產(chǎn)生寬度為一個掃描周期的正脈沖,使C20和T37復位起、停傳送帶電機計數(shù)器應用舉例:產(chǎn)品數(shù)量檢測Q0.0Q0.0I0.224C20T3720C20Q0.1每檢測到一個產(chǎn)品,I0.2產(chǎn)生一個正脈沖,使C20計一個數(shù)C20每計24個數(shù),機械手動作一次機械手動作后,延時2秒,將機械手電磁鐵切斷,同時將C20復位。C20
復位后,Q0.1和T37也復位 ()I0.0I0.1C20CUPVCTUR()INPTTONT37T37PQ0.0七、順序控制繼電器指令(一)SCR指令的功能1、SCR程序段的S位置位時,允許該程序段工作;2、SCRT指令一方面使當前激活的SCR程序段S位復位,以使該程序段停止工作,另一方面使下一個將要執(zhí)行的SCR程序段S位置位;3、SCRE指示一個SCR程序段結(jié)束。(二)使用SCR指令的限制只能使用順序控制繼電器位作為段標志位,同一地址的S位不可用于不同的程序分區(qū);在一個SCR段中不能使用JMP、LBL、FOR、NEXT、END指令。所謂順序控制,是生產(chǎn)過程按工藝要求事先安排的順序自動地進行控制。(三)SCR指令的編程舉例根據(jù)舞臺燈光效果的要求,控制紅、綠、黃三色燈。要求:紅燈先亮,2s后綠燈亮,再過3s后黃燈亮。待紅、綠、黃燈全亮3min后,全部熄滅。程序如圖5-29所示。說明:每一個SCR程序段中均包含三個要素:1)輸出對象:在這一步序中應完成的動作;2)轉(zhuǎn)移條件:滿足轉(zhuǎn)移條件后,實現(xiàn)SCR段的轉(zhuǎn)移;3)轉(zhuǎn)移目標:轉(zhuǎn)移到下一個步序。LDI0.1ANQ0.0ANQ0.1ANQ0.2//在初始狀態(tài)下起動,置SS0.1,1//S0.1=1LSCRS0.1//S0.1=1,激活第一SCR程序段,
//進入第一步序LDSM0.0SQ0.0,1//紅燈亮,并保持TONT37,+20//啟動2s定時器LDT37//2s后程序轉(zhuǎn)移到第二SCR段,SCRTS0.2//(S0.2=1,S0.1=0)SCRE//第一SCR段結(jié)束LSCRS0.2//S0.2=1,激活第二SCR程序段,
//進入第二步序LDSM0.0SQ1.1//綠燈亮,并保持TONT38,+30//啟動3s定時器
I0.1:啟動;Q0.0:紅燈;Q0.1:綠燈;Q0.2:黃燈。LDT38//3s后程序轉(zhuǎn)移到第三SCR段,SCRTS0.3//(S0.3=1,S0.2=0)SCRE//第二SCR段結(jié)束LSCRS0.3//S0.3=1,激活第三SCR程序段,
//進入第三步序LDSM0.0SQ0.2,1//黃燈亮,并保持TONT39,+1800//啟動3min定時器LDT39//3min后程序轉(zhuǎn)移到第四SCR段,SCRTS0.4//(S0.4=1,S0.3=0)SCRE//第三SCR段結(jié)束LSCRS0.4//S0.4=1,激活第四SCR程序段,
//進入第四步序LDSM0.0RS0.1,4RQ0.0,3//紅、綠、黃燈全滅SCRE//第四SCR段結(jié)束圖5-29SCR指令編程八、移位寄存器指令移位寄存器指令可用來進行順序控制、物流及數(shù)據(jù)流控制。S_BIT指定移位寄存器的最低位,N指定寄存器的長度;正數(shù)表示正向移動,N為負數(shù)表示反向移動;N為字節(jié)型數(shù)據(jù)類型,最大長度為64位。EN端每個上升沿采樣。SM1.1→→九、比較觸點指令☆比較指令為上、下限控制提高了方便,實際上是一個比較觸點。該指令是將兩個操作數(shù)按指定的關(guān)系比較,比較關(guān)系成立則比較觸點閉合?!畋容^運算符有:=、>=、<=、>、<和<>(<>表示不等于)?!畋容^指令的類型有:字節(jié)比較、整數(shù)比較、雙字整數(shù)比較和實數(shù)比較。應用舉例
一自動倉庫存放某種貨物,最多6000箱,需對所存的貨物進出計數(shù)。貨物多于1000箱,燈L1亮;貨物多于5000箱,燈L2亮。其中,L1和L2分別受Q0.0和Q0.1控制,數(shù)值1000和5000分別存儲在VW20和VW30字存儲單元中。LDI0.0//增計數(shù)出入端LDI0.1//減計數(shù)出入端LDI0.2//復位出入端CTUDC30,+10000//增減計數(shù),設(shè)定脈沖數(shù)為10000
LDW>=C30,VW20//比較計數(shù)器,當前值是否大于等
//于VW20中的值=
Q0.0//輸出觸點
LDW>=C30,VW30//比較計數(shù)器,當前值是否大于等
//于VW30中的值=
Q0.1//輸出觸點程序舉例
一、傳送指令第三節(jié)S7-200PLC的功能指令MOV_DWENINOUTENOMOV_WENINOUTENOMOV_BENINOUTENOMOV_RENINOUTENO數(shù)據(jù)塊傳送指令把從輸入(IN)指定地址的N個連續(xù)字節(jié)、字、雙字的內(nèi)容傳送到從輸出(OUT)指定地址開始的N個連續(xù)字節(jié)、字、雙字的存儲單元中去。BLKMOV-DWENINOUTENONBLKMOV-WENINOUTENONBLKMOV-BENINOUTENON(二)數(shù)據(jù)塊傳送指令(一)數(shù)據(jù)傳送指令如果功能框允許輸入端(EN)存在“能流”,且功能框準確無誤地執(zhí)行了其功能,那么允許輸出端(ENO)將把“能流”傳到下一個功能框,此時,ENO=1。如果執(zhí)行錯誤,那么“能流”就在出現(xiàn)錯誤的功能框終止,即ENO=0。(三)字節(jié)交換指令交換字節(jié)指令,把輸入端(IN)指定字的高字節(jié)內(nèi)容與低字節(jié)內(nèi)容相交換,交換結(jié)果仍存在輸入端(IN)指定的地址中。無符號整數(shù)型(WORD)。(四)傳送字節(jié)立即讀、寫指令MOV-BIRENINOUTENOMOV-BIWENINOUTENO
傳送字節(jié)立即讀(BIR)指令,讀取輸入端(IN)指定字節(jié)地址的物理輸入點(IB)的值,并寫入輸出端(OUT)指定字節(jié)地址的存儲單元中。
傳送字節(jié)立即寫(BIW)指令,將從輸入端(IN)指定字節(jié)地址的內(nèi)容寫入輸出端(OUT)指定字節(jié)地址的物理輸出點(QB)。二、數(shù)學運算指令
(一)四則運算指令ADD_IENIN1OUTENOIN2ADD_DIENIN1OUTENOIN2ADD_RENIN1OUTENOIN2加法指令可分為整數(shù)、雙整數(shù)、實數(shù)加法指令;執(zhí)行操作:IN1+IN2=OUT。SUB-IENIN1OUTENOIN2SUB-DIENIN1OUTENOIN2SUB-RENIN1OUTENOIN22、減法指令1、加法指令減法指令可分為整數(shù)、雙整數(shù)、實數(shù)減法指令;執(zhí)行操作:IN1-IN2=OUT加法/減法指令影響的特殊存儲器位:SM1.0(零);SM1.1(溢出);SM1.2(負)。3.乘法指令MUL-IENIN1OUTENOIN2MUL-DIENIN1OUTENOIN2MUL-RENIN1OUTENOIN2MULENIN1OUTENOIN24.除法指令DIV-IENIN1OUTENOIN2DIV-DIENIN1OUTENOIN2DIV-RENIN1OUTENOIN2DIVENIN1OUTENOIN2整數(shù)完全除法指令(帶余數(shù)的整數(shù)除法),把輸入端(IN)指定的兩個16位整數(shù)相除,產(chǎn)生一個32位結(jié)果,并送到輸出端(OUT)指定的存儲單元中去。其中高16位是余數(shù),低16位是商。執(zhí)行操作:IN1/IN2=OUT乘法指令可分為整數(shù)、雙整數(shù)、實數(shù)乘法指令和整數(shù)完全乘法指令。整數(shù)完全乘法指令:把輸入端(IN1、IN2)指定的兩個16bit整數(shù)相乘產(chǎn)生一個32bit乘積,并送到輸出端(OUT)指定的存儲單元。執(zhí)行操作:IN1*IN2=OUT。影響特殊存儲器位:SM1.0(零)、SM1.1(溢出)、SM1.2(負)、SM1.3(除數(shù)為0)。例:四則運算5、加1和減1指令說明:加1/減1指令用于自增、自減操作,以實現(xiàn)累加計數(shù)和循環(huán)控制等程序的編制。(字節(jié)、字、雙字操作)執(zhí)行操作:IN±1→OUT.影響特殊存儲器位:SM1.0(零)、SM1.1(溢出)。(二)數(shù)學功能指令(1)數(shù)學函數(shù)指令包括平方根、自然對數(shù)、指數(shù)、三角函數(shù)等幾個常用的函數(shù)指令。(2)運算輸入輸出數(shù)據(jù)都為實數(shù)。結(jié)果如果大于32位二進制表示的范圍,則產(chǎn)生溢出。(3)影響的特殊存儲器位:SM1.0(零);SM1.1(溢出);SM1.2(負)。1、平方根指令:SQRT執(zhí)行操作:把一個雙字長(32位)的實數(shù)IN開方,得到32位的實數(shù)結(jié)果OUT。把一個雙字長(32位)的實數(shù)IN取自然對數(shù),得到32位的實數(shù)結(jié)果OUT;執(zhí)行操作:LN(IN)=OUT。2、自然對數(shù)指令:LN3、自然指數(shù)指令:EXP把一個雙字長(32位)的實數(shù)IN取以e為底的指數(shù),得到32位的實數(shù)結(jié)果OUT。4、正弦、余弦、正切指令即正弦、余弦、正切指令。將把一個雙字長(32位)的實數(shù)弧度值IN分別取正弦、余弦、正切,各得到32位的實數(shù)結(jié)果OUT。
程序?qū)嵗海ㄇ?5°的正切值)
三、邏輯運算指令(1)邏輯運算指令的操作數(shù)均為無符號操作數(shù)。(2)按操作數(shù)長度可分為字節(jié)、字和雙字邏輯運算,IN1、IN2、OUT操作數(shù)的數(shù)據(jù)類型為:B、W、DW。(3)邏輯運算指令影響特殊標志位存儲器位:SM1.0(零)。邏輯運算指令舉例四、移位和循環(huán)移位指令
移位和循環(huán)移位指令的操作數(shù)均為無符號操作數(shù)。(一)右移位指令說明:(1)把輸入端(IN)指定的數(shù)據(jù)右移/左移N位,結(jié)果存入OUT單元;(2)移位時,移出位進入SM1.1,另一端自動補0。SM1.1始終存放最后一次被移出的位;(3)移位次數(shù)最大分別為8、16、32。(4)如果移位結(jié)果是0,零存儲器位(SM1.0)置位。(二)左移位指令(三)循環(huán)右移指令(四)循環(huán)左移指令說明:(1)把輸入端(IN)指定的數(shù)據(jù)循環(huán)右移/左移N位,結(jié)果存入OUT單元;(2)移位時,SM1.1始終存放最后一次被移出的位。(3)移位次數(shù)與移位數(shù)據(jù)的長度有關(guān),如果移位次數(shù)設(shè)定值大于移位數(shù)據(jù)的位數(shù),則執(zhí)行循環(huán)移位之前,系統(tǒng)先對設(shè)定值取以數(shù)據(jù)長度為底的模,用小于數(shù)據(jù)長度的結(jié)果作為實際循環(huán)移位的次數(shù)。如字左移時,若移位次數(shù)設(shè)定為36,則先對36取以16為底的模,得到小于16的結(jié)果4,故指令實際循環(huán)移位4次。例:移位和循環(huán)指令編程例題:用I0.0控制接在Q0.0~Q0.7上的8個彩燈循環(huán)移位,從左到右以0.5s的速度依次點亮,保持任意時刻只有一個指示燈亮,到達最右端后,再從左到右依次點亮。要求:使用循環(huán)移位指令。LDSM0.1//首次掃描時MOVB1,QB0//置8位彩燈初態(tài)
LDI0.0//T37產(chǎn)生周期為ANT370.5s的移位脈沖TONT37,+5
LDT37//每來一個脈沖RLBQB0,1彩燈循環(huán)左移1位已知:I0.0接外部開關(guān),Q0.0接指示燈,問下面的梯形圖實現(xiàn)什么功能?(一)BCD碼與整數(shù)的轉(zhuǎn)換五、數(shù)據(jù)轉(zhuǎn)換指令BCD_IENINOUTENOI_BCDENINOUTENO(1)BCD碼轉(zhuǎn)為整數(shù)(BCDI)指令,將輸入端(IN)指定的BCD碼轉(zhuǎn)換成整數(shù),并將結(jié)果存放到輸出端(OUT)指定的存儲單元中去。輸入數(shù)據(jù)的范圍是0~9999(BCD碼)。(2)整數(shù)轉(zhuǎn)為BCD碼(IBCD)指令,將輸入端(IN)指定的整數(shù)轉(zhuǎn)換成BCD碼,并將結(jié)果存放到輸出端(OUT)指定的存儲單元中去。輸入數(shù)據(jù)的范圍是0~9999。(3)指令影響的特殊存儲器位:SM1.6(非法BCD)已知(AC0)=1234,程序運行后:(AC0)=04D2。
程序?qū)嵗海ǘ╇p字整數(shù)與實數(shù)的轉(zhuǎn)換雙字整數(shù)轉(zhuǎn)為實數(shù)(DTR)指令:將輸入端(IN)指定的32位有符號整數(shù)轉(zhuǎn)換成32位實數(shù)。ROUND取整指令,轉(zhuǎn)換時實數(shù)的小數(shù)部分四舍五入。TRUNC取整指令,實數(shù)舍去小數(shù)部分后,轉(zhuǎn)換成32位有符號整數(shù)。取整指令被轉(zhuǎn)換的輸入值應是有效的實數(shù),如果實數(shù)值太大,使輸出無法表示,那么溢出位(SM1.1)被置位。(三)雙字整數(shù)與整數(shù)的轉(zhuǎn)換使能輸入有效時,將雙整數(shù)型輸入數(shù)據(jù)IN轉(zhuǎn)換成整數(shù)類型,并將結(jié)果送到OUT輸出。被轉(zhuǎn)換的輸入值應是有效的雙字整數(shù)。輸入數(shù)據(jù)超出整數(shù)范圍則產(chǎn)生溢出。
(四)字節(jié)與整數(shù)的轉(zhuǎn)換使能輸入有效時,將字節(jié)型輸入數(shù)據(jù)IN轉(zhuǎn)換成整數(shù)類型,并將結(jié)果送到OUT輸出。字節(jié)型是無符號的,所以沒有符號擴展。
使能輸入有效時,將整數(shù)型輸入數(shù)據(jù)IN轉(zhuǎn)換成字節(jié)類型,并將結(jié)果送到OUT輸出。輸入數(shù)據(jù)超出字節(jié)范圍(0~255)則產(chǎn)生溢出。使能輸入有效時,將整數(shù)型輸入數(shù)據(jù)IN轉(zhuǎn)換成雙整數(shù)類型(符號進行擴展),并將結(jié)果送到OUT輸出。例:將101英寸轉(zhuǎn)換為厘米(五)譯碼、編碼指令編碼指令:使能輸入有效時,將字型輸入數(shù)據(jù)IN中值為1的最低有效位的位號編碼成4位二進制數(shù),輸出到OUT所指定的字節(jié)單元的低4位。即用半個字節(jié)來對一個字型數(shù)據(jù)16位中的1位有效位進行編碼。
譯碼指令:使能輸入有效時,根據(jù)字節(jié)型輸入數(shù)據(jù)IN的低4位所表示的位號將OUT所指定的字單元的對應位置1,其他位置0。即對半個字節(jié)的編碼進行譯碼來選擇一個字型數(shù)據(jù)16位中的1位。
(六)段碼(SEG)指令使能輸入有效時,將字節(jié)型輸入數(shù)據(jù)IN的低4位有效數(shù)字(16#0~F)轉(zhuǎn)換成七段顯示碼,并將其輸出到OUT所指定的字節(jié)單元。圖5-59七段碼顯示編碼功能:將模擬量輸入端采樣值由整數(shù)轉(zhuǎn)換為雙整數(shù),然后由雙整數(shù)轉(zhuǎn)換為實數(shù),再除以一個比例因子得到PLC可以處理的范圍內(nèi)的值。模擬量控制程序中的數(shù)據(jù)類型轉(zhuǎn)換表中數(shù)據(jù)的存儲格式單元地址單元內(nèi)容說明VW2000005表格的首地址,TL=5為表格的最大填表數(shù)VW2020004數(shù)據(jù)EC=4(EC≤100)為該表中的實際填表數(shù)VW2042345數(shù)據(jù)0VW2065678數(shù)據(jù)1VW2089876數(shù)據(jù)2VW2106543數(shù)據(jù)3VW212****無效數(shù)據(jù)六、表功能指令(一)填表、查表指令1、填表指令(ATT):向表(TBL)中填入DATA端的數(shù)據(jù)。TBL指明表格的首地址,表中第一個數(shù)是最大填表數(shù)(TL),第二個數(shù)是實際填表數(shù)(EC),指出已填入表單數(shù)據(jù)個數(shù),新的數(shù)據(jù)填加在表的末尾。每向表中存一個數(shù)據(jù),實際填表數(shù)EC會自動加1。程序?qū)嵗海?)表查找指令執(zhí)行之前,當使能輸入有效時,從INDX開始搜索表TBL,尋找符合由PTN和CMD所決定的條件的數(shù)據(jù),如果沒有發(fā)現(xiàn)符合條件的數(shù)據(jù),則INDX的值等于EC。如果找到一個符合條件的數(shù)據(jù),則將該數(shù)據(jù)的表中地址裝入INDX中。(6)表查找指令執(zhí)行完成,找到一個符合條件的數(shù)據(jù),如果想繼續(xù)向下查找,必須先對INDX加1,以重新激活表查找指令。2、查表指令(FND):從INDX開始搜索表(TBL),尋找滿足條件的數(shù)據(jù)。(1)TBL——被訪問表格的首地址;(2)PTN——用來描述查表條件的進行比較的數(shù)據(jù);(3)CMD——查找條件,它是一個1~4的數(shù)值,分別代表=、<>、<和>運算符;(4)INDX——用來指定表中符合查找條件的數(shù)據(jù)地址,查表前,INDX的內(nèi)容清0
。程序?qū)嵗海ǘ┫冗M先出、后進先出指令
當使能輸入有效時,從TBL指明的表中移出第一個字型數(shù)據(jù)并將其輸出到DATA所指定的字單元。
FIFO表取數(shù)時,移出的數(shù)據(jù)總是最先進入表中的數(shù)據(jù)。每次從表中移出一個數(shù)據(jù),剩余數(shù)據(jù)依次上移一個字單元位置,同時實際填表數(shù)EC會自動減1。
當使能輸入有效時,從TBL指明的表中移出最后一個字型數(shù)據(jù)并將其輸出到DATA所指定的字單元。
LIFO表取數(shù)時,移出的數(shù)據(jù)是最后進入表中的數(shù)據(jù)。每次從表中取出一個數(shù)據(jù),剩余數(shù)據(jù)位置保持不變,實際填表數(shù)EC自動減1。FILL,存儲器填充指令。當使能輸入有效時,將字型輸入值IN填充至從OUT開始的N個字的存儲單元中。N為字節(jié)型,可取1~255的正數(shù)。(三)存儲器填充指令七、程序控制指令(一)有/無條件結(jié)束(END/MEND)指令有條件結(jié)束(END)指令,當條件滿足時結(jié)束主程序,并返回主程序的第一條指令執(zhí)行。無條件結(jié)束(MEND)指令,直接連接母線。程序執(zhí)行到此指令時,無條件結(jié)束主程序,并返回第一條指令。
STEP7-Micro/WIN32編程軟件自動在主程序結(jié)束時加上一個無條件結(jié)束(MEND)指令。(二)暫停(STOP)指令停止指令STOP可使PLC從運行模式進入停止模式,立即停止程序的執(zhí)行。如果在中斷程序中執(zhí)行停止指令,中斷程序立即終止,并忽略全部等待執(zhí)行的中斷,繼續(xù)執(zhí)行主程序的剩余部分,并在主程序的結(jié)束處,完成從運行方式至停止方式的轉(zhuǎn)換。(三)監(jiān)視定時器復位(WDR)指令
(1)為了保證系統(tǒng)可靠運行,PLC內(nèi)部設(shè)置了系統(tǒng)監(jiān)視定時器(WDT),用于監(jiān)視掃描周期是否超時。每當掃描到WDT定時器時,WDT定時器將復位。(2)WDT定時器有一設(shè)定值(100~300ms),系統(tǒng)正常工作時,所需掃描時間小于WDT的設(shè)定值,WDT定時器及時復位。系統(tǒng)故障情況下,掃描時間大于WDT設(shè)定值,該定時器不能及時復位,則報警并停止CPU運行,同時復位輸入、輸出。這種故障稱為WDT故障,以防止因系統(tǒng)故障或程序進入死循環(huán)而引起的掃描周期過長。(3)系統(tǒng)正常工作時,有時會因為用戶程序過長或使用中斷指令、循環(huán)指令使掃描時間過長而超過WDT定時器的設(shè)定值,為防止這種情況下WDT動作,可使用監(jiān)視定時器復位指令(WDR),使WDT定時器復位。
(四)跳轉(zhuǎn)與標號指令跳轉(zhuǎn)指令包括:跳轉(zhuǎn)指令JMP和標號指令LBL。當條件滿足時,跳轉(zhuǎn)指令JMP使程序轉(zhuǎn)到對應的標號LBL處,標號指令用來表示跳轉(zhuǎn)的目的地址。
JMP與LBL指令中的操作數(shù)n為常數(shù)0~255。JMP和對應的LBL指令必須在同一程序塊中。(五)循環(huán)指令(FOR,NEXT)
FOR指令表示循環(huán)的開始,NEXT指令表示循環(huán)的結(jié)束。當驅(qū)動FOR指令的邏輯條件滿足時,反復執(zhí)行FOR和NEXT之間的程序。在FOR指令中,需要設(shè)置指針或當前循環(huán)次數(shù)計數(shù)器(INDX),初始值(INIT)和終值(FINAL)。
例題:有3臺電動機M1~M3,具有兩種起停工作方式:1)手動操作方式:分別用每個電動機各自的起停按鈕控制M1~M3的起停狀態(tài)。2)自動操作方式:按下起動按鈕,M1~M3每隔5s依次起動;按下停止按鈕,M1~M3同時停止。
JMP、LBL指令在工業(yè)現(xiàn)場控制中,常用于工作方式的選擇
2重循環(huán)程序
1、各參數(shù)復位,置初值INIT和終值FINAL,并將初值拷貝到INDX中;如果計數(shù)器大于終值,循環(huán)結(jié)束。2、問SBR_0子程序執(zhí)行多少次?(六)子程序子程序在結(jié)構(gòu)化程序設(shè)計中是一種方便有效的工具。S7-200PLC的指令系統(tǒng)具有簡單、方便、靈活的子程序調(diào)用功能。與子程序有關(guān)的操作有:建立子程序、子程序的調(diào)用和返回。1、子程序調(diào)用指令CALL
在使能輸入有效時,主程序把程序控制權(quán)交給子程序。2、子程序條件返回指令CRET
在使能輸入有效時,結(jié)束子程序的執(zhí)行,返回主程序中。
軟件為每個子程序自動加入無條件返回(RET)指令。八、中斷指令所謂中斷,是當控制系統(tǒng)執(zhí)行正常程序時,系統(tǒng)中出現(xiàn)了某些急需處理的異常情況或特殊請求,這時系統(tǒng)暫時中斷當前程序,轉(zhuǎn)去對隨機發(fā)生的緊迫事件進行處理(執(zhí)行中斷服務程序),當該事件處理完畢后,系統(tǒng)自動回到原來被中斷的程序繼續(xù)執(zhí)行。(一)全局中斷允許/禁止指令全局中斷允許指令ENI,允許所有被連接的中斷事件。全局中斷禁止指令DISI,禁止處理所有的中斷事件。CPU進入RUN運行模式時自動禁止所有中斷。在RUN運行模式中執(zhí)行ENI指令后,允許所有中斷。中斷連接指令ATCH,用來建立某個中斷事件(EVNT)和某個中斷程序(INT)之間的聯(lián)系。并允許這個中斷事件。(二)中斷連接/分離指令
中斷分離指令DTCH,用來解除某個中斷事件(EVNT)和某個中斷程序(INT)之間的聯(lián)系。并禁止該中斷事件。在調(diào)用一個中斷程序前,必須用中斷連接指令,建立某中斷事件與中斷程序的連接。(三)中斷返回指令條件返回指令CRETI,RETI根據(jù)前面邏輯條件決定是否返回。無條件返回指令RETI,是中斷服務程序必備的結(jié)束指令,編程軟件自動在中斷程序結(jié)尾加上RETI指令。INTERRUPT4表5-10按優(yōu)先級排列的中斷事件INT——中斷程序名稱EVNT——中斷事件號(四)中斷的分類1、通信口中斷2、I/O中斷I/O中斷包含了上升沿或下降沿中斷、高速計數(shù)器中斷和脈沖串輸出中斷。3、時基中斷時基中斷包括定時中斷和定時器T32/T96中斷。定時中斷以1ms為周期增量,周期時間可為1~255ms。定時中斷0、定時中斷1把周期時間分別寫入特殊存儲器SMB34、SMB35。定時器T32/T96中斷(TON和TOF),在給定時間間隔到達時產(chǎn)生中斷。定時中斷采集模擬量程序例//首次掃描時SM0.1位打開,用于調(diào)用初始化子例行程序//當系統(tǒng)處于RUN模式時,SM0.0始終打開,100毫秒放入特/殊內(nèi)存字節(jié)SMB34//調(diào)用中斷程序//全局性啟用中斷//模擬量輸入映像寄存器AIW2的值裝入VW100例:噴泉的模擬控制參考程序,噴泉模擬控制的移位時間為0.5s,大于定時中斷0的最大定時時間設(shè)定值255ms
。主程序INT_0九、PID回路指令(一)PID算法離散化保留積分項前值——PID回路輸出的初值為使系統(tǒng)達到穩(wěn)態(tài),應讓偏差e趨于零。比例環(huán)節(jié):控制系統(tǒng)的穩(wěn)態(tài)精度;
積分環(huán)節(jié):作用是消除穩(wěn)態(tài)誤差,提高控制精度;微分環(huán)節(jié):減少超調(diào)量,改善動態(tài)性能。-在第n-1采用時刻的積分項1、比例項:MPn是增益KC和偏差e的乘積。2、積分項:MIn與偏差的和成正比。3、微分項:MDn與偏差的變化成正比。(二)PID回路指令
TBL是回路表起始地址,只能使用字節(jié)VB區(qū)域。LOOP是回路號,為字節(jié)常量0~7;程序中可使用8條PID指令。表5-11回路表格式(三)控制方式執(zhí)行PID指令時為“自動”運行方式;當輸入端檢測到一個正跳變(從0到1)信號,PID回路就從手動方式無擾動地切換到自動方式,并進行組態(tài):(1)置給定值SPn=過程變量PVn(2)置過程變量前值PVn-1=過程變量當前值PVn(3)置積分項前值MX=輸出值Mn(四)回路輸入輸出變量的數(shù)值轉(zhuǎn)換1、回路輸入變量的轉(zhuǎn)換和標準化(1)回路輸入變量的數(shù)據(jù)轉(zhuǎn)換:把A/D模擬量單元輸出的整數(shù)值轉(zhuǎn)換成標準的浮點型實數(shù)。
ITDAIW0,AC0DTRAC0,AC0(2)實數(shù)值的標準化:把實數(shù)值標準化為0.0~1.0之間的實數(shù)。雙極性模擬量信號:-5~+5V,-2.5~2.5V等,對應雙極性數(shù)據(jù)程范圍為-32000~32000。單極性模擬量信號:0~5V,4~20mA等,對應單極性數(shù)據(jù)范圍為0~32000。/R64000.0,AC0+R0.5,AC0MOVRAC0,VD1002、回路輸出變量的數(shù)據(jù)轉(zhuǎn)換(1)回路輸出變量的刻度化:把回路輸出的標準化實數(shù)轉(zhuǎn)換成實數(shù)。MOVRVD108,AC0-R0.5,AC0*R64000.0,AC0(2)將實數(shù)轉(zhuǎn)換為整數(shù)(INT):把回路輸出變量的刻度值轉(zhuǎn)換成整數(shù)(INT)。ROUNDAC0,AC0DTIAC0,AC0MOVWAC0,AQW0(六)選擇回路控制類型
在很多控制系統(tǒng)中,有時只采用一種或兩種控制回路。例如,可能只要求比例控制回路或比例和積分控制回路。通過設(shè)置常量參數(shù)值選擇所需的控制回路。(1)如果只需要比例、微分回路控制,可以把積分時間常數(shù)設(shè)為無窮大。(2)如果只需要比例、積分回路控制,可以把微分時間常數(shù)設(shè)為零。(3)如果只需要積分或積分微分回路控制,可以把回路增益KC設(shè)為0.0,在計算機積分項和微分項時,系統(tǒng)把回路增益KC當作1.0。(八)PID指令編程舉例
某水箱需要維持一定的水位,該水箱里的水以變化的流速流出。這就需要有一個水泵以變化的速度給水箱供水以維持水位(滿水位的75%)不變,這樣才能使水箱不斷水。
本系統(tǒng)選擇比例和積分控制,初步確定的回路增益和時間常數(shù)為:KC=0.25,TS=0.1s,TI=30min,TD=0。(2)程序結(jié)構(gòu)由主程序,子程序,中斷程序構(gòu)成。(1)I/O分配手動/自動切換開關(guān)I0.0模擬量輸入AIW0模擬量輸出AQW0地址參數(shù)數(shù)值VB100過程變量當前值PVn水位檢測計提供的模擬量經(jīng)A/D轉(zhuǎn)換后的標準化數(shù)值VB104給定值SPn0.75VB108輸出值MnPID回路的輸出值(標準化數(shù)值)VB112增益Kc0.25VB116采樣時間Ts0.1VB120積分時間TI30.0VB124微分時間Td0(關(guān)閉微分作用)VB128上一次積分值Mx根據(jù)PID運算結(jié)果更新VB132上一次過程變量PVn-1最近一次PID的變量值MAIN調(diào)用初始化子程序設(shè)定時中斷0的時間間隔為100ms允許中斷子程序建立PID回路初始參數(shù)表和設(shè)置中斷INT_0在自動方式下執(zhí)行PID指令執(zhí)行PID運算,I0.0=1時,執(zhí)行PID運算十、高速計數(shù)器指令高速計數(shù)器脫離主機的掃描周期而獨立計數(shù),它對脈寬小于主機掃描周期的高速脈沖準確計數(shù)。(一)高速計數(shù)器指令定義高速計數(shù)器(HDEF)指令,為指定的高速計數(shù)器(HSCx)選定一種工作模式。HSC是高速計數(shù)器編號(0~5);MODE是工作模式(0~11)。高速計數(shù)器(HSC)指令用來激活高速計數(shù)器,N為計數(shù)器號(0~5)。說明:高速計數(shù)器裝入預置值
溫馨提示
- 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屆山東省德州臨邑縣聯(lián)考中考生物模擬試題含解析
- 2025年珠寶首飾銷售年度合同模板3篇
- 深圳2025年度物流服務合作協(xié)議2篇
- 2025年物業(yè)租賃合同變更擔保合同正規(guī)范范本3篇
- 2025年上半年邵陽市交通建設(shè)規(guī)劃辦公室招考易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年上半年連云港市工業(yè)投資集團社會招聘易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年上半年遼寧省阜新彰武縣高中招聘高學歷人才20人易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年上半年遼寧省丹東事業(yè)單位招728人筆試重點基礎(chǔ)提升(共500題)附帶答案詳解-1
- 2025年上半年遼寧朝陽市市直事業(yè)單位招考128人易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年上半年赤壁市市屬國企業(yè)招碩引博易考易錯模擬試題(共500題)試卷后附參考答案
- 小學一年級20以內(nèi)加減法混合運算3000題(已排版)
- 智慧工廠數(shù)字孿生解決方案
- 病機-基本病機 邪正盛衰講解
- 品管圈知識 課件
- 非誠不找小品臺詞
- 2024年3月江蘇省考公務員面試題(B類)及參考答案
- 患者信息保密法律法規(guī)解讀
- 老年人護理風險防控PPT
- 充電樁采購安裝投標方案(技術(shù)方案)
- 醫(yī)院科室考勤表
- 鍍膜員工述職報告
評論
0/150
提交評論