版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第9章功 能 指 令 9.1功能指令的基本形式9.1.1功能指令的基本格式9.1.2數(shù)據(jù)長(zhǎng)度9.1.3指令類型9.1.4操作數(shù)的形式9.1.5變址寄存器(V,Z)的應(yīng)用9.2功能指令一覽表9.3程序控制指令及應(yīng)用9.3.1條件跳轉(zhuǎn)指令9.3.2子程序調(diào)用與子程序返回指令9.3.3與中斷有關(guān)的指令9.3.4 主程序結(jié)束指令9.3.5監(jiān)視定時(shí)器指令9.3.6循環(huán)指令9.4傳送與比較指令9.4.1比較指令9.4.2區(qū)間比較指令9.4.3傳送指令9.4.4塊傳送指令 9.4.5BCD/BIN指令 9.5四則運(yùn)算與邏輯運(yùn)算指令 9.5.1加法指令 9.5.2減法指令 9.5.3乘法指令 9.5.4除法指
2、令 9.5.5加1/減1指令9.5.6邏輯運(yùn)算指令 9.6循環(huán)與移位指令 9.6.1位右移/位左移指令 9.6.2FIFO寫入/讀出指令 9.7數(shù)據(jù)處理指令 9.7.1區(qū)間復(fù)位指令 9.7.2解碼指令 9.7.3編碼指令1第9章功 能 指 令 本章難點(diǎn): 功能指令的編程應(yīng)用 功能指令是PLC數(shù)據(jù)處理能力的重要標(biāo)志,遠(yuǎn)比基本邏輯處理指令復(fù)雜,本章從功能指令的類型、表示形式和使用要素入手,介紹FX系列PLC常用功能指令的使用方法,并以實(shí)例的形式討論其編程應(yīng)用。 本章要點(diǎn):功能指令的基本形式功能指令簡(jiǎn)介功能指令的編程應(yīng)用2第9章功 能 指 令 在FX系列PLC中,功能指令是按功能號(hào)(FNC00FNC
3、250)編排的,每條功能指令都有助記符,功能指令的表示格式如圖9.1所示。 圖9.1功能指令示意圖 9.1功能指令的基本形式 9.1.1功能指令的基本格式 0LDX101SFTR(P)35X0M0K16K2103第9章功 能 指 令 大多數(shù)功能指令有1 4個(gè)操作數(shù),有的功能指令沒有操作數(shù); S表示源操作數(shù),D表示目標(biāo)操作數(shù);如果可使用變址功能,用S和D表示。 用n和m表示其他操作數(shù),它們常用來表示常數(shù)K和H,或作為源和目標(biāo)操作數(shù)的補(bǔ)充說明。 上圖含義為:當(dāng)X10由OFFON時(shí),D內(nèi)(M0M15)各位數(shù)據(jù)連同S內(nèi)(X0X1)2位數(shù)據(jù)向左移2位,(X0X1)2位數(shù)據(jù)從D低位端移入,(M14M15)
4、2位數(shù)據(jù)從D高位端移出(溢出)。9.1功能指令的基本形式 9.1.1功能指令的基本格式 4第9章功 能 指 令 9.1.2節(jié)例中“P”表示脈沖執(zhí)行型,即該指令僅在X0由OFFON時(shí),執(zhí)行一次。 而沒有“P”則表示連續(xù)執(zhí)行型,即在X0接通時(shí)的每一個(gè)掃描周期MOV指令都被重復(fù)執(zhí)行。 9.1功能指令的基本形式 9.1.3指令類型 6第9章功 能 指 令 1位元件與字元件 只處理ON/OFF信息的軟元件稱為位元件,如X、Y、M和S;可處理數(shù)值的軟元件則稱為字元件,如T、C、D等。 但位元件也可以組合成字元件進(jìn)行數(shù)據(jù)處理,4個(gè)位元件為一個(gè)單元,通用表示方法是由Kn加起始的軟元件號(hào)組成,n為單元數(shù)。例如K
5、2M0表示M0M7組成兩個(gè)位元件組(K2表示2個(gè)單元),它是一個(gè)8位數(shù)據(jù),M0為最低位。 9.1功能指令的基本形式 9.1.4操作數(shù)的形式 7第9章功 能 指 令 變址寄存器在傳送、比較等指令中用來修改操作元件的地址,其操作方式與普通數(shù)據(jù)寄存器一樣。下面來看一個(gè)傳送指令的例子: 9.1功能指令的基本形式 9.1.5變址寄存器(V,Z)的應(yīng)用 上面?zhèn)魉椭噶畹睦又校?dāng)Z0=5時(shí),(D10Z0)(D12)=(D15)(D12) 9第9章功 能 指 令 FX系列不同型號(hào)的PLC,其功能指令的范圍各不相同,表9.1列出了FX全系列使用的功能指令,具體某個(gè)型號(hào)的PLC哪些功能指令可用、哪些不可用,也可據(jù)
6、此表查出。 9.2功能指令一覽表 表9.1功能指令簡(jiǎn)表 分類 FNCNO 指令助記符 功能說明 對(duì)應(yīng)不同型號(hào)的PLC FX0S FX0N FX1S FX1N FX2NFX2NC 程序流程00CJ條件跳轉(zhuǎn)01CALL子程序調(diào)用02SRET子程序返回10第9章功 能 指 令9.2功能指令一覽表 表9.1功能指令簡(jiǎn)表(續(xù)表) 分類 FNCNO 指令助記符 功能說明 對(duì)應(yīng)不同型號(hào)的PLC FX0S FX0N FX1S FX1N FX2NFX2NC 程序流程03IRET中斷返回04EI開中斷05DI關(guān)中斷06FEND主程序結(jié)束07WDT監(jiān)視定時(shí)器刷新08FOR循環(huán)范圍開始09NEXT循環(huán)范圍結(jié)束11第9
7、章功 能 指 令9.2功能指令一覽表 表9.1功能指令簡(jiǎn)表(續(xù)表) 分類 FNCNO 指令助記符 功能說明 對(duì)應(yīng)不同型號(hào)的PLC FX0S FX0N FX1S FX1N FX2NFX2NC 傳送與比較 10CMP比較11ZCP區(qū)域比較12MOV傳送13SMOV移位傳送14CML取反傳送15BMOV塊傳送16FMOV多點(diǎn)傳送12第9章功 能 指 令9.2功能指令一覽表 表9.1功能指令簡(jiǎn)表(續(xù)表) 分類 FNCNO 指令助記符 功能說明 對(duì)應(yīng)不同型號(hào)的PLC FX0S FX0N FX1S FX1N FX2NFX2NC 傳送與比較17XCH交換18BCDBINBCD轉(zhuǎn)換19BINBCDBIN轉(zhuǎn)換算
8、術(shù)與邏輯運(yùn)算 20ADD二進(jìn)制加法21SUB二進(jìn)制減法22MUL二進(jìn)制乘法23DIV二進(jìn)制除法13第9章功 能 指 令9.2功能指令一覽表 表9.1功能指令簡(jiǎn)表(續(xù)表) 分類 FNCNO 指令助記符 功能說明 對(duì)應(yīng)不同型號(hào)的PLC FX0S FX0N FX1S FX1N FX2NFX2NC 算術(shù)與邏輯運(yùn)算 24INC二進(jìn)制加一25DEC二進(jìn)制減一26WAND邏輯字與27WOR邏輯字或28WXOR邏輯字異或29NEG求補(bǔ)碼14第9章功 能 指 令9.2功能指令一覽表 表9.1功能指令簡(jiǎn)表(續(xù)表) 分類 FNCNO 指令助記符 功能說明 對(duì)應(yīng)不同型號(hào)的PLC FX0S FX0N FX1S FX1N
9、 FX2NFX2NC 循環(huán)與位移37WSFL字左移38SFWR移位寫入39SFRD移位讀出數(shù)據(jù)處理 40ZRST區(qū)間復(fù)位41DECO解碼42ENCO編碼43SUM統(tǒng)計(jì)ON位數(shù)16第9章功 能 指 令9.2功能指令一覽表 表9.1功能指令簡(jiǎn)表(續(xù)表) 分類 FNCNO 指令助記符 功能說明 對(duì)應(yīng)不同型號(hào)的PLC FX0S FX0N FX1S FX1N FX2NFX2NC 數(shù)據(jù)處理 44BONON位判斷45MEAN求平均值46ANS信號(hào)報(bào)警器置位47ANR信號(hào)報(bào)警器復(fù)位48SQRBIN開方運(yùn)算49FLTBIN整數(shù)轉(zhuǎn)換為浮點(diǎn)數(shù)17第9章功 能 指 令9.2功能指令一覽表 表9.1功能指令簡(jiǎn)表(續(xù)表)
10、 分類 FNCNO 指令助記符 功能說明 對(duì)應(yīng)不同型號(hào)的PLC FX0S FX0N FX1S FX1N FX2NFX2NC 高速處理 57PLSY指定頻率脈沖輸出58PWM脈寬調(diào)制輸出59PLSR帶加減速脈沖輸出方便指令 60IST狀態(tài)初始化61SER數(shù)據(jù)查找62ABSD凸輪控制(絕對(duì)式)63INCD凸輪控制(增量式)19第9章功 能 指 令9.2功能指令一覽表 表9.1功能指令簡(jiǎn)表(續(xù)表) 分類 FNCNO 指令助記符 功能說明 對(duì)應(yīng)不同型號(hào)的PLC FX0S FX0N FX1S FX1N FX2NFX2NC 方便指令 64TTMR示教定時(shí)器65STMR特殊定時(shí)器66ALT交替輸出67RAM
11、P斜波輸出68ROTC旋轉(zhuǎn)工作臺(tái)控制69SORT列表數(shù)據(jù)排序20第9章功 能 指 令9.2功能指令一覽表 表9.1功能指令簡(jiǎn)表(續(xù)表) 分類 FNCNO 指令助記符 功能說明 對(duì)應(yīng)不同型號(hào)的PLC FX0S FX0N FX1S FX1N FX2NFX2NC 外部I/O設(shè)備 70TKY10鍵輸入71HKY16鍵輸入72DSWBCD數(shù)字開關(guān)輸入73SEGD七段碼譯碼74SEGL七段碼分時(shí)顯示75ARWS方向開關(guān)76ASCASCII碼轉(zhuǎn)換21第9章功 能 指 令9.2功能指令一覽表 表9.1功能指令簡(jiǎn)表(續(xù)表) 分類 FNCNO 指令助記符 功能說明 對(duì)應(yīng)不同型號(hào)的PLC FX0S FX0N FX1
12、S FX1N FX2NFX2NC 外部I/O設(shè)備 77PRASCII碼打印輸出78FROMBFM讀出79TOBFM寫入80RS串行數(shù)據(jù)傳送81PRUN八進(jìn)制位傳送82ASCI16進(jìn)制數(shù)轉(zhuǎn)換成ASCII碼83HEXASCI碼轉(zhuǎn)換成16進(jìn)制數(shù)22第9章功 能 指 令9.2功能指令一覽表 表9.1功能指令簡(jiǎn)表(續(xù)表) 分類 FNCNO 指令助記符 功能說明 對(duì)應(yīng)不同型號(hào)的PLC FX0S FX0N FX1S FX1N FX2NFX2NC 外部I/O設(shè)備 84CCD校驗(yàn)碼85VRRD電位器讀出86VRSC電位器刻度8788PIDPID運(yùn)算8923第9章功 能 指 令9.2功能指令一覽表 表9.1功能指
13、令簡(jiǎn)表(續(xù)表) 分類 FNCNO 指令助記符 功能說明 對(duì)應(yīng)不同型號(hào)的PLC FX0S FX0N FX1S FX1N FX2NFX2NC 浮點(diǎn)數(shù)運(yùn)算 110ECMP二進(jìn)制浮點(diǎn)數(shù)比較111EZCP二進(jìn)制浮點(diǎn)數(shù)區(qū)間比較118EBCD二進(jìn)制浮點(diǎn)數(shù)十進(jìn)制浮點(diǎn)數(shù)119EBIN十進(jìn)制浮點(diǎn)數(shù)二進(jìn)制浮點(diǎn)數(shù)120EADD二進(jìn)制浮點(diǎn)數(shù)加法24第9章功 能 指 令9.2功能指令一覽表 表9.1功能指令簡(jiǎn)表(續(xù)表) 分類 FNCNO 指令助記符 功能說明 對(duì)應(yīng)不同型號(hào)的PLC FX0S FX0N FX1S FX1N FX2NFX2NC 浮點(diǎn)數(shù)運(yùn)算 130COS二進(jìn)制浮點(diǎn)數(shù)cos運(yùn)算131TAN二進(jìn)制浮點(diǎn)數(shù)tan運(yùn)算定
14、位 147SWAP高低字節(jié)交換155ABSABS當(dāng)前值讀出156ZRN原點(diǎn)復(fù)位157PLSV可變速的脈沖輸出26第9章功 能 指 令9.2功能指令一覽表 表9.1功能指令簡(jiǎn)表(續(xù)表) 分類 FNCNO 指令助記符 功能說明 對(duì)應(yīng)不同型號(hào)的PLC FX0S FX0N FX1S FX1N FX2NFX2NC 定位158DRVI相對(duì)位置控制159DRVA絕對(duì)位置控制時(shí)鐘運(yùn)算 160TCMP時(shí)鐘數(shù)據(jù)比較161TZCP時(shí)鐘數(shù)據(jù)區(qū)間比較162TADD時(shí)鐘數(shù)據(jù)加法163TSUB時(shí)鐘數(shù)據(jù)減法166TRD時(shí)鐘數(shù)據(jù)讀出27第9章功 能 指 令9.2功能指令一覽表 表9.1功能指令簡(jiǎn)表(續(xù)表) 分類 FNCNO 指
15、令助記符 功能說明 對(duì)應(yīng)不同型號(hào)的PLC FX0S FX0N FX1S FX1N FX2NFX2NC 觸點(diǎn)比較 224LD=(S1)=(S2)時(shí)起始觸點(diǎn)接通225LD(S1)(S2)時(shí)起始觸點(diǎn)接通226LD(S1)(S2)時(shí)起始觸點(diǎn)接通228LD(S1)(S2)時(shí)起始觸點(diǎn)接通229LD(S1)(S2)時(shí)起始觸點(diǎn)接通230LD(S1)(S2)時(shí)起始觸點(diǎn)接通29第9章功 能 指 令9.2功能指令一覽表 表9.1功能指令簡(jiǎn)表(續(xù)表) 分類 FNCNO 指令助記符 功能說明 對(duì)應(yīng)不同型號(hào)的PLC FX0S FX0N FX1S FX1N FX2NFX2NC 觸點(diǎn)比較 232AND=(S1)=(S2)時(shí)串
16、聯(lián)觸點(diǎn)接通233AND(S1)(S2)時(shí)串聯(lián)觸點(diǎn)接通234AND(S1)(S2)時(shí)串聯(lián)觸點(diǎn)接通236AND(S1)(S2)時(shí)串聯(lián)觸點(diǎn)接通237AND(S1)(S2)時(shí)串聯(lián)觸點(diǎn)接通238AND(S1)(S2)時(shí)串聯(lián)觸點(diǎn)接通30第9章功 能 指 令9.2功能指令一覽表 表9.1功能指令簡(jiǎn)表(續(xù)表) 分類 FNCNO 指令助記符 功能說明 對(duì)應(yīng)不同型號(hào)的PLC FX0S FX0N FX1S FX1N FX2NFX2NC 觸點(diǎn)比較 240OR=(S1)=(S2)時(shí)并聯(lián)觸點(diǎn)接通241OR(S1)(S2)時(shí)并聯(lián)觸點(diǎn)接通242OR(S1)(S2)時(shí)并聯(lián)觸點(diǎn)接通244OR(S1)(S2)時(shí)并聯(lián)觸點(diǎn)接通245O
17、R(S1)(S2)時(shí)并聯(lián)觸點(diǎn)接通246OR(S1)(S2)時(shí)并聯(lián)觸點(diǎn)接通31第9章功 能 指 令9.3程序控制指令及應(yīng)用 程序流向控制類指令(FNC00FN09),用于程序執(zhí)行流程的控制。對(duì)一個(gè)掃描周期而言,跳轉(zhuǎn)指令可以使程序出現(xiàn)跨越或跳躍以實(shí)現(xiàn)程序段的選擇。子程序指令可調(diào)用某段子程序。循環(huán)指令可多次重復(fù)執(zhí)行特定的程序段。中斷指令則用于中斷信號(hào)引起的中斷子程序調(diào)用。 程序控制類指令可以影響程序執(zhí)行的流向及內(nèi)容。對(duì)合理安排程序的結(jié)構(gòu)、有效提高程序的功能、實(shí)現(xiàn)某些技巧性運(yùn)算,都有重要的意義。 32第9章功 能 指 令9.3程序控制指令及應(yīng)用 1CJ指令簡(jiǎn)介 該指令的助記符、指令代碼、操作數(shù)、程序步
18、如表9.2所示。 9.3.1條件跳轉(zhuǎn)指令 表9.2條件跳轉(zhuǎn)指令要素 指令名稱 助記符 指令代碼位數(shù) 操作數(shù)范圍 程序步 D 條件跳轉(zhuǎn) CJCJ(P) FNC00(16) P0P127P63即END,無需標(biāo)記指針標(biāo)號(hào)允許用變址寄存器修改 CJ和CJ (P)3步標(biāo)號(hào) P1步 33第9章功 能 指 令9.3程序控制指令及應(yīng)用 條件跳轉(zhuǎn)指令在梯形圖中使用的情況如圖9.2所示。圖中跳轉(zhuǎn)指針P5對(duì)應(yīng)CJ P5跳轉(zhuǎn)指令。 跳轉(zhuǎn)指令執(zhí)行的意義為在滿足跳轉(zhuǎn)條件之后的各個(gè)掃描周期中,PLC將不再掃描執(zhí)行跳轉(zhuǎn)指令與跳轉(zhuǎn)指針P間的程序,即跳到以指針P為入口的程序段中執(zhí)行。直到跳轉(zhuǎn)的條件不再滿足,跳轉(zhuǎn)停止進(jìn)行。在圖9.
19、2中,當(dāng) X0為ON時(shí),跳轉(zhuǎn)指令CJ P5執(zhí)行條件滿足,程序?qū)腃J P5指令處跳至標(biāo)號(hào) P5處,接著往下執(zhí)行程序。 9.3.1條件跳轉(zhuǎn)指令 34第9章功 能 指 令9.3程序控制指令及應(yīng)用 2CJ指令的使用說明 (1) 由于跳轉(zhuǎn)指令具有選擇程序段的功能。在同一程序且位于因跳轉(zhuǎn)而不會(huì)被同時(shí)執(zhí)行程序段中的同一線圈不被視為雙線圈。 (2) 可以有多條跳轉(zhuǎn)指令使用同一標(biāo)號(hào)。在圖9.3中,如X0接通,第一條跳轉(zhuǎn)指令有效,從這一步跳到標(biāo)號(hào)P5處。如果X0斷開,而X10接通,則第二條跳轉(zhuǎn)指令生效,程序從第二條跳轉(zhuǎn)指令處跳到 P5處。但不允許一個(gè)跳轉(zhuǎn)指令對(duì)應(yīng)兩個(gè)標(biāo)號(hào)的情況,即在同一程序中不允許存在兩個(gè)相同的
20、標(biāo)號(hào),否則將出錯(cuò)。 (3) 標(biāo)號(hào)一般設(shè)在相關(guān)的跳轉(zhuǎn)指令之后,也可以設(shè)在跳轉(zhuǎn)指令之前。但要注意從程序執(zhí)行順序來看,如果由于標(biāo)號(hào)在前造成該程序的執(zhí)行時(shí)間超過了警戒時(shí)鐘設(shè)定值,則程序就會(huì)出錯(cuò)。9.3.1條件跳轉(zhuǎn)指令 35第9章功 能 指 令9.3程序控制指令及應(yīng)用 (4) CJ(P)指令表示為脈沖執(zhí)行方式,使用CJ(P)指令時(shí),跳轉(zhuǎn)只執(zhí)行一個(gè)掃描周期,但若用輔助繼電器M8000作為CJ指令的工作條件,跳轉(zhuǎn)就成為無條件跳轉(zhuǎn)。 (5) 即使被跳過程序的驅(qū)動(dòng)條件改變,但其線圈(或結(jié)果)仍保持跳轉(zhuǎn)前的狀態(tài)。 9.3.1條件跳轉(zhuǎn)指令 圖9.2CJ指令應(yīng)用 圖9.3兩條CJ指令使用同一標(biāo)號(hào) 36第9章功 能 指
21、 令9.3程序控制指令及應(yīng)用 (6) 在跳轉(zhuǎn)執(zhí)行期間定時(shí)器和計(jì)數(shù)器將停止工作,到跳轉(zhuǎn)條件不滿足后又繼續(xù)工作。但對(duì)于正在以中斷方式工作的定時(shí)器和計(jì)數(shù)器,如定時(shí)器T192T199和高速計(jì)數(shù)器C235C255不管有無跳轉(zhuǎn)仍連續(xù)工作。 (7) 若積分定時(shí)器和計(jì)數(shù)器的復(fù)位(RST)指令在跳轉(zhuǎn)區(qū)外,即使它們的線圈被跳轉(zhuǎn),但對(duì)它們的復(fù)位仍然有效。 3CJ指令的編程應(yīng)用 【例9-1】利用跳轉(zhuǎn)指令來執(zhí)行程序初始化工作。 【解】如圖9.4 所示,在PLC運(yùn)行的第一個(gè)掃描周期中,跳轉(zhuǎn)CJ P5不執(zhí)行,程序執(zhí)行初始化程序后執(zhí)行工作程序。而從第二個(gè)掃描周期開始,初始化程序則被跨過,不再執(zhí)行。 9.3.1條件跳轉(zhuǎn)指令 3
22、7第9章功 能 指 令9.3程序控制指令及應(yīng)用 【例9-2】利用跳轉(zhuǎn)指令實(shí)現(xiàn)手動(dòng)/自動(dòng)程序的切換。 【解】如圖9.5所示為一段手動(dòng)/自動(dòng)程序切換的梯形圖程序。當(dāng)X1為ON時(shí),程序跳過自動(dòng)程序區(qū)域,由標(biāo)號(hào)P0執(zhí)行手動(dòng)工作方式;當(dāng)X1為OFF時(shí),則執(zhí)行自動(dòng)工作方式。9.3.1條件跳轉(zhuǎn)指令 圖9.4 CJ指令用于程序初始化 圖9.5手動(dòng)/自動(dòng)切換程序 38第9章功 能 指 令9.3程序控制指令及應(yīng)用 該指令的助記符、指令代碼、操作數(shù)、程序步如表9.3所示。 9.3.2子程序調(diào)用與子程序返回指令 表9.3子程序指令要素 指令名稱 助記符 指令代碼位數(shù) 操作數(shù)范圍 程序步 D 子程序調(diào)用CALLCALL
23、(P) FNC01(16) P0P62,P64P127嵌套5級(jí)指針標(biāo)號(hào)允許用變址寄存器修改 3 步指令標(biāo)號(hào)1步 子程序返回SRET FNC02 無 1 步 39第9章功 能 指 令9.3程序控制指令及應(yīng)用 子程序是為了一些特定的控制目的編制的相對(duì)獨(dú)立的程序。為了區(qū)別于主程序,規(guī)定在程序編排時(shí),將主程序排在前邊,子程序排在后邊,并以主程序結(jié)束指令FEND(FNC06)將這兩部分分隔開。 子程序指令在梯形圖中使用的情況如圖9.6所示。圖中,子程序調(diào)用指令CALL安排在主程序段中,X0是子程序執(zhí)行的條件,當(dāng)X0為ON時(shí),標(biāo)號(hào)為P20的子程序得以執(zhí)行。子程序P20安排在主程序結(jié)束指令FEND之后,標(biāo)號(hào)
24、P20和子程序返回指令SRET間的程序構(gòu)成了P20子程序的內(nèi)容。當(dāng)主程序帶有多個(gè)子程序時(shí),子程序可依次列在主程序結(jié)束之后。并以不同的標(biāo)號(hào)相區(qū)別。9.3.2子程序調(diào)用與子程序返回指令 40第9章功 能 指 令9.3程序控制指令及應(yīng)用 注意:(1) 轉(zhuǎn)移標(biāo)號(hào)不能重復(fù),也不可與跳轉(zhuǎn)指令的標(biāo)號(hào)重復(fù)。 (2) 子程序可以嵌套調(diào)用,最多可5級(jí)嵌套。 9.3.2子程序調(diào)用與子程序返回指令 圖9.6子程序指令應(yīng)用 圖9.7中斷指令應(yīng)用 41第9章功 能 指 令9.3程序控制指令及應(yīng)用 該類指令的助記符、指令代碼、操作數(shù)、程序步如表9.4所示。 中斷指令的梯形圖表示如圖9.7所示。從圖中可以看出,中斷程序作為一
25、種子程序安排在主程序結(jié)束指令FEND之后。主程序中允許中斷指令EI及不允許中斷指令DI之間的區(qū)間表示可以開放中斷的程序段。主程序帶多個(gè)中斷子程序時(shí),中斷標(biāo)號(hào)和距其最近的一處中斷返回指令構(gòu)成一個(gè)中斷子程序。 9.3.3與中斷有關(guān)的指令 42第9章功 能 指 令9.3程序控制指令及應(yīng)用 9.3.3與中斷有關(guān)的指令 表9.4中斷指令要素 指令名稱 助記符 指令代碼位數(shù) 操作數(shù)范圍 程序步 D 中斷返回指令I(lǐng)RETFNC03無1 步允許中斷指令EIFNC04無1 步禁止中斷指令DIFNC05無1 步43第9章功 能 指 令9.3程序控制指令及應(yīng)用 9.3.3與中斷有關(guān)的指令 注意:(1)如果多個(gè)中斷依
26、次發(fā)生,則以發(fā)生先后為序,如果多個(gè)中斷源同時(shí)發(fā)出信號(hào),則中斷指針號(hào)越小優(yōu)先級(jí)越高。(2)當(dāng)M8050M8058為ON時(shí),禁止執(zhí)行相應(yīng)I0 I8的中斷,M8059為ON時(shí)則禁止所有計(jì)數(shù)器中斷。 (3)無需中斷禁止時(shí),可只用EI指令,不必用DI指令。 (4)執(zhí)行一個(gè)中斷服務(wù)程序時(shí),如果在中斷服務(wù)程序中有EI和DI,可實(shí)現(xiàn)二級(jí)中斷嵌套,否則禁止其他中斷。 44第9章功 能 指 令9.3程序控制指令及應(yīng)用 9.3.4主程序結(jié)束指令 該指令的助記符、指令代碼、操作數(shù)、程序步如表9.5所示。 表9.5主程序結(jié)束指令要素 指令名稱 助記符 指令代碼位數(shù) 操作數(shù)范圍 程序步 D 主程序結(jié)束指令 FEND FN
27、C06 無 1 步 FEND表示主程序結(jié)束,當(dāng)執(zhí)行到FEND時(shí),PLC進(jìn)行輸入/輸出處理,監(jiān)視定時(shí)器刷新,完成后返回起始步。 注意:(1) 子程序和中斷服務(wù)程序應(yīng)放在FEND之后。 (2) 子程序和中斷服務(wù)程序必須寫在FEND和END之 間,否則出錯(cuò)。 45第9章功 能 指 令9.3程序控制指令及應(yīng)用 9.3.5監(jiān)視定時(shí)器指令 該指令的助記符、指令代碼、操作數(shù)、程序步如表9.6所示。 表 9.6監(jiān)視定時(shí)器指令要素 指令名稱 助記符 指令代碼位數(shù) 操作數(shù)范圍 程序步 D 監(jiān)視定時(shí)器指令 WDTWDT(P) FNC07 無 1 步 WDT指令是對(duì)PLC的監(jiān)視定時(shí)器進(jìn)行刷新,F(xiàn)X系列PLC的監(jiān)視定時(shí)
28、器默認(rèn)值為200 ms(可用D8000來設(shè)定)。當(dāng)PLC的掃描周期(0END或FEND指令執(zhí)行時(shí)間)超過200 ms時(shí),PLC的CPU-E指示燈亮、PLC停機(jī),因此需在程序的中途插入WDT指令,使PLC的監(jiān)視定時(shí)器刷新,如圖9.8所示。 46第9章功 能 指 令9.3程序控制指令及應(yīng)用 9.3.5監(jiān)視定時(shí)器指令 圖9.8WDT指令應(yīng)用 (1)如果在后續(xù)的FOR-NEXT循環(huán)中,執(zhí)行時(shí)間可能超過監(jiān)視定時(shí)器的定時(shí)時(shí)間,可將WDT插入循環(huán)程序中。 (2)當(dāng)與條件跳轉(zhuǎn)指令CJ對(duì)應(yīng)的指針標(biāo)號(hào)在CJ指令之前時(shí)(即程序往回跳)就有可能連續(xù)反復(fù)跳步使它們之間的程序反復(fù)執(zhí)行,使執(zhí)行時(shí)間超過監(jiān)控時(shí)間,可在CJ指令
29、與對(duì)應(yīng)標(biāo)號(hào)之間插入WDT指令。 注意:47第9章功 能 指 令9.3程序控制指令及應(yīng)用 9.3.6循環(huán)指令 表9.7循環(huán)指令要素該指令的助記符、指令代碼、操作數(shù)、程序步如表9.7所示 指令名稱 助記符 指令代碼位數(shù) 操作數(shù)范圍 程序步 S 循環(huán)開始指令FORFNC08(16) K、HKnX、KnY、KnM、KnST、C、D、V、Z嵌套:5級(jí) 3步 循環(huán)結(jié)束指令NEXTFNC09 無 1步 48第9章功 能 指 令9.3程序控制指令及應(yīng)用 9.3.6循環(huán)指令 表9.7循環(huán)指令要素 FOR和NEXT指令是成對(duì)出現(xiàn)的,如圖9.9所示的梯形圖中各有兩條FOR和NEXT指令,構(gòu)成二層循環(huán)。循環(huán)次數(shù)由FO
30、R指令后的n值指定,n=132767,若n= -327670之間,則當(dāng)作n=1處理。運(yùn)行時(shí),位于FORNEXT間的程序反復(fù)執(zhí)行n次后再繼續(xù)執(zhí)行后續(xù)程序。 49第9章功 能 指 令9.3程序控制指令及應(yīng)用 9.3.6循環(huán)指令 注意:(1) FOR和NEXT必須成對(duì)使用。 (2) FX2N系列PLC可循環(huán)嵌套5層。 (3) 在循環(huán)中可利用CJ指令在循環(huán)沒結(jié)束時(shí) 跳出循環(huán)體。 (4) FOR應(yīng)放在NEXT之前,NEXT應(yīng)在FEND和END之前, 否則出錯(cuò)。 循環(huán)指令用于某些需反復(fù)操作的場(chǎng)合,如對(duì)某一采樣數(shù)據(jù)做一定次數(shù)的加權(quán)運(yùn)算等。 50第9章功 能 指 令9.3程序控制指令及應(yīng)用9.3.6循環(huán)指令
31、注意:(1) FOR和NEXT必須成對(duì)使用。 (2) FX2N系列PLC可循環(huán)嵌套5層。 (3) 在循環(huán)中可利用CJ指令在循環(huán)沒結(jié)束時(shí) 跳出循環(huán)體。 (4) FOR應(yīng)放在NEXT之前,NEXT應(yīng)在FEND和END之前, 否則出錯(cuò)。 循環(huán)指令用于某些需反復(fù)操作的場(chǎng)合,如對(duì)某一采樣數(shù)據(jù)做一定次數(shù)的加權(quán)運(yùn)算等。 51第9章功 能 指 令9.4傳送與比較指令 9.4.1比較指令 FX1N系列PLC有6條傳送與比較指令,能實(shí)現(xiàn)單一數(shù)據(jù)或批數(shù)據(jù)的傳送、數(shù)制變換與比較,下面擇要介紹。 該指令的助記符、指令代碼、操作數(shù)范圍、程序步如表9.8所示。 表9.8比較指令的要素 指令名稱 助記符 指令代碼位數(shù) 操作數(shù)
32、范圍 程序步 S1 S2 D 比較 CMPCMP(P) FNC10(16/32) K、HKnX、KnY、KnM、KnST、C、D、V、Z YMS CMP、CMPP7步DCMP、DCMPP13步 52第9章功 能 指 令9.4傳送與比較指令 9.4.1比較指令 比較指令CMP是將源操作數(shù)S1和源操作數(shù)S2的數(shù)據(jù)進(jìn)行比較,比較結(jié)果用目標(biāo)元件D的狀態(tài)來表示,如圖9.10所示。圖9.10CMP指令應(yīng)用 在X1斷開,即不執(zhí)行CMP指令時(shí),M0M2保持X1斷開前的狀態(tài)。 數(shù)據(jù)比較是進(jìn)行代數(shù)值大小比較(即帶符號(hào)比較)。所有的源數(shù)據(jù)均按二進(jìn)制處理。當(dāng)比較指令的操作數(shù)不完整(若只指定一個(gè)或兩個(gè)操作數(shù)),或者指定
33、的操作數(shù)不符合要求(例如把X、D、T、C指定為目標(biāo)操作數(shù)),或者指定的操作數(shù)的元件號(hào)超出了允許范圍等情況,比較指令就會(huì)出錯(cuò)。53第9章功 能 指 令9.4傳送與比較指令 9.4.2區(qū)間比較指令 該指令的助記符、指令代碼、操作數(shù)范圍、程序步如表9.9所示。表9.9區(qū)間比較指令的要素指令名稱 助記符 指令代碼位數(shù) 操作數(shù)范圍 程序步 S1 S2 S D 區(qū)間比較 ZCPZCP(P) FNC11(16/32) K、HKnX、KnY、KnM、KnST、C、D、V、Z YMS ZCP、ZCPP9步DZCP、DZCPP17步 54第9章功 能 指 令9.4傳送與比較指令 9.4.2區(qū)間比較指令 區(qū)間比較指
34、令執(zhí)行時(shí),是將源操作數(shù)S與S1和S2的內(nèi)容進(jìn)行比較,并將比較的結(jié)果用目標(biāo)操作數(shù)D 的狀態(tài)來表示,如圖9.11所示。圖9.11ZCP指令應(yīng)用 55第9章功 能 指 令9.4傳送與比較指令 9.4.2區(qū)間比較指令 在X0斷開,即不執(zhí)行ZCP指令時(shí),M10M12保持X0斷開前的狀態(tài)。 注意:(1) 使用ZCP時(shí),S2的數(shù)值不能小于S1。 (2) 所有的源數(shù)據(jù)都被看成二進(jìn)制值處理。 (3) 在不執(zhí)行指令時(shí),可用復(fù)位指令清除比較結(jié)果。56第9章功 能 指 令9.4傳送與比較指令 9.4.3傳送指令 該指令的助記符、指令代碼、操作數(shù)范圍、程序步如表9.10所示。 表9.10傳送指令的要素 指令名稱 助記符
35、 指令代碼位數(shù) 操作數(shù)范圍 程序步 S D 傳送 MOVMOV(P) FNC12(16/32) K、HKnX、KnY、KnM、KnST、C、D、V、Z KnY、KnM、KnST、C、D、V、Z MOV、MOVP5步DMOV、DMOVP9步 57第9章功 能 指 令9.4傳送與比較指令 9.4.3傳送指令 MOV指令是將源操作數(shù)內(nèi)的數(shù)據(jù)傳送到指定的目標(biāo)操作數(shù)內(nèi),即SD,如圖9.12所示。 圖9.12MOV指令應(yīng)用 當(dāng)X0=ON時(shí),源操作數(shù)S中的常數(shù)K150傳送到目標(biāo)操作元件D20中。當(dāng)指令執(zhí)行時(shí),常數(shù)K150自動(dòng)轉(zhuǎn)換成二進(jìn)制數(shù)。 當(dāng) X0 斷開時(shí),指令不執(zhí)行,數(shù)據(jù)保持不變。 58第9章功 能 指
36、 令9.4傳送與比較指令 9.4.4塊傳送指令 該指令的助記符、指令代碼、操作數(shù)范圍、程序步如表9.11所示。 表9.11移位傳送指令的要素 指令名稱 助記符 指令代碼位數(shù) 操作數(shù)范圍 程序步 S Dn 塊傳送 BMOVBMOV(P) FNC15(16) KnX、KnY、KnM、KnS、 T、 C、D KnY、KnM、 KnS、T、C、 D、V、Z K、H512 BMOV、BMOVP7步 59第9章功 能 指 令9.4傳送與比較指令 9.4.4塊傳送指令 BMOV指令的功能是將源操作數(shù)指定元件開始的n個(gè)數(shù)據(jù)組成數(shù)據(jù)塊傳送到指定的目標(biāo),如圖9.13所示。圖9.13BMOV指令應(yīng)用 注意:如果元件
37、號(hào)超出允許范圍,數(shù)據(jù)則僅傳送到允許范圍內(nèi)的元件。 60第9章功 能 指 令9.4傳送與比較指令 9.4.5BCD/BIN指令 該類指令的助記符、指令代碼、操作數(shù)范圍、程序步如表9.12所示。 表9.12數(shù)據(jù)變換指令的要素指令名稱 助記符 指令代碼位數(shù) 操作數(shù)范圍 程序步 S DBCD變換 BCDBCD(P)FNC18(16/32) KnX、KnY、KnM、KnS、 T、 C、D V、Z KnY、KnM、 KnS、T、C、 D、V、Z BCD、BCDP5步DBCD、DBCDP9步 BIN交換 BINBIN(P) FNC19(16/32) KnX、KnY、KnM、KnS、 T、 C、D V、Z K
38、nY、KnM、 KnS、T、C、 D、V、ZBIN、BINP5步DBIN、DBINP9步 61第9章功 能 指 令9.4傳送與比較指令 9.4.5BCD/BIN指令 BCD變換指令是將源元件中的二進(jìn)制數(shù)轉(zhuǎn)換成BCD碼送到目標(biāo)元件中。BIN變換指令是BCD變換指令的逆變換,是將源元件中的BCD碼轉(zhuǎn)換成二進(jìn)制數(shù)據(jù)送到目標(biāo)元件中,如圖9.14所示。圖9.14BCD/BIN指令應(yīng)用 如果指令進(jìn)行16位操作時(shí),執(zhí)行結(jié)果超出09999范圍將會(huì)出錯(cuò);當(dāng)指令進(jìn)行32位操作時(shí),執(zhí)行結(jié)果超過099999999范圍也將出錯(cuò)。 傳送與比較指令在PLC控制程序中起如下用途。 62第9章功 能 指 令9.4傳送與比較指令
39、 9.4.5BCD/BIN指令 1) 用以獲得程序的初始工作數(shù)據(jù) 一個(gè)控制程序總是需要初始數(shù)據(jù)的。這些數(shù)據(jù)既可以從輸入端口上連接的外部器件獲得,運(yùn)用傳送指令讀取這些器件上的數(shù)據(jù)并送到內(nèi)部單元;也可以用程序設(shè)置,即向內(nèi)部單元傳送立即數(shù);另外,某些運(yùn)算數(shù)據(jù)存儲(chǔ)在機(jī)內(nèi)的某個(gè)地方,等程序開始運(yùn)行時(shí)通過初始化程序送到工作單元。 2) 機(jī)內(nèi)數(shù)據(jù)的存取管理 在數(shù)據(jù)運(yùn)算過程中,機(jī)內(nèi)的數(shù)據(jù)傳送是不可缺少的。運(yùn)算可能要涉及不同的工作單元,數(shù)據(jù)需在它們之間傳送;運(yùn)算可能會(huì)產(chǎn)生一些中間數(shù)據(jù),這需要傳送到適當(dāng)?shù)牡胤綍簳r(shí)存放;有時(shí)機(jī)內(nèi)的數(shù)據(jù)需要備份保存,這就要找地方把這些數(shù)據(jù)存儲(chǔ)妥當(dāng)??傊?,對(duì)一個(gè)涉及數(shù)據(jù)運(yùn)算的程序,數(shù)據(jù)
40、管理是很重要的。此外,63第9章功 能 指 令9.4傳送與比較指令 9.4.5BCD/BIN指令 二進(jìn)制和BCD碼的轉(zhuǎn)換在數(shù)據(jù)管理中也是很重要的。 3) 運(yùn)算處理結(jié)果向輸出端口傳送 運(yùn)算處理結(jié)果總是要通過輸出實(shí)現(xiàn)對(duì)執(zhí)行器件的控制,或者輸出數(shù)據(jù)用于顯示,或者作為其他設(shè)備的工作數(shù)據(jù)。對(duì)于輸出口連接的離散執(zhí)行器件,可成組處理后看做是整體的數(shù)據(jù)單元,按各端口的目標(biāo)狀態(tài)送入一定的數(shù)據(jù),即可實(shí)現(xiàn)對(duì)這些器件的控制。 4) 比較指令用于建立控制點(diǎn) 控制現(xiàn)場(chǎng)常有將某個(gè)物理量的量值或變化區(qū)間作為控制點(diǎn)的情況。如溫度低于多少度就打開電熱器,速度高于或低于一個(gè)區(qū)間就報(bào)警等。作為一個(gè)控制“閥門”,比較指令常出現(xiàn)在工業(yè)控
41、制程序中。64第9章功 能 指 令9.4傳送與比較指令 9.4.5BCD/BIN指令 【例9-3】 PLC在送料車方向自動(dòng)控制上的應(yīng)用。 控制要求如下。 某車間有8個(gè)工作臺(tái),送料車往返于工作臺(tái)之間送料,動(dòng)作示意圖如圖9.15所示。每個(gè)工作臺(tái)設(shè)有一個(gè)到位開關(guān)(SQ)和一個(gè)呼叫按鈕(SB),送料車開始應(yīng)能停留在8個(gè)工作臺(tái)中任意一個(gè)到位開關(guān)的位置上,系統(tǒng)受啟停開關(guān)QS的控制。具體控制要求如下。 (1) 當(dāng)料車所在暫停位置的SQ號(hào)碼大于呼叫的SB號(hào)碼時(shí),料車往左行,到呼叫的SB位置后停止。 (2) 當(dāng)料車所在暫停位置的SQ號(hào)碼小于呼叫的SB號(hào)碼時(shí),料車往右行,到呼叫的SB位置后停止。試用傳送與比較指令
42、編程實(shí)現(xiàn)送料車的控制要求。65第9章功 能 指 令9.4傳送與比較指令 9.4.5BCD/BIN指令 圖9.15送料車工作示意圖66第9章功 能 指 令9.4傳送與比較指令 9.4.5BCD/BIN指令 【解】設(shè)送料車現(xiàn)暫停于m號(hào)工作臺(tái)(SQm為ON)處,這時(shí)n號(hào)工作臺(tái)呼叫(SBn為ON),則根據(jù)題意可知: (1) 當(dāng)料車所在暫停位置的SQ號(hào)碼大于呼叫的SB號(hào)碼時(shí),料車往左行,到呼叫的SB位置后停止。即mn,送料車左行,直至 SQn動(dòng)作,到位停車。 (2) 當(dāng)料車所在暫停位置的SQ號(hào)碼小于呼叫的SB號(hào)碼時(shí),料車往右行,到呼叫的SB位置后停止。即mn,送料車右行,直至SQn動(dòng)作,到位停車。 (3
43、) 送料車所停位置SQ的號(hào)碼與呼叫按鈕SB的號(hào)碼相同時(shí),送料車不動(dòng)。即m=n,送料車原位不動(dòng)。67第9章功 能 指 令9.4傳送與比較指令 9.4.5BCD/BIN指令 5) I/O地址分配及硬件連接 由控制要求可知,系統(tǒng)的I/O地址分配如表9.13所示,硬件連接如圖9.16所示。 表9.13送料車系統(tǒng)的I/O地址分配表輸入 功能說明 輸入 功能說明 輸出 功能說明 SQ0 X0 限位0 SB0 X10 呼叫0 KM1 Y0 電動(dòng)機(jī)M正轉(zhuǎn),料車右行 SQ1 X1 限位 1SB1 X11 呼叫1 KM2 Y2 電動(dòng)機(jī)M反轉(zhuǎn),料車左行 SQ2 X2 限位 2SB2 X12 呼叫2 SQ3 X3 限
44、位3 SB3 X13 呼叫3 SQ4 X4 限位 4SB4 X14 呼叫4 68第9章功 能 指 令9.4傳送與比較指令 9.4.5BCD/BIN指令 表9.13送料車系統(tǒng)的I/O地址分配表(續(xù)表)輸入 功能說明 輸入 功能說明 輸出 功能說明 SQ5 X5 限位5 SB5 X15 呼叫5 KM1 Y0 電動(dòng)機(jī)M正轉(zhuǎn),料車右行 SQ6 X6 限位6SB6 X16 呼叫6 KM2 Y2 電動(dòng)機(jī)M反轉(zhuǎn),料車左行 SQ7 X7 限位 7SB7 X17 呼叫7QS X20 啟停開關(guān) 69第9章功 能 指 令9.4傳送與比較指令 9.4.5BCD/BIN指令 圖9.16送料車系統(tǒng)硬件連接圖70第9章功
45、能 指 令9.4傳送與比較指令 9.4.5BCD/BIN指令 6) PLC軟件的實(shí)現(xiàn) 用傳送與比較指令編程實(shí)現(xiàn)送料車控制的梯形圖程序如圖9.17所示。71第9章功 能 指 令9.4傳送與比較指令 9.4.5BCD/BIN指令 圖9.17送料車系統(tǒng)梯形圖程序72第9章功 能 指 令9.4傳送與比較指令 9.4.5BCD/BIN指令 圖中將送料車當(dāng)前位置送到數(shù)據(jù)寄存器D128中,將呼叫工作臺(tái)號(hào)送到數(shù)據(jù)寄存器D129中,然后通過D128與D129中數(shù)據(jù)的比較,決定送料車的運(yùn)行方向和到達(dá)的目標(biāo)位置,D128、D129都是斷電保持型數(shù)據(jù)寄存器,因此送料車系統(tǒng)重新啟動(dòng)后,能自動(dòng)恢復(fù)斷電前的狀態(tài)。 73第9
46、章功 能 指 令9.5四則運(yùn)算與邏輯運(yùn)算指令 四則運(yùn)算及邏輯運(yùn)算指令是基本運(yùn)算指令??赏瓿伤膭t運(yùn)算或邏輯運(yùn)算,可通過運(yùn)算實(shí)現(xiàn)數(shù)據(jù)的傳送、變位及其他控制功能。 PLC中有兩種四則運(yùn)算,即整數(shù)四則運(yùn)算和實(shí)數(shù)四則運(yùn)算。前者指令較簡(jiǎn)單,參加運(yùn)算的數(shù)據(jù)只能是整數(shù)。非整數(shù)參加運(yùn)算需先取整,除法運(yùn)算的結(jié)果分為商和余數(shù)。整數(shù)四則運(yùn)算進(jìn)行較高準(zhǔn)確度要求的計(jì)算時(shí),需將小數(shù)點(diǎn)前后的數(shù)值分別計(jì)算再將數(shù)據(jù)組合起來,除法運(yùn)算時(shí)要對(duì)余數(shù)再做多次運(yùn)算才能形成最后的商。這就使程序的設(shè)計(jì)非常煩瑣。而實(shí)數(shù)運(yùn)算是浮點(diǎn)運(yùn)算,是一種高準(zhǔn)確度的運(yùn)算。 FX1N系列PLC僅有整數(shù)運(yùn)算指令,F(xiàn)X2N系列PLC具有實(shí)數(shù)運(yùn)算指令。 74第9章功
47、能 指 令9.5四則運(yùn)算與邏輯運(yùn)算指令 該指令的助記符、指令代碼、操作數(shù)、程序步如表9.14所示。 9.5.1加法指令表9.14加法指令的要素 指令名稱 助記符 指令代碼位數(shù) 操作數(shù)范圍 程序步 S1 S2 D 加法 ADDADD(P) FNC20(16/32) K、HKnX、KnY、KnM、KnS、 T、 C、D、V、Z KnY、KnM、KnST、C、D、V、Z ADD、ADDP7步DADD、 DADDP13步 ADD加法指令是將指定的源元件中的二進(jìn)制數(shù)相加,結(jié)果送到指定的目標(biāo)元件中去,如圖9.18所示。75第9章功 能 指 令9.5四則運(yùn)算與邏輯運(yùn)算指令 當(dāng)執(zhí)行條件X0由OFFON時(shí),D0
48、+D1 D2。運(yùn)算是代數(shù)運(yùn)算,如2+(-3)= -1。 如果運(yùn)算結(jié)果為0,則零標(biāo)志M8020置1;如果運(yùn)算結(jié)果超過32767(16位)或2147483647(32位),則進(jìn)位標(biāo)志M8022置1;如果運(yùn)算結(jié)果小于-32767(16位)或 -2147483647(32位),則借位標(biāo)志M8021置1。 在32位運(yùn)算中,被指定的字元件是低16位元件,而下一個(gè)元件為高16位元件。 9.5.1加法指令圖9.18ADD指令應(yīng)用76第9章功 能 指 令9.5四則運(yùn)算與邏輯運(yùn)算指令 源和目標(biāo)可以用相同的元件號(hào)。若源和目標(biāo)元件號(hào)相同而采用連續(xù)執(zhí)行的 ADD、 (D)ADD指令時(shí),加法的結(jié)果在每個(gè)掃描周期都會(huì)改變。
49、 9.5.1加法指令77第9章功 能 指 令9.5四則運(yùn)算與邏輯運(yùn)算指令 該指令的助記符、指令代碼、操作數(shù)、程序步如表9.15所示。 9.5.2減法指令 表9.15減法指令的要素指令名稱 助記符 指令代碼位數(shù) 操作數(shù)范圍 程序步 S1 S2 D 減法 SUBSUB(P) FNC21(16/32) K、HKnX、KnY、KnM、KnS、 T、 C、D、V、Z KnY、KnM、KnST、C、D、V、Z SUB、SUBP7步DSUB、DSUBP13步 78第9章功 能 指 令9.5四則運(yùn)算與邏輯運(yùn)算指令 SUB減法指令是將指定的源元件中的二進(jìn)制數(shù)相減,結(jié)果送到指定的目標(biāo)元件中去,如圖9.19所示。9
50、.5.2減法指令 圖9.19SUB指令應(yīng)用 各種標(biāo)志的動(dòng)作、32位運(yùn)算中軟元件的指定方法、連續(xù)執(zhí)行型和脈沖執(zhí)行型的差異均與上述加法指令相同。 79第9章功 能 指 令9.5四則運(yùn)算與邏輯運(yùn)算指令 該指令的助記符、指令代碼、操作數(shù)、程序步如表9.16所示。 9.5.3乘法指令 表9.16乘法指令的要素指令名稱 助記符 指令代碼位數(shù) 操作數(shù)范圍 程序步 S1 S2 D 乘法 MULMUL(P) FNC22(16/32) K、HKnX、KnY、KnM、KnS、 T、 C、D、V、Z KnY、KnM、KnST、C、D、Z (限于16位運(yùn)算) MUL、MULP7步DMUL、DMULP13 步 MUL乘法
51、指令是將指定的源元件中的二進(jìn)制數(shù)相乘,結(jié)果送到指定的目標(biāo)元件中去。如圖9.20所示,它分16位和32位兩種運(yùn)算。80第9章功 能 指 令9.5四則運(yùn)算與邏輯運(yùn)算指令 圖9.20(a)為16位運(yùn)算,執(zhí)行條件X1由OFFON 時(shí),D0D1 D3,D2中。源操作數(shù)是16位,目標(biāo)操作數(shù)是32位。當(dāng)D0=10,D1= -10時(shí),D3,D2= -100。最高位為符號(hào)位,0為正值,1為負(fù)值。 9.5.3乘法指令 圖9.20MUL指令應(yīng)用81第9章功 能 指 令9.5四則運(yùn)算與邏輯運(yùn)算指令 圖9.20(b)為32位運(yùn)算,執(zhí)行條件X2由OFF ON時(shí),D1、D0D3、D2D7、D6、D5、D4中。源操作數(shù)是32
52、位,目標(biāo)操作數(shù)是64位。當(dāng) D1、D0=200,D3、D2=500時(shí),D7、D6、D5、D4=100 000,最高位為符號(hào)位,0為正值,1為負(fù)值。 如將位組合元件用于目標(biāo)操作數(shù)時(shí),限于K的取值,只能得到低32位的結(jié)果,不能得到高32位的結(jié)果。這時(shí),應(yīng)將數(shù)據(jù)移入字元件再進(jìn)行計(jì)算。 用字元件時(shí),也不可能監(jiān)視64位數(shù)據(jù),只能通過監(jiān)視高32位和低32位。32位運(yùn)算時(shí),Z不能用于D目標(biāo)元件。 9.5.3乘法指令 82第9章功 能 指 令9.5四則運(yùn)算與邏輯運(yùn)算指令 該指令的助記符、指令代碼、操作數(shù)、程序步如表9.17所示。 9.5.4除法指令 表9.17除法指令的要素 指令名稱 助記符 指令代碼位數(shù) 操
53、作數(shù)范圍 程序步 S1 S2 D 除法 DIVDIV(P) FNC23(16/32) K、HKnX、KnY、KnM、KnS、 T、 C、D、V、Z KnY、KnM、KnST、C、D、Z (限于16位運(yùn)算) DIV、DIVP7步DDIV、DDIVP13 步 83第9章功 能 指 令9.5四則運(yùn)算與邏輯運(yùn)算指令 DIV除法指令是將指定的源元件中的二進(jìn)制數(shù)相除,S1為被除數(shù),S2為除數(shù),商送到指定的目標(biāo)元件D中去,余數(shù)送到D的下一個(gè)目標(biāo)元件。如圖9.21所示,它分16位和32位兩種運(yùn)算。9.5.4除法指令 圖9.21DIV指令應(yīng)用 84第9章功 能 指 令9.5四則運(yùn)算與邏輯運(yùn)算指令 圖9.21(a
54、)為16位運(yùn)算。執(zhí)行條件X1由OFFON 時(shí),D0/D1D2。當(dāng)D0=23, D1=4時(shí),D2=5,D3=3。 圖9.21(b)為32位運(yùn)算。執(zhí)行條件X2由OFFON時(shí),D1、D0/D3、D2。商在D5、D4,余數(shù)在D7、D6中。Z不能用于D。 除數(shù)為0時(shí),有運(yùn)算錯(cuò)誤,不執(zhí)行指令。若D指定位元件,得不到余數(shù)。商和余數(shù)的最高位是符號(hào)位。被除數(shù)或除數(shù)中有一個(gè)為負(fù)數(shù),商為負(fù)數(shù);被除數(shù)為負(fù)數(shù)時(shí),余數(shù)為負(fù)數(shù)。 9.5.4除法指令 85第9章功 能 指 令9.5四則運(yùn)算與邏輯運(yùn)算指令 該類指令的助記符、指令代碼、操作數(shù)、程序步如表9.18所示。 9.5.5加1/減1指令 表9.18加1/減1指令的要素 指
55、令名稱 助記符 指令代碼位數(shù) 操作數(shù)范圍 程序步 D 加1 INCINC (P) FNC24 (16/32) KnY、KnM、KnST、C、D、V、 ZINC、INCP3步DINC、DINCP5步 減1 DECDEC (P) FNC25 (16/32) KnY、KnM、KnST、C、D、V、 ZDEC、DECP3步DDEC、DDECP5步 86第9章功 能 指 令9.5四則運(yùn)算與邏輯運(yùn)算指令 該類指令的助記符、指令代碼、操作數(shù)、程序步如表9.18所示。 9.5.5加1/減1指令 表9.18加1/減1指令的要素 指令名稱 助記符 指令代碼位數(shù) 操作數(shù)范圍 程序步 D 加1 INCINC (P)
56、FNC24(16/32) KnY、KnM、KnST、C、D、V、 ZINC、INCP3步DINC、DINCP5步 減1 DECDEC (P) FNC25(16/32) KnY、KnM、KnST、C、D、V、 ZDEC、DECP3步DDEC、DDECP5步 表示連續(xù)執(zhí)行時(shí),各掃描周期的目標(biāo)內(nèi)容都有變化,因此使用時(shí)應(yīng)引起注意。87第9章功 能 指 令9.5四則運(yùn)算與邏輯運(yùn)算指令 INC/DEC的應(yīng)用如圖9.22所示。9.5.5加1/減1指令 圖9.22INC/DEC指令應(yīng)用 88第9章功 能 指 令9.5四則運(yùn)算與邏輯運(yùn)算指令 圖9.22(a)中,當(dāng)X0由OFFON變化時(shí),由D指定的元件D0中的二
57、進(jìn)制數(shù)加1。 若用連續(xù)指令時(shí),每個(gè)掃描周期都加1。16位運(yùn)算時(shí),+32767再加1就變?yōu)?-32768,但標(biāo)志不置位。同樣,在32位運(yùn)算時(shí),+2147483647再加1就變?yōu)?-2147483648,標(biāo)志也不置位。 圖9.22(b)中,當(dāng)X1由OFFON變化時(shí),由D指定的元件D10中的二進(jìn)制數(shù)減1。若用連續(xù)指令時(shí),每個(gè)掃描周期都減1。16位運(yùn)算時(shí),-32768再減1就變?yōu)?32767,但標(biāo)志不置位。同樣,在32位運(yùn)算時(shí),-2147483648再減1就變?yōu)?2147483647,標(biāo)志也不置位。9.5.5加1/減1指令 89第9章功 能 指 令9.5四則運(yùn)算與邏輯運(yùn)算指令 該類指令的助記符、指令代
58、碼、操作數(shù)、程序步如表9.19所示。 9.5.6邏輯運(yùn)算指令 表9.19邏輯運(yùn)算指令的要素 指令名稱 助記符 指令代碼位數(shù) 操作數(shù)范圍 程序步 S1 S2 D 邏輯字與 ANDAND(P) FNC26(16/32) K、HKnX、KnY、KnM、KnS、 T、 C、D、V、Z KnY、KnM、KnST、 C、D、V、ZWAND、WANDP7步 DANDC、DANDP13 步 90第9章功 能 指 令9.5四則運(yùn)算與邏輯運(yùn)算指令 9.5.6邏輯運(yùn)算指令 表9.19邏輯運(yùn)算指令的要素 (續(xù)表)指令名稱 助記符 指令代碼位數(shù) 操作數(shù)范圍 程序步 S1 S2 D 邏輯字或 OROR(P) FNC26(
59、16/32)K、HKnX、KnY、KnM、KnS、 T、 C、D、V、Z KnY、KnM、KnST、 C、D、V、ZWOR、WORP7步DORC、DORP13步 邏輯字異或XORXOR(P) FNC26(16/32)K、HKnX、KnY、KnM、KnS、 T、 C、D、V、Z KnY、KnM、KnST、 C、D、V、ZWXOR、WXORP7步DXORC、DXORP13步 91第9章功 能 指 令9.5四則運(yùn)算與邏輯運(yùn)算指令 9.5.6邏輯運(yùn)算指令 【例9-4】自動(dòng)售貨機(jī)的PLC控制。 (1) 控制要求: 此自動(dòng)售貨機(jī)可投入1元、5元或10元硬幣,投完幣后,確認(rèn),投幣顯示燈滅。 當(dāng)投入的硬幣總值
60、等于或超過12元時(shí),食品指示燈亮;當(dāng)投入的硬幣總值超過15元時(shí),食品、飲料指示燈都亮。 當(dāng)食品指示燈亮?xí)r,按食品按鈕選擇要購(gòu)買的食品,按購(gòu)買鍵確認(rèn)后,食品指示燈滅,出貨口指示燈亮,顯示正出物品,一會(huì)熄滅。 92第9章功 能 指 令9.5四則運(yùn)算與邏輯運(yùn)算指令 9.5.6邏輯運(yùn)算指令 當(dāng)飲料指示燈亮?xí)r,按飲料按鈕選擇要購(gòu)買的飲料,按購(gòu)買鍵確認(rèn)后,飲料指示燈滅,出貨口指示燈亮,顯示正出物品,一會(huì)熄滅。 若投入硬幣總值超過購(gòu)物所需錢數(shù)時(shí),則退幣處的指示燈亮,顯示正在進(jìn)行退幣工作,退完幣后,退幣指示燈熄滅,等待下一次售貨。 93第9章功 能 指 令9.5四則運(yùn)算與邏輯運(yùn)算指令 9.5.6邏輯運(yùn)算指令
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 未來五年新形勢(shì)下夾層玻璃行業(yè)順勢(shì)崛起戰(zhàn)略制定與實(shí)施分析研究報(bào)告
- 未來五年數(shù)字出版軟件開發(fā)企業(yè)縣域市場(chǎng)拓展與下沉戰(zhàn)略分析研究報(bào)告
- 未來五年居民出行服務(wù)企業(yè)數(shù)字化轉(zhuǎn)型與智慧升級(jí)戰(zhàn)略分析研究報(bào)告
- 未來五年白菜類蔬菜企業(yè)數(shù)字化轉(zhuǎn)型與智慧升級(jí)戰(zhàn)略分析研究報(bào)告
- 未來五年工礦物業(yè)管理服務(wù)行業(yè)市場(chǎng)營(yíng)銷創(chuàng)新戰(zhàn)略制定與實(shí)施分析研究報(bào)告
- 2025山東菏澤市定陶區(qū)奇諾雙語實(shí)驗(yàn)學(xué)校教師招聘?jìng)淇碱}庫(kù)完整參考答案詳解
- 2026吉林白城市洮南市面向上半年應(yīng)征入伍高校畢業(yè)生招聘事業(yè)單位人員5人備考題庫(kù)完整答案詳解
- 2025上汽集團(tuán)乘用車鄭州分公司校園招聘?jìng)淇碱}庫(kù)完整答案詳解
- 2026北京市懷柔區(qū)衛(wèi)生健康委員會(huì)所屬事業(yè)單位第一批招聘額度管理人員54人備考題庫(kù)有答案詳解
- 2026云南大學(xué)附屬中學(xué)西山學(xué)校招聘50人備考題庫(kù)及完整答案詳解一套
- 2026云南大理州事業(yè)單位招聘48人參考題庫(kù)必考題
- 校長(zhǎng)政治素質(zhì)自評(píng)報(bào)告
- 2026年孝昌縣供水有限公司公開招聘正式員工備考題庫(kù)及完整答案詳解1套
- 2026年黑龍江職業(yè)學(xué)院?jiǎn)握芯C合素質(zhì)筆試備考試題附答案詳解
- 2025年紹興市諸暨市輔警考試真題附答案解析
- 陜西省渭南市臨渭區(qū)2024-2025學(xué)年四年級(jí)上學(xué)期期末考試數(shù)學(xué)題
- 2025版安全標(biāo)志大全高清
- 智慧工地創(chuàng)新實(shí)踐及其未來發(fā)展趨勢(shì)
- 商住樓項(xiàng)目總體規(guī)劃方案
- 2022儲(chǔ)能系統(tǒng)在電網(wǎng)中典型應(yīng)用
- IABP主動(dòng)脈球囊反搏課件
評(píng)論
0/150
提交評(píng)論