第5章 FX系列PLC的功能指令_第1頁
第5章 FX系列PLC的功能指令_第2頁
第5章 FX系列PLC的功能指令_第3頁
第5章 FX系列PLC的功能指令_第4頁
第5章 FX系列PLC的功能指令_第5頁
已閱讀5頁,還剩120頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

FX系列PLC的功能指令本章內(nèi)容提要早期的PLC大多用于開關(guān)量控制,基本指令和步進指令已經(jīng)能滿足控制要求。為適應控制系統(tǒng)的其他控制要求(如模擬量控制等),從20世紀80年代開始,PLC生產(chǎn)廠家就在小型PLC上增設了大量的功能指令(也稱應用指令),功能指令的出現(xiàn)大大拓寬了PLC的應用范圍,也給用戶編制程序帶來了極大方便。FX系列PLC有多達100多條功能指令(見附錄A),由于篇幅的限制,本章僅對比較常用的功能指令作詳細介紹,其余的指令只作簡介,讀者可參閱FX系列PLC編程手冊。5.1概述5.1.1功能指令的表示格式與基本指令不同,F(xiàn)X系列PLC用功能框圖表示功能指令,即在功能框圖中用通用的助記符形式來表示(大多用英文名稱或縮寫表示)。功能指令與一般的匯編指令相似,也是由操作碼和操作數(shù)兩大部分組成。功能框的第一段即為操作碼部分,表達該指令做什么。一般功能指令都是用指定的功能號來表示,F(xiàn)X2N系列PLC的功能指令編號為FNC00~FNC294。但是為了記憶,每個功能指令都有一個助記符,例如FNC45的助記符是MEAN(平均),若使用簡易編程器時鍵入FNC45,若采用智能編程器或在計算機上編程時也可鍵入助記符MEAN。

功能框的第一段之后都為操作數(shù)部分,表達參加指令操作的操作數(shù)在哪里。操作數(shù)部分依次由源操作數(shù)(源)、目標操作數(shù)(目)和數(shù)據(jù)個數(shù)三部分組成。有的功能指令沒有操作數(shù),而大多數(shù)功能指令有1~4個操作數(shù)。如圖5-1所示為計算平均值指令,它有三個操作數(shù),[S]表示源操作數(shù),[D]表示目標操作數(shù),如果使用變址功能,則可表示為[S]和[D]。當源或目標不止一個時,用[S1]、[S2]、[D1]、[D2]表示。用n和m表示其他操作數(shù),它們常用來表示常數(shù)K和H,或作為源和目標操作數(shù)的補充說明,當這樣的操作數(shù)多時可用n1、n2和m1、m2等來表示。圖5-1功能指令表示格式5.1.2功能指令的執(zhí)行方式與數(shù)據(jù)長度1.連續(xù)執(zhí)行與脈沖執(zhí)行功能指令有連續(xù)執(zhí)行和脈沖執(zhí)行兩種類型。如圖5-2所示,指令助記符MOV后面有“P”表示脈沖執(zhí)行,即該指令僅在X1接通(由OFF到ON)時執(zhí)行(將D10中的數(shù)據(jù)送到D12中)一次;如果沒有“P”則表示連續(xù)執(zhí)行,即該指令在X1接通(由OFF到ON)的每一個掃描周期都要被執(zhí)行。圖5-2功能指令的執(zhí)行方式與數(shù)據(jù)長度的表示2.數(shù)據(jù)長度功能指令可處理16位數(shù)據(jù)或32位數(shù)據(jù)。處理32位數(shù)據(jù)的指令是在助記符前加“D”標志,無此標志即為處理16位數(shù)據(jù)的指令。注意32位計數(shù)器(C200~C255)的一個軟元件為32位,不可作為處理16位數(shù)據(jù)指令的操作數(shù)使用。如圖5-2所示,若MOV指令前面帶“D”,則當X1接通時,執(zhí)行D11D10→D13D12(32位)。在使用32位數(shù)據(jù)時建議使用首編號為偶數(shù)的操作數(shù),不容易出錯。

5.1.3功能指令的數(shù)據(jù)格式1.位元件與字元件像X、Y、M、S等只處理ON/OFF信息的軟元件稱為位元件;而像T、C、D等處理數(shù)值的軟元件則稱為字元件,一個字元件由16位的存儲單元組成。其最高位(第15位)為符號位,第0~14位為數(shù)值位。

