




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第5章S7-200PLC的指令系統(tǒng)1第5章S7-200PLC的指令系統(tǒng)
學(xué)習(xí)目標(biāo):
熟練掌握梯形圖和語句表的編程方法,掌握基本指令和功能指令中的常用指令,了解和會用其他指令。通過對本章的學(xué)習(xí),做到可以根據(jù)需要編制出結(jié)構(gòu)較復(fù)雜的控制程序。2第5章S7-200PLC的指令系統(tǒng)
教學(xué)內(nèi)容:
5.1S7-200PLC編程基礎(chǔ)
5.2S7-200PLC的基本指令及編程方法
5.3S7-200PLC的功能指令及編程方法35.2S7-200PLC的基本指令及編程方法
S7-200PLC的基本指令多屬于邏輯指令,用于開關(guān)量的邏輯控制,本節(jié)著重介紹梯形圖指令和語句表指令,并討論基本指令的功能及編程方法。
編程時,應(yīng)注意各操作數(shù)的數(shù)據(jù)類型及數(shù)值范圍。對每個操作指令來說,只能對某些指定數(shù)據(jù)類型進(jìn)行操作。即便允許使用某種操作數(shù)據(jù)類型,也不是所有此類數(shù)據(jù)類型的單元都可以訪問和使用。否則CPU對非法操作數(shù)將生成編譯錯誤代碼。有關(guān)S7-200CPU模塊操作數(shù)的范圍如表5-5所示。返回操作數(shù)的數(shù)據(jù)類型,如:位操作指令只能對位變量處理,bit型。操作數(shù)的數(shù)值范圍,如:累加器,只能訪問有權(quán)訪問的字或字節(jié)單元45.2.1基本邏輯指令基本邏輯指令,在語句表語言中是指對位存儲單元的簡單邏輯運(yùn)算,在梯形圖中是指對觸點(diǎn)的簡單連接和對標(biāo)準(zhǔn)線圈的輸出。
S7-200PLC使用一個邏輯堆棧來分析控制邏輯。用語句表編程時,對位存儲單元數(shù)據(jù)的存取、邏輯運(yùn)算都是在堆棧中進(jìn)行的。所以選擇語句表編程時,進(jìn)行位運(yùn)算要考慮主機(jī)內(nèi)部存儲結(jié)構(gòu)。
用梯形圖和功能框圖時,程序員不必考慮主機(jī)的這一邏輯,這兩種編程工具自動地插入必要的指令來處理各種堆棧邏輯操作。(LAD編程的方便之處)返回梯形圖中的并聯(lián)連接-對應(yīng)-語句表中的或邏輯運(yùn)算梯形圖中的串聯(lián)連接-對應(yīng)-語句表中的與邏輯運(yùn)算梯形圖中的線圈輸出-對應(yīng)-語句表中的=號55.2.1基本邏輯指令邏輯堆棧結(jié)構(gòu):由九個堆棧存儲器位串聯(lián)組成。堆棧存取特點(diǎn):后進(jìn)先出。進(jìn)棧時,數(shù)據(jù)由堆棧頂部壓入,堆棧中原來所存的數(shù)據(jù)被串行下移一格。如果原來STACK8中存有數(shù)據(jù),則這數(shù)據(jù)被推出堆棧而自動丟失。出棧時,數(shù)據(jù)從棧頂部被取出,所有數(shù)據(jù)串行上移一格,STACK8中隨機(jī)地裝入一個數(shù)值。表5-6S7-200的主機(jī)邏輯堆棧結(jié)構(gòu)堆棧結(jié)構(gòu)名稱說明S0STACK0第一個堆棧
S1STACK1第二個堆棧S2STACK2第三個堆棧S3STACK3第四個堆棧S4STACK4第五個堆棧S5STACK5第六個堆棧S6STACK6第七個堆棧S7STACK7第八個堆棧S8STACK8第九個堆棧棧頂堆疊棧頂是數(shù)據(jù)進(jìn)出堆棧的必由之路。65.2.1基本邏輯指令棧頂?shù)睦奂悠髯饔茫簵m擲TACK0在此邏輯堆棧的位運(yùn)算中兼有累加器的作用,存放第一操作數(shù)。對于簡單邏輯指令,通常是進(jìn)棧操作和一些最簡單的位運(yùn)算,這些運(yùn)算是棧頂與第二個堆棧的內(nèi)容進(jìn)行與、或、非等邏輯運(yùn)算。對于復(fù)雜邏輯指令,可以在堆棧中的其他數(shù)據(jù)位直接進(jìn)行運(yùn)算,結(jié)果經(jīng)棧頂彈出。基本邏輯指令包括:標(biāo)準(zhǔn)觸點(diǎn)指令、正負(fù)跳變指令、置位和復(fù)位指令等,主要是與位相關(guān)的輸入輸出及觸點(diǎn)的簡單連接。71.標(biāo)準(zhǔn)觸點(diǎn)指令1.標(biāo)準(zhǔn)觸點(diǎn)指令1)LDbit:裝入常開觸點(diǎn)(LoaD)2)LDNbit:裝入常閉觸點(diǎn)(LoaDNot)3)Abit:與常開觸點(diǎn)(And)4)ANbit:與常閉觸點(diǎn)(AndNot)。5)Obit:或常閉觸點(diǎn)(Or)6)ONbit:或常閉觸點(diǎn)(OrNot)7)NOT:觸點(diǎn)取非(Not)8)=bit:輸出指令標(biāo)準(zhǔn)觸點(diǎn)指令,在邏輯堆棧中對存儲器位(bit)進(jìn)行操作85.2.1基本邏輯指令LDI0.0//
裝入常開觸點(diǎn)(網(wǎng)絡(luò)的起始點(diǎn))OI0.1
//
或常開觸點(diǎn)(并聯(lián)常開觸點(diǎn))AI0.2
//與常開觸點(diǎn)(串聯(lián)常開觸點(diǎn))=Q0.0
//輸出觸點(diǎn),
//如果本梯級中將I0.1的觸點(diǎn)改
//為Q0.0的常開觸點(diǎn),則成為電
//機(jī)起動停止控制環(huán)節(jié)的梯形圖
LDNI0.0//裝入常閉觸點(diǎn)(網(wǎng)絡(luò)的起始點(diǎn))ONI0.1
//或常閉觸點(diǎn)(并聯(lián)常閉觸點(diǎn))ANI0.2
//與常閉觸點(diǎn)(串聯(lián)常閉觸點(diǎn))=Q0.1
//
輸出觸點(diǎn)
LDI0.0//OI0.1//AI0.2//NOT
//取非,即輸出反相,使用反邏輯=Q0.3//標(biāo)準(zhǔn)觸點(diǎn)LAD和STL例梯形圖中的并聯(lián)連接-對應(yīng)-語句表中的或邏輯運(yùn)算梯形圖中的串聯(lián)連接-對應(yīng)-語句表中的與邏輯運(yùn)算梯形圖中的線圈輸出-對應(yīng)-語句表中的=號95.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
標(biāo)準(zhǔn)觸點(diǎn)FBD例在功能圖中,常閉觸點(diǎn)的裝入或串并聯(lián),用指令模塊的對應(yīng)輸入端加圓圈來表示105.2.1基本邏輯指令LD、LDN、A、AN、O、ON指令的執(zhí)行對邏輯堆棧的影響:指令LDI0.1(假設(shè)I0.1=1)執(zhí)行情況如表所示。如果是LDN指令,則將操作數(shù)取反后再裝入棧頂,其他操作相同。
名稱執(zhí)行前執(zhí)行后說明STACK0S01將新值I0.1=1裝入堆棧
STACK1S1S0由S0下移一個單元得到
STACK2S2S1由S1下移一個單元得到STACK3S3S2由S2下移一個單元得到STACK4S4S3由S3下移一個單元得到STACK5S5S4由S4下移一個單元得到STACK6S6S5由S5下移一個單元得到STACK7S7S6由S6下移一個單元得到STACK8S8S7由S7下移一個單元得到原值S0串行下移一個單元,其余以此類推。
原S8自動丟失。
115.2.1基本邏輯指令指令A(yù)I0.2(假設(shè)I0.2=0)執(zhí)行情況如表5-8所示。如果是AN指令,則將操作數(shù)取反后再和棧頂值相與,結(jié)果放回棧頂。即:1*1=1→S0
名稱執(zhí)行前執(zhí)行后說明STACK010執(zhí)行前棧頂值為1。執(zhí)行是用棧頂值和指令操作數(shù)(I0.2的值為0)進(jìn)行與運(yùn)算,結(jié)果放回棧頂。即:S0*I0.2=1*0=0→S0STACK1S1S1STACK2S2S2STACK3S3S3STACK4S4S4STACK5S5S5STACK6S6S6STACK7S7S7STACK8S8S8除S0值外,其他各值不變.125.2.1基本邏輯指令1.標(biāo)準(zhǔn)觸點(diǎn)指令
由于堆棧存儲單元數(shù)的限制,所以梯形圖中,最多一次串聯(lián)或并聯(lián)的觸點(diǎn)數(shù)有一定限制;語句表中,A、O、AN、ON指令最多可以連用有限次;功能框圖中,AND和OR指令模塊中輸入的個數(shù)也有限制
標(biāo)準(zhǔn)觸點(diǎn)指令中如果有操作數(shù),則為BOOL型,操作數(shù)的編址范圍可以是:I、Q、M、SM、T、C、S、V、L。
返回135.2.1基本邏輯指令程序執(zhí)行的時序圖如圖5-11所示。
圖5-11
時序圖
由于取非指令NOT緣故,Q0.0與Q0.3反相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//145.2.1基本邏輯指令(2)負(fù)跳變指令:ED
負(fù)跳變觸點(diǎn)檢測到脈沖的每一次負(fù)跳變后,產(chǎn)生一個掃描周期寬度的微分脈沖。
指令格式:ED(無操作數(shù))圖5-12
正、負(fù)跳變觸點(diǎn)指令編程一個掃描周期長度
正跳變觸點(diǎn)檢測到脈沖的每一次正跳變后,產(chǎn)生一個掃描周期寬度的微分脈沖。
指令格式:EU(無操作數(shù))
(1)正跳變指令:EU
2.正負(fù)跳變指令:用于檢測脈沖的正或負(fù)跳變(上升或下降沿),并產(chǎn)生一個掃描周期寬度脈沖,觸發(fā)內(nèi)部繼電器線圈。155.2.1基本邏輯指令3.置位和復(fù)位指令
置位即置1,復(fù)位即置0。置位和復(fù)位指令可以將位存儲區(qū)的某一位開始的一個或多個(最多可達(dá)255個)同類存儲器位置1或置0。這兩條指令在使用時需指明三點(diǎn):操作性質(zhì)、開始位和位的數(shù)量。各操作數(shù)類型及范圍如表5-9所示。
表5-9
置位和復(fù)位指令操作數(shù)類型及范圍
操作數(shù)范圍
類型
位bitI,Q,M,SM,T,C,V,S,LBOOL型
數(shù)量NVB,IB,QB,MB,SMB,LB,SB,AC,*VD,*AC,*LD,常數(shù)BYTE型(最大255)165.2.1基本邏輯指令(1)置位指令:S
將位存儲區(qū)的指定位(bit)開始的N個同類存儲器位置位。指令格式:Sbit,N;例:SQ0.0,1(2)復(fù)位指令:R
將位存儲區(qū)的指定位(bit)開始的N個同類存儲器位復(fù)位。指令格式:Rbit,N;例:RQ0.2,
3
返回175.2.1基本邏輯指令
在語句表(STL)中,當(dāng)棧頂值為1時,才能執(zhí)行置位指令S或復(fù)位指令R。置位后即使棧頂值變?yōu)?,仍保持置位;復(fù)位后即使棧頂值變?yōu)?,仍保持復(fù)位。可見這兩條指令均有“記憶”功能。置位和復(fù)位指令應(yīng)用編程序舉例:電動機(jī)啟動、停止控制。
圖5-13置位、復(fù)位指令185.2.2立即操作指令立即指令允許對輸入和輸出點(diǎn)進(jìn)行快速和直接存取。當(dāng)用立即指令讀取輸入點(diǎn)的狀態(tài)時,相應(yīng)的輸入映像寄存器中的值并未發(fā)生更新;用立即指令訪問輸出點(diǎn)時,訪問的同時,相應(yīng)的輸出寄存器的內(nèi)容也被刷新。只有輸入繼電器I和輸出繼電器Q可以使用立即指令。
返回(1)LDI、LDNI、AI、ANI、OI和ONI立即觸點(diǎn)指令(2)=I,立即輸出指令(3)SI,立即置位指令(4)RI,立即復(fù)位指令在每個標(biāo)準(zhǔn)觸點(diǎn)指令的后面加“I”19指令名稱指令格式示例說明立即觸點(diǎn)指令LDIbitLDI、LDNI、AI、ANI、OI和ONIbit只能是I類型LDII0.2指令執(zhí)行時,立即讀取物理輸入點(diǎn)的值,但是不刷新對應(yīng)映像寄存器的值。立即輸出指令=Ibitbit只能是Q類型(訪問輸出點(diǎn))=IQ0.2把棧頂值立即復(fù)制到指令所指定的物理輸出點(diǎn),同時,相應(yīng)的輸出映像寄存器的內(nèi)容也被刷新立即置位指令SIbit,Nbit只能是Q類型(訪問輸出點(diǎn))SIQ0.0, 2從指令所指出的位(bit)開始的N個(最多為128個)物理輸出點(diǎn)被立即置位,同時,相應(yīng)的輸出映像寄存器的內(nèi)容也被刷新立即復(fù)位指令RIbit,Nbit只能是Q類型(訪問輸出點(diǎn))RIQ0.0,1從指令所指出的位(bit)開始的N個(最多為128個)物理輸出點(diǎn)被立即復(fù)位,同時,相應(yīng)的輸出映像寄存器的內(nèi)容也被刷新。表5-10立即置位和立即復(fù)位指令的操作數(shù)類型及范圍操作數(shù)范圍
類型
位bitQBOOL型
數(shù)量NVB,IB,QB,MB,SMB,LB,SB,AC,*VD,*AC,*LD,常數(shù)
BYTE型(最大128)205.2.2立即操作指令應(yīng)用舉例:
LDI0.0//裝入常開觸點(diǎn)
=Q0.0//輸出觸點(diǎn),非立即
=IQ0.1//立即輸出觸點(diǎn)
SIQ0.2,1//從Q0.2開始的1個觸點(diǎn)被立即置1
LDII0.0//立即輸入觸點(diǎn)指令
=Q0.3//輸出觸點(diǎn),非立即圖5-14
立即指令程序215.2.2立即操作指令Q0.3在上一周期n立即指令執(zhí)行時置1Q0.1I0.0Q0.0Q0.3Q0.2輸出刷新輸入掃描程序執(zhí)行輸出刷新輸入掃描程序執(zhí)行輸出刷新輸入掃描程序執(zhí)行輸出刷新輸入掃描程序執(zhí)行掃描周期n+1掃描周期n+3掃描周期n+2掃描周期nI0.0在上一掃描周期n某時跳變Q0.0在本周期n+1輸出刷新時置1Q0.1與Q0.2在本周期n+1立即指令執(zhí)行時置1LDI0.0=Q0.0=IQ0.1SIQ0.2,1LDII0.0=Q0.3立即指令時序圖一般輸入、輸出指令,只有等到輸入掃描、輸出刷新時才得到執(zhí)行。立即操作指令,是該程序語句執(zhí)行的那一刻立即得到執(zhí)行。225.2.3
復(fù)雜邏輯指令
基本邏輯指令涉及可編程元件的觸點(diǎn)和線圈的簡單連接,不能表達(dá)在梯形圖中觸點(diǎn)的復(fù)雜連接結(jié)構(gòu)。復(fù)雜邏輯指令主要用來描述對觸點(diǎn)進(jìn)行的復(fù)雜連接,同時,它們對邏輯堆棧也可以實(shí)現(xiàn)非常復(fù)雜的操作。簡單連接復(fù)雜連接235.2.3
復(fù)雜邏輯指令
1.
棧裝載與指令A(yù)LD
2.
棧裝載或指令
OLD3.
邏輯推入棧指令LPS
4.
邏輯彈出棧指令LPP
5.
邏輯讀棧指令LRD6.
裝入堆棧指令LDSN返回這些指令中除
LDS
外,其余指令都無操作數(shù)245.2.3
復(fù)雜邏輯指令1.棧裝載與指令(與塊)
ALD在梯形圖中,用于將并聯(lián)電路塊進(jìn)行串聯(lián)連接。在語句表中,執(zhí)行ALD指令:將堆棧中的第一級和第二級的值進(jìn)行邏輯“與”操作,結(jié)果置于棧頂(堆棧第一級),并將堆棧中的第三級至第九級的值依次上彈一級。255.2.3
復(fù)雜邏輯指令2.棧裝載或指令
OLD在梯形圖中,用于將串聯(lián)電路塊進(jìn)行并聯(lián)連接。在語句表中,執(zhí)行OLD指令:將堆棧中的第一級和第二級的值進(jìn)行邏輯“或”操作,結(jié)果置于棧頂(堆棧第一級),并將堆棧中其余各級的內(nèi)容依次上彈一級。
265.2.3
復(fù)雜邏輯指令
棧裝載與指令A(yù)LD和棧裝載或指令OLD
的操作過程如圖5-16所示,圖中“x”表示不確定值。
圖5-16
棧裝載與指令和棧裝載或指令的操作過程
27圖5-17LPS、LRD、LPP、LDS指令的操作過程這里n=3LPS與LPP必須配對使用LPS(亦稱:分支或主控指令):用于復(fù)制棧頂?shù)闹挡⑦@個值推入棧頂,原堆棧中各級棧值依次下壓一級。在梯形圖中的分支結(jié)構(gòu)中,用于生成一條新的母線,左側(cè)為主控邏輯塊時,第一個完整的從邏輯行從此處開始。
LPP(亦稱:分支結(jié)束或主控復(fù)位指令):將棧頂值彈出,原堆棧中各級棧值依次上彈一級,堆棧第二級的值成為新的棧頂值。在梯形圖中的分支結(jié)構(gòu)中,用于將LPS指令生成的一條新母線進(jìn)行恢復(fù)。LRD:把堆棧中第二級的值復(fù)制到棧頂。堆棧沒有推入棧或彈出棧操作。在梯形圖中的分支結(jié)構(gòu)中,當(dāng)左側(cè)為主控邏輯塊時,開始第二個和后邊更多的從邏輯塊。應(yīng)注意,LPS后第一個和最后一個從邏輯塊不用本指令。LDS:復(fù)制棧中的第n級的值到棧頂。原棧中各級棧值依次下壓一級,棧底值丟失。285.2.3
復(fù)雜邏輯指令應(yīng)用舉例:
LDI0.0//裝入常開觸點(diǎn)OI2.2//或常開觸點(diǎn)LDI0.1//被串的塊開始LDI2.0//被并路開始AI2.1//與常開觸點(diǎn)OLD//棧裝載或,并路結(jié)束ALD//棧裝載與,串路結(jié)束=Q5.0//輸出觸點(diǎn)LDI0.0//裝入常開觸點(diǎn)LPS//邏輯推入棧,主控觸點(diǎn)AI0.5//與常開觸點(diǎn)=Q7.0//輸出觸點(diǎn)LRD//邏輯讀棧,新母線LDI2.1//裝入常開觸點(diǎn)OI1.3//或常開觸點(diǎn)ALD//棧裝載與=Q6.0//輸出觸點(diǎn)LPP//邏輯彈出棧,母線復(fù)原LDI3.1//裝入常開出觸點(diǎn)OI2.0//或常開觸點(diǎn)ALD//棧裝載與=Q1.3//輸出觸點(diǎn)圖5-18
復(fù)雜邏輯指令的應(yīng)用
返回LPS后第一和最后一個從邏輯塊不用LRD指令295.2.4取非觸點(diǎn)指令和空操作指令
1.取非觸點(diǎn)指令
NOT用來改變能流的狀態(tài)。能流到達(dá)取非觸點(diǎn)時,能流就停止;能流未到達(dá)取非觸點(diǎn)時,能流就通過。在語句表中,取非觸點(diǎn)指令對堆棧的棧頂作取反操作,改變棧頂值。棧頂值由0變?yōu)?,或者由1變?yōu)?。取非觸點(diǎn)指令無操作數(shù)。
圖5-19
取非觸點(diǎn)指令編程
返回305.2.4取非觸點(diǎn)指令和空操作指令2.空操作指令
NOP,空操做指令。使能輸入有效時,執(zhí)行空操作指令。空操做指令不影響用戶程序的執(zhí)行,操作數(shù)N是標(biāo)號,是一個0~225的常數(shù)。LDI0.0//使能輸入NOP30//空操作指令,標(biāo)號為30
圖5-20
空操作指令編程
315.2.5定時器和計(jì)數(shù)器指令
1.定時器指令
系統(tǒng)提供3種定時指令:TON(通電延時)、TONR(有記憶通電延時)和TOF(斷電延時)。S7-200定時器的分辨率(時間增量/時間單位/分辨率)有3個等級:1ms、10ms和100ms,分辨率等級和定時器號關(guān)系如表5-11所示。返回325.2.5定時器和計(jì)數(shù)器指令表5-11
定時器號和分辨率定時器類型分辯率/ms計(jì)時范圍/s定時器號TONTOF132.767T32,T9610327.67T33~T36,T97~T1001003276.7T37~T63,T101~T255TONR132.767T0,T6410327.67T1~T4,T65~T681003276.7T5~T31,T69~T95定時時間的計(jì)算:T=PT?S???(T為實(shí)際定時時間,PT為預(yù)設(shè)值,S為分辨率等級)例如:TON指令用定時器T33,預(yù)設(shè)值為125,則實(shí)際定時時間
T=125?10=1250ms335.2.5定時器和計(jì)數(shù)器指令定時器指令操作數(shù)有3個:編號、預(yù)設(shè)值和使能輸入。1)編號:用定時器的名稱和它的常數(shù)編號(最大255)來表示,即:Txxx,如:T4。含義:T4編號,還包含兩方面的變量信息:定時器位和定時器當(dāng)前值。定時器位:定時器位與時間繼電器的輸出相似,當(dāng)定時器的當(dāng)前值達(dá)到預(yù)設(shè)值PT時,該位被置為“1”。定時器當(dāng)前值:存儲定時器當(dāng)前所累計(jì)的時間,它用16位有符號整數(shù)來表示,故最大計(jì)數(shù)值為32767。2)預(yù)設(shè)值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和能流。可以用復(fù)位指令來對3種定時器復(fù)位,復(fù)位指令的執(zhí)行結(jié)果是:使定時器位變?yōu)镺FF:定時器當(dāng)前值變?yōu)?。345.2.5定時器和計(jì)數(shù)器指令(1)接通延時定時器指令:TON該指令用于單一間隔定時。上電周期或首次掃描,定時器位OFF,定時器當(dāng)前值為0,載入預(yù)設(shè)值。使能輸入接通時,定時器位為OFF,當(dāng)前值從0開始計(jì)數(shù)時間,當(dāng)前值達(dá)到預(yù)設(shè)值時,定時器位為ON,當(dāng)前值連續(xù)計(jì)數(shù)到32767。使能輸入斷開,定時器自動復(fù)位,即定時器位OFF,當(dāng)前值為0。填“計(jì)定時器號”,如:T35填“預(yù)設(shè)值”,如:100指令格式:TONTxxx,PT例:TONT35,4返回IN44T35當(dāng)前值T35定時器位最大值355.2.5定時器和計(jì)數(shù)器指令(2)有記憶接通延時定時器指令該指令用于對許多間隔的累計(jì)定時。上電周期或首次掃描,定時器位OFF,當(dāng)前值保持。使能輸入接通時,定時器位為OFF,當(dāng)前值從0開始累計(jì)計(jì)數(shù)時間。使能輸入斷開,定時器位和當(dāng)前值保持最后狀態(tài)。使能輸入再次接通時,當(dāng)前值從上次的保持值繼續(xù)計(jì)數(shù),當(dāng)累計(jì)當(dāng)前值達(dá)到預(yù)設(shè)值時,定時器位ON,當(dāng)前值連續(xù)計(jì)數(shù)到32767。
填“計(jì)定時器號”,如:T2填“預(yù)設(shè)值”,如:10TONR定時器只能用復(fù)位指令進(jìn)行復(fù)位操作,使當(dāng)前值清零。指令格式:TONRTxxx,PT
例:TONRT2,10IN410T2當(dāng)前值T2位最大值365.2.5定時器和計(jì)數(shù)器指令(3)斷開延時定時器指令該指令用于斷開后的單一間隔定時。上電周期或首次掃描,定時器當(dāng)前值為0,定時器位OFF,載入預(yù)置值PT。使能輸入接通時,當(dāng)前值為0,定時器位為ON。當(dāng)使能輸入由接通到斷開時,定時器開始計(jì)數(shù),當(dāng)前值達(dá)到預(yù)設(shè)值時,定時器位OFF,當(dāng)前值等于預(yù)設(shè)值,停止計(jì)數(shù)。TOF復(fù)位后,如果使能輸入再有從ON到OFF的負(fù)跳變,則可實(shí)現(xiàn)再次啟動。填“計(jì)定時器號”,如:T36填“預(yù)設(shè)值”,如:3指令格式:TOFTxxx,PT例:TOFT36,3IN3T36當(dāng)前值T36位最大值375.2.5定時器和計(jì)數(shù)器指令LDI0.0//使能輸入
TONT35,+4//通電延時定時器,延時時間為40ms
LDI0.0//使能輸入
TONRT2.+10//有記憶通電延時定時器,
//延時時間為100ms
LDI0.0//使能輸入
TOFT36,+3//斷電延時定時器,延時時間為30ms
(4)應(yīng)用舉例:圖5-21
定時器特性
T35為通電延時定時器T2為有記憶通電延時定時器T36為斷電延時定時器385.2.5定時器和計(jì)數(shù)器指令
上述梯形圖程序中輸入輸出執(zhí)行時序關(guān)系如圖5-22所示。
圖5-22
定時器時序
返回
使能輸入接通時,定時器位為ON,當(dāng)前值為0,預(yù)啟動。TONT35,+4TONRT2.+10TOFT36,+3使能輸入395.2.5定時器和計(jì)數(shù)器指令(5)應(yīng)用定時器指令應(yīng)注意的幾個問題
①
不能把一個定時器號同時用作斷開延時定時器(TOF)和接通延時定時器(TON)。②使用復(fù)位(R)指令對定時器復(fù)位后,定時器位為“0”,定時器當(dāng)前值為“0”。③有記憶接通延時定時器(TONR)只能通過復(fù)位指令進(jìn)行復(fù)位。④對于斷開延時定時器(TOF),需要輸入端有一個負(fù)跳變(由on到off)的輸入信號啟動計(jì)時。405.2.5定時器和計(jì)數(shù)器指令1)1ms分辨率定時器
1ms分辨率定時器啟動后,定時器對1ms的時間間隔(時基信號)進(jìn)行計(jì)時。定時器當(dāng)前值每隔1ms刷新一次,在一個掃描周期中要刷新多次,而不和掃描周期同步。
2)10ms分辨率定時器10ms分辨率定時器啟動后,定時器對10ms的時間間隔進(jìn)行計(jì)時。程序執(zhí)行時,在每次掃描周期開始對10ms定時器刷新,在一個掃描周期內(nèi)定時器當(dāng)前值保持不變。
3)100ms分辨率定時器
100ms分辨率定時器啟動后,定時器對100ms的時間間隔進(jìn)行計(jì)時。只有在定時器指令執(zhí)行時,100ms定時器的當(dāng)前值才被刷新。
⑤不同精度的定時器,它們當(dāng)前值的刷新周期是不同的,具體情況如下:415.2.5定時器和計(jì)數(shù)器指令
舉例說明:在圖5-23a中,T32定時器1ms更新一次。當(dāng)定時器當(dāng)前值100在圖示A處刷新,Q0.0可以接通一個掃描周期,若在其他位置刷新,Q0.0則用永遠(yuǎn)不會接通。而在A處刷新的概率是很小的。若改為圖5-23b,就可保證當(dāng)定時器當(dāng)前值達(dá)到設(shè)定值時,Q0.0會接通一個掃描周期。圖5-23a同樣不適合10ms分辨率定時器。
圖5-231ms定時器編程425.2.5定時器和計(jì)數(shù)器指令在子程序和中斷程序中不易使用100ms定時器。子程序和中斷程序不是每個掃描周期都執(zhí)行的,那么在子程序和中斷程序中的100ms定時器的當(dāng)前值就不能及時刷新,造成時基脈沖丟失,致使計(jì)時失準(zhǔn);在主程序中,不能重復(fù)使用同一個100ms的定時器號,否則該定時器指令在一個掃描周期中多次被執(zhí)行,定時器的當(dāng)前值在一個掃描周期中多次被刷新。這樣,定時器就會多計(jì)了時基脈沖,也造成計(jì)時失準(zhǔn)。因而,100ms定時器只能用于每個掃描周期內(nèi)同一定時器指令執(zhí)行一次,且僅執(zhí)行一次的場合。100ms定時器的編程例子如圖5-24a所示。
a)b)圖5-24100ms定時器的應(yīng)用
返回
與圖5-23a相比較,該定時器確保在此處刷新當(dāng)前值。435.2.5定時器和計(jì)數(shù)器指令2.計(jì)數(shù)器指令
計(jì)數(shù)器用來累計(jì)輸入脈沖的次數(shù)。計(jì)數(shù)器也是由集成電路構(gòu)成,是應(yīng)用非常廣泛的編程元件,經(jīng)常用來對產(chǎn)品進(jìn)行計(jì)數(shù)。計(jì)數(shù)器與定時器的結(jié)構(gòu)和使用基本相似,編程時輸入它的預(yù)設(shè)值PV(計(jì)數(shù)的次數(shù)),計(jì)數(shù)器累計(jì)它的脈沖輸入端電位上升沿(正跳變)個數(shù),當(dāng)計(jì)數(shù)器達(dá)到預(yù)設(shè)值PV時,發(fā)出中斷請求信號,以便PLC作出相應(yīng)的處理。計(jì)數(shù)器指令有3種:增計(jì)數(shù)CTU、增減計(jì)數(shù)CTUD和減計(jì)數(shù)CTD。指令操作數(shù)有4方面:編號、預(yù)設(shè)值、脈沖輸入和復(fù)位輸入。445.2.5定時器和計(jì)數(shù)器指令1)編號:用計(jì)數(shù)器名稱和它的常數(shù)編號(最大255)來表示,即Cxxx,如:C6。C6不僅僅是計(jì)數(shù)器的編號,它還包含兩方面的變量信息:計(jì)數(shù)器位和計(jì)數(shù)器當(dāng)前值。計(jì)數(shù)器位:表示計(jì)數(shù)器是否發(fā)生動作的狀態(tài),當(dāng)計(jì)數(shù)器的當(dāng)前值達(dá)到預(yù)設(shè)值PV時,該位被置為“1”。計(jì)數(shù)器當(dāng)前值:存儲計(jì)數(shù)器當(dāng)前所累計(jì)的脈沖個數(shù),它用16位符號整數(shù)(INT)來表示,故最大計(jì)數(shù)值為32767。2)預(yù)設(shè)值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和能流。
4)復(fù)位輸入:與脈沖輸入同類型和范圍。455.2.5定時器和計(jì)數(shù)器指令(1)增計(jì)數(shù)器指令:CTU首次掃描,定時器位OFF,當(dāng)前值為0。在增計(jì)數(shù)器的計(jì)數(shù)輸入端(CU)脈沖輸入的每個上升沿,計(jì)數(shù)器加1,當(dāng)前值增加1個單位,當(dāng)前值達(dá)到預(yù)設(shè)值時,計(jì)數(shù)器位ON,當(dāng)前值繼續(xù)計(jì)數(shù)到32767停止計(jì)數(shù)。復(fù)位輸入有效或執(zhí)行復(fù)位指令,計(jì)數(shù)器自動復(fù)位,即計(jì)數(shù)器位OFF,當(dāng)前值為0。
格式:CTUCxxx,PV
例:CTUC20,3填“計(jì)數(shù)器器號”,如:C30填“預(yù)設(shè)值”,如:3脈沖輸入復(fù)位輸入465.2.5定時器和計(jì)數(shù)器指令應(yīng)用舉例:LDI0.0//計(jì)數(shù)脈沖信號輸入端LDI0.1//復(fù)位信號輸入端CTUC20,+3//增計(jì)數(shù),計(jì)數(shù)設(shè)定值為3個脈沖
LDC20//裝入計(jì)數(shù)器觸點(diǎn)=Q0.0//輸出觸點(diǎn)圖5-25
增計(jì)數(shù)程序及時序
復(fù)位與計(jì)數(shù)脈沖同時有效時,優(yōu)先執(zhí)行復(fù)位。475.2.5定時器和計(jì)數(shù)器指令(2)增減計(jì)數(shù)器指令該指令有兩個脈沖輸入端:CU輸入端用于遞增計(jì)數(shù),CD輸入端用于遞減計(jì)數(shù)。首次掃描,定時器位OFF,當(dāng)前值為0。CU輸入的每個上升沿,計(jì)數(shù)器當(dāng)前值增加1個單位,CD輸入的每個上升沿,都使計(jì)數(shù)器當(dāng)前值減小1個單位,當(dāng)前值達(dá)到預(yù)設(shè)值時,計(jì)數(shù)器位ON。增減計(jì)數(shù)器計(jì)數(shù)到32767(最大值)后,下一個CU輸入的上升沿將使當(dāng)前值跳變?yōu)樽钚≈担èC32768);反之,當(dāng)前值達(dá)到最小值(–32768)時,下一個CD輸入的上升沿將使當(dāng)前值跳變?yōu)樽畲笾担?2767)。復(fù)位輸入有效或執(zhí)行復(fù)位指令,計(jì)數(shù)器自動復(fù)位,即計(jì)數(shù)器位OFF,當(dāng)前值為0。
格式:CTUDx,PV例:CTUDC30,5返回485.2.5定時器和計(jì)數(shù)器指令
LDI0.0//增計(jì)數(shù)輸入端
LDI0.1//減計(jì)數(shù)輸入端
LDI0.2//復(fù)位端
CTUDC30,+5//增減計(jì)數(shù),設(shè)定脈沖數(shù)為5
LDC30//裝入計(jì)數(shù)器觸點(diǎn)
=Q0.0//輸出觸點(diǎn)應(yīng)用舉例:圖5-26增減計(jì)數(shù)程序及時序
當(dāng)前值大于(或小于)設(shè)定值后,仍然隨計(jì)數(shù)脈沖而變化,而計(jì)數(shù)器位保持。495.2.5定時器和計(jì)數(shù)器指令(3)減計(jì)數(shù)器指令:CTD
首次掃描,定時器位OFF,當(dāng)前值為預(yù)設(shè)值PV。計(jì)數(shù)器檢測到CD輸入的每個上升沿時,計(jì)數(shù)器當(dāng)前值減小1個單位,當(dāng)前值減到0時,計(jì)數(shù)器位ON。復(fù)位輸入有效或執(zhí)行復(fù)位指令,計(jì)數(shù)器自動復(fù)位,即計(jì)數(shù)器位OFF,當(dāng)前值復(fù)位為預(yù)設(shè)值,而不是0。
指令格式:CTDCxxx,PV例:CTDC40,4505.2.5定時器和計(jì)數(shù)器指令應(yīng)用舉例:
LDI0.0//減計(jì)數(shù)脈沖輸入端
LDI0.1//復(fù)位輸入端
CTDC40,+4//減計(jì)數(shù)器,設(shè)定計(jì)數(shù)脈沖
//數(shù)為4
LDC40//裝入計(jì)數(shù)器觸點(diǎn)
=Q0.0//輸出觸點(diǎn)圖5-27
減計(jì)數(shù)程序及時序
當(dāng)前值減到0后,計(jì)數(shù)脈沖對當(dāng)前值和位都不起作用。0442233441515.2.5定時器和計(jì)數(shù)器指令(4)應(yīng)用舉例:用計(jì)數(shù)器和定時器配合增加延時時間,如圖5-28所示。通過分析可知以下程序中實(shí)際延時時間為100ms×30000×10=30000s。
圖5-28計(jì)數(shù)器應(yīng)用例LDI0.0//啟動通電延時ANM0.0//重新啟動延時TONT50,+30000//延時時間設(shè)定為3000sLDT50//延時時間到=M0.0//關(guān)定時器,產(chǎn)生一脈沖LDM0.0//每隔3000s輸入一脈沖LDNI0.0//復(fù)位輸入CTUC20,+10//增計(jì)數(shù),累計(jì)脈沖總數(shù)525.2.5定時器和計(jì)數(shù)器指令(5)應(yīng)用計(jì)數(shù)器指令應(yīng)注意的問題:①可以用復(fù)位指令來對3種計(jì)數(shù)器復(fù)位,復(fù)位指令的執(zhí)行結(jié)果是:使計(jì)數(shù)器位變?yōu)镺FF;計(jì)數(shù)器當(dāng)前值變?yōu)?(CTD變?yōu)轭A(yù)設(shè)值PV)。②在一個程序中,同一個計(jì)數(shù)器編號只能使用一次。③脈沖輸入和復(fù)位輸入同時有效時,優(yōu)先執(zhí)行復(fù)位操作。535.2.6順序控制繼電器指令S7-200CPU含有256個順序控制繼電器(SCR)用于順序控制。S7-200包含順序控制指令,可以模仿控制進(jìn)程的步驟,對程序邏輯分段;可以將程序分成單個流程的順序步驟,也可同時激活多個流程;可以使單個流程有條件地分成多支單個流程,也可以使多個流程有條件地重新匯集成單個流程。從而對一個復(fù)雜的工程可以十分方便地編制控制程序。
系統(tǒng)提供3個順序控制指令:順序控制開始指令(LSCR)、順序控制轉(zhuǎn)移指令(SCRT)和順序控制結(jié)束指令(SCRE)。
返回545.2.6順序控制繼電器指令1.順序繼電器指令(1)段開始指令:LSCR
(2)段結(jié)束指令:SCRE(3)段轉(zhuǎn)移指令:SCRT
定義一個順序控制繼電器段的開始。操作數(shù)為順序控制繼電器位Sx.y,Sx.y作為本段的段標(biāo)志位。當(dāng)Sx.y位為1時,允許該SCR段工作。該指令用來實(shí)現(xiàn)本段與另一段之間的切換。操作數(shù)為順序控制繼電器位Sx.y,Sx.y是下一個SCR段的標(biāo)志位。當(dāng)使能輸入有效時,一方面對Sx.y置位,以便讓下一個SCR段開始工作,另一方面同時對本SCR段的標(biāo)志位復(fù)位,以便本段停止工作。一個SCR段必須用該指令來結(jié)束。返回555.2.6順序控制繼電器指令2.使用順序繼電器指令的限制
只能使用順序控制繼電器位作為段標(biāo)志位。一個順序控制繼電器位Sx.y在程序中只能使用一次。在一個SCR段中不能出現(xiàn)跳入、跳出或段內(nèi)跳轉(zhuǎn)等程序結(jié)構(gòu)。即在段中不能使用JMP和LBL指令。同樣,在一個SCR段中不允許出現(xiàn)循環(huán)程序結(jié)構(gòu)和條件結(jié)束,即禁止使用FOR、NEXT和END指令。指令格式:LSCRbit(段開始指令,bit
為本段標(biāo)志位)
SCRTbit(段轉(zhuǎn)移指令,bit
為下段標(biāo)志位)
SCRE(段結(jié)束指令,無操作數(shù))565.2.6順序控制繼電器指令3.順序結(jié)構(gòu)
4.程序?qū)嵗?/p>
根據(jù)舞臺燈光效果的要求,控制紅、綠、黃三色燈。要求:紅燈先亮,2s后綠燈亮,再過3s后黃燈亮。待紅、綠、黃燈全亮3min后,全部熄滅。程序如圖5-29所示。說明:每一個SCR程序段中均包含三個要素:1)輸出對象:在這一步序中應(yīng)完成的動作;2)轉(zhuǎn)移條件:滿足轉(zhuǎn)移條件后,實(shí)現(xiàn)SCR段的轉(zhuǎn)移;3)轉(zhuǎn)移目標(biāo):轉(zhuǎn)移到下一個步序。一個SCR段必須用該指令來結(jié)束。575.2.6順序控制繼電器指令LDI0.1ANQ0.0ANQ0.1ANQ0.2//在初始狀態(tài)下起動,置SS0.1,1//S0.1=1LSCRS0.1//S0.1=1,激活第一SCR程序段,
//進(jìn)入第一步序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程序段,
//進(jìn)入第二步序LDSM0.0SQ1.1//綠燈亮,并保持TONT38,+30//啟動3s定時器LDI0.1585.2.6順序控制繼電器指令LDT38//3s后程序轉(zhuǎn)移到第三SCR段,SCRTS0.3//(S0.3=1,S0.2=0)SCRE//第二SCR段結(jié)束LSCRS0.3//S0.3=1,激活第三SCR程序段,
//進(jìn)入第三步序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程序段,
//進(jìn)入第四步序LDSM0.0RS0.1,4RQ0.0,3//紅、綠、黃燈全滅SCRE//第四SCR段結(jié)束
圖5-29SCR指令編程返回595.2.7移位寄存器指令
移位指令都是對無符號數(shù)進(jìn)行的處理,執(zhí)行時只考慮要移位的存儲單元的每一位數(shù)字狀態(tài),而不管數(shù)據(jù)的值的大小。本類指令在一個數(shù)字量輸出點(diǎn)對應(yīng)多個相對固定狀態(tài)的情況下有廣泛的應(yīng)用。
返回605.2.7移位寄存器指令1.左移和右移
左移和右移根據(jù)所移位的數(shù)的長度分別又可分為字節(jié)型、字型、雙字型。移位特點(diǎn):移位數(shù)據(jù)存儲單元的移出端與SM1.1(溢出)相連,所以最后被移出的位被放到SM1.1位存儲單元。移位時,移出位進(jìn)入SM1.1,另一端自動補(bǔ)0。SM1.1始終存放最后一次被移出的位。移位次數(shù)與移位數(shù)據(jù)的長度有關(guān),如果所需移位次數(shù)大于移位數(shù)據(jù)的位數(shù),則超出的次數(shù)無效。如果移位操作使數(shù)據(jù)變?yōu)?,則零存儲器位(SM1.0)自動置位。移位指令影響的特殊存儲器位:SM1.0(零);SM1.1(溢出)。使能流輸出ENO斷開的出錯條件:SM4.3(運(yùn)行時間);0006(間接尋址)。移位次數(shù)N為字節(jié)型數(shù)據(jù)。615.2.7移位寄存器指令(1)字節(jié)左移和字節(jié)右移指令:SLB,SRB使能輸入有效時,把字節(jié)輸入數(shù)據(jù)IN左移或右移N位后,再將結(jié)果輸出到OUT所指的字節(jié)存儲單元(在語句表中,IN與OUT使用同一個單元)。最大實(shí)際可移位次數(shù)為8。指令格式:
SLBOUT,
N(字節(jié)左移)
SRBOUT,
N(字節(jié)右移)例:
SLBMB0,
2SRBLB0,
3625.2.7移位寄存器指令以第一條指令為例,指令執(zhí)行情況如表5-12所示
移位次數(shù)地址單元內(nèi)容位SM1.1說明0MB010110101X移位前(SM1.1不確定)1MB0011010101數(shù)左移,移出位1進(jìn)入SM1.1,右端補(bǔ)02MB0110101000數(shù)左移,移出位0進(jìn)入SM1.1,右端補(bǔ)0表5-12
左移指令SLB執(zhí)行結(jié)果
(2)字左移和字右移指令:SLW,SRW指令模塊與字節(jié)移位比較,只有名稱變?yōu)镾HL
W和SHR
W。最大實(shí)際可移位次數(shù)為16。指令格式:
SLWOUT,
N(字左移)
SRWOUT,
N(字右移)例:
SLWMW0,
2SRWLW0,3
返回635.2.7移位寄存器指令以第二條指令為例,指令執(zhí)行情況如表5-13所示。
表5-13
右移指令SRW執(zhí)行結(jié)果
移位次數(shù)地址單元內(nèi)容位SM1.1說明0LW01011010100110011X移位前(SM1.1不確定)
1LW001011010100110011右移,
1進(jìn)入SM1.1,左端補(bǔ)02LW000101101010011001右移,1進(jìn)入SM1.1,左端補(bǔ)03LW000010110101001100右移,0進(jìn)入SM1.1,左端補(bǔ)0645.2.7移位寄存器指令指令格式:SLDOUT,N(雙字左移)
SRDOUT,N(雙字右移)例:SLDMD0,2SRDLD0,
3(3)雙字左移和雙字右移指令:SLD,SRD指令模塊與字節(jié)移位比較,只有名稱變?yōu)镾HL
DW和SHR
DW,其他部分完全相同。最大實(shí)際可移位次數(shù)為32。
655.2.7移位寄存器指令2.循環(huán)左移、循環(huán)右移
循環(huán)移位特點(diǎn):
移位數(shù)據(jù)存儲單元的移出端與另一端相連,同時又與SM1.1(溢出)相連,所以最后被移出的位被移到另一端的同時,也被放到SM1.1位存儲單元。移位次數(shù)與移位數(shù)據(jù)的長度有關(guān),如果移位次數(shù)設(shè)定值大于移位數(shù)據(jù)的位數(shù),則執(zhí)行循環(huán)移位之前,系統(tǒng)先對設(shè)定值取以數(shù)據(jù)長度為底的模,用小于數(shù)據(jù)長度的結(jié)果作為實(shí)際循環(huán)移位的次數(shù)。如字左移時,若移位次數(shù)設(shè)定為36,則先對36取以16為底的模,得到小于16的結(jié)果4,故指令實(shí)際循環(huán)移位4次。如果移位操作使數(shù)據(jù)變?yōu)?,則零存儲器位(SM1.0)自動置位。移位指令影響的特殊存儲器位:SM1.0(零);SM1.1(溢出)。使能流輸出ENO斷開的出錯條件:SM4.3(運(yùn)行時間);0006(間接尋址)。移位次數(shù)N為字節(jié)型數(shù)據(jù)。返回665.2.7移位寄存器指令(1)字節(jié)循環(huán)左移和字節(jié)循環(huán)右移指令:RLB,RRB
使能輸入有效時,把字節(jié)型輸入數(shù)據(jù)IN循環(huán)左移或循環(huán)右移N位后,再將結(jié)果輸出到OUT所指的字節(jié)存儲單元(在語句表中,IN與OUT使用同一個單元)。實(shí)際移位次數(shù)為設(shè)定值取以8為底的模所得的結(jié)果。
指令格式:
RLBOUT,
N(字節(jié)循環(huán)左移)
RRBOUT,
N(字節(jié)循環(huán)右移)例:
RLBMB0,
2RRBLB0,3
675.2.7移位寄存器指令(2)字循環(huán)左移和字循環(huán)右移指令:RLW,RRW
指令模塊與字節(jié)循環(huán)移位只有名稱變?yōu)镽OL
W和ROR
W,其他部分完全相同。使能輸入有效時,把字型輸入數(shù)據(jù)IN循環(huán)左移或循環(huán)右移N位后,再將結(jié)果輸出到OUT所指的字存儲單元(在語句表中,IN與OUT使用同一個單元)。實(shí)際移位次數(shù)為設(shè)定值取以16為底的模所得的結(jié)果。指令格式:
RLWOUT,
N(字循環(huán)左移)
RRWOUT,
N(字循環(huán)右移)例:
RLWMD0,
2RRWLD0,3
685.2.7移位寄存器指令(3)雙字循環(huán)左移和雙字循環(huán)右移指令:RLD,RRD
指令模塊與字節(jié)循環(huán)移位只有名稱變?yōu)镽OL
DW和ROR
DW,其他部分完全相同。使能輸入有效時,把雙字型輸入數(shù)據(jù)IN循環(huán)左移或循環(huán)右移N位后,再將結(jié)果輸出到OUT所指的雙字存儲單元(在語句表中,IN與OUT使用同一個單元)。實(shí)際移位次數(shù)為設(shè)定值取以32為底的模所得的結(jié)果。指令格式:RLDOUT,N(雙字循環(huán)左移)
RRDOUT,N(雙字循環(huán)右移)例:RLDMD0,2RRDLD0,
3返回695.2.7移位寄存器指令以指令RRWLW0,3為例,指令執(zhí)行情況如表5-14所示。
表5-14
指令RRW執(zhí)行結(jié)果
移位次數(shù)地址單元內(nèi)容位SM1.1說明0LW01011010100110011X移位前(SM1.1不確定)
1LW011011010100110011右端1移入SM1.1和LW0左端2LW011101101010011001右端1移入SM1.1和LW0左端3LW001110110101001100右端0移入SM1.1和LW0左端705.2.7移位寄存器指令3.寄存器移位
SHRB,寄存器移位指令。該指令在梯形圖中有3個數(shù)據(jù)輸入端:DATA為數(shù)值輸入,將該位的值移入移位寄存器;S
BIT為移位寄存器的最低位端;N指定移位寄存器的長度。每次使能輸入有效時,整個移位寄存器移動1位。
移位特點(diǎn):移位寄存器長度在指令中指定,沒有字節(jié)型、字型、雙字型之分。可指定的最大長度為64位,可正也可負(fù)。移位數(shù)據(jù)存儲單元的移出端與SM1.1(溢出)相連,所以最后被移出的位被放到SM1.1位存儲單元。
715.2.7移位寄存器指令移位時,移出位進(jìn)入SM1.1,另一端自動補(bǔ)以DATA移入位的值。正向移位時長度N為正值,移位是從最低字節(jié)的最低位S
BIT移入,從最高字節(jié)的最高位MSB.b移出;反向移位時,長度N為負(fù)值,移位是從最高字節(jié)的最高位移入,從最低字節(jié)的最低位S
BIT移出。最高位的計(jì)算方法:(N的絕對值–1+(S
BIT的位號))/8,相除結(jié)果中,余數(shù)即是最高位的位號,商與S
BIT的字節(jié)號之和即是最高位的字節(jié)號。例如,如果S
BIT是V22.5,N是8,那么MSB.b是V23.4。具體計(jì)算如下:MSB.b→V22+(8-1+5)÷8=V22+12÷8=V22+1(余數(shù)為4)→V23.4返回725.2.7移位寄存器指令指令格式:SHRBDATA,S
BIT,N例:SHRBI0.5,V20.0,5以本條指令為例,指令執(zhí)行情況如表5-15所示。
表5-15
指令SHRB執(zhí)行結(jié)果
脈沖數(shù)I0.5值
VB20內(nèi)容
位SM1.1說明0110110101X移位前。移位時,從V20.0移入,從V20.4移出
111010101111移入SM1.1,I0.5的脈沖前值進(jìn)入右端211011011100移入SM1.1,I0.5的脈沖前值進(jìn)入右端301010111011移入SM1.1,I0.5的脈沖前值進(jìn)入右端735.2.8比較操作指令
比較指令是一種比較判斷,用于比較兩個符號數(shù)或無符號數(shù)。在梯形圖中以帶參數(shù)和運(yùn)算符號的觸點(diǎn)的形式編程,當(dāng)這兩數(shù)比較式的結(jié)果為真時,該觸點(diǎn)閉合。在功能框圖中以指令模塊的形式編程,當(dāng)比較式結(jié)果為真時,輸出接通。在語句表中使用LD指令進(jìn)行編程時,當(dāng)比較式為真時,主機(jī)將棧頂置1。使用A/O指令進(jìn)行編程時,當(dāng)比較式為真時,則在棧頂執(zhí)行A/O操作,并將結(jié)果放入棧頂。比較指令的類型有:字節(jié)比較、整數(shù)比較、雙字整數(shù)比較和實(shí)數(shù)比較。比較運(yùn)算符有:=、>=、<=、>、<和<>(<>表示不等于)。
返回745.2.8比較操作指令1.字節(jié)比較
字節(jié)比較用于比較兩個字節(jié)型整數(shù)值IN1和IN2的大小,字節(jié)比較是無符號的。比較式可以是LDB、AB或OB后直接加比較運(yùn)算符構(gòu)成。如:LDB=、AB<>、OB>=等。整數(shù)IN1和IN2的尋址范圍:VB、IB、QB、MB、SB、SMB、LB、*VD、*AC、*LD和常數(shù)。指令格式例:LDB=VB10,VB12AB<>MB0,MB1OB<=AC1,
116755.2.8比較操作指令2.整數(shù)比較
整數(shù)比較用于比較兩個一字長整數(shù)值IN1和IN2的大小,整數(shù)比較是有符號的(整數(shù)范圍為16#8000和16#7FFF之間)。比較式可以是LDW、AW或OW后直接加比較運(yùn)算符構(gòu)成。如:LDW=、AW<>、OW>=等。整數(shù)IN1和IN2的尋址范圍:VW、IW、QW、MW、SW、SMW、LW、AIW、T、C、AC、*VD、*AC、*LD和常數(shù)。指令格式例:LDW=VW10,VW12AW<>MW0,MW4OW<=AC2,
1160765.2.8比較操作指令3.雙字整數(shù)比較雙字整數(shù)比較用于比較兩個雙字長整數(shù)值IN1和IN2的大小,雙字整數(shù)比較是有符號的(雙字整數(shù)范圍為16#80000000和16#7FFFFFFF之間)。比較式可以是LDD、AD或OD后直接加比較運(yùn)算符構(gòu)成。如:LDD=、AD<>、OD>=等。雙字整數(shù)IN1和IN2的尋址范圍:VD、ID、QD、MD、SD、SMD、LD、HC、AC、*VD、*AC、*LD和常數(shù)。指令格式例:LDD=VD10,VD14AD<>MD0,
MD8OD<=AC0,
1160000返回775.2.8比較操作指令4.實(shí)數(shù)比較
實(shí)數(shù)比較用于比較兩個雙字長實(shí)數(shù)值IN1和IN2的大小,實(shí)數(shù)比較是有符號的(負(fù)實(shí)數(shù)范圍為-1.175495E-38和-3.402823E+38,正實(shí)數(shù)范圍為+1.175495E-38和+3.402823E+38)。比較式可以是LDR、AR或OR后直接加比較運(yùn)算符構(gòu)成。如:LDR=、AR<>、OR>=等。整數(shù)IN1和IN2的尋址范圍:VD、ID、QD、MD、SD、SMD、LD、AC、*VD、*AC、*LD和常數(shù)。指令格式例:LDR=VD10,VD18AR<>MD0,MD12OR<=AC1,
1160.478785.2.8比較操作指令5.應(yīng)用舉例
一自動倉庫存放某種貨物,最多6000箱,需對所存的貨物進(jìn)出計(jì)數(shù)。貨物多于1000箱,燈L1亮;貨物多于5000箱,燈L2亮。其中,L1和L2分別受Q0.0和Q0.1控制,數(shù)值1000和5000分別存儲在VW20和VW30字存儲單元中。本控制系統(tǒng)的程序如圖5-30所示。程序執(zhí)行時序如圖5-31所示。
795.2.8比較操作指令LDI0.0//增計(jì)數(shù)出入端LDI0.1//減計(jì)數(shù)出入端LDI0.2//復(fù)位出入端CTUDC30,+10000//增減計(jì)數(shù),設(shè)定脈沖數(shù)為10000
LDW>=C30,VW20//比較計(jì)數(shù)器,當(dāng)前值是否大于等
//于VW20中的值“1000”=
Q0.0//輸出觸點(diǎn)
LDW>=C30,VW30//比較計(jì)數(shù)器,當(dāng)前值是否大于等
//于VW30中的值“5000”=
Q0.1//輸出觸點(diǎn)圖5-30
程序舉例
返回80時序圖:圖5-31
時序圖
815.3S7-200PLC的功能指令及編程方法
PLC實(shí)際上就是工業(yè)控制計(jì)算機(jī)。它具有計(jì)算機(jī)控制系統(tǒng)的功能,例如算術(shù)邏輯運(yùn)算、程序流控制、通信等等極為強(qiáng)大的功能。這些功能通常是通過功能指令的形式來實(shí)現(xiàn)的。功能指令(FunctionInstruction)又稱為應(yīng)用指令,它是指令系統(tǒng)中應(yīng)用于復(fù)雜控制的指令。功能指令包括:數(shù)據(jù)處理指令、算術(shù)邏輯運(yùn)算指令、表功能指令、轉(zhuǎn)換指令、中斷指令、高速處理指令等等。這些功能指令實(shí)際上是廠商為滿足各種客戶的特殊需要而開發(fā)的通用子程序。
返回825.3.1數(shù)學(xué)運(yùn)算指令
1.加法運(yùn)算指令
加法指令是對有符號數(shù)進(jìn)行相加操作。包括:整數(shù)加法、雙整數(shù)加法和實(shí)數(shù)加法。加法指令影響的特殊存儲器位:SM1.0(零);SM1.1(溢出);SM1.2(負(fù))。使能流輸出ENO斷開的出錯條件:0006(間接尋址);SM1.1(溢出);SM4.3(運(yùn)行時間)。(1)整數(shù)加法指令:+I
使能輸入有效時,將兩個單字長(16位)的符號整數(shù)IN1和IN2相加,產(chǎn)生一個16位整數(shù)結(jié)果OUT。
返回835.3.1數(shù)學(xué)運(yùn)算指令在LAD和FBD中,以指令模塊形式編程,執(zhí)行結(jié)果:IN1+IN2→OUT。在STL中,通常將IN2與OUT共用一個地址單元,執(zhí)行結(jié)果:IN1+OUT→OUT。指令格式:+IIN1,OUT程序?qū)嵗?/p>
LDI0.1//使能輸入端MOVWVW0,VW4//VW0→VW4+IVW2,VW4//VW2+VW4→VW4LAD中IN2和OUT可用同一單元。圖5-33
整數(shù)加法例b
845.3.1數(shù)學(xué)運(yùn)算指令(2)雙整數(shù)加法指令:+D(3)實(shí)數(shù)加法指令:+R
使能輸入有效時,將兩個雙字長(32位)的符號整數(shù)IN1和IN2相加,產(chǎn)生一個32位整數(shù)結(jié)果OUT。指令格式:+DIN1,OUT
使能輸入有效時,將兩個雙字長(32位)的實(shí)數(shù)IN1和IN2相加,產(chǎn)生一個32位實(shí)數(shù)結(jié)果OUT。
指令格式:+RIN1,OUT855.3.1數(shù)學(xué)運(yùn)算指令2.減法運(yùn)算指令
減法指令是對有符號數(shù)進(jìn)行相減操作。包括:整數(shù)減法、雙整數(shù)減法和實(shí)數(shù)減法。這三種減法指令與所對應(yīng)的加法指令除運(yùn)算法則不同之外,其他方面基本相同。減法指令影響的特殊存儲器位:SM1.0(零);SM1.1(溢出);SM1.2(負(fù))。使能流輸出ENO斷開的出錯條件:0006(間接尋址);SM1.1(溢出);SM4.3(運(yùn)行時間)。
整數(shù)減法
雙整數(shù)減法
實(shí)數(shù)減法
865.3.1數(shù)學(xué)運(yùn)算指令程序?qū)嵗?/p>
指令格式:-IIN2,OUT//整數(shù)減法,OUT-IN2→OUT-DIN2,OUT//雙整數(shù)減法
-RIN2,OUT//實(shí)數(shù)減法
LDI0.0//使能輸入端-IVW2,
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年銅陵市市直事業(yè)單位公開招聘工作人員統(tǒng)一筆試原始筆試歷年典型考題及考點(diǎn)剖析附帶答案詳解
- 政府保密合同范本(2篇)
- 2024-2025承包商入廠安全培訓(xùn)考試試題及答案【基礎(chǔ)+提升】
- 2025廠級員工安全培訓(xùn)考試試題答案完美版
- 2025公司級員工安全培訓(xùn)考試試題B卷
- 2025版權(quán)許可合同范例
- 2025水果種子買賣合同協(xié)議書
- 阿莫西林可行性研究報告
- 2025網(wǎng)約車服務(wù)合同
- 2025年K12課外輔導(dǎo)項(xiàng)目建議書
- DL∕T 1709.3-2017 智能電網(wǎng)調(diào)度控制系統(tǒng)技術(shù)規(guī)范 第3部分:基礎(chǔ)平臺
- 考核辦法和考核方案
- 化妝品生產(chǎn)OEM合同書
- 海上CANTITRAVEL平臺樁基施工關(guān)鍵技術(shù)應(yīng)用v7
- 2024年4月自考08229計(jì)算機(jī)統(tǒng)計(jì)分析方法試題
- 有色金屬冶金概論課程教案
- 華為MA5800配置及調(diào)試手冊
- 【真題】2023年鎮(zhèn)江市中考化學(xué)試卷(含答案解析)
- 2023-2024年電子物證專業(yè)考試復(fù)習(xí)題庫(含答案)
- 安全生產(chǎn)培訓(xùn)課件:機(jī)器設(shè)備安全操作規(guī)程
評論
0/150
提交評論