PLC課件第5章1分析_第1頁
PLC課件第5章1分析_第2頁
PLC課件第5章1分析_第3頁
PLC課件第5章1分析_第4頁
PLC課件第5章1分析_第5頁
已閱讀5頁,還剩490頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第5章PLC功能指令系統(tǒng)5.1功能指令的表示形式及含義5.2功能指令的分類及操作數(shù)5.3程序流控制功能指令

5.4傳送和比較指令5.5四則運算和邏輯運算指令5.6循環(huán)移位和移位指令5.7數(shù)據(jù)處理指令5.8高速處理指令5.9方便指令5.10外部I/O指令5.11FX2N系列外部設備指令5.12浮點數(shù)運算指令5.13位控制指令5.14實時時鐘處理指令5.15外部設備用指令5.16觸點比較指令

習題

5.1功能指令的表示形式及含義

5.1.1功能指令的表示形式功能指令的表示形式與基本指令和順控指令有所不同,它由助記符(功能號)和操作數(shù)兩部分構(gòu)成。助記符表示功能指令的功能,操作數(shù)為操作對象,即操作數(shù)據(jù)、地址等。圖5.1為傳送指令在編程中的格式示例。當X0為ON時執(zhí)行該指令,將源(Source)操作數(shù)[S·]指定的字元件D10中的數(shù)據(jù)傳送到目標(Destination)操作數(shù)[D·]指定的字元件D12中。

圖5.1功能指令的梯形圖表達形式5.1.2功能指令的含義功能指令有多種類型,采用功能號和助記符來表示。在使用功能指令時,必須掌握功能指令中各參數(shù)所表示的含義。下面以圖5.2所示的數(shù)據(jù)傳送指令為例加以說明。

圖5.2數(shù)據(jù)傳送指令功能說明

圖5.2中①~⑥的說明如下:①為功能指令的功能號。FX2N系列PLC的功能指令的功能號從FNC?00到FNC?246。由于功能指令的功能號不便記憶、理解和掌握,所以使用時功能指令用功能號+助記符的形式來表示,助記符代表功能指令的含義。②為操作數(shù)據(jù)類型。功能指令中操作數(shù)的類型有16位和32位。(D)表示操作數(shù)為32位數(shù)據(jù)類型,無(D)表示操作數(shù)為16位數(shù)據(jù)類型。③為助記符。助記符是該指令功能的英文縮寫。如加法指令的英文寫法為“addtioninstruction”,助記符即為ADD;比較指令“compareinstruction”,助記符即為CMP等。MOV為數(shù)據(jù)傳送指令,用以實現(xiàn)數(shù)據(jù)的傳送。

④為脈沖/連續(xù)執(zhí)行指令標志(P)。功能指令中若帶有(P),為脈沖執(zhí)行指令,僅在條件滿足時執(zhí)行一次該功能指令;若指令中沒有(P),則為連續(xù)執(zhí)行指令,即在條件滿足時,每個掃描周期都執(zhí)行一次該功能指令。圖5.2中的數(shù)據(jù)傳送指令為脈沖執(zhí)行指令,當X0為ON時僅傳送一次數(shù)據(jù)。

⑤、⑥為操作數(shù)。操作數(shù)為功能指令中涉及的參數(shù)或數(shù)據(jù),分為源操作數(shù)、目標操作數(shù)和其他操作數(shù)。源操作數(shù)在指令執(zhí)行后不改變其內(nèi)容;目標操作數(shù)在指令執(zhí)行后,其內(nèi)容根據(jù)指令功能做出相應的改變;其他操作數(shù)多為常數(shù),或者是對源操作數(shù)、目標操作數(shù)做出補充說明的參數(shù)。常數(shù)K表示十進制數(shù),H表示十六進制數(shù)。圖5.2中標注⑤為源操作數(shù),⑥為目標操作數(shù)。

5.2功能指令的分類及操作數(shù)

5.2.1功能指令的分類FX2N系列PLC的功能指令極其豐富,根據(jù)其功能可概括為14大類,分別為程序流程控制指令、傳送和比較指令、四則邏輯運算指令、循環(huán)移位指令、數(shù)據(jù)處理指令、高速處理指令、方便指令、外部設備I/O指令、外部設備SER指令、浮點運算指令、定位指令、時鐘運算指令、外圍設備指令和觸點比較指令。

5.2.2功能指令的操作數(shù)

1.位元件1)位元件和字元件位元件是只處理ON/OFF狀態(tài)的元件,例如X、Y、M和S等;其他處理數(shù)字數(shù)據(jù)的元件,例如T、C和D,稱為字元件。

2)位組合元件4個位元件組合成一個位組合元件單元。位組合元件用KnMm表示,其中n表示組數(shù),m表示首元件編號(m可以是內(nèi)部資源允許的任意值),例如:K1X0表示由X3~X0共4個輸入繼電器的4位組合的數(shù)據(jù)。K2X0表示由X7~X0共8個輸入繼電器的8位組合的數(shù)據(jù)。K3Y0表示由Y13~Y0共12個輸出繼電器的12位組合的數(shù)據(jù)。

在16位數(shù)(或者32位數(shù))運算時,參與操作的位組合單元數(shù)由K1~K4(或K1~K8)來指定,長度不足時的高位均為零,并且只能處理正數(shù)。圖5.3表示當輸入繼電器X0為ON時,將由X4~X13組合的2位BCD碼轉(zhuǎn)換成二進制數(shù)存儲到數(shù)據(jù)寄存器D10中。

圖5.3位組合元件的應用

2.數(shù)據(jù)寄存器(D)數(shù)據(jù)寄存器用于存儲數(shù)值數(shù)據(jù),寄存器都是16位(最高位為符號位),可處理的數(shù)值范圍為-32768~+32767。相鄰兩個的數(shù)據(jù)寄存器可組成32位數(shù)據(jù)寄存器(最高位為符號位),可處理的數(shù)值范圍為-2147483648~+2147483647。

數(shù)據(jù)寄存器種類、編號及使用見表3.11。

3.變址寄存器(V、Z)變址寄存器V0~V7和Z0~Z7除了可作為普通的16位數(shù)據(jù)寄存器外,也可以兩個組合(Z為低位,V為高位)作為32位寄存器,如圖5.4所示。在功能指令中,還可以同其他的元件編號或數(shù)值組合使用,用來改變內(nèi)部元件的編號或數(shù)值。

圖5.4變址寄存器及其組合

可以利用變址寄存器改變編號或數(shù)據(jù)的元件有X、Y、M、S、T、P、C、K、H、KnX、KnY、KnM及KnS等。修改實例如圖5.5所示。

圖5.5變址寄存器修改參數(shù)實例

4.文件寄存器(D)PLC內(nèi)部的斷電保持數(shù)據(jù)寄存器可用來存儲PLC運行過程中所生成的大量數(shù)據(jù),為了便于數(shù)據(jù)管理和長期保存,常將這些數(shù)據(jù)以文件形式進行存儲。FX2N系列的數(shù)據(jù)寄存器D1000以后的數(shù)據(jù)寄存器是斷電保持型寄存器,通過參數(shù)設定后,可作為最大7000點的文件寄存器,也可通過參數(shù)設定,將7000點文件寄存器分成14塊,每個塊500個文件寄存器。D1000以后的一部分設定為文件寄存器,剩余部分可作為通用的掉電保持寄存器使用。

5.指針(P/I)在跳轉(zhuǎn)指令中,當跳轉(zhuǎn)條件成立時,需用某一標識符表示該跳轉(zhuǎn)程序的入口地址。此標識符就是指針,與跳轉(zhuǎn)、子程序、中斷等指令一起使用。地址號采用十進制進行編號。按用途指針可分為分支用指針(P)和中斷用指針。各類指針編號如表5.1所示。

表5.1各類指針編號表

1)指針P分支指針用于條件跳轉(zhuǎn)指令和子程序調(diào)用指令,其地址號可以是P0~P62和P64~P127。P63為結(jié)束指令專用指針,相當于程序結(jié)束指令(END),不能用于分支指針。分支指針P的應用實例如圖5.6所示。在圖5.6(a)中,當X0=ON時,執(zhí)行條件跳轉(zhuǎn)指令,程序跳轉(zhuǎn)到該跳轉(zhuǎn)指令指定的標號P0位置,隨后程序繼續(xù)執(zhí)行。在圖5.6(b)中,當X0=ON時,執(zhí)行調(diào)用子程序指令所指定標號的子程序,當執(zhí)行到子程序返回指令FNC?02SRET時,返回到主程序原來位置繼續(xù)執(zhí)行。

