功能指令及應(yīng)用_第1頁(yè)
功能指令及應(yīng)用_第2頁(yè)
功能指令及應(yīng)用_第3頁(yè)
功能指令及應(yīng)用_第4頁(yè)
功能指令及應(yīng)用_第5頁(yè)
已閱讀5頁(yè),還剩59頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

功能指令及應(yīng)用功能指令的基本知識(shí)程序流控制(FNC00~FNC09)傳送和比較指令(FNC10~FNC19)算術(shù)和邏輯運(yùn)算指令(FNC20~FNC29)循環(huán)移位指令(FNC30~FNC39)數(shù)據(jù)處理指令(FNC40~FNC49)高速處理指令(FNC50~FNC59)功能指令的基本知識(shí)一、基本格式梯形圖格式X0MEAND0D10K3[D][S][n]指令表格式步序操作碼操作數(shù)

0LDX01MOV

D0D10K3

8。。。。一、基本格式操作碼與操作數(shù)操作碼(指令助記符):表示指令的功能操作數(shù):指明參與操作的對(duì)象源操作數(shù)S:執(zhí)行指令后收據(jù)不變的操作數(shù),兩個(gè)或兩個(gè)以上時(shí)為S1、S2。目標(biāo)操作數(shù)D:執(zhí)行指令后收據(jù)被刷新的操作數(shù),兩個(gè)或兩個(gè)以上時(shí)為D1、D2。其它操作數(shù)m、n:補(bǔ)充注釋的常數(shù),用K(十進(jìn)制)和H(十六進(jìn)制)表示,兩個(gè)或兩個(gè)以上時(shí)為m1、m2、n1、n2。軟元件位軟元件:只處理開(kāi)關(guān)(ON/OFF)信息的元件,如X、Y、M、D、S字軟元件:處理數(shù)據(jù)的元件,如D。位軟元件的組合位軟元件組合表示數(shù)據(jù):4個(gè)位元件一組,代表4位BCD碼,也表示1位十進(jìn)制數(shù);用KnMm表示,K為十進(jìn)制,n為十進(jìn)制位數(shù),也是位元件的組數(shù),M為位元件,m為位元件的首地址,一般用0結(jié)尾的元件。二、軟元件數(shù)據(jù)長(zhǎng)度16位:參與運(yùn)算的數(shù)據(jù)默認(rèn)為16位二進(jìn)制數(shù)據(jù)32位:32位數(shù)據(jù)時(shí)在操作碼前面加D(Double三、數(shù)據(jù)長(zhǎng)度及執(zhí)行方式X0MOVD0D1X1DMOVD2D4(D0)→(D1)(D3D2)→(D5D4)執(zhí)行方式連續(xù)執(zhí)行方式:每個(gè)掃描周期都重復(fù)執(zhí)行一次脈沖執(zhí)行方式:只在信號(hào)OFF→ON時(shí)執(zhí)行一次,在指令后加P(Pulse)。X0MOVD0D1X1MOVPD2D4三、數(shù)據(jù)長(zhǎng)度及執(zhí)行方式變址:改變操作數(shù)的地址變址寄存器的作用:存放改變地址的數(shù)據(jù)實(shí)際地址=當(dāng)前地址+變址數(shù)據(jù)32位運(yùn)算時(shí)V和Z組合使用,V為高16位,Z為低16位。X0MOVK8VX1MOVK4ZMOVD0VD10ZX2V=(8)Z=(4)(D8)→(D14)四、變址寄存器V、Z五、常用特殊輔助繼電器功能指令執(zhí)行結(jié)果的標(biāo)志M8020:零標(biāo)志M8021:借位標(biāo)志M8022:進(jìn)位標(biāo)志M8029:執(zhí)行完畢標(biāo)志M8064:參數(shù)出錯(cuò)標(biāo)志M8065:語(yǔ)法出錯(cuò)標(biāo)志M8066:電路出錯(cuò)標(biāo)志M8067:運(yùn)算出錯(cuò)標(biāo)志程序流控制一、條件跳轉(zhuǎn)指令FNC00CJ二、子程序指令FNC01CALLFNC02SRET三、中斷指令FNC03IRETFNC04EIFNC05DI四、主程序結(jié)束指令FNC06FEND

五、警戒時(shí)鐘定時(shí)器指令FNC07WDT六、循環(huán)指令FNC08FOX

FNC09NEXT一、條件跳轉(zhuǎn)指令FNC00CJ操作數(shù):指針P0~P63梯形圖X10X11…Y1X12P0…CJP0CJP0指令表步序操作碼操作數(shù)

0LDX101CJ

P0

。。。

10LDX1111CJP0

。。。。

20P021LDX1222OUTY1說(shuō)明CJ指令跳過(guò)部分程序,可以縮短程序的運(yùn)算周期。如果積算型定時(shí)器和計(jì)數(shù)器的RST指令在跳轉(zhuǎn)程序之內(nèi),即使跳轉(zhuǎn)程序生效,RST指令仍然有效。該指令可以連續(xù)和脈沖執(zhí)行方式。被跳過(guò)去的程序中各元件的狀態(tài)為Y、M、S保持跳轉(zhuǎn)前狀態(tài)不變。普通計(jì)數(shù)器停止計(jì)數(shù)并保持當(dāng)前值,高速計(jì)數(shù)器繼續(xù)計(jì)數(shù)。未工作的定時(shí)器不動(dòng)作,已動(dòng)作的定時(shí)器保持當(dāng)前值。T192~T199跳轉(zhuǎn)時(shí)仍然計(jì)時(shí)。具有多種工作方式的系統(tǒng)的編程方式CJX1X1P0CJP1P1共用程序自動(dòng)程序手動(dòng)程序FENDP0二、子程序指令子程序調(diào)用FNC01CALL

操作數(shù):指針P0~P62子程序返回FND02SRET無(wú)操作數(shù)說(shuō)明子程序應(yīng)該在主程序結(jié)束之后編程。CJ指令的指針與CALL的指針不能重復(fù)。主程序允許嵌套,嵌套級(jí)別最多為5級(jí)。子程序只能用T192~T199和T246~T249作定時(shí)器。梯形圖

X1FENDSRETP8CALLP8Y1X12Y21X11Y30………主程序子程序二、子程序指令三、中斷指令中斷返回

FNC03IRET

開(kāi)中斷FNC04EI

關(guān)中斷FNC05DI均無(wú)操作數(shù)梯形圖開(kāi)中斷范圍X0I100X10FENDIRETEIDIIRETI101中斷子程序2中斷子程序1說(shuō)明在執(zhí)行某個(gè)中斷子程序時(shí),禁止其它中斷請(qǐng)求。中斷程序允許嵌套,嵌套級(jí)別為2級(jí)。中斷指針共有15個(gè):輸入中斷6個(gè),定時(shí)器中斷3個(gè),計(jì)數(shù)器中斷6個(gè)。中斷程序用T192~T199和T246~T249作定時(shí)器。中斷的優(yōu)先級(jí)別多個(gè)中斷信號(hào)不同時(shí)產(chǎn)生時(shí),按先后順序中斷。多個(gè)中斷信號(hào)同時(shí)產(chǎn)生時(shí),按指針大小中斷。三、中斷指令無(wú)操作數(shù)梯形圖X1FENDSRETP8CALLP8Y1X12Y21X11Y30………主程序子程序四、主程序結(jié)束指令FNC06FEND說(shuō)明與END指令的功能一樣,執(zhí)行到該指令時(shí)程序返回到0步。中斷服務(wù)子程序和子程序應(yīng)該寫在FEND之后,并且用IRET和SRET返回。如果多次使用FEND指令,在最后的FEND和END之間編寫子程序或中斷子程序四、主程序結(jié)束指令FNC06FEND無(wú)操作數(shù)警戒定時(shí)器是一個(gè)專用定時(shí)器,其設(shè)定值存放在特殊的數(shù)據(jù)寄存器D8000中,并以ms為計(jì)時(shí)單位。當(dāng)PLC一上電,則對(duì)警戒定時(shí)器進(jìn)行初始化,將K100(設(shè)定值為100ms)裝入D8000中,每個(gè)掃描周期結(jié)束時(shí),馬上刷新警戒定時(shí)器的當(dāng)前值,使PLC能正常運(yùn)行。當(dāng)掃描周期大于100ms時(shí),即超過(guò)了警戒定時(shí)器的設(shè)定值,警戒定時(shí)器的邏輯線圈被接通,CPU立即停止執(zhí)行用戶程序,同時(shí)切斷全部輸出,并且報(bào)警顯示。五、警戒定時(shí)器指令FNC07WDT如果正常的掃描周期超過(guò)警戒時(shí)鐘的設(shè)定值,可以在適當(dāng)程序步中加入WDT指令,適時(shí)刷新警戒時(shí)鐘,使程序能順利執(zhí)行。也可以通過(guò)MOV指令修改警戒定時(shí)器的設(shè)定值(D8000的值)??梢杂?jì)算出程序掃描周期的最大值作為警戒時(shí)鐘的設(shè)定值。WDT指令可用在FOR-NEXT之間。五、警戒定時(shí)器指令FNC07WDT循環(huán)開(kāi)始FNC08FOR

