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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第六章PLC功能指令系統(tǒng)功能指令的表示形式及含義功能指令的分類與操作數說明功能指令說明第一節(jié)功能指令的表示形式及含義一、功能指令的表示形式:PLC采用計算機通用的助記符形式來表示功能指令,通常用英文名稱或其縮寫作為助記符。功能指令按功能號FNC00~XXX(99,246)編排。每條功能指令都有一個助記符和功能號,還需指定操作數。功能指令格式:助記符(或功能號)+操作數。操作數:第一節(jié)功能指令的表示形式及含義[S]:源操作數,[S.]表示變址功能的源操作數,[S1.]、[S2.]表示源操作數不止一個。[D]:目的操作數,[D.]表示變址功能的目的操作數,[D1.]、[D2.]表示目的操作數不止一個。m,n:表示其它操作數,

常用來表示常數(可用十進制K或十六進制H)

或作為源操作數和目標操作數的補充說明。需要注釋項目不止一個時,采用m1,m2程序步的計算:功能指令的功能號和助記符占一個程序步,

操作數占2或4程序步,16位指令是2步,32位指令是4步。所以,一般地16位指令為7個程序步,32位指令為13個程序步.第一節(jié)功能指令的表示形式及含義例:指令格式舉例。當X0為ON時,(D10+D11+D12)/3--D20第一節(jié)功能指令的表示形式及含義二、數據長度及指令的執(zhí)行形式1、16位和32位指令中的符號(D)表示處理32位數據;處理32位數據時,使用元件號相鄰的兩個元件組成元件對,建議首元件號使用偶數,如D10;32位計數器不能用作16位指令的操作數。2、連續(xù)執(zhí)行/脈沖執(zhí)行連續(xù)執(zhí)行方式:當X0為ON時,指令在每個掃描周期會被重復執(zhí)行。脈沖執(zhí)行方式(助記符后加(P)符號):只有當X10由OFF變?yōu)镺N時,指令才會被執(zhí)行。符號(D)和(P)可同時使用,如(D)MOV(P)第二節(jié)功能指令的分類與操作數說明3、位元件位元件:只處理ON/OFF狀態(tài)的元件,如X,Y,M,S。字元件:處理數據的元件,如T,C,D。位元件組合起來可處理數字數據。每4位為一組組合成單元,用Kn+首位元件號表示。n表示組數(單元數)。16位操作數時為K1~K4,32位操作數時為K1~K8。首元件號為最低位。如:K4M0表示由M0~15組成的16位數據,K2X0表示由X0~X7組成的8位數據。功能指令通則4、變址寄存器V,Z變址寄存器用于在傳送、比較指令中修改操作對象的元件號,其操作方式與普通寄存器一樣。操作數[S2.]、[D.]表示可以加入變址寄存器。對32位指令,V,Z自動組對,V作高16位,Z作低16位,在指令中只需指定Z。執(zhí)行:M10為ON時,(V)=10;M11為ON時,(Z)=20;M12為ON時執(zhí)行ADD指令,(D5V)+(D15Z)=(D40Z),即(D15)+(D35)=(D60)。V,Z內容不變。功能指令簡介功能指令1、程序流程控制指令FNC00~092、傳送與比較指令FNC10~193、算術運算和邏輯運算指令FNC20~294、循環(huán)移位和移位指令FNC30~395、數據處理指令FNC40~496、高速處理指令FN50~597、方便指令FNC60~698、外部I/O設備指令FNC70~799、FX外圍設備指令FNC80~8910、浮點數指令11、定位指令12、時鐘指令13、外圍指令14、觸點指令功能指令簡介標志位功能指令在操作過程中,其運算結果要影響某些特殊繼電器或寄存器,稱為標志(位)。標志(位)分:一般標志(位);運算標志(位);功能標志(位)。一般標志(位)在功能指令操作中,其結果會影響一些標志位:M8020:零標志,如果運算結果為0則動作;M8021:借位標志,如果減運算時被減數不夠時動作;M8022:進位標志,如果運算結果發(fā)生進位時動作;M8029:指令執(zhí)行結束標志。運算標志(位)如果功能指令的結構、可用軟件及其編號范圍等方面有錯誤時,或在運算過程中出現錯誤,一些標志位會動作,并記錄出錯信息:M8067:運算出錯標志;M8068:運算錯誤代碼編號存儲;M8069:錯誤發(fā)生的序號記錄存儲。PLC由STOP-RUN時標志是瞬間清除,如果出現運算錯誤,則M8068保持動作,D8068中存儲發(fā)生錯誤的步序號。功能標志(位)部分功能指令中,同時使用由該功能指令確定的固有特殊輔助繼電器,可進行功能擴展。如:M8161:為8位處理模式,適用于FNC76(ASC)、FNC80(RS)、FNC82(ASCI)、FNC83(HEX)、FNC84(CCD)指令。功能指令簡介1、程序流程控制指令FNC00~09(1)條件跳轉指令CJ(FNC00)(2)主程序結束FEND(FNC06)(3)子程序調用CALL(FNC01)子程序返回SRET(FNC02)(4)中斷返回IRET(FNC03)、允許中斷EI(FNC04)、禁止中斷DI(FNC05)(5)監(jiān)視定時器刷新WDT(FNC07)(6)循環(huán)開始FOR(FNC08)、循環(huán)結束NEXT(FNC09)(1)條件跳轉指令CJ使用說明:X10為ON,程序跳到標號P8處,否則,順序執(zhí)行。NOTE(1)一個標號只能出現一次,否則出錯。(2)兩條跳轉指令可以使用共同的標號,(3)M8000為執(zhí)行條件,則為無條件跳轉。功能指令簡介編程時,標號占一行,對有意向END步跳轉的指令,程序中不要對標號編程。如圖6-17示。跳轉指令和主控指令在使用時關系:a.對跳過整個主控區(qū)(MC-MCR)的跳轉不受任何限制;b.從主控區(qū)外跳轉到主控區(qū)內時,跳轉獨立于主控操作,CJP1執(zhí)行時,不論M0狀態(tài)如何,作ON狀態(tài)處理;c.在主控區(qū)內部跳轉時,M0為OFF,跳轉不可能執(zhí)行。M0為ON時,按跳轉指令執(zhí)行;d.從主控區(qū)內跳轉到主控區(qū)外時,M0為OFF,跳轉不執(zhí)行,M0為ON,跳轉條件滿足可跳轉;e.從一個主控區(qū)跳到另一個主控區(qū)內,M1為ON,可跳轉,執(zhí)行跳轉時,不論M2狀態(tài)如何,均看作為ON。(2)主程序結束FENDNOTE:程序執(zhí)行FEND時,PLC進行輸入處理、輸出處理、監(jiān)視定時刷新,完成后返回第0步。FEND為主程序的結束指令,功能同END同;CALL(調用子程序)指令中,子程序、中斷子程序應寫在FEND指令之后,且在結束端用SRET和IRET為返回指令。FEND指令在CALL或CALL(P)-SRET指令執(zhí)行之后出現,則程序出錯。同樣,FEND指令在FOR-NEXT循環(huán)中也出錯。子程序及中斷子程序必須寫在FEND與END間,若使用多個FEND指令,則在最后的FEND與END間編寫子程序或中斷子程序。SRET(3)子程序調用CALL與子程序返回SRET動作(1)當X10為ON,CALLP20指令使程序執(zhí)行P20子程序,在子程序中執(zhí)行到SRET指令后程序返回到CALL指令的下一條指令(104步)處執(zhí)為。(2)X10為OFF,則程序順序執(zhí)行。NOTE子程序應寫在主程序后,即子程序的標號應寫在指令FEND之后,且子程序必須以SRET結束。NOTE:在子程序中可再次使用CALL指令,形成子程序嵌套,共可有5級嵌套。應用子程序調用指令,可優(yōu)化程序結構,提高編程效果。(4)中斷返回IRET、允許中斷EI、禁止中斷DI

