第六章+PLC功能指令系統(tǒng)_第1頁
第六章+PLC功能指令系統(tǒng)_第2頁
第六章+PLC功能指令系統(tǒng)_第3頁
第六章+PLC功能指令系統(tǒng)_第4頁
第六章+PLC功能指令系統(tǒng)_第5頁
已閱讀5頁,還剩108頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、一、一、功能指令的表示形式功能指令的表示形式:uPLC采用計算機通用的采用計算機通用的助記符助記符形式來表示功能指令,通常形式來表示功能指令,通常用用英文名稱或其縮寫英文名稱或其縮寫作為助記符。作為助記符。u功能指令按功能指令按功能號功能號FNC00XXX(99,246)編排。編排。u每條功能指令都有一個每條功能指令都有一個助記符助記符和和功能號功能號,還需指定,還需指定操作數(shù)操作數(shù)。u功能指令格式:功能指令格式:助記符(或功能號)助記符(或功能號)+操作數(shù)操作數(shù)。u操作數(shù)操作數(shù):S:源操作數(shù)源操作數(shù),S.表示變址功能的源操作數(shù),表示變址功能的源操作數(shù), S1.、 S2.表示源操作數(shù)不止一個。

2、表示源操作數(shù)不止一個。D:目的操作數(shù)目的操作數(shù), D.表示變址功能的目的操作數(shù),表示變址功能的目的操作數(shù), D1.、 D2.表示目的操作數(shù)不止一個。表示目的操作數(shù)不止一個。m,n:表示:表示其它操作數(shù)其它操作數(shù), 常用來表示常數(shù)(可用十進制常用來表示常數(shù)(可用十進制K或十六進制或十六進制H) 或作為源操作數(shù)和目標(biāo)操作數(shù)的補充說明?;蜃鳛樵床僮鲾?shù)和目標(biāo)操作數(shù)的補充說明。 需要注釋項目不止一個時,采用需要注釋項目不止一個時,采用m1,m2u程序步的計算程序步的計算: 功能指令的功能指令的功能號和助記符功能號和助記符占占一個一個程序步,程序步, 操作數(shù)操作數(shù)占占2或或4程序步,程序步,16位位指令是

3、指令是2步步,32位位指令是指令是4步步。 所以所以,一般地一般地16位指令為位指令為7個程序步個程序步,32位指令為位指令為13個程序個程序步步.例:指令格式舉例。例:指令格式舉例。當(dāng)X0為ON時,(D10+D11+D12)/3D20二、數(shù)據(jù)長度及指令的執(zhí)行形式二、數(shù)據(jù)長度及指令的執(zhí)行形式1、16位和位和32位位p指令中的符號指令中的符號(D)表示處理表示處理32位數(shù)據(jù);位數(shù)據(jù);p處理處理32位數(shù)據(jù)時,使用元件號相鄰的兩個元件組成位數(shù)據(jù)時,使用元件號相鄰的兩個元件組成元元件對件對,建議首元件號使用偶數(shù),如,建議首元件號使用偶數(shù),如D10;p32位計數(shù)器不能用作位計數(shù)器不能用作16位指令的操作

4、數(shù)。位指令的操作數(shù)。2、連續(xù)執(zhí)行連續(xù)執(zhí)行/脈沖執(zhí)行脈沖執(zhí)行n 連續(xù)執(zhí)行方式連續(xù)執(zhí)行方式:當(dāng):當(dāng)X0為為ON時,指令在每個掃描周期時,指令在每個掃描周期會被重復(fù)執(zhí)行。會被重復(fù)執(zhí)行。n 脈沖執(zhí)行方式脈沖執(zhí)行方式(助記符后加(助記符后加(P)符號):只有當(dāng)符號):只有當(dāng)X10由由OFF變?yōu)樽優(yōu)镺N時,指令才會被執(zhí)行。時,指令才會被執(zhí)行。n 符號符號(D)和和(P)可同時使用,如(可同時使用,如(D)MOV(P)3、位元件、位元件p位元件位元件:只處理:只處理ON/OFF狀態(tài)的元件,如狀態(tài)的元件,如X,Y,M,S。p字元件字元件:處理數(shù)據(jù)的元件,如:處理數(shù)據(jù)的元件,如T,C,D。p位元件組合起來可處理

5、數(shù)字?jǐn)?shù)據(jù)。位元件組合起來可處理數(shù)字?jǐn)?shù)據(jù)。每每4位位為一組組為一組組合成單元,用合成單元,用 Kn+首位元件號首位元件號表示。表示。n表示組數(shù)表示組數(shù)(單元數(shù))。(單元數(shù))。16位操作數(shù)時為位操作數(shù)時為K1K4,32位操位操作數(shù)時為作數(shù)時為K1K8。首元件號為最低位首元件號為最低位。如:如:K4M0表示由表示由M015組成的組成的16位數(shù)據(jù),位數(shù)據(jù),K2X0表示由表示由X0X7組成的組成的8位數(shù)據(jù)。位數(shù)據(jù)。4 4、變址寄存器、變址寄存器V V,Z Zp 變址寄存器用于在變址寄存器用于在傳送、比較傳送、比較指令中指令中修改操作對象的元修改操作對象的元件號件號,其操作方式與普通寄存器一樣。,其操作方

