可編程序控制器技術(shù)及應(yīng)用(第2版)課件_第1頁(yè)
可編程序控制器技術(shù)及應(yīng)用(第2版)課件_第2頁(yè)
可編程序控制器技術(shù)及應(yīng)用(第2版)課件_第3頁(yè)
可編程序控制器技術(shù)及應(yīng)用(第2版)課件_第4頁(yè)
可編程序控制器技術(shù)及應(yīng)用(第2版)課件_第5頁(yè)
已閱讀5頁(yè),還剩358頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

2023/2/21

第3章應(yīng)用基本指令編程

應(yīng)用基本指令編程,是PLC應(yīng)用的重要方面。本章主要從介紹編程的方法和技巧開(kāi)始,再?gòu)陌纯臻g原則和時(shí)間原則編程展開(kāi),最后介紹一些編程例子。本章的主要內(nèi)容如下:圖3-1(b)3.1

編寫(xiě)PLC程序的方法和技巧3.2按空間原則編程3.3按時(shí)間原則編程3.4編程實(shí)例2023/2/223·1編寫(xiě)PLC程序的方法和技巧3.1.1編制梯形圖的一些基本要求

1.梯形圖中每一邏輯行從左到右排列,以觸點(diǎn)與左母線(xiàn)聯(lián)接開(kāi)始,以線(xiàn)圈與右母線(xiàn)聯(lián)接結(jié)束。2.邏輯電路并聯(lián)時(shí),宜將串聯(lián)觸點(diǎn)多的電路放在上方,如圖3-1所示。(a)(b)圖3-12023/2/233.邏輯電路串聯(lián)時(shí),宜將并聯(lián)電路放在左方,如圖3-2所示。

(a)(b)圖3-24.線(xiàn)圈輸出時(shí),能用縱接輸出的,就不要用多重輸出,如圖3-3所示。(a)(b)圖3-35.用基本指令編程,不可以出現(xiàn)“雙線(xiàn)圈”現(xiàn)象。

2023/2/24(a)(b)2023/2/253.1.2一些常見(jiàn)電路的PLC程序編寫(xiě)方法

1.閃爍電路

用兩個(gè)定時(shí)器,可以組成一閃爍電路,或稱(chēng)多諧振蕩器,如圖3-5所示。2.延時(shí)斷開(kāi)電路用一扳把開(kāi)關(guān)X0及定時(shí)器T0,可以組成延時(shí)斷開(kāi)電路,如圖3-6所示。2023/2/263.二分頻電路

圖3-7為由定時(shí)器和計(jì)數(shù)器構(gòu)成的二分頻電路。

圖3-7

圖中,初始脈沖M8002使C0復(fù)位清零。接通X0,則T0、T1構(gòu)成脈寬為1s的脈沖發(fā)生器。C0的設(shè)定值K=2,則Y0接通2次,Y1才接通1次,構(gòu)成二分頻電路。如果將C0K2改為C0K4,則構(gòu)成四分頻電路。2023/2/274.長(zhǎng)時(shí)間延時(shí)電路可以用定時(shí)器和計(jì)數(shù)器構(gòu)成長(zhǎng)時(shí)間延時(shí)電路,如圖3-8所示。圖中按下X0后,延時(shí)4個(gè)小時(shí),Y0得電。圖中按下X0后,延時(shí)4個(gè)小時(shí),Y0得電。圖3-82023/2/285.三相異步電動(dòng)機(jī)Y—△降壓起動(dòng)電路圖3-9為三相異步電動(dòng)機(jī)Y—△降壓起動(dòng)電路。Y起動(dòng)時(shí),KM1、KM3得電;延時(shí)后,KM1、KM2得電,為△正常運(yùn)行。電路邏輯如下:電路邏輯電路邏輯的簡(jiǎn)化圖3-92023/2/29按上式,得梯形圖如3-10所示。注意,I/O圖中繼電器KM2、KM3要互鎖。將繼電接觸控制電路改換成PLC控制方式時(shí),注意:編制PLC程序,不一定是對(duì)繼電接觸控制電路的“直譯”,而是按其電路邏輯的變換。因此,編寫(xiě)程序時(shí),要先寫(xiě)出電路邏輯,再進(jìn)行簡(jiǎn)化。(a)I/O分配(b)梯形圖圖3-102023/2/210

如果將繼電接觸電路的常閉按鈕(如FR、SB1),在I/O分配圖中接成常閉形式(如圖3-11a所示),其梯形圖就應(yīng)如圖3-11(b)所示對(duì)電路中聯(lián)鎖的器件(如圖3-10、圖3-11中的KM2、KM3),不僅要在梯形圖中實(shí)現(xiàn)電氣聯(lián)鎖,而且在I/O連接圖中也要實(shí)現(xiàn)電氣聯(lián)鎖。(a)I/O的分配(b)梯形圖圖3-112023/2/2113·2按空間原則編程在很多工程中都會(huì)遇到按空間原則進(jìn)行控制的問(wèn)題。按空間原則編寫(xiě)PLC程序,一般要用到行程開(kāi)關(guān)。行程開(kāi)關(guān)受壓(或受撞擊),其常閉觸點(diǎn)斷開(kāi),而常開(kāi)觸點(diǎn)接通。之后,觸點(diǎn)復(fù)位。編程時(shí)要注意這個(gè)特點(diǎn)。下面,用幾個(gè)例子說(shuō)明按空間原則編程的特點(diǎn)。

例3-1圖3-12為行程開(kāi)關(guān)控制的電動(dòng)機(jī)正反轉(zhuǎn)電路,圖中行程開(kāi)關(guān)SQ1、SQ2作為往復(fù)運(yùn)動(dòng)控制用,而SQ3、SQ4作為極限位置保護(hù)用。試編寫(xiě)PLC控制電路圖。圖3-12

圖3-13a)I/O圖2023/2/212圖3-13為圖3-12的梯形圖.圖中使用了MC/MCR指令。圖3-13b)梯形圖2023/2/213例3-2某組合機(jī)床的液壓動(dòng)力滑臺(tái)的工作循環(huán)如圖3-14所示。電磁閥動(dòng)作順序如表3-1所示。試編寫(xiě)PLC控制程序,要求能實(shí)現(xiàn)單周和連續(xù)工作狀態(tài)及返回原位,延時(shí)10s后又能自動(dòng)循環(huán)工作。圖3-14滑臺(tái)工作循環(huán)圖3-15(a)為I/O分配圖,圖中X0為起動(dòng)按鈕,X4為停止按鈕,X5為單周/連續(xù)選擇開(kāi)關(guān),當(dāng)開(kāi)關(guān)QS閉合,為自動(dòng)循環(huán)工作狀態(tài);當(dāng)開(kāi)關(guān)QS斷開(kāi),為單周工作狀態(tài)。圖3-15(b)為梯形圖。圖中M0為主控點(diǎn)。圖3-15(a)I/O分配圖2023/2/214圖3-15(b)梯形圖如執(zhí)行圖3-15(b)程序,當(dāng)碰擊行程開(kāi)關(guān)SQ2時(shí),YA3閉合,但當(dāng)離開(kāi)行程開(kāi)關(guān)SQ3時(shí),YA3又接通,因此無(wú)法進(jìn)入工進(jìn)狀態(tài)。其原因是在這類(lèi)行程開(kāi)關(guān)中,當(dāng)檔板壓行程開(kāi)關(guān),則常開(kāi)接通,常閉斷開(kāi),而當(dāng)檔板離開(kāi)行程開(kāi)關(guān),則常開(kāi)復(fù)位繼開(kāi),而常閉復(fù)位接通。2023/2/215如果將圖3-15(b)改為圖3-16,利用輔助繼電器M1、M2則能實(shí)現(xiàn)對(duì)圖3-14的控制。但這類(lèi)步進(jìn)控制式過(guò)程,最好用步進(jìn)順控的方法,或用位移位指令SFTL或SFTR來(lái)編程,見(jiàn)后述。圖3-162023/2/2163·3按時(shí)間原則編程很多實(shí)際控制問(wèn)題,都與時(shí)間有關(guān)。按時(shí)間原則編程,要用到定時(shí)器。定時(shí)器的使用,要注意它的時(shí)間設(shè)定及其觸點(diǎn)控制的支路,常有兩種方式,如圖3-17所示。圖中(a)為定時(shí)器與驅(qū)動(dòng)線(xiàn)圈分開(kāi)編程方式;圖(b)為定時(shí)器與驅(qū)動(dòng)線(xiàn)圈混合編程方式,各個(gè)動(dòng)作在一個(gè)邏輯行中完成,使用縱接或多重輸出。對(duì)于含有多個(gè)定時(shí)器的驅(qū)動(dòng)電路,采用圖(a)方式為好。(a)(b)圖3-172023/2/217例3-3有四臺(tái)電機(jī),M1、M2、M3、M4,順序起動(dòng),反順序停止。起動(dòng)時(shí)的順序?yàn)镸1→M2→M3→M4,時(shí)間間隔分別為3s、4s、5s。停止時(shí)的順序?yàn)镸4→M3→M2→M1。時(shí)間間隔分別為5s、4s、3s。為維修方便,每臺(tái)電機(jī)可單獨(dú)起動(dòng),單獨(dú)停止,試畫(huà)出I/O分配圖以及梯形圖。

本題I/O分配圖如圖3-18(a)所示,梯形圖如圖3-18(b)所示。圖中T0、T1、T2為起動(dòng)時(shí)的時(shí)間設(shè)定,T3、T4、T5為停止時(shí)的時(shí)間設(shè)定。當(dāng)按X0接通,M0得電,Y1、Y2、Y3、Y4順序得電,電機(jī)順序起動(dòng)。當(dāng)X1接通時(shí)M1得電,Y1、Y2、Y3、Y4反順序失電,電機(jī)反順序停止。Y1、Y2、Y3、Y4、分別有單獨(dú)檢修的起動(dòng)和停止控制。當(dāng)M0得電時(shí),單獨(dú)檢修電路不能工作。只有當(dāng)M0失電時(shí),單獨(dú)檢修電路才能工作。例如對(duì)電機(jī)Y1,當(dāng)M0失電,M0=1,按X2,Y1得電;按X3,Y1失電。余類(lèi)推。圖3-18a)I/O分配圖2023/2/2182023/2/219圖3-18b)四臺(tái)電動(dòng)機(jī)順序工作控制的梯形圖2023/2/220例3-4電機(jī)M1、M2、M3工作時(shí)序如圖3-19所示。要求(1)按起動(dòng)按鈕,運(yùn)行100個(gè)循環(huán),自動(dòng)停止,(2)之后再按起動(dòng)按鈕,又能自動(dòng)循環(huán)工作。(3)任何時(shí)刻按下停止按鈕,都能順序完成一個(gè)完整的循環(huán)才停止。

