OMRON常用指令_第1頁
OMRON常用指令_第2頁
OMRON常用指令_第3頁
OMRON常用指令_第4頁
OMRON常用指令_第5頁
已閱讀5頁,還剩72頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第3章 常用指令與編程現(xiàn)代PLC都具有豐富的指令系統(tǒng),利用這些指令編程,能夠容易地實(shí)現(xiàn)各種復(fù)雜的控制操作。對于PLC系統(tǒng),指令是最基礎(chǔ)的編程語言,掌握常用指令的功能及其應(yīng)用方法,這對用好PLC及其系統(tǒng)設(shè)計極其重要。本章主要介紹CS1的各類指令,但由于該機(jī)型的指令數(shù)量較多,限于篇幅等因素,本書只對常用的指令進(jìn)行介紹。按功能可將這些指令分為基本指令、數(shù)據(jù)操作指令、常用控制指令和高級指令等。其他指令,可參考OMRON公司提供的編程手冊和操作手冊等資料。3.1 基本指令可編程序控制器的基本指令主要包括順序輸入指令、順序輸出指令、順序控制指令、定時器和計數(shù)器指令等。這些指令用來執(zhí)行以位(bit)為單位的

2、邏輯操作,它們是用PLC替代繼電器控制的基礎(chǔ)。梯形圖中每個條件是否為ON或OFF,取決于分配給它的操作數(shù)位的狀態(tài)。一般來說,當(dāng)該操作數(shù)位為1時,對應(yīng)的繼電器線圈通電、常開條件變?yōu)镺N和常閉條件變?yōu)镺FF;反之,該操作數(shù)位為0,則對應(yīng)的繼電器線圈斷電、常開條件為OFF和常閉條件為ON。在梯形圖中,一條指令前面的常開、常閉等條件的邏輯組合產(chǎn)生了執(zhí)行條件,執(zhí)行條件是否具備,決定于指令的狀態(tài)。對于繼電器線圈類指令,當(dāng)執(zhí)行條件ON(具備)時,則對應(yīng)的繼電器線圈得電;當(dāng)執(zhí)行條件為OFF(不具備)時,對應(yīng)的繼電器線圈斷電。對于功能類指令,當(dāng)執(zhí)行條件為ON時,該功能指令執(zhí)行;當(dāng)執(zhí)行條件為OFF時,則該功能指令

3、不執(zhí)行。指令行上的邏輯組合可以分成幾個部分,每一部分均為一個邏輯塊。利用邏輯塊能夠更有效地編程。順序輸入指令常用順序輸入指令包括加載、基本邏輯運(yùn)算、邏輯塊,主要用于對繼電器進(jìn)行最基本的輸入操作,如表3-1所示。表3-1 順序輸入指令表指令名稱助記符 操作數(shù)典型梯形圖一般功能操作數(shù)范圍備注加載LD 繼電器號A將常開觸點(diǎn)(A)接到母線上,在每個行或塊的起點(diǎn)處使用,常用于創(chuàng)建一個ON/OFF執(zhí)行條件。CIO區(qū)、W區(qū)、H區(qū)、A區(qū)、T區(qū)、C區(qū)、任務(wù)標(biāo)志區(qū)、條件標(biāo)志、時鐘脈沖、使用變址寄存器間接尋址。特定功能加載非LDNOT 繼電器號A1A2A 將常閉觸點(diǎn)(A)接到母線上,其他同上。與AND 繼電器號將常

4、開觸點(diǎn)(A1)與常開觸點(diǎn)(A2)串聯(lián)。與非 繼電器號ANDNOT A1A2 將(常開或常閉)觸點(diǎn)(A1)與常閉觸點(diǎn)(A2)串聯(lián)?;騉R 繼電器號 A1A2將常開觸點(diǎn)(A1)和常開觸點(diǎn)(A2)并聯(lián)。指令名稱助記符典型梯形圖一般功能操作數(shù)范圍備注或非ORNOT 繼電器號A2A1將(常開或常閉)觸點(diǎn)(A1)和常閉觸點(diǎn)(A2)并聯(lián)。同上。同上。邏輯塊與ANDLD AB將觸點(diǎn)組(塊)A和觸點(diǎn)組(塊)B串聯(lián)。 無無邏輯塊或ORLD AB將觸點(diǎn)組(A塊)和觸點(diǎn)組(B塊)并聯(lián)。 非NOT NOT(520)每個循環(huán)將執(zhí)行條件取反,在非指令的右側(cè)需接指令(執(zhí)行條件)。條件通UP UP(521)當(dāng)輸入條件從OFF

5、ON時,UP(521)把執(zhí)行條件在一個周期內(nèi)變ON。條件斷DOWNDOWN(522)當(dāng)輸入條件從ON OFF時,DOWN(522)把執(zhí)行條件在一個周期內(nèi)變ON 。指令名稱助記符 操作數(shù)典型梯形圖一般功能操作數(shù)范圍備注位測試NSLDTSTLDTST(350)S NLD TST(350),AND TST(350)和OR TST(350)指令在程序中的用途類似于LD、AND 和OR 指令,當(dāng)指定字S中的指定位N為ON 時,執(zhí)行條件變?yōu)镺N , 反之執(zhí)行條件變?yōu)镺FF 。CIO區(qū)、W區(qū)、H區(qū)、A區(qū)、T區(qū)、C區(qū)、DM區(qū)、無區(qū)號EM區(qū)、有區(qū)號EM區(qū)、二進(jìn)制間接DM/EM地址、BCD間接DM/EM地址、數(shù)據(jù)

