S7-200plc的基本指令及編程_第1頁
S7-200plc的基本指令及編程_第2頁
S7-200plc的基本指令及編程_第3頁
S7-200plc的基本指令及編程_第4頁
S7-200plc的基本指令及編程_第5頁
已閱讀5頁,還剩308頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第7章S7-200的基本指令系統(tǒng)

及編程*位操作類指令*

運算類指令

數(shù)據(jù)處理類指令

表功能類指令

轉(zhuǎn)換類指令7.1位操作類指令

1.指令格式及說明方式約定2.梯形圖的基本繪制規(guī)則3.基本邏輯指令的作用及邏輯堆棧4.基本邏輯指令

位操作類指令,主要是指位操作及位運算指令,同時也包含與位操作密切相關(guān)的定時器和計數(shù)器指令。5.復(fù)雜邏輯指令6.定時器指令7.計數(shù)器指令8.比較指令一、指令格式及說明方式約定

1.本章所介紹的指令都給出了梯形圖LAD、語句表STL兩種最常用的編程語言的表達(dá)形式,部分指令給出了功能框圖FBD形式,用以說明功能框圖的應(yīng)用特點。

2.輸入和輸出數(shù)據(jù)的尋址范圍在部分指令中加以描述,以節(jié)省篇幅。

3.程序?qū)嵗驊?yīng)用實例中,一般是某個用戶程序的程序片段,也有完整程序。

*為便于理解:左邊--梯形圖程序右邊--對應(yīng)的語句表程序及注釋實際編程時只需選擇一種編程語言即可。

4.用語句表編程時,可用2條或2條以上斜線開始為每個程序行加注釋和說明。

5.用梯形圖編程時,每條指令的EN和ENO的功能都相同,因此只在部分指令中加以描述。下面以整數(shù)加法指令為例,說明指令介紹的一般格式。整數(shù)加法指令為指令盒,指令名稱?EN?ENO?IN1和IN2?數(shù)據(jù)類型?OUT?數(shù)據(jù)類型?當(dāng)EN有效時執(zhí)行整數(shù)加法操作,結(jié)果為IN1+IN2=OUT

在語句表STL中,整數(shù)加法指令為+IIN1,OUT執(zhí)行結(jié)果為IN1+OUT=OUT**IN1和IN2的尋址范圍:IW、QW、MW、SMW、SW、W、LW、AIW、T、C、AC,*VD、*AC常數(shù)。*********************************************************************OUT的尋址范圍:IW、QW、MW、SMW、SW、W、LW、AIW、T、C、AC,*VD、AC**本指令的執(zhí)行影響的特殊存儲器位:SM1.0(零值標(biāo)志)SM1.1(溢出標(biāo)志)SM1.2(負(fù)值標(biāo)志)**影響允許輸出ENO正常工作的出錯條件:

SM1.1(溢出標(biāo)志)=1SM4.3(運行時發(fā)現(xiàn)編程錯誤標(biāo)志)=1

出現(xiàn)錯誤代碼0006(間接尋址錯誤)LDI0.0//使能輸入端+IVW0,VW4//整數(shù)加法

//VW0+VW4=VW4二、梯形圖的基本繪制規(guī)則

1.Network***Network為網(wǎng)絡(luò)段,后面的***為網(wǎng)絡(luò)段編號。

2.能流/使能在梯形圖中有兩種基本類型的輸入輸出,一種是能量流,另一種是數(shù)據(jù)。EN為能流輸入,ENO為能流輸出,均為布爾型數(shù)據(jù)。

3.編程順序

梯形圖按照從上到下,從左到右的順序繪制。

4.編號分配對外部輸入/輸出設(shè)備分配編號,編號的分配必須是主機(jī)或擴(kuò)展模塊本身實際提供的,而且是用來進(jìn)行編程的。

5.內(nèi)、外觸點的配合

在梯形圖中選擇輸入繼電器的觸點類型(內(nèi)部觸點)與兩方面的因素有關(guān):一是輸入設(shè)備的觸點類型(外部觸點)二是控制電路的實際通斷要求。輸入設(shè)備的觸點類型與輸入繼電器觸點類型的*異或結(jié)果*決定了控制電路的實際通斷

6.觸點的使用次數(shù)

在梯形圖中,同一編程元件的常開(動合)、常閉(動斷)觸點可以任意多次重復(fù)使用,不受限制。(*第四章提到的軟器件)

7.線圈的使用次數(shù)

在繪制梯形圖時,*不同的多個繼電器線圈可以并聯(lián)輸出,*但同一個繼電器的線圈不能重復(fù)使用。

8.線圈的連接

----主要采用并聯(lián)連接。三、基本邏輯指令的作用及邏輯堆棧基本邏輯指令在語句表中是指對位存儲單元的簡單邏輯運算,在梯形圖中是指對觸點的簡單連接和對標(biāo)準(zhǔn)線圈的輸出。

堆棧是一組能夠存儲和取出數(shù)據(jù)的暫時存儲單元。存取特點后進(jìn)先出堆棧結(jié)構(gòu)如下表所示。堆棧結(jié)構(gòu)名稱說明S0STACK0第一個堆棧(即棧頂)S1STACK1第二個堆棧S2STACK2第三個堆棧S3STACK3第四個堆棧S4STACK4第五個堆棧S5STACK5第六個堆棧S6STACK6第七個堆棧S7STACK7第八個堆棧S8STACK8第九個堆棧四、基本邏輯指令

主要包括標(biāo)準(zhǔn)觸點指令、正負(fù)跳變指令置位和復(fù)位指令、立即指令主要是與位相關(guān)的輸入輸出及觸點的簡單連接。1.標(biāo)準(zhǔn)觸點指令

LD、LDN、A、AN、O、ON、NOT、=這些指令對存儲器位在邏輯堆棧中進(jìn)行操作,如果數(shù)據(jù)類型是輸入繼電器I或輸出繼電器Q,則從映像寄存器存取數(shù)值。

操作數(shù)為BOOL型,編址范圍:I、Q、M、SM、T、C、S、V、L。

LD,裝入常開觸點(LoaD)

指令格式:LDbitLDN,裝入常閉觸點(LoaDNot)

指令格式:LDNbit梯形圖中每個從左母線開始的*單一邏輯行*、*每個程序塊(邏輯梯級)的開始*、*指令盒的輸入端*都必須使用LD和LDN這兩條指令。這兩條指令對各類內(nèi)部編程元件的觸點都適用

A

串聯(lián)一個常開觸點(And)??蛇B續(xù)使用,但是由于打印紙寬度限制,梯形圖每行串聯(lián)不要超過8個元件

指令格式:Abit*******************************AN

串聯(lián)一個常閉觸點(AndNot)可連續(xù)使用,但是使用原則同A。指令格式:ANbitO并聯(lián)一個常開觸點(Or)可連續(xù)使用,但由于打印紙長度限制,梯形圖每個網(wǎng)絡(luò)并聯(lián)不要超過8個元件指令格式:Obit*************************************************************************************ON并聯(lián)一個常閉觸點(OrNot)可連續(xù)使用,但是使用原則同O。指令格式:ONbitNOT

觸點取非(輸出反相)在梯形圖中用來改變能流的狀態(tài)取非觸點左端的邏輯運算結(jié)果為1時(即有能流),觸點斷開能流,反之能流可以通過。指令格式:NOT(NOT指令無操作數(shù))=

輸出指令將邏輯運算結(jié)果輸出到指定存儲器位或輸出映像寄存器,以驅(qū)動線圈指令格式:=bit

在語句表中,LD、LDN、A、AN、O、ON、NOT這幾條指令的執(zhí)行對邏輯堆棧的影響分別如表5.4、表5.5其后的說明。

A