圖3-19電機(jī)M1、M2M3、M4工作時(shí)序編程時(shí),先將工作時(shí)序圖的各時(shí)段記作T0、T1、T2,…,再編寫(xiě)程序。由圖3-19知,本題目含定時(shí)器的時(shí)間的設(shè)定,循環(huán),計(jì)數(shù)器的清零、計(jì)數(shù)及復(fù)位。電機(jī)M1一次起停,M2二次起停,M3三次起停。它們的邏輯關(guān)系為2023/2/221按上式及圖3-19時(shí)序圖可編得梯形圖如圖3-20所示。2023/2/222圖3-20梯形圖中的X0為起動(dòng)按鈕,X1為停止按鈕。第18邏輯行中的T6,起到控制循環(huán)的作用。當(dāng)程序運(yùn)行到T6,延時(shí)2s時(shí)間到,T6為OFF,則T0、T1、…T6均失電,T6的常閉觸點(diǎn)又閉合,T0、T1、…,T6又順次得電,開(kāi)始另一循環(huán)。每執(zhí)行T6一次,計(jì)數(shù)一次。當(dāng)C0當(dāng)前值得于100,C0常閉斷開(kāi),程序結(jié)束,但同時(shí)又使計(jì)數(shù)器C0復(fù)位,準(zhǔn)備下一次循環(huán)。程序的第0邏輯行中(M1+T6)是為了響應(yīng)“順序完成一個(gè)完整的循環(huán)才停止”而設(shè)計(jì)。第11邏輯行中(M8002+C0+X0·X2)為C0清零控制,其中X2為當(dāng)X1按下急停后要重新計(jì)數(shù)或繼續(xù)計(jì)數(shù)的切換。2023/2/223例3-5三臺(tái)電機(jī)的工作時(shí)序如圖3-21所示。要求①有停止、起動(dòng)按鈕,完成100個(gè)循環(huán)之后,再按起動(dòng)按鈕,又能重新循環(huán)工作;②用計(jì)數(shù)器來(lái)控制時(shí)間。圖3-21電機(jī)M1、M2、M3的工作時(shí)序本題的關(guān)鍵是用計(jì)數(shù)器來(lái)控制時(shí)間。用計(jì)數(shù)器來(lái)完成時(shí)間的控制,一般先要設(shè)置一個(gè)一定時(shí)間的連續(xù)脈沖,然后再對(duì)此脈沖的個(gè)數(shù)進(jìn)行計(jì)數(shù),從而達(dá)到時(shí)間控制的目的。圖3-22為編制的梯形圖。梯形圖中X0為起動(dòng)按鈕,X2為停止按鈕。T0產(chǎn)生一連續(xù)5s的脈沖,C1、C2、C3、C4分別對(duì)脈沖個(gè)數(shù)計(jì)數(shù),利用脈沖個(gè)數(shù)再依據(jù)工作時(shí)序圖對(duì)Y1、Y2、Y3控制。C0為對(duì)循環(huán)次數(shù)控制。當(dāng)C0達(dá)到設(shè)完值,循環(huán)結(jié)束。注意圖中對(duì)計(jì)數(shù)器清零復(fù)位采用三種清零方式:起始清零,達(dá)到計(jì)數(shù)設(shè)完值復(fù)位清零及急停復(fù)位清零,即RSTC0=M8002+C0+X22023/2/224圖3-222023/2/2253·4編程例子試設(shè)計(jì)一聲光報(bào)警電路,要求按起動(dòng)按鈕后,報(bào)警燈亮0.5s,滅0.5s,閃爍100次。這段時(shí)間蜂鳴器一直在響。100次到達(dá),停5s后又重復(fù)上述過(guò)程,如此反復(fù)三次,結(jié)束。之后再按起動(dòng)按鈕,又能進(jìn)行上述工作。2023/2/226圖3-25球磨機(jī)工作的I/O圖和梯形圖2023/2/227例3-8十字路口交通燈控制,如圖3-26所示。

控制要求如下(1)車(chē)行道:橫向綠(G)燈亮30s→綠燈閃3次,各次1s→黃燈(Y)亮2s→紅燈(R)亮35s;縱向紅燈(R)亮35s→綠燈(G)亮30s→綠燈閃3次,每次1s→黃燈亮2s。

(2)人行道:橫向綠燈(G)亮30s→綠燈閃5次,每次1s→紅燈(R)亮35s;

縱向紅燈(R)亮35s→綠燈(G)亮30s→綠燈閃5次,每次1s。2023/2/228按題目要求得交通燈的工作時(shí)序如圖3-27所示。圖3-27

由交通燈工作時(shí)序圖,可編制梯形圖如圖3-28所示。梯形圖中采用了MC、MCR語(yǔ)句,作為主控。第6行至第35行為時(shí)間的設(shè)定,其中T6、T7產(chǎn)生連續(xù)1s的脈沖。第39行至第49行為車(chē)橫道G、Y、R燈,第53行至第64行為車(chē)縱道R、G、Y燈。第67行為人行橫道綠燈。第74行為人行縱道綠燈。第81行為報(bào)警燈,即當(dāng)車(chē)行橫道縱道同為紅燈或綠燈,人行橫道和縱道同為紅燈或綠燈,報(bào)警。2023/2/229

注意第39行、第57行、第67行和第74行燈的連續(xù)得電與閃爍的編程。其中第39行(M0·T0)為連續(xù)得電控制,(T0·T6·T1)為閃爍的控制。2023/2/2302023/2/231例3-9電鍍生產(chǎn)線(xiàn)的PLC控制設(shè)該生產(chǎn)線(xiàn)由電鍍槽、回收槽、清水槽,行車(chē)線(xiàn),升降吊鉤,行程開(kāi)關(guān)等組成,如圖3-29所示。圖中A為原位,工件放于此處。工件與吊鉤掛好之后,使吊鈞上升。上升到頂,碰行程開(kāi)關(guān)SQ2,上升停止;行車(chē)右行,碰SQ3,吊鉤下降;到最低位碰SQ1,工件停于電鍍槽中,電鍍300s。吊鉤上升,碰SQ2,停30s讓鍍液滴下。之后,右行到SQ4,吊鉤下降,碰SQ1,在回收槽中停40s;吊鉤上升,碰SQ2,停20s。之后,右行到SQ5,吊鉤下降,碰SQ1,在清水槽中停30s;吊鉤上升,碰SQ2,停20s。之后,右行,碰SQ6,吊鉤下降,碰SQ1,將已鍍工件放在B處,運(yùn)走。然后吊鉤上升,碰SQ2,行車(chē)左行,退回最左邊碰SQ7,吊鉤下降,回到A位置。然后再掛工件進(jìn)行第二次循環(huán)工作。圖3-29電鍍生產(chǎn)線(xiàn)示意圖2023/2/232由上述生產(chǎn)流程要求,選用PLC的I/O分配如圖3-30所示

電鍍生產(chǎn)線(xiàn)程序如圖3-31所示。圖中用定時(shí)器T0、T1、T2、T3設(shè)定各步停止等待的時(shí)間,而T4為已鍍工件放到B位置卸下的時(shí)間。Y1為吊鉤升,Y2吊鉤降,Y3右行,Y4左行。在Y1的控制中,除起動(dòng)按X10上升以外,其余均是當(dāng)T0、T1、T2、T4延時(shí)到達(dá)時(shí)上升。Y3右行,也是條件右行。例如第二次右行是當(dāng)T1到達(dá)時(shí)開(kāi)始,右行碰SQ4(X4)停止。SQ4一旦被碰合,立即驅(qū)動(dòng)吊鉤下降(Y2動(dòng)作),到底端碰SQ1(X1),下降停止。圖3-30I/O分配圖2023/2/2332023/2/2342023/2/235第4章步進(jìn)順序控制4·1步進(jìn)階梯指令和步進(jìn)順控狀態(tài)轉(zhuǎn)移圖4·2單流程的步進(jìn)順控4·3分支流程的步進(jìn)順控4·4步進(jìn)順控的編程例子2023/2/2364·1步進(jìn)階梯指令和步進(jìn)順序狀態(tài)轉(zhuǎn)移圖4.1.1步進(jìn)順控指令

步進(jìn)順控指令有兩個(gè):步進(jìn)階梯指令STL和返回指令RET。指令的助記符及功能如表4-1所示:4.1.2狀態(tài)轉(zhuǎn)移圖狀態(tài)轉(zhuǎn)移圖又稱(chēng)為狀態(tài)流程圖,它是一種表明步進(jìn)順控系統(tǒng)的控制過(guò)程功能和特性的一種圖形。圖4-1為一簡(jiǎn)單的狀態(tài)轉(zhuǎn)移圖。圖中S0為初始狀態(tài),用雙線(xiàn)方框表示。它由M8002驅(qū)動(dòng)。當(dāng)PLC由STOP→RUN切換瞬間,初始化脈沖M8002使S0置1。其它狀態(tài)元件用方框表示。方框間的線(xiàn)段表示狀態(tài)轉(zhuǎn)移的方向,習(xí)慣上由上至下或從左到右。線(xiàn)段間的短橫線(xiàn)表示轉(zhuǎn)移的條件。與狀態(tài)框連接的橫線(xiàn)和線(xiàn)圈等,表示狀態(tài)驅(qū)動(dòng)負(fù)載。圖4-1狀態(tài)轉(zhuǎn)移圖2023/2/2374.1.3步進(jìn)階梯圖與指令表

圖4-1的步進(jìn)階梯圖與指令表如圖4-2所示。2023/2/238圖4-2從STLS0到RET為步進(jìn)順序控制部分,稱(chēng)為SFC,而第0行與最末一行END為基本邏輯指令梯形圖部份。