位元件可以通過組合使用,4個位元件為一個單元,通用表示方法由Kn加起始的軟元件號組成,n為單元數(shù)。例如K2Y0表示Y0~Y7組成兩個位元件組(K2表示兩個單元),它是一個8位數(shù)據(jù),Y0為最低位。如果將16位數(shù)據(jù)傳送到不足16位的位元件組合(n<4)時,只傳送低位數(shù)據(jù),多出的高位數(shù)據(jù)不傳送,32位數(shù)據(jù)傳送也一樣。在做16位數(shù)據(jù)操作時,參與操作的位元件不足16位時,高位的不足部分均做0處理,這意味著只能處理正數(shù)(符號位為0),在做32位數(shù)處理時也一樣。被組合的元件首位元件可以任意選擇,但為避免混亂,建議采用編號以0結(jié)尾的元件,如S10,X0,X20等。2.數(shù)據(jù)格式在FX系列PLC內(nèi)部,數(shù)據(jù)以二進制(BIN)補碼的形式存儲,所有的四則運算都使用二進制數(shù)。二進制補碼的最高位為符號位,正數(shù)的符號位為0,負數(shù)的符號位為1。FX系列PLC可實現(xiàn)二進制碼與BCD碼的相互轉(zhuǎn)換。5.2FX系列PLC功能指令介紹5.2.1程序流向控制類指令(FNC00~FN09)程序流向類指令有條件跳轉(zhuǎn)、子程序調(diào)用、中斷處理、循環(huán)、定時器刷新等10條指令。1.條件跳轉(zhuǎn)指令2.子程序調(diào)用與子程序返回指令3.與中斷有關(guān)的指令4.主程序結(jié)束指令5.警戒時鐘指令1.條件跳轉(zhuǎn)指令條件跳轉(zhuǎn)指令CJ(P)的編號為FNC00,其用法是當跳轉(zhuǎn)條件成立時跳過一段指令,跳轉(zhuǎn)到指令中所標明的標號處繼續(xù)執(zhí)行,若條件不成立則繼續(xù)順序執(zhí)行。被跳過的程序段中的指令,無論驅(qū)動條件是有效還是無效,其輸出都不變動。該條指令的操作數(shù)為指針標號P0~P127,其中P63為END所在步序,不需標記。指針標號允許用變址寄存器修改。如圖5-3所示,當X20接通時,則由CJP3指令跳到標號為P3的指令處開始執(zhí)行,跳過了程序的一部分,減少了掃描周期。如果X20斷開,跳轉(zhuǎn)不會執(zhí)行,則程序按原順序執(zhí)行。圖5-3跳轉(zhuǎn)指令的使用2.子程序調(diào)用與子程序返回指令PLC中的子程序也是為一些特定的控制目的編制的相對獨立的模塊,供主程序調(diào)用。子程序調(diào)用指令CALL的編號為FNC01。操作數(shù)為P0~P127,標號為被調(diào)用子程序的入口地址。子程序返回指令SRET的編號為FNC02,無操作數(shù)。如圖5-4所示,如果X20接通,則轉(zhuǎn)到標號P10處去執(zhí)行子程序。當執(zhí)行SRET指令時,返回到CALL指令的下一步執(zhí)行。圖5-4子程序調(diào)用與返回指令的使用3.與中斷有關(guān)的指令中斷是CPU與外設“打交道”的一種方式,即兩者之間的數(shù)據(jù)傳送。數(shù)據(jù)傳送時慢速的外設遠遠跟不上高速CPU的節(jié)拍。為此可以采用數(shù)據(jù)傳送的中斷方式來匹配兩者之間的傳送速度,提高CPU的工作效率。采用中斷方式后,CPU與外設是平行工作的,平時CPU在執(zhí)行主程序,當外設需要數(shù)據(jù)傳送服務時,才去向CPU發(fā)出中斷請求。與中斷有關(guān)的三條功能指令是:中斷返回指令I(lǐng)RET,編號為FNC03;中斷允許指令EI,編號為FNC04;中斷禁止指令DI,編號為FNC05。它們均無操作數(shù),占用1個程序步。FX系列PLC有兩類中斷,即外部中斷和內(nèi)部定時中斷。外部中斷信號從X0~X5輸入端子送入,可用于PLC外突發(fā)事件的中斷。定時中斷是PLC內(nèi)部中斷,是定時器定時時間到引起的中斷。如圖5-5所示,允許中斷范圍中若中斷源X0有一個下降沿,則轉(zhuǎn)入I000為標號的中斷服務程序,但X0可否引起中斷還受M8050控制,當X20有效時則M8050控制X0無法引起中斷。圖5-5中斷指令的使用4.主程序結(jié)束指令主程序結(jié)束指令FEND的編號為FNC06,無操作數(shù),占用1個程序步。FEND表示主程序結(jié)束,當執(zhí)行到FEND時,此后CPU將進行輸入/輸出處理,警戒時鐘刷新,完成后返回第0步。5.警戒時鐘指令警戒時鐘刷新指令WDT(P)編號為FNC07,沒有操作數(shù),占1個程序步。WDT指令的功能是用于刷新順序程序的警戒時鐘。FX系列PLC的警戒時鐘缺省值為100ms(可用D8000來設定)。如果CPU從程序的第0步到END或FEND指令之間的指令執(zhí)行時間超過了100ms,PLC將會停止執(zhí)行用戶程序。為防止此類情況發(fā)生,可以將WDT指令插到合適的程序步中來刷新警戒時鐘,以使用戶程序得以繼續(xù)執(zhí)行到END。這樣處理后,即可以將一個運行時間大于100ms的程序用WDT指令分成幾部分,使每一部分的執(zhí)行時間都小于100ms。例如,如圖5-6所示,若要執(zhí)行一個掃描時間為160ms的程序,可以將其分解為兩個80ms的程序,為此在這兩個程序之間插入WDT指令即可。圖5-6監(jiān)控定時器指令的使用6.循環(huán)指令循環(huán)指令共有兩條:循環(huán)區(qū)起點指令FOR,編號為FNC08,占用3個程序步;循環(huán)結(jié)束指令NEXT,編號為FNC09,占用1個程序步,無操作數(shù)。循環(huán)指令可以反復執(zhí)行某一段程序,只要這一段程序放在FOR~NEXT指令之間,待執(zhí)行完指定的循環(huán)次數(shù)后,才執(zhí)行NEXT指令的下一條指令。循環(huán)程序可以使程序顯得簡明精煉。圖5-7循環(huán)指令的使用程序運行時,位于FOR~NEXT間的程序反復執(zhí)行n次(由操作數(shù)決定)后再繼續(xù)執(zhí)行后續(xù)程序。循環(huán)的次數(shù)n=1~32767。如果n=32767~0,則當作n=1處理。