圖5.6分支指針P的應用實例(a)條件跳轉(zhuǎn);(b)子程序調(diào)用

2)指針I(yè)●輸入中斷指針輸入中斷的中斷信號源來自于外界輸入信號(X0~X5),外界輸入信號條件成立時,開始執(zhí)行相應的中斷程序,并且不受PLC的掃描周期的影響,因此輸入中斷可以處理比掃描周期更短或需要優(yōu)先處理的輸入信號。例如對于輸入中斷指針I(yè)410,當輸入繼電器X4由ON變?yōu)镺FF時,停止執(zhí)行主程序,開始執(zhí)行中斷指針為I410后面的中斷程序,在執(zhí)行到中斷返回指令(IRET)時返回主程序并繼續(xù)執(zhí)行。

●定時器中斷指針定時器中斷的中斷源信號來自其內(nèi)部的定時器。例如I650為每隔50?ms停止執(zhí)行主程序,開始執(zhí)行一次中斷指針為I650后面的中斷程序,執(zhí)行到中斷返回指令(IRET)時返回主程序并繼續(xù)執(zhí)行?!窀咚儆嫈?shù)器中斷指針高速計數(shù)器中斷是指當高速計數(shù)器和該計數(shù)器設定值相等時,就執(zhí)行相應的中斷子程序,主要用于高速計數(shù)器需優(yōu)先處理計數(shù)結(jié)果的控制系統(tǒng)中。

6.標志位1)一般標志位功能指令在操作過程中,其運行結(jié)果將對下列標志位產(chǎn)生影響:M8020:零標志,若運算結(jié)果為0時,M8020=ON;M8021:借位標志,在作減法運算時,若被減數(shù)不夠減,則M8021=ON;M8022:進位標志,在作加法運算時,若運算結(jié)果產(chǎn)生進位,則M8022=ON;M8029:指令執(zhí)行結(jié)束標志,當一條功能指令執(zhí)行完成時,M8029=ON。

2)運算出錯標志位M8067:運算出錯標志,當運算出現(xiàn)錯誤時,M8067=ON;D8068:運算錯誤代號編號存儲;D8069:錯誤發(fā)生的步序號記錄存儲。當PLC由STOP轉(zhuǎn)入RUN時,M8067=OFF,D8068和D8069被清零,若出現(xiàn)運算錯誤,則M8067=ON,運算錯誤代號編號、錯誤發(fā)生的步序號分別存儲在D8068、D8069中。

3)功能擴展用標志位部分功能指令在使用時需要某些固有的特殊輔助繼電器(或稱為功能擴展用標志位)的配合,這樣才能完成該指令所要完成的功能。如M8160為功能指令ASC、RS、ASCI、HEX和CCD的功能擴展標志位。功能擴展標志位的具體含義和應用將在后續(xù)相應的功能指令說明中加以介紹。

5.3程序流控制功能指令

表5.2程序流控制指令

5.3.1FNC00(CJ)跳轉(zhuǎn)功能指令

1.指令功能當跳轉(zhuǎn)條件成立時,程序跳轉(zhuǎn)到跳轉(zhuǎn)指令指針指定的地方。

2.編程格式條件跳轉(zhuǎn)指令的編程應用如圖5.7和圖5.8所示。

圖5.7條件跳轉(zhuǎn)指令編程應用一

圖5.8條件跳轉(zhuǎn)指令編程應用二

3.指令使用說明(1)一個標號在程序中只能出現(xiàn)一次,多條跳轉(zhuǎn)指令可以使用同一標號。(2)定時器T192~T199、高速計數(shù)器C235~C255一經(jīng)驅(qū)動,即使其處理指令被跳過,也會繼續(xù)工作,其輸出觸點仍能工作。(3)對于積算型定時器及計數(shù)器的復位指令在跳轉(zhuǎn)程序中時,即使程序執(zhí)行時跳過復位指令,復位指令仍然被執(zhí)行。

(4)主控指令與跳轉(zhuǎn)指令在使用時的關(guān)系如圖5.9所示。圖中標注A.~E.說明如下:A.對于跳過主控區(qū)1的跳轉(zhuǎn)指令不受任何限制;B.當跳轉(zhuǎn)指令CJP1執(zhí)行時,則從主控區(qū)1外跳轉(zhuǎn)到主控區(qū)1內(nèi),跳轉(zhuǎn)指針P1以下程序中的M0視作ON;C.當M0=ON時,主控區(qū)1內(nèi)的跳轉(zhuǎn)指令CJP2才可能執(zhí)行;D.當M0=ON時,從主控區(qū)1內(nèi)跳轉(zhuǎn)到主控區(qū)1外的跳轉(zhuǎn)指令CJP3才能執(zhí)行,但主控區(qū)1內(nèi)的MCRN0忽略;E.當M1=ON時,從主控區(qū)2內(nèi)跳轉(zhuǎn)到主控區(qū)3內(nèi)的跳轉(zhuǎn)指令CJP4才能執(zhí)行,主控區(qū)3中P4以下程序中的M2視作ON,但主控區(qū)2內(nèi)的MCRN0忽略。

圖?5.9主控指令與跳轉(zhuǎn)指令之間的關(guān)系

5.3.2FNC01(CALL)、FNC02(SRET)子程序調(diào)用、返回指令

1.指令功能CALL指令功能:調(diào)用子程序。SRET指令功能:從子程序返回到主程序。

2.編程格式在程序中應用子程序調(diào)用指令,一方面提高了程序的利用效率,節(jié)省了存儲空間,另一方面優(yōu)化了程序的結(jié)構(gòu)。具體應用如圖5.10(a)所示,當X0=ON時,調(diào)用標號為P1的子程序,直到遇到SRET指令,返回到調(diào)用處,繼續(xù)執(zhí)行主程序。

3.指令使用說明(1)子程序必須在主程序之后編寫。(2)?FX2N系列PLC子程序的指針編號為P0~P62,P64~P127(共127個)。(3)子程序必須以子程序結(jié)束指令(FNC02SRET)結(jié)束程序,并且只能用一次,否則程序不能正常執(zhí)行。

(4)子程序調(diào)用指令有連續(xù)式執(zhí)行和脈沖式執(zhí)行兩種方式,圖5.10(b)主程序中的子程序調(diào)用為脈沖式執(zhí)行方式,即當輸入信號X1由OFF→ON時執(zhí)行一次CALL(P)P4。CALLP5為連續(xù)式執(zhí)行子程序調(diào)用指令,在子程序1中,當輸入信號X2為ON時,調(diào)用子程序2即程序跳轉(zhuǎn)到P5,直到子程序結(jié)束執(zhí)行到SRET時,返回到子程序1,然后繼續(xù)執(zhí)行子程序1,子程序1執(zhí)行結(jié)束后再返回主程序繼續(xù)執(zhí)行。(5)在子程序中調(diào)用子程序,稱為子程序的嵌套,圖5.10(a)所示為1級嵌套,圖5.10(b)所示為2級嵌套。FX2N系列PLC中最多允許5級嵌套。(6)在子程序中使用定時器時,其規(guī)定范圍為T192~199和T146~249。

圖5.10子程序調(diào)用的應用實例(a)調(diào)用的子程序;(b)子程序的嵌套

5.3.3FNC03(IRET)、FNC04(EI)和FNC05(DI)中斷指令

1.指令功能IRET指令功能:中斷返回。EI指令功能:允許中斷,允許執(zhí)行中斷程序時,必須打開中斷。DI指令功能:禁止中斷,不允許執(zhí)行行中斷程序時,必須關(guān)閉中斷。

2.編程格式1)外部輸入中斷外部輸入中斷在程序應用中的格式如圖5.11所示。在主程序執(zhí)行時,當X0=OFF時,特殊輔助繼電器M8051=OFF,標號為I101的中斷子程序允許執(zhí)行;當X0=ON時,M8051=ON,標號為I101的中斷子程序禁止執(zhí)行。若PLC的外部中斷源輸入端X1由OFF→ON,并且M8051=OFF,標號為I101的中斷子程序就執(zhí)行一次,執(zhí)行完畢后,返回主程序。本程序?qū)崿F(xiàn)將窄脈沖保持的功能,脈沖的寬度由定時器T1確定。

