版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、文檔可能無法思考全面,請瀏覽后下載! 附錄第一章 位指令2第一節(jié) 數(shù)據(jù)文件3第二節(jié) 位指令6第二章 計(jì)時(shí)器和計(jì)數(shù)器指令11第三章 比較指令21第四章 算術(shù)指令26第五章 傳送和邏輯指令32第六章 移位和順序進(jìn)出指令35第七章 程序流程指令42第八章 I/O,文件,PID指令46第九章 高速計(jì)數(shù)指令6467 / 69第一章 位指令位指令可對數(shù)據(jù)的單個(gè)位進(jìn)行操作。在運(yùn)行時(shí),處理器可以根據(jù)其所在梯級(jí)的邏輯條件置位或復(fù)位一位。應(yīng)用程序可以根據(jù)需要對一位尋址任意次。本章第一節(jié)介紹位指令地址可使用的數(shù)據(jù)文件,第二節(jié)介紹基本的位指令。第一節(jié) 數(shù)據(jù)文件系統(tǒng)默認(rèn)的數(shù)據(jù)文件分為以下幾種類型:1. 輸出和輸入數(shù)據(jù)文
2、件(O0:和I1:)2. 狀態(tài)文件(S2:)3. 位文件(B3:)4. 計(jì)時(shí)器文件(T4:)5. 計(jì)數(shù)器文件(C5:)6. 控制文件(R6:)7. 整數(shù)文件(N7:)上面的文件號(hào)也為系統(tǒng)默認(rèn)的(即系統(tǒng)默認(rèn)文件0為輸出文件,1為輸入文件,2為狀態(tài)文件,等等)。下面對這些系統(tǒng)默認(rèn)的文件類型分別予以介紹。1. 輸出和輸入數(shù)據(jù)文件(O0:和I1:)文件O0中的各位表示外部的輸出,文件I1中的各位表示外部的輸入。在大多數(shù)情況下,這些文件中的每個(gè)16位字號(hào)與位于控制器內(nèi)的一槽相對應(yīng),位號(hào)與相應(yīng)的輸入或輸出端子號(hào)對應(yīng)。輸出和輸入的地址格式用e表示槽號(hào),s表示字號(hào)。處理文件指令時(shí),數(shù)據(jù)文件元素按e.s(槽號(hào)和
3、字號(hào))格式一起使用。格式說明O:e.s/bI:e.s/b5000時(shí)助記號(hào):機(jī)框.I/O組號(hào)/端子號(hào).O輸出I輸入:元素分隔符e槽號(hào)(十進(jìn)制)加1擴(kuò)展或模擬量表示+1槽號(hào)0號(hào)槽,即第一個(gè)框架中靠近電源的槽,用于處理器模塊。接下來的是I/O槽(130)。.字分隔符s字號(hào)如果某槽的I/O點(diǎn)數(shù)超過16時(shí)最好用字號(hào)(0255)。字號(hào)表示十六進(jìn)表現(xiàn)法,不用按十端子號(hào)算法(0255)/位分隔符b端子號(hào)015舉例:O:3/5 槽3,輸出位5I:7/8 槽7,輸入位8I:2.1/3 槽2,字1,輸入位3字地址:O:5 槽5,輸出字0O:5.1 槽5,輸出字1I:8 槽8,輸入字0特別的,當(dāng)一個(gè)槽的I/O點(diǎn)數(shù)超過
4、16個(gè)時(shí),尋址位有兩種表示方法:使用字、位尋址和直接位尋址。如:MicroLogix 1500系列輸出0槽有64點(diǎn)。尋址O:0.2/13時(shí),也可寫為O:0/45。缺省值:用戶編程設(shè)備顯示的地址格式將更加正規(guī)。例如:當(dāng)分配地址O:5/0時(shí),編程設(shè)備將顯示為O:5.0/0(輸出文件,槽5,字0,端子0)。2. 狀態(tài)文件(S2:) 狀態(tài)文件允許用戶監(jiān)控、控制操作系統(tǒng)的工作狀況。監(jiān)控主要為監(jiān)控軟硬件故障及其它狀態(tài)信息??刂瓶赏ㄟ^設(shè)置相應(yīng)的控制位來實(shí)現(xiàn),這首先需要了解狀態(tài)文件中每個(gè)字、每個(gè)字節(jié)的功能。詳細(xì)說明請參閱SLC 500 and Micrologix 1000 指令集參考手冊附錄A。狀態(tài)文件不能
5、被增加或刪除,尋址狀態(tài)文件的位和字的格式為:S:e/b 各位含義同I/O文件。舉例:S:1/15 元素1,位15。這是“首次掃描位”用戶在程序中可以使用它來初始化指令。S:3 元素3。這一元素的低位字節(jié)時(shí)當(dāng)前掃描時(shí)間,高位字節(jié)是看門狗掃描時(shí)間。3. 位文件(B3:)文件3是位文件,主要用于位指令(繼電器邏輯),移位寄存器和順序器指令。位文件的最大容量是256個(gè)單字元素,總計(jì)為4096位??梢酝ㄟ^指定元素號(hào)(0255)和元素內(nèi)的位編號(hào)(015)來尋址位,也可以通過位的順序編號(hào)直接尋址位04095。用戶也可以只尋址該文件的元素。舉例:B:3/14 元素3,位14B:252/0 元素252,位0B:
6、9 元素9,位015B:/64 或 B/64 位64(即元素4,位0)B:/4042 或 B/4042 位40424. 計(jì)時(shí)器和計(jì)數(shù)器文件(T4:和C5:)每個(gè)計(jì)時(shí)器地址由一個(gè)3字元素組成,如下表所示: 15 14 13 12 11 .16位式表示法EN TT DN內(nèi)部使用PRE(預(yù)置值)1ACC(累計(jì)值)2字0字1字2上表中,EN:使能位,TT:計(jì)時(shí)位,DN:完成位。尋址位和字的格式為 Tf:e.s/b舉例:T4:0/13 或 T4:0/DN 完成位T4:0.1 或 T4:0.PRE 預(yù)置值 文件名號(hào):幾位號(hào).16位存址號(hào)(里記載預(yù)設(shè)值等)/內(nèi)部狀態(tài)使能位 T4:位號(hào).1或2/0T4:0.2
7、/0 或 T4:0.ACC/0 累計(jì)值5. 計(jì)數(shù)器文件(C5:)每個(gè)計(jì)數(shù)器地址由一個(gè)3字元素組成,如下表所示: 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0CU CD DN OV UN UA內(nèi)部使用PRE(預(yù)置值)ACC(累計(jì)值)字0字1字2字 上表中,CU:加計(jì)數(shù)使能位 CD:減計(jì)數(shù)使能位DN:完成位OV:上溢出位UN:下溢出位UA:更新累計(jì)值位(只用于固定式控制器的HSC指令)。尋址位和字的格式為 Cf:e.s/b舉例:C5:0/13 或 C5:0/DN 完成位C5:0.1 或 C5:0.PRE 預(yù)置值 C5:0.2/0 或 C5:0.ACC/0 累計(jì)值6.
8、控制文件(R6:)控制文件是3字元素,各字含義如下表。位移、順序器指令都用到控制文件。字 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0EN EU DN EM ER UL IN FD 錯(cuò)誤代碼位陣列或文件的長度(LEN)位指針或位置(POS)012舉例:R:2 元素2R:2/15 或 R:2/EN 使能位R:2/13 或 R:2/DN 完成位R:2.1 或 R:2.LEN 長度值 R:2.2/0 位置值的0位7. 整數(shù)文件(N7:)整數(shù)文件是1字元素,可以尋址到元素和位。根據(jù)程序的需要來使用整數(shù)文件地址。舉例:N:2 元素2N:2/8 元素2,位8N10:36 整數(shù)
9、文件10,元素36(先前文件10已被用戶定義為整數(shù)文件)注:整數(shù)文件的缺省值為7,如上 N:2 為整數(shù)文件7的元素。若所操作元素在其它整數(shù)文件上必須注明該文件號(hào),如上 N10:36。第二節(jié) 位指令位指令包括:1. 檢查閉合(XIC)2. 檢查斷開(XIO)3. 輸出激勵(lì)(OTE)4. 輸出鎖存(OTL)5. 輸出解鎖(OTU)6. 一次啟動(dòng)(ONS)7. 上升沿一次響應(yīng)(OSR)8. 下降沿一次響應(yīng)(OSF)下面逐個(gè)加以介紹。1. 檢查閉合(XIC)XIC屬輸入指令,用于檢查某位是否導(dǎo)通(ON)。它類似于常開開關(guān)。當(dāng)指令執(zhí)行時(shí),如果尋址位是導(dǎo)通狀態(tài)(1),則指令被賦值為真;如果尋址位是斷開狀態(tài)
10、(0),則指令被賦值為假。如果尋址位使用了輸入映象表的位,則其狀態(tài)必須與相應(yīng)地址實(shí)際輸入設(shè)備的狀態(tài)一致。2. 檢查斷開(XIO)XIO屬輸出指令,用于檢查某位是否斷開(OFF)。它類似于常閉開關(guān)。當(dāng)指令執(zhí)行時(shí),如果尋址位是斷開狀態(tài)(0),則指令被賦值為真;如果尋址位是導(dǎo)通狀態(tài)(1),則指令被賦值為假。3. 輸出激勵(lì)(OTE)OTE指令屬輸出指令,用于控制存儲(chǔ)器中的位。若OTE指令前面的梯級(jí)條件為真,尋址位導(dǎo)通,相應(yīng)的設(shè)備接通;否則尋址位不能夠?qū)?,相?yīng)的設(shè)備不能夠接通。它類似于繼電器的輸出線圈。OTE指令由它前面的輸入指令控制,而繼電器的線圈由硬觸點(diǎn)控制。4. 輸出鎖存(OTL)OTL屬保持型
11、輸出指令。當(dāng)梯級(jí)條件為真時(shí),OTL指令對該尋址位置位。即使梯級(jí)條件變?yōu)榧伲撐灰廊槐3种梦?。若要?fù)位,則需要在另一個(gè)階梯中使用解鎖指令OTU,對同一尋址位進(jìn)行解鎖。5. 輸出解鎖(OTU)OTU屬保持型輸出指令。常用于復(fù)位由OTL指令鎖存的位,此時(shí)OTL、OTU應(yīng)使用相同的地址。當(dāng)梯級(jí)條件為真時(shí),OTU指令對該尋址位復(fù)位。即使梯級(jí)條件變?yōu)榧伲撐灰廊槐3謴?fù)位。直至另一指令對該位重新置位。下面通過具體的梯形圖來進(jìn)一步理解上述位指令:例1:討論改變以下開關(guān)狀態(tài)時(shí),燈的變化情況。1) RUNG0中,當(dāng)I:0/4使能時(shí),O:0/0為真,燈亮。2) RUNG1中,當(dāng)I:0/5斷開時(shí),O:0/1為真,燈亮
12、。3) RUNG2中,只有當(dāng)I:0/6和I:0/8,或者I:0/7和I:0/8使能時(shí),O:0/2才為真,燈亮。4) RUNG3和RUNG4中,OTL和OTU指令成對出現(xiàn)。一旦I: 0/9使能,O:0/3就鎖存為真,燈亮。即使I: 0/9在下一次掃描周期由真變假,燈仍然保持亮。直至I: 0/10使能,O:0/3解鎖,燈滅。5) RUNG5中,END指令表明程序結(jié)束。6. 一次啟動(dòng)(ONS)ONS屬輸入指令。當(dāng)程序中ONS指令所在梯級(jí)條件由假到真變化時(shí),它的指令邏輯為真,但只保持一個(gè)掃描周期。使用ONS指令可啟動(dòng)由按鈕觸發(fā)的事件,如從撥盤開關(guān)上取值。ONS指令中有一個(gè)位地址參數(shù),此地址可以是位文件
13、或整數(shù)文件地址(如B3:0/3,N7:0/0等)。該位自動(dòng)存儲(chǔ)了ONS指令所在梯級(jí)條件(為真則存儲(chǔ)1,為假則存儲(chǔ)0)。ONS的功能相當(dāng)于限制所在梯級(jí)的輸出。當(dāng)輸入條件由假變真時(shí),它使輸出為1且只保持一個(gè)掃描周期,在以后連續(xù)的掃描中輸出為0。直到輸入再次由假到真跳變。7. 上升沿一次響應(yīng)(OSR)OSR屬輸出指令。當(dāng)OSR指令所在梯級(jí)條件由假到真變化時(shí),在輸出位(Output Bit)產(chǎn)生一個(gè)周期正脈沖(即“上升沿動(dòng)作類型”)。存儲(chǔ)位(Storage Bit)中自動(dòng)存儲(chǔ)了OSR指令所在階梯的梯級(jí)條件(為真則存儲(chǔ)1,為假則存儲(chǔ)0)。8. 下降沿一次響應(yīng)(OSF)OSF屬輸出指令。當(dāng)OSF指令所在梯
14、級(jí)條件由真到假變化時(shí),在輸出位(Output Bit)產(chǎn)生一個(gè)周期正脈沖(即“下降沿動(dòng)作類型”)。存儲(chǔ)位(Storage Bit)中自動(dòng)存儲(chǔ)了OSF指令所在階梯的梯級(jí)條件(為真則存儲(chǔ)1,為假則存儲(chǔ)0)。下面我們通過具體的梯形圖來進(jìn)一步理解這三條指令:例2:討論改變以下開關(guān)狀態(tài)時(shí),燈的變化情況。1) RUNG0和 RUNG1中,當(dāng)I:0/4閉合時(shí)(即產(chǎn)生一個(gè)上升沿信號(hào)),ONS指令的梯級(jí)條件由假到真變化,它的指令邏輯變?yōu)檎?,使O:4/0和O:4/1兩燈都亮。到下一個(gè)掃描周期時(shí)ONS指令邏輯不再為真,O:4/1滅,O:4/0由于鎖存仍為亮。B3:0/0位存儲(chǔ)了ONS指令的梯級(jí)條件。即I:0/4閉合
15、,B3:0/0為1,O:4/3亮,I:0/4斷開,B3:0/0為0,O:4/3滅。只要I:0/4閉合,O:4/2就鎖存為亮,直到I:0/9解鎖。2) RUNG2、 RUNG3和RUNG4中,當(dāng)I:0/6閉合時(shí)(即產(chǎn)生一個(gè)上升沿信號(hào)),OSR指令的梯級(jí)條件由假到真變化,使在輸出位B3:0/2產(chǎn)生一個(gè)周期正脈沖,使O:4/5和O:4/6兩燈都亮。到下一個(gè)掃描周期時(shí),輸出位B3:0/2不再有正脈沖,O:4/6滅,O:4/5由于鎖存仍為亮。B3:0/1位存儲(chǔ)了OSR指令的梯級(jí)條件。同上步的分析,I:0/6閉合,B3:0/1為1,O:4/4亮,I:0/6斷開,B3:0/1為0,O:4/4滅。3) RUN
16、G5、RUNG6和RUNG7中,當(dāng)I:0/8斷開時(shí)(即產(chǎn)生一個(gè)下降沿信號(hào)),OSF指令的梯級(jí)條件由真到假變化,使在輸出位B3:0/4產(chǎn)生一個(gè)周期正脈沖,使O:4/8和O:4/9兩燈都亮。到下一個(gè)掃描周期時(shí),輸出位B3:0/4不再有正脈沖,O:4/9滅,O:4/8由于鎖存仍為亮。B3:0/3位存儲(chǔ)了OSF指令的梯級(jí)條件。分析同上。4) RUNG8中,I:0/9用于為上面鎖存的小燈解鎖。第二章 計(jì)時(shí)器和計(jì)數(shù)器指令計(jì)時(shí)器和計(jì)數(shù)器指令屬輸出指令,用于控制基于時(shí)間和事件記數(shù)的操作,包括:1. 延時(shí)導(dǎo)通計(jì)時(shí)器(TON)2. 延時(shí)斷開計(jì)時(shí)器(TOF)3. 保持型計(jì)時(shí)器(RTO)4. 加計(jì)數(shù)(CTU)5. 減
17、計(jì)數(shù)(CTD)6. 計(jì)時(shí)器/計(jì)數(shù)器復(fù)位(RES)下面逐個(gè)加以介紹。1. 延時(shí)導(dǎo)通計(jì)時(shí)器(TON)延時(shí)導(dǎo)通計(jì)時(shí)器(TON)的功能是梯級(jí)條件變真后經(jīng)過一段延時(shí)時(shí)間對輸出動(dòng)作。它相當(dāng)于繼電器控制系統(tǒng)中的通電延時(shí)繼電器。TON是否啟動(dòng)由它前面的輸入指令控制,而通電延時(shí)繼電器是由硬觸點(diǎn)控制。TON的延時(shí)時(shí)間可任意設(shè)定,而通電延時(shí)繼電器是由它的物理結(jié)構(gòu)決定,不能夠任意改動(dòng)。因此TON指令更加方便靈活。使用TON指令時(shí)需要提供以下參數(shù):1) 計(jì)時(shí)器(Timer):指明所使用的計(jì)時(shí)器元素(如T4:0)。2) 時(shí)基(Time base):計(jì)時(shí)器每次計(jì)時(shí)的遞增值。Micrologix 1500系列可選擇 1S、0
18、.01S和0.001S三種,共可累計(jì)32767個(gè)時(shí)基間隔。它決定了計(jì)時(shí)器的精度。3) 預(yù)置值(Preset):用于設(shè)定延時(shí)時(shí)間,可設(shè)為整數(shù)-3276832767。4) 累計(jì)值(Accum):是一個(gè)動(dòng)態(tài)值,表明了到目前計(jì)時(shí)器已經(jīng)延時(shí)的數(shù)值。當(dāng)梯級(jí)條件變真時(shí),TON開始計(jì)時(shí),直到下列條件中的任何一個(gè)發(fā)生為止:累計(jì)值=預(yù)置值;梯級(jí)變假;復(fù)位計(jì)時(shí)器。不論計(jì)時(shí)器是否計(jì)到時(shí),梯級(jí)變假時(shí)計(jì)時(shí)器復(fù)位累計(jì)值(把累計(jì)值清0)。TON的狀態(tài)位可用作對輸出的控制信號(hào)。正確靈活的應(yīng)用這些狀態(tài)位是掌握TON編程的關(guān)鍵。TON的狀態(tài)位及它們的變化情況如下:狀態(tài)位置位條件保持置位直到下列情況發(fā)生DN累計(jì)值>=預(yù)置值梯級(jí)
19、變?yōu)榧賂T梯級(jí)為真且累計(jì)值<預(yù)置值梯級(jí)變?yōu)榧倩虮籇N置位EN梯級(jí)為真梯級(jí)變?yōu)榧僮⒁釺T位和EN位的區(qū)別。TON工作的時(shí)序圖為:ONOFFONOFFONOFFONOFFONOFF2分鐘3分鐘通延時(shí)階梯條件計(jì)時(shí)器使能位計(jì)時(shí)器計(jì)時(shí)位計(jì)時(shí)器完成位輸出設(shè)備(完成位控制)時(shí)間累計(jì)值0120計(jì)時(shí)器預(yù)置值=180180 圖3.21 TON時(shí)序圖例4:有三個(gè)馬達(dá)MTR1、MTR2、MTR3,按先后次序啟動(dòng)。要求MTR1先啟動(dòng),三秒后MTR2啟動(dòng),再過5秒后MTR3啟動(dòng)。停止時(shí)三個(gè)馬達(dá)同時(shí)停止,請模擬這個(gè)過程。分析:I:3/0為啟動(dòng)按鈕,I:3/1為停止按鈕,它們都為點(diǎn)動(dòng)按鈕。用燈O:4/0 、O:4/1、
20、 O:4/2模擬馬達(dá)MTR1、MTR2、MTR3。當(dāng)觸發(fā)I:3/0時(shí),ONS指令的梯級(jí)條件由假到真變化,所以有一個(gè)周期的正脈沖輸出,小燈O:4/0鎖存為亮,B3:0/0位鎖存為1,計(jì)時(shí)器T4:0開始計(jì)數(shù)。當(dāng)T4:0的累計(jì)值=預(yù)置值(3S)時(shí),T4:0/DN置位,小燈O:4/1鎖存為亮,且計(jì)時(shí)器T4:1開始計(jì)數(shù)。當(dāng)T4:1的累計(jì)值=預(yù)置值(5S)時(shí),T4:1/DN置位,小燈O:4/2鎖存為亮。當(dāng)觸發(fā)I:3/1時(shí),O:4/0 、O:4/1、 O:4/2都被解鎖,燈滅。例5:某交通要道,南北方向車流量大,東西方向車流量小。南北方向綠燈亮15秒,東西方向綠燈亮10秒。試編一程序模擬交通燈變化。分析:I
21、:3/0為啟動(dòng)按鈕,I:3/1為停止按鈕,它們都為點(diǎn)動(dòng)按鈕。燈O:4/0為南北綠燈,O:4/2為南北紅燈,O:4/6為東西綠燈,O:4/8為東西紅燈。當(dāng)觸發(fā)I:3/0,使能ONS指令,燈O:4/0、O:4/8亮,O:4/2、O:4/6滅,B3:0/1置位為1,T4:0開始工作。T4:0計(jì)時(shí)15S后動(dòng)作,T4:0/DN閉合,O:4/0、O:4/8滅,O:4/2、O:4/6亮,T4:1開始工作。T4:1計(jì)時(shí)10S后動(dòng)作,T4:1/DN閉合,其XIC(檢查斷開)邏輯變?yōu)榧?,T4:0被復(fù)位,T4:0/DN變?yōu)?,所以T4:1也被復(fù)位,其XIC邏輯又變?yōu)檎?,燈O:4/0、O:4/8亮,O:4/2、O:4
22、/6滅,T4:0又開始工作。除非觸發(fā)停止按鈕I:3/1使它們停止和復(fù)位,程序?qū)⒁恢毖h(huán)執(zhí)行,這樣就實(shí)現(xiàn)了交通燈交替亮滅。2. 延時(shí)斷開計(jì)時(shí)器(TOF)延時(shí)斷開計(jì)時(shí)器(TOF)的功能是梯級(jí)條件變假后經(jīng)過一段延時(shí)時(shí)間對輸出動(dòng)作。它相當(dāng)于繼電器控制系統(tǒng)中的斷電延時(shí)繼電器。TOF指令各參數(shù)的含義與TON相同。當(dāng)梯級(jí)條件變假時(shí),TOF開始計(jì)時(shí),直到下列條件中的任何一個(gè)發(fā)生為止:累計(jì)值=預(yù)置值;梯級(jí)變真。不論計(jì)時(shí)器是否計(jì)到時(shí),梯級(jí)變真時(shí)計(jì)時(shí)器復(fù)位累計(jì)值。TOF指令的狀態(tài)位變化情況如下,注意它們和TON的區(qū)別。狀態(tài)位置位條件保持置位直到下列情況發(fā)生DN梯級(jí)為真梯級(jí)變?yōu)榧偾依塾?jì)值>=預(yù)置值TT梯級(jí)為假且
23、累計(jì)值<預(yù)置值梯級(jí)變?yōu)檎婊駾N被復(fù)位EN梯級(jí)為真梯級(jí)變?yōu)榧贌o論任何情況都不要用RES指令對TOF復(fù)位。因?yàn)镽ES總是清零狀態(tài)位及累計(jì)值,若對TOF復(fù)位,則DN,TT,EN被清零,可能會(huì)使指令邏輯陷于混亂,發(fā)生不可預(yù)知的結(jié)果。3. 保持型計(jì)時(shí)器(RTO) TON和TOF計(jì)時(shí)器在梯級(jí)條件變假時(shí),累計(jì)值和DN位都要被復(fù)位,梯級(jí)條件變?yōu)檎婧笥种匦掠?jì)時(shí),有時(shí)這會(huì)給某些應(yīng)用帶來不便。這時(shí)我們可以采用能累積計(jì)時(shí)的RTO指令。當(dāng)梯級(jí)條件為真時(shí),RTO指令開始計(jì)時(shí)。當(dāng)下列任何情況發(fā)生時(shí),RTO指令保持它的累計(jì)值:梯級(jí)變假;用戶改變到編程方式;處理器出錯(cuò)或斷電。 當(dāng)處理器重新運(yùn)行或階梯變真時(shí),RTO計(jì)時(shí)器從
24、保持的值開始繼續(xù)計(jì)時(shí),直到累計(jì)值達(dá)到預(yù)置值。如果需要復(fù)位其累計(jì)值和狀態(tài)位,可在另一階梯中用RES指令對相同地址的計(jì)時(shí)器復(fù)位。無論任何情況,復(fù)位指令總是優(yōu)先執(zhí)行。即只要使能復(fù)位指令,無論計(jì)時(shí)器是否正在計(jì)時(shí),累計(jì)值及狀態(tài)位總被復(fù)位為0。RTO指令的狀態(tài)位的變化情況如下:狀態(tài)位置位條件保持置位直到下列情況發(fā)生DN累計(jì)值>=預(yù)置值相應(yīng)的RES指令使能TT梯級(jí)為真且累計(jì)值<預(yù)置值梯級(jí)變?yōu)榧倩虮籇N置位EN梯級(jí)為真梯級(jí)變?yōu)榧?. 加計(jì)數(shù)(CTU)CTU指令在-3276832767范圍內(nèi)向上計(jì)數(shù)。每一次梯級(jí)條件由假變真時(shí)CTU累計(jì)值加1。當(dāng)梯級(jí)再次變?yōu)榧贂r(shí)累計(jì)值保持不變。當(dāng)累計(jì)值等于或超過預(yù)置值
25、時(shí),CTU指令置位完成位DN。編程時(shí)可以用CTU指令計(jì)數(shù)某些動(dòng)作來引發(fā)事件,比如通過計(jì)數(shù)一個(gè)存儲(chǔ)位的變化或一個(gè)外設(shè)的導(dǎo)通關(guān)斷變化次數(shù)來讓另一外設(shè)動(dòng)作。CTU指令的狀態(tài)位及變化情況為:狀態(tài)位置位條件保持置位直到下列情況發(fā)生OV累計(jì)值返回到-32768(即從32767繼續(xù)計(jì)數(shù))相應(yīng)的RES指令使能或者用CTD指令使累計(jì)值<=32767DN累計(jì)值>=預(yù)置值累計(jì)值<預(yù)置值CU梯級(jí)為真梯級(jí)變?yōu)榧倩蛳鄳?yīng)的RES指令使能CTU工作的時(shí)序圖為:由計(jì)數(shù)器控制階梯上的輸出指令ONOFFONOFFONOFFONOFFONOFF控制計(jì)數(shù)器的階梯條件計(jì)時(shí)器使能位.EN控制復(fù)位指令的階梯條件完成位.DN
26、計(jì)數(shù)器累計(jì)值012340計(jì)數(shù)器預(yù)置值=4圖3.22 CTU時(shí)序圖例7:試編一個(gè)自動(dòng)增計(jì)數(shù)器。分析:I:0/4為保持式按鈕,I:0/9為點(diǎn)動(dòng)式按鈕。在RUNG0中,當(dāng)I:0/4使能,啟動(dòng)T4:0工作。延時(shí)1S后動(dòng)作,T4:0/DN置位,其常閉斷開T4:0被復(fù)位,T4:0/DN清0,其常閉閉合又啟動(dòng)T4:0工作。如此循環(huán)執(zhí)行。相當(dāng)于每1S,T4:0/DN位產(chǎn)生一個(gè)正脈沖。這樣RUNG0構(gòu)成了一個(gè)1S脈沖發(fā)生器,向RUNG1中每1S提供一個(gè)正脈沖,每來一個(gè)正脈沖C5:0的累計(jì)值就增1,這樣就實(shí)現(xiàn)了自動(dòng)增計(jì)數(shù)器。只要I:0/9使能,C5:0的累計(jì)值就立即復(fù)位為0。5. 減計(jì)數(shù)(CTD)CTD指令在-3
27、276832767范圍內(nèi)向下計(jì)數(shù)。每一次梯級(jí)條件由假變真時(shí)CTU累計(jì)值減1。當(dāng)梯級(jí)再次變?yōu)榧贂r(shí)累計(jì)值保持不變。當(dāng)累計(jì)值等于或超過預(yù)置值時(shí),CTU指令置位完成位DN。編程時(shí)可以用它計(jì)數(shù)某些動(dòng)作來引發(fā)其它事件,比如通過計(jì)數(shù)一個(gè)存儲(chǔ)位的變化或一個(gè)外設(shè)的導(dǎo)通關(guān)斷變化來控制另一外設(shè)動(dòng)作。狀態(tài)位置位條件保持置位直到下列情況發(fā)生UN累計(jì)值返回到32767(即從-32768繼續(xù)計(jì)數(shù))相應(yīng)的RES指令使能或者用CTD指令使累計(jì)值>=-32767DN累計(jì)值>=預(yù)置值累計(jì)值<預(yù)置值CD梯級(jí)為真梯級(jí)變?yōu)榧倩蛳鄳?yīng)的RES指令使能6. 計(jì)時(shí)器/計(jì)數(shù)器復(fù)位(RES)RES指令用于復(fù)位計(jì)時(shí)器(除TOF)
28、160;和計(jì)數(shù)器。當(dāng)梯級(jí)條件為真時(shí)RES指令復(fù)位相同尋址位的計(jì)時(shí)器或計(jì)數(shù)器(把狀態(tài)位和累計(jì)值清0)。無論任何情況RES指令優(yōu)先執(zhí)行。例8:現(xiàn)有一個(gè)液體混合容器,有兩個(gè)輸入液體閥和一個(gè)輸出液體閥。使用程序模擬這三個(gè)閥的流量情況。分析:用計(jì)時(shí)器T4:1,T4:2,T4:3來模擬流速。在RUNG1中,當(dāng)使能I:0/4,運(yùn)行TON指令。經(jīng)過1.6S,T4:1/DN置位。其常閉斷開后T4:1馬上復(fù)位,T4:1/DN又立即被復(fù)位,又運(yùn)行TON指令。如此循環(huán)執(zhí)行。相當(dāng)于每1.6S,T4:1/DN位產(chǎn)生一個(gè)脈沖。同理,T4:2/DN每1.5S,T4:3/DN每1S產(chǎn)生一個(gè)脈沖。用計(jì)數(shù)器C5:0的累計(jì)值來模擬容
29、器中的液位。每當(dāng)T4:1/DN位產(chǎn)生一個(gè)脈沖,C5:0的累計(jì)值就加1。形象的說,就好象每1.6S注入一單位的液體。對T4:3/DN用的是減計(jì)數(shù)器,每當(dāng)T4:3/DN位產(chǎn)生一個(gè)脈沖,C5:0的累計(jì)值就減1。就好象每1S從容器里放掉一單位的液體。當(dāng)I:0/4使能,每1.6秒 C5:0的累計(jì)值就加1。當(dāng)I:0/5使能,每1.5秒 C5:0的累計(jì)值就加1。當(dāng)I:0/6使能,每1秒 C5:0的累計(jì)值就減1。這樣就模擬了三個(gè)閥的流量情況。本程序也有不足之處,例如計(jì)數(shù)器的累計(jì)值可以無限制的增加和減小,這不符合客觀實(shí)際情況,在后面的章節(jié)里我們會(huì)用另外的程序來解決這個(gè)問題。第三章 比較指令比較指令屬輸入指令,用
30、于比較兩值作為邏輯梯級(jí)連續(xù)的條件。例如,小于(LES)指令有兩個(gè)操作數(shù),如果第一個(gè)小于第二個(gè),那么LES指令為真。比較指令共包括:1. 等于(EQU)2. 不等于(NEQ)3. 小于(LES)4. 小于或等于(LEQ)5. 大于(GRT)6. 大于或等于(GEQ)7. 相等屏蔽比較(MEQ)8. 極限比較(LIM)它們的用法大致相同,掌握了一個(gè)也就掌握了其它的。下面逐個(gè)加以介紹。1. 等于(EQU)使用EQU指令比較二值是否相等。如果源A的值和源B的值相等,指令邏輯為真,否則為假。操作數(shù)為兩個(gè)數(shù)的比較指令(比如有源A和源B兩個(gè)操作數(shù)的EQU指令)一般要求的數(shù)據(jù)尋址方式為:源A必須為地址,源B可
31、為常數(shù)或地址。例1:讀程序分析結(jié)果。分析:上面程序即為EQU指令的一個(gè)簡單應(yīng)用。RUNG0中,Source A與Source B的值相等,小燈O:4/0亮。RUNG1中,Source A與Source B的值不等,小燈O:4/1滅。2. 不等于(NEQ)使用NEQ指令比較二值是否不相等。如果源A的值和源B的值不相等,指令邏輯為真,否則為假。3. 小于(LES)使用LES指令比較一個(gè)值是否小于另一個(gè)值。如果源A的值小于源B的值,指令邏輯為真,否則為假。4. 小于或等于(LEQ)使用LEQ指令比較一個(gè)值是否小于或等于另一個(gè)值。如果源A的值小于或等于源B的值,指令邏輯為真,否則為假。5. 大于(GR
32、T)使用GRT指令比較一個(gè)值是否大于另一個(gè)值。如果源A的值大于源B的值,指令邏輯為真,否則為假。6. 大于或等于(GEQ)使用GEQ指令比較一個(gè)值是否大于或等于另一個(gè)值。如果源A的值大于或等于源B的值,指令邏輯為真,否則為假。7. 相等屏蔽比較(MEQ)使用MEQ指令比較源地址中的數(shù)據(jù)和比較地址中的數(shù)據(jù),允許被一個(gè)獨(dú)立字屏蔽。MEQ相當(dāng)于把源值和比較值的數(shù)據(jù)分別與屏蔽字作位與位的邏輯與操作,然后比較兩個(gè)所得結(jié)果。如果相等,指令邏輯為真,否則為假??煽醋髌帘巫种袕?fù)位的位屏蔽數(shù)據(jù),置位的位通過數(shù)據(jù)。因此只比較源值和比較值的在屏蔽字中的相應(yīng)位為1的那些位。 例如:上面程序中,屏蔽字設(shè)為了00FFh,
33、所以只比較B:3/0和B:3/1的低八位,而屏蔽掉了高八位。只要低八位相等,指令邏輯就為真,小燈O:4/0亮。8. 極限比較(LIM)使用LIM指令,根據(jù)用戶設(shè)定的極限值,比較某值是在指定范圍之內(nèi)或之外。指令的真假狀態(tài):如果下限值小于或等于上限值,當(dāng)比較值在極限范圍內(nèi)或等于任一極限值時(shí),指令邏輯為真,否則為假。如果下限值大于上限值,當(dāng)比較值在極限范圍內(nèi),指令邏輯為假。如果比較值等于任一極限值或超出極限范圍,指令為真。下限值,比較值,和上限值可以是字地址或常數(shù),組合受到以下限制:如果比較參數(shù)是一個(gè)常數(shù),下限參數(shù)和上限參數(shù)必須是字地址。如果比較參數(shù)是一個(gè)字地址,下限參數(shù)和上限參數(shù)可以是常數(shù)或字地址
34、。例2:現(xiàn)有一個(gè)液體混合容器,有兩個(gè)輸入液體閥和一個(gè)輸出液體閥。使用程序模擬這三個(gè)閥的流量情況。并設(shè)置液位上下限報(bào)警,使相應(yīng)閥門關(guān)閉。分析:本程序?yàn)榈诙吕?的問題。前半部分和例8的思想一樣。在后面加上了范圍判斷的指令,實(shí)現(xiàn)了上下限的報(bào)警,和相應(yīng)閥門關(guān)閉。若同時(shí)有注入和流出閥門打開,上面程序可自動(dòng)循環(huán)。第四章 算術(shù)指令算術(shù)指令屬輸出指令,當(dāng)梯級(jí)條件為真時(shí),執(zhí)行指定的算術(shù)運(yùn)算,輸出結(jié)果存放到一個(gè)指定的存儲(chǔ)單元。并根據(jù)結(jié)果自動(dòng)設(shè)置狀態(tài)位。例如,加和減指令都是取兩個(gè)輸入值,進(jìn)行加或減運(yùn)算,運(yùn)算結(jié)果存放到指定的目的地址內(nèi)。并根據(jù)結(jié)果自動(dòng)設(shè)置了狀態(tài)位。算術(shù)指令包括:1. 加指令(ADD)2. 減指令(S
35、UB)3. 乘指令(MUL)4. 除指令(DIV)5. 平方根(SQR)6. 取反指令(NEG)7. 整數(shù)轉(zhuǎn)換成BCD碼(TOD)8. 從BCD碼轉(zhuǎn)換成整數(shù)(FRD)9. 線性轉(zhuǎn)換(SCP)10. 編碼(ENC)11. 解碼(DCD)它們的用法也大致相同,下面逐個(gè)加以介紹。1. 加指令(ADD)ADD指令使源A和源B的值相加,結(jié)果存放到目的地址內(nèi)。例1:讀程序分析結(jié)果。分析:上面程序?yàn)锳DD指令的一個(gè)簡單應(yīng)用。ADD指令把Source A和Source B的值相加,結(jié)果存入Dest中(4+9,結(jié)果13存入N7:2)。2. 減指令(SUB)SUB指令使源A的值減去源B的值,結(jié)果存放到目的地址內(nèi)。
36、3. 乘指令(MUL)MUL指令使源A的值乘以源B的值,結(jié)果存放到目的地址內(nèi)。4. 除指令(DIV) DIV指令使源A的值被源B的值所除。商四舍五入存放在目的地址內(nèi)。5. 平方根(SQR)SQR指令計(jì)算源值絕對值的平方根,結(jié)果四舍五入存放在目的地址內(nèi)。6. 取反指令(NEG)NEG指令改變源值的符號(hào)然后存放到目的地址內(nèi)。例如,如果源的值是3,目的數(shù)據(jù)將是-3。7. 整數(shù)轉(zhuǎn)換成BCD碼(TOD)BCD指令把16-位整數(shù)值轉(zhuǎn)換成BCD碼。如果輸入的整數(shù)是負(fù)數(shù),則轉(zhuǎn)換其絕對值。例:試編制一個(gè)6位數(shù)的自動(dòng)計(jì)數(shù)器,用BCD碼分別在N7:0和N:1上表示。分析:MicroLogix1500中,計(jì)數(shù)器向上計(jì)
37、數(shù)只能計(jì)到32767,在計(jì)數(shù)范圍較大的場合常感到不夠用,但是如果采用多個(gè)數(shù)據(jù)進(jìn)位的關(guān)系來表達(dá),幾乎可以計(jì)到無限。我們可以先用一個(gè)計(jì)數(shù)器來表示六位計(jì)數(shù)器的低四位,用另一個(gè)計(jì)數(shù)器來模擬六位計(jì)數(shù)器的高兩位。本程序中,RUNG0產(chǎn)生計(jì)數(shù)脈沖,RUNG1用一個(gè)計(jì)數(shù)器來表示六位計(jì)數(shù)器的低四位,RUNG2用另一個(gè)計(jì)數(shù)器來表示六位計(jì)數(shù)器的高兩位。RUNG3兩位計(jì)數(shù)器一旦完成計(jì)數(shù)(即六位計(jì)數(shù)器已完成999999),兩位計(jì)數(shù)器清0復(fù)位并輸出信號(hào)。RUNG4和RUNG5用TOD指令把兩個(gè)計(jì)數(shù)器的累計(jì)值變?yōu)锽CD碼在整數(shù)文件中顯示,N7:0顯示低四位,N7:1顯示高兩位。8. 從BCD碼轉(zhuǎn)換成整數(shù)(FRD)FRD指令
38、把BCD碼轉(zhuǎn)換成16-位整數(shù)值。如果源數(shù)據(jù)不符合BCD碼格式則發(fā)生處理器出錯(cuò)。9. 線性轉(zhuǎn)換(SCP)SCP指令可對一個(gè)數(shù)進(jìn)行線性轉(zhuǎn)換。Input 為轉(zhuǎn)換的輸入值。Input Min Input Max為設(shè)定的輸入值的范圍。Scaled Min Scaled Max為希望得到的轉(zhuǎn)換結(jié)果的范圍。當(dāng)梯級(jí)條件為真,它可以把輸入值(Input)線性轉(zhuǎn)化到Scaled Min Scaled Max中。轉(zhuǎn)換規(guī)則根據(jù)下面方程:10. 編碼(ENC)ENC指令可以把Source編碼。Source為16位字,并且只能有一位為1,其余位均為0。轉(zhuǎn)換規(guī)則如下: Source Dest0000 0000 0000 0
39、001 00000 0000 0000 0010 10000 0000 0000 0100 20000 0000 0000 1000 30000 0000 0001 0000 40000 0000 0010 0000 50000 0000 0100 0000 60000 0000 1000 0000 70000 0001 0000 0000 80000 0010 0000 0000 90000 0100 0000 0000 100000 1000 0000 0000 110001 0000 0000 0000 120010 0000 0000 0000 130100 0000 0000 000
40、0 141000 0000 0000 0000 1511. 解碼(DCD)DCD指令為ENC指令的逆運(yùn)算。它把源數(shù)據(jù)(Source)的最低4位的轉(zhuǎn)化結(jié)果置入目的地址(Dest)中。轉(zhuǎn)換規(guī)則為上表的逆。第五章 傳送和邏輯指令傳送和邏輯指令屬輸出指令,當(dāng)梯級(jí)條件為真時(shí),執(zhí)行相應(yīng)的傳送或邏輯操作。指令執(zhí)行后,并根據(jù)結(jié)果自動(dòng)設(shè)置狀態(tài)位。傳送和邏輯指令包括:1. 傳送(MOV)2. 屏蔽傳送(MVM)3. 邏輯與(AND)4. 邏輯或(OR)5. 邏輯異或(XOR)6. 邏輯非(NOT)7. 清零(CLR) 下面逐個(gè)加以介紹。1. 傳送(MOV )MOV指令將數(shù)據(jù)從源地址傳送到目的地址。只要梯級(jí)保持為真
41、,每次掃描指令都重新傳送數(shù)據(jù)。2. 屏蔽傳送(MVM)MVM指令將數(shù)據(jù)從源地址傳送到目的地址,并且允許部分目的數(shù)據(jù)被一個(gè)獨(dú)立的字屏蔽。只要梯級(jí)條件保持為真,每次掃描該指令都重新傳送數(shù)據(jù)。上面程序中,數(shù)據(jù)傳送的方式為:屏蔽字中位為0時(shí),源值相應(yīng)位的數(shù)據(jù)不傳送,相當(dāng)于源值和目的值的相應(yīng)位數(shù)據(jù)保持不變。屏蔽字中位為1時(shí),源值相應(yīng)位的數(shù)據(jù)傳送到目的地址的相應(yīng)位,相當(dāng)于MOV指令。1514131211109876543210B3:01100000000110011Mask0000000011111111B3:100001100001100113. 邏輯與(AND)AND指令使源A與源B執(zhí)行位與位的邏輯與
42、操作。結(jié)果存儲(chǔ)在目的地址內(nèi)。4. 邏輯或(OR)OR指令使源A與源B執(zhí)行位與位的邏輯或操作。結(jié)果存儲(chǔ)在目的地址內(nèi)。5. 邏輯異或(XOR)XOR指令使源A與源B執(zhí)行位與位的邏輯異或操作。結(jié)果存儲(chǔ)在目的地址內(nèi)。6. 邏輯非(NOT)NOT指令使源A與源B執(zhí)行位與位的邏輯非操作。結(jié)果存儲(chǔ)在目的地址內(nèi)。7. 清零(CLR)CLR指令使目的地址的值清為0。第六章 移位和順序進(jìn)出指令移位和順序進(jìn)出指令屬輸出指令。每一次梯級(jí)條件由假變真時(shí),移位指令把指定地址內(nèi)的所有位都移動(dòng)一個(gè)位的位置,順序進(jìn)出指令完成一次順序進(jìn)出或比較操作。移位和順序進(jìn)出指令包括:1. 位左移(BSL)2. 位右移(BSR)3. 順序器
43、裝入(SQL)4. 順序器比較(SQC)5. 順序器輸出(SQO)6. FIFO裝入(FFL)7. FIFO卸出(FFU)8. LIFO裝入(LFL)9. LIFO卸出(LFU)下面逐個(gè)加以介紹。1. 位左移(BSL)當(dāng)梯級(jí)條件由假變真時(shí),BSL指令對File文件指定的數(shù)據(jù)向左(向高位)移動(dòng)一位。由Bit Address指定的一位被移入最右位(最低位)。MicroLogix1500中Length的設(shè)定范圍為02048,含義為文件中參與移位的數(shù)據(jù)塊的位數(shù)。但是實(shí)際上只能移位整數(shù)個(gè)字的所有位。參與移位的字?jǐn)?shù)為對Length除以16,再向上取整。如上例,當(dāng)Length的值為16時(shí),實(shí)際上都是移動(dòng)N7
44、:0的16位。2. 位右移(BSR)當(dāng)梯級(jí)條件由假變真時(shí),BSR指令對File文件指定的數(shù)據(jù)向右(向低位)移動(dòng)一位。由Bit Address指定的一位被移入最左位(最高位)。Length的含義與BSL中的相同。例1:O:0.0的預(yù)置狀態(tài)為1111000000000000。試編一程序,其前20S,按每秒一次的速度進(jìn)行左移位;后20S,按每秒一次的速度進(jìn)行右移位。循環(huán)進(jìn)行。分析:本程序借鑒了前面的交通燈設(shè)計(jì)的思想。RUNG1和RUNG2即為交通燈交替亮的實(shí)現(xiàn)方式。只不過這里讓它使B3:1/0和B3:1/1交替置1。RUNG0為1S脈沖發(fā)生器。RUNG3和RUNG4中,B3:1/0、B3:1/1和T
45、4:2/DN共同作為移位控制信號(hào),實(shí)現(xiàn)了循環(huán)左右移位的要求。下面的順序器指令一般用來控制具有連續(xù)和重復(fù)操作特性的自動(dòng)化生產(chǎn)線。順序器指令包括:順序器裝入指令SQL、順序器比較指令SQC、順序器輸出指令SQO。我們結(jié)合下面的程序來體會(huì)這三條指令。3. 順序器裝入(SQL)4. 順序器比較(SQC)5. 順序器輸出(SQO)例2:讀程序分析結(jié)果。分析:RUNG0為3S脈沖發(fā)生器。為RUNG1RUNG3提供脈沖信號(hào)。RUNG1中,#File N9:0為順序器裝入文件,Source N7:0為數(shù)據(jù)源。當(dāng)梯級(jí)條件由假到真變化時(shí),SQL指令從數(shù)據(jù)源讀入16位數(shù)據(jù),把它存入順序器裝入文件。當(dāng)梯級(jí)條件再由假到
46、真變化時(shí),SQL指令再從數(shù)據(jù)源讀入16位數(shù)據(jù),把它存入順序器裝入文件的下一步(字)。如此執(zhí)行Length次(這里為10)。所以上例RUNG1的執(zhí)行結(jié)果為每3S從N7:0讀一次數(shù)據(jù),然后把它們順序裝入N9:0、N9:1、N9:2、一直到N9:9,共執(zhí)行了10次。這時(shí)就可以輕松的讀懂RUNG3了。只不過它還可以設(shè)置獨(dú)立的屏蔽字。每3S從順序器文件讀出一個(gè)數(shù)據(jù)(第1次讀N10:0,第2次讀N10:1,依次類推)。經(jīng)過屏蔽后都送到N11:0。屏蔽位為1的可以通過數(shù)據(jù),屏蔽位為0的不能通過數(shù)據(jù)。這里屏蔽字設(shè)為了0FFFFH,數(shù)據(jù)都可以通過。RUNG2為順序器比較指令SQC。它的執(zhí)行結(jié)果為:每3S從順序器
47、文件N12:0順序讀入一個(gè)數(shù)據(jù),經(jīng)過屏蔽后和源數(shù)據(jù)相比較,如果相等則FD位被置1,否則被置0。例3:每2S從I:0.0讀入一個(gè)數(shù)據(jù),共讀9次,完成順序器裝載。然后將順序器文件按每2S一次的速度依次傳到O:0.0顯示。分析:上面程序?yàn)轫樞蚱鬏斎胼敵龅囊粋€(gè)簡單應(yīng)用。需注意它們需使用不同的控制字。否則將處以混亂狀態(tài)。6. FIFO裝入(FFL)7. FIFO卸出(FFU)FFL和FFU 指令是成對使用的。它們實(shí)際為對數(shù)據(jù)結(jié)構(gòu)中隊(duì)列(FIFO,F(xiàn)irst In First Out,先進(jìn)先出)的操作。FFL相當(dāng)于進(jìn)隊(duì)操作,F(xiàn)FU相當(dāng)于出隊(duì)操作。例4:試編一程序,可以從輸入口I0:0置入10個(gè)數(shù),然后依次
48、在輸出口O0:0顯示。分析:本程序中FFL、FFU指令成對使用,此時(shí)應(yīng)使用相同的控制字。程序運(yùn)行后,前20S,每2S從I0:0讀入一個(gè)數(shù)據(jù),然后存入隊(duì)列文件#N7:0中。后20S,每2S從隊(duì)列文件#N7:0中讀出一個(gè)數(shù)據(jù),然后顯示在O0:0上(按先進(jìn)先出的順序讀數(shù))。8. LIFO裝入(LFL)9. LIFO卸出(LFU)LFL和LFU 指令是成對使用的。它們實(shí)際為對數(shù)據(jù)結(jié)構(gòu)中堆棧(LIFO,Last In First Out,后進(jìn)先出)的操作。LFL相當(dāng)于進(jìn)棧操作,LFU相當(dāng)于出棧操作。若將上例的FFL、FFU指令換為LFL、LFU指令,則在輸出口O0:0上,首先顯示最后輸入的數(shù)據(jù),然后再顯
49、示倒數(shù)第2次輸入的數(shù)據(jù),依次類推,最后顯示第1次輸入的數(shù)據(jù)。第七章 程序流程指令程序流程指令控制梯形圖程序執(zhí)行的順序。有代表性的應(yīng)用這些指令,可提高程序的執(zhí)行效率和可讀性,也有利于程序的故障檢測。程序流程指令包括:1. 程序跳轉(zhuǎn)(JMP、LBL)2. 跳轉(zhuǎn)到子程序(JSR、SBR、RET)3. 暫停(TND)4. 中斷(SUS)5. 主控程序(MCR)下面分別加以介紹。1. 程序跳轉(zhuǎn)(JMP、LBL)JMP指令使處理器在執(zhí)行梯形圖程序時(shí)跳過一些梯級(jí),LBL指令是具有相同標(biāo)號(hào)的JMP指令的跳轉(zhuǎn)目標(biāo)。成對使用跳轉(zhuǎn)和標(biāo)號(hào)指令,可以跳轉(zhuǎn)到程序的某一部分。若跳轉(zhuǎn)指令為真,則處理器從JMP梯級(jí)跳到LBL梯
50、級(jí)繼續(xù)執(zhí)行程序,而且既可以可以向前跳,也可以向后跳。若跳轉(zhuǎn)指令為假,則程序忽略JMP指令。向后跳向一個(gè)標(biāo)號(hào)省略了某段程序,故而縮短了掃描時(shí)間。向前跳轉(zhuǎn)可使處理器反復(fù)執(zhí)行一段程序,直到其邏輯完成為止。設(shè)JMP和LBL指令標(biāo)號(hào)的設(shè)置范圍為0999。上例中,當(dāng)I:0/6使能,程序便跳過RUNG1,直接執(zhí)行RUNG2。當(dāng)I:0/6斷開,程序不跳轉(zhuǎn),繼續(xù)執(zhí)行RUNG1。2. 跳轉(zhuǎn)到子程序(JSR、SBR、RET)在梯形圖程序中,可以把在很多處都要執(zhí)行的部分做成子程序,這樣可以使程序更加清晰,并且節(jié)省存儲(chǔ)空間。新建子程序的方法為:1) 打開RSLogix 500編程界面。2) 鼠標(biāo)右鍵點(diǎn)擊左邊目錄中的“P
51、rogram Files”。3) 在彈出的菜單中單擊“New”。4) 彈出“Create Program File”對話框。填入所欲創(chuàng)建的子程序號(hào)(3255),單擊“OK”即可。主程序的文件號(hào)為2(即LAD 2)。JSR、SBR和RET指令使得處理器跳到梯形圖圖程序中的一個(gè)獨(dú)立的子程序文件,并對它進(jìn)行一次掃描,然后返回出發(fā)點(diǎn)。JSR指令使處理器跳到指定的子程序文件。如上例,在主程序中需要跳轉(zhuǎn)到子程序的地方加入JSR指令,參數(shù)為子程序的文件號(hào)。SBR指令必須在子程序的第一條指令的第一梯級(jí)。是否使用該指令是可選的,為了使程序清晰建議大家使用它。在子程序的末尾用RET指令返回到主程序。當(dāng)JSR指令的
52、梯級(jí)條件變真時(shí),處理器便跳轉(zhuǎn)到子程序中。在用JSR指令編程時(shí),應(yīng)注意:1) 每一個(gè)屬于主程序外部的子程序必須有自己的文件并且由唯一的描述符來識(shí)別。2) 除了子程序文件的第一個(gè)SBR指令外,主程序不能跳轉(zhuǎn)到子程序中任何別的地方。3) 可以嵌套多達(dá)8個(gè)子程序文件。子程序文件嵌套:可在一個(gè)程序文件中嵌套多達(dá)8個(gè)子程序。也就是說,只要子程序不超過7級(jí),便可讓處理器從主程序跳向一個(gè)子程序,然后再從一個(gè)子程序跳轉(zhuǎn)到另一個(gè)子程序。處理器返回路徑與此相反,在RET指令處,處理器自動(dòng)的返回到先前JSR指令后的下一條指令,并且在返回主程序之前一直遵循此執(zhí)行過程。3. 暫停(TND)當(dāng)TND指令梯級(jí)條件為真時(shí),處理
53、器停止掃描程序的其余部分并更新I/O,并從主程序的第一條指令處恢復(fù)執(zhí)行程序掃描。在調(diào)試程序或查找程序故障時(shí),可插入TND指令,它只允許程序運(yùn)行到它所在的程序?yàn)橹?。在程序中逐步的移?dòng)此指令,以調(diào)試一段新的程序,還可以用它來作為主程序和本地子程序的一個(gè)分界線。4. 中斷(SUS)當(dāng)SUS指令使能時(shí),它使處理器進(jìn)入掛起模式并且在狀態(tài)文件的字7(S:7)存儲(chǔ)掛起ID。所有的輸出被停止使能。在程序調(diào)試和系統(tǒng)故障檢測時(shí)用這一指令可獲得或查明具體條件。當(dāng)編程該指令時(shí)輸入掛起ID,編號(hào)范圍是-32768 32767。如上例,當(dāng)I:0/8使能,執(zhí)行SUS指令,它使處理器掛起,程序中斷執(zhí)行。打開狀態(tài)文件,可看到S:7的值為4444,中斷文件號(hào)為2(主文件)。5. 主控程序(MCR)成對使用MCR指令可創(chuàng)建一程序區(qū)域。它可關(guān)斷此區(qū)域內(nèi)所有非保持型輸出。非保持型輸出在其所在梯級(jí)條件變假時(shí)被復(fù)位。當(dāng)開始的MCR梯級(jí)條件為真時(shí),每個(gè)梯級(jí)根據(jù)各自的輸入條件執(zhí)行MCR區(qū)域(好象MCR不存在一樣)。當(dāng)開始的MCR梯級(jí)條件為假時(shí),無論每個(gè)梯級(jí)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025農(nóng)村土地承包合同樣本2
- 2025工程承包施工合同
- 調(diào)研報(bào)告模板范文初中
- 2025房屋租賃合同及附件
- 運(yùn)營述職報(bào)告范文
- 《基本動(dòng)作》課件
- 課題申報(bào)書:公共價(jià)值視域下高校代表性成果評價(jià)制度的困境透視與改進(jìn)路徑研究
- 課題申報(bào)書:高校畢業(yè)生就業(yè)研究專項(xiàng)
- 《D小人醫(yī)藥系列》課件
- 課題申報(bào)書:高水平開放格局下高校海外科技人才引進(jìn)政策優(yōu)化研究
- 國家開放大學(xué)《管理英語3》章節(jié)測試參考答案
- 工程光學(xué)下習(xí)題庫整理匯總
- 學(xué)生對科學(xué)實(shí)驗(yàn)課調(diào)查問卷
- NSE型板鏈斗式提升機(jī)(中文)
- ZN12-10真空斷路器系列概述
- 盧家宏《我心永恒MyHeartWillGoOn》指彈吉他譜
- 體檢中心建設(shè)標(biāo)準(zhǔn)
- 閥門的壓力試驗(yàn)規(guī)范
- 鄭家坡鐵礦充填系統(tǒng)設(shè)計(jì)
- 2021江蘇學(xué)業(yè)水平測試生物試卷(含答案)
- 裝飾裝修工程完整投標(biāo)文件.doc
評論
0/150
提交評論