NOTE(1)FX系列有9(+6)個中斷點,外部輸入中斷,中斷信號從X0~X5輸入;內部定時器中斷(計數器中斷);(2)中斷服務程序的標號為I×××;(3)指令EI~DI之間的程序段為允許中斷區(qū)間,而DI~EI之間為禁止中斷區(qū)間。M8050~M8059為中斷禁止特殊輔助繼電器?!?”為允許中斷,“1”禁止中斷。(4)當程序執(zhí)行到允許中斷區(qū)間且出現中斷請求信號時,PLC跳到相應標號處執(zhí)行中斷服務程序,遇到中斷返回指令IRET后返回斷點處繼續(xù)執(zhí)行主程序。動作:當程序執(zhí)行到允許中斷區(qū)間時,X0或X1為ON,則去執(zhí)行相應的中斷程序(1)或(2)。中斷程序應寫在主程序之后,并以IRET結束。NOTE:(1)有關的特殊輔助繼電器(M805*)置1時,相應的中斷程序(I*××)不能執(zhí)行。(2)執(zhí)行一個中斷程序時,其它中斷自動被禁止。但如果在該中斷程序編入EI和DI指令時,則響應其它中斷,最多可實現2級中斷嵌套。(3)如果中斷信號產生于禁止中斷區(qū)間,該中斷信號被存儲,并在EI指令之后被執(zhí)行。(4)多個中斷信號同時出現,中斷指針號低的優(yōu)先權高。(5)監(jiān)視定時器刷新WDTNOTE:用于監(jiān)視PLC的工作情況,在每一個掃描周期自動對WDT復位,監(jiān)控定時器定時時間缺省值為200ms,通過修改D8000來設定它的定時時間。如果程序出錯則當WDT定時時間到時,監(jiān)控定時器不再被復位,定時時間到時,PLC將停止運行,其CPU-E發(fā)光二極管亮,對系統(tǒng)重新啟動。WDT的用法:若掃描周期大于它的定時時間,可將WDT指令插入到合適的程序步中刷新監(jiān)控定時器。若FOR-NEXT循環(huán)程序的執(zhí)行時間可能超過監(jiān)控定時器的定時時間,可將WDT指令插入循環(huán)程序中。條件跳步指令CJ若在它對應的標號后(即程序往回跳),可能因連續(xù)反復跳步使它們間的程序被反復執(zhí)行,總執(zhí)行時間可能超過WDT的定時時間,可在CJ指令和對應的標號間插入WDT指令。(6)循環(huán)開始FOR、循環(huán)結束NEXTNOTE:FOR~NEXT之間的程序重復執(zhí)行n次(由操作數指定)后,再執(zhí)行NEXT指令后的程序。循環(huán)次數n的范圍為1~32767。若n為負數,作1處理。