6、寄存器、使用變址寄存器間接尋址。操作數(shù)N還可以是常數(shù)#0000#000F,即&0&15。無位測試AND TSTS NANDTST(350)同上。OR TSTS NTST(350)OR位測試LD TSTNS NTSTN(351)LD TSTN(351)( T TST(350)LD TSTN(351), AND TSTN(351)和OR TSTN(351)指令在程序中的用途類似于LD NOT、ANT NOT 和OR NOT 指令,當(dāng)指定字S中的指定位N為ON 時,執(zhí)行條件為OFF ,反之執(zhí)行條件為ON 。無AND TSTNAND TST(350)S NTSTN(351)OR TST

7、NOR S NTSTN(351) TST(350)2. 幾點(diǎn)說明上表中指令除了列出的一般功能外,有些指令還加注前綴符號,下面分別加以說明。(1)操作數(shù)位上表中順序輸入指令的操作數(shù),以位為單位進(jìn)行操作,且不影響標(biāo)志位。 (2)指令的特定功能表中的特定功能是指這些指令具有微分和刷新功能等,其中上升沿微分的前綴標(biāo)志為“”,下降沿微分的前綴標(biāo)志為“%”,刷新的前綴標(biāo)志為“!”,它們還可以組合成前綴標(biāo)志為 “!”和“!%”。如加載LD指令,有LD,%LD,!LD,!LD,!%LD。因此,上表中的特定功能指這些指令具有,%,!,!,!%所規(guī)定的功能,在后面章節(jié)里,有一些只標(biāo)明了其中一種,說明它只具有其中的

8、某一種特定功能。A在指令符號前沒有加前綴 “”和“%”及其組合標(biāo)志的指令,稱為微分型指令。當(dāng)執(zhí)行條件為ON時,指令在每個循環(huán)周期都將執(zhí)行。而對于微分型指令,當(dāng)執(zhí)行條件為OFFON(上升沿)或ONOFF(下降沿)變化時,該指令只執(zhí)行一次。在梯形圖中,上升沿和下降沿微分指令中,通常采用和符號表示,例如LD A的梯形圖可用 表示。(3)輸入指令中的UP和DOWN指令與上述上升沿微分或下降沿微分的輸入指令有相似功能。當(dāng)UP(521)所接收的執(zhí)行條件從OFF變?yōu)镺N時,使下一個指令的執(zhí)行條件變ON一個循環(huán)。當(dāng) DOWN(522)說接收的執(zhí)行條件ON變?yōu)镺FF時,使下一個指令的執(zhí)行條件變ON一個循環(huán)。(4

9、)在下面的順序輸出指令中的DIFU和DIFD指令也有微分功能,且可以和刷新指令相結(jié)合。 (5)下降沿微分(%)僅LD、AND、OR和REST指令有效。為建立其他指令的下降沿微分變化,可用DIRU(014)或DOWN(522)控制工作位來控制指令的執(zhí)行。(6)對于操作數(shù)中的可用數(shù)據(jù)區(qū)CIO、W、H、A、T、C等,如果沒有特別說明,均指這些區(qū)中所有的位。而任務(wù)標(biāo)志區(qū)為TK0000TK0031;時鐘脈沖有0.02s、0.1s、0.2s、1s、1min時鐘脈沖。DM區(qū)為D00000D32767,無區(qū)號EM區(qū)為E00000E32767;有區(qū)號EM區(qū)為En_00000En_32767(n=0C)。二進(jìn)制間

10、接DM/EM地址為D00000D32767、E00000E32767、En_00000En_32767(n=0C)。數(shù)據(jù)寄存器為DR0DR15。BCD間接DM/EM地址為* D00000*D32767、*E00000*E32767、*En_00000*En_32767(n=0C)。(7)常見的條件標(biāo)志,如表3-2所示。 表3-2 常見的條件標(biāo)志條件標(biāo)志編程器標(biāo)志CX-P標(biāo)志錯誤標(biāo)志ERP-ER訪問錯誤標(biāo)志AERP-AER進(jìn)位標(biāo)志CYP-CY大于標(biāo)志P-GT等于標(biāo)志P-EQ小于標(biāo)志P-LT負(fù)標(biāo)志NP-N上溢出標(biāo)志OFP-OF下溢出標(biāo)志UFP-UF大于或等于標(biāo)志P-GE不等于標(biāo)志P-NE本書后面出

11、現(xiàn)的特定功能以上述為參考,不再累述。順序輸出指令1.順序輸出指令表常用順序輸出指令,包括輸出和輸出非、各種置位和復(fù)位以及保持指令等,如表3-3所示。表3-3 常用的順序輸出指令表指令名稱助記符A典型梯形圖一般功能特定功能輸出OUT A輸出指令,將把執(zhí)行運(yùn)算的結(jié)果(執(zhí)行條件)輸出到指定的繼電器(位),是繼電器線圈的驅(qū)動指令。!OUT輸出非OUT NOT輸出非指令,將把執(zhí)行運(yùn)算的結(jié)果(執(zhí)行條件)取反后,再輸出到指定的繼電器(位),也是繼電器線圈的驅(qū)動指令。!OUT NOT保持R(復(fù)位)S(置位)BKEEP(011)KEEP用于將輸出繼電器置為ON并保持。當(dāng)置位端S為ON時,KEEP(011)使B為

12、ON,直到復(fù)位端R為ON。當(dāng)S和R同時為ON時,R端輸入優(yōu)先。!KEEP上升沿微分DIFUBDIFU(013)當(dāng)檢測到執(zhí)行條件從OFFON(上升沿)變化瞬間,繼電器觸點(diǎn)B(位)僅接通一個掃描周期。!DIFU下降沿微分DIFDBDIFD(014)當(dāng)檢測到執(zhí)行條件從ONOFF(下降沿)變化瞬間,繼電器觸點(diǎn)B(位)僅接通一個掃描周期。注:DIFU和DIFD指令對使用次數(shù)不加限制。!DIFD置位SETSETB當(dāng)執(zhí)行條件為ON時,把操作位B變?yōu)镺N,并且當(dāng)執(zhí)行條件為OFF時,不影響操作數(shù)的狀態(tài)。簡單講就是將輸出繼電器置為ON狀態(tài),簡稱置位。是復(fù)位RSETRSETB 當(dāng)執(zhí)行條件為ON時,把操作位B置為OF