操作數(shù)[S]:K,H、KnX、KnY、KnM、KnS、T、C、D、V,Z循環(huán)結(jié)束FNC09NEXT

無(wú)操作數(shù)說(shuō)明n為循環(huán)次數(shù),其范圍為1~32767有效。如果指定為-32768~0,則作n=1處理。循環(huán)指令最多可以嵌套5級(jí)。程序中FOR-NEXT是成對(duì)出現(xiàn)的,F(xiàn)OR在前,NEXT在后不可倒置,否則出錯(cuò)。編程時(shí)NEXT應(yīng)該在FEND或END之前,否則出錯(cuò)。六、循環(huán)指令傳送和比較指令一、比較指令FNC10CMP二、區(qū)間比較指令FNC11ZCP三、傳送指令

FNC12MOV四、移位傳送指令FNC13SMOV五、取反傳送指令FNC14CML六、塊傳送指令FNC15BMOV七、多點(diǎn)傳送指令FNC16FMOV

八、數(shù)據(jù)交換指令FNC17XCH九、變換指令FNC18BCD

FNC19BIN操作數(shù)[S1]、[S1]:K,H、KnX、KnY、KnM、KnS、T、C、D、

V,Z[D]:Y、M、S梯形圖[S1]K100>C10的當(dāng)前值時(shí),M0=ONK100=C10的當(dāng)前值時(shí),M1=ONK100<C10的當(dāng)前值時(shí),M2=ONM0M1M2X0[S2][D]CMPK100C10M0一、比較指令FNC10CMP說(shuō)明該指令是將源操作數(shù)[S1]和[S2]的中數(shù)據(jù)進(jìn)行比較,結(jié)果送目標(biāo)操作數(shù)[D]中去。[D]由3個(gè)元件組成,指令中[D]給出首地址,其它兩個(gè)為后面的相鄰元件。當(dāng)X0由ON→OFF時(shí),不執(zhí)行CMP指令,M0~M2保持?jǐn)嚅_(kāi)前的狀態(tài),用復(fù)位指令RST才能清除比較結(jié)果。CMP是進(jìn)行二進(jìn)制代數(shù)比較??梢?2位二進(jìn)制數(shù)比較和脈沖執(zhí)行方式。如果指令中指定的操作數(shù)不全、元件超出范圍、軟元件地址不對(duì)時(shí),程序出錯(cuò)。一、比較指令FNC10CMP操作數(shù)[S1]、[S1]:K,H、KnX、KnY、KnM、KnS、T、C、D、