如圖5-7所示為一個二重嵌套循環(huán),外層執(zhí)行5次。如果D0Z0中的數(shù)為6,則外層A每執(zhí)行一次則內(nèi)層B將執(zhí)行6次。圖5-7循環(huán)指令的使用

5.2.2傳送與比較類指令(FNC10~FNC19)數(shù)據(jù)傳送與比較指令是程序中用得最多的功能指令,為此FX系列PLC中設置了8條數(shù)據(jù)傳送指令,兩條數(shù)據(jù)比較指令。傳送指令的助記符有MOV、SMOV、CML、BMOV、FMOV、XCH、BCD和BIN,比較指令的助記符為CMP和ZCP。1.比較指令比較指令包括CMP(比較)和ZCP(區(qū)間比較)兩條指令。(1)比較指令CMP:(D)CMP(P)指令的編號為FNC10,其功能是將源操作數(shù)[S1.]和源操作數(shù)[S2.]的數(shù)據(jù)進行比較,比較結(jié)果用目標元件[D]的狀態(tài)來表示。如圖5-8所示,當X1接通時,把常數(shù)100與C20的當前值進行比較,比較的結(jié)果送入M0~M2中。X1為OFF狀態(tài)時不執(zhí)行,M0~M2的狀態(tài)也保持不變。(2)區(qū)間比較指令ZCP:(D)ZCP(P)指令的編號為FNC11,其功能是將源操作數(shù)[S]與[S1]和[S2]的內(nèi)容進行比較,并將比較結(jié)果送到目標操作數(shù)[D]中。如圖5-9所示,當X0為ON狀態(tài)時,把C30當前值與K100和K120相比較,將結(jié)果送入M3、M4、M5中。X0為OFF狀態(tài)時,則ZCP指令不執(zhí)行,M3、M4、M5狀態(tài)保持不變。圖5-8比較指令的使用圖5-9區(qū)間比較指令的使用

2.傳送指令(1)傳送指令MOV:(D)MOV(P)指令的編號為FNC12,該指令的功能是將源數(shù)據(jù)傳送到指定的目標。如圖5-10所示,當X0為ON狀態(tài)時,則將[S]中的數(shù)據(jù)K100傳送到目標操作元件[D]即D10中。指令執(zhí)行時,常數(shù)K100會自動轉(zhuǎn)換成二進制數(shù)。X0為OFF狀態(tài)時,指令不執(zhí)行,數(shù)據(jù)保持不變。

圖5-10傳送指令的使用(2)移位傳送指令SMOV:SMOV(P)指令的編號為FNC13。該指令的功能是將源數(shù)據(jù)(二進制)自動轉(zhuǎn)換成4位BCD碼,再進行移位傳送,傳送后的目標操作數(shù)元件的BCD碼自動轉(zhuǎn)換成二進制數(shù)。如圖5-11所示,當X0為ON狀態(tài)時,將D1中右起第4位(m1=4)開始的兩位(m2=2)BCD碼移到目標操作數(shù)D2的右起第3位(n=3)和第2位。然后D2中的BCD碼會自動轉(zhuǎn)換為二進制數(shù),而D2中的第1位和第4位BCD碼不變。圖5-11移位傳送指令的使用(3)取反傳送指令CML:(D)CML(P)指令的編號為FNC14。它是將源操作數(shù)元件的數(shù)據(jù)逐位取反并傳送到指定目標。如圖5-12所示,當X0為ON狀態(tài)時,執(zhí)行CML指令,將D0的低4位取反向后傳送到Y(jié)3~Y0中。(4)塊傳送指令BMOV:BMOV(P)指令的ALCE編號為FNC15,是將源操作數(shù)指定元件開始的n個數(shù)據(jù)組成數(shù)據(jù)塊傳送到指定目標。如圖5-13所示,傳送順序既可從高元件號開始,也可從低元件號開始,傳送順序自動決定。若用到需要指定位數(shù)的位元件,則源操作數(shù)和目標操作數(shù)的指定位數(shù)應相同。圖5-13塊傳送指令的使用(5)多點傳送指令FMOV:(D)FMOV(P)指令的編號為FNC16。它的功能是將源操作數(shù)中的數(shù)據(jù)傳送到指定目標開始的n個元件中,傳送后n個元件中的數(shù)據(jù)完全相同。如圖5-14所示,當X0為ON狀態(tài)時,把K0傳送到D0~D9中。

5.2.3數(shù)據(jù)交換指令圖5-15數(shù)據(jù)交換指令的使用數(shù)據(jù)交換指令XCH:(D)XCH(P)指令的編號為FNC17,它是將數(shù)據(jù)在指定的目標元件之間交換。如圖5-15所示,當X0為ON狀態(tài)時,將D1和D19中的數(shù)據(jù)相互交換。5.2.4數(shù)據(jù)變換指令(1)BCD變換指令BCD:(D)BCD(P)指令的ALCE編號為FNC18。它是將源操作數(shù)中的二進制數(shù)轉(zhuǎn)換成BCD碼送到目標元件中,如圖5-16所示。BCD碼變換指令將PLC內(nèi)的二進制數(shù)變換成BCD碼后,再譯成7段碼,就能輸出驅(qū)動LED顯示器。圖5-16數(shù)據(jù)變換指令的使用如果指令進行16位操作時,執(zhí)行結(jié)果超出0~9999范圍將會出錯;當指令進行32位操作時,執(zhí)行結(jié)果超過0~99999999范圍也將出錯。