2、傳送與比較指令FNC10~19(1)比較CMP(FNC10)(2)區(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)該指令有二個源操作數[S1.]、[S2.],一個目的操作數[D.];(2)指令將[S1.]和[S2.]進行比較,結果送到[D.]中。(3)比較結果清除,需用RST和ZRST指令。動作:(1)當X10為ON時,比較K100和C20當前值的大小,分三種情況分別使M0、M1、M2中的一個為ON,另兩個則為OFF;(2)當X10為OFF,則CMP不執(zhí)行,M0、M1、M2的狀態(tài)保持不變。(2)區(qū)間比較ZCPNOTE:該指令是將一個操作數[S.]與兩個操作數[S1.]、[S2.]形成的區(qū)間比較,且[S1.]<[S2.]。比較指令和區(qū)間比較指令,數據均為二進制數,且?guī)Х栁槐容^。X0為ON,C30的當前值與K100和K120比較。(3)傳送指令MOVNOTE:(1)將源操作數[S.]傳送到目標元件[D.],即[S.]→[D.],源操作數不變。(2)指令執(zhí)行時,K100十進制常數自動轉換成二進制數。若[S]源操作數是一個變數,要用脈沖型傳送指令MOV(P)。對于32位數據的傳送,需用(D)MOV指令。否則出錯。X0為ON,則(D1,D0)→(D11,D10);X1為ON,(C235)32位→D21,D20。將K200→D12讀出C0的當前值→D20。用MOV指令,將輸入端X0~X3的狀態(tài)送到輸出端Y0~Y3,(4)移位傳送指令SMOVNOTE:BCD碼值超過9999時出錯。源數據BCD碼右起從第4位(m1=4)開始的2位(m2=2)移送到目標D2’的第3位(n=3)和第2位。而D2’的第4位和第1位兩位BCD碼不變。源數據BCD碼右起從第1位(m1=1)開始的1位(m2=1)移送到目標D2’的第3位(n=3)。而D2’的第4位、第2位和第1位三位BCD碼不變。(5)取反傳送CML將源操作數中的數據(自動轉換為二進制)遂位取反后傳送??勺鳛镻LC的反相輸入或反相輸出指令。(6)塊傳送BMOVNOTE(1)將源操作數開始的n個數據組成的數據塊傳送到指定目標。指令操作順序依次為[S.]、[D.]和n。如果元件號超出允許范圍,數據僅傳送到允許范圍內。(2)傳送順序是自動決定的,如果操作數的類型相同,傳送順序既可從高元件號開始,也可從低元件號開始。避免源操作數被該指令傳送的其他數據沖掉。(3)若用到需要指定位數的位元件,則源、目標所指定的位數必須相同。(4)在指令格式中操作數只寫指定元件的最低位。在指令格式中操作數只寫指定元件的最低位。指定位數的位元件,則源、目標所指定的位數必須相同。傳送順序是自動決定的,如果操作數的類型相同,傳送順序既可從高元件號開始,也可從低元件號開始。避免源操作數被該指令傳送的其他數據沖掉。若M8024為ON,則BMOV指令的數據從[D]→[S],若M8024為OFF,BMOV指令的數據從[S]→[D],(7)多點傳送FMOV源操作數傳送到指定目標開始的n個目標元件中,如:若元件號超出元件號范圍,數據僅傳送到允許范圍的元件中。(8)交換XCH數據在兩個指定目標元件之間交換,交換指令一般采用脈沖執(zhí)行方式,否則在每一個掃描周期都要交換一次。當特殊繼電器M8160為ON,若[D1]與[D2]為同一地址號時,其低8位與高8位進行交換。(9)BCD交換、BIN交換BCD是將源元件中的二進制數轉換為BCD碼送到目標元件中,對于16位或32位二進制操作數,若變換結果超出0~9999或0~99999999的范圍就會出錯。BCD指令常用于將PLC中的二進制數變換成BCD碼輸出以驅動LED顯示器。BIN是將源元件中的BCD碼轉換為二進制數送到目標元件中,常數K不能作為本指令的操作元件。如果源操作數不是BCD碼就會出錯。BIN指令常用于將BCD數字開關(拔碼開關)的設定值輸入到PLC中。X0為ON時,D12中的二進制數→BCD碼送到輸出口Y7~Y0。X0為ON,源操作數K2X0中BCD碼轉換成二進制數送到目標操作單元D13中。如果數據源不是BCD碼,則M8067為“1”,指示運算錯誤,且運算錯誤鎖存特殊輔助繼電器M8068不工作。例2:四路七段顯示控制程序(P136)例3:多諧振蕩電路。例4:彩燈交替控制程序例5定時報時器控制程序例6密碼鎖控制程序設計X0~X3代表第1個十六進制數;X4~X7代表第2個十六進制數;X10~X13代表第3個十六進制數;3、算術運算和邏輯運算指令FNC20~29(1)加法ADD(FNC20)、減法SUB(FNC21)(2)乘法MUL(FNC22)、除法DIV(FNC23)(3)加1INC(FNC24)、減1DEC(FNC25)(4)與WAND(FNC26)、或WOR(FNC27)、異或WXOR(FNC28)(5)求補NEG(FNC29)(1)加法ADD、減法SUB將指定的源元件中的兩個二進制數相加,結果送到指定的目標元件。數據為帶符號數,二進制的最高位作為符號位(0為正,1為負)。如果運算結果為0,則零標志M8020置1,如果運算結果超過32767(16位運算),則進位標志M8022置1。如果運算結果為負,則借位標志M8021置1。在32位運算中,被指定的字元件是低16位元件,下一個元件為高16位元件。如果加法指令之前置1浮點操作標志M8023,則可進行浮點值的加法。可進行浮點值的加法。加法指令之前,浮點操作標志M8023置1。(2)乘法MUL、除法DIVMUL是將兩個源元件中的數據的乘積送到指定目標。如為16位乘法,則乘積為32位,如為32位乘法,則乘積為64位。最高位是符號位。目標元件用位元件指定,只能得到乘積范圍內的乘積。DIV是進行16位和32位除法,得到商和余數。若指定位元件為目標元件,則不能得到余數。對于16位乘、除法,V不能用于[D.],對于32位運算,V,Z不能用于[D.]。(3)加1INC、和減1DEC操作數只有一個,且不影響進位和借位標志。INC、DEC不影響標志位。Z由復位輸入X10清零每次X11由OFF變?yōu)镺N時,計數器C0~C9的當前值依次被轉換為BCD碼并輸出到Y0~Y17(4)與WAND、或WOR、異或WXOR(5)求補NEGNEG指令將[D.]指定的數每一位取反后再加1,結果存于同一元件;求補指令實際上是絕對值不變的變號操作。NOTE:FX系列的負數用補碼的形式表示,最高位為符號位,正數該位為0,負數為1,將負數求補后得到其絕對值。四則運算指令應用例例1四則運算式的實現例2使用乘除運算實現移位控制例3彩燈亮、滅循環(huán)控制4、循環(huán)移位和移位指令FNC30~39