I0.2的執(zhí)行程序?qū)嵗航榻B標(biāo)準(zhǔn)觸點指令在梯形圖、語句表和功能塊圖3種語言編程中的應(yīng)用。其梯形圖和語句表程序如圖所示。其功能塊圖和語句表程序如圖所示。Q0.0=(I0.0+I0.1)*I0.2Q0.3=Q0.1Q0.1=(I0.0+I0.1)*I0.2Q0.0Q0.3I0.0I0.1I0.22.正負(fù)跳變指令在梯形圖中以觸點形式表示用于檢測脈沖的正跳變(上升沿)或負(fù)跳變(下降沿)利用跳變讓能流接通一個掃描周期,即可以產(chǎn)生一個掃描周期長度的微分脈沖常用此脈沖觸發(fā)內(nèi)部繼電器線圈。EU正跳變指令正跳變觸點檢測到脈沖的每一次正跳變后,產(chǎn)生一個微分脈沖。指令格式:EU(無操作數(shù))ED負(fù)跳變指令。負(fù)跳變觸點檢測到脈沖的每一次負(fù)跳變后,產(chǎn)生一個微分脈沖。指令格式:ED(無操作數(shù))應(yīng)用舉例:下圖是跳變指令的程序片斷和指令執(zhí)行的時序。LDI0.0EU=Q0.0--------------------LDI0.0ED=Q0.13.置位和復(fù)位指令

置位即置1,復(fù)位即置0。這兩條指令在使用時需指明三點:操作性質(zhì)、開始位和位的數(shù)量。S置位指令將位存儲區(qū)的指定位(位bit)開始的N個同類存儲器位置位指令格式:

Sbit,NR復(fù)位指令將位存儲區(qū)的指定位(位bit)開始的N個同類存儲器位復(fù)位。如果是對定時器T位或計數(shù)器C位進(jìn)行復(fù)位,則定時器位或計數(shù)器位被復(fù)位,同時,定時器或計數(shù)器的當(dāng)前值被清零。指令格式: Rbit,NSbit,NRbit,N注意:在存儲區(qū)的一位或多位被置位后,不能自己恢復(fù),必須用復(fù)位指令使之由1跳回到0。Q1.0=I0.0*I0.1Q0.0(SET)=I0.0*I0.1Q0.2-Q0.4(RESET)=I0.0*I0.1

I0.0I0.1Q0.0Q1.0Q0.2-Q0.4立即指令允許對輸入和輸出點進(jìn)行快速和直接存取當(dāng)用立即指令讀取輸入點的狀態(tài)時,相應(yīng)的輸入映像寄存器中的值并未發(fā)生更新;用立即指令訪問輸出點時,訪問的同時,相應(yīng)的輸出寄存器的內(nèi)容也被刷新。4.立即指令注意:只有輸入繼電器I和輸出繼電器Q可以使用立即指令。

LDI、LDNI、AI、ANI、OI和ONI立即觸點指令指令格式:LDIbit

注意:bit只能是I類型=I,立即輸出指令。指令格式:

=Ibit

注意:bit只能是Q類型SI,立即置位指令。指令格式:SIbit,N注意:bit只能是Q類型RI,立即復(fù)位指令。指令格式:RIbit,N注意:bit只能是Q類型Q0.0

=

I0.0(LD)Q0.1

=I

I0.0Q0.2,1

SII0.0Q0.3

=

I0.0(LDI)五、復(fù)雜邏輯指令

主要用來對觸點進(jìn)行復(fù)雜連接對邏輯堆棧也可以實現(xiàn)非常復(fù)雜的操作

ALD,棧裝載與指令(與塊)在梯形圖中用于并聯(lián)電路塊的串聯(lián)連接。指令格式:ALD

2.OLD,棧裝載或指令(或塊)

在梯形圖中用于串聯(lián)電路塊的并聯(lián)連接。指令格式:OLD

在語句表中指令A(yù)LD、OLD執(zhí)行情況如下表所示。名稱執(zhí)行前執(zhí)行后說明STACK010假設(shè)執(zhí)行前,S0=1,S1=0本指令對堆棧中的棧頂S0和S1的值進(jìn)行邏輯與運算,結(jié)果放回棧頂。即S0=S0*S1=1*0=0執(zhí)行完本指令后堆棧串行上移一格,深度減1STACK10S2STACK2S2S3STACK3S3S4STACK4S4S5STACK5S5S6STACK6S6S7STACK7S7S8STACK8S8X指令A(yù)LD名稱執(zhí)行前執(zhí)行后說明STACK011假設(shè)執(zhí)行前,S0=1,S1=0本指令對堆棧中的棧頂S0和S1的值進(jìn)行邏輯或運算,結(jié)果放回棧頂。即S0=S0+S1=1+0=0執(zhí)行完本指令后堆棧串行上移一格,深度減1STACK10S2STACK2S2S3STACK3S3S4STACK4S4S5STACK5S5S6STACK6S6S7STACK7S7S8STACK8S8X指令OLD

3.LPS,邏輯推入棧指令

在梯形圖的分支結(jié)構(gòu)中,用于生成一條新的母線,左側(cè)為主控邏輯塊時,第一個完整的從邏輯行從此處開始。指令格式:LPS4.LPP,邏輯彈出棧指令

在梯形圖的分支結(jié)構(gòu)中,用于將LPS指令生成的母線進(jìn)行恢復(fù)。指令格式:LPP

在語句表中指令LPS、LPP執(zhí)行情況如下表所示注意:使用LPS指令時,本指令為分支的開始,以后必須有分支結(jié)束指令LPP。即LPS與LPP指令必須成對出現(xiàn)。名稱執(zhí)行前執(zhí)行后說明STACK011假設(shè)執(zhí)行前,S0=1本指令對堆棧中的棧頂S0進(jìn)行復(fù)制,并將這個復(fù)制值由棧頂壓入堆棧。即:S0=S0=1執(zhí)行完本指令后堆棧串行下移一格,深度加1,原來的棧底S8內(nèi)容將自動丟失STACK1S11STACK2S2S1STACK3S3S2STACK4S4S3STACK5S5S4STACK6S6S5STACK7S7S6STACK8S8S7指令LPS名稱執(zhí)行前執(zhí)行后說明STACK011假設(shè)執(zhí)行前,S0=1,S1=1本指令將堆棧的棧頂S0彈出,用以進(jìn)行本指令之后的操作。即:S0=S1=1執(zhí)行完本指令后堆棧串行上移一格,深度減1,棧底S8內(nèi)容將生成一個隨機(jī)值XSTACK11S1STACK2S1S2STACK3S2S3STACK4S3S4STACK5S4S5STACK6S5S6STACK7S6S7STACK8S7X指令LPP

5.LRD,邏輯讀棧指令在梯形圖的分支結(jié)構(gòu)中,當(dāng)左側(cè)為主控邏輯塊時,開始第二個和后邊更多的從邏輯塊。

指令格式:LRD

在語句表中指令執(zhí)行情況如下表所示。

6.LDS,裝入堆棧指令

編程時較少使用

指令格式:LDSn

(n為0-8的整數(shù))