13、F,并且當(dāng)執(zhí)行條件為OFF時,不再影響操作數(shù)的狀態(tài)。簡單講是將輸出繼電器置為OFF狀態(tài),簡稱復(fù)位。是多位置位SETASETA(530) DN1 N2將指定連續(xù)位的數(shù)都置為ON。其中D為起始字, N1為起始位, N2為位數(shù)。即 SETA(530)將從D的N1位開始連續(xù)到N2位的數(shù)都變?yōu)镺N,其他位保持不變。SETA指令名稱助記符典型梯形圖一般功能特定功能多位復(fù)位RSTARSTA(531) DN1 N2RSTA(531)各個表示和SETA(530)一致,只是結(jié)果相反,使從D的N1位開始連續(xù)到 N2位的數(shù)都變?yōu)镺FF,其他位保持不變。RSTA單位置位SETBSETB(532) DN 當(dāng)執(zhí)行條件為ON

14、時,SETB(532)將指定字中的某位N置為ON。當(dāng)執(zhí)行條件為OFF時,該位狀態(tài)保持不變。它與SET指令不同,SETB(532)可用在一個DM或EM字中將某一位置為ON。其中,D為字地址,N為位(015)號。SETB!SETB單位復(fù)位RSTBRSTB(533)DN這條指令用法和SETB大致相同,不同的是當(dāng)執(zhí)行條件為ON時,SETB(532)將指定字中的某位N置為OFF。RSTB單位輸出OUTBOUTB(534)DNOUTB(354)將指令執(zhí)行條件的狀態(tài)輸出給指定位。與OUT不同的是OUTB(534)能控制DM區(qū)或EM區(qū)。當(dāng)執(zhí)行條件為ON時,OUTB(534)使字D的第N位變?yōu)镺N;當(dāng)執(zhí)行條件為

15、OFF時,OUTB(534)使字D第N位變?yōu)镺FF。OUTB!OUTB2. 可用數(shù)據(jù)區(qū)的說明(1)OUT、OUT NOT指令可用的數(shù)據(jù)區(qū)有CIO區(qū)、W區(qū)、H區(qū)、A區(qū)、TR區(qū)以及可使用變址寄存器間接尋址。(2)KEEP、DIFU、DIFD、SET和RESET指令可用的數(shù)據(jù)區(qū)有CIO區(qū)、W區(qū)、H區(qū)、A區(qū)、使用變址寄存器間接尋址,沒有TR區(qū)。(3)SETA/RSTA、SETB/RSTB、OUTB指令可用的數(shù)據(jù)區(qū)有CIO區(qū)、W區(qū)、H區(qū)、T區(qū)、C區(qū)、DM區(qū)、無區(qū)號EM區(qū)、有區(qū)號EM區(qū)、二進(jìn)制間接DM/EM地址、BCD間接DM/EM地址、數(shù)據(jù)寄存器、使用變址寄存器間接尋址。特別是SETA/RSTA、SET

16、B/RSTB、OUTB指令的操作數(shù)D在A區(qū)為A448A959,N或N1、N2在A區(qū)為A000A959。SETB/RSTB、OUTB指令N的操作數(shù)也可以是常數(shù),其值為015。SETA/RSTA的操作數(shù)N1的范圍為015,操作數(shù)N2的范圍為065535。順序輸入和順序輸出指令是最基本的指令,也是最常用的指令,這些指令在所有程序中幾乎都會用到。除此之外,還有順序控制、定時器和計數(shù)器指令,它們也是PLC程序中常用的指令,下面分別加以介紹。 順序控制指令1. 順序控制指令表順序控制指令包括聯(lián)鎖與解鎖、跳轉(zhuǎn)、循環(huán)以及結(jié)束指令等,如表3-4所示。表3-4 順序控制指令表指 令助記符典型梯形圖一般功能空操作N

17、OP(000)此指令不執(zhí)行任何操作,簡稱空操作。在編程時插入該指令便于程序的檢查和修改。結(jié)束END(001)END(001)IL(002)ILC(003)NJMP(004)NJME(005)NCJP(510)NCJPN(511)JMP0(515)JME0(516)NFOR(512)NEXT(513)表示主程序結(jié)束。程序最后結(jié)束時若無此指令,執(zhí)行時將視為錯誤。聯(lián)鎖與聯(lián)鎖解除IL(002)ILC(003)聯(lián)鎖IL(002) 和聯(lián)鎖解除ILC(003) 指令用于互鎖IL(002)和ILC(003)之間的所有輸出,它們總是一起使用,用于成組控制IL(002) 和ILC(003)之間的指令, 可解決分支

18、點(diǎn)執(zhí)行條件的存儲問題。跳轉(zhuǎn)與跳轉(zhuǎn)結(jié)束JMP(004)JME(005)JMP(004)是根據(jù)一個指定條件,可跳過程序中的某一個程序段。當(dāng)執(zhí)行條件為ON時,則程序和沒有跳轉(zhuǎn)指令一樣運(yùn)行;當(dāng)條件為OFF時,則程序立即跳轉(zhuǎn)到跳轉(zhuǎn)結(jié)束指令之后的程序繼續(xù)執(zhí)行,JMP(004)與JME(005)之間維持上一掃描周期的執(zhí)行結(jié)果。條件跳轉(zhuǎn)CJP(510)CJP(510)的用法和JMP(004)相反。當(dāng)CJP(510)的執(zhí)行條件為ON時,程序直接跳轉(zhuǎn)至CJP(510)指令相同編號N的第一個JME(005)去執(zhí)行。CJP(510)與JME(005)總是成對使用。條件跳轉(zhuǎn)CJPN(511)CJPN(511)用法幾乎等