(2)BIN變換指令BIN:(D)BIN(P)指令的編號為FNC19。它是將源操作數(shù)中的BCD數(shù)據(jù)轉(zhuǎn)換成二進制數(shù)據(jù)送到目標元件中,如圖5-16所示。常數(shù)K不能作為本指令的操作元件,因為在任何處理之前它們都會被轉(zhuǎn)換成二進制數(shù)。

5.2.5算術(shù)和邏輯運算類指令(FNC20~FNC29)1.BIN加法指令(1)加法指令ADD:(D)ADD(P)指令的編號為FNC20。它是將指定的源元件中的二進制數(shù)相加結(jié)果送到指定的目標元件中去。如圖5-17所示,當X0為ON狀態(tài)時,執(zhí)行(D10)+(D12)→(D14)。

(2)減法指令SUB:(D)SUB(P)指令的編號為FNC21。它是將[S1]指定元件中的內(nèi)容以二進制形式減去[S2]指定元件的內(nèi)容,其結(jié)果存入由[D]指定的元件中。如圖5-18所示,當X0為ON狀態(tài)時,執(zhí)行(D10)(D12)→(D14)。

(3)乘法指令MUL:(D)MUL(P)指令的編號為FNC22。數(shù)據(jù)均為有符號數(shù)。如圖5-19所示,當X0為ON狀態(tài)時,將二進制16位數(shù)[S1]、[S2]相乘,結(jié)果送到[D.]中。D為32位,即(D0)×(D2)→(D5,D4)(16位乘法);當X1為ON狀態(tài)時,(D1,D0)×(D3,D2)→(D7,D6,D5,D4)(32位乘法)。

(4)除法指令DIV:(D)DIV(P)指令的編號為FNC23。其功能是將[S1]指定為被除數(shù),[S2]指定為除數(shù),將除得的結(jié)果送到[D.]指定的目標元件中,余數(shù)送到[D]的下一個元件中。如圖5-20所示,當X0為ON狀態(tài)時,(D0)(D2)→(D4)商,(D5)余數(shù)(16位除法);當X1為ON狀態(tài)時(D1,D0)(D3,D2)→(D5,D4)商,(D7,D6)余數(shù)(32位除法)。(5)加1和減1指令:加1指令(D)INC(P)的編號為FNC24;減1指令(D)DEC(P)的編號為FNC25。INC和DEC指令分別是當條件滿足則將指定元件的內(nèi)容加1或減1。如圖5-21所示,當X0為ON狀態(tài)時,(D10)+1→(D10);當X1為ON狀態(tài)時,(D11)1→(D11)。若指令是連續(xù)指令,則每個掃描周期均做一次加1或減1運算。2.邏輯運算類指令(1)邏輯與指令WAND:(D)WAND(P)指令的編號為FNC26。是將兩個源操作數(shù)按位進行與操作,結(jié)果送指定元件。(2)邏輯或指令WOR:(D)WOR(P)指令的編號為FNC27。它是對兩個源操作數(shù)按位進行或運算,結(jié)果送指定元件。如圖5-22所示,當X1有效時,(D10)∨(D12)→(D14)(3)邏輯異或指令WXOR:(D)WXOR(P)指令的編號為FNC28。它是對源操作數(shù)按位進行邏輯異或運算。(4)求補指令NEG:(D)NEG(P)指令的編號為FNC29。其功能是將[D]指定的元件內(nèi)容的各位先取反再加1,將其結(jié)果再存入原來的元件中。圖5-22邏輯運算指令的使用5.2.6循環(huán)與移位類指令(FNC30~FNC39)FX系列PLC中設置了10條循環(huán)移位與移位指令,可以實現(xiàn)數(shù)據(jù)的循環(huán)移位、移位及先進先出等功能。其中,循環(huán)移位指令分右移ROR和左移ROL,循環(huán)移位是一種閉環(huán)移動。1.循環(huán)移位指令2.帶進位的循環(huán)移位指令3.位右移和位左移指令4.字右移和字左移指令1.循環(huán)移位指令右、左循環(huán)移位指令(D)ROR(P)和(D)ROL(P)的編號分別為FNC30和FNC31。執(zhí)行這兩條指令時,各位數(shù)據(jù)向右(或向左)循環(huán)移動n位,最后一次移出來的那一位同時存入進位標志M8022中,如圖5-23所示。2.帶進位的循環(huán)移位指令帶進位的循環(huán)右、左移位指令(D)RCR(P)和(D)RCL(P)編號分別為FNC32和FNC33。執(zhí)行這兩條指令時,各位數(shù)據(jù)連同進位(M8022)向右(或向左)循環(huán)移動n位,如圖5-24所示。3.位右移和位左移指令位右移、左移指令SFTR(P)和SFTL(P)的編號分別為FNC34和FNC35。它們使位元件中的狀態(tài)成組地向右(或向左)移動。n1指定位元件的長度,n2指定移位位數(shù),n1和n2的關(guān)系及范圍因機型不同而有差異,一般為n2≤n1≤1024。位右移指令的使用如圖5-25所示。圖5-25位右移指令的使用4.字右移和字左移指令字右移和字左移指令WSFR(P)和WSFL(P)的編號分別為FNC36和FNC37。字右移和字左移指令以字為單位,其工作過程與位移位相似,是將n1個字右移或左移n2個字。