在語句表中LRD、LDS執(zhí)行情況如下表所示名稱執(zhí)行前執(zhí)行后說明STACK010假設(shè)執(zhí)行前,S0=1,S1=0本指令將堆棧中的第二層S1的值進(jìn)行復(fù)制,然后將這個復(fù)制值放入棧頂S0,本指令不對堆棧進(jìn)行壓入和彈出操作。即:S0=S1=0執(zhí)行完本指令后堆棧不串行上移或下移,除棧頂值之外,其他部分的值不變STACK100STACK2S2S2STACK3S3S3STACK4S4S4STACK5S5S5STACK6S6S6STACK7S7S7STACK8S8S8指令LRD名稱執(zhí)行前執(zhí)行后說明STACK010假設(shè)執(zhí)行前,S0=1,S4=0本指令對堆棧中的第五層S4的值進(jìn)行復(fù)制,并將這個復(fù)制值由棧頂壓入堆棧。即:S0=S4=0執(zhí)行完本指令后堆棧串行下移一格,深度加1,原來的棧底S8內(nèi)容自動丟失STACK1S11STACK2S2S1STACK3S3S2STACK40S3STACK5S50STACK6S6S5STACK7S7S6STACK8S8S7指令LDS4右圖是復(fù)雜邏輯指令在實際應(yīng)用中的一段程序基本邏輯指令程序示例例7-4邊沿微分指示LDI0.1EU=M0.0LDM0.0SQ0.01LDI0.2ED=M0.1LDM0.1RQ0.01例7-5簡單的報警電路例7-6用置位、復(fù)位指令實現(xiàn)順序控制LDI0.0ANM0.0SM0.0,2LDM0.1AV0.1RM0.1,1SM0.2,1LDM0.2AV0.2RM0.2,1SM0.3,1LDM0.3AV0.3RM0.3,1RM0.0,1例7-7二分頻電路(a)(b)例7-8采用順序控制思想,應(yīng)用置位、復(fù)位指令和邊沿微分指令實現(xiàn)多分頻控制7.2定時器指令S7-200提供3種定時器指令:TON、TONR和TOF。每種定時器有3個精度等級:1ms、10ms和100ms,定時器精度等級和地址編號之間的關(guān)系如下表所示。定時器類型精度等級ms最大當(dāng)前值(s)定時器號

TONR132.767T0,T6410327.67T1~T4,T65~T68

1003276.7T5~T31,T69~T95TON/TOF

132.767T32,T96

10327.67T33~T36,T97~T1001003276.7T37~T63,T101~T255指令格式TONTxxx,PTPT用于單一間隔的定時上電周期或首次掃描時,狀態(tài)位OFF,當(dāng)前值為0。TON,接通延時定時器指令允許輸入接通時,狀態(tài)位OFF,當(dāng)前值從0開始定時,當(dāng)前值達(dá)到預(yù)設(shè)值時,狀態(tài)位ON,當(dāng)前值繼續(xù)遞增到32767并保持。允許輸入斷開時定時器自動復(fù)位,即狀態(tài)位OFF,當(dāng)前值為0。

例:TONT35,+40允許輸入再次接通時,當(dāng)前值從保持值繼續(xù)定時,當(dāng)累積當(dāng)前值達(dá)到預(yù)設(shè)值時,狀態(tài)位ON,當(dāng)前值繼續(xù)計數(shù)到32767并保持。TONR,接通延時保持定時器指令指令格式:

TONRTxxx,PT例TONRT2,+100TONR只能用復(fù)位指令進(jìn)行復(fù)位用于多個間隔的累積定時上電周期或首次掃描時,狀態(tài)位OFF,當(dāng)前值為0允許輸入接通時,狀態(tài)位OFF,當(dāng)前值從0開始定時。允許輸入斷開時狀態(tài)位和當(dāng)前值保持最后狀態(tài)

用于單個間隔的定時

上電周期或首次掃描時,狀態(tài)位OFF,當(dāng)前值為0

允許輸入接通時,狀態(tài)位ON,當(dāng)前值為0。允許輸入斷開時,定時器從0開始定時,當(dāng)前值達(dá)到預(yù)設(shè)值時,狀態(tài)位OFF,當(dāng)前值保持預(yù)設(shè)值,停止定時。TOF,斷電延時定時器指令指令格式:

TOFTxxx,PT例:TOFT36,+3LDI0.0TONT35,+4(T=4*10ms)LDI0.0TONRT2,+4(T=10*10ms)LDI0.0TOFT36,+4(T=3*10ms)例1:有的廠商提供的PLC只有TON定時器,因此,在這種情況下可以利用TON來構(gòu)造斷電延時型的各種觸點。用TON構(gòu)造各種類型的時間繼電器觸點例2:用通電延時定時器與輸出繼電器組成帶瞬動觸點的定時器本程序?qū)崿F(xiàn)的功能是:用輸入端I0.0控制輸出端Q0.0,當(dāng)I0.0接通后,過3個時間單位Q0.0端輸出接通,當(dāng)I0.0斷開后,過6個時間單位Q0.0斷開。利用常開觸點實現(xiàn)通電和斷電都延時的觸點作用LDI0.0//啟動定時TONT33,+100//一級通電

//延時時間為1000msLDT33//啟動定時TONT34,+200//二級通電

//延時時間為2000ms例3:擴(kuò)大延時范圍。

例4:三臺電動機(jī)按順序起動。電機(jī)M1先起動,運行20秒后,M2起動,再經(jīng)30秒后,M3起動。LDM0.0=Q0.1//M1通電TONT40,+200//延20sLDT40=Q0.2//M2通電TONT41,+300//延30sLDT41=Q0.37.3、計數(shù)器指令S7-200提供3種計數(shù)器指令:CTU、CTD和CTUD1)首次掃描時,狀態(tài)位OFF,當(dāng)前值為0;2)在脈沖輸入的每個上升沿,當(dāng)前值增加1;3)當(dāng)前值達(dá)到預(yù)設(shè)值時,狀態(tài)位ON,當(dāng)前值繼續(xù)計數(shù)到32767停止;4)復(fù)位輸入有效或執(zhí)行復(fù)位指令,計數(shù)器自動復(fù)位,即狀態(tài)位OFF,當(dāng)前值為0例:CTUC20,+3

1.CTU,增計數(shù)器指令指令格式:CTUCxxx,PVCU:計數(shù)脈沖-信號輸入端R:復(fù)位信號輸入端CUCTURPV+3C20I0.0I0.1C20Q0.0網(wǎng)絡(luò)

2網(wǎng)絡(luò)

1I0.0I0.1C20當(dāng)前值C20位1)首次掃描時,狀態(tài)位OFF,當(dāng)前值等于預(yù)設(shè)值PV。2)在脈沖輸入的每個上升沿,計數(shù)器當(dāng)前值減1,當(dāng)前值減到0時,狀態(tài)位ON。3)裝載輸入有效或執(zhí)行復(fù)位指令時,計數(shù)器自動裝載,即狀態(tài)位OFF,當(dāng)前值為預(yù)設(shè)值。2.CTD,減計數(shù)器指令指令格式:CTDCxxx,PV

例:CTDC40,+4首次掃描時,狀態(tài)位OFF,當(dāng)前值為0。有兩個脈沖輸入端:CU用于遞增計數(shù),CD用于遞減計數(shù)當(dāng)前值達(dá)到預(yù)設(shè)值時,狀態(tài)位ON。復(fù)位輸入有效或執(zhí)行復(fù)位指令時,計數(shù)器自動復(fù)位,即狀態(tài)位OFF,當(dāng)前值為0。3.CTUD增減計數(shù)器指令指令格式:CTUDCxxx,PV

例:CTUDC30,+5I0.0I0.1I0.2C30Q0.0C30CTUDCUCDRPV+5LDI0.0LDI0.1LDI0.2CTUD30,+5LDC30=Q0.0CU--I0.0CD---I0.1

RESET---I0.2PV=5I0.0I0.1I0.2C30當(dāng)前值C30位I0.0T37C1Q0.0例1.用計數(shù)器和定時器配合增加延時時間7.4、比較指令用于兩個相同類型數(shù)據(jù)大小的比較判斷,結(jié)果為真時,允許能流通過。1字節(jié)比較指令

指令格式:

LDB= VB10, VB12AB<> MB0, MB1OB<= AC1, 116LDB>SB1,MB62整數(shù)比較指令指令格式:

LDW=VW10, VW12AW<>MW0, MW4OW<= AC2, 1160雙整數(shù)比較指令指令格式:

LDD= VD10, VD14AD<> MD0, MD8OD<= AC0, 1160000LDD>= HC0, *AC0實數(shù)比較指令指令格式:

LDR= VD10, VD18AR<> MD0, MD12OR<= AC1, 1160.478AR> *AC1, VD100例:一自動倉庫存放貨物,最多6000箱現(xiàn)在需要對所存的貨物進(jìn)出計數(shù),貨物多于1000箱時燈L1亮;貨物多于5000箱時燈L2亮。其中,L1和L2分別受Q0.0和Q0.1控制;數(shù)值1000和5000分別存儲在VW20和VW30字存儲單元中。Q0.0Q0.1

I0.0I0.1

I0.2C30

CUCDCTUDRPV+10000C30>=IVW20

C30>=IVW207-21用比較指令實現(xiàn)脈沖輸出電路I0.0T37Q0.0例7-18用按鈕控制一盞燈,按下5次后燈亮,再按3次后燈滅,依次循環(huán)反復(fù)。(用計數(shù)指令完成)I0.0C0當(dāng)前值C1當(dāng)前值C0計數(shù)器位C1計數(shù)器位例7-22用按鈕控制一盞燈,按下5次后燈亮,再按3次后燈滅,依次循環(huán)。(用比較指令完成)例7-23十字路口交通燈的控制。東西向綠燈Q0.0東西向黃燈Q0.1東西向紅燈Q0.2南北向綠燈Q0.3南北向黃燈Q0.4南北向紅燈Q0.57.5數(shù)據(jù)處理類指令

數(shù)據(jù)處理類指令包括傳送、移位、字節(jié)交換、循環(huán)移位和填充指令。一、傳送類指令指令格式:MOVBIN,OUTMOVWIN,OUT

允許輸入有效時,將1個字節(jié)型(或字長)數(shù)據(jù)傳送到OUT指定的字節(jié)(或字)存儲單元。例:MOVWVW0,VW41.單一傳送指令格式:MOVDIN,OUTMOVRIN,OUT

允許輸入有效時,將1個雙字長(或?qū)崝?shù))數(shù)據(jù)傳送到OUT指定的雙字存儲單元。例:MOVRVD0,VD4指令格式:BIRIN,OUTBIWIN,OUT

允許輸入有效時,立即讀取外部輸入字節(jié)單元的內(nèi)容傳給OUT字節(jié)單元(或把一個字節(jié)的數(shù)據(jù)立即傳送到外部輸出字節(jié))。例:BIRIB0,VB4BIWMB2,QB0指令格式:BMBIN,OUT,NBMWIN,OUT,NBMDIN,OUT,N

允許輸入有效時,將從IN開始的N個字節(jié)型(或字長、雙字長)數(shù)據(jù)傳送到OUT開始的N個字節(jié)(或字、雙子)存儲單元。例:BMBVB0,VB40,202.塊傳送二轉(zhuǎn)換類指令

數(shù)值量數(shù)據(jù)類型轉(zhuǎn)換編碼和譯碼七段碼數(shù)值量數(shù)據(jù)字符串?dāng)?shù)據(jù)的轉(zhuǎn)換轉(zhuǎn)換包括一、數(shù)值量數(shù)據(jù)類型轉(zhuǎn)換指令1.字節(jié)型與整型轉(zhuǎn)換指令指令格式:BTIIN,OUTITBIN,OUT

允許輸入有效時,將字節(jié)型輸入轉(zhuǎn)換成整型輸出(或?qū)⒄洼斎朕D(zhuǎn)換成字節(jié)型輸出)。例:BTIAC0,VW10

2.整型與雙整型轉(zhuǎn)換指令指令格式:ITDIN,OUTDTIIN,OUT

允許輸入有效時,將整型輸入轉(zhuǎn)換成雙整型輸出(或?qū)㈦p整型輸入轉(zhuǎn)換成整型輸出)。例:ITDVW10,AC0

3.雙整型與實數(shù)型轉(zhuǎn)換指令指令格式:DTRIN,OUTROUNDIN,OUTTRUNCIN,OUT

允許輸入有效時,將雙整型輸入轉(zhuǎn)換成實數(shù)型輸出(或?qū)崝?shù)型輸入轉(zhuǎn)換成雙整型輸出)。例:ROUNDVD10,AC0

4.整型與BCD碼轉(zhuǎn)換指令指令格式:IBCDOUTBCDIOUT允許輸入有效時,將整型輸入轉(zhuǎn)換成BCD碼輸出(或?qū)CD碼輸入轉(zhuǎn)換成整型輸出)。例:IBCDAC0

二、編碼與譯碼指令1.編碼指令指令格式:ENCOIN,OUT允許輸入有效時,將字型輸入的最低有效位(值為1的位)的位號進(jìn)行編碼,結(jié)果放入OUT字節(jié)單元的低4位。例:ENCOAC0,VB02.譯碼指令指令格式:DECOIN,OUT允許輸入有效時,將字節(jié)型輸入的低4位內(nèi)容翻譯成位號,然后對字型輸出的對應(yīng)位置1.例:DECOVB0,AC0三、七段碼指令指令格式:SEGIN,OUT允許輸入有效時,將字節(jié)型輸入的低4位所表示的數(shù)值轉(zhuǎn)換成相應(yīng)的七段碼,存放到OUT指定的字節(jié)單元。例:SEGVB0,AC0

四、數(shù)值量數(shù)據(jù)與字符串?dāng)?shù)據(jù)轉(zhuǎn)換指令

1.ASCII碼轉(zhuǎn)換16進(jìn)制指令

2.16進(jìn)制到ASCII碼

3.整數(shù)到ASCII碼

4.雙整數(shù)到ASCII碼

5.實數(shù)到ASCII碼1.ASCII碼轉(zhuǎn)換成16進(jìn)制數(shù)指令指令格式:ATHIN,OUT,LEN允許輸入有效時,把從IN指定字節(jié)開始的,長度為LEN的ASCII碼轉(zhuǎn)換為16進(jìn)制數(shù),結(jié)果存放到OUT開始的字節(jié)單元。例:ATHVB10,VB20,3

7.7、移位指令7.7.1左移、右移指令左移、右移指令的功能是將輸入數(shù)據(jù)向左或向右移動N位后,將結(jié)果送入OUT中移位時,移出位進(jìn)入SM1.1,另一端自動補零。例如右移時,移位數(shù)據(jù)的最右端位移入SM1.1,左端每次補零。SM1.1始終存放最后一次被移除的位。移位次數(shù)如果大于移位數(shù)據(jù)的位數(shù),超出次數(shù)無效。移位指令影響的特殊存儲器位:SM1.0(零)SM1.1(溢出)ENO斷開的出錯條件:SM4.3(運行時間)0006(間接尋址)移位次數(shù)N為字節(jié)型數(shù)據(jù)指令格式:SLBOUT,NSRBOUT,N

允許輸入有效時,將1個字節(jié)型數(shù)據(jù)右移(或左移)N位。例:SLBMB0,2SRBMB1,31.字節(jié)移位指令移位次數(shù)地址單元內(nèi)容位SM1.1說明0MB010110101X移位前1MB0011010101數(shù)左移,移出位1進(jìn)入SM1.1,右端補02MB0110101000數(shù)左移,移出位0進(jìn)入SM1.1,右端補0指令格式:SLWOUT,NSRWOUT,N

允許輸入有效時,將1個字型數(shù)據(jù)左移(或右移)N位。例:SLWVW0,2SRWLW0,32.字移位指令移位次數(shù)地址單元內(nèi)容位SM1.1說明0LW01011010100110011X移位前1LW001011010100110011右移,1進(jìn)入SM1.1,左端補02LW000101101010011001右移,1進(jìn)入SM1.1,左端補03LW000010110101001100右移,0進(jìn)入SM1.1,左端補0指令SRW執(zhí)行結(jié)果指令格式:SLDOUT,NSRDOUT,N

