邏輯運(yùn)算關(guān)系表完整版_第1頁
邏輯運(yùn)算關(guān)系表完整版_第2頁
邏輯運(yùn)算關(guān)系表完整版_第3頁
邏輯運(yùn)算關(guān)系表完整版_第4頁
邏輯運(yùn)算關(guān)系表完整版_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 教學(xué)目的及要求:教學(xué)目的及要求: 通過教學(xué),使學(xué)生明確功能指令及使用要素,學(xué)會應(yīng)用功能指令的方法,掌握應(yīng)用常用功能指令設(shè)計程序的思想和技能。 教學(xué)方式:教學(xué)方式:理論講解、例題講解。 演示操作:演示操作:利用FX2N-64MR PLC實(shí)際操作功能指令的運(yùn)行。 重點(diǎn)難點(diǎn):重點(diǎn)難點(diǎn):掌握功能指令的應(yīng)用場合及使用方法。 問題的提出:問題的提出:邏輯指令應(yīng)用在邏輯控制的系統(tǒng)中、步進(jìn)順控指令應(yīng)用在順序邏輯控制的系統(tǒng)中。數(shù)據(jù)的傳送、運(yùn)算、變換及程序控制等功能則要使用功能指令。9.1 功能指令及使用要素功能指令及使用要素9.1.1 功能指令的表示方法 FX系列可編程序控制器采用計算機(jī)通用的助記符形式來表示

2、功能指令。一般用指令的英文名稱或例如圖9.1中的指令助記符MEAN用來表示取平均值的指令??s寫作為助記符,圖9.1 功能指令FNCHELP 功能指令的功能號和指令助記符占一個程序步,16位操作與32位操作的每一個操作數(shù)分別占2個和4個程序步。圖9.1同時給出了功能指令MEAN的指令語句表和步序號。 寫入功能指令時,先按 鍵再輸人功能指令的功能號,如MEAN的功能號為FNC45。使用簡易編程器上的 鍵的幫助功能,可以顯示出功能指令助記符和功能號的一覽表。9.1.2 數(shù)據(jù)長度與指令類型1 1 數(shù)據(jù)長度圖9.1中助記符MOV之前的“(D)”表示處理32位(32bit)數(shù)據(jù),這時相鄰的兩元件組成元件對

3、,該指令將D11、D10中的數(shù)據(jù)傳送到D13、D12。處理32位數(shù)據(jù)時,為了避免出現(xiàn)錯誤,建議使用首地址為偶數(shù)的操作數(shù)沒有“(D)”時表示處理16位數(shù)據(jù)。2 2 脈沖執(zhí)行與連續(xù)執(zhí)行圖9.1中MOV后面的“(P)”表示脈沖執(zhí)行,即僅在X1由OFF(“0”狀態(tài))ON(“1” 狀態(tài))時執(zhí)行一次。如果沒有“(P)”,在XI為ON的每一掃描周期指令都要被執(zhí)行,稱為連續(xù)執(zhí)行。某些指令(如INC(加1)、DEC(減l)和XCH(數(shù)據(jù)交慎)指令)一般應(yīng)使用脈沖執(zhí)行。如果不需要每個周期都執(zhí)行指令,使用脈沖方式可縮短處理時間。符號“(P)”和“(D)”可同時使用。MOV的功能指令編號為12,輸人功能指令(D)MO

4、V(P)時按以下順序按鍵: MOV的功能指令編號為12,輸人功能指令(D)MOV(P)時按以下順序按鍵: FNCD12P9.1.3 位元件1位元件和字元件只有ONOFF狀態(tài)的元件稱為位(bit)元件。例如X、Y、M和S。處理數(shù)據(jù)的元件稱為字元件。例如定時器和計數(shù)器的當(dāng)前值T,C和數(shù)局寄存器D等,一個數(shù)由l6位二進(jìn)制數(shù)組成,位元件也可以組成字元件來進(jìn)行數(shù)據(jù)處理。2位元件的組合每相鄰的4bit位元件組合成一個單元,它由Kn加首位元件號來表示,其中的n為組數(shù),16位操作數(shù)時 n=14,32位操作數(shù)時 n= l8。例如K2M0表示由M0M7組成的兩個位元件組,M0為數(shù)據(jù)的最低位(首位);K4S10表示