6、式與普通寄存器一樣。p 操作數(shù)操作數(shù)S2.S2.、D.D.表示可以加入變址寄存器。表示可以加入變址寄存器。p 對對3232位指令,位指令,V V,Z Z自動組對,自動組對,V V作高作高1616位,位,Z Z作低作低1616位,位,在指令中只需指定在指令中只需指定Z Z。執(zhí)行:執(zhí)行:M10為為ON時,(時,(V)=10;M11為為ON時,(時,(Z)=20;M12為為ON時執(zhí)行時執(zhí)行ADD指令,(指令,(D5V)+(D15Z)=(D40Z),),即(即(D15)+(D35)=(D60)。)。V,Z內(nèi)容不變。內(nèi)容不變。 功能指令功能指令 1、程序流程控制指令、程序流程控制指令FNC0009 2、

7、傳送與比較指令、傳送與比較指令FNC1019 3、算術(shù)運算和邏輯運算指令、算術(shù)運算和邏輯運算指令FNC2029 4、循環(huán)移位和移位指令、循環(huán)移位和移位指令FNC3039 5、數(shù)據(jù)處理指令、數(shù)據(jù)處理指令FNC4049 6、高速處理指令、高速處理指令FN5059 7、方便指令、方便指令FNC6069 8、外部、外部I/O設(shè)備指令設(shè)備指令FNC7079 9、FX外圍設(shè)備指令外圍設(shè)備指令FNC808910、浮點數(shù)指令、浮點數(shù)指令11、定位指令、定位指令12、時鐘指令、時鐘指令13、外圍指令、外圍指令14、觸點指令、觸點指令 標(biāo)志位標(biāo)志位 功能指令在操作過程中,其運算結(jié)果要影響功能指令在操作過程中,其運

8、算結(jié)果要影響某些特殊繼電器或寄存器,稱為標(biāo)志(位)。某些特殊繼電器或寄存器,稱為標(biāo)志(位)。標(biāo)志(位)分:標(biāo)志(位)分: 一般標(biāo)志(位);一般標(biāo)志(位); 運算標(biāo)志(位);運算標(biāo)志(位); 功能標(biāo)志(位)。功能標(biāo)志(位)。 一般標(biāo)志(位)一般標(biāo)志(位)在功能指令操作中,其結(jié)果會影響一些標(biāo)志位:在功能指令操作中,其結(jié)果會影響一些標(biāo)志位:M8020:零標(biāo)志,如果運算結(jié)果為:零標(biāo)志,如果運算結(jié)果為0則動作;則動作;M8021:借位標(biāo)志,如果減運算時被減數(shù)不夠時:借位標(biāo)志,如果減運算時被減數(shù)不夠時動作;動作;M8022:進位標(biāo)志,如果運算結(jié)果發(fā)生進位時動:進位標(biāo)志,如果運算結(jié)果發(fā)生進位時動作;作;M8

9、029:指令執(zhí)行結(jié)束標(biāo)志。:指令執(zhí)行結(jié)束標(biāo)志。 運算標(biāo)志(位)運算標(biāo)志(位)如果功能指令的結(jié)構(gòu)、可用軟件及其編號范圍等方如果功能指令的結(jié)構(gòu)、可用軟件及其編號范圍等方面有錯誤時,或在運算過程中出現(xiàn)錯誤,一些標(biāo)面有錯誤時,或在運算過程中出現(xiàn)錯誤,一些標(biāo)志位會動作,并記錄出錯信息:志位會動作,并記錄出錯信息:M8067:運算出錯標(biāo)志;:運算出錯標(biāo)志;M8068:運算錯誤代碼編號存儲;:運算錯誤代碼編號存儲;M8069:錯誤發(fā)生的序號記錄存儲。:錯誤發(fā)生的序號記錄存儲。PLC由由STOPRUN時標(biāo)志是瞬間清除,如果出現(xiàn)時標(biāo)志是瞬間清除,如果出現(xiàn)運算錯誤,則運算錯誤,則M8068保持動作,保持動作,D8

10、068中存儲中存儲發(fā)生錯誤的步序號。發(fā)生錯誤的步序號。 功能標(biāo)志(位)功能標(biāo)志(位)部分功能指令中,同時使用由該功能指令確部分功能指令中,同時使用由該功能指令確定的固有特殊輔助繼電器,可進行功能擴定的固有特殊輔助繼電器,可進行功能擴展。如:展。如:M8161:為:為8位處理模式,適用于位處理模式,適用于FNC76(ASC)、)、FNC80(RS)、)、FNC82(ASCI)、)、FNC83(HEX)、)、FNC84(CCD)指令。)指令。1、程序流程控制指令、程序流程控制指令FNC0009(1)條件跳轉(zhuǎn)指令條件跳轉(zhuǎn)指令CJ(FNC00)(2)主程序結(jié)束主程序結(jié)束FEND(FNC06)(3)子程