19、同于JMP(004)。當(dāng)CJPN(511)的執(zhí)行條件為OFF時,程序直接跳轉(zhuǎn)至與CJPN(511)指令相同編號N的第一個JME(005)。CJPN(511)和JME(005)總是成對使用。多路跳轉(zhuǎn)與跳轉(zhuǎn)結(jié)束JMP0(515)JME0(516)當(dāng)JMP0(515)的執(zhí)行條件為OFF時,從JMP0(515)至下一個JME0(516)的所有指令都被當(dāng)作是空操作NOP(000)。JMP0(515)和JME0(516)也是成對使用。在程序中使用的對數(shù)無任何限制。循環(huán)FOR-NEXTFOR(512)NEXT(513)對FOR(512)和NEXT(513)之間的指令,重復(fù)執(zhí)行指定的次數(shù)N。R然后繼續(xù)執(zhí)行NE

20、XT后面的程序,可用BREAK(512)指令退出循環(huán)。FOR(512)和NEXT(513)成對使用。退出循環(huán)BREAK(514)BREAK(514)(514)(514)在FOR-NEXT(513)循環(huán)中編程,BREAK(514)指令對所給的執(zhí)行條件取消循環(huán)執(zhí)行。循環(huán)中余下的指令作為空操作處理。 2.可用數(shù)據(jù)區(qū)的說明(1)END、IL/ILC、JMP0/JME0、NEXT和 BREAK指令無操作數(shù)。(2)JMP、CJP、CJPN、FOR指令可用的數(shù)據(jù)區(qū)為CIO區(qū)、W區(qū)、H區(qū)、A區(qū)、T區(qū)、C區(qū)、DM區(qū)、有區(qū)號EM區(qū)、無區(qū)號EM區(qū)、二進(jìn)制間接DM/EM地址、BCD間接DM/EM地址、常數(shù),數(shù)據(jù)寄存器

21、使用變址寄存器間接尋址。當(dāng)這些指令的操作數(shù)為常數(shù)時,取值范圍為#0000#03FF,即&0&1023。(3)JME指令的操作數(shù)只能為常數(shù),范圍為#0000#03FF,即&0&1023?!纠?.1】 分支電路的編程方法 分支電路如圖3-1(a)所示。圖中A點(diǎn)為分支點(diǎn),右側(cè)分為三條支路,且每條支路都有觸點(diǎn)控制,這種連接方式既不同于觸點(diǎn)與觸點(diǎn)的連接或邏輯塊與邏輯塊的連接,也不同于連續(xù)輸出,因此用前面介紹的輸入或邏輯等指令都不能編程,此時需要用到聯(lián)鎖和聯(lián)鎖解除指令。分析該圖的功能可以看出,當(dāng)000000為OFF時,000210、000211、000212都處于斷電狀態(tài);

22、當(dāng)000000為ON時,000210、000211、000212的狀態(tài)取決于各自支路上的控制觸點(diǎn)。所以,將圖(a)用聯(lián)鎖和聯(lián)鎖解除指令時,梯形圖可修改為圖(b)所示, 000000用于控制IL和ILC之間的聯(lián)鎖程序執(zhí)行。當(dāng)000000為ON時,IL(002)和ILC(003)之間的程序正常執(zhí)行,相當(dāng)于沒有這對指令存在一樣;當(dāng)000000為OFF時,在IL和ILC之間的所有程序互鎖,則三條支路都處于斷開狀態(tài),每個線圈都處于斷電狀態(tài)。可見,圖(a)與圖(b)的功能完全一樣,這種電路又稱為復(fù)合輸出。000000000213000212000211000210(002)(003)00000000021

23、0000211000212000213 (a) (b) 圖3-1 IL/ILC在分支電路中的應(yīng)用幾點(diǎn)說明: 不論IL前面的條件是ON或OFF,PLC都要對ILILC之間的聯(lián)鎖程序段處理,因此使用該指令需要占用掃描時間;當(dāng)條件000000由ON變?yōu)镺FF時,IL與ILC指令之間的所有輸出都被復(fù)位。 IL和ILC指令可以成對使用,也可以用多個IL指令只配一個ILC指令,但不允許嵌套使用(如ILILILCILC)。在圖3-2中,圖(a)聯(lián)鎖程序?qū)崿F(xiàn)的功能和圖(b)一樣,圖(c)是用助記符編寫的同一程序。當(dāng)多個IL指令配一個ILC指令使用時,程序檢查時雖然會有出錯信息顯示,但不影響程序的正常執(zhí)行。00

24、0000000000021100021200021000021000021100021200021200021000021100000(002)(002)(003)(a) (b) (c) 圖3-2 IL/ILC的應(yīng)用舉例0000000000000000000000210000211000212000210000211000212000212000211000210處理分支的梯形圖還有另一種辦法,即使用暫存繼電器TR,暫存繼電器TR共有16位,分別為TR00TR15。TR位可用來暫時存儲執(zhí)行結(jié)果,如果一個TR位被設(shè)置于一個分支點(diǎn)處,則當(dāng)前的執(zhí)行結(jié)果就會被存儲在指定的TR位中。例如圖3-3 (a)