5、由S10S25組成的16位數(shù)據(jù),S10為最低位。當(dāng)16位數(shù)據(jù)傳送到n=13的位元件組時,只傳送低位的相應(yīng)數(shù)據(jù);當(dāng)32位數(shù)據(jù)傳送到n=17的位元件組時,也是一樣的。被組合的位元件的首位元件號可以是任意的,但是為了避免混亂,建議采用以0結(jié)尾的元件,如X0、X10、X20等。圖圖7.2 變址寄存器的使用變址寄存器的使用作16位數(shù)操作時,參與操作的位元件由K1K4指定。若僅由KlK3指定,高位的不足部分均作0處理,這意味著只能處理正數(shù)(最高位為符號位,正數(shù)的符號位為0),在32位數(shù)處理時也有類似的情況。 9.1.4 變址寄存器V、Z在傳送、比較指令中,變址寄存器V,Z用來修改操作對象的元件號,循環(huán)程序

6、中常使用變址寄存器。Stsd和D表示有變址功能。對32位指令,V為高I6位、Z為低16位。32位指令中使用變址指令只需指定 Z,這時Z就能代表 V和Z。在32位指令中,V、Z自動組對使用。圖9.2中的各觸點(diǎn)接通時,常數(shù)10送到V0,常數(shù)20送到Z1,ADD指令完成運(yùn)算(D5V0)(D15Z1)(D40Zl),即(D15)(D35)(D60)。圖9.2 變址寄存器的使用9.2 9.2 功能指令及應(yīng)用功能指令及應(yīng)用9.2.1 程序流向控制指令程序流向控制指令(FNC00FNC09)分別是CJ(條件跳轉(zhuǎn))、CALL(子程序調(diào)用)、SRET(子程序返回)、IRET(中斷返回)、EI、DI(中斷允許與中

7、斷禁止)、FEND(主程序結(jié)束)、WDT(監(jiān)控定時器刷斬)和FOR、NEXT(循環(huán)開始和循環(huán)結(jié)束)。1 條件跳轉(zhuǎn)指令 (1)條件跳轉(zhuǎn)指令 CJ(Conditional Jump)的功能指令編號為 FNC00,操作數(shù)為P0P127,P63是END所在步序,不需要標(biāo)記。該指令占3個程序步,標(biāo)號占一個程CJ和CJ(P)指令用干跳過順序程序中的某一部分,以減少掃描時間。 CJ指令的使用 (2)兩條跳轉(zhuǎn)指令可以使用相同的標(biāo)號,標(biāo)號可以出現(xiàn)在相應(yīng)跳轉(zhuǎn)指令之前,但是如果反復(fù)跳轉(zhuǎn)的時間超過監(jiān)控定時器的設(shè)定時間,會引起監(jiān)控定時器出錯。一個標(biāo)號只能出現(xiàn)次,如出現(xiàn)兩次或兩次以上則會出錯。如果用M8000的常開觸點(diǎn)驅(qū)

8、動CJ指令,相當(dāng)于無條件跳轉(zhuǎn)指令,因?yàn)檫\(yùn)行時特殊輔助繼電器M8000總是為ON。 設(shè)Y,M,S被OUTSET,RST指令驅(qū)動,跳步期間即使驅(qū)動Y,M,S的電路狀態(tài)改變,它們?nèi)员3痔角暗臓顟B(tài)。如圖9.4中的X0為ON時,Y11的狀態(tài)不會隨X10發(fā)生變化,因?yàn)樘狡陂g根本沒有執(zhí)行這一一段程序。如在跳步之前定時器和計數(shù)器的線圈開路,跳步期間即使X12和X13變?yōu)镺N,T0和C1也不會工作。如果在跳步開始時定時器和計數(shù)器正在工作,在跳步期間它們將停止定時和計數(shù),在CJ指令被復(fù)位即 X10變?yōu)镺FF,跳步條件變?yōu)椴粷M足)后繼續(xù)工作。但是正在工作的T63和高速計數(shù)器不管有無跳步仍連續(xù)工作。 雙重跳轉(zhuǎn)指令

9、 (3)如果從主令控制區(qū)的外部跳人其內(nèi)部,下管它的主控觸點(diǎn)是否接通,都把它當(dāng)成接通來執(zhí)行主令控制區(qū)內(nèi)的程序。如果跳步指令在主令控制區(qū)內(nèi),主控觸點(diǎn)沒有接通時不執(zhí)行跳步。 跳步指令與主控指令(4)跳步指令可以在很多場合使用。同一編程元件的線圈可以在跳步條件相反的兩個跳步程序中分別出現(xiàn)次,在這種情況下允許雙線圈輸出。若積算定時器和計數(shù)器的RST指令在跳步區(qū)外,即使定時器和計數(shù)器的線圈被跳轉(zhuǎn),對它們的復(fù)位仍然有效。2 子程序調(diào)用與子程序返回指令子程序調(diào)用指令CALL(Sub Routine Call)的功能指令編號為FNC01,操作數(shù)為P0P127(不包恬P63),占用3個程序步,允許用變址寄存器修改