11、序調(diào)用子程序調(diào)用CALL(FNC01) 子程序返回子程序返回SRET(FNC02)(4)中斷返回中斷返回IRET(FNC03)、 允許中斷允許中斷EI(FNC04)、 禁止中斷禁止中斷DI(FNC05)(5)監(jiān)視定時器刷新監(jiān)視定時器刷新WDT(FNC07)(6)循環(huán)開始循環(huán)開始FOR(FNC08)、 循環(huán)結(jié)束循環(huán)結(jié)束NEXT(FNC09)(1)條件跳轉(zhuǎn)指令)條件跳轉(zhuǎn)指令CJ使用說明使用說明:X10為為ON,程,程序跳到標(biāo)號序跳到標(biāo)號P8處,否則,順處,否則,順序執(zhí)行。序執(zhí)行。NOTE(1)一個標(biāo)號只能一個標(biāo)號只能出現(xiàn)一次出現(xiàn)一次,否則出錯。(,否則出錯。(2)兩條跳轉(zhuǎn)指令可以使用共同兩條跳轉(zhuǎn)指

12、令可以使用共同的標(biāo)號的標(biāo)號,(,(3)M8000為執(zhí)為執(zhí)行條件,則為行條件,則為無條件跳轉(zhuǎn)無條件跳轉(zhuǎn)。l編程時,標(biāo)號占一行,對有意向編程時,標(biāo)號占一行,對有意向END步跳轉(zhuǎn)的步跳轉(zhuǎn)的指令,程序中不要對標(biāo)號編程。如圖指令,程序中不要對標(biāo)號編程。如圖6-17示。示。l跳轉(zhuǎn)指令和主控指令在使用跳轉(zhuǎn)指令和主控指令在使用時關(guān)系:時關(guān)系:a. 對跳過整個主控區(qū)對跳過整個主控區(qū)(MC-MCR)的跳轉(zhuǎn)不受任何限制;的跳轉(zhuǎn)不受任何限制;b. 從主控區(qū)外跳轉(zhuǎn)到主控區(qū)從主控區(qū)外跳轉(zhuǎn)到主控區(qū)內(nèi)時,跳轉(zhuǎn)獨立于主控操作,內(nèi)時,跳轉(zhuǎn)獨立于主控操作,CJ P1執(zhí)行時,不論執(zhí)行時,不論M0狀態(tài)狀態(tài)如何,作如何,作ON狀態(tài)處理;

13、狀態(tài)處理;c. 在主控區(qū)內(nèi)部跳轉(zhuǎn)時,在主控區(qū)內(nèi)部跳轉(zhuǎn)時,M0為為OFF,跳轉(zhuǎn)不可能執(zhí)行。,跳轉(zhuǎn)不可能執(zhí)行。M0為為ON時,按跳轉(zhuǎn)指令執(zhí)時,按跳轉(zhuǎn)指令執(zhí)行;行;d. 從主控區(qū)內(nèi)跳轉(zhuǎn)到從主控區(qū)內(nèi)跳轉(zhuǎn)到主控區(qū)外時,主控區(qū)外時,M0為為OFF,跳轉(zhuǎn)不執(zhí)行,跳轉(zhuǎn)不執(zhí)行,M0為為ON,跳轉(zhuǎn)條件,跳轉(zhuǎn)條件滿足可跳轉(zhuǎn);滿足可跳轉(zhuǎn);e. 從一個主控區(qū)跳到另從一個主控區(qū)跳到另一個主控區(qū)內(nèi),一個主控區(qū)內(nèi),M1為為ON,可跳轉(zhuǎn),執(zhí),可跳轉(zhuǎn),執(zhí)行跳轉(zhuǎn)時,不論行跳轉(zhuǎn)時,不論M2狀態(tài)如何,均看作為狀態(tài)如何,均看作為ON。(2)主程序結(jié)束)主程序結(jié)束FENDNOTE:l程序執(zhí)行程序執(zhí)行FEND時,時,PLC進行輸入處理、輸出

14、處進行輸入處理、輸出處理、監(jiān)視定時刷新,完成后返回第理、監(jiān)視定時刷新,完成后返回第0步。步。lFEND為主程序的結(jié)束指令,功能同為主程序的結(jié)束指令,功能同END同;同; CALL(調(diào)用子程序調(diào)用子程序)指令中,指令中,子程序、中斷子程序應(yīng)寫在子程序、中斷子程序應(yīng)寫在FEND指令之后,且在結(jié)束指令之后,且在結(jié)束端用端用SRET和和IRET為返回為返回指令。指令。 FEND指令在指令在CALL或或CALL(P)-SRET指令執(zhí)行指令執(zhí)行之后出現(xiàn),則程序出錯。同之后出現(xiàn),則程序出錯。同樣,樣,F(xiàn)END指令在指令在FOR-NEXT循環(huán)中也出錯。循環(huán)中也出錯。 子程序及中斷子程序必須寫子程序及中斷子程序

15、必須寫在在FEND與與END間,若使間,若使用多個用多個FEND指令,則在最指令,則在最后的后的FEND與與END間編寫間編寫子程序或中斷子程序子程序或中斷子程序。SRET(3)子程序調(diào)用)子程序調(diào)用CALL與子程序返回與子程序返回SRET動作動作(1)當(dāng)當(dāng)X10為為ON,CALL P20指令使程序指令使程序執(zhí)行執(zhí)行P20子程序子程序,在子程序中執(zhí)行到在子程序中執(zhí)行到SRET指令后程指令后程序序返回返回到到CALL指令的指令的下一條指令下一條指令(104步)處執(zhí)為。(步)處執(zhí)為。(2)X10為為OFF,則程序,則程序順序執(zhí)行順序執(zhí)行。NOTE子程序應(yīng)寫在主程序后,即子程序的標(biāo)號應(yīng)寫在指令子程序