5.先入先出寫入和讀出指令先入先出寫入指令和先入先出讀出指令SFWR(P)和SFRD(P)的編號分別為FNC38和FNC39。先入先出寫入指令SFWR的使用如圖5-26所示,當X0由OFF狀態(tài)變?yōu)镺N狀態(tài)時,SFWR指令執(zhí)行,D0中的數(shù)據(jù)寫入D2,而D1變成指針,其值為1(D1必須先清0);當X0再次由OFF狀態(tài)變?yōu)镺N狀態(tài)時,D0中的數(shù)據(jù)寫入D3,D1變?yōu)?,依此類推,D0中的數(shù)據(jù)依次寫入數(shù)據(jù)寄存器。D0中的數(shù)據(jù)從右邊的D2順序存入,源數(shù)據(jù)寫入的次數(shù)放在D1中,當D1中的數(shù)達到n1后不再執(zhí)行上述操作,同時進位標志M8022置1。

5.先入先出寫入和讀出指令圖5-26先入先出寫入指令的使用先入先出讀出指令SFRD的使用如圖5-27所示,當X0由OFF狀態(tài)變?yōu)镺N狀態(tài)時,D2中的數(shù)據(jù)送到D10,同時指針D1的值減1,D3~D6的數(shù)據(jù)向右移一個字,數(shù)據(jù)總是從D2讀出,指針D1為0時,不再執(zhí)行上述操作且M8020置1。5.2.7數(shù)據(jù)處理指令(FNC40~FNC49)1.區(qū)間復位指令2.譯碼和編碼指令1.區(qū)間復位指令區(qū)間復位指令ZRST(P)的編號為FNC40。它是將指定范圍內(nèi)的同類元件成批復位。如圖5-28所示,當X0由OFF狀態(tài)變?yōu)镺N狀態(tài)時,位元件M500~M599成批復位,字元件C235~C255也成批復位。2.譯碼和編碼指令(1)譯碼指令DECO:DECO(P)指令的編號為FNC41。如圖5-29所示,n=3則表示[S]源操作數(shù)為3位,即為X0、X1、X2。其狀態(tài)為二進制數(shù),當值為011時相當于十進制數(shù)3,則由目標操作數(shù)M7~M0組成的8位二進制數(shù)的第3位M3被置1,其余各位為0。如果為000則M0被置1。用譯碼指令可通過[D]中的數(shù)值來控制元件的ON/OFF狀態(tài)。圖5-29譯碼指令的使用(2)編碼指令ENCO:ENCO(P)指令的編號為FNC42。如圖5-30所示,當X1有效時執(zhí)行編碼指令,將[S]中最高位的1(M3)所在位數(shù)(4)放入目標元件D10中,即把011放入D10的低3位。圖5-30編碼指令的使用3.ON位數(shù)統(tǒng)計和ON位判別指令3.ON位數(shù)統(tǒng)計和ON位判別指令(1)ON位數(shù)統(tǒng)計指令SUM:(D)SUM(P)指令的編號為FNC43。該指令用來統(tǒng)計指定元件中1的個數(shù)。如圖5-31所示,當X0有效時執(zhí)行SUM指令,將源操作數(shù)D0中1的個數(shù)送入目標操作數(shù)D2中,若D0中沒有1,則零標志M8020將置1。圖5-31ON位數(shù)統(tǒng)計和ON位判別指令的使用4.平均值指令平均值指令(D)MEAN(P)的編號為FNC45。其作用是將n個源數(shù)據(jù)的平均值送到指定目標(余數(shù)省略)中,若程序中指定的n值超出1~64的范圍將會出錯。

5.報警器置位與復位指令報警器置位指令ANS(P)和報警器復位指令ANR(P)的編號分別為FNC46和FNC47。如圖5-32所示,若X0和X1同時為ON狀態(tài)、時間超過1s,則S900置1;當X0或X1變?yōu)镺FF狀態(tài)時,雖定時器復位,但S900仍保持1狀態(tài)不變;若在1s內(nèi)X0或X1再次變?yōu)镺FF狀態(tài)則定時器復位。當X2接通時,則將S900~S999之間被置1的報警器復位。若有多于1個的報警器被置1,則元件號最低的報警器被復位。6.二進制平方根指令二進制平方根指令(D)SQR(P)的編號為FNC48。如圖5-33所示,當X0有效時,則將存放在D45中的數(shù)開平方,結(jié)果存放在D123中(結(jié)果只取整數(shù))。4.平均值指令5.報警器置位與復位指令6.二進制平方根指令7.二進制整數(shù)→二進制浮點數(shù)轉(zhuǎn)換指令7.二進制整數(shù)→二進制浮點數(shù)轉(zhuǎn)換指令二進制整數(shù)→二進制浮點數(shù)轉(zhuǎn)換指令(D)FLT(P)的編號為FNC49。如圖5-34所示,當X1有效時,將存入D10中的數(shù)據(jù)轉(zhuǎn)換成浮點數(shù)并存入D12中。5.2.8高速處理指令(FNC50~FNC59)1.和輸入輸出有關(guān)的指令(1)輸入輸出刷新指令REF:REF(P)指令的編號為FNC50。FX系列PLC采用集中輸入輸出的方式。如果需要最新的輸入信息以及希望立即輸出結(jié)果則必須使用該指令。如圖5-35所示,當X0接通時,X10~X17共8點將被刷新;當X1接通時,則Y0~Y7、Y10~Y17共16點輸出將被刷新。