10、。子程序可以嵌套調(diào)用,最多嵌套5級。予程序返回指令SRET(Sub Routine Return)的功能指令編號為FNC02,無操作數(shù)。3 與中斷有關(guān)的指令中斷返回指令 IRET(Interruption Return)的功能指令編號為 FNC03;允許中斷指令EI(Interruplion Enable)的功能指令編號為FNC04;禁止中斷指令DI(Interruption Disable)的功能指令編號為FNC05。以上3條指令均無操作數(shù),分別占用一個程序步。FX2N系列有6個與X0X5對應(yīng)的中斷輸入點(diǎn),中斷指針為I口0口最低位為0時表示下降沿中斷,反之為上升沿中斷。最高位與X0X5元件號

11、相對應(yīng)。FX2N系列有3點(diǎn)定時器中斷,對應(yīng)的中斷指針為I6口口I8口口,低兩位是以ms為單位的定時時間,定時器中斷用于高速處理或每隔一定的時間執(zhí)行的程序。FX2N系列的6點(diǎn)計數(shù)器的中斷指針為 I0口0(口l6),它們利用高速計數(shù)器的當(dāng)前值產(chǎn)生中斷,與HSCS(高速計數(shù)器比較置位)指令配合使用。可編程序控制器通常處于禁止中斷的狀態(tài),指令EI和DI之間的程序段為允許中斷的區(qū)間,當(dāng)程序執(zhí)行到該區(qū)間時,如果中斷源產(chǎn)生中斷,CPU將停止執(zhí)行當(dāng)前的程序,轉(zhuǎn)去執(zhí)行相應(yīng)的中斷子程序,執(zhí)行到中斷子程序中的IRET指令時,返回原斷點(diǎn),繼續(xù)執(zhí)行原來的程序。特殊輔助繼電器M805 ON時,禁止執(zhí)行相應(yīng)的中斷I口口。

12、M8059 ON時,關(guān)閉所有的計數(shù)器中斷。如果有多個中斷信號依次發(fā)出,則優(yōu)先級按發(fā)生的先后為序,發(fā)生越早的優(yōu)先級越高。若同時發(fā)生多個中斷信號,則中斷指針號小的優(yōu)先。執(zhí)行一個中斷子程序時,其他中斷被禁止。在中斷子程序中編入EI和DI,可實(shí)現(xiàn)雙重中斷。加果中斷信號在禁止中斷區(qū)間出現(xiàn),該中斷信號被儲存,并在EI指令之后響應(yīng)該中斷。不需要關(guān)中斷時,只使用EI指令,可以不使用DI指令。4 程序結(jié)束指令主程序結(jié)束指令FEND(First End)的功能指令編號為FNC06,無操作數(shù),占用一個程序步。FEND表示主程序結(jié)束,執(zhí)行到FEND指令時可編程控制器進(jìn)行輸人輸出處理、監(jiān)控定時器刷新,完成后返回第0步。

13、子程序(包括中斷子程序)應(yīng)放在FEND指令之后。CALL指令調(diào)用的子程序必須用SRET指令結(jié)束,中斷子程序必須以IRET指令結(jié)束。若FEND指令在CALL指令執(zhí)行之后和RSET指令執(zhí)行之前出現(xiàn),則程序出錯。另一個類似的錯娛是FEND指令出現(xiàn)在FORNEXT循環(huán)之中。使用多條FEND指令時,中斷程序應(yīng)放在最后的FEND指令和END指令之間。5 監(jiān)控定時器指令監(jiān)控定時器指令WDT(Watch Dog timer)的功能指令編號為FNC07,無操作數(shù),占用一個程序步。監(jiān)控定時器又稱看門狗,在執(zhí)行FEND和END指令時,監(jiān)控定時器被刷新(復(fù)位),可編程控制器正常工作時掃摘周期(從0步到FEND或END

14、指令的執(zhí)行時間)小于它的定時時間。如果強(qiáng)烈的外部干擾使可編程控制器偏離正常的程序執(zhí)行路線,監(jiān)控定時器不再被復(fù)位,定時時間到時,可編程控制器將停止運(yùn)行,它上面的CPU-E發(fā)光二極管亮。監(jiān)控定時器定時時間的缺省值為200ms,可通過修改D8000來設(shè)定它的定時時間。如果掃描周期大于它的定時時間,可將WDT指令插人到合適的程序步中刷新監(jiān)控定時器。如果FORNEXT循環(huán)程序的執(zhí)行時間可能超過監(jiān)控定時器的定時時間,可將WDT指令插人到循環(huán)程序中。條件跳步指令CJ若在它對應(yīng)的標(biāo)號之后(即程序往回跳),可能因連續(xù)反復(fù)跳步使它們之間的程序被反復(fù)執(zhí)行,總的執(zhí)行時間可能超過監(jiān)控定時器的定時時間,為了避免出現(xiàn)這樣的