16、應(yīng)寫在主程序后,即子程序的標(biāo)號應(yīng)寫在指令FEND之后,且子程序必須以之后,且子程序必須以SRET結(jié)束。結(jié)束。NOTE: 在子程序中可在子程序中可再再次使用次使用CALL指令,指令,形成形成子程序嵌套子程序嵌套,共可有共可有5級嵌套。級嵌套。 應(yīng)用子程應(yīng)用子程序調(diào)用指序調(diào)用指令,可優(yōu)令,可優(yōu)化程序結(jié)化程序結(jié)構(gòu),提高構(gòu),提高編程效果。編程效果。(4)中斷返回)中斷返回IRET、允許中斷、允許中斷EI、禁止中斷、禁止中斷DINOTE(1)FX系列有系列有9(+6)個中斷點,外部輸個中斷點,外部輸入中斷,中斷信號從入中斷,中斷信號從X0X5輸入;內(nèi)部定時器中輸入;內(nèi)部定時器中斷斷(計數(shù)器中斷計數(shù)器中斷

17、) ;(;(2)中斷服務(wù)程序的標(biāo)號為)中斷服務(wù)程序的標(biāo)號為I;(3)指令)指令EIDI之間的程序段為之間的程序段為允許允許中斷區(qū)間中斷區(qū)間,而,而DIEI之間為之間為禁止中斷禁止中斷區(qū)間區(qū)間。M8050M8059為中斷禁止為中斷禁止特殊輔助繼電器。特殊輔助繼電器。“0”為允許中斷,為允許中斷,“1”禁止中斷。禁止中斷。(4)當(dāng)程序執(zhí)行到允許中斷區(qū)間且出現(xiàn))當(dāng)程序執(zhí)行到允許中斷區(qū)間且出現(xiàn)中斷請求信號時,中斷請求信號時,PLC跳到跳到相應(yīng)標(biāo)號相應(yīng)標(biāo)號處處執(zhí)行中斷服務(wù)程序,遇到中斷返回執(zhí)行中斷服務(wù)程序,遇到中斷返回指令指令I(lǐng)RET后返回后返回斷點處斷點處繼續(xù)執(zhí)行主程繼續(xù)執(zhí)行主程序。序。動作動作:當(dāng)程

18、序執(zhí)行:當(dāng)程序執(zhí)行到到允許中斷區(qū)間允許中斷區(qū)間時,時,X0或或X1為為ON,則去則去執(zhí)行執(zhí)行相應(yīng)的相應(yīng)的中中斷程序(斷程序(1)或)或(2)。中斷程序。中斷程序應(yīng)寫在主程序之后,應(yīng)寫在主程序之后,并以并以IRET結(jié)束。結(jié)束。NOTE:(1)有關(guān)的)有關(guān)的特殊特殊輔助繼電器(輔助繼電器(M805 )置)置1時,時,相應(yīng)的中斷程序(相應(yīng)的中斷程序(I )不能執(zhí)行。)不能執(zhí)行。(2)執(zhí)行一個中斷程序時,其它中斷自動被禁止執(zhí)行一個中斷程序時,其它中斷自動被禁止。但如果在該中斷程序編入但如果在該中斷程序編入EI和和DI指令時,則響應(yīng)其指令時,則響應(yīng)其它中斷,最多可實現(xiàn)它中斷,最多可實現(xiàn)2級中斷嵌套級中斷

19、嵌套。(3)如果中斷信號產(chǎn)生于)如果中斷信號產(chǎn)生于禁止中斷區(qū)間禁止中斷區(qū)間,該,該中斷信中斷信號被存儲號被存儲,并,并在在EI指令之后被執(zhí)行指令之后被執(zhí)行。(4)多個中斷信號同時出現(xiàn),中斷指針號)多個中斷信號同時出現(xiàn),中斷指針號低低的優(yōu)先的優(yōu)先權(quán)權(quán)高高。(5)監(jiān)視定時器刷新)監(jiān)視定時器刷新WDTNOTE :用于監(jiān)視:用于監(jiān)視PLC的工作情況,在每一個掃的工作情況,在每一個掃描周期自動對描周期自動對WDT復(fù)位,復(fù)位,監(jiān)控定時器定時時間缺省值為監(jiān)控定時器定時時間缺省值為200ms,通過修改通過修改D8000來設(shè)定它的定時時間。來設(shè)定它的定時時間。如果程序出錯則當(dāng)如果程序出錯則當(dāng)WDT定時時間到時,

20、監(jiān)控定時定時時間到時,監(jiān)控定時器不再被復(fù)位,定時時間到時,器不再被復(fù)位,定時時間到時,PLC將停止運行,將停止運行,其其CPU-E發(fā)光二極管亮,對系統(tǒng)重新啟動。發(fā)光二極管亮,對系統(tǒng)重新啟動。WDT的用法:的用法:若掃描周期大于它的定時時間,可將若掃描周期大于它的定時時間,可將WDT指令插指令插入到合適的程序步中刷新監(jiān)控定時器。入到合適的程序步中刷新監(jiān)控定時器。若若FOR-NEXT循環(huán)程序的執(zhí)行時間可能超過監(jiān)循環(huán)程序的執(zhí)行時間可能超過監(jiān)控定時器的定時時間,可將控定時器的定時時間,可將WDT指令插入循環(huán)程指令插入循環(huán)程序中。序中。條件跳步指令條件跳步指令CJ若在它對應(yīng)的標(biāo)號后(即程序往若在它對應(yīng)的

21、標(biāo)號后(即程序往回跳),可能因連續(xù)反復(fù)跳步使它們間的程序被回跳),可能因連續(xù)反復(fù)跳步使它們間的程序被反復(fù)執(zhí)行,總執(zhí)行時間可能超過反復(fù)執(zhí)行,總執(zhí)行時間可能超過WDT的定時時的定時時間間 ,可在,可在CJ指令和對應(yīng)的標(biāo)號間插入指令和對應(yīng)的標(biāo)號間插入WDT指令。指令。(6)循環(huán)開始)循環(huán)開始FOR、循環(huán)結(jié)束、循環(huán)結(jié)束NEXTNOTE:FORNEXT之間的程序重復(fù)執(zhí)行之間的程序重復(fù)執(zhí)行n次(由操作數(shù)指定)后,次(由操作數(shù)指定)后,再執(zhí)行再執(zhí)行NEXT指令指令后的程序。循環(huán)次數(shù)后的程序。循環(huán)次數(shù)n的范圍為的范圍為132767。若若n為負(fù)數(shù),作為負(fù)數(shù),作1處理。處理。 2、傳送與比較指令、傳送與比較指令F