返回指令RET接于最末一狀態(tài)元件子母線(xiàn)下,單獨(dú)成一邏輯行。圖4-1圖4-2的原理如下:當(dāng)PLC開(kāi)始運(yùn)行(RUN),初始脈沖M8002使初態(tài)S0置1。當(dāng)按起動(dòng)按鈕X0,狀態(tài)從S0轉(zhuǎn)移到S20,S20置1,而S0復(fù)位到零。S20狀態(tài)為1,驅(qū)動(dòng)Y0。當(dāng)轉(zhuǎn)移條件X1接通,狀態(tài)轉(zhuǎn)移到S21,S21置1,而S20復(fù)位為零,Y0線(xiàn)圈失電。S21狀態(tài)為1,驅(qū)動(dòng)Y1及定時(shí)器T1,延時(shí)3s到,轉(zhuǎn)移條件T1常開(kāi)觸點(diǎn)接通,狀態(tài)轉(zhuǎn)移到S22,而S21復(fù)位為零,Y1、T1失電。S22狀態(tài)為1,驅(qū)動(dòng)Y2。當(dāng)轉(zhuǎn)移條件X2接通,狀態(tài)轉(zhuǎn)移到S23,而S22復(fù)位為零,Y2失電。S23狀態(tài)為1,驅(qū)動(dòng)Y3及T2。T2延時(shí)時(shí)間5s到,T2常開(kāi)觸點(diǎn)閉合,狀態(tài)轉(zhuǎn)移返回S0,初始化狀態(tài)S0又置位。當(dāng)X0又接通,另一循環(huán)動(dòng)作開(kāi)始。2023/2/2394.1.4SFC編程注意的問(wèn)題

應(yīng)用SFC編程,要注意以下幾個(gè)問(wèn)題:(1)在SFC狀態(tài)轉(zhuǎn)移中,狀態(tài)的地址號(hào)不能重復(fù)使用。例如,不能出現(xiàn)兩個(gè)或兩個(gè)以上的S20或S21等。每步用一個(gè)狀態(tài)元件號(hào)。(2)STL觸點(diǎn)右方,可以看成提供一狀態(tài)子母線(xiàn)。此子母線(xiàn)可直接通過(guò)觸點(diǎn)完成驅(qū)動(dòng)或置位功能。與子母線(xiàn)連接的觸點(diǎn)用LD、LDI指令。(3)在不同步之間,可輸出同一個(gè)軟元件(如Y、M等),如圖4-3(a)所示。線(xiàn)圈Y1、Y2可以在相鄰的狀態(tài)或不相鄰的狀態(tài)中輸出。但定時(shí)器卻不能在相鄰的狀態(tài)中輸出,如圖4-3(b)所示。因?yàn)樵谙噜彔顟B(tài)輸出的定時(shí)器相當(dāng)于其定時(shí)線(xiàn)圈通電不斷開(kāi),當(dāng)前值不能復(fù)位。但如T1在不相鄰的狀態(tài)中輸出,則仍然是允許的。(a)線(xiàn)圈Y、M可以連續(xù)輸出圖4-32023/2/240圖4-3(b)定時(shí)器T不能連續(xù)輸出

(4)在STL狀態(tài)子母線(xiàn)的輸出,要滿(mǎn)足“先驅(qū)動(dòng),后轉(zhuǎn)移”的原則,因此不能連成如圖4-4(a)中形式,而要連成如圖4-4(b)的形式。圖4-4STL狀態(tài)后母線(xiàn)的輸出2023/2/241

(5)在狀態(tài)內(nèi)使用基本邏輯指令,除了MC/MCR不能使用,MPS/MRD/MPP的使用應(yīng)注意者外,其余均可使用。如圖4-5所示,在STL狀態(tài)子母線(xiàn)直接并聯(lián)輸出觸點(diǎn)線(xiàn)圈,連續(xù)使用LD指令則可。但在觸點(diǎn)X0后并聯(lián)輸出觸點(diǎn)線(xiàn)圈,則要用到MPS/MRD/MPP指令。圖4-52023/2/2424·2單流程的步進(jìn)順控

單流程步進(jìn)順控是指其狀態(tài)轉(zhuǎn)移圖從開(kāi)始到結(jié)束一步一步轉(zhuǎn)移和執(zhí)行的。工程上大多數(shù)的工位控制,都屬于這種情況。解決這類(lèi)問(wèn)題,通常是根據(jù)工程或題設(shè)條件,畫(huà)出狀態(tài)轉(zhuǎn)移圖,再編寫(xiě)步進(jìn)梯形圖,檢查其邏輯是否符合題設(shè)條件。

例4-1四臺(tái)電機(jī)M1、M2、M3、M4順序控制。起動(dòng)時(shí)按M1→M2→M3→M4順序起動(dòng),時(shí)間間隔分別為3s、4s、5s。停止時(shí),按M4→M3→M2→M1順序停止,時(shí)間間隔分別為5s、4s、3s。起動(dòng)時(shí)如發(fā)現(xiàn)某臺(tái)電機(jī)有故障,則按停止按鈕,這臺(tái)電機(jī)立即停止,其他電機(jī)按反順序停止。例如發(fā)現(xiàn)M3起動(dòng)過(guò)程有故障,按停止按鈕,M3立即停止,延時(shí)4s以后,M2停止,再延時(shí)3s,M1停止。試用步進(jìn)順控方法編程。

圖4-6為狀態(tài)轉(zhuǎn)移圖.當(dāng)起動(dòng)正常時(shí),四臺(tái)電動(dòng)機(jī)按Y1→Y2→Y3→Y4順序和設(shè)定的時(shí)間間隔起動(dòng)。當(dāng)正常停止時(shí),按X1,則四臺(tái)電動(dòng)機(jī)按Y4→Y3→Y2→Y1順序和設(shè)定的時(shí)間間隔停止。

2023/2/243圖4-6四臺(tái)電動(dòng)機(jī)起動(dòng)停止?fàn)顟B(tài)轉(zhuǎn)移圖2023/2/2442023/2/245圖4-7四臺(tái)電動(dòng)機(jī)順序起動(dòng)步進(jìn)梯形圖2023/2/246

例4-2設(shè)計(jì)一聲光報(bào)警電路。要求按起動(dòng)按鈕后,報(bào)警燈亮0.5s,熄0.5s,工作100次。這段時(shí)間蜂鳴器一直在響。100次到達(dá),停10s之后重復(fù)上述過(guò)程。如此反復(fù)三次,結(jié)束。之后。再按起動(dòng)按鈕,又能進(jìn)行工作。本例要用到計(jì)數(shù)器、定時(shí)器,其中T0、T1組成閃爍電路,閃爍周期為1s。T2用來(lái)設(shè)定兩次報(bào)警的中間停止時(shí)間。C0用來(lái)記錄閃爍次數(shù),而C1用來(lái)記錄循環(huán)的次數(shù)。X0為起動(dòng)按鈕,Y0為報(bào)警燈,Y1為蜂鳴器。圖4-8為報(bào)警電路的工作流程圖。圖4-8中,初始脈沖使初態(tài)S0置1,對(duì)C1清零。按起動(dòng)按鈕X0,狀態(tài)轉(zhuǎn)移到S20。警燈Y0亮,置蜂鳴器Y1響。延時(shí)5s到,狀態(tài)轉(zhuǎn)移到S21。S20復(fù)位,燈熄滅。S21置1,C0計(jì)數(shù)1次。T1延時(shí)時(shí)間到,而C0未達(dá)到設(shè)定100次,狀態(tài)向上跳到S20,使警燈又亮5s,之后熄滅5s。一直到C0達(dá)到100次,狀態(tài)轉(zhuǎn)移到S22,蜂鳴器停止,同時(shí)Y1=1,驅(qū)動(dòng)狀態(tài)轉(zhuǎn)移到S23,延時(shí)10s,C1計(jì)數(shù)1次,并對(duì)C0清零。延時(shí)10s時(shí)間到,但C1未達(dá)到設(shè)定值3次,狀態(tài)跳轉(zhuǎn)到S20進(jìn)行第二次循環(huán)。一直到C1達(dá)3次。T2延時(shí)時(shí)間到,狀態(tài)返回初態(tài)S0,過(guò)程結(jié)束。圖4-9為報(bào)警電路的步進(jìn)階梯圖。圖4-8報(bào)警電路狀態(tài)轉(zhuǎn)移圖2023/2/2472023/2/248圖4-9報(bào)警電路步進(jìn)階梯圖

圖4-9中,S20和S21兩狀態(tài)構(gòu)成了閃爍電路。注意由兩狀態(tài)元件構(gòu)成的閃爍電路與由兩定時(shí)器構(gòu)成的閃爍電路的不同,以及狀態(tài)間的跳轉(zhuǎn)與轉(zhuǎn)移。2023/2/2494·3分支流程的步進(jìn)順控4.3.1選擇性分支選擇性分支流程的特點(diǎn)是各分支狀態(tài)的轉(zhuǎn)移由各自條件選擇執(zhí)行。不能進(jìn)行兩個(gè)或兩個(gè)以上的分支狀態(tài)同時(shí)轉(zhuǎn)移。圖4-10為選擇性分支流程圖

從圖中看到,一開(kāi)機(jī),初始脈沖M8002使初態(tài)置1。接通起動(dòng)按鈕,狀態(tài)轉(zhuǎn)移到S20,使S20置1,驅(qū)動(dòng)Y0,同時(shí)等待狀態(tài)轉(zhuǎn)移。當(dāng)X1閉合,狀態(tài)轉(zhuǎn)移到S21;當(dāng)X11閉合,狀態(tài)轉(zhuǎn)移到S31;當(dāng)X21閉合,狀態(tài)轉(zhuǎn)移到S41。但X1、X11、X21不能同時(shí)閉合,它們可以是機(jī)械聯(lián)鎖或是電氣聯(lián)鎖。當(dāng)某一分支條件滿(mǎn)足,某一分支工作。例如,當(dāng)X1閉合,S21置1,驅(qū)動(dòng)Y1。當(dāng)條件X2滿(mǎn)足閉合,狀態(tài)轉(zhuǎn)移到S22,Y2得電,當(dāng)X3閉合,狀態(tài)轉(zhuǎn)移到S50。同理,當(dāng)X11或X21閉合,則流程沿第二分支或第三分支進(jìn)行。選擇性分支流程的特點(diǎn)是(1)分支時(shí)是先分支后條件;(2)會(huì)合時(shí)是先條件后匯合。(3)各分支不能同時(shí)進(jìn)行。圖4-9選擇性分支流程圖2023/2/2502023/2/251圖4-11選擇性分支的步進(jìn)階梯圖注意圖中第7步是選擇性分支的“分”。順序?qū)憽癝ETS21”、“SETS31”“SETS41”。第18步是對(duì)SETS21的響應(yīng),第28步是對(duì)SETS31的響應(yīng),第38步是對(duì)SETS41的響應(yīng)。第48步是選擇性分支的“合”。2023/2/2524.3.2并行性分支并行性分支的特點(diǎn)是當(dāng)條件滿(mǎn)足,源的狀態(tài)同時(shí)向各并行支路轉(zhuǎn)移。各分支完成各自的狀態(tài)轉(zhuǎn)移,才匯合向下一狀態(tài)轉(zhuǎn)移。圖4-12為并行性分支的流程圖。