15、情況,可在CJ指令和對應(yīng)的標(biāo)號之間插人WDT指令。6 循環(huán)指令FOR指令用來表示循環(huán)區(qū)的起點(diǎn),功能指令編號為FNC08,16位指令占用3個程序步,它的源操作數(shù)用來表示循環(huán)次數(shù)N,可以取任意的數(shù)據(jù)格式。循環(huán)次數(shù)N=132767如N在32 7670之間,當(dāng)作N= l處理,循環(huán)可嵌套5層。NEXT是循環(huán)區(qū)終點(diǎn)指令,功能指令編號為FNC09,占用1個程序步,無操作數(shù)。圖圖7.10 循環(huán)程序循環(huán)程序FOR與NEXT之間的程序被反復(fù)執(zhí)行,執(zhí)行次數(shù)由FOR指令的源操作數(shù)設(shè)定。執(zhí)行完后,執(zhí)行NEXT后面的指令。 循環(huán)程序9.2.2 傳送和比較指令比較與傳送指令的編號為FNC10FNC19。比較指令包括CMP(

16、比較)和ZCP(區(qū)間比較)兩條指令,傳送指令包括MOV(傳送)、SMOV(BCD碼移位傳送)、CLM(取反傳送)、BMOV(數(shù)據(jù)塊傳送)、FMOV(多點(diǎn)傳送)、XCH(數(shù)據(jù)交換)、BCD(二進(jìn)制數(shù)轉(zhuǎn)換成BCD碼并傳送)和BIN(BCD碼轉(zhuǎn)換為二進(jìn)制數(shù)并傳送)指令 比較指令的使用 區(qū)間比較指令的使用1 比較指令. 比較指令包拾CMP(比較)和ZCP區(qū)間比較),比較結(jié)果用目標(biāo)元件的狀態(tài)來表示。待比較的源操作數(shù)S1和S2可取任意的數(shù)據(jù)格式,目標(biāo)操作數(shù)D可取Y,M和S,占用3點(diǎn)。a 比較指令 比較指令CMP(Compare)的功能指令編號為FNC10,16位運(yùn)算占7個程序步,32位運(yùn)算占13個程序步。

17、 比較指令比較源操作數(shù)S1和S2,比較的結(jié)果送到目標(biāo)操作數(shù)D中去。圖9.11中的比較指令將十進(jìn)制常數(shù)100與計數(shù)器C10的當(dāng)前值比較,比較結(jié)果送到M0M2。 X1為OFF則不進(jìn)行比較,M0M2的狀態(tài)保侍不變。X1為ON時進(jìn)行比較,如果比較結(jié)果為S1S2,M0 ON;若S1S2,M2 ON。如指定的元件種類或無件號超出允許范圍時將會出錯。b 區(qū)間比較 區(qū)間比較指令的助記符為 ZCP(Zone Compare),功能指令編號為 FNC11。16位運(yùn)算占9個程序步,32位運(yùn)算占17個程序步。圖9.12中的X2為ON時,執(zhí)行ZCP指令,將T3的當(dāng)前值與常數(shù)100和150相比較,比較結(jié)果送到M3M5,源

18、數(shù)據(jù)S1不能大于S2。2 傳送指令FNC12FNC16 傳送指令包括MOV(傳迭)、SMOV(BCD碼移位傳送)、CML(取反傳送)、BMOV(數(shù)據(jù)塊傳送)和FMOV(多點(diǎn)傳送)以及XCH(數(shù)據(jù)交換)指令。 MOV和CML指令的源操作數(shù)可取所有的數(shù)據(jù)類型,SMOV指令可取除K,H以外的其他類型的操作數(shù)。它們的目標(biāo)操作數(shù)可取KnY,KnM,KnS,T,C,D,V和Z。a 傳送指令傳送指令MOV(Move)的功能指令編號為FNC12,16位運(yùn)算占5個程廳步,32位運(yùn)算占9個程序步。傳送指令將源數(shù)據(jù)傳送到指定目標(biāo)b移位傳送移位傳送指令SMOV(Shift Move)的功能指令編號為FNC13,只有1