允許輸入有效時,將1個雙字型數(shù)據(jù)左移(或右移)N位。例:SLDVD0,2SRDMD4,33.雙字移位指令左移、右移指令示例LDI0.0EUSRBMB1,1MOVWVW100,VW102SLWVW102,1移位前MB1:01011101移位后MB1:00101110SM1.1:1移位前VW100:1100010111010001傳送指令VW102:1100010111010001移位后VW102:1000101110100010SM1.1:17.7.2循環(huán)移位指令循環(huán)左移、右移指令的功能是將輸入數(shù)據(jù)向左或向右循環(huán)移動N位后,將結(jié)果送入OUT中移位時,移位數(shù)據(jù)存儲單元的移出端與另一端相連,同時也與SM1.1相連,移出位被移到另一端的同時,也進(jìn)入SM1.1。例如右移時,移位數(shù)據(jù)的最右端位移入最左端,同時也進(jìn)入SM1.1,SM1.1始終存放最后一次被移除的位。移位次數(shù)如果大于移位數(shù)據(jù)的位數(shù),系統(tǒng)將自動求取實際循環(huán)次數(shù)。移位指令影響的特殊存儲器位:SM1.0(零)SM1.1(溢出)ENO斷開的出錯條件:SM4.3(運行時間)0006(間接尋址)移位次數(shù)N為字節(jié)型數(shù)據(jù)指令格式:RLBOUT,NRRBOUT,N

允許輸入有效時,將1個字節(jié)型數(shù)據(jù)循環(huán)左移(或右移)N位。例:RLBMB0,2RRBLB0,31.字節(jié)循環(huán)移位指令指令格式:RLWOUT,NRRWOUT,N

允許輸入有效時,將1個字型數(shù)據(jù)循環(huán)左移(或右移)N位。例:RLWMW0,2RRWLW0,32.字循環(huán)移位指令移位次數(shù)地址單元內(nèi)容位SM1.1說明0LW01011010100110011X移位前1LW011011010100110011右端1移入SM1.1和LW0左端2LW011101101010011001右端1移入SM1.1和LW0左端3LW001110110101001100右端0進(jìn)入SM1.1和LW0左端指令RRW執(zhí)行結(jié)果指令格式:RLDOUT,NRRDOUT,N

允許輸入有效時,將1個雙字型數(shù)據(jù)循環(huán)左移(或右移)N位。例:RLDMD0,2RRDLD0,33.雙字循環(huán)移位指令7.7.3移位寄存器指令移位寄存器SHRB使用比較靈活,移位寄存器長度在指令中指定,沒有字節(jié)型、字型、雙字型之分。移位時,移位數(shù)據(jù)存儲單元的移出端與SM1.1相連,移出位被移至SM1.1,另一端自動補以DATA移入位的值。移位方向分為正向和反向。正向移位時長度N為正值,移位是從最低字節(jié)的最低位S-BIT移入,從最高字節(jié)的最高位移出;反向移位時長度N為正負(fù)值,移位是從最高字節(jié)的最高位移入,從最低字節(jié)的最低S-BIT位移出;最高位的計算方法:MSB字節(jié)號=S-BIT字節(jié)號+{〔(N的絕對值-1)+S-BIT位號〕/8}的商MSB位號={〔(N的絕對值-1)+S-BIT位號〕/8}的余數(shù)允許輸入有效時,如果是正向移位,則移位寄存器的內(nèi)容由低向高移動1位;如果是反向移位,則移位寄存器的內(nèi)容由高向低移動1位。7.移位寄存器指令指令格式:SHRBDATA,S_BIT,N例:SHRBI0.5,V20.0,5脈沖數(shù)I0.5值VB20內(nèi)容位SM1.1說明0110110101X移位前.移位時,從V20.4移出111010101111移入SM1.1,I0.5的脈沖值進(jìn)入右端201011011100移入SM1.1,I0.5的脈沖值進(jìn)入右端301010111011移入SM1.1,I0.5的脈沖值進(jìn)入右端SHRBI0.5,V20.0,5Q0.3Q0.2Q0.1Q0.0MSBLSBI0.0Q0.0Q0.1Q0.2Q0.3用一個開關(guān)控制6盞燈。開關(guān)閉合時,依次點亮開關(guān)斷開時,按相反順序依次熄滅,間隔1秒。其控制要求為:第1根亮→第2根亮→第3根亮……第8根亮,即每隔1

s依次點亮,全亮后,閃爍1次(滅1

s亮1

s),再反過來按8→7→6→5→4→3→2→1反序熄滅,時間間隔仍為1

s。全滅后,停1

s,再從第1根燈管點亮,開始循環(huán)。圖8-1某廣告牌霓虹燈廣告牌循環(huán)彩燈的PLC控制應(yīng)用舉例1.系統(tǒng)I/O分配輸入信號輸出信號名稱功能編號名稱功能編號SB1啟動I0.0KA1~KA8控制8根霓虹燈管Q0.0~Q0.7SB2停止I0.12.PLC電氣接線圖3.控制程序三、字節(jié)交換指令指令格式:SWAPIN

允許輸入有效時,將字型輸入數(shù)據(jù)的高位字節(jié)與低位字節(jié)內(nèi)容進(jìn)行交換。例:SWAPVW10時間單元地址單元內(nèi)容說明執(zhí)行前VW101011010100000001交換指令執(zhí)行前執(zhí)行后VW100000000110110101執(zhí)行交換指令,將高、低字節(jié)的內(nèi)容交換指令SWAP執(zhí)行結(jié)果四、填充指令指令格式:FULLIN,OUT,N

允許輸入有效時,將單字長數(shù)據(jù)IN填充到OUT開始的N個字存儲單元。例:FILL1000,VW100,127.6運算類指令

一、加法二、減法三、乘法四、除法運算類指令包括算術(shù)運算指令和邏輯運算指令。算術(shù)運算包括加、減、乘、除、數(shù)學(xué)函數(shù)和增減運算;邏輯運算包括與、或、非和異或運算。五、數(shù)學(xué)函數(shù)六、增減七、邏輯運算+IIN1,OUT允許輸入有效時,將兩個單字長(16位)的有符號整數(shù)相加,產(chǎn)生一個16位整數(shù)和結(jié)果。例+IVW0,VW41.+I

整數(shù)加法一、加法運算指令LDI0.0//使能輸入端+IVW0,VW4//整數(shù)加法

//VW0+VW4=VW4I0.0ADD_IADD_IENENOVW0VW4VW4IN1IN2OUT允許輸入有效時,將兩個雙字長(32位)的有符號雙整數(shù)相加,產(chǎn)生一個32位雙整數(shù)和結(jié)果。2.+D,雙整數(shù)加法指令格式:

+DIN1,OUT例:+DVD0,VD4允許輸入有效時,將兩個雙字長(32位)的實數(shù)相加,產(chǎn)生一個32位實數(shù)和結(jié)果。3.+R,實數(shù)加法指令格式:

+RIN1,OUT例:+RVD0,VD4二、減法運算指令允許輸入有效時,將兩個單字長(16位)的有符號整數(shù)相減,產(chǎn)生一個16位整數(shù)差結(jié)果。1.-I,整數(shù)減法指令格式:-IIN2,OUT例:-IAC0,VW4允許輸入有效時,將兩個雙字長(32位)的有符號雙整數(shù)相減,產(chǎn)生一個32位雙整數(shù)差結(jié)果。2.-D,雙整數(shù)減法指令格式:-DIN2,OUT例:-DAC0,VD4指令格式:

-RIN2,OUT

允許輸入有效時,將兩個雙字長(32位)的實數(shù)相減,產(chǎn)生一個32位實數(shù)差結(jié)果。3-R,實數(shù)減法例:-RAC0,VD4三、乘法運算指令格式:*IIN1,OUT