2)定時器中斷利用定時器中斷,每隔50?ms將數(shù)據(jù)寄存器D1中的數(shù)據(jù)加1,并與設定值K20進行比較,如圖5.12所示。當X1=OFF時,特殊輔助繼電器M8057=OFF,標號為I750的中斷子程序允許執(zhí)行;當X1=ON時,M8057=ON,標號為I750的中斷子程序禁止執(zhí)行。當X2=ON時,將M2置ON。在M2為ON期間,每隔50?ms執(zhí)行一次標號為I750的定時器中斷,子程序?qū)1+1→D1,并將D1的當前值與常數(shù)K20比較,達到20時,將M2復位,D0停止加1,若此時X2=OFF,則驅(qū)動輸出繼電器Y0輸出。

圖5.11外部輸入中斷子程序的格式

圖5.12定時器中斷子程序的應用實例

3)計數(shù)器中斷圖5.13所示是利用高速計數(shù)器C255實現(xiàn)的中斷子程序。當X3=OFF時,特殊輔助繼電器M8059=OFF,標號為I020的中斷子程序允許執(zhí)行;當X3=ON時,M8059=ON,標號為I020的中斷子程序禁止執(zhí)行。當M8059=OFF時允許計數(shù)器中斷,若高速計數(shù)器C255的當前值與設定值K100相等時,執(zhí)行中斷程序。輸入信號X3決定是否允許計數(shù)器中斷。

圖5.13計數(shù)器中斷子程序的應用實例

圖5.14中斷允許區(qū)間

3.指令使用說明(1)在主程序中有時需禁止中斷,有時需開啟中斷。允許中斷的主程序必須在功能指令EI和DI之間,DI之后主程序禁止執(zhí)行中斷子程序,如圖5.14所示。(2)當多個中斷信號同時有效時,中斷指針編號小的具有較高的優(yōu)先權(quán),首先執(zhí)行;每個中斷子程序必須以IRET結(jié)束。中斷程序必須在FEND指令之后。(3)中斷子程序可以進行嵌套,最多為2級嵌套。(4)中斷指針如表5.3、5.4、5.5所示。

表5.3外部輸入中斷指針表

表5.4定時器中斷指針表

表5.5計數(shù)器中斷指針表

5.3.4FNC07(WDT)監(jiān)視定時器指令

1.指令功能看門狗定時器刷新指令。

2.編程格式WDT指令刷新程序的監(jiān)視定時器。若掃描周期執(zhí)行時間超過監(jiān)視定時器規(guī)定的某一值時(如FX2N為200?ms),可編程控制器CPU出錯指示燈亮同時停止工作。在這種情況下應將WDT指令插到合適的步序中刷新監(jiān)視定時器,以使程序能正常運行。例如將一個掃描周期為360?ms的程序分為兩個180?ms的程序,在兩個程序之間插入WDT指令,如圖5.15所示。

圖5.15監(jiān)視定時器的應用實例

3.指令使用說明(1)?WDT為連續(xù)執(zhí)行型指令,WDT(P)為脈沖執(zhí)行型指令,其梯形圖和波形圖如圖5.15所示。(2)通過改寫數(shù)據(jù)寄存器D8000的內(nèi)容,可改變監(jiān)視器的監(jiān)視時間,如圖5.16所示。執(zhí)行該指令后監(jiān)視器將按新設定的監(jiān)視時間(400?ms)監(jiān)視程序。

圖5.16監(jiān)視器監(jiān)視時間的修改

(3)對于復雜的控制系統(tǒng),系統(tǒng)會由多種特殊擴展模塊所構(gòu)成。PLC由STOP→RUN時,進行的緩沖存儲器初始化時間會增加,掃描時間會延長。而在執(zhí)行多條FROM/TO指令或向多個緩沖存儲區(qū)傳送數(shù)據(jù)時,掃描時間也會延長。這時將會導致監(jiān)視器可能出錯。因此應在起始步的附近添加上述程序,得以延長監(jiān)視器的監(jiān)視時間。(4)當CJ指令指針的步序號比CJ指令小時,可在指針后編寫WDT指令延長監(jiān)視時間,或在FOR-NEXT指令之間編程時使用該指令。

5.3.5FNC08(FOR)、FNC09(NEXT)循環(huán)指令1.指令功能FOR指令功能:重復循環(huán)開始。NEXT指令功能:重復循環(huán)結(jié)束。

2.編程格式循環(huán)指令在程序應用中的格式如圖5.17所示。

圖5.17循環(huán)指令的格式

3.指令使用說明(1)?FOR指令和NEXT指令必須成對出現(xiàn)。(2)在FOR-NEXT之間的程序重復執(zhí)行次數(shù)為N(N=1~32767,當N<1時被看作1),其中N由FOR指令后的操作數(shù)指定。(3)循環(huán)程序[C]執(zhí)行5次后,向NEXT指令(1)之后的程序轉(zhuǎn)移。若D1Z=7,則相應的循環(huán)程序[B]執(zhí)行7次,[B]程序合計執(zhí)行了5×7=35次。若K2X1=8,X0=OFF,則循環(huán)程序[A]執(zhí)行8次,[A]循環(huán)程序合計執(zhí)行了5×7×8=280次。

(4)?FOR-NEXT循環(huán)程序可以嵌套5層,圖5.17中采用了3層嵌套。(5)當循環(huán)程序循環(huán)次數(shù)多時,PLC的掃描時間會延長,將會造成監(jiān)視定時器出錯,此時應采用WDT指令將程序分開,或者改變監(jiān)視器的監(jiān)視時間。(6)當X0=ON時,將跳過循環(huán)程序[A]。

5.3.6FNC06(FEND)主程序結(jié)束指令

1.指令功能主程序結(jié)束。

2.編程格式主程序結(jié)束指令在程序應用中的格式如圖5.18所示。

圖5.18主程序結(jié)束指令的格式(a)在跳轉(zhuǎn)中的應用;(b)在子程序調(diào)用中的應用

3.指令使用說明(1)子程序和中斷程序應在FEND指令后編程,有多個FEND指令時,應在最后一個FEND指令之后,END指令之前編程。(2)若子程序或者中斷程序中出現(xiàn)FEND指令,或FOR和NEXT之間的循環(huán)程序出現(xiàn)FEND指令,則程序?qū)鲥e。

5.4傳送和比較指令

表5.6傳送和比較指令

5.4.1FNC10(CMP)比較指令和FNC11(ZCP)區(qū)間比較指令

1.指令功能比較指令功能:將源操作數(shù)[S1·]和[S2·]的數(shù)據(jù)進行比較,比較結(jié)果送入目標操作數(shù)[D·]中,然后做出相應的驅(qū)動。區(qū)間比較指令功能:將源操作數(shù)[S1·]、[S2·]和[S3·]進行比較,比較結(jié)果送入目標操作數(shù)[D·]中,然后做出相應的驅(qū)動。操作數(shù):[S1·]、[S2·]和[S3·]的操作數(shù)是K、H、KnX、KnY、KnM、KnS、T、C、D、V、Z;目標操作數(shù)[D·]是Y、M、S。

2.編程格式比較指令和區(qū)間比較指令在程序應用中的格式分別如圖5.19和圖5.20所示。

圖5.19比較指令的格式

圖5.20區(qū)間比較指令的格式

圖5.21比較結(jié)果復位的格式

3.指令使用說明(1)?CMP和ZCP比較的數(shù)據(jù)是有符號的二進制數(shù),如-8<1。(2)ZCP指令的源操作數(shù)[S1]不能大于[S2],例如[S1]=K100,[S2]=K90,則將[S2]當作K100來計算。(3)若M0被指定為目標操作數(shù),則M0、M1和M2自動被占用,若M3被指定為目的操作數(shù),則M3、M4和M5自動被占用。(4)這兩種指令均有連續(xù)執(zhí)行型和脈沖執(zhí)行型,操作數(shù)均可為16位或32位操作數(shù)。

5.4.2FNC12(MOV)數(shù)據(jù)傳送指令

1.指令功能指令功能:將源操作數(shù)[S·]傳送到目標操作數(shù)[D·]中,源操作數(shù)內(nèi)容保持不變。操作數(shù):源操作數(shù)[S·]是K、H、KnX、KnY、KnM、KnS、T、C、D、V、Z;目標操作數(shù)[D·]是KnY、KnM、KnS、T、C、D、V、Z。