22、NC1019(1)比較比較CMP(FNC10)(2)區(qū)間比較區(qū)間比較ZCP(FNC11)(3)傳送指令傳送指令MOV(FNC12)(4)移位傳送指令移位傳送指令SMOV(FNC13)(5)取反傳送取反傳送CML(FNC14)(6)塊傳送塊傳送BMOV(FNC15)(7)多點傳送多點傳送FMOV(FNC16)(8)交換交換XCH(FNC17)(9) BCD交換交換(FNC18)、 BIN交換交換(FNC19)(1)比較)比較CMPNOTE:(1)該指令有二個源操作數(shù))該指令有二個源操作數(shù)S1.、S2.,一個,一個 目的操作數(shù)目的操作數(shù)D.;(2)指令將)指令將S1.和和S2.進行比較,結(jié)果送到進

23、行比較,結(jié)果送到 D. 中。中。 (3)比較結(jié)果清除,需用比較結(jié)果清除,需用RST和和ZRST指令。指令。動作:動作:(1)當(dāng)當(dāng)X10為為ON時,比較時,比較K100和和C20當(dāng)前值的大小,分三種情況分別使當(dāng)前值的大小,分三種情況分別使M0、M1、M2中的一個為中的一個為ON,另兩個則為,另兩個則為OFF;(2)當(dāng))當(dāng)X10為為OFF,則,則CMP不執(zhí)行,不執(zhí)行,M0、M1、M2的狀態(tài)保持不變。的狀態(tài)保持不變。(2)區(qū)間比較)區(qū)間比較ZCPNOTE:該指令是將一個操作數(shù)該指令是將一個操作數(shù)S.與兩個操作數(shù)與兩個操作數(shù)S1.、S2.形成的區(qū)間比較,且形成的區(qū)間比較,且S1.S2.。比較指令和區(qū)間

24、比較指令,數(shù)據(jù)均為二進制比較指令和區(qū)間比較指令,數(shù)據(jù)均為二進制數(shù),且?guī)Х栁槐容^。數(shù),且?guī)Х栁槐容^。 X0為為ON,C30的的當(dāng)前值當(dāng)前值與與K100和和K120比比較較。(3)傳送指令)傳送指令MOVNOTE:(1)將源操作數(shù)將源操作數(shù)S.傳送到目標(biāo)元件傳送到目標(biāo)元件D. ,即,即S. D. ,源操作數(shù)不變源操作數(shù)不變。(2)指令執(zhí)行時,指令執(zhí)行時,K100十進制常數(shù)自動轉(zhuǎn)換成十進制常數(shù)自動轉(zhuǎn)換成二進制數(shù)。二進制數(shù)。 若若S源操源操作數(shù)是一個變作數(shù)是一個變數(shù),要用脈沖數(shù),要用脈沖型傳送指令型傳送指令MOV(P)。 對于對于32位數(shù)據(jù)的傳送,需用位數(shù)據(jù)的傳送,需用(D)MOV指令。否則出錯。

25、指令。否則出錯。 X0為為ON,則,則(D1,D0) (D11,D10); X1為為ON,(C235)32位位D21,D20。 將將K200D12 讀出讀出C0的當(dāng)前值的當(dāng)前值D20。 用用MOV指令,將輸入端指令,將輸入端X0X3的狀態(tài)送的狀態(tài)送到輸出端到輸出端Y0Y3,(4)移位傳送指令)移位傳送指令SMOVNOTE:BCD碼值超過碼值超過9999時出錯時出錯。源數(shù)據(jù)源數(shù)據(jù)BCD碼碼右起從第右起從第4位(位(m1=4)開始的)開始的2位(位( m2=2 )移送移送到到目標(biāo)目標(biāo)D2的第的第3位位(n=3)和第)和第2位位。而而D2的第的第4位和第位和第1位位兩位兩位BCD碼不變。碼不變。源數(shù)

26、據(jù)源數(shù)據(jù)BCD碼碼右起從第右起從第1位(位(m1=1)開)開始的始的1位(位( m2=1 )移送到目標(biāo)移送到目標(biāo)D2的第的第3位(位(n=3)。而。而D2的第的第4位、第位、第2位和位和第第1位三位位三位BCD碼不變。碼不變。(5)取反傳送)取反傳送CML將源操作數(shù)中的數(shù)據(jù)(自動轉(zhuǎn)換為二進制)將源操作數(shù)中的數(shù)據(jù)(自動轉(zhuǎn)換為二進制)遂位取遂位取反后傳送。反后傳送。可作為可作為PLC的反相輸入或反相輸出指令。的反相輸入或反相輸出指令。(6)塊傳送)塊傳送BMOVNOTE(1)將將源操作數(shù)開始源操作數(shù)開始的的n個數(shù)據(jù)組成的個數(shù)據(jù)組成的數(shù)據(jù)塊傳送到指數(shù)據(jù)塊傳送到指定目標(biāo)定目標(biāo)。指令操作順序依次為。指令