圖5-35輸入輸出刷新指令的使用(2)濾波調(diào)整指令REFF:REFF(P)指令的編號為FNC51。在FX系列PLC中X0~X17使用數(shù)字濾波器,用REFF指令可調(diào)節(jié)其濾波時間,范圍為0~60ms(實際上由于輸入端有RL濾波,所以最小濾波時間為50s)。如圖5-36所示,當X0接通時,執(zhí)行REFF指令,濾波時間常數(shù)被設定為1ms。(3)矩陣輸入指令MTR:MTR指令的編號為FNC52。利用MTR可以構(gòu)成連續(xù)排列的8點輸入與n點輸出組成的8列n行的輸入矩陣。如圖5-37所示,由[S]指定的輸入X0~X7共8點與n點輸出Y0、Y1、Y2(n=3)組成一個輸入矩陣。PLC在運行時執(zhí)行MTR指令,當Y0為ON狀態(tài)時,讀入第一行的輸入數(shù)據(jù),存入M30~M37中;Y1為ON狀態(tài)時讀入第二行的輸入狀態(tài),存入M40~M47。其余類推,反復執(zhí)行。2.高速計數(shù)器指令(1)高速計數(shù)器置位指令HSCS:DHSCS指令的編號為FNC53。它應用于高速計數(shù)器的置位,計數(shù)器的當前值達到預置值時,計數(shù)器的輸出觸點立即動作。它采用中斷方式使置位和輸出立即執(zhí)行而與掃描周期無關(guān)。如圖5-38所示,[S1]設定值為100,當高速計數(shù)器C255的當前值由99變?yōu)?00或由101變?yōu)?00時,Y0都將立即置1。

(2)高速計數(shù)器比較復位指令HSCR:DHSCR指令的編號為FNC54。如圖5-38所示,C254的當前值由199變?yōu)?00或由201變?yōu)?00時,用中斷的方式使Y10立即復位。3.速度檢測指令速度檢測指令SPD的編號為FNC56。它用來檢測給定時間內(nèi)從編碼器輸入的脈沖個數(shù),并計算速度。如圖5-39所示,[D.]占三個目標元件。當X12為ON狀態(tài)時,用D1對X0的輸入上升沿計數(shù),100ms后計數(shù)結(jié)果送入D0,D1復位,D1重新開始對X0計數(shù)。D2在計數(shù)結(jié)束后計算剩余時間。4.脈沖輸出指令脈沖輸出指令(D)PLSY的編號為FNC57。它用來產(chǎn)生指定數(shù)量的脈沖。如圖5-40所示,[S1.]用來指定脈沖頻率(2~20000Hz),[S2.]用來指定脈沖的個數(shù)(16位指令的范圍為1~32767,32位指令則為1~2147483647)。如果指定脈沖數(shù)為0,則產(chǎn)生無窮多個脈沖。[D]用來指定脈沖輸出元件號。脈沖的占空比為50%,脈沖以中斷方式輸出。指定脈沖輸出完后,完成標志M8029置1。X10由ON狀態(tài)變?yōu)镺FF狀態(tài)時,M8029復位,停止輸出脈沖。若X10再次變?yōu)镺N狀態(tài)則脈沖從頭開始輸出。圖5-40脈沖輸出指令的使用5.脈寬調(diào)制指令脈寬調(diào)制指令PWM的編號為FNC58。它用來產(chǎn)生指定脈沖寬度和周期的脈沖串。如圖5-41所示,[S1]用來指定脈沖的寬度,[S2]用來指定脈沖的周期,[D]用來指定輸出脈沖的元件號(Y0或Y1),輸出的ON/OFF狀態(tài)由中斷方式控制。6.可調(diào)速脈沖輸出指令可調(diào)速脈沖輸出指令(D)PLSR的編號為FNC59。該指令可以對輸出脈沖進行加速,也可以進行減速調(diào)整。源操作數(shù)和目標操作數(shù)的類型和PLSY指令相同,只能用于晶體管PLC的Y0和Y1,可進行16位操作也可進行32位操作,分別占9個和17個程序步。該指令只能使用一次。5.2.9其他功能指令1.方便指令(FNC60~FNC69)FX系列共有10條方便指令:初始化指令I(lǐng)ST(FNC60)、數(shù)據(jù)搜索指令SER(FNC61)、絕對值式凸輪順控指令ABSD(FNC62)、增量式凸輪順控指令I(lǐng)NCD(FNC63)、示教定時指令TTMR(FNC64)、特殊定時器指令STMR(FNC65)、交替輸出指令ALT(FNC66)、斜坡信號指令RAMP(FNC67)、旋轉(zhuǎn)工作臺控制指令ROTC(FNC68)和數(shù)據(jù)排序指令SORT(FNC69)。(1)凸輪順控指令:凸輪順控指令有絕對值式凸輪順控指令ABSD(FNC62)和增量式凸輪順控指令I(lǐng)NCD(FNC63)兩條。絕對值式凸輪順控指令ABSD用來產(chǎn)生一組對應于計數(shù)值在360°范圍內(nèi)變化的輸出波形,輸出點的個數(shù)由n決定,如圖5-42(a)所示,圖中n為4,表明[D]由M0~M3共4點輸出。預先通過MOV指令將對應的數(shù)據(jù)寫入D300~D307中,開通點數(shù)據(jù)寫入偶數(shù)元件,關(guān)斷點數(shù)據(jù)放入奇數(shù)元件,如表5-1所示。當執(zhí)行條件X0由OFF狀態(tài)變ON狀態(tài)時,M0~M3將得到如圖5-42(b)所示的波形,通過改變D300~D307的數(shù)據(jù)可改變波形。若X0為OFF狀態(tài),則各輸出點狀態(tài)不變。該指令只能使用一次。(a)絕絕對值式凸輪順控指令(b)輸出波形(2)定時器指令:定時器指令有示教定時器指令TTMR(FNC64)和特殊定時器指令STMR(FNC65)兩條。使用示教定時器指令TTMR,可用一個按鈕來調(diào)整定時器的設定時間。如圖5-44所示,當X10為ON狀態(tài)時,執(zhí)行TTMR指令,X10按下的時間由M301記錄,該時間乘以10n后存入D300。如果按鈕按下時間為t,存入D300的值為10nt。X10為OFF狀態(tài)時,D301復位,D300保持不變。TTMR為16位運算指令,占5個程序步。