從圖可以看到,當(dāng)初始脈沖M8002使S0置1后,接通X0,則狀態(tài)平行地同時(shí)轉(zhuǎn)移到S20、S30、S40。程序先對(duì)S20響應(yīng)(STLS20),再對(duì)S30響應(yīng),再對(duì)S40響應(yīng)。當(dāng)這三個(gè)并行性分支同時(shí)達(dá)到各支路的最后一個(gè)狀態(tài),也就是說(shuō),當(dāng)STLS21、STLS31、STLS41同時(shí)為1時(shí),接通按鈕X31,狀態(tài)才會(huì)轉(zhuǎn)移到S50。也就是說(shuō),并行性分支的特點(diǎn)是分支時(shí)先條件后分;匯合時(shí)先合后條件。圖4-11選擇性分支的流程圖圖4-13為其步進(jìn)階梯圖。2023/2/253圖4-132023/2/2544.3.3多層次的分支結(jié)構(gòu)多層次的分支結(jié)構(gòu)是指從選擇性分支轉(zhuǎn)移到另一個(gè)選擇性分支,或從并行性分支轉(zhuǎn)移到另一個(gè)并行性分支,或從選擇性分支轉(zhuǎn)移到并行性分支,或從并行性分支轉(zhuǎn)移到選擇性分支。發(fā)生這種轉(zhuǎn)移的時(shí)候,在兩層之間必須有一作用狀態(tài)元件。如果程序中缺此狀態(tài)元件,那就應(yīng)選擇取一個(gè)編號(hào)偏離得較大的狀態(tài)元件作為虛擬態(tài)。以保證兩層分支電路的匯合與分支之間有一作用元件,如圖4-14所示。圖中S100即為虛擬態(tài),它是選擇性分支的作用元件,又是并行性分支的起始元件,滿(mǎn)足選擇性分支的“合”條件和并行性分支的“分”條件。圖4-14兩層分支的流程圖2023/2/2552023/2/2562023/2/257圖4-15兩層分支狀態(tài)的步進(jìn)階梯圖

程序中從第7行到第45行是選擇性分支,用S100作為虛擬作用狀態(tài)元件。從第48行到第77行是并行性分支。只有當(dāng)三個(gè)分支同時(shí)到達(dá)最后一個(gè)狀態(tài)元件(即S24、S34、S44均置1,且X6為ON)才匯合。滿(mǎn)足并行性分支的匯合原則。2023/2/2584.3.4狀態(tài)間的跳轉(zhuǎn)和復(fù)位從一個(gè)狀態(tài)向上或向下的直接轉(zhuǎn)移,或向系列外的轉(zhuǎn)移,均稱(chēng)為跳轉(zhuǎn)。如圖4-16(a)、(b)(c)所示。(a)向下跳轉(zhuǎn)(b)向上跳轉(zhuǎn)(c)向系列外跳轉(zhuǎn)圖4-16狀態(tài)間的跳轉(zhuǎn)圖4-17狀態(tài)元件的條件復(fù)位當(dāng)條件滿(mǎn)足,也可對(duì)一個(gè)狀態(tài)元件或多個(gè)狀態(tài)元件復(fù)位。如圖4-17所示。圖中(a)為對(duì)單狀態(tài)元件的復(fù)位,用RST;(b)為對(duì)多個(gè)狀態(tài)元件的復(fù)位,用ZRST。ZRST為成批復(fù)位指令。2023/2/2594.3.5利用同一信號(hào)進(jìn)行狀態(tài)轉(zhuǎn)移

將上升沿檢測(cè)指令作用于特殊輔助繼電器M2800,則可以利用同一信號(hào)高效率地進(jìn)行狀態(tài)轉(zhuǎn)移。M2800的特性是當(dāng)M2800線(xiàn)圈得電后,能使具備通電條件且離線(xiàn)圈最近的一個(gè)觸點(diǎn)接通,如圖4-18所示。圖4-18中,初始脈沖M8002使S0置1,Y0得電。當(dāng)X0第1次接通,M2800線(xiàn)圈得電,第8行M2800上升沿脈沖使S20置1,Y1得電。當(dāng)X0第2次接通,第14行M2800上升沿脈沖使S21置1,Y2得電。按此規(guī)律,S20、S21、S22…將順次置1,Y0、Y1、Y2,…將順次被驅(qū)動(dòng)。2023/2/2604.3.6步進(jìn)順控中連續(xù)、單周和單步的運(yùn)行控制

步進(jìn)順控中的連續(xù)控制是指程序周而復(fù)始地循環(huán)工作,單周控制是指每執(zhí)行完一次循環(huán)動(dòng)作后便停止,單步是指每按一次單步執(zhí)行按鈕,程序便執(zhí)行一步。要完成這種控制,常要用到下列下列特殊輔助繼電器:M8000(RUN監(jiān)視),M8040(禁止轉(zhuǎn)移),M8046(STL有效),M8047(STL動(dòng)作)。

圖4-19為步進(jìn)順控中連續(xù)、單周和單步的運(yùn)行控制例子。圖中Y0、Y1、Y2、Y3為噴水頭的控制線(xiàn)圈。

圖(a)為流程圖,

圖(b)為步進(jìn)階梯圖。圖中X0為起動(dòng)按鈕,X1、X2為扳把開(kāi)關(guān)。按X0,當(dāng)X1=OFF,X2=OFF時(shí)為連續(xù);當(dāng)X1=ON,X2=OFF為單周,每周要按X0;當(dāng)X2=ON為單步,每執(zhí)行一步,按一次X0。圖4-17a)流程圖2023/2/261

圖4-19梯形圖2023/2/2624·4步進(jìn)順控的編程例子

例4-3彩燈工作。要求:①紅燈亮1s,之后紅燈滅,綠燈亮2s,之后綠燈滅,黃燈亮3s;②之后,三燈全亮,3s后全滅;③停1s后,步驟①、②循環(huán)5次;④之后紅綠燈閃爍,亮1s、滅1s;紅燈亮?xí)r、綠燈滅、紅燈滅時(shí)、綠燈亮,閃爍10次;⑤之后,綠黃燈閃爍,過(guò)程與④相同;⑥停2s之后,再返回①,循環(huán)5次。用步進(jìn)順控編程。

本例中有3個(gè)輸出:Y1(紅燈)Y2(綠燈)Y3(黃燈)按彩燈工作要求,可得圖4-20流程圖。圖中從S20至S24為第一次循環(huán),用C0記錄其循環(huán)次數(shù)。從S25至S26為第二次循環(huán)———紅綠燈閃爍。用C1記錄循環(huán)次數(shù)。從S27至S28為第三次循環(huán)。用C2記錄其循環(huán)次數(shù)10次,大循環(huán)5次用C3記錄,以S29驅(qū)動(dòng)。當(dāng)T9到達(dá),而C3未達(dá)5次,程序轉(zhuǎn)向到S20,進(jìn)行第二次大循環(huán)。當(dāng)T9到達(dá),而C3達(dá)到設(shè)定的5次,則返回S0初態(tài)。2023/2/263圖4-20彩燈流程圖2023/2/2642023/2/2652023/2/266圖4-21彩燈工作步進(jìn)梯形圖2023/2/267例4-4十字路口交通燈的步進(jìn)控制

十字路口交通燈控制的示意圖和時(shí)序圖見(jiàn)圖3-26和圖3-27示。本題應(yīng)用SFC方法來(lái)編寫(xiě)。令車(chē)道為一支,人行道為一支,它們構(gòu)成并行性分支。

其流程圖如圖4-22所示。初始脈沖M8002對(duì)初態(tài)S0置1后,接通X1,則狀態(tài)同時(shí)轉(zhuǎn)移到S20和S30。S20置1,驅(qū)動(dòng)車(chē)橫道綠燈G,車(chē)縱道S2燈R,延時(shí)30s,狀態(tài)轉(zhuǎn)移到S21。S21和S22構(gòu)成閃爍電路,綠燈閃爍3次,狀態(tài)轉(zhuǎn)移到S23,車(chē)橫黃燈Y亮2s。之后,狀態(tài)轉(zhuǎn)移到S24,使車(chē)縱道紅燈R熄滅,車(chē)縱道綠燈G亮,車(chē)橫道紅燈R亮,延時(shí)30s后,轉(zhuǎn)向回到S21,車(chē)縱道綠燈閃爍3次,之后,狀態(tài)轉(zhuǎn)移到S25,車(chē)縱道黃燈亮2s。

同理,S30置1,驅(qū)動(dòng)人橫道綠燈G、人縱道紅燈R。延時(shí)30s后,人橫道綠燈閃爍5次。之后,狀態(tài)轉(zhuǎn)移到S33,使人縱道紅燈R熄滅,人縱道綠燈G亮,人橫道紅燈R亮。延時(shí)300s,轉(zhuǎn)向回到S32,人縱綠燈G閃爍5次。之后,狀態(tài)轉(zhuǎn)移到S34,使人縱道綠燈G熄滅。

兩并行支路匯合,返回狀態(tài)S0。此時(shí)由于X1已閉合,又同時(shí)驅(qū)動(dòng)S20和S30,并令其置1,開(kāi)始另一次循環(huán)2023/2/268圖4-22十字路口交通燈SFC流程圖2023/2/269十字路口交通燈的步進(jìn)梯形圖如圖4-23所示。2023/2/2702023/2/271圖4-23十字路口交通燈步進(jìn)梯形圖2023/2/272例4-5大小鐵球分類(lèi)傳送系統(tǒng)(本題取材于FX2N編程手冊(cè))