19、6位運(yùn)算,占11個程序步。源數(shù)據(jù)(二進(jìn)制數(shù))被轉(zhuǎn)換成4位BCD碼然后將它移位傳送。圖7.13中的X0為ON時,將DI中右起第4位(ml=4)開始的2位m2=2)BCD碼移到目標(biāo)操作數(shù)(D2)的右起第3位(n3)和第2位(見圖7.14),然后D2中的BCD碼自動轉(zhuǎn)換為二進(jìn)制碼,D2中的第1位和第4位不受移位傳送值令的影響。 傳送指令與移位傳送指令c 取反傳送指令取反傳送指令的助記符為CML(Complement),功能指令編號為 FNC14,16位運(yùn)算占5個程序步,32位運(yùn)算占9個程序步。 取反傳送指令將源元件寧的數(shù)據(jù)逐位取反(10,01)并傳送到指定目標(biāo)。若源數(shù)據(jù)為常數(shù)K,該數(shù)據(jù)會自動轉(zhuǎn)換為二

20、進(jìn)制數(shù),CML用于可編程控制器反邏輯輸出時非常方便。取反傳送d 塊傳送指令 塊傳送 塊傳送指令BMOV(Block Move)的功能指令編號為FNC15,16位操作占7個程序步,塊傳送指令的源操作數(shù)可取KnX、KnY、KnM、KnS、T、C、D和文件寄存器,目標(biāo)操作數(shù)可取KnY、KnM、KnS、T、C和D。 塊傳送將源操作數(shù)指定的元件開始的n個數(shù)據(jù)組成的數(shù)據(jù)塊傳送到指定的目標(biāo)。如果元件號超出允許的范圍,數(shù)據(jù)僅僅傳送到允許的范圍。 傳送順序是自動決定的,以防止源數(shù)據(jù)塊與目標(biāo)數(shù)據(jù)塊重疊時源數(shù)據(jù)在傳送過程中被改寫。 e 多點(diǎn)傳送指令 多點(diǎn)傳送指令FMOV(Fill Move)的功能指令編號為FNC1

21、6,16位操作占7個程序步,32位操作占13個程序步。它的源操作數(shù)可取所有的數(shù)據(jù)類型,目標(biāo)操作數(shù)可取KnY、KnM、KnS、T、C 和D,n=512。 多點(diǎn)傳送指令將源元件中的數(shù)據(jù)傳送到指定目標(biāo)開始的n個元件中,傳送后n個元件中的數(shù)據(jù)完全相同。如果元件號超出允許的范圍,數(shù)據(jù)僅僅送到允許的范圍中。 多點(diǎn)數(shù)據(jù)傳送與數(shù)據(jù)交換 f 數(shù)據(jù)交換指令 數(shù)據(jù)交換指令XCH(Exchange)的功能指令編號為FNC17,16位運(yùn)算占5個程序步,32位運(yùn)算占9個程序步。它的兩個目標(biāo)操作數(shù)可取KnY、KnM、KnS、T、C、D、V和Z。執(zhí)行數(shù)據(jù)交換指令時,數(shù)據(jù)在指定的目標(biāo)元件之間交換,交換指令一般采用脈沖執(zhí)行方式,

22、否則在每一個掃描周期都要交換一次。3 數(shù)據(jù)交換指令 數(shù)據(jù)變換指令包括BCD(二進(jìn)制數(shù)轉(zhuǎn)換成BCD碼并傳送)和BIN(BCD碼轉(zhuǎn)換為二進(jìn)制數(shù)并傳送)指令。它們的源操作數(shù)可取KnX、KnY、KnM、KnS、T、C、D、V和Z,目標(biāo)操作數(shù)可取KnY、KnM、KnS、T、C、D、V和Z,16位運(yùn)算占5個程序步,32位運(yùn)算占9個程序步。 a BCD變換指令 BCD變換指令的指令助記符為BCD(Binary Code to Decimal),功能指令編號為FNC18,該指令將源元件中的二進(jìn)制數(shù)轉(zhuǎn)換為BCD碼并送到目標(biāo)元件中。如果BCD指令執(zhí)行的結(jié)果超過09 999的范圍,將會出錯。如果(D)BCD指令執(zhí)行