2.編程格式16位數(shù)據(jù)傳送指令在程序應用中的格式如圖5.22(a)所示,當X1=ON時,將K4X10的內(nèi)容傳送到D0中,K100傳送到D1中。32位數(shù)據(jù)傳指令在程序應用中的格式如圖5.22(b)所示,當X0=ON時,將計數(shù)器C1的當前值傳送到(D11,D10)中。

圖5.22傳送指令的格式(a)?16位傳送指令的格式;(b)?32位傳送指令的格式

3.指令使用說明(1)該指令執(zhí)行時,常數(shù)自動轉(zhuǎn)換成二進制數(shù)。(2)?MOV為連續(xù)/脈沖執(zhí)行型指令。操作數(shù)均可為16位或32位操作數(shù)。(3)源操作數(shù)為計數(shù)器時為32位操作數(shù)。

5.4.3FNC13(SMOV)移位傳送指令

1.指令功能指令功能:將數(shù)據(jù)進行分配或者合成。操作數(shù):源操作數(shù)[S·]是K、H、KnY、KnM、KnS、T、C、D、V、Z;目標操作數(shù)[D·]是KnY、KnM、KnS、T、C、D、V、Z。

2.編程格式移位傳送指令在程序應用中的格式及操作過程如圖5.23所示。當輸入信號X0為ON時,首先將源操作數(shù)D0中的二進制數(shù)轉(zhuǎn)換成4位BCD碼,然后將BCD碼移位傳送。源操作數(shù)D0中BCD碼的右起第4位(由m1確定,m1=4)開始的2位(由m2確定,m2=2)移位并傳送到目標操作數(shù)D1的第3位(由n確定,n=3)和第2位。D1的其余位保持不變,然后將D1自動換成二進制碼。

圖5.23位移傳送指令的格式及操作過程

3.指令使用說明(1)?m1、m2和n是K、H,范圍是1~4。(2)該指令為連續(xù)/脈沖執(zhí)行型指令。(3)若SMOV指令的操作數(shù)的范圍為0~9999,否則會出現(xiàn)錯誤。(4)特殊輔助繼電器M8168驅(qū)動后執(zhí)行SMOV指令時,源操作數(shù)和目標操作數(shù)不進行二進制和BCD碼的轉(zhuǎn)換,照原樣以4位為單位進行移位傳送操作。

5.4.4FNC14(CML)取反傳送指令

1.指令功能指令功能:將源操作數(shù)[S·]逐位取反(0→1,1→0)后,向目標操作數(shù)[D·]傳送。操作數(shù):源操作數(shù)[S·]是K、H、KnX、KnY、KnM、KnS、T、C、D、V、Z、X、Y、M、S;目標操作數(shù)[D·]是KnY、KnM、KnS、T、C、D、V、Z。

2.編程格式取反傳送指令在程序應用中的格式如圖5.24所示。

圖5.24取反傳送指令的格式

3.指令使用說明該指令可為連續(xù)/脈沖執(zhí)行型指令。操作數(shù)均為16位或32位操作數(shù)。

5.4.5FNC15(BMOV)塊傳送指令

1.指令功能指令功能:將源操作數(shù)[S·]指定的成批數(shù)據(jù)傳送到目標操作數(shù)[D·]中,傳送數(shù)據(jù)的長度由源操作數(shù)[S·]的數(shù)據(jù)類型和n確定。操作數(shù):源操作數(shù)[S·]是K、H、KnX、KnY、KnM、KnS、T、C、D;目標操作數(shù)[D·]是KnY、KnM、KnS、T、C、D;n是K、H,取值范圍應是1≤n≤512。

2.編程格式塊傳送指令在程序應用中的格式如圖5.25所示。

當X0=ON時執(zhí)行塊傳送指令,將D4、D5、D6、D7的內(nèi)容傳送到D10、D11、D12、D13中,其中傳送數(shù)據(jù)寄存器的個數(shù)由n確定。

圖5.25塊傳送指令的格式

3.指令使用說明(1)?BMOV為連續(xù)/脈沖執(zhí)行型指令。(2)如用到需要指定位數(shù)的位元件時,源和目標的指定位數(shù)必須相等,如圖5.26所示。

圖5.26塊傳送指令的應用實例(一)

(3)源操作數(shù)和目標操作數(shù)的地址發(fā)生重疊時,為了防止源操作數(shù)沒有傳送前被改寫,PLC將自動確定傳送順序,如圖5.27所示。

(4)當特殊輔助繼電器M8024=ON時,數(shù)據(jù)傳送方向反轉(zhuǎn),即由目標向源傳送。

圖5.27塊傳送指令的應用實例(二)

5.4.6FNC16(FMOV)多點傳送指令

1.指令功能指令功能:將源操作數(shù)[S·]向指定目標操作數(shù)[D·]開始的n個目標傳送數(shù)據(jù),且目標操作數(shù)的內(nèi)容完全相同。操作數(shù):源操作數(shù)[S·]是K、H、KnX、KnY、KnM、KnS、T、C、D、V、Z;目標操作數(shù)[D·]是KnY、KnM、KnS、T、C、D;n是K、H,其取值范圍是1≤n≤512。

2.編程格式多點傳送指令在程序應用中的格式如圖5.28所示??梢岳肍MOV指令對D0~D3的4個數(shù)據(jù)寄存器進行清零。圖中,當M8002=ON時,D0~D3的內(nèi)容被清零。

圖5.28多點傳送指令的格式

3.指令使用說明(1)指令可為連續(xù)/脈沖執(zhí)行型指令。(2)若元件編號超出允許范圍,數(shù)據(jù)僅傳送到允許范圍的元件內(nèi)。

5.4.7FNC17(XCH)交換指令

1.指令功能指令功能:將目標操作數(shù)[D1·]和[D2·]指定的兩個目標元件存儲的數(shù)據(jù)進行相互交換。操作數(shù):目標操作數(shù)[D1·]和[D2·]是KnY、KnM、KnS、T、C、D、V、Z。

2.編程格式數(shù)據(jù)交換指令在程序應用中的格式如圖5.29所示。當X0=ON時,執(zhí)行XCH指令,D1和D0中存儲的16位數(shù)據(jù)相互交換。

圖5.29XCH指令的格式

3.指令使用說明(1)?XCH為連續(xù)/脈沖執(zhí)行型指令;操作數(shù)為16位或32位。(2)若特殊輔助繼電器M8160=ON,且兩個操作數(shù)為同一目標地址時,該指令執(zhí)行會使目標元件的高8位和低8位相互交換,與SWAP指令的功能相同,如圖5.30所示。若M8160=ON時兩個操作數(shù)的元件不同時,出錯標志M8067置1,不執(zhí)行該指令。

圖5.30XCH與SWAP等效的應用實例

5.4.8FNC18(BCD)變換指令和FNC19(BIN)變換指令

1.指令功能BCD指令功能:將源操作數(shù)[S·]指定的二進制數(shù)轉(zhuǎn)換成BCD碼,存入目標操作數(shù)[D·]。BIN指令功能:將源操作數(shù)[S·]指定的BCD碼轉(zhuǎn)換成二進制數(shù),存入目標操作數(shù)[D·]。操作數(shù):源操作數(shù)[S·]是KnX、KnY、KnM、KnS、T、C、D、V、Z;目標操作數(shù)[D·]是KnY、KnM、KnS、T、C、D、V、Z。

2.編程格式BCD指令和BIN指令在程序應用中的格式如圖5.31所示。

當M8002=ON時,執(zhí)行FMOV指令,對D1清零;當X0=ON,則執(zhí)行BIN指令,將輸入繼電器X27~X10組成的4位BCD碼轉(zhuǎn)換成二進制數(shù)傳送入D1中;若X1=ON,則執(zhí)行BCD指令,將D1的二進制數(shù)轉(zhuǎn)換成BCD碼由Y17~Y0輸出。

圖5.31BIN和BCD指令的格式

3.指令使用說明(1)?BIN、BCD為連續(xù)/脈沖執(zhí)行型指令,操作數(shù)為16位或32位。(2)?BCD碼的數(shù)值范圍:16位操作時為0~9999,32位操作時為0~99999999。

5.5四則運算和邏輯運算指令

表5.7四則運算和邏輯運算指令