大小鐵球分類(lèi)傳送系統(tǒng)如圖4-24所示。圖中CY1為電磁鐵機(jī)械臂,它可以下降、上升、左行、右行、吸引和釋放。機(jī)械臂左右移動(dòng)用電動(dòng)機(jī)M驅(qū)動(dòng)、電磁鐵上限位和下限位分別由行程開(kāi)關(guān)SQ3和SQ2控制,左限位行程開(kāi)關(guān)為SQ1。當(dāng)機(jī)械臂下降未達(dá)低限,行程開(kāi)關(guān)SQ2處于斷開(kāi)位置,吸引大球。當(dāng)機(jī)械臂下降到達(dá)低位,SQ2常開(kāi)閉合,吸引小球。圖4-24大小鐵球分類(lèi)傳送系統(tǒng)2023/2/273大小鐵球分類(lèi)傳送系統(tǒng)的I/O分配如圖4-25所示。

大小鐵球分類(lèi)傳送的狀態(tài)轉(zhuǎn)移圖如圖4-26所示。圖中采用了選擇性分支方式設(shè)計(jì)。小鐵球?yàn)橐恢?,大鐵球?yàn)橐恢?,兩支?lián)鎖。當(dāng)Y0得電下降,SQ2受碰擊,使X2閉合,則吸引小鐵球。當(dāng)X2未閉合,而下降計(jì)時(shí)T0時(shí)間到,則吸引大鐵球。鐵球在傳送過(guò)程中,電磁鐵不允許釋放,只有待機(jī)械臂到達(dá)收集鐵球容器位置并下降至低位,才允許釋放。為此,使用了SET和RST指令。圖4-25I/O圖圖4-26狀態(tài)轉(zhuǎn)移圖2023/2/274圖4-27為大小鐵球分類(lèi)的步進(jìn)梯形圖2023/2/275圖4-27大小鐵球分類(lèi)傳送的步進(jìn)梯形圖2023/2/276例4-6用步進(jìn)梯形圖的方法編寫(xiě)實(shí)現(xiàn)廣告牌字體閃光控制,分別用Y0,Y1,Y2,Y3,Y4,Y5控制燈光,使“歡迎你好朋友”六個(gè)字明亮閃爍,控制流程如下表。表中+為得電,空白為不得電。圖4-28為例4-6的步進(jìn)梯形圖。當(dāng)PLC上電后,初始脈沖使S0置1,按起動(dòng)按鈕X0,狀態(tài)轉(zhuǎn)移到S20,使Y0得電,延時(shí)1s后,使S21置位,之后,順次使Y1、Y2、Y3、Y4、Y5得電1s。當(dāng)運(yùn)行到第55行,使Y0~Y5同時(shí)得電,為了節(jié)省程序步,因此使用了數(shù)據(jù)傳送指令MOV,將十進(jìn)制數(shù)K63送K2Y0(即將63送到從Y7~Y0共8個(gè)軟元件中),使Y0~Y5得電。M0V指令的意義和用法見(jiàn)第5章。2023/2/2772023/2/2782023/2/279運(yùn)行圖4-28程序,當(dāng)執(zhí)行到S29狀態(tài)T9接通時(shí),程序返回到S20狀態(tài),循環(huán)不斷。如何使程序停止?一般在步進(jìn)順控中要使程序停止,必須設(shè)置一個(gè)出口,如圖4-29所示。圖中增加了一個(gè)扳把開(kāi)關(guān)X3。當(dāng)(T9·X3)為1,狀態(tài)轉(zhuǎn)到S30,執(zhí)行ZRST指令,使S20~S30成批復(fù)位,程序結(jié)束。圖4-29步進(jìn)梯形圖的出口2023/2/280

第5章應(yīng)用指令5·1應(yīng)用指令概述5·2程序流程指令(FNC00~09)5·3傳遞及比較指令(FNC10~19)5·4算術(shù)及邏輯運(yùn)算指令(FNC20~29)5·5循環(huán)及移位指令(FNC30~39)5·6數(shù)據(jù)處理指令(FNC40~49)5·7高速處理指令(FNC50~59)5·8方便指令(FNC60~69)5·9外部I/O設(shè)備指令(FNC70~79)5·10外部串聯(lián)接口設(shè)備控制指令(FNC80~89)5·11浮點(diǎn)運(yùn)算指令(FNC110~147)5·12時(shí)鐘運(yùn)算指令(FNC160~169)5·13格雷碼變換指令(FNC170~171)5·14觸點(diǎn)比較指令(FNC224~246)5.15編程例子2023/2/281FX系列應(yīng)用指令可分為程序流向控制指令,數(shù)據(jù)傳送和比較指令,算術(shù)與邏輯運(yùn)算指令,移位和循環(huán)指令,數(shù)據(jù)處理指令,方便指令,及外部輸入輸出處理和通訊指令等。FX系列的應(yīng)用指令冠以FNC符號(hào)。例如FX0S系例PLC的應(yīng)用指令編號(hào)為FNC00-FNC67;FX0N系列PLC的應(yīng)用指令編號(hào)為FNC00-FNC79;FX2N系列PLC的應(yīng)用指令編號(hào)為FNC00-FNC246,見(jiàn)附錄A所示。本章以FX2N系列PLC為例,介紹一些應(yīng)用得較為廣泛的應(yīng)用指令。5.1應(yīng)用指令概述應(yīng)用指令由指令助記符、功能號(hào)、操作數(shù)等組成。在簡(jiǎn)易編程器中輸入應(yīng)用指令時(shí),是以功能號(hào)輸入的,在編程軟件中是以指令助記符輸入的。應(yīng)用指令的一般形式如表5-1所示。2023/2/282說(shuō)明如下:1.助記符和功能號(hào)如上表所示,助記符MOV(傳送數(shù)據(jù))的功能號(hào)為FNC12。每一助記符表示一種應(yīng)用指令,每一指令都有對(duì)應(yīng)的功能號(hào)。2.操作元件(或稱(chēng)操作數(shù))有些應(yīng)用指令只有助記符,但大多數(shù)應(yīng)用指令在助記符之后還帶有1~5個(gè)操作元件。它的組成部份有:(1)源操作元件(S.),有時(shí)源不止一個(gè),例如有(S1.)、(S2.),S后面有(.),表示可使用變址功能。(2)目標(biāo)操作元件(D.),如果不止一個(gè)目標(biāo)操作元件時(shí),用(D1.)、(D2.)表示。(3)K、H為常數(shù),K表示十進(jìn)制數(shù),H表示十六進(jìn)制數(shù)。(4)功能助記符后有符號(hào)P的,例如MOVP,表示具有脈沖執(zhí)行功能。脈沖執(zhí)行功能是指允許相應(yīng)指令被控制輸入觸點(diǎn)的上升沿所驅(qū)動(dòng)。該指令在一個(gè)掃描周期內(nèi)執(zhí)行。(5)應(yīng)用指令助記符前有符號(hào)D的,例如DMOV,表示處理32位數(shù)據(jù),而不標(biāo)D的,只處理16位數(shù)據(jù)。例如(6)在本章以后的敘述中,用M0V(P)表示既可執(zhí)行MOV,又可執(zhí)行MOVP指令;用DM0V(P)表示既可執(zhí)行DMOV,又可執(zhí)行DMOVP指令。2023/2/2833.位軟元件和字軟元件只有ON/OFF狀態(tài)的元件,稱(chēng)為位軟元件,如X、Y、M、S等;其它可處理數(shù)字?jǐn)?shù)據(jù)的元件,例T、C、D、V、Z等,稱(chēng)為字軟元件。但位軟元件由Kn加首位位軟元件號(hào)的組合,也可以組成字軟元件。位軟元件以4位為一組組合成單元。K1~K4為16位運(yùn)算,K1~K8為32位運(yùn)算。例如K1X0,表示以低位X0開(kāi)始的X3~X0的4位位元件組成字元件數(shù)據(jù)。K4M10表示以低位M10開(kāi)始的M25~M10的16位位元件組成字元件數(shù)據(jù)。K8M100表示以低位M100開(kāi)始的位元件M131~M100組成的32位數(shù)據(jù)。例如K2X0表示由X7~X0組成的八位元件,如果這八位元件的狀態(tài)為則其數(shù)值為十進(jìn)制的91。PLC常常用到的數(shù)制有二進(jìn)制,十進(jìn)制和十六進(jìn)制。2023/2/2845.2序流程指令(FNC00~09)程序流程控制指令包含程序的條件跳轉(zhuǎn)、中斷、調(diào)用子程序、循環(huán)等。5.2.1條件跳轉(zhuǎn)(CJ)1.條件跳轉(zhuǎn)CJ指令的助記符及功能如表5-2所示2.格式,如圖5-1所示。圖5-1條件跳轉(zhuǎn)3.說(shuō)明:(1)如圖5-1所示,當(dāng)X0接通,程序跳轉(zhuǎn)到P0所指的程序行執(zhí)行。當(dāng)X0斷開(kāi),程序不跳轉(zhuǎn),順序執(zhí)行。(2)可允許多個(gè)CJ指令使用相同的指針,如圖5-2所示。當(dāng)X0或X2接通,均可跳到P0所指的程序行。2023/2/285圖5-2程序多次跳轉(zhuǎn)條件跳轉(zhuǎn)指令常用在選擇性地執(zhí)行程序等情況。如手動(dòng)程序與自動(dòng)程序的選擇,以及初始化程序與工作程序的選擇等。圖5-3為兩種工作狀態(tài)選擇的程序。當(dāng)X6接通,執(zhí)行CJ指令,程序跳轉(zhuǎn)到P0所指的程序行。由于X6=0,不跳轉(zhuǎn)到P1,而直接執(zhí)行第11行,當(dāng)X2接通,Y2得電,程序結(jié)束。當(dāng)X6斷開(kāi),不執(zhí)行CJ指令,直接執(zhí)行第4行,當(dāng)X0接通,Y0得電。由于此時(shí)X6=1,執(zhí)行CJ指令,程序跳轉(zhuǎn)到P1所指的程序行,程序結(jié)束。圖5-3兩種工作程序的選擇2023/2/2865.2.2調(diào)用子程序和子程序返回(CALL,SRET,F(xiàn)END)1.調(diào)用子程序指令的助記符及功能如表5-3所示:2.使用格式如圖5-4所示。圖5-4調(diào)用子程序