23、的結(jié)果超過0 99 999 999的范圍,也會出錯。可編程控制器內(nèi)部的算術(shù)運(yùn)算用二進(jìn)制數(shù)進(jìn)行,可以用BCD指令將可編程控制器中的二進(jìn)制數(shù)變換為BCD數(shù)后輸出到7段顯示器。b BIN變換指令 BIN變換指令的指令助記符為BIN(Binary),功能指令編號為FNC19,該指令將源元件中的BCD碼轉(zhuǎn)換為二進(jìn)制數(shù)井送到目標(biāo)元件中。 可以用BIN指令將BCD數(shù)字開關(guān)提供的設(shè)定值輸入可編程控制器。如果源元件中的數(shù)據(jù)下是BCD數(shù),將會出錯。常數(shù)K不能作為本指令的操作元件,因?yàn)樵谌魏翁幚碇八鼈兌紩晦D(zhuǎn)換成二進(jìn)制數(shù)。BCD碼的范圍與BCD指令中的相同。 BCD變換與BIN變換9.2.3 循環(huán)移位指令循環(huán)移位

24、指令 循環(huán)移位與移位指令的功能指令編號為FNC30FNC39。ROR,ROL分別是右、左循環(huán)移位指令,RCR,RCL分別是帶進(jìn)位的右、左循環(huán)移位指令。SFTR、SFTL分別是移位寄存器右、左移位指令。WSFR,WSFL分別是字右移、字左移指令,SFWR,SFRD分別是先人先出(FIFO)寫人和移位讀出指令。1 循環(huán)移位指令 右、左循環(huán)移位指令的指令助記符分別為 ROR(Rotaion Right)和 ROL(Rotation Left),功能指令編號分別為FNC30和FNC31。它們只有目標(biāo)操作數(shù),可取KnY、KnM、KnS、T、C、D、V和Z。l6位指令占5個程序步,32位指令占9個程序步。

25、16位指令和32位指令中n應(yīng)分別小于16和32。 右循環(huán) 左循環(huán) 執(zhí)行這兩條指今時,各位的數(shù)據(jù)向右(或向左)循環(huán)移動n位,最后一次移出來的那一位同時存入進(jìn)位標(biāo)志M8022中(上圖)。若在目標(biāo)元件中指定位元件組的組數(shù),只有K4(16位指令)和K8(32位指令)有效,如K4Y10和K8M0。2 帶進(jìn)位的循環(huán)移位指令 帶進(jìn)位的右、左循環(huán)移位指令的助記符分別為RCR(Rotation Right with Carry)和 RCL(Rotation Left with Carry),它們的功能指令編號分別為FNC32和 FNC33。它們的目標(biāo)操作數(shù)、程序步數(shù)和n的取值范圍與循環(huán)移位指令相同。帶進(jìn)位的右循

26、環(huán) 帶進(jìn)位的左循環(huán) 執(zhí)行這兩條指令時,各位的數(shù)據(jù)與進(jìn)位位M8022一起向右(或向左)循環(huán)移動n位(上圖)。在循環(huán)中進(jìn)位標(biāo)志被送到目標(biāo)操作數(shù)中。若在目標(biāo)元件中指定位元件組的組數(shù),只有K4(16位指令)和K8(32指令)有效。4 字右移和字左移指令 字右移 WSFR(Word Shift Right)、字左移WSFL(Word Shift Left)的功能指令編號分別為FNC36和FNC37。它們的源操作數(shù)可取KnX、KnY、KnM、KnS、T、C和D,目標(biāo)操作數(shù)可取KnY、KnM、KnS、T、C和D。字移動指令只有16位運(yùn)算,占9個程序步。字右移和字左移指令以字為單位,將nl個字右移或左移n2個

27、(n2n1512)。 字右移字左移5 FIFO(先入先出)寫入與讀出指令a FIFO(First In First Out)寫入指令 FIFO寫人指令SFWR(Shift Register Write)的功能指令編號為 FNC38,源操作數(shù)可取所有的數(shù)據(jù)類型,目標(biāo)操柞數(shù)可取KnY、KnM、KnS、T、C和D。只有16位運(yùn)算,占7個程序步。b FIFO(First In First Out)讀出指令 FIFO讀出指令SFRD(Shift Register Read)的功能指令編號為 FNC39,源操作數(shù)可取KnY、KnM、KnS、T、C和D,目標(biāo)操柞數(shù)可取KnY、KnM、KnS、T、C、D、V和