允許輸入有效時,將兩個單字長(16位)的有符號整數(shù)相乘,產(chǎn)生一個16位整數(shù)積結(jié)果。1.*I,整數(shù)乘法例:*IAC0,VW4指令格式:*DIN1,OUT

允許輸入有效時,將兩個雙字長(32位)的有符號雙整數(shù)相乘,產(chǎn)生一個32位雙整數(shù)積結(jié)果。2.*D,雙整數(shù)乘法例:*DAC0,VD4指令格式:*RIN1,OUT

允許輸入有效時,將兩個雙字長(32位)的實數(shù)相乘,產(chǎn)生一個32位實數(shù)積結(jié)果。3.*R,實數(shù)乘法指令例:*RAC0,VD4四、除法運算指令指令格式:

/IIN2,OUT

允許輸入有效時,將兩個單字長(16位)的有符號整數(shù)相除,產(chǎn)生一個16位整數(shù)商結(jié)果。1./I,整數(shù)除法指令例/IAC0,VW4指令格式:

/DIN2,OUT

允許輸入有效時,將兩個雙字長(32位)的有符號雙整數(shù)相除,產(chǎn)生一個32位雙整數(shù)商結(jié)果。2./D,雙整數(shù)除法指令例:/DAC0,VD4指令格式:/RIN2,OUT

允許輸入有效時,將兩個雙字長(32位)的實數(shù)相除,產(chǎn)生一個32位實數(shù)商結(jié)果。3./R,實數(shù)除法指令例:/RAC0,VD4指令格式:MULIN1,OUT

允許輸入有效時,將兩個單字長(16位)的有符號整數(shù)相乘,產(chǎn)生一個32位雙整數(shù)積結(jié)果。MUL,整數(shù)完全乘法例MULVW0,VD2指令格式:DIVIN2,OUT

允許輸入有效時,將兩個單字長(16位)的有符號整數(shù)相除,產(chǎn)生一個32位的余數(shù)和商結(jié)果。DIV

整數(shù)完全除法例DIVVW0,VD2LDI0.0MOVWVW10,VW32MULVW20,VD30MOVWAC0,VW202DIVVW100,VD200五、數(shù)學(xué)函數(shù)指令指令格式:SQRTIN,OUT

允許輸入有效時,將一個雙字長(32位)的實數(shù)開平方,產(chǎn)生一個32位實數(shù)平方根結(jié)果。1.SQRT,求平方根例:SQRTAC0,VD4指令格式:LNIN,OUT

允許輸入有效時,將一個雙字長(32位)的實數(shù)求自然對數(shù),產(chǎn)生一個32位實數(shù)結(jié)果。LN求自然對數(shù)例:LNAC0,VD4指令格式:EXPIN,OUT

允許輸入有效時,將一個雙字長(32位)的實數(shù)求自然指數(shù),產(chǎn)生一個32位實數(shù)結(jié)果。3.EXP求自然指數(shù)例:EXPAC0,VD44.SIN、COS、TAN,分別為正弦、余弦、正切指令例:SINAC0,VD4指令格式:SININ,OUTCOSIN,OUTTANIN,OUT

允許輸入有效時,將一個雙字長(32位)的實數(shù)求三角函數(shù),產(chǎn)生一個32位實數(shù)結(jié)果。

六、增減指令1.INCB、DECB,分別為字節(jié)增、減指令指令格式:INCBOUTDECBOUT

允許輸入有效時,將一個字節(jié)長(8位)的無符號數(shù)增加1、減少1,產(chǎn)生一個8位無符號數(shù)結(jié)果。

例:

INCBVB4指令格式:INCWOUTDECWOUT

允許輸入有效時,將一個字長(16位)的無符號數(shù)增加1、減少1,產(chǎn)生一個16位無符號數(shù)結(jié)果。例:

INCWVW42.INCW、DECW字增、減指令指令格式:INCDOUTDECDOUT

允許輸入有效時,將一個雙字長(32位)的無符號數(shù)增加1、減少1,產(chǎn)生一個32位無符號數(shù)結(jié)果。3.INCD、DECD雙字增、減指令例:INCDVD100LDI0.0LDC30CTU,+24LDC30INCD

D100七、邏輯運算指令1.字節(jié)邏輯運算指令指令格式:ANDBIN1,OUTORBIN1,OUTXORBIN1,OUTINVBOUT允許輸入有效時,將兩個(或1個)字節(jié)型數(shù)據(jù)按位進(jìn)行邏輯運算,產(chǎn)生一個字節(jié)型數(shù)據(jù)結(jié)果。例:ANDBVB0,AC1ORBVB0,AC0指令操作數(shù)地址單元單元長度

(n字節(jié))運算前值運算結(jié)果值1)IN1VB010101001101010011IN2(OUT)AC1111110001010100012)IN1VB010101001101010011IN2(OUT)AC0100110110011101113)IN1VB010101001101010011IN2(OUT)AC2111011010100010014)IN(OUT)VB1010101001110101100指令格式:ANDWIN1,OUTORWIN1,OUTXORWIN1,OUTINVWOUT2.字邏輯運算指令允許輸入有效時,將兩個(或1個)字型數(shù)據(jù)按位進(jìn)行邏輯運算,產(chǎn)生一個字型數(shù)據(jù)結(jié)果。例:ANDWVW0,AC1ORWVW0,AC0允許輸入有效時,將兩個(或1個)雙字型數(shù)據(jù)按位進(jìn)行邏輯運算,產(chǎn)生一個雙字型數(shù)據(jù)結(jié)果。例:ANDDVD0,AC1ORDVD0,AC03.雙字邏輯運算指令指令格式:ANDDIN1,OUTORDIN1,OUTXORDIN1,OUTINVDOUTLDI0.0MOVBMB1,MB3ANDBMB2,MB3ORWVW100,VW102MOVDVD200,VD208XORDVD204,VD208MOVBVB10,AC0INVBAC07.8

程序控制類指令

空操作指令

結(jié)束及暫停指令

看門狗復(fù)位指令

跳轉(zhuǎn)指令

子程序指令

程序循環(huán)指令

順序控制繼電器指令

與ENO指令7.8.1結(jié)束指令

指令格式:END(無操作數(shù))

MEND(無操作數(shù))

END,條件結(jié)束指令。允許輸入有效時,終止主程序執(zhí)行,返回主程序起點。MEND,無條件結(jié)束指令。終止主程序的執(zhí)行,返回主程序起點用Micro/Win32編程時,編程人員不需手工輸入MEND指令。注意事項1.結(jié)束指令只能用在主程序中,不能用在子程序和中斷程序中,而條件結(jié)束指令可用在無條件結(jié)束前結(jié)束主程序;2.調(diào)試程序時,在程序的適當(dāng)位置插入無條件結(jié)束指令,可分段調(diào)試程序;3.可以利用程序的結(jié)果狀態(tài)、系統(tǒng)狀態(tài)或外部設(shè)置等作為條件結(jié)束指令的輸入;4.使用編程軟件編程時,不需手工輸入無條件結(jié)束指令,編譯時會自動添加到到主程序的結(jié)尾。7.8.2、子程序指令

建立子程序子程序調(diào)用帶參數(shù)的子程序調(diào)用1.建立子程序

可用編程軟件Edit菜單中的Insert選項,選擇Subroutine,以建立或插入一個新的子程序,同時在指令樹窗口可以看到新建的子程序圖標(biāo),默認(rèn)的程序名是SBR_n,編號n從0開始按遞增順序生成,可以在圖標(biāo)上直接更改子程序的程序名。在指令樹窗口雙擊子程序的圖標(biāo)就可對它進(jìn)行編輯。2.子程序調(diào)用

子程序調(diào)用指令

CALLSBR_n子程序條件返回指令

CRET子程序無條件返回指令

RET下圖所示的程序?qū)崿F(xiàn)用外部控制條件分別調(diào)用兩個子程序。