V,Z[D]:Y、M、S梯形圖K100≤C10的當(dāng)前值<120時(shí),M1=ON[S1]K100>C10的當(dāng)前值時(shí),M0=ONK120<C10的當(dāng)前值時(shí),M2=ONM0M1M2X0[S2][D]ZCPK100K120C10M0[S]二、區(qū)間比較指令FNC11ZCP說(shuō)明ZCP指令是將源操作數(shù)[S]的數(shù)據(jù)和兩個(gè)源操作數(shù)[S1]和[S2]的數(shù)據(jù)進(jìn)行比較,結(jié)果送到[D]中,[D]為三個(gè)相鄰元件的首地址。ZCP指令為二進(jìn)制代數(shù)比較,并且[S1]<[S2],如果[S1]>[S2],則把[S1]視為[S2]處理。當(dāng)X0由ON→OFF時(shí),不執(zhí)行ZCP指令,比較結(jié)果保持不變,需要用復(fù)位指令才能清除。該指令可以進(jìn)行16/32位數(shù)據(jù)處理和連續(xù)/脈沖執(zhí)行方式。二、區(qū)間比較指令FNC11ZCP操作數(shù)[S1]、[S1]:K,H、KnX、KnY、KnM、KnS、T、C、D、

V,Z[D]:KnY、KnM、KnS、T、C、D、V,Z梯形圖X0MOVK100D10K100→(D10)三、傳送指令FNC12MOV說(shuō)明該指令將源操作數(shù)[S]中的數(shù)據(jù)傳送到目標(biāo)操作數(shù)[D]中去。MOV指令可以進(jìn)行(D)和(P)操作。如果[S]為十進(jìn)制常數(shù),執(zhí)行該指令時(shí)自動(dòng)轉(zhuǎn)換成二進(jìn)制數(shù)后進(jìn)行數(shù)據(jù)傳送。當(dāng)X0斷開(kāi)時(shí),不執(zhí)行MOV指令,數(shù)據(jù)保持不變。三、傳送指令FNC12MOV操作數(shù)[S1]、[S1]:K,H、KnX、KnY、KnM、KnS、T、C、D、