28、Z。只有16位運(yùn)算,占7個程序步。 先入先出寫入 先入先出讀出9.2.4 四則邏輯運(yùn)算指令四則邏輯運(yùn)算指令 算術(shù)運(yùn)算與字邏輯運(yùn)算指令的功能指令編號為FNC20FNC29,算術(shù)運(yùn)算包括ADD,SUB,MUL,DIV(二進(jìn)制加、減、乘、除)指令,INC,DEC(加l、減1)指令;WAND,WOR,WXOR,NEG分別是字編程元件的邏輯與、或、異或和取補(bǔ)指令。1 算術(shù)運(yùn)算 算術(shù)運(yùn)算包括ADD,SUB,MUL,DJV(二迸制加、減、乘、除)指令,源操作數(shù)可取所有的數(shù)據(jù)類型,目標(biāo)操作數(shù)可取KnY、KnM、KnS、T、C、D、V和Z(32位乘除指令中V和Z不能用作D)。 16位運(yùn)算占個程序步,32位運(yùn)算占

29、13個程序步。a 加法指令 加法指令A(yù)DD(Addition)的功能指令編號為FNC20。加法指令將源元件中的二進(jìn)制數(shù)相加,結(jié)果送到指定的目標(biāo)元件。每個數(shù)據(jù)的最高位為符號位(0為正,1為負(fù))。加減運(yùn)算為代數(shù)運(yùn)算。 圖9.29中的 X0為 ON時,執(zhí)行(D10)(D12)(D14)。b 減法指令 減法指令SUB(Subtraction)的功能指令編號為FNC21,減法指令將S1指定的元件中的數(shù)減去S2指定的元件中的數(shù),結(jié)果送到D指定的目標(biāo)元件。每個標(biāo)志的功能、32位運(yùn)算元件的指定方法、連續(xù)執(zhí)行和脈沖執(zhí)行的區(qū)別等均與加法指今中的相同。圖9.29中的X1為ON時,執(zhí)行(D1、D0)一22(D1、D0

30、)。 用脈沖執(zhí)行的加減指令來加1減1與脈沖執(zhí)行的INC(加1)、DEC(減1)指令的執(zhí)行結(jié)果相似,其不同之處在于INC指令和DEC指令不影響零標(biāo)志、借位標(biāo)志和進(jìn)位標(biāo)志。c乘法指令 乘法指令MUL(Multiplication)的功能指令編號為FNC22,每個數(shù)據(jù)的最高位為符號位(0為正,1為負(fù))。目標(biāo)位元件(如KnM)可用K1K8來指定位數(shù)。如果用K4來指定位數(shù),只能得到乘積的低16位。32位乘法運(yùn)算指令(D)MUL如用位元件作目標(biāo),則只能得到乘積的低32位,高32位丟失。在這種情況下,應(yīng)先將數(shù)據(jù)移入字元件再進(jìn)行運(yùn)算、用字元件時,不能監(jiān)控64位數(shù)據(jù)的內(nèi)容,在這種情況下,建議采用浮點(diǎn)運(yùn)算。 d

31、除法指令 除法指令DIV(Divsion)的功能指令編號為FNC23,用S1指定被除數(shù),S2指定除數(shù),商送到D指定的目標(biāo)元件,余數(shù)送到D的下一個元件。圖9.32中的X3為ON時執(zhí)行(D7、D6)(D9、D8),商送到(D3、D2),余數(shù)送到(D5、D4)。若除數(shù)為0則出錯,不執(zhí)行該指令。若位元件被指定為目標(biāo)元件,不能獲得余數(shù),商和余數(shù)的最高位為符號位。二進(jìn)制乘除運(yùn)算2 加1和減1指令 加1和減1指令的助記符分別為INC(Increment)和DEC(Decrment),功能指令編號分別為FNC24和FNC25。它們的操作數(shù)均可取KnY、KnM、KnS、T、C、D、V和Z。 16位運(yùn)算占3個程序

32、步,32位運(yùn)算占5個程序步。二進(jìn)制加1、減1運(yùn)算3 字邏輯運(yùn)算指令 字邏輯運(yùn)算指令包括WAND(字邏輯與)、WOR(字邏輯或)、WXOR(字邏輯異或)和NEG(求補(bǔ))指令,它們的功能指令編號分別為FNC26FNNC29。WAND、WOR和WXOR指令的S1和S1均可以取所有的數(shù)據(jù)類型,目標(biāo)操作數(shù)可取KnY、KnM、KnS、T、C、D、V和Z。16位運(yùn)算占7個程序步,32位運(yùn)算占13個程序步。 邏輯運(yùn)算關(guān)系表邏輯運(yùn)算關(guān)系表與或異或M=ABM=A+BM=A BABMABMABM000000000010011011100101101111111110 字邏輯運(yùn)算9.2.5 數(shù)據(jù)處理指令數(shù)據(jù)處理指令