調(diào)用帶參數(shù)的子程序時需要設(shè)置調(diào)用的參數(shù),參數(shù)在子程序的局部變量表中定義參數(shù)由地址、參數(shù)名稱、變量類型和數(shù)據(jù)類型描述。子程序最多可傳遞16個參數(shù)。3.帶參數(shù)的子程序調(diào)用

參數(shù)名稱最多用8個字符表示,第一個字符不能是數(shù)字。變量類型:傳入子程序參數(shù)(IN)、傳入和傳出子程序參數(shù)(IN/OUT)、傳出子程序參數(shù)(OUT)、暫時變量(TEMP)4種類型。4種變量類型的參數(shù)在局部變量表中的位置必須按IN、IN/OUT、OUT、TEMP的先后順序排列。數(shù)據(jù)類型:布爾型、字節(jié)型、字型、雙字型、整型、雙整型、實型。字節(jié)型、字型、雙字型分別指明一個1、2或4字節(jié)的無符號整數(shù)參數(shù)。整型、雙整型分別指明2或4字節(jié)的有符號整數(shù)參數(shù)。實型數(shù)據(jù)類型指明4字節(jié)的單精度IEEE浮點參數(shù)局部變量表L地址參數(shù)名參數(shù)類型數(shù)據(jù)類型說明無ENINBOOL指令使能輸入?yún)?shù),由系統(tǒng)自動分配L0.0in1INBOOL第一個參數(shù),輸入布爾類型,分以L0.0變量LB1in2INBYTE第二個參數(shù),字節(jié)類型LD2in3INREAL第三個參數(shù),實型I0.0I0.2SBR_0ENin1in2in3VB20VD30LDI0.0CALLSBR_0,I0.2,VB20,VD30七、程序循環(huán)指令

循環(huán)開始指令FORINDX,INIT,FINAL循環(huán)結(jié)束指令NEXT一、空操作指令

NOP,空操作指令。允許輸入有效時,執(zhí)行空操作指令。空操作指令不影響用戶程序的執(zhí)行,操作數(shù)N是標(biāo)號,是一個0—255的常數(shù)。指令格式: NOP N例: NOP30 STOP,暫停指令。允許輸入有效時,該指令使主機(jī)CPU的工作方式由RUN切換到STOP方式,從而立即終止用戶程序的執(zhí)行。STOP指令在梯形圖中以線圈形式編程。指令不含操作數(shù)。指令的執(zhí)行不考慮對特殊標(biāo)志寄存器位和能流的影響。指令格式:STOP(無操作數(shù))返回本節(jié)暫停指令

注意事項STOP指令可以用在主程序、子程序和中斷程序中;在中斷程序或子程序中執(zhí)行STOP指令時,中斷程序或子程序立即終止,并忽略全部等待執(zhí)行的中斷,返回主程序繼續(xù)執(zhí)行主程序的剩余部分,并在主程序的結(jié)束處,完成從RUN方式到STOP方式的轉(zhuǎn)換。四、看門狗復(fù)位指令

WDR,看門狗復(fù)位指令。當(dāng)允許輸入有效時,執(zhí)行WDR指令,每執(zhí)行一次,看門狗定時器就被復(fù)位一次。可用以延長掃描周期,從而可以有效避免看門狗超時錯誤。指令格式:WDR (無操作數(shù))程序?qū)嵗褐噶頢TOP、END、WDR的應(yīng)用如下圖所示。LDSM5.0//檢查I/O錯誤O SM4.3//運行時刻檢查

//編程O I0.3//外部切換開關(guān)STOP //條件滿足,由RUN//切換到STOP方式

LD I0.5 //外部停止控制END//停止程序執(zhí)行

//LDM0.4//用觸點重新觸發(fā)WDR //看門狗定時器五、跳轉(zhuǎn)指令

跳轉(zhuǎn)開始指令JMPn。允許輸入有效時,使程序流程跳到指定標(biāo)號n處執(zhí)行。執(zhí)行跳轉(zhuǎn)指令時,邏輯堆棧的棧頂值總是1。跳轉(zhuǎn)標(biāo)號指令LBLn。標(biāo)記程序段,作為跳轉(zhuǎn)指令執(zhí)行時跳轉(zhuǎn)到的目的位置,取值0--255。注意事項1.跳轉(zhuǎn)指令和標(biāo)號指令只能使用在同一程序塊中,不能在不同的程序塊中互相跳轉(zhuǎn);2.執(zhí)行跳轉(zhuǎn)后,被跳過程序段的各元器件的狀態(tài)為:Q、M、S、C等元器件的位保持跳轉(zhuǎn)前狀態(tài);計數(shù)器C停止計數(shù),當(dāng)前值保持跳轉(zhuǎn)前的狀態(tài);對定時器來說,因刷新方式不同而工作狀態(tài)不同。注意事項1.如果起動了FOR/NEXT循環(huán),除非在循環(huán)內(nèi)部修改了結(jié)束值,否則循環(huán)就一直進(jìn)下去,直到結(jié)束;2.再次啟動時,它將初始值INIT傳送到指針I(yè)NDX中;3.FOR指令必須和NEXT指令配套使用;4.FOR和NEXT允許循環(huán)嵌套,最多可嵌套8層,但各個嵌套之間一定不可有交叉現(xiàn)象。八、順序控制繼電器指令段開始指令

LSCRS*.*段轉(zhuǎn)移指令

SCRTSx.x段結(jié)束指令

SCRE注意事項1.順序控制繼電器指令僅對S有效;2.不能把同一個S位用于不同的程序中;3.在順序控制繼電器指令段不能使用跳轉(zhuǎn)指令和標(biāo)號指令;4.在順序控制繼電器指令段不能使用FOR,NEXT和END指令;5.在狀態(tài)位發(fā)生轉(zhuǎn)移后,所有的段的元件一般也要復(fù)位,如果希望繼續(xù)輸出,可使用置位/復(fù)位指令。例:根據(jù)舞臺燈光效果的要求,控制紅、綠、黃三色燈。要求:紅燈先亮,2s后綠燈亮,再過3s后黃燈亮。待紅、綠、黃燈全亮3min后,全部熄滅。試用順序控制指令設(shè)計其控制程序。九、與ENO指令

ENO梯形圖和功能塊圖編程時指令盒的布爾能流輸出端。如果指令盒的能流輸入有效,同時執(zhí)行沒有錯誤,ENO就置位,將能流向下傳遞。當(dāng)用梯形圖編程時,且指令盒后串聯(lián)一個指令盒或線圈,語句表語言中用AENO指令描述。指令格式:AENO(無操作數(shù))AENO

只能在語句表中使用,將棧頂值和ENO位進(jìn)行邏輯與運算,結(jié)果保存到棧頂。5.2特殊指令

時鐘指令

中斷指令

通信指令

高速計數(shù)器指令

高速脈沖輸出指令

PID回路指令

一、時鐘指令

TODR,讀實時時鐘指令。允許輸入有效時,系統(tǒng)讀當(dāng)前時間和日期,裝入一個以T為起始字節(jié)的8字節(jié)緩沖區(qū)TODW,寫實時時鐘指令。用來設(shè)定實時時鐘。允許輸入有效時,系統(tǒng)將包含當(dāng)前時間和日期的一個8字節(jié)緩沖區(qū)將裝入時鐘。