25、 中梯形圖存在一個分支點(diǎn),用TR位來處理,其等效電路如圖3-3(b)所示,與圖(a)的功能完全一樣,助記符見圖的中間所示。一般情況下,用TR位處理,比用聯(lián)鎖指令處理的程序要長一些。 (a)原電路 (b)等效電路圖3-3 用TR位處理分支的編程舉例幾點(diǎn)說明: TR位只有16位,在使用次數(shù)上雖然沒有限制,但在在同一程序段中,TR號不能重復(fù)使用; TR不是獨(dú)立的編程指令,只能和LD或OUT等基本指令一起使用; TR位不能用編程器或其他設(shè)備進(jìn)行監(jiān)視; 直接用梯形圖編程時,則不用TR,該程序能夠自動執(zhí)行圖(a)的梯形圖;如果梯形圖用圖(b)表示時,則會提示“會和地址混淆,TR00不允許作為符號名”。所以

26、,圖(b)是對應(yīng)于圖(a)的一種等效,只是為了說明問題方便?!纠?.2】 跳轉(zhuǎn)指令的編程方法 如圖3-4所示為 JMP(004)和JME(005)指令的應(yīng)用示例000000JMP00000001000210000002000211000003000212JME00LD 000000JMP(004) 00LD 000001OUT 000210LDNOT 000002OUT 000211LD 000003OUT 000212JME(005) 00000000000210000211000212000013JME00JMP00000001 (a) (b) (c)圖3-4 JMP(004)和JME(0

27、05)指令的應(yīng)用示例上例中,000000作為JMP00指令的條件,當(dāng)000000為ON時,JMP和JME指令之間的程序順序連續(xù)執(zhí)行,相當(dāng)于沒有這對指令一樣,不會發(fā)生跳轉(zhuǎn);當(dāng)000000為OFF時,跳過JMP和JME指令之間的程序,即輸出000210、000211和000212保持原來狀態(tài)(當(dāng)前值),轉(zhuǎn)到JME00之外的程序去執(zhí)行。在程序的梯形圖中使用圖(b)形式進(jìn)行編程。使用JMP和JME指令時,需注意以下幾點(diǎn): 在一個程序中可以有多組JMP和JME指令,用跳轉(zhuǎn)號對其進(jìn)行編號,跳轉(zhuǎn)號的范圍為001023。若跳轉(zhuǎn)號不在此范圍時,ER將出錯(ON)。 跳轉(zhuǎn)號00是專用跳轉(zhuǎn)號。當(dāng)JMP00指令的輸入

28、條件OFF時,在JMP00和JME00指令之間的程序?qū)⒈粧呙璧遣槐粓?zhí)行。因此,它將占用掃描時間,而其他跳轉(zhuǎn)號的跳轉(zhuǎn)指令在相同條件下,相應(yīng)程序段不被掃描; 在一個程序中,JMP00和JME00指令可以多次使用,而其他跳轉(zhuǎn)號的跳轉(zhuǎn)指令只能使用一次,故JMP00和JME00指令可以不成組使用,即“JMPJMPJME”格式。雖然這種格式在程序檢查時會提示出錯,但程序能夠正常執(zhí)行。 JME(005)-JMP(004)可做循環(huán)用,在JMP(004)前用JME(005),只要JMP(004)的執(zhí)行條件OFF,在JME(005)和JMP(004)間的指令會重復(fù)執(zhí)行,如果執(zhí)行條件不變ON或在最大循環(huán)時間內(nèi)不執(zhí)

29、行結(jié)束指令END(001)會產(chǎn)生循環(huán)時間太長錯誤。 不同的任務(wù)塊之間不允許相互跳轉(zhuǎn),即JMP(004)和JME(005)必須在同一任務(wù)塊中使用,否則ERR會出錯(ON)。【例3.3】 循環(huán)指令的編程方法 FOR(512)和NEXT(513)循環(huán)可以嵌套使用,且多至15級,如圖3-5(a)所示為FOR(512)和NEXT(513)循環(huán)調(diào)用的舉例。在這個例子中,程序段A、B和C按ABBC ,ABBC 和 ABBC的順序循環(huán)執(zhí)行3次。 使用一個BREAK(514),則從一個FOR-NEXT循環(huán)中退出;若需要從嵌套循環(huán)中退出,則需要多個BREAK(514)指令,BREAK (514)后循環(huán)中余下的指令

30、作空操作處理。如圖3-5(b)所示為BREAK(514)在多個FOR-NEXT循環(huán)指令中的運(yùn)用。圖3-5(c)為循環(huán)的一個簡單例子,循環(huán)程序段中將D00100的內(nèi)容傳給D00200中所示的地址里,然后,D00200中的內(nèi)容+1。循環(huán)程序段循環(huán)了3次。FOR#2A FOR#3B NEXTTTTC NEXTTTT(a)1FOR#3NEXTTTT(b)FOR#2NEXTTTT2BREAK退出循環(huán)2BREAK退出循環(huán)1(c)FOR#3NEXTTTTMOVD00100D002000+D00200重復(fù)3次退出循環(huán),執(zhí)行循環(huán)外的程序。圖3-5 FOR(512)和NEXT(513)循環(huán)指令的應(yīng)用示例使用循環(huán)指

31、令FOR-NEXT時,應(yīng)注意以下問題。 當(dāng)FOR-NEXT的嵌套循環(huán)數(shù)超過15個時,錯誤標(biāo)志ER為ON; FOR-NEXT循環(huán)一定要編在同一個任務(wù)中,如果這些指令不在同一個任務(wù)中,則不執(zhí)行重復(fù); JMP(004)跳轉(zhuǎn)指令可以在FOR-NEXT循環(huán)中執(zhí)行,但它不能跳出FOR-NEXT循環(huán); 塊編程指令、多重跳轉(zhuǎn)和結(jié)束指令、步定義和步開始指令不能用在FOR-NEXT循環(huán)指令中?!纠?.4】 KEEP指令的應(yīng)用利用KEEP指令可以設(shè)計報警輸出,如圖3-6所示,圖中000000、000001和000002為異常輸入信號。當(dāng)控制電路發(fā)生異常情況時,繼電器380000工作,使輸出繼電器000200得電,可