27、操作順序依次為S.、D. 和和n。如果元件號超。如果元件號超出出允許范圍允許范圍,數(shù)據(jù)僅傳送到允許范圍內(nèi)。,數(shù)據(jù)僅傳送到允許范圍內(nèi)。(2)傳送順序是自動決定的傳送順序是自動決定的,如果操作數(shù)的類型相同,傳送順,如果操作數(shù)的類型相同,傳送順序既可從高元件號開始,也可從低元件號開始。避免源操作數(shù)被序既可從高元件號開始,也可從低元件號開始。避免源操作數(shù)被該指令傳送的其他數(shù)據(jù)沖掉。該指令傳送的其他數(shù)據(jù)沖掉。(3)若用到需要指定位數(shù)的位元件,則源、目標(biāo)所指定的位數(shù))若用到需要指定位數(shù)的位元件,則源、目標(biāo)所指定的位數(shù)必須相同。必須相同。 (4)在指令格式中操作數(shù)只寫指定元件的最低位。在指令格式中操作數(shù)只寫

28、指定元件的最低位。 在指令格式中操作數(shù)只寫指定元件的最低位。在指令格式中操作數(shù)只寫指定元件的最低位。 指定位數(shù)的位元件,則源、目標(biāo)所指定的位數(shù)必指定位數(shù)的位元件,則源、目標(biāo)所指定的位數(shù)必須相同。須相同。 傳送順序是自動決定的傳送順序是自動決定的,如果操作數(shù)的類型相同,如果操作數(shù)的類型相同,傳送順序既可從高元件號開始,也可從低元件號開傳送順序既可從高元件號開始,也可從低元件號開始。避免源操作數(shù)被該指令傳送的其他數(shù)據(jù)沖掉。始。避免源操作數(shù)被該指令傳送的其他數(shù)據(jù)沖掉。 若若M8024為為ON,則,則BMOV指令的數(shù)據(jù)指令的數(shù)據(jù)從從DS,若若M8024為為OFF,BMOV指令的數(shù)據(jù)指令的數(shù)據(jù)從從SD,

29、(7)多點傳送)多點傳送FMOV源操作數(shù)傳送到源操作數(shù)傳送到指定目標(biāo)開始的指定目標(biāo)開始的n個目標(biāo)元件個目標(biāo)元件中,如:中,如:若元件號若元件號超出元件號范圍超出元件號范圍,數(shù)據(jù)僅傳送到允許范圍的數(shù)據(jù)僅傳送到允許范圍的元件中元件中。(8)交換)交換XCH數(shù)據(jù)在兩個指定目標(biāo)元件之間交換數(shù)據(jù)在兩個指定目標(biāo)元件之間交換,交換指令一般采,交換指令一般采用脈沖執(zhí)行方式,否則在每一個掃描周期都要交換用脈沖執(zhí)行方式,否則在每一個掃描周期都要交換一次。一次。 當(dāng)特殊繼電器當(dāng)特殊繼電器M8160為為ON,若,若D1與與D2為同一地址號時,其低為同一地址號時,其低8位與高位與高8位進位進行交換。行交換。(9)BCD

30、交換、交換、BIN交換交換BCD是將是將源元件源元件中的中的二進制數(shù)二進制數(shù)轉(zhuǎn)換轉(zhuǎn)換為為BCD碼碼送到送到目標(biāo)元件目標(biāo)元件中,中,對于對于16位或位或32位二進制操作數(shù),若變換結(jié)果超出位二進制操作數(shù),若變換結(jié)果超出09999或或09999 9999的范圍就會出錯。的范圍就會出錯。BCD指令指令常用于常用于將將PLC中的二進制數(shù)變換成中的二進制數(shù)變換成BCD碼碼輸出以驅(qū)動輸出以驅(qū)動LED顯示器顯示器。BIN是將是將源元件源元件中的中的BCD碼碼轉(zhuǎn)換為轉(zhuǎn)換為二進制數(shù)二進制數(shù)送到送到目標(biāo)元件目標(biāo)元件中,常中,常數(shù)數(shù)K不能作為不能作為本指令的本指令的操作元件操作元件。如果源操作數(shù)不是。如果源操作數(shù)不是