2023/2/2873.說(shuō)明

(1)當(dāng)X1接通,CALL指令被驅(qū)動(dòng),程序轉(zhuǎn)移到指針P1所指的程序行執(zhí)行,一直到子程序返回指令SRET,然后立即返回到調(diào)用子程序CALL指令的下一指令,再繼續(xù)執(zhí)行主程序。(2)CALL指令的P指針以及子程序必須放在主程序結(jié)束指令FEND之后。(3)可以多次調(diào)用子程序,子程序可嵌套,嵌套層數(shù)不能大于5層,每個(gè)子程序都必須以SRET結(jié)束。

例5-1報(bào)警電路。要求起動(dòng)之后,燈在閃,亮0.5s,滅0.5s,蜂鳴器在響。燈閃爍30次之后,燈滅,蜂鳴器停,間歇5s。如此進(jìn)行三次,自動(dòng)熄滅。試用調(diào)用子程序方法編寫(xiě)。

編寫(xiě)時(shí),將重復(fù)的動(dòng)作,即燈在閃蜂鳴器在響作為子程序,放在FEND之后。而調(diào)用子程序CALL放在主程序之中。例5-1的程序如圖5-5所示。

圖中Y0為燈,Y1為蜂鳴器。從第0行到第38行為主程序。從第39行到第66行,為子程序。主程序中,M0是調(diào)用子程序的控制觸點(diǎn),每次M0接通,調(diào)用子程序一次,本題共調(diào)用三次。注意在子程序中,使用了T192、T193定時(shí)器,這種定時(shí)器在執(zhí)行線(xiàn)圈指令時(shí)或執(zhí)行END指令時(shí)計(jì)時(shí)。如果計(jì)時(shí)達(dá)到設(shè)定值,則執(zhí)行線(xiàn)圈指令或END指令時(shí),輸出觸點(diǎn)動(dòng)作。因此當(dāng)子程序執(zhí)行到SRET返回到第18行執(zhí)行之后。Y0、Y1仍為ON,不停止。為此,設(shè)置了成批復(fù)位指令ZRST,或REF(輸入輸出刷新)指令,使Y0、Y1失電之后再返回第18行執(zhí)行2023/2/288圖5-5

2023/2/289例5-2試用調(diào)用子程序的方法編寫(xiě)3臺(tái)電動(dòng)機(jī)Y0、Y1、Y2每隔10s順序起動(dòng)的控制程序。

程序編寫(xiě)如圖5-6所示

圖中使用了成批復(fù)位指令ZRST和二進(jìn)制數(shù)加1指令I(lǐng)NC。一開(kāi)機(jī),初始脈沖令M0、M1復(fù)位。按起動(dòng)按鈕X0,M0得電,驅(qū)動(dòng)10s定時(shí)間隔定時(shí)器T0,每次當(dāng)T0觸點(diǎn)閉合,調(diào)用子程序1次。第1次調(diào)用子程序,由于M0=M1=1,故M10置1,令Y0得電。之后執(zhí)行INC指令,K1M0加1,即M0=1。第2次調(diào)用子程序,由于M0=M1=1,故M11置1,令Y1得電。之后執(zhí)行INC指令,K1M0又加1,即M1=1。第3次調(diào)用子程序,由于M0=1,M1=1,故M12置1,令Y2得電。之后執(zhí)行INC指令,K1M0又加1,即M1=1,M0=1,使M0、M1復(fù)位。于是Y0、Y1、Y2每隔10s順序起動(dòng)。2023/2/290圖5-62023/2/2915.2.3中斷(IRET,EI,DI)1.中斷指令的助記符及功能如表5-4所示:2.中斷的意義和方式中斷是在主程序的執(zhí)行中使程序中斷而去執(zhí)行中斷程序的一種工作方式。它分為輸入中斷、定時(shí)器中斷和計(jì)數(shù)器中斷三種方式。(1)輸入中斷輸入中斷是中斷信號(hào)由輸入端子送入而進(jìn)入中斷程序的工作方式。輸入中斷指針I(yè)如下所示:I□0□不可重復(fù)使用1為上升沿中斷,0為下降沿中斷常置輸入號(hào)0~5,對(duì)應(yīng)的輸入為X0~X5,每個(gè)輸入只能用一次。中斷程序由中斷指針入口,到中斷返回指令I(lǐng)RET結(jié)束。例如中斷指針I(yè)101的意義為當(dāng)程序執(zhí)行到X1時(shí)轉(zhuǎn)到中斷指針I(yè)101的程序行執(zhí)行,一直到IRET為止,之后返回主程序。中斷程序編寫(xiě)在主程序結(jié)束之間,如圖5-7所示。2023/2/292圖5-7中斷指令

圖中一開(kāi)始為允許中斷。當(dāng)X1從OFF→ON且保持ON,程序跳到指針I(yè)101處執(zhí)行中斷程序,執(zhí)行第13行將K100送到D1,然后返回主程序,對(duì)定時(shí)器T0計(jì)時(shí)。當(dāng)計(jì)時(shí)達(dá)到D1當(dāng)前值K100時(shí),T0觸點(diǎn)閉合,Y0得電。2023/2/293(2)定時(shí)器中斷

定時(shí)器中斷用于需要指定中斷時(shí)間執(zhí)行中斷程序的地方,主要用于高速處理或每隔一定時(shí)間執(zhí)行的程序等問(wèn)題。定時(shí)器的中斷指針為I□□□

10~99ms,任選其中一個(gè)值6,7,8(不能重復(fù)標(biāo)號(hào))定時(shí)器中斷由編號(hào)為I6,I7,I8三個(gè)專(zhuān)用定時(shí)器中的一個(gè),在10~99ms中任選一個(gè)作為中斷設(shè)定時(shí)間,每隔此設(shè)定時(shí)間中斷一次,例如I650,即每隔50ms,在標(biāo)號(hào)I650之后對(duì)程序執(zhí)行中斷,直到執(zhí)行IRET指令返回原狀態(tài),如圖5-8所示。圖5-8定時(shí)器中斷圖5-8中按X1,M3得電,定時(shí)器中斷,執(zhí)行中斷指針I(yè)650每隔50ms使D加1。直到當(dāng)D0的當(dāng)前值等于1000,M3失電。2023/2/294(3)計(jì)數(shù)器中斷

計(jì)數(shù)器中斷用于與高速計(jì)數(shù)器當(dāng)前值比較的結(jié)果(執(zhí)行高速計(jì)數(shù)器比較置位指令)而中斷執(zhí)行中斷程序的場(chǎng)合。計(jì)數(shù)器中斷指針為:I0□0不可重復(fù)使用1~6(計(jì)數(shù)器中斷6點(diǎn))計(jì)數(shù)器中斷如圖5-9所示。圖5-9計(jì)數(shù)器中斷圖中,執(zhí)行第3步,將K1000與C255的當(dāng)前值比較,當(dāng)C255的當(dāng)前值由999變到1000時(shí),驅(qū)動(dòng)計(jì)數(shù)器中斷器I010(梯形圖表示為I10),執(zhí)行計(jì)數(shù)器中斷程序。2023/2/2953.說(shuō)明(1)E1與FEND之間或EI與DI之間為允許中斷范圍。DI與EI之間為禁止中斷范圍。(2)如果特殊輔助繼電器M8050~M8059為ON,則禁止各對(duì)應(yīng)輸入編號(hào)進(jìn)行中斷,見(jiàn)附錄特殊輔助繼電器。圖5-10中,如果M8051為OFF,按住X1,執(zhí)行中斷程序,運(yùn)行情況如圖5-7一樣。如果按X10,M8051接通,則按X1,程序也不執(zhí)行中斷。(3)如果有多個(gè)依次發(fā)出的中斷信號(hào),則優(yōu)先級(jí)按發(fā)生的先后為序,發(fā)生越早則優(yōu)先級(jí)越高,若同時(shí)發(fā)生多個(gè)中斷信號(hào)時(shí),則中斷標(biāo)號(hào)小的優(yōu)先級(jí)高。(4)中斷程序在執(zhí)行過(guò)程中,不響應(yīng)其他的中斷(其他中斷為等待狀態(tài))。不能重復(fù)使用與高速計(jì)數(shù)器相關(guān)的輸入,不能重復(fù)使用I000與I001相同的輸入。(5)可編程控制器平時(shí)處于禁止中斷狀態(tài)。如果EI-DI指令在掃描過(guò)程中有中斷輸入時(shí),則執(zhí)行中斷程序(從中斷標(biāo)號(hào)到IRET之間的程序)。圖5-102023/2/2965.2.4監(jiān)視定時(shí)器(WDT)

1.監(jiān)視定時(shí)器指令的助記符及功能如表5-5所示:

2.格式如圖5-11所示。圖5-11WDT指令用法3.說(shuō)明(1)WDT指令是在控制程序中刷新警戒定時(shí)器的指令。如果執(zhí)行程序的掃描周期時(shí)間(從0步到END或FEND指令之間)達(dá)200ms,則PLC將停止運(yùn)行。這時(shí)應(yīng)將WDT指令插到合適的程序步中刷新警戒時(shí)鐘,以便程序得以繼續(xù)運(yùn)行直到END。例如將一個(gè)掃描周期為240ms的程序分為2個(gè)120ms程序。如圖5-11(a)所示,在這兩個(gè)程序之間插入WDT指令。(2)如果希望每次掃描周期時(shí)間超過(guò)200ms,則可用移動(dòng)指令MOV把限制值寫(xiě)入特殊數(shù)據(jù)寄存器D8000中,如圖5-11(b)所示。2023/2/2975.2.5循環(huán)(FOR,NEXT)