32、接通報警信號燈進(jìn)行報警,直至復(fù)位(R)輸入時報警才能解除。KEEP(011)380000 00000000005000000000000200RS000003000001000002380000圖3-6 應(yīng)用KEEP指令的梯形圖程序利用SETB(532)/RSTB(533)也可以和KEEP指令一樣直接對操作數(shù)的位進(jìn)行置位或復(fù)位,但使用時也有不同點(diǎn)。KEEP指令的置位和復(fù)位輸入必須與這個指令一起被編入程序,而SETB(532)/RSTB(533)完全可以獨(dú)立編程,并可任意次使用。 定時器和計數(shù)器指令定時器和計數(shù)器的指令主要包括普通定時器、高速定時器、1ms定時器、累積定時器、長定時器、多路輸出定

33、時器和普通計數(shù)器、可逆計數(shù)器以及復(fù)位定時器/計數(shù)器。除長定時器、多路輸出定時器的指令外,其他的指令都有一個定時器/計數(shù)器(編)號N。其中,1ms定時器號為00000015之間,其他的定時器號為00004095之間。在編程時,定時器號不能重疊。計數(shù)器號為00004095,計數(shù)器號也不能重疊。與小型機(jī)不同,CS1系列的定時器號和計數(shù)器號是各自獨(dú)立編號的。在定時方式上,除了累積定時器和多路輸出定時器是遞增方式之外,其他的都為遞減方式。在刷新方法上,除了可以用BCD碼之外,還可以用二進(jìn)制數(shù)設(shè)置。用二進(jìn)制數(shù)時,只要在BCD碼指令助記符的后綴加“X”字母即可。如普通定時器TIM,輸入是BCD碼;而TIMX

34、(550)輸入為二進(jìn)制數(shù)。輸入BCD碼的設(shè)定值(SV)為09999,而二進(jìn)制數(shù)的SV為065535。當(dāng)使用二進(jìn)制數(shù)指令進(jìn)行計算時,其中間結(jié)果也可以直接用于定時器/計數(shù)器的SV(值)。1.普通定時器和高速定時器(1) 普通定時器指令TIM/TIMX(550) 普通定時器TIM/TIMX(550)是單位為0.1s的遞減計數(shù)器,其梯形圖如圖3-7所示。TIMNSVTIMX(550)NSV 圖3-7 普通定時器的梯形圖N 為定時器號,TIM和TIMX(550)的定時器號都為04095;SV為設(shè)定值,TIM的SV為09999,定時精度為0.1s,則定時的時間范圍為0999.9S;TIMX(550)的SV

35、為065535,定時精度是0.1s,故定時范圍為06553.5s。在CIO區(qū)、W區(qū)、H區(qū)、A區(qū)、定時器區(qū)、DM區(qū)、無區(qū)號EM區(qū)和有區(qū)號EM區(qū)的字可以作為SV的操作數(shù);二進(jìn)制間接DM/EM地址、BCD間接DM/EM地址、常數(shù)數(shù)據(jù)寄存器、使用變址寄存器間接尋址這些數(shù)據(jù)以及常數(shù)也可以作為SV的操作數(shù)。當(dāng)SV為常數(shù)時,若輸入用BCD碼表示,應(yīng)加前綴#符號;用二進(jìn)制數(shù)表示時,其前綴符號和數(shù)的范圍為&0000&65535,而用十六進(jìn)制表示為#0000#FFFF。N操作數(shù)只能是定時器區(qū)和使用寄存器區(qū)的間接尋址數(shù)據(jù)。關(guān)于SV和N的設(shè)置涉及到標(biāo)志問題,如果N通過變址寄存器間接尋址,但變址寄存器中

36、的地址不是定時器PV的地址;或者在BCD模式下,而SV不包含BCD數(shù)據(jù)時,則ER標(biāo)志都變?yōu)镺N。等于標(biāo)志(=)、負(fù)標(biāo)志(N)為OFF。其他情況下的ER標(biāo)志為OFF。當(dāng)定時器輸入為OFF時,指定的定時器N被復(fù)位,即定時器當(dāng)前值(PV)恢復(fù)為SV,并且完成標(biāo)志位變?yōu)镺FF;當(dāng)定時器輸入(條件)從OFF到ON時,定時器開始從PV=SV遞減,只要定時器輸入保持為ON,則當(dāng)前值每間隔0.1s就自動減1,且連續(xù)遞減;直到PV減為0000時,定時器的完成標(biāo)志才變?yōu)镺N;此后,PV值和完成標(biāo)志狀態(tài)將保持,直到重新啟動定時器,即定時器輸入由OFF再變ON時, PV恢復(fù)為SV,重新進(jìn)入定時。定時器的時序關(guān)系如圖3

37、-8所示。ON定時器當(dāng)前值OFFONOFFONOFF定時器輸入完成標(biāo)志圖3-8 普通定時器的時序圖 (2) 高速定時器指令TIMH(015)/TIMHX(551)TIMH(015)NSV 高速定時器TIMH(015)/TIMHX(551)的梯形圖如圖3-9所示。TIMHX(015)NSV 圖3-9 高速定時器的梯形圖高速定時器TIMH(015)和定時器TIM的符號含義相同,N是定時器號,其范圍為04095,SV為設(shè)定值,設(shè)定范圍為09999。它們的主要差異是定時精度不同。高速定時器TIMH(015)/TIMHX(551)的定時精度為0.01s,所以TIMH(015)的定時范圍為099.99s,