31、BCD碼就會碼就會出錯。出錯。BIN指令指令常用于常用于將將BCD數(shù)字開關(guān)數(shù)字開關(guān)(拔碼開關(guān)拔碼開關(guān))的設(shè)定值輸入到的設(shè)定值輸入到PLC中。 X0為為ON時,時,D12中的中的二進制二進制數(shù)數(shù)BCD碼碼送到送到輸出口輸出口Y7Y0。 X0為為ON,源操作數(shù),源操作數(shù)K2X0中中BCD碼碼轉(zhuǎn)換成二進制數(shù)送到目標(biāo)操作單元轉(zhuǎn)換成二進制數(shù)送到目標(biāo)操作單元D13中。中。 如果數(shù)據(jù)源不是如果數(shù)據(jù)源不是BCD碼,則碼,則M8067為為“1”,指示運算錯誤,且運算錯誤鎖,指示運算錯誤,且運算錯誤鎖存特殊輔助繼電器存特殊輔助繼電器M8068不工作。不工作。例例2:四路七段顯示控制程序(:四路七段顯示控制程序(P

32、136)例例3:多諧振蕩電路。:多諧振蕩電路。 例例4:彩燈交替控制程序:彩燈交替控制程序 例例5定時報時器控制程序定時報時器控制程序 例例6密碼鎖控制程序設(shè)計密碼鎖控制程序設(shè)計 X0X3代代表第表第1個十個十六進制數(shù);六進制數(shù); X4X7代代表第表第2個十個十六進制數(shù);六進制數(shù); X10X13代表第代表第3個個十六進制數(shù);十六進制數(shù);(1)加法)加法ADD(FNC20)、)、 減法減法SUB (FNC21)(2)乘法)乘法MUL (FNC22)、 除法除法DIV (FNC23)(3)加)加1INC (FNC24)、 減減1DEC (FNC25)(4)與)與WAND (FNC26)、 或或WO

33、R (FNC27)、 異或異或WXOR(FNC28)(5)求補)求補NEG (FNC29)(1)加法)加法ADD、減法、減法SUB將指定的源元件中的兩個二進制數(shù)相加,結(jié)果送到指定的目標(biāo)元將指定的源元件中的兩個二進制數(shù)相加,結(jié)果送到指定的目標(biāo)元件件。數(shù)據(jù)為帶符號數(shù),二進制的最高位作為符號位(。數(shù)據(jù)為帶符號數(shù),二進制的最高位作為符號位(0為正,為正,1為為負(fù))。負(fù))。如果運算結(jié)果為如果運算結(jié)果為0,則,則零標(biāo)志零標(biāo)志M8020置置1,如果運算結(jié)果超過,如果運算結(jié)果超過32767(16位運算),則位運算),則進位標(biāo)志進位標(biāo)志M8022置置1。如果運算結(jié)果。如果運算結(jié)果為負(fù),則為負(fù),則借位標(biāo)志借位標(biāo)志

34、M8021置置1。在在32位運算中,被指定的字元件是低位運算中,被指定的字元件是低16位元件,下一個元件為位元件,下一個元件為高高16位元件。位元件。如果加法指令之前置如果加法指令之前置1浮點操作標(biāo)志浮點操作標(biāo)志M8023,則可進行浮點值的,則可進行浮點值的加法。加法??蛇M行可進行浮點值浮點值的加法。的加法。加法指令之前,加法指令之前,浮點操作標(biāo)志浮點操作標(biāo)志M8023置置1。(2)乘法)乘法MUL、除法、除法DIVMUL是是將兩個源元件中的數(shù)據(jù)的乘積送到指定目標(biāo)將兩個源元件中的數(shù)據(jù)的乘積送到指定目標(biāo)。如為如為16位乘法,則乘積為位乘法,則乘積為32位,如為位,如為32位乘法,則乘積為位乘法,

35、則乘積為64位。位。最高位是符號位。目標(biāo)元件用位元件指定,只能得到乘積范圍內(nèi)的最高位是符號位。目標(biāo)元件用位元件指定,只能得到乘積范圍內(nèi)的乘積。乘積。DIV是進行是進行16位和位和32位除法,得到位除法,得到商和余數(shù)商和余數(shù)。若指定若指定位元件位元件為目標(biāo)元件,則為目標(biāo)元件,則不能得到余數(shù)不能得到余數(shù)。對于對于16位乘、除法,位乘、除法,V不能用于不能用于D.,對于,對于32位運算,位運算,V,Z不能用于不能用于D.。(3)加)加1INC、和減、和減1DEC操作數(shù)只有一個,且不影響進位和借位標(biāo)志。操作數(shù)只有一個,且不影響進位和借位標(biāo)志。INC、DEC不影響標(biāo)志位。不影響標(biāo)志位。Z由復(fù)位輸入由復(fù)位

36、輸入X10清零清零每次每次X11由由OFF變?yōu)樽優(yōu)镺N時,計數(shù)器時,計數(shù)器C0C9的當(dāng)?shù)漠?dāng)前值依次被轉(zhuǎn)前值依次被轉(zhuǎn)換為換為BCD碼碼并輸出到并輸出到Y(jié)0Y17(4)與與WAND、或、或WOR、異或、異或WXOR(5)求補求補NEG NEG指令指令將將D.指定的數(shù)每一位取反后再加指定的數(shù)每一位取反后再加1,結(jié),結(jié)果存于同一元件果存于同一元件;求補指令實際上是絕對值不變的變號操作。求補指令實際上是絕對值不變的變號操作。NOTE:FX系列的負(fù)數(shù)用補碼的形式表示,最高位系列的負(fù)數(shù)用補碼的形式表示,最高位為符號位,正數(shù)該位為為符號位,正數(shù)該位為0,負(fù)數(shù)為,負(fù)數(shù)為1,將負(fù)數(shù)求補,將負(fù)數(shù)求補后得到其絕對值。