1.循環(huán)指令的助記符及功能如表5-6所示2.FOR-NEXT的格式,如圖5-12所示。3.說(shuō)明(1)進(jìn)入循環(huán)指令FORn,n取值范圍為1~32767。循環(huán)結(jié)束命令NEXT,無(wú)操作數(shù)。命令FOR-NEXT必須成對(duì)使用,缺一不可。(2)圖5-12為單循環(huán),執(zhí)行完程序1,進(jìn)入循環(huán)語(yǔ)句,對(duì)程序2執(zhí)行循環(huán)10次后,執(zhí)行程序3結(jié)束。FOR-NEXT指令可以嵌套,它主要用于某些操作需反復(fù)進(jìn)行的場(chǎng)合。FOR-NEXT指令最多只能嵌套5層。如因循環(huán)次數(shù)過(guò)多,程序運(yùn)行時(shí)間大于200ms,請(qǐng)注意使用WDT命令。

圖5-12循環(huán)指令2023/2/298(3)圖5-13為雙重循環(huán)的例子。當(dāng)X0閉合,接通PLC電源,程序轉(zhuǎn)到P1執(zhí)行。當(dāng)X0斷開(kāi),接通PLC電源,程序執(zhí)行雙重循環(huán),執(zhí)行結(jié)果為Z=50,D0=49。之后,執(zhí)行定時(shí)器指令。當(dāng)T0的當(dāng)前值等于設(shè)定值D0,T0觸點(diǎn)接通,Y0得電。圖5-13雙重循環(huán)2023/2/2995.3.1數(shù)據(jù)比較(CMP)

1.?dāng)?shù)據(jù)比較指令的助記符及功能,見(jiàn)5-7表所示。2.格式如圖5-14所示。3.說(shuō)明(1)圖5-14的意義為:當(dāng)X0接通,執(zhí)行比較CMP指令,將源(S1.)與(S2.)比較,比較的結(jié)果放到以M0開(kāi)始的三位連續(xù)位元件(M0~M2)中。當(dāng)源(S2.)D10的當(dāng)前值<源(S1.)K120,M0為ON;當(dāng)源(S2.)D10的當(dāng)前值=源(S1.)K120,M1為ON;當(dāng)源(S2.)D10的當(dāng)前值>源(S1.)K120,M2為ON。編制CMP指令時(shí),通常(S1.)為定值,(S2.)為動(dòng)值(2)當(dāng)X0斷開(kāi),不執(zhí)行CMP指令,M0開(kāi)始的三位連續(xù)位元件(M0~M2)保持其斷電前的狀態(tài)。圖5-142023/2/2100例5-3

圖5-15為指令CMP的應(yīng)用例子。按X0及X2,問(wèn)當(dāng)按X1為8次,10次,16次,燈Y0、Y1、Y2哪個(gè)亮?圖5-15例5-3圖

比較指令CMP工作時(shí),其控制觸點(diǎn)必須一直閉合。因此設(shè)置X2,用M0自鎖實(shí)現(xiàn)。當(dāng)X1閉合8次,K10>C0當(dāng)前值,Y0得電;當(dāng)X1閉合10次,K10=C0當(dāng)前值,Y1得電;當(dāng)X1閉合16次,K10<C0當(dāng)前值,Y2得電。2023/2/2101

例5-4如圖5-16(a)所示,按X0,D1的當(dāng)前值為100。之后D1每秒加1,但程序不會(huì)停止。試改寫(xiě)程序,使D1大于200時(shí),程序停止加1運(yùn)算。(a)(b)圖5-16CPM指令使用例子5.3.2區(qū)間比較(ZCP)1.區(qū)間比較指令的助記符及功能,如表5-8所示:2023/2/21022.格式如圖5-17所示3.說(shuō)明(1)當(dāng)指明目標(biāo)(D.)為M3時(shí),則M3、M4、M5自動(dòng)被占用。圖5-17的意義為:X0閉合,執(zhí)行ZCP指令。當(dāng)源(S.)C20的當(dāng)前值<源(S1.)K100時(shí),M3為ON;當(dāng)源(S1.)K100≤源(S.)C20當(dāng)前值≤源(S2.)K105,M4為ON;當(dāng)C20當(dāng)前值>K105時(shí),M5為ON。(2)當(dāng)ZCP的控制觸點(diǎn)X0斷開(kāi),不執(zhí)行ZCP指令,M3~M5保持其斷電前狀態(tài)。如果擬清除比較的結(jié)果,要用復(fù)位指令。圖5-18為ZCP指令使用例子。圖中C1每秒計(jì)數(shù)1次。當(dāng)C1當(dāng)前值<K20時(shí),M10為ON;當(dāng)K20≤C1當(dāng)前值≤K30時(shí),M11為ON;當(dāng)C1當(dāng)前值>K30時(shí),M12為ON。

圖5-18ZCP指令使用例子2023/2/21035.3.3傳送(MOV)

1.?dāng)?shù)據(jù)傳送指令的助記符及功能,如表5-9所示:2.格式如圖5-19所示。圖5-19MOV指令3.說(shuō)明(1)如圖5-19所示,執(zhí)行第0行、第6行,MOV指令意義為:當(dāng)X0閉合,將源(S.)K150傳送到目標(biāo)(D.)D0;當(dāng)X1閉合,將T2的當(dāng)前值傳送到D10。傳送時(shí)K150自動(dòng)作二進(jìn)制變換。(2)當(dāng)32位傳送時(shí),用DMOV指令,如圖5-19的第12行。源位為D3、D2,目標(biāo)位為D7、D6。D3、D7自動(dòng)被占用。2023/2/2104例5-5試讀圖5-20,當(dāng)按X0,則Y0、Y1、Y2、Y3,哪個(gè)有輸出?圖5-20例5-5圖

由圖5-20可見(jiàn),當(dāng)按X0,則將K3傳送到K1M0,則M0、M1為ON,故Y0、Y1得電。若要Y0、Y1失電時(shí),按X1,使M0~M3成批復(fù)位。

例5-6用MOV指令編寫(xiě)電動(dòng)機(jī)Y-△降壓起動(dòng)程序。

圖5-21為用MOV指令編寫(xiě)的電動(dòng)機(jī)Y-△降壓起動(dòng)梯形圖。圖中X0為起動(dòng)時(shí)按鈕,X1為停止按鈕。當(dāng)X0閉合時(shí),將K5送到K1Y1,則Y1,Y3得電,為電動(dòng)機(jī)Y起動(dòng)。延時(shí)6s后,將Y3復(fù)位,再延時(shí)1秒,將K3送K1Y1,于是Y1,Y2得電,為電動(dòng)機(jī)△正常運(yùn)行。按X1,將K0送K1Y1,則Y1,Y2失電,電動(dòng)機(jī)停止。2023/2/21055.3.4移位傳送(SMOV)1.移位傳送指令的助記符和功能如表5-10所示:2023/2/2106

3.說(shuō)明(1)SMOV指令帶5個(gè)參數(shù),它的意義是:將源(S.)的二進(jìn)制數(shù)(16位二進(jìn)制數(shù))以BCD碼表示從其第m1起將低m2位的BCD數(shù)碼向目標(biāo)(D.)從其第n位開(kāi)始傳送。并將其變?yōu)槎M(jìn)制數(shù)。(2)圖5-23的執(zhí)行過(guò)程是:X0閉合,將十進(jìn)制數(shù)3268送到D1,D1的當(dāng)前值為3268。X1閉合,將源D1從第4位(103位,)開(kāi)始將低2位(103位、102位)的數(shù)送到目標(biāo)D2的第3位(103位)開(kāi)始的低2位(即102和101位)中。目標(biāo)D2未獲傳送的位保持不變。因此,執(zhí)行圖5-23的SMDV指令后,D2的當(dāng)前值為320。如圖5-24所示。圖5-24移位傳送2023/2/21075.3.5取反(CML)1.取反指令的助記符和功能如表5-11所示:圖5-25取反命令3.說(shuō)明(1)CML指令的意義是將源(S.)的二進(jìn)制各位取反,結(jié)果存放到目標(biāo)(D.)元件。即源中“1”,變“0”;“0”,變?yōu)椤?”。再送目標(biāo)。圖5-26取反命令的應(yīng)用2023/2/2108(2)執(zhí)行圖5-26,X0閉合,將K9傳送給D0,D0的二進(jìn)制數(shù)為1001。X1閉合,將源的二進(jìn)制數(shù)據(jù)取反送到目標(biāo)K1M0中,即M1為1,M2為1,故Y1、Y2得電。

(3)如目標(biāo)元件位數(shù)小于源位數(shù),則僅對(duì)應(yīng)于目標(biāo)元件的位數(shù)取反。5.3.6塊傳送(BMOV)1.塊傳送的助記符和功能如表5-12所示:圖5-27塊傳送指令3.說(shuō)明(1)如圖5-27所示,BMOV指令有兩個(gè)操作數(shù),當(dāng)X0閉合,將源(S.)D0開(kāi)始的n個(gè)(n=4)數(shù)據(jù)D0、D1、D2、D3依次送到目標(biāo)(D.)D10、D11、D12、D13中去。當(dāng)X1閉合,以K1M0開(kāi)始的兩組數(shù)據(jù),即M0、M1、M2、M3以及M4、M5、M6、M7依次送到K1Y3開(kāi)始的兩組數(shù)據(jù)(即Y3、Y4、Y5、Y6以及Y7、Y8、Y11、Y12)中去。2023/2/2109(2)但當(dāng)源的單元數(shù)目n超過(guò)目標(biāo)的數(shù)目,僅送到實(shí)際的目標(biāo)單元中去,如圖5-28所示。圖中合上X3,接通X0,則D10為15,又接通X1,則Y3、Y4、Y5、Y6得電。圖5-28塊傳送的例(3)當(dāng)M8024為ON時(shí),BMOV指令傳送方向反轉(zhuǎn),如圖5-29所示。圖5-29數(shù)據(jù)傳送方向反轉(zhuǎn)2023/2/21105.3.7多點(diǎn)傳送(FMOV)