38、而TIMHX(551)的定時范圍為0655.35s。高速定時器TIMH(015)的SV 和N值的操作數(shù)、功能和注意事項(xiàng)與普通定時器基本一致,這里不再累述。2.其他定時器指令(1) 1ms定時器指令TMHH(540)1ms定時器指令是單位為1ms的遞減定時器,其梯形圖如圖3-10所示。TMHHX(540) N SVTMHH(540) N SV圖3-10 1ms定時器的梯形圖這里的N與前面的定時器號不同,只能在十進(jìn)制的00000015之間選擇。SV的設(shè)定值為09999,則定時時間為09.999s;TMHHX(552)的SV為065535,所以它的定時范圍為065.535s。1ms定時器指令的基本功

39、能與TIM指令一致,但定時器的精度為0.001s,即1ms。1ms定時器指令的操作數(shù)SV 與TIM指令一致;操作數(shù)N也在定時器區(qū)和可使用變址寄存器間接尋址,只是范圍不一樣。1ms定時器指令的注意事項(xiàng)也與TIM 指令一致。(2)累積定時器指令TTIM(087)累積定時器TTIM(087)/TTIMX(555)是單位為0.1S的遞增定時器,其梯形圖如圖3-11所示。TTIM(087) N SV定時器輸入復(fù)位輸入TTIMX(087) N SV定時器輸入復(fù)位輸入 圖3-11 累積定時器的梯形圖N的范圍為04095,TTIM(087)的設(shè)定值SV必須為#0000#9999。所以,其累積時間為0999.9

40、s。TTIMX(555) 的設(shè)定值SV必須為&0&65535,用十六進(jìn)制表示為#0000#FFFF,其累積時間為06553.5s。當(dāng)定時器輸入(條件)為ON,TTIM(087)開始從當(dāng)前值遞增。當(dāng)定時器輸入為OFF,定時器當(dāng)前值會停止遞增,但維持原值。當(dāng)定時器輸入又為ON,定時器在原值的基礎(chǔ)上繼續(xù)遞增計時。當(dāng)前值PV到達(dá)設(shè)定值SV時,則定時器完成標(biāo)志變?yōu)镺N。其時序關(guān)系如圖3-12所示。定時器輸入定時器PV值完成標(biāo)志位復(fù)位輸入PV保持計時繼續(xù)SV圖3-12 累積定時器的時序圖累積定時器與其他定時器的最大區(qū)別在于其輸入為OFF時,PV值會維持原值,在輸入再次為ON時,PV值會繼續(xù)

41、遞增。這種功能可應(yīng)用于許多間斷定時的控制程序,可防止意外如斷電時能夠記憶前段的計時時間。例如在傳送帶操作過程中意外斷電,當(dāng)繼續(xù)上電后,在累積定時器的控制下,傳送物品可以準(zhǔn)時傳送。(3)長定時器TIML(542)/ TIMLX(534)長定時器TIML(542)是單位為0.1S的遞減定時器,其梯形圖如圖3-13所示。TIML(542)D1D2SVTIMLX(542)D1D2SV 。圖3-13 長定時器的梯形圖D1為完成標(biāo)志,其中0位作為TIML(542)的完成標(biāo)志,其他位不用;D2為PV字,由D2和D2+1兩個字的BCD碼組成,D2和D2+1必須在同一數(shù)據(jù)區(qū); SV字由S和S+1兩個字的BCD碼

42、組成,SV和SV+1必須在同一數(shù)據(jù)區(qū),TIML(542)的SV范圍為099999999,而TIML(542)的SV范圍為#0#99999999。因此,TIML(542)最長的定時時間可達(dá)到115天,而TIMLX(534)最長的定時時間可達(dá)49710天。上述三者操作數(shù)可用的數(shù)據(jù)區(qū)為CIO區(qū)、W區(qū)、H區(qū)、A區(qū)、DM區(qū)、無區(qū)號EM區(qū)、有區(qū)號EM區(qū)。在這些區(qū)里,D1操作數(shù)為這些區(qū)里所有的單元,而D2和SV這些區(qū)的最高單元不可用,如D1的操作是在CIO區(qū)為00006143,而D2和SV則為00006142。另外采用二進(jìn)制間接(尋址)DM/EM區(qū)、BCD間接DM/EM區(qū)和使用變址寄存器間接尋址時,都可作為

43、這三者的操作數(shù)。對于SV,定時器區(qū)、計數(shù)器區(qū)的單元和常數(shù)也可以用作操作數(shù)。 注意:D2和D2+1中包含的PV值或SV和SV+1中包含的SV值,如果它們不是BCD碼,則長定時器的錯誤標(biāo)志(ER)為ON,其他情況都為OFF。(4)多路輸出定時指令MTIM(543)/ MTIMX(544)多路輸出定時器指令MTIM(543)/ MTIMX(544)是一個具有8個獨(dú)立的SV和完成標(biāo)志,單位為0.1s的遞增定時器,梯形圖如圖3-14所示。MTIMX(544)D1D2SMTIM(543)D1D2S圖3-14 多路輸出定時器的梯形圖D1為完成標(biāo)志字,包括了8位完成標(biāo)志、暫停和復(fù)位(位),其中前8位即第0位到