37、后得到其絕對值。例例1四則運算式的實現(xiàn)四則運算式的實現(xiàn)例例2使用乘除運算實現(xiàn)移位控制使用乘除運算實現(xiàn)移位控制例例3 彩燈亮、彩燈亮、滅循環(huán)控制滅循環(huán)控制(1)右循環(huán)移位)右循環(huán)移位ROR(FNC30)、)、 左循環(huán)移位左循環(huán)移位ROL(FNC31)(2)帶進位循環(huán)右移)帶進位循環(huán)右移RCR(FNC32)、 帶進位循環(huán)左移帶進位循環(huán)左移RCL(FNC33)(3)位右移)位右移SFTR(FNC34)、 位左移位左移SFTL(FNC35)(4)字右移)字右移WSFR(FNC36)、 字左移字左移WSFL(FNC37)(5)先入先出()先入先出(FIFO)寫入)寫入SFWR(FNC38)、 先入先出(

38、先入先出(FIFO)讀出讀出SFRD(FNC39)(1)右循環(huán)移位)右循環(huán)移位ROR、左循環(huán)移位、左循環(huán)移位ROL X0為為ON,D內(nèi)的內(nèi)的數(shù)據(jù)右移數(shù)據(jù)右移n位,最后位,最后一次從最一次從最低位移出低位移出的狀態(tài)存的狀態(tài)存于進位標(biāo)于進位標(biāo)志志M8022中。中。 當(dāng)當(dāng)X0為為ON,D內(nèi)的數(shù)內(nèi)的數(shù)據(jù)向左移據(jù)向左移n位,位,最后一次從最后一次從最高位移出最高位移出的狀態(tài)也存的狀態(tài)也存于進位標(biāo)志于進位標(biāo)志M8022中。中。(2)帶進位循環(huán)右移帶進位循環(huán)右移RCR、帶進位循環(huán)左移、帶進位循環(huán)左移RCL使數(shù)據(jù)連同使數(shù)據(jù)連同進位標(biāo)志進位標(biāo)志一起循環(huán)移位一起循環(huán)移位n位。位。 X0為為ON,D0中的數(shù)中的數(shù)據(jù)

39、據(jù)帶進位帶進位一起向右移一起向右移4位,位, X0為為ON,D0中的數(shù)中的數(shù)據(jù)據(jù)帶進位帶進位一起向左移一起向左移4位,位,(3)位右移)位右移SFTR、位左移、位左移SFTL 使目標(biāo)位元件中的狀態(tài)向右使目標(biāo)位元件中的狀態(tài)向右/左移位,由左移位,由n1指定指定位元件的位元件的長度長度,n2指定指定移位移位的位數(shù)的位數(shù), n2 n11024(4)字右移字右移WSFR、字左移、字左移WSFL使字元件中的數(shù)據(jù)移位,由使字元件中的數(shù)據(jù)移位,由n1 指定字元件的指定字元件的長度長度,n2指定移位的指定移位的字?jǐn)?shù)字?jǐn)?shù),n2 n1 512。若源操作數(shù)和目標(biāo)操作數(shù)若源操作數(shù)和目標(biāo)操作數(shù)指定位元件時,其位數(shù)應(yīng)指定

40、位元件時,其位數(shù)應(yīng)相同相同。(5)先入先出()先入先出(FIFO)寫入)寫入SFWR、讀出、讀出SFRD n指定數(shù)據(jù)的長度。指定數(shù)據(jù)的長度。當(dāng)當(dāng)X10首次由首次由OFF變?yōu)樽優(yōu)镺N,SFWR將源元件將源元件D0中的數(shù)據(jù)中的數(shù)據(jù)寫入寫入D2,而,而D1作為指針變?yōu)樽鳛橹羔樧優(yōu)?(D1要先清要先清0);當(dāng));當(dāng)X10再次由再次由OFF變?yōu)樽優(yōu)镺N時時,D0中的數(shù)據(jù)寫入中的數(shù)據(jù)寫入D3,D1中中的數(shù)據(jù)的數(shù)據(jù)加加1變?yōu)樽優(yōu)?。依次類推,將。依次類推,將D0中的數(shù)據(jù)依次寫入寄存中的數(shù)據(jù)依次寫入寄存器。器。SFWR數(shù)據(jù)是從數(shù)據(jù)是從最右邊的寄存器開始依次寫入最右邊的寄存器開始依次寫入,寫入的次,寫入的次數(shù)放

41、在數(shù)放在D1中,中,D1稱為指針稱為指針。當(dāng)當(dāng)D1的內(nèi)容達(dá)到的內(nèi)容達(dá)到n-1后后,操作,操作不再執(zhí)行不再執(zhí)行,進位標(biāo),進位標(biāo)M8022置置1。當(dāng)當(dāng)X10首次由首次由OFF變?yōu)樽優(yōu)镺N,SFRD將源元件將源元件D2中的數(shù)據(jù)讀中的數(shù)據(jù)讀出到出到D20,而,而D1作為指針作為指針減減1,D10到到D3的的數(shù)據(jù)右移一字?jǐn)?shù)據(jù)右移一字。若連續(xù)指令若連續(xù)指令SFRD,則每個掃描周期數(shù)據(jù)右移一字,而數(shù)據(jù),則每個掃描周期數(shù)據(jù)右移一字,而數(shù)據(jù)總是從總是從D2讀出。讀出。當(dāng)指針當(dāng)指針D1為為0時,操作不執(zhí)行,零標(biāo)志時,操作不執(zhí)行,零標(biāo)志M8020置置1。先入先出(先入先出(FIFO)控制常用于按產(chǎn)品入庫并順序從)控制常用于按產(chǎn)品入庫并順序從庫中取出產(chǎn)品庫中取出

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論