圖5-30多點(diǎn)傳送3.說(shuō)明(1)FMOV指令的意義為將源(S.)的數(shù)據(jù)傳送到目標(biāo)(D.)為首址的連續(xù)n位元件中去。(2)圖5-30中,接通X0,則將K100同時(shí)送到D0~D7共8個(gè)元件中。接通X1,則將K0同時(shí)送到C0~C4共5個(gè)計(jì)數(shù)器中,令各計(jì)數(shù)器清零。2023/2/21115.3.8數(shù)據(jù)交換(XCH)圖5-31數(shù)據(jù)交換指令3.說(shuō)明(1)XCH的意義為將目標(biāo)(D1.)與目標(biāo)(D2.)的數(shù)據(jù)交換。(2)如圖5-32所示。接通X0,將K120送D1,K50送D3。再接通X1,則D1與D3交換了數(shù)據(jù),D3變?yōu)?20,D1變?yōu)?0。注意,所交換的兩數(shù)必須為同類(lèi)數(shù)據(jù),且當(dāng)使用連續(xù)執(zhí)行性型指令時(shí),每個(gè)掃描周期都要進(jìn)行數(shù)據(jù)交換。圖5-32數(shù)據(jù)交換例子2023/2/21125.3.9求BCD碼和求BIN碼(BCD,BIN)

1.求BCD碼和BIN碼指令的助記符和功能如表5-15所示3.說(shuō)明(1)BCD命令的意義是將源(S.)的二進(jìn)制數(shù)轉(zhuǎn)換成為BCD碼,送到目標(biāo)(D.)。BCD指令可用于驅(qū)動(dòng)7段顯示管。BIN命令的意義是將源(S.)的BCD碼轉(zhuǎn)換成二進(jìn)制數(shù),送到目標(biāo)(D.)。如果使用BCD命令時(shí),源是十進(jìn)制數(shù),則會(huì)自動(dòng)轉(zhuǎn)換成二進(jìn)制數(shù),再變成BCD碼。但使用BIN命令,而源為非BCD碼,則出錯(cuò)。2023/2/21135.4算術(shù)及邏輯運(yùn)算指令(FNC20~29)算術(shù)及邏輯運(yùn)算包括二進(jìn)制的加、減、乘、除以及邏輯字的與、或、異或等內(nèi)容5.4.1二進(jìn)制的加、減、乘、除運(yùn)算(ADD,SUB,MUL,DIV)

1.二進(jìn)制的加、減、乘、除運(yùn)算的助記符和功能如表5-16所示:圖5-35ADD、SUB、MUL、DIV指令格式2023/2/2114

3.說(shuō)明(1)ADD指令的意義是:源(S1.)+源(S2.)→目標(biāo)(D.),是代數(shù)相加,且必須為同一元件。圖5-36中,執(zhí)行ADD指令,D1+D3→D10。若計(jì)算結(jié)果為0,M8020置ON;若計(jì)算結(jié)果超過(guò)32767(16位)或2147483687(32位),借位標(biāo)志M8022置ON;若結(jié)果小于-32767(16位)或-2147483687(32位),借位標(biāo)志M8021置ON。如果目標(biāo)元件的位數(shù)小于計(jì)算結(jié)果的位數(shù),則僅寫(xiě)入相應(yīng)的目標(biāo)元件的位。例如計(jì)算結(jié)果為25(十進(jìn)制)其二進(jìn)制數(shù)為11001,如目標(biāo)為K1Y0,則只有Y3、Y0被置1。(2)SUB指令的意義是D1—D3→D11,是代數(shù)運(yùn)算。其運(yùn)算結(jié)果的借位情況與(1)相同。(3)MUL指令的意義是D1×D3→D12,為代數(shù)運(yùn)算。若D1、D3為16位,其運(yùn)算結(jié)果為32位,目標(biāo)元件D12表示低16位地址,D13放高16位地址。若D1、D3為32位,則目標(biāo)D12為低16位地址,此時(shí)(D2,D1)×(D4,D3)→(D15,D14,D13,D12)。(4)DIV指令的意義是:D1/D3→D16,為代數(shù)運(yùn)算。若D1、D3為16位,則商放D16,余數(shù)放D17。若D1、D3為32位,則商和余數(shù)均為32位,目標(biāo)元件D16為存放商的首址,即D17、D16存放商,而比目標(biāo)元件高3位的元件存放余數(shù),即D19、D18存放余數(shù)。(5)執(zhí)行圖5-36運(yùn)算結(jié)果得:D10=60;D11=20;D12=800;D16=2。圖5-362023/2/21155.4.2二進(jìn)制數(shù)加1和減1運(yùn)算(INC,DEC)1.二進(jìn)制加1和減1運(yùn)算的助記符和功能見(jiàn)表5-17所示:2023/2/21163.說(shuō)明(1)INC指令的意義為目標(biāo)(D.)當(dāng)前值D1+1→D1。在16位運(yùn)算中,+32767加1則成32768;在32位運(yùn)算中,+2147483647加1則成為-2147483648。(2)DEC指令的意義為目標(biāo)元件(D.)當(dāng)前值D10-1→D10。在16位運(yùn)算中,-32768減1則成+32767;在32位運(yùn)算中,-2147483648減1則成為+2147483647。(3)若用連續(xù)指令時(shí),INC和DEC指令都是在各掃描周期都做加1運(yùn)算和減1運(yùn)算。因此,在圖5-38中,X1和X2都使用上升沿檢測(cè)指令。每次X1閉合,D1當(dāng)前值加1;每次X2閉合,D2當(dāng)前值減1

例5-7運(yùn)行圖5-39程序,討論Y0~Y3得電情況。按X0第1次閉合,Y0得電;第2次,Y1得電;第3次,Y1、Y0得電;第4次,Y2得電;第5次,Y2、Y0得電;第6次,Y2、Y1得電;第7次,Y2、Y1、Y0得電;第8次,Y3得電。如此下去,一直到第15次,Y3、Y2、Y1、Y0得電,第16次,Y3、Y2、Y1、Y0全失電。運(yùn)行中間若按X1,則Y0~Y4失電。

圖5-39例5-7梯形圖2023/2/21175.4.3邏輯字與、或、異或運(yùn)算(WADD,WOR,WXOR)

1.邏輯字的與、或、異或運(yùn)算的指令助記符與功能見(jiàn)表5-18所示:2.格式如圖5-40所示。3.說(shuō)明(1)WAND指令的意義是將兩源(S1.)、(S2.)相與,送目標(biāo)(D.)。“與”的邏輯式為:Y=A·B,其運(yùn)算邏輯為:1AND1=1;0AND1=01AND0=0;0AND0=0。2023/2/2118(2)WOR指令的意義是將兩源(S1.)、(S2.)相或,送目標(biāo)(D.)。“或”的邏輯式為:

Y=A+B,其運(yùn)算邏輯為:1OR1=1;0OR1=11OR0=1;0OR0=0(3)WXOR指令的意義是將兩源(S1.)、(S2.)相異或,送目標(biāo)(D.)。“異或”的邏輯式為:Y=AB+AB,其運(yùn)算邏輯為:1XOR1=0;0XOR1=11XOR0=1;0XOR0=0圖5-41邏輯運(yùn)算(4)圖5-41運(yùn)算的結(jié)果為:接通X1,D1、D2“與”運(yùn)算,D10的結(jié)果為20。接通X2,D1、D2“或”運(yùn)算,D11的結(jié)果為30;接通X3,D1、D2“異或”運(yùn)算,D12的結(jié)果為10圖5-42“與”指令用于屏蔽某元件(5)邏輯“與”指令WAND還常用于屏蔽某元件數(shù)值的高位或低位。如圖5-42所示,圖中接通X0,將十六進(jìn)制數(shù)H1268送D0,接通X1,將H00FF和D0進(jìn)行“與”運(yùn)算,運(yùn)算結(jié)果送D10,D10為H0068,屏蔽了高位。2023/2/21195.4.4求補(bǔ)碼(EEG)1.求補(bǔ)碼指令的助記符和功能如表5-19所示圖5-43求補(bǔ)碼3.說(shuō)明

(1)NEG指令的意義是將目標(biāo)(D.)位的數(shù)取反,即“1”→“0”,“0”→“1”,然后將取反后的結(jié)果加1再送目標(biāo)(D.)。此時(shí),目標(biāo)(D.)的數(shù)的符號(hào)改變,但數(shù)值不變。

如圖5-43所示,接通X0,D0的數(shù)值為1000,其二進(jìn)制數(shù)為“0000001111101000”,各位取反加1后得“1111110000011000”,即為(-1000)。若目標(biāo)(D.)為負(fù)數(shù),使用NEG指令,即是求得其絕對(duì)值。

(2)若使用連續(xù)執(zhí)行型指令,則每掃描周期都會(huì)執(zhí)行NEG指令一次。2023/2/21205.5循環(huán)及移位指令(FNC30~39)循環(huán)及移位指令包括循環(huán)右移,循環(huán)左移;帶進(jìn)位右移、左移;位右移,位左移,字右移,字左移等指令。5.5.1循環(huán)右移和循環(huán)左移(ROR,ROL)

1.循環(huán)右移和循環(huán)左移的助記符和功能如表5-20所示:3.說(shuō)明(1)ROR指令的意義為:每執(zhí)行一次X10,目標(biāo)元件(D.)中的位循環(huán)右移n位,最終從低位被移出的位同時(shí)存入到進(jìn)位標(biāo)志M8022中。(2)ROL指令的意義為:每執(zhí)行一次X20,目標(biāo)元件(D.)中的位循環(huán)左移n位,最終從高位被移出的位同時(shí)存入到進(jìn)位標(biāo)志M8022中。2023/2/2121(3)執(zhí)行圖5-45,當(dāng)X0閉合,D10的值為245。圖5-46給出運(yùn)行的情況,圖(a)中,當(dāng)X1閉合1次,執(zhí)行ROR指令1次,D10右移3位。此時(shí)D10=-24546。同時(shí)進(jìn)位標(biāo)志M8022為“1”。當(dāng)X1再閉合1次,再執(zhí)行ROR指令1次,D10右移3位。此時(shí)D10=-11261。同時(shí)進(jìn)位標(biāo)志M8022為“1”。圖(b)中,當(dāng)X2閉合,執(zhí)行ROL指令1次,D10的各位左移2位,此時(shí)D10=980。同時(shí)進(jìn)位標(biāo)志M8022為“0”。當(dāng)X2再閉合,再執(zhí)行ROL指令1次,D10的再左移2位,此時(shí)D10=3920。同時(shí)進(jìn)位標(biāo)志M8022為“0”。圖5-45循環(huán)右移和循環(huán)左移

圖5-46圖5-45執(zhí)行情況2023/2/21225.5.2帶進(jìn)位循環(huán)右移和循環(huán)左移(

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論