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

下載本文檔

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

文檔簡介

2023/2/21

第3章應用基本指令編程

應用基本指令編程,是PLC應用的重要方面。本章主要從介紹編程的方法和技巧開始,再從按空間原則和時間原則編程展開,最后介紹一些編程例子。本章的主要內容如下:圖3-1(b)3.1

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

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

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

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

1.閃爍電路

用兩個定時器,可以組成一閃爍電路,或稱多諧振蕩器,如圖3-5所示。2.延時斷開電路用一扳把開關X0及定時器T0,可以組成延時斷開電路,如圖3-6所示。2023/2/263.二分頻電路

圖3-7為由定時器和計數器構成的二分頻電路。

圖3-7

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

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

例3-1圖3-12為行程開關控制的電動機正反轉電路,圖中行程開關SQ1、SQ2作為往復運動控制用,而SQ3、SQ4作為極限位置保護用。試編寫PLC控制電路圖。圖3-12

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

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

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

控制要求如下(1)車行道:橫向綠(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按題目要求得交通燈的工作時序如圖3-27所示。圖3-27

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

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

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

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

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

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

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

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

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

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

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

圖4-6為狀態(tài)轉移圖.當起動正常時,四臺電動機按Y1→Y2→Y3→Y4順序和設定的時間間隔起動。當正常停止時,按X1,則四臺電動機按Y4→Y3→Y2→Y1順序和設定的時間間隔停止。

2023/2/243圖4-6四臺電動機起動停止狀態(tài)轉移圖2023/2/2442023/2/245圖4-7四臺電動機順序起動步進梯形圖2023/2/246

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

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

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

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

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

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

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

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

圖(a)為流程圖,

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

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

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

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

十字路口交通燈控制的示意圖和時序圖見圖3-26和圖3-27示。本題應用SFC方法來編寫。令車道為一支,人行道為一支,它們構成并行性分支。

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

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

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

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

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

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

2023/2/2873.說明

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

例5-1報警電路。要求起動之后,燈在閃,亮0.5s,滅0.5s,蜂鳴器在響。燈閃爍30次之后,燈滅,蜂鳴器停,間歇5s。如此進行三次,自動熄滅。試用調用子程序方法編寫。

編寫時,將重復的動作,即燈在閃蜂鳴器在響作為子程序,放在FEND之后。而調用子程序CALL放在主程序之中。例5-1的程序如圖5-5所示。

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

2023/2/289例5-2試用調用子程序的方法編寫3臺電動機Y0、Y1、Y2每隔10s順序起動的控制程序。

程序編寫如圖5-6所示

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

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

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

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

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

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

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

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

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

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

圖5-15為指令CMP的應用例子。按X0及X2,問當按X1為8次,10次,16次,燈Y0、Y1、Y2哪個亮?圖5-15例5-3圖

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

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

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

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

由圖5-20可見,當按X0,則將K3傳送到K1M0,則M0、M1為ON,故Y0、Y1得電。若要Y0、Y1失電時,按X1,使M0~M3成批復位。

例5-6用MOV指令編寫電動機Y-△降壓起動程序。

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

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

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

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

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

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

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

例5-7運行圖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全失電。運行中間若按X1,則Y0~Y4失電。

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

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

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

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

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

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

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

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

溫馨提示

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

評論

0/150

提交評論