5.5.1FNC20(ADD)二進制加法指令

1.指令功能指令功能:將源操作數(shù)[S1·]和[S2·]進行二進制加法運算,將結(jié)果存入目標操作數(shù)[D·]。操作數(shù):源操作數(shù)[S1·]和[S2·]是K、H、KnX、KnY、KnM、KnS、T、C、D、V、Z;目標操作數(shù)[D·]是KnY、KnM、KnS、T、C、D、V、Z。

2.編程格式二進制加法指令在程序應用中的格式如圖5.32所示。在X10由OFF到ON上升沿,執(zhí)行ADD指令,即K200+K4X0(X17~X0)→K4Y0。

圖5.32ADD指令的格式

3.指令使用說明(1)?ADD為連續(xù)/脈沖執(zhí)行型指令,操作數(shù)為16位或32位。(2)?ADD指令操作數(shù)的數(shù)據(jù)類型是有符號的數(shù)值。各數(shù)據(jù)的最高位是符號位(0為正,1為負)。各數(shù)據(jù)的運算是以代數(shù)形式進行運算,如-17+10=-7。(3)ADD指令執(zhí)行后,若運算結(jié)果為0,則M8020(零標志位)為ON,若運算結(jié)果大于32767(16位數(shù)據(jù))或2147483647(32位數(shù)據(jù)),則M8022(進位標志)為ON;若運算結(jié)果小于-32768(16位數(shù)據(jù))或-2147483648(32位數(shù)據(jù)),則M8021(借位標志)為ON。

(4)源操作數(shù)和目標操作數(shù)可以指定相同的編號,如圖5.33所示。初始時D0=0,第1次掃描時D0(0)+2→D0(2);第2次掃描時D0(2)+2→D0(4);第n次掃描時D0(2n-2)+2→D0(2×n)。

圖5.33ADD連續(xù)型指令的格式

5.5.2FNC21(SUB)二進制減法指令

1.指令功能指令功能:將源操作數(shù)[S1·]和[S2·]進行二進制減法運算,將結(jié)果存入目標操作數(shù)[D·]。操作數(shù):源操作數(shù)[S1·]、[S2·]是K、H、KnX、KnY、KnM、KnS、T、C、D、V、Z;目標操作數(shù)[D·]是KnY、KnM、KnS、T、C、D、V、Z。

2.編程格式二進制減法指令在程序應用中的格式如圖5.34所示。當X10=ON,執(zhí)行二進制減法(SUB)指令,即(D1)-(D2)→K4Y0(Y17~Y0)。

圖5.34二進制減法指令的格式

3.指令使用說明使用要求與ADD指令相同

5.5.3FNC22(MUL)二進制乘法指令

1.指令功能指令功能:將源操作數(shù)[S1·]和[S2·]進行二進制乘法運算,將結(jié)果存入目標操作數(shù)[D·]。操作數(shù):源操作數(shù)[S1·]、[S2·]是K、H、KnX、KnY、KnM、KnS、T、C、D、V、Z;目標操作數(shù)[D·]是KnY、KnM、KnS、T、C、D、V、Z。

2.編程格式二進制16位運算的乘法指令在程序應用中的格式如圖5.35(a)所示,當X10由OFF變?yōu)镺N時,執(zhí)行一次二進制乘法運算,即(D0)×K4Y0→(D2,D1);二進制32位運算的乘法指令在程序應用中的格式如圖5.35(b)所示,當X10由OFF變?yōu)镺N時,執(zhí)行一次二進制乘法運算,即(D1,D0)×K8Y0→(D7,D6,D5,D4)。

圖5.35二進制乘法指令的格式(a)二進制16位乘法運算指令;(b)二進制32位乘法運算指令

3.指令使用說明(1)二進制乘法指令為連續(xù)/脈沖執(zhí)行型指令,操作數(shù)為16位或32位。(2)對于16位MUL指令,若目標操作數(shù)是KnY、KnM、KnS時,可以進行K1~K8的指定。當指定為K4時,只能得到16位運算結(jié)果的低16位。(3)對于32位MUL指令,若目標操作數(shù)是KnY、KnM、KnS,則只能得到32位的運算結(jié)果,因此最好采用浮點數(shù)運算。(4)執(zhí)行32位數(shù)據(jù)操作指令時,目標操作數(shù)不能指定為V和Z。

5.5.4FNC23(DIV)二進制除法指令

1.指令功能指令功能:將源操作數(shù)[S1·]和[S2·]進行二進制除法運算,將結(jié)果存入目標操作數(shù)[D·]。操作數(shù):源操作數(shù)[S1·]、[S2?]是K、H、KnX、KnY、KnM、KnS、T、C、D、V、Z;目標操作數(shù)[D·]是KnY、KnM、KnS、T、C、D、V、Z。

2.編程格式二進制16位除法運算指令在程序應用中的格式如圖5.36(a)所示,當X0=ON時,執(zhí)行二進制除法指令,即(D0)÷200的商存入(D1),余數(shù)存入下一個元件(D2)中;二進制32位除法運算指令的格式說明如圖5.36(b)所示,當X0=ON時,執(zhí)行二進制除法指令,即(D1,D0)÷(D3,D2)的商存入(D9,D8),余數(shù)存入下一個元件(D11,D10)。

圖5.36二進制除法指令的格式(a)二進制16位除法運算指令;(b)二進制32位除法運算指令

3.指令使用說明(1)二進制除法指令為連續(xù)/脈沖執(zhí)行型指令,操作數(shù)為16位或32位。(2)目標操作數(shù)是KnY、KnM、KnS時,同二進制乘法指令。(3)執(zhí)行32位數(shù)據(jù)操作指令時,目標操作數(shù)不能指定為Z。(4)若除數(shù)為“0”則出錯,該指令不執(zhí)行。

5.5.5FNC24(INC)加1指令和FNC25(DEC)減1指令

1.指令功能INC指令功能:將目標操作數(shù)[D·]指定的數(shù)據(jù)加1。DEC指令功能:將目的操作數(shù)[D·]指定的數(shù)據(jù)減1。操作數(shù):INC和DEC目標操作數(shù)[D·]是KnY、KnM、KnS、T、C、D、V、Z。

2.編程格式二進制加1指令和二進制減1指令在程序應用中的格式分別如圖5.37和圖5.38所示。

圖5.37二進制加1指令的格式

圖5.38二進制減1指令的格式

上面兩圖中,當X10由OFF→ON時(D0)+1→(D0);當X1由OFF→ON時(D1)?1→(D1)。

3.指令使用說明(1)?INC指令和DEC指令均為連續(xù)/脈沖執(zhí)行型指令,操作數(shù)為16位或32位。(2)?INC指令和DEC指令對于借位標志位和進位標志位沒有影響。

5.5.6FNC26(WAND)、FNC27(WOR)和FNC28(WXOR)字邏輯指令

1.指令功能WAND(字邏輯與)指令功能:將源操作數(shù)[S1·]和[S2·]的各位數(shù)據(jù)依次求邏輯與運算,結(jié)果存入目標操作數(shù)[D·]。WOR(字邏輯或)指令功能:將源操作數(shù)[S1·]和[S2·]的各位數(shù)據(jù)依次求邏輯或運算,結(jié)果存入目標操作數(shù)[D·]。WXOR(字邏輯異或)指令功能:將源操作數(shù)[S1·]和[S2·]的各位數(shù)據(jù)依次求邏輯異或運算,結(jié)果存入目標操作數(shù)[D·]。操作數(shù):字邏輯與、或、異或運算指令的源操作數(shù)[S1·]、[S2·]是K、H、KnX、KnY、KnM、KnS、T、C、D、V、Z;目標操作數(shù)[D·]是KnY、KnM、KnS、T、C、D、V、Z。

2.編程格式字邏輯與運算指令在程序應用中的格式如圖5.39所示,當X0=ON時,執(zhí)行16位邏輯與運算指令,即(D2)∧(D1)→(D0);當X1=ON時,執(zhí)行32位邏輯與運算指令,即(D1,D0)∧(D3,D2)→(D9,D8)。

圖5.39邏輯與運算指令的格式(a)?16位邏輯與運算指令;(b)?32位邏輯與運算指令

3.指令使用說明(1)字邏輯與、或及異或運算指令均為連續(xù)/脈沖執(zhí)行型指令,操作數(shù)為16位或32位。(2)字邏輯或、邏輯異或運算指令同邏輯與運算指令相似