(1)右循環(huán)移位ROR(FNC30)、左循環(huán)移位ROL(FNC31)(2)帶進位循環(huán)右移RCR(FNC32)、帶進位循環(huán)左移RCL(FNC33)(3)位右移SFTR(FNC34)、位左移SFTL(FNC35)(4)字右移WSFR(FNC36)、字左移WSFL(FNC37)(5)先入先出(FIFO)寫入SFWR(FNC38)、先入先出(FIFO)讀出SFRD(FNC39)(1)右循環(huán)移位ROR、左循環(huán)移位ROLX0為ON,[D]內的數據右移n位,最后一次從最低位移出的狀態(tài)存于進位標志M8022中。當X0為ON,[D]內的數據向左移n位,最后一次從最高位移出的狀態(tài)也存于進位標志M8022中。(2)帶進位循環(huán)右移RCR、帶進位循環(huán)左移RCL使數據連同進位標志一起循環(huán)移位n位。X0為ON,[D0]中的數據帶進位一起向右移4位,X0為ON,[D0]中的數據帶進位一起向左移4位,(3)位右移SFTR、位左移SFTL使目標位元件中的狀態(tài)向右/左移位,由n1指定位元件的長度,n2指定移位的位數,n2≤n1≤1024(4)字右移WSFR、字左移WSFL使字元件中的數據移位,由n1指定字元件的長度,n2指定移位的字數,n2≤n1≤512。若源操作數和目標操作數指定位元件時,其位數應相同。(5)先入先出(FIFO)寫入SFWR、讀出SFRD

n指定數據的長度。當X10首次由OFF變?yōu)镺N,SFWR將源元件D0中的數據寫入D2,而D1作為指針變?yōu)?(D1要先清0);當X10再次由OFF變?yōu)镺N時,D0中的數據寫入D3,D1中的數據加1變?yōu)?。依次類推,將D0中的數據依次寫入寄存器。SFWR數據是從最右邊的寄存器開始依次寫入,寫入的次數放在D1中,D1稱為指針。當D1的內容達到n-1后,操作不再執(zhí)行,進位標M8022置1。當X10首次由OFF變?yōu)镺N,SFRD將源元件D2中的數據讀出到D20,而D1作為指針減1,D10到D3的數據右移一字。若連續(xù)指令SFRD,則每個掃描周期數據右移一字,而數據總是從D2讀出。當指針D1為0時,操作不執(zhí)行,零標志M8020置1。先入先出(FIFO)控制常用于按產品入庫并順序從庫中取出產品。例1步進電動機的控制例2:產品入庫出庫(FIFO)控制5、數據處理指令FNC40~4

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論