V,Z[D]:KnY、KnM、KnS、T、C、D、V,Zm1、m2、n:K、H說(shuō)明該指令將源操作數(shù)[S]的16位二進(jìn)制數(shù)自動(dòng)轉(zhuǎn)換成4位BCD碼,然后從右向左第m1位開(kāi)始向右數(shù)m2位,傳送到目標(biāo)操作數(shù)(4位BCD碼)的從右向左第n位開(kāi)始向右數(shù)m2位的位置上,最后這4位BCD碼自動(dòng)轉(zhuǎn)換成二進(jìn)制數(shù)后送入目標(biāo)操作數(shù)[D]中去。傳送中BCD碼數(shù)值超過(guò)9999時(shí)程序出錯(cuò)。四、移位傳送指令FNC13SMOV梯形圖[S]X0m1[D]m2SMOVD1K4K2D2K3n310010110210310010110210D1D2b15b15b0b0自動(dòng)轉(zhuǎn)換自動(dòng)轉(zhuǎn)換4位BCD碼4位BCD碼保持保持D1D2二進(jìn)制二進(jìn)制從D1右起第四位(m1=K4)開(kāi)始的2位(m2=K2)數(shù),移到D2的右起第3位(n=K3)和第2位,D2中的第1位和第4位保持不變,最后D2中的數(shù)自動(dòng)變成二進(jìn)制數(shù)

.四、移位傳送指令FNC13SMOV操作數(shù)[S]:K,H、KnX、KnY、KnM、KnS、T、C、D、V,Z[D]:KnY、KnM、KnS、T、C、D、V,Z說(shuō)明該指令把源操作數(shù)[S]中的數(shù)據(jù)各位取反(1→0,0→1)后傳送到目標(biāo)操作數(shù)[D]中去。該指令可以16/32位數(shù)據(jù)處理和連續(xù)/脈沖執(zhí)行方式五、取反傳送指令FNC14CML梯形圖CMLD0K1Y0X0[D][S]1010101010101010

1010符號(hào)位取反傳送保持不變Y0Y3(D0)(K1Y0)若源操作數(shù)中的數(shù)為十進(jìn)制常數(shù)時(shí),將自動(dòng)轉(zhuǎn)換成二進(jìn)制.五、取反傳送指令FNC14CML操作數(shù)

[S]:K,H、KnX、KnY、KnM、KnS、T、C、D、V,Z[D]:KnY、KnM、KnS、T、C、D、V,Zn:K、H梯形圖[S]X0DnBMOVD5D10K3D7D6D5D12D11D10六、塊傳送指令FNC15BMOV說(shuō)明[S]為存放被傳送的數(shù)據(jù)塊的首地址;[D]為存放傳送來(lái)的數(shù)據(jù)塊的首地址;n為數(shù)據(jù)塊的長(zhǎng)度。位元件進(jìn)行傳送時(shí),源和目標(biāo)操作數(shù)要有相同的位數(shù)。當(dāng)傳送地址號(hào)重疊時(shí),為防止在傳送過(guò)程中數(shù)據(jù)丟失(被覆蓋),要先把重疊地址號(hào)中的內(nèi)容送出,然后再送入數(shù)據(jù)。如圖所示,采用①~③的順序自動(dòng)傳送。該指令可以連續(xù)/脈沖執(zhí)行方式。六、塊傳送指令FNC15BMOVX0BMOVK1M0K1Y0K2n=K2M2M1M0M3Y2Y1Y0Y3M6M5M4M7Y6Y5Y4Y7D12D11D10D11D10D9D12D11D10D13D12D11X1BMOVD10D9K3X2BMOVD10D11K3①③六、塊傳送指令FNC15BMOV②③②①操作數(shù)

[S]:K,H、KnX、KnY、KnM、KnS、T、C、D、V,Z[D]:KnY、KnM、KnS、T、C、Dn:

K、H梯形圖[S]X0DnBMOVK10D0K10把K10傳送到D0~D9中去七、多點(diǎn)傳送指令FNC16FMOV操作數(shù)

[D1]、[D2]:KnY、KnM、KnS、T、C、D、V,Z梯形圖[D1]X0XCH(P)D0D1[D2](D0)(D1)八、數(shù)據(jù)交換指令FNC17XCH注意交換指令一般要在脈沖方式執(zhí)行,否則不能正常工作。操作數(shù)

[S]:KnX、KnY、KnM、KnS、T、C、D、V,Z[D]:KnY、KnM、KnS、T、C、D、V,Z梯形圖[S]X0BCDD10K2Y0