(3)交替輸出指令:交替輸出指令ALT(P)的編號為FNC66,用于實現(xiàn)由一個按鈕控制負載的啟動和停止。如圖5-46所示,當X0由OFF狀態(tài)變?yōu)镺N狀態(tài)時,Y0的狀態(tài)將改變一次。若為16位運算指令,則占3個程序步。2.外部I/O設備指令(FNC70~FNC79)外部I/O設備指令是FX系列與外設傳遞信息的指令,共有10條。分別是10鍵輸入指令TKY(FNC70)、16鍵輸入指令HKY(FNC71)、數(shù)字開關(guān)輸入指令DSW(FNC72)、七段譯碼指令SEGD(FNC73)、帶鎖存的七段顯示指令SEGL(FNC74)、方向開關(guān)指令ARWS(FNC75)、ASCII碼轉(zhuǎn)換指令ASC(FNC76)、ASCII打印指令PR(FNC77)、特殊功能模塊讀指令FROM(FNC78)和特殊功能模塊寫指令T0(FNC79)。

(1)數(shù)據(jù)輸入指令:數(shù)據(jù)輸入指令有10鍵輸入指令TKY(FNC70)、16鍵輸入指令HKY(FNC71)和數(shù)字開關(guān)輸入指令DSW(FNC72)。

10鍵輸入指令(D)TKY的使用如圖5-47所示。源操作數(shù)[S]使用X0為首元件,10個鍵X0~X11分別對應數(shù)字0~9。X30接通時執(zhí)行TKY指令,如果以X2(2)、X10(8)、X3(3)、X0(0)的順序按鍵,則[D1]中存入數(shù)據(jù)為2830,實現(xiàn)將按鍵變成十進制的數(shù)字量。當送入的數(shù)大于9999,則高位溢出并丟失。使用32位指令DTKY時,D1和D2組合使用,高位大于99999999則高位溢出。16鍵輸入指令(D)HKY能通過對鍵盤上數(shù)字鍵和功能鍵輸入的內(nèi)容來完成輸入的復合運算。如圖5-48所示,[S]指定4個輸入元件,[D1]指定4個掃描輸出點,[D2]為鍵輸入的存儲元件。[D3]指示讀出元件。16鍵中0~9為數(shù)字鍵,A~F為功能鍵,HKY指令輸入的數(shù)字范圍為0~9999,以二進制的方式存放在D0中,如果大于9999則溢出。DHKY指令可在D0和D1中存放最大為99999999的數(shù)據(jù)。功能鍵A~F與M0~M5對應,按下【A】鍵,M0置1并保持。按下【D】鍵M0置0,M3置1并保持。其余類推。如果同時按下多個鍵則先按下的有效。圖5-4710鍵輸入指令的使用

圖5-4816鍵輸入指令的使用(2)數(shù)字譯碼輸出指令:數(shù)字譯碼輸出指令有七段譯碼指令SEGD(FNC73)和帶鎖存的七段顯示指令SEGL(FNC74)兩條。七段譯碼指令SEGD(P)如圖5-50所示,將[S.]指定元件的低4位所確定的十六進制數(shù)(0~F)經(jīng)譯碼后存于[D.]指定的元件中,以驅(qū)動七段顯示器,[D.]的高8位保持不變。如果要顯示0,則應在D0中放入數(shù)據(jù)3FH。

5-49DSW指令的應用

圖5-50七段譯碼指令的使用(3)方向開關(guān)指令:方向開關(guān)指令ARWS(FNC75)用于方向開關(guān)的輸入和顯示。如圖5-51所示,該指令有4個參數(shù),源操作數(shù)[S]可選X、Y、M、S。(4)ASCII碼轉(zhuǎn)換指令:ASCII碼轉(zhuǎn)換指令ASC(FNC76)的功能是將字符轉(zhuǎn)換成ASCII碼,并存放在指定的元件中。如圖5-52所示,當X3有效時,將FX2A變成ASCII碼并送入D300和D301中。源操作數(shù)是8個字節(jié)以下的字母或數(shù)字,目標操作數(shù)為T、C、D。3.外圍設備(SER)指令(FNC80~FNC89)外圍設備(SER)指令包括串行通信指令RS(FNC80)、八進制數(shù)據(jù)傳送指令PRUN(FNC81)、十六進制數(shù)→ASCII碼轉(zhuǎn)換指令ASCI(FNC82)、ASCII碼→十六進制數(shù)轉(zhuǎn)換指令HEX(FNC83)、校驗碼指令CCD(FNC84)、模擬量輸入指令VRRD(FNC85)、模擬量開關(guān)設定指令VRSC(FNC86)和PID運算指令PID(FNC88)8條指令。