44、第7位為完成標(biāo)志位,第8、9位為復(fù)位和暫停位。D2為PV字,其數(shù)值范圍為#0000#9999。S為具有8個獨(dú)立的SV字,其中S0S+7的每個S字分別對應(yīng)一個完成標(biāo)志位,即S0對應(yīng)D1中的第0位完成標(biāo)志位,S+1對應(yīng)D1中的第1位完成標(biāo)志位,依此類推,S+7對應(yīng)D1字中的第7位完成標(biāo)志位。每個SV的BCD碼范圍為#0000#9999。MTIMX(544)指令僅與MTIM(543)的SV范圍不同而已,為&0&65535,用十六進(jìn)制表示為#0#FFFF。D1、D2和S的操作數(shù)可用的數(shù)據(jù)區(qū)為CIO區(qū)、W區(qū)、H區(qū)、A區(qū)、DM區(qū)、無區(qū)號EM區(qū)、有區(qū)號EM區(qū)、定時器區(qū)、計數(shù)器區(qū)。D1和D2為

45、上述區(qū)中所有的字,而S為這些區(qū)除后面7個字的所有字。如在CIO區(qū),D1和D2為00006143,而S 為00006136。另外二進(jìn)制間接DM/EM地址,BCD間接DM/EM地址、使用變址寄存器間接尋址也可作為這三者的操作數(shù)。特別提醒的是數(shù)據(jù)寄存器DR0DR15可作為D2的操作數(shù),而常數(shù)不能作為這三者的操作數(shù)。當(dāng)執(zhí)行條件為ON,而復(fù)位和暫停位為OFF時,MTIM(543)在D2中PV值遞增(加);如果復(fù)位為OFF和暫停位為ON時,定時器則暫時停止遞加PV值,并保持原值;當(dāng)暫停位再次變?yōu)镺FF時,MTIM(543)恢復(fù)定時,即在原來定時器定時的(保持值)基礎(chǔ)上繼續(xù)遞加PV值。每次MTIM(543)

46、執(zhí)行后,PV(D2中的內(nèi)容)會與S0S+7中的8個SV相比較。如果其中一些小于或等于PV值,相應(yīng)完成標(biāo)志(D1位0007)會變?yōu)镺N。當(dāng)PV遞增到達(dá)最大值9999時,則PV自動復(fù)位到0000,并且所有的完成標(biāo)志位都變?yōu)镺FF。當(dāng)復(fù)位為ON時,不管暫停位如何,PV都復(fù)位到0000,所有的標(biāo)志位都變?yōu)镺FF,并且PV不會被更新。如果D1指定為CIO區(qū)域中的字,則可用SET和RSST指令來控制暫停和復(fù)位(位狀態(tài))。當(dāng)使用少于8個SV時,則對應(yīng)最后一個被用的SV后面的字應(yīng)設(shè)置為0000,MTIM(543)會忽略為SV值為0000及余下的所有SV。多路輸出定時器的PV值及完成標(biāo)志都在MTIM(543)執(zhí)

47、行時刷新。多路輸出定時器用在IL(002)和ILC(003)、JMP(004)和JME(005)程序時,其PV值都會被保持。用MTIM(543)時要確定完成標(biāo)志和PV(D1和D2)所指定的字沒有被其他指令所用,否則,定時器可能導(dǎo)致定時不準(zhǔn)確。3.普通計數(shù)器和可逆計數(shù)器指令(1)普通計數(shù)器CNT/ CNTX(546) 普通計數(shù)器CNT是遞減計數(shù)器,其梯形圖如圖3-15所示。CNTX(546) N SV復(fù)位輸入R計數(shù)輸入CPCNT N SV復(fù)位輸入R計數(shù)輸入CP 圖3-15 普通計數(shù)器的梯形圖圖中,N為計數(shù)器號,十進(jìn)制數(shù)范圍為04095,一般不能重疊,如果有兩個計數(shù)器使用相同的計數(shù)器號,但并不同時

48、使用,在程序檢查時會產(chǎn)生一條重復(fù)錯誤,但不影響計數(shù)器的正常操作;SV為設(shè)置值,CNT的SV范圍為00019999,而CNTX的SV范圍為&0&65535。SV操作數(shù)可用的數(shù)據(jù)區(qū)規(guī)定為CIO區(qū)、W區(qū)、H區(qū)、A區(qū)、T區(qū)、DM區(qū)、EM區(qū)的所有字,都可以作為SV的操作數(shù);另外,二進(jìn)制間接DM/EM地址、BCD間接DM/EM地址、常數(shù)數(shù)據(jù)寄存器、使用變址寄存器間接尋址這些數(shù)據(jù)也可以作為SV的操作數(shù)。 計數(shù)器為遞減計數(shù)。當(dāng)復(fù)位端R為OFF,在CP端執(zhí)行條件從OFF變ON(相當(dāng)于上升沿)時,計數(shù)器從PV=SV值開始依次減計數(shù);當(dāng)計數(shù)器的當(dāng)前值PV計到零時,計數(shù)器的完成標(biāo)志變?yōu)镺N,并一直保持ON,直到復(fù)位為止。計數(shù)器具有斷電保持功能,當(dāng)電源斷電時,計數(shù)器的當(dāng)前值保持不變。當(dāng)SV不是BCD數(shù)或間接尋址的DM通道不存在時,ER標(biāo)志位置為ON(出錯)。(2)可逆計數(shù)器指令CNTR(012)/ CNTRX(012)可逆計數(shù)器指令的梯形圖,如圖3-16所示,N和SV的操作數(shù)規(guī)定與CNT指令一致。CNTR(012)NSV增量輸入減量輸入復(fù)位輸入CNTRX(012)NSV增量輸入減量輸入復(fù)位輸入 圖3-16 可逆計數(shù)器指令的梯形圖 可逆計數(shù)器CNTR(012)有加計數(shù)端、減計數(shù)端和復(fù)位端。當(dāng)加計數(shù)端有上升沿脈沖輸入時,計數(shù)器當(dāng)前

溫馨提示

  • 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

提交評論