[D][S]X1BINK2Y0D14[D]九、變換指令FNC18BCDFNC19BIN第四節(jié)算術(shù)與邏輯運(yùn)算指令一、二進(jìn)制加減運(yùn)算指令

加法FNC20ADD

減法FNC21SUB操作數(shù)[S1]、[S2]:K、H、KnX、KnY、KnM、KnS、T、C、D、V,Z[D]:KnY、KnM、KnS、T、C、D、V,Z梯形圖[S1]X0ADDD0D2D4[D][S1]X1DSUBD10D12D14[D][S2][S2](D0)+(D2)(D4)(D11D10)–(D13D12)(1D5D14)說(shuō)明指令是代數(shù)加減運(yùn)算,數(shù)據(jù)的最高位為符號(hào)位。進(jìn)行16位加減運(yùn)算時(shí),數(shù)據(jù)范圍為-32768~+32767;32位運(yùn)算時(shí),數(shù)據(jù)范圍為-2147483648~+2147483647。運(yùn)算結(jié)果為0時(shí),零標(biāo)志置位(M8020=1);運(yùn)算結(jié)果大于+32767(或+2147483647)時(shí),進(jìn)位標(biāo)志置位(M8022=1);運(yùn)算結(jié)果小于-32768(或-2147483648)時(shí),借位標(biāo)志置位(M8021=1)。該指令可以進(jìn)行連續(xù)/脈沖執(zhí)行方式。一、二進(jìn)制加減運(yùn)算指令乘法FNC22MUL

減法FNC23DIV操作數(shù)[S1]、[S2]:K、H、KnX、KnY、KnM、KnS、T、C、D、V,Z[D]:KnY、KnM、KnS、T、C、D、V,Z梯形圖[S1]X0MULD0D2D4[D][S1]X1DDIVD10D12D14[D][S2][S2](D0)×(D2)(D5D4)被乘數(shù)乘數(shù)積(D11D10)÷(D13D12)(1D5D14)···(D17D16)被除數(shù)除數(shù)商余數(shù)二、二進(jìn)制乘除運(yùn)算指令操作數(shù)指令進(jìn)行二進(jìn)制運(yùn)算,數(shù)據(jù)最高位為符號(hào)位??梢赃M(jìn)行16/32位乘除運(yùn)算,16位運(yùn)算時(shí),積為32位數(shù)據(jù),商和余數(shù)為16位數(shù)據(jù);32位運(yùn)算時(shí),積為64位數(shù)據(jù),商和余數(shù)為32位數(shù)據(jù)。0作除數(shù)時(shí)程序出錯(cuò)。被除數(shù)和除數(shù)中有一個(gè)為負(fù)數(shù)時(shí),商為負(fù)數(shù);被除數(shù)為負(fù)數(shù)時(shí),余數(shù)也為負(fù)數(shù)。位元件作為32位乘法運(yùn)算的目標(biāo)元件時(shí),只能得到積的低32位數(shù)據(jù)??梢赃M(jìn)行連續(xù)/脈沖執(zhí)行方式。二、二進(jìn)制乘除運(yùn)算指令加1FNC24INC

減1FNC25DEC操作數(shù)[D]:KnY、KnM、KnS、T、C、D、V,Z梯形圖X0INC(P)D10[D]X1DEC(P)D12[D](D10)+1(D10)(D12)–1(D12)三、二進(jìn)制加1減1指令說(shuō)明上述指令可以連續(xù)/脈沖執(zhí)行方式,應(yīng)用中要特別注意??梢赃M(jìn)行16/32位運(yùn)算,并且為二進(jìn)制運(yùn)算。如果從+32767(或+2147483647)再加1,則變成-32768(或-2147483648);如果從-32768(或-2147483648)再減1,則變成+32767(或+2147483647),為循環(huán)計(jì)數(shù)。以上變化時(shí)標(biāo)志位不動(dòng)作,也就是說(shuō)這兩條指令和零標(biāo)志、借位標(biāo)志、進(jìn)位標(biāo)志無(wú)關(guān)。三、二進(jìn)制加1減1指令

邏輯與FNC26

WAND

邏輯或FNC27

WOR

邏輯異或FNC28WXOR操作數(shù)[[S1]、[S2]:K、H、KnX、KnY、KnM、KnS、T、C、D、

V,Z[D]:KnY、KnM、KnS、T、C、D、V,Z四、邏輯運(yùn)算指令(D0)∧(D2)→(D4)(D10)∨(D12)→(D14)

(D20)(D22)→(D24)∨[S1]X0WANDD0D2D4[D]WORD10D12D14[S2]WXORD20D22D24異或非運(yùn)算的梯形圖X0

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論