(1)八進制數(shù)據(jù)傳送指令:八進制數(shù)據(jù)傳送指令(D)PRUN(P)(FNC81)用于八進制數(shù)的傳送。如圖5-53所示,當X10為ON狀態(tài)時,將X0~X17中的內(nèi)容送至M0~M7和M10~M17中(因為X為八進制,故M9和M8的內(nèi)容不變)。當X11為ON狀態(tài)時,則將M0~M7中的內(nèi)容送至Y0~Y7,M10~M17中的內(nèi)容送至Y10~Y17。源操作數(shù)可取KnX、KnM,目標操作數(shù)取KnY、KnM,n=1~8,16位和32位運算分別占5個和9個程序步。(2)十六進制數(shù)與ASCII碼轉(zhuǎn)換指令:有十六進制數(shù)→ASCII碼轉(zhuǎn)換指令ASCI(FNC82)、ASCII碼→十六進制數(shù)轉(zhuǎn)換指令HEX(FNC83)兩條指令。

圖5-54ASCI指令的使用

(3)校驗碼指令:校驗碼指令CCD(P)(FNC84)的功能是對一組數(shù)據(jù)寄存器中的十六進制數(shù)進行總校驗和奇偶校驗。如圖5-56所示,是將源操作數(shù)[S.]指定的D100~D102共6個字節(jié)的8位二進制數(shù)求和并異或,結(jié)果分別放在目標操作數(shù)D0和D1中。通信過程中可將數(shù)據(jù)和、異或結(jié)果隨同發(fā)送,對方接收到信息后,先將傳送的數(shù)據(jù)求和并異或,再與收到的數(shù)據(jù)和及“異或”結(jié)果比較,以此判斷傳送信號的正確與否。圖5-55HEX指令的使用

圖5-56校驗碼指令的使用(4)模擬量輸入指令:模擬量輸入指令VRRD(P)(FNC85)用來對FX2N-8AV-BD模擬量功能擴展板中的電位器數(shù)值進行讀操作。如圖5-57所示,當X0為ON狀態(tài)時,讀出FX2N-8AV-BD中0號模擬量的值(由K0決定),將其送入D0作為T0的設定值。源操作數(shù)可取K、H,它用來指定模擬量口的編號,取值范圍為0~7;目標操作數(shù)可取KnY、KnM、KnS、T、C、D、V和Z。該指令只有16位運算,占5個程序步。(6)模擬量開關(guān)設定指令;模擬量開關(guān)設定指令VRSC(P)(FNC86)的作用是將FX-8AV中電位器讀出的數(shù)四舍五入整量化后以0~10之間的整數(shù)值存放在目標操作數(shù)中。它的源操作數(shù)[S.]可取K和H,用來指定模擬量口的編號,取值范圍為0~7;目標操作數(shù)[D.]的類型與VRRD指令相同。該指令為16位運算,占9個程序步。4.浮點運算指令浮點數(shù)運算指令包括浮點數(shù)的比較、四則運算、開方運算和三角函數(shù)等功能。它們分布在指令編號為FNC110~FNC119、FNC120~FNC129、FNC130~FNC139之中。(1)二進制浮點數(shù)比較指令ECMP(FNC110):[D]ECMP(P)指令的使用如圖5-58所示,將兩個源操作數(shù)進行比較,比較結(jié)果反映在目標操作數(shù)中。如果操作數(shù)為常數(shù)則自動轉(zhuǎn)換成二進制浮點值處理。該指令源操作數(shù)可取K、H和D,目標操作數(shù)可用Y、M和S。該指令為32位運算指令,占17個程序步。

(2)二進制浮點數(shù)區(qū)間比較指令EZCP(FNC111):EZCP(P)指令的功能是將源操作數(shù)的內(nèi)容與用二進制浮點值指定的上下2點的范圍比較,對應的結(jié)果用ON/OFF反映在目標操作數(shù)上,如圖5-59所示。該指令為32位運算指令,占17個程序步。源操作數(shù)可以是K、H和D;目標操作數(shù)為Y、M和S。[S1.]應小于[S2.],操作數(shù)為常數(shù)時將被自動轉(zhuǎn)換成二進制浮點值處理。圖5-58二進制浮點數(shù)比較指令的使用圖5-59二進制浮點數(shù)區(qū)間比較指令的使用(3)二進制浮點數(shù)的四則運算指令:浮點數(shù)的四則運算指令有加法指令EADD(FNC120)、減法指令ESUB(FNC121)、乘法指令EMUL(FNC122)和除法指令EDIV(FNC123)四條指令。4則運算指令的使用說明如圖5-60所示,它們都是將兩個源操作數(shù)中的浮點數(shù)進行運算后送入目標操作數(shù)。當除數(shù)為0時出現(xiàn)運算錯誤,不執(zhí)行指令。此類指令只有32位運算,占13個程序步。運算結(jié)果影響標志位M8020(零標志)、M8021(借位標志)、M8022(進位標志)。源操作數(shù)可取K、H和D,目標操作數(shù)為D。如有常數(shù)參與運算則自動轉(zhuǎn)化為浮點數(shù)。圖5-60二進制浮點數(shù)四則運算指令的使用5.時鐘運算指令(FNC160~FNC169)(1)時鐘數(shù)據(jù)比較指令TCMP(FNC160):TCMP(P)的功能是用來比較指定時刻與時鐘數(shù)據(jù)的大小。如圖5-61所示,將源操作數(shù)[S1.]、[S2.]、[S3.]中的時間與[S.]起始的3點時間數(shù)據(jù)進行比較,根據(jù)它們的比較結(jié)果

溫馨提示

  • 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

提交評論