5.5.7FNC29(NEG)求補運算指令

1.指令功能指令功能:將目標操作數(shù)[D·]的各位數(shù)據(jù)求反,將結(jié)果加1后存入目標操作數(shù)[D·]。操作數(shù):目標操作數(shù)[D·]是KnY、KnM、KnS、T、C、D、V、Z。

2.編程格式求補運算在程序應用中的格式如圖5.40所示。

由數(shù)值的補碼表示方法知,對于正數(shù)進行求補運算可得正數(shù)的相反數(shù);對于負數(shù)求補運算可得到負數(shù)的絕對值。圖5.40中BON指令為指定位判別指令,當(D3、D2)的最高位為1時,M1=ON,否則M1=OFF。當M1由OFF→ON時,則執(zhí)行求補運算指令,即求(D3,D2)的絕對值。

圖5.40求補運算指令在負數(shù)求絕對值中的格式

3.指令說明(1)?NEG指令為連續(xù)/脈沖執(zhí)行型指令,操作數(shù)為16位或32位。(2)?NEG指令對于借位標志位和進位標志位沒有影響。

5.6循環(huán)移位和移位指令

表5.8循環(huán)移位和移位指令

5.6.1FNC30(ROR)循環(huán)右移指令和FNC31(ROL)循環(huán)左移指令

1.指令功能ROR指令功能:將目標操作數(shù)[D·]的數(shù)據(jù)循環(huán)右移n位,將結(jié)果存入目標操作數(shù)[D·]。ROL指令功能:將目標操作數(shù)[D·]的數(shù)據(jù)循環(huán)左移n位,將結(jié)果存入目標操作數(shù)[D·]。操作數(shù):ROR指令和ROL指令的目標操作數(shù)[D·]是KnY、KnM、KnS、T、C、D、V、Z;n的取值范圍是0≤n≤16(16位指令)或0≤n≤32(32位指令)。

2.編程格式循環(huán)右移指令在程序應用中的格式如圖5.41所示,當X0由OFF→ON時執(zhí)行循環(huán)右移指令,即(D0)循環(huán)右移4位,最終位存入進位標志位中。

圖5.41循環(huán)右移指令的格式

循環(huán)左移指令在程序應用中的格式如圖5.42所示,當X1由OFF→ON時執(zhí)行循環(huán)左移指令,即(D1)循環(huán)左移4位,最終位存入進位標志位中。32位循環(huán)移位指令與此類似。

圖5.42循環(huán)左移指令的格式

3.指令使用說明(1)?ROR指令和ROL指令為連續(xù)/脈沖執(zhí)行型指令,操作數(shù)為16位或32位;(2)若目標是KnY、KnM、KnS時,只有K4(16位指令)和K8(32位指令)有效;(3)循環(huán)移位指令影響進位標志位,最終位被移入進位標志位中。

5.6.2FNC32(RCR)帶進位循環(huán)右移位指令和FNC33(RCL)帶進位循環(huán)左移位指令

1.指令功能RCR指令功能:將目標操作數(shù)[D·]的數(shù)據(jù)和進位標志位共同組成的數(shù)據(jù)循環(huán)右移n位。RCL指令功能:將目標操作數(shù)[D·]的數(shù)據(jù)和進位標志位共同組成的數(shù)據(jù)循環(huán)左移n位。操作數(shù):RCR指令和RCL指令的目標操作數(shù)[D·]是KnY、KnM、KnS、T、C、D、V、Z;n的取值范圍是0≤n≤16(16位指令)或0≤n≤32(32位指令)。

2.編程格式帶進位循環(huán)右移指令在程序應用中的格式如圖5.43所示,當X0由OFF→ON時,執(zhí)行帶進位循環(huán)右移指令,即(M8022,D0)循環(huán)右移4位。

圖5.43帶進位循環(huán)右移指令的格式

圖5.44帶進位循環(huán)左移指令的格式

3.指令說明(1)?RCR指令和RCL指令為連續(xù)/脈沖執(zhí)行型指令,操作數(shù)為16位或32位。(2)若目標是KnY、KnM、KnS時,只有K4(16位指令)和K8(32位指令)有效。

5.6.3FNC34(SFTR)位右移指令和FNC35(SFTL)位左移指令

1.指令功能SFTR指令功能:將目標操作數(shù)[D·]指定的移位寄存器(移位寄存器的長度為n1位)右移位n2位,移位后的數(shù)據(jù)由源操作數(shù)[S·]指定的數(shù)據(jù)填補。SFTL指令功能:將目標操作數(shù)[D·]指定的移位寄存器(移位寄存器的長度為n1位)左移位n2位,移位后的數(shù)據(jù)由源操作數(shù)[S·]指定的數(shù)據(jù)填補。操作數(shù):SFTR指令和SFTL指令的源操作數(shù)[S·]是X、Y、M、S;目標操作數(shù)[D·]是Y、M、S;n1、n2的取值范圍是0<n2<n1<1024。

2.編程格式位右移指令和位左移指令在程序應用中的格式如圖5.45和圖5.46所示。當X0從OFF→ON時,執(zhí)行右移位指令。當X1從OFF→ON時,執(zhí)行左移位指令。

圖5.45右移位指令的格式

圖5.46左移位指令的格式

3.指令使用說明SFTR指令和SFTL指令為連續(xù)/脈沖執(zhí)行型指令,操作數(shù)為16位。

5.6.4FNC36(WSFR)字右移指令和FNC37(WSFL)字左移指令

1.指令功能WSFR指令功能:將目標操作數(shù)[D·]指定的移位寄存器(移位寄存器的長度為n1個字)右移位n2個字,移位后的數(shù)據(jù)由源操作數(shù)[S·]指定的數(shù)據(jù)填充。WSFL指令功能:將目標操作數(shù)[D·]指定的移位寄存器(移位寄存器的長度為n1個字)左移位n2個字,移位后的數(shù)據(jù)由源操作數(shù)[S·]指定的數(shù)據(jù)填充。操作數(shù):WSFR指令和WSFL指令的源操作數(shù)[S·]是KnX、KnY、KnM、KnS、T、C、D;目標操作數(shù)[D·]是KnY、KnM、KnS、T、C、D;n1、n2的取值范圍是0<n2<n1<512。

2.編程格式字右移指令在程序應用中的格式如圖5.47所示,當X0從OFF→ON時,執(zhí)行該指令。

圖5.47字右移指令的格式

字左移指令在程序應用中的格式如圖5.48所示,當X1從OFF→ON時,執(zhí)行該指令。

圖5.48字左移指令的格式

3.指令使用說明(1)?WSFR指令和WSFL指令為連續(xù)/脈沖執(zhí)行型指令,操作數(shù)為16位。(2)源操作數(shù)和目標操作數(shù)是KnX、KnY、KnM、KnS時,則n1和n2是位元件的組數(shù)(4位為1個單元組),如圖5.49所示。

圖5.49字左移指令位元件的格式

5.6.5FNC38(SFWR)移位寫入指令和FNC39(SFRD)移位讀取指令

1.指令功能SFWR指令功能:將源操作數(shù)[S·]指定的數(shù)據(jù)寫入到目標操作數(shù)[D·]指示器指示的元件中。該指令每執(zhí)行一次,指示器加1,直到指示的內(nèi)容達到n-1時不再執(zhí)行;SFRD指令功能:將源操作數(shù)[S·]指定的n-1個數(shù)據(jù)序列依次移入到目標操作數(shù)[D·]指定的元件中。該指令每執(zhí)行一次,源操作數(shù)指定的數(shù)據(jù)序列向右移一字,直到指示器為零。

操作數(shù):SFWR指令的源操作數(shù)[S·]是K、H、KnX、KnY、KnM、KnS、T、C、D、V、Z;目標操作數(shù)[D·]是KnY、KnM、KnS、T、C、D;n的取值范圍是2≤n≤512。SFRD指令的源操作數(shù)[S·]是KnY、KnM、KnS、T、C、D;目標操作數(shù)[D·]是KnY、KnM、KnS、T、C、D、V、Z;n的取值范圍是2≤n≤512。