時鐘緩沖區(qū)字節(jié)TT+1T+2T+3T+4T+5T+6T+7含義年月日小時分鐘秒0星期幾范圍00~9901~1201~3100~2300~5900~59001~07例:控制要求:編寫一段程序,可實現(xiàn)讀、寫實時時鐘,并以BCD碼顯示分鐘。時鐘緩沖區(qū)從VB100開始。程序中的子程序SBR_0為寫時鐘子程序,將當(dāng)前時間寫入從VB100開始的8字節(jié)時間緩沖區(qū),時間設(shè)置如下表所示。程序?qū)崿F(xiàn):讀寫時鐘程序下圖所示讀寫時鐘二、中斷指令1.中斷源及種類中斷源,即中斷事件發(fā)出中斷請求的來源。S7-200具有最多34個中斷源,每個中斷源都分配一個編號用以識別,稱為中斷事件號。這些中斷源大致分為三大類:通信中斷、輸入/輸出中斷、時基中斷2.中斷優(yōu)先級中斷優(yōu)先級由高到低依次是:通信中斷輸入/輸出中斷時基中斷每類中斷中的不同中斷事件又有不同的優(yōu)先級。主機(jī)中的所有中斷事件及優(yōu)先級如下表所示。中斷事件及優(yōu)先級中斷事件及優(yōu)先級隊列CPU221CPU222CPU224CPU226通信中斷隊列4448I/O中斷隊列16161616定時中斷隊列8888中斷隊列和每個隊列的最大中斷數(shù)

隊列SM位通信中斷隊列溢出SM4.0I/O中斷隊列溢出SM4.1定時中斷隊列溢出SM4.2中斷隊列的溢出位

3.中斷調(diào)用即響應(yīng)中斷程序,使系統(tǒng)對特殊的內(nèi)部或外部事件作出響應(yīng)。系統(tǒng)響應(yīng)中斷時自動保護(hù)現(xiàn)場。中斷處理完成時,又自動恢復(fù)現(xiàn)場。中斷調(diào)用指令:中斷允許指令(ENI),中斷禁止指令(DISI),中斷連接指令(ATCH),中斷分離指令(DTCH),中斷返回指令(CRETI、RETI)進(jìn)入RUN模式時,所有中斷被禁止,ENI指令可以全局地允許所有被連接的中斷事件。DISI指令全局性地允許中斷排列等候,但不允許執(zhí)行中斷程序,直到用全局中斷允許指令ENI重新激活中斷。把一個中斷事件(EVNT)和一個中斷程序(INT)連接起來,并允許這個中斷事件。中斷分離指令DTCH用來斷開一個中斷事件(EVNT)和所有的中斷程序(INT)之間的聯(lián)系,并禁止了該中斷事件。在控制它的邏輯條件滿足時,從中斷程序返回。編程軟件自動為各中斷程序添加無條件返回指令。中斷調(diào)用程序4.中斷程序中斷程序必須由三部分構(gòu)成:中斷程序標(biāo)號、中斷程序指令和無條件返回指令。要求編制方法注意事項三、通信指令

XMT,自由口發(fā)送指令

RCV,自由口接收指令

NETR,網(wǎng)絡(luò)讀指令

NETW,網(wǎng)絡(luò)寫指令

GPA,獲取口地址指令四、高速計數(shù)器指令

高速計數(shù)器介紹高速計數(shù)器指令高速計數(shù)器的使用方法應(yīng)用實例1.高速計數(shù)器介紹

數(shù)量及編號中斷事件類型工作模式及輸入點

(1)數(shù)量及編號高速計數(shù)器在程序中使用時的地址編號用HSCn來表示,HSC表編程元件名稱為高速計數(shù)器,n為編號。HSCn除了表示高速計數(shù)器的編號之外,還代表兩方面的含義:高速計數(shù)器位和高速計數(shù)器當(dāng)前值。編程時,從所用的指令可以看出是位還是當(dāng)前值。(2)中斷事件類型高速計數(shù)器的計數(shù)和動作可采用中斷方式進(jìn)行控制,與CPU的掃描周期關(guān)系不大,高速計數(shù)器的中斷事件大致分為3類:當(dāng)前值等于預(yù)設(shè)值中斷、輸入方向改變中斷和外部復(fù)位中斷。所有高速計數(shù)器都支持當(dāng)前值等于預(yù)設(shè)值中斷。每個高速計數(shù)器的3種中斷的優(yōu)先級由高到低,不同高速計數(shù)器之間的優(yōu)先級又按編號順序由高到低。具體對應(yīng)關(guān)系如下表所示。(3)工作模式及輸入點工作模式輸入端連接高速計數(shù)器的工作模式共有12種。以模式4為例,時序如下圖所示。HSC0HSC3HSC4HSC5模式I0.0I0.1I0.2I0.1I0.3I0.4I0.5I0.40時鐘時鐘時鐘時鐘1時鐘復(fù)位時鐘復(fù)位3時鐘方向時鐘方向4時鐘方向復(fù)位時鐘方向復(fù)位6加時鐘減時鐘加時鐘減時鐘7加時鐘減時鐘復(fù)位加時鐘減時鐘復(fù)位9A相時鐘B相時鐘A相時鐘B相時鐘10A相時鐘B相時鐘復(fù)位A相時鐘B相時鐘復(fù)位HSC1HSC2模式I0.6I0.7I1.0I1.1I1.2I1.3I1.4I1.50時鐘時鐘1時鐘復(fù)位時鐘復(fù)位2時鐘復(fù)位啟動時鐘復(fù)位啟動3時鐘方向時鐘方向4時鐘方向復(fù)位時鐘方向復(fù)位5時鐘方向復(fù)位啟動時鐘方向復(fù)位啟動6加時鐘減時鐘加時鐘減時鐘7加時鐘減時鐘復(fù)位加時鐘減時鐘復(fù)位8加時鐘減時鐘復(fù)位啟動加時鐘減時鐘復(fù)位啟動9A相時鐘B相時鐘A相時鐘B相時鐘10A相時鐘B相時鐘復(fù)位A相時鐘B相時鐘復(fù)位11A相時鐘B相時鐘復(fù)位啟動A相時鐘B相時鐘復(fù)位啟動模式4操作時序選用某個高速計數(shù)器在某種工作模式下工作時,高速計數(shù)器的輸入端不是任意選擇的,必須按系統(tǒng)指定的輸入點。具體分配如下表所示。2.高速計數(shù)器指令

HDEFHSC,MODE

定義高速計數(shù)器指令。允許輸入有效時,為指定的高速計數(shù)器分配一種工作模式。HSC表示高速計數(shù)器編號,取值0-5,MODE表示工作模式,取值0-11。

HSCN

高速計數(shù)器指令。允許輸入有效時,根據(jù)高速計數(shù)器配套的控制字節(jié),并按照HDEF指令指定的工作模式,設(shè)置高速計數(shù)器并控制其工作。N表示高速計數(shù)器編號,為0-5.每個高速計數(shù)器都有固定的特殊繼電器與之相配合,完成高速計數(shù)功能。具體對應(yīng)關(guān)系如下表所示。3.高速計數(shù)器的使用方法

HSC0HSC1HSC2HSC3HSC4HSC5描述SM36.5SM46.5SM56.5SM136.5SM146.5SM156.5計數(shù)方向標(biāo)志0=減數(shù)器1=加計數(shù)SM36.6SM46.6SM56.6SM136.6SM146.6SM156.6當(dāng)前值等于預(yù)置值標(biāo)志SM36.7SM46.7SM56.7SM136.7SM146.7SM156.7當(dāng)前值大于預(yù)置值標(biāo)志狀態(tài)字節(jié)含義控制字節(jié)含義選擇高速計數(shù)器及工作模式設(shè)置控制字節(jié)執(zhí)行HDEF指令設(shè)定當(dāng)前值和預(yù)設(shè)值設(shè)置中斷事件并全局開中斷執(zhí)行HSC指令使用高速計數(shù)器的步驟4.應(yīng)用實例

要對一高速事件進(jìn)行精確控制,通過對脈沖輸出信號進(jìn)行增計數(shù),計數(shù)當(dāng)前值達(dá)到24時產(chǎn)生中斷,HSC重新從0開始計數(shù),中斷次數(shù)需

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論