33、數(shù)據(jù)處理指令的功能指令編號為FNC40FNC49,包括區(qū)間復(fù)位指令ZRST、解碼指令DECO、編碼指令ENCO、求置ON位總數(shù)指令SUM,ON位判別指令BON、平均值指令MEAN、報警器置位指令A(yù)NS、報警器復(fù)位指令A(yù)NR、平方根指令SQR、二進(jìn)制整數(shù)二迸制浮點(diǎn)數(shù)轉(zhuǎn)換指令FLT和高低字節(jié)交換指令SWAP。1 區(qū)間復(fù)位指令區(qū)間復(fù)位指令ZRST(Zone Reset)將D1、D2指定的元件號范圍內(nèi)的同類元件成批復(fù)位,它的功能指令編號為FNC40,目標(biāo)操作數(shù)可取T、C和D(字元件)或Y、M、S(位元件)。該指令只有16位運(yùn)算,占5個程序步。D1和D2指定的應(yīng)為同一類元件,D1的元件號應(yīng)小干D2的元件

34、號。如D1的元件號大干D2的元件號,則只有D1指定的元件被復(fù)位。雖然ZRST指令是16位處理指令,D1、D2也可以指定32位計致器。 區(qū)間復(fù)位 2 解碼與編碼指令a 解碼指令 解碼指令DECO(Decode)的功能指令編號為FNC41。位源操作數(shù)可取X、T、M和S,位目標(biāo)操作數(shù)可取Y、M和S。字源操作數(shù)可取K、H、T、C、D、V和Z,字目標(biāo)操作數(shù)可取T、C和D,n=18。只有I6位運(yùn)算,占7個程序步。 下圖中的X2X0組成的3位(n=3)二進(jìn)制數(shù)為011,相當(dāng)于十進(jìn)制數(shù)3(21+20=3),由目標(biāo)操作數(shù)M7M0組成的8位二進(jìn)制數(shù)的第3位(M0為第0位)M3被置1,其余各位為0。如源數(shù)據(jù)全零,則

35、M0置l。 若指定的目標(biāo)元件是字元件T、C、D,應(yīng)使n4,目標(biāo)元件的每一位都受控,若D指定的目標(biāo)元件是位元件Y、M、S,應(yīng)使n8。n=0時,不作處理。 解碼指令利用解碼指令,可以用數(shù)據(jù)寄存器中的數(shù)值來控制位元件的ON/OFF。b 編碼指令 編碼指令ENCO(Encode)的功能指令編號為FNC42,只有16位運(yùn)算,占7個程序步。 當(dāng)S指定的源操作數(shù)是字元件T、C、D、V和Z時,應(yīng)使n4,當(dāng)S指定的源操作數(shù)是位元件X、Y、M和S時,應(yīng)使n18,目標(biāo)元件可取T、C、D、V和Z。若指定源中為1的位不只一個,只有最高位的1有效。若指定源中的所有位均為0,則出錯。 下圖中的n=3,編碼指令將源元件M7M

36、0中為“1”的M3的位數(shù)3編碼為二進(jìn)制數(shù)011,井送到目標(biāo)元件D10的低3位。編碼指令 解碼/編碼指令在n=0時不作處理。若在DECO指令中D指定的元件和ENCO指令中S指定的元件是位元件,而且n=8時,點(diǎn)數(shù)為 28=256。當(dāng)執(zhí)行條件OFF時,指令不執(zhí)行,編碼輸出保持不變。3 求置ON位總數(shù)與ON位判別指令a 求置ON位總數(shù)指令位元件的值為“l(fā)”時稱為ON,求置ON位總數(shù)指令SUM的功能指令編號為FNC43。它的源操作數(shù)可取所有的數(shù)據(jù)類型,目標(biāo)操作數(shù)可取KnY、KnM、KnS、T、C、D、V和Z,16位運(yùn)算占5個程序步,32位運(yùn)算占9個程序步。圖9.39中的X0為ON時,統(tǒng)計源操作數(shù)D0中為ON的位的個數(shù),并將它送入目標(biāo)操作數(shù)D2。若D0的各位均為“0”,則零標(biāo)志M8020置1。如使用32位指令,目標(biāo)操作數(shù)的高位字為0。 b ON位判別指令ON位判別指令 BON(Bit ON Check)的功能指令編號為 FNC44。它的源操作數(shù)可取所有的數(shù)據(jù)類型,目標(biāo)操作數(shù)可取Y、M和S。16位運(yùn)算占7

溫馨提示

  • 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

提交評論