2.編程格式移位寫入指令在程序應用中的格式如圖5.50所示。當X0由OFF→ON時,源D0的數(shù)據(jù)寫入D11,而D10變?yōu)?(指針);當X0再次變ON時,則D0的數(shù)據(jù)寫入D12,D10中數(shù)據(jù)變?yōu)?。依次類推,當D10的內(nèi)容為9時,則不再執(zhí)行且進位標志位M8022置1。

圖5.50移位寫入指令的編程格式

移位讀取指令在程序應用中的格式如圖5.51所示,當X1由OFF→ON時,將D11的數(shù)據(jù)傳送到字元件D0,同時指針D10減1,單元序列中的數(shù)據(jù)向右移動1個字;當X0由OFF→ON時,將D12的數(shù)據(jù)傳送到字元件D0,指針D10再減1,單元序列中的數(shù)據(jù)向右再移動1個字;依次類推,當D10為0時,則不再執(zhí)行且零標志位M8020置1。

圖5.51移位讀取指令的格式

3.指令使用說明SFWR指令和SFRD指令為連續(xù)/脈沖執(zhí)行型指令,操作數(shù)為16位。

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

表5.9數(shù)據(jù)處理指令表

5.7.1FNC40(ZRST)區(qū)間復位指令

1.指令功能指令功能:將目標操作數(shù)[D1·]和[D2·]區(qū)間范圍內(nèi)的元件復位。操作數(shù):目標操作數(shù)[D1·]、[D2·]是Y、M、S、T、C、D。

2.編程格式區(qū)間復位指令在程序應用中的格式如圖5.52所示,當M8002為ON時,執(zhí)行區(qū)間復位指令。

圖5.52區(qū)間復位指令的格式

3.指令使用說明(1)ZRST指令為連續(xù)/脈沖執(zhí)行型指令,操作數(shù)為16位。(2)目標操作數(shù)[D1·]、[D2·]必須使用同一種類的軟元件,且[D1·]編號≤[D2·]編號。(3)?ZRST指令以16位指令執(zhí)行,但是[D1·]、[D2·]也可同時指定為32位計數(shù)器。(4)對于位元件(Y、M、S)和字元件(T、C、D)單獨復位可以使用RST指令。(5)對于位組合元件KnY、KnM、KnS的復位,可以使用多點傳送指令(FMOV),將0寫入其中,如圖5.28所示。

5.7.2FNC41(DECO)譯碼指令

1.指令功能指令功能:根據(jù)源操作數(shù)[S·]指定的元件為首的n位數(shù)據(jù)的數(shù)值(m),將目標操作數(shù)[D·]指定的元件為首的第m位元件置1。操作數(shù):源操作數(shù)[S·]是K、H、T、C、D、X、Y、M、S、V、Z;目標操作數(shù)[D·]是Y、M、S、T、C、D。

2.編程格式譯碼指令在程序應用中的格式如圖5.53所示,當X0=ON時,執(zhí)行該指令。

圖5.53譯碼指令的格式(a)位元件的譯碼指令;(b)字元件的譯碼指令

3.指令使用說明(1)?DECO指令為連續(xù)/脈沖執(zhí)行型指令,操作數(shù)為16位。(2)目標操作數(shù)是位元件,n的取值范圍是1≤n≤8;目標操作數(shù)是字元件,n的取值范圍是1≤n≤4,n=0時不處理,n在取值范圍以外時運算錯誤標志動作。(3)驅(qū)動輸入由ON→OFF時,指令停止執(zhí)行,正在動作的譯碼輸出保持動作。

5.7.3FNC42(ENCO)編碼指令

1.指令功能指令功能:將源操作數(shù)[S·]指定的元件為首的2n-1位中,從最高位開始第一個為1的位編號寫入目標操作數(shù)[D·]。操作數(shù):源操作數(shù)[S·]是X、Y、M、S、T、C、D、V、Z;目標操作數(shù)[D·]是T、C、D、V、Z。

2.編程格式編碼指令在程序應用中的格式如圖5.54所示。當X0=ON時,執(zhí)行該指令。

圖5.54編碼指令的格式(a)位元件的編碼指令;(b)字元件的編碼指令

3.指令使用說明與譯碼指令基本相同。

5.7.4FNC43(SUM)ON位數(shù)指令

1.指令功能指令功能:將源操作數(shù)[S·]的數(shù)據(jù)中“1”的個數(shù)存入目標操作數(shù)[D·]。操作數(shù):源操作數(shù)[S·]是K、H、KnX、KnY、KnM、KnS、T、C、D、V、Z;目標操作數(shù)[D·]是KnY、KnM、KnS、T、C、D、V、Z。

2.編程格式ON位數(shù)指令在程序應用中的格式如圖5.55所示。當X0=ON時,執(zhí)行ON位數(shù)指令,即統(tǒng)計D1中“1”的總數(shù)(4個),然后將其存入數(shù)據(jù)寄存器D0。

圖5.55ON位數(shù)指令的格式

3.指令使用說明(1)?SUM指令為連續(xù)/脈沖執(zhí)行型指令,操作數(shù)為16位。(2)若SUM指令源操作數(shù)指定的元件中數(shù)據(jù)為0,則零標志位M8020=ON。

5.7.5FNC44(BON)ON位判斷指令

1.指令功能指令功能:源操作數(shù)[S·]指定的位數(shù)中第n位為1,則將目標操作數(shù)[D·]指定的元件置1;源操作數(shù)[S·]指定的位數(shù)中第n位為0,則將目標操作數(shù)[D?]指定的元件置0。操作數(shù):源操作數(shù)[S·]是K、H、KnX、KnY、KnM、KnS、T、C、D、V、Z;目標操作數(shù)[D·]是Y、M、S。

2.編程格式ON位判斷指令在程序應用中的格式如圖5.56所示。

圖5.56ON位判斷指令的格式

3.指令使用說明(1)?ON位判斷指令為連續(xù)/脈沖執(zhí)行型指令,操作數(shù)為16位和32位兩種。(2)對于16位ON位判斷指令,n=0~15;對于32位ON位判斷指令,n=0~31。

5.7.6FNC45(MEAN)求平均值指令

1.指令功能指令功能:將源操作數(shù)[S·]指定的n個數(shù)據(jù)序列求平均,將結(jié)果存入目標操作數(shù)[D·]。操作數(shù):源操作數(shù)[S·]是KnX、KnY、KnM、KnS、T、C、D;目標操作數(shù)[D·]是KnY、KnM、KnS、T、C、D、V、Z。

2.編程格式求平均值指令在程序應用中的格式如圖5.57所示,當X0=ON時,執(zhí)行求平均值指令。

圖5.57求平均值指令的格式

3.指令使用說明(1)求平均值指令為連續(xù)/脈沖執(zhí)行型指令,操作數(shù)為16位和32位兩種。(2)?n的取值范圍是1≤n≤64,n在取值范圍以外時運算錯誤標志動作。

5.7.7FNC46(ANS)報警信號設置指令和FNC47(ANR)報警信號復位指令

1.指令功能ANS指令功能:當源操作數(shù)[S·]的定時器當前值與n相等時,將目標操作數(shù)[D·]置1。ANR指令功能:復位正在報警的信號。

2.編程格式報警信號指令在程序應用中的格式如圖5.58所示。

當X0接通10?s時,則S900置為1并保持,同時定時器T0復位。當X1由OFF→ON時,報警器S900~S999中正在報警的信號復位。

圖5.58報警信號指令的格式(a)報警信號設置指令;(b)報警信號復位指令

3.指令使用說明(1)報警信號指令只有16位指令。(2)報警信號設置指令為連續(xù)型執(zhí)行指令,報警信號復位指令有連續(xù)/脈沖型兩種。(3)對報警信號復位時,若超過1個報警器信號被置1,則元件號最低的一個被復位。

5.7.8FNC48(SQR)二進制開平方指令

1.指令功能指令功能:將源操作數(shù)[S·]的數(shù)值開平方,將結(jié)果存入目標操作數(shù)[D·]。操作數(shù):源操作數(shù)[S·]是K、H、D;目標操作數(shù)[D·]是D。

2.編程格式二進制開平方指令在程序應用中的格式如圖5.59所示,當X0=ON時,→D0。

圖5.59二進制開平方指令的格式

3.指令使用說明(1)二進制開平方指令為脈沖/連續(xù)型兩種,操作數(shù)為16位和32位。(2)源操作數(shù)[S·]的數(shù)值是正數(shù)時有效,如是負數(shù),則運算錯誤標志M8067被置為1。(3)當運算結(jié)果是0時,零標志位M8020被置1。

5.7.9FNC49(FLT)整數(shù)—二進制浮點數(shù)轉(zhuǎn)換指令

1.指令功能指令功能:將源操作數(shù)[S·]的整數(shù)轉(zhuǎn)換成二進制浮點數(shù)存入目標操作數(shù)[D·]。操作數(shù):源操作數(shù)[S·]和目標操作數(shù)[D·]均是D。

2.編程格式整數(shù)—二進制浮點數(shù)轉(zhuǎn)換指令在程序應用中的格式如圖5.60所示。

圖5.60整數(shù)—二進制浮點數(shù)轉(zhuǎn)換指令的格式(a)?16位轉(zhuǎn)換指令;(b)?32位轉(zhuǎn)換指令

當X0=ON,且M8023為OFF時,將(D0)的數(shù)據(jù)轉(zhuǎn)換成二進制浮點數(shù)存入(D11,D10);當X1=ON,且M8023為OFF時,將(D1,D0)的數(shù)據(jù)轉(zhuǎn)換成二進制浮點數(shù)存入(D11,D10)。M8023為ON時,將把浮點數(shù)轉(zhuǎn)換為整數(shù)。用于存放浮點數(shù)的目標操作數(shù)應為雙整數(shù)。源操作數(shù)可以是整數(shù)或雙整數(shù)。

3.指令使用說明(1)整數(shù)—二進制浮點數(shù)轉(zhuǎn)換指令為脈沖/連續(xù)型兩種,操作數(shù)為16位和32位。(2)整數(shù)—二進制浮點數(shù)轉(zhuǎn)換指令的逆變換指令是FNC129(INT)。

5.8高速處理指令

表5.10高速處理指令表

5.8.1FNC50(REF)輸入/輸出刷新指令

1.指令功能指令功能:立即刷新輸入/輸出信息,獲取最新輸入信息和立即輸出信息。操作數(shù):目標操作數(shù)[D·]分別是X和Y。

2.編程格式輸入/輸出刷新指令在程序應用中的格式如圖5.61所示。

圖5.61輸入/輸出刷新指令的格式(a)輸入刷新指令;(b)輸出刷新指令

當X0=ON時,執(zhí)行輸入刷新指令。若在該指令執(zhí)行X10~X17已經(jīng)變?yōu)镺N約10?ms(輸入濾波滯后應答時間),則該指令執(zhí)行后輸入映像寄存器X10~X17為ON;當X1=ON時執(zhí)行輸出刷新指令,即若Y0~Y7任一為ON,則該指令執(zhí)行后鎖存存儲區(qū)的相應輸出也為ON。

3.指令使用說明(1)輸入/輸出刷新指令為脈沖/連續(xù)型兩種,操作數(shù)為16位。(2)輸入/輸出刷新指令的目標操作數(shù)元件編號低位只能是0,如X0、Y10等。(3)輸入/輸出刷新點數(shù)n應是8的倍數(shù),如8、16、32……256,否則將出錯。(4)通常在FOR-NEXT以及標號(新步號)~CJ(老步號)之間使用該指令。(5)在有輸入/輸出動作的中斷程序中,使用該指令可以獲取最新的輸入/輸出信息。(6)輸出刷新的輸出觸點,仍有滯后時間,繼電器輸出約10?ms,晶體管輸出約0.2?ms。

5.8.2FNC51(REFF)刷新及濾波時間調(diào)整指令

1.指令功能圖5.62刷新及濾波時間調(diào)整指令的格式指令功能:依據(jù)給定值調(diào)整輸入濾波時間。

2.編程格式刷新及濾波時間調(diào)整指令在程序應用中的格式如圖5.62所示。當X0=ON時,主程序2中所使用的輸入繼電器的濾波時間是1?ms,該指令前的輸入濾波時間是10?ms;當X1=ON時,主程序3中的輸入繼電器的濾波時間是20?ms。

圖5.62刷新及濾波時間調(diào)整指令的格式

3.指令使用說明(1)刷新及濾波時間調(diào)整指令為連續(xù)/脈沖型兩種,操作數(shù)為16位。(2)為防止輸入噪音影響,PLC的輸入RC濾波時間常數(shù)為10?ms;對電子固態(tài)(無觸點)開關(guān),可以高速輸入。(3)該指令可改變輸入濾波時間的范圍是0~60?ms,即K的取值是0~60,實際濾波時間最小為50?μs(X0、X1為20?μs)。

(4)當中斷指針、高速計數(shù)器或者FNC56(SPD)指令采用X0~X7輸入時,輸入濾波時間自動調(diào)整為50?μs(X0、X1為20?μs)。(5)可以通過MOV指令改寫D8020數(shù)據(jù)寄存器的內(nèi)容,改變輸入濾波時間。

5.8.3FNC52(MTR)矩陣輸入指令

1.指令功能指令功能:將源操作數(shù)[S·]和目標操作數(shù)[D1·]組成的矩陣開關(guān)輸入狀態(tài)信號存入目標操作數(shù)[D2·]。操作數(shù):源操作數(shù)[S·]只能是X;[D1·]只能是Y;[D2·]是Y、M、S。

2.編程格式矩陣輸入指令在程序應用中的格式、硬件接線和波形圖如圖5.63所示。

圖5.63矩陣輸入指令的格式(a)指令格式;(b)硬件接線;(c)時序圖

當M0=ON時,將8×3的矩陣輸入開關(guān)信號分別送入到目標操作數(shù)[D2·?],即存入M30~M37、M40~M47和M50~M57中。在圖5.63中,[S·]指定開關(guān)矩陣輸入元件的起始地址,以X10開始占用8個輸入點;[D1·]指定開關(guān)矩陣輸出元件的起始地址,占用n點,以Y10開始占用3個輸出點;[D2·]指定存放輸入開關(guān)矩陣狀態(tài)的起始地址。Y10~Y12依次輸出一定寬度的脈沖,當Y10=ON時,讀入第一行開關(guān)狀態(tài)并存入M30~M37中;當Y11=ON時,讀入第二行開關(guān)狀態(tài)并存入M40~M47中;當Y12=ON時,讀入第三行開關(guān)狀態(tài)并存入M50~M57中;依此類推,反復執(zhí)行。

5.8.4FNC53(HSCS)高速計數(shù)器置位指令和FNC54(HSCR)高速計數(shù)器復位指令

1.指令功能HSCS指令功能:當源操作數(shù)[S2·]指定的高速計數(shù)器當前值和源操作數(shù)[S1·]指定的數(shù)值相等時,將目標操作數(shù)[D·]立即置1。HSCR指令功能:當源操作數(shù)[S2·]指定的高速計數(shù)器當前值和源操作數(shù)[S1·]指定的數(shù)值相等時,將目標操作數(shù)[D·]立即復位。操作數(shù):源操作數(shù)[S1·]是K、H、KnX、KnY、KnM、KnS、T、C、D、V、Z;源操作數(shù)[S2·]是C235~C255;目標操作數(shù)[D?]是Y、M、S。

2.編程格式高速計數(shù)器置位和復位指令在程序應用中的格式如圖5.64所示,當X0=ON時,執(zhí)行高速計數(shù)器置位指令,即高速計數(shù)器C235的當前值由99變?yōu)?00,或由101變?yōu)?00,Y1立即置位為1;當X1=ON時,執(zhí)行高速計數(shù)器復位指令,即高速計數(shù)器C235的當前計數(shù)值由99變?yōu)?00,或由101變?yōu)?00,Y1立即復位。

圖5.64高速計數(shù)器置位和復位指令的格式(a)高速計數(shù)器置位指令(HSCS);(b)計數(shù)器復位指令(HSCR)

3.指令使用說明高速計數(shù)器置位指令和復位指令為連續(xù)型執(zhí)行指令,操作數(shù)為32位。

5.8.5FNC55(HSZ)高速計數(shù)器區(qū)間比較指令

1.指令功能指令功能:將源操作數(shù)[S3·]和源操作數(shù)[S1·]、[S2·]進行比較,比較的結(jié)果決定以[D·]為首址的連續(xù)三個繼電器的狀態(tài)(ON/OFF)。

2.編程格式高速計數(shù)器區(qū)間比較指令在程序應用中的格式如圖5.65所示。當PLC運行,執(zhí)行該指令。計數(shù)器C25

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論