RSLOGIX500指令quanji_第1頁(yè)
RSLOGIX500指令quanji_第2頁(yè)
RSLOGIX500指令quanji_第3頁(yè)
RSLOGIX500指令quanji_第4頁(yè)
RSLOGIX500指令quanji_第5頁(yè)
已閱讀5頁(yè),還剩63頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

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ù)指令64第一章 位指令位指令可對(duì)數(shù)據(jù)的單個(gè)位進(jìn)行操作。在運(yùn)行時(shí),處理器可以根據(jù)其所在梯級(jí)的邏輯條件置位或復(fù)位一位。應(yīng)用程序可以根據(jù)需要對(duì)一位尋址任意次。本章第一節(jié)介紹位指令地址可使用的數(shù)據(jù)文件,第二節(jié)介紹基本的位指令。第一節(jié) 數(shù)據(jù)文件系統(tǒng)默認(rèn)的數(shù)據(jù)文件分為以下幾種類型:1. 輸出和輸入數(shù)據(jù)文件(O0:和I1:)2. 狀態(tài)文件(S2:)3. 位

2、文件(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)文件,等等)。下面對(duì)這些系統(tǒng)默認(rèn)的文件類型分別予以介紹。1. 輸出和輸入數(shù)據(jù)文件(O0:和I1:)文件O0中的各位表示外部的輸出,文件I1中的各位表示外部的輸入。在大多數(shù)情況下,這些文件中的每個(gè)16位字號(hào)與位于控制器內(nèi)的一槽相對(duì)應(yīng),位號(hào)與相應(yīng)的輸入或輸出端子號(hào)對(duì)應(yīng)。輸出和輸入的地址格式用e表示槽號(hào),s表示字號(hào)。處理文件指令時(shí),數(shù)據(jù)文件元素按e.s(槽號(hào)和字號(hào))格式一起使用。格式說(shuō)明O:e.s/bI:e.s

3、/bO輸出I輸入:元素分隔符e槽號(hào)(十進(jìn)制)0號(hào)槽,即第一個(gè)框架中靠近電源的槽,用于處理器模塊。接下來(lái)的是I/O槽(130)。.字分隔符s字號(hào)如果某槽的I/O點(diǎn)數(shù)超過(guò)16時(shí)最好用字號(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ù)超過(guò)16個(gè)時(shí),尋址位有兩種表示方法:使用字、位尋址和直接位尋址。如:MicroLogix 1500系列輸出0槽有64點(diǎn)。尋址O:0.2/13時(shí),也可寫為O:0/45。缺省值:用戶編

4、程設(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)信息。控制可通過(guò)設(shè)置相應(yīng)的控制位來(lái)實(shí)現(xiàn),這首先需要了解狀態(tài)文件中每個(gè)字、每個(gè)字節(jié)的功能。詳細(xì)說(shuō)明請(qǐng)參閱SLC 500 and Micrologix 1000 指令集參考手冊(cè)附錄A。狀態(tài)文件不能被增加或刪除,尋址狀態(tài)文件的位和字的格式為:S:e/b 各位含義同I/O文件。舉例:S:1/15 元素1,位15。這是“首次掃描位”用戶在程序中可以使用它來(lái)初始化指令。S:3

5、元素3。這一元素的低位字節(jié)時(shí)當(dāng)前掃描時(shí)間,高位字節(jié)是看門狗掃描時(shí)間。3. 位文件(B3:)文件3是位文件,主要用于位指令(繼電器邏輯),移位寄存器和順序器指令。位文件的最大容量是256個(gè)單字元素,總計(jì)為4096位??梢酝ㄟ^(guò)指定元素號(hào)(0255)和元素內(nèi)的位編號(hào)(015)來(lái)尋址位,也可以通過(guò)位的順序編號(hào)直接尋址位04095。用戶也可以只尋址該文件的元素。舉例:B:3/14 元素3,位14B:252/0 元素252,位0B:9 元素9,位015B:/64 或 B/64 位64(即元素4,位0)B:/4042 或 B/4042 位40424. 計(jì)時(shí)器和計(jì)數(shù)器文件(T4:和C5:)每個(gè)計(jì)時(shí)器地址由一個(gè)

6、3字元素組成,如下表所示: 15 14 13EN TT DN內(nèi)部使用PRE(預(yù)置值)ACC(累計(jì)值)字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ù)置值 T4:0.2/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ù)使

7、能位 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. 控制文件(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ò)誤代碼位陣列或文件的長(zhǎng)度(LEN)位指針或位置(POS)012舉例:R:2 元素2R

8、:2/15 或 R:2/EN 使能位R:2/13 或 R:2/DN 完成位R:2.1 或 R:2.LEN 長(zhǎng)度值 R:2.2/0 位置值的0位7. 整數(shù)文件(N7:)整數(shù)文件是1字元素,可以尋址到元素和位。根據(jù)程序的需要來(lái)使用整數(shù)文件地址。舉例:N:2 元素2N:2/8 元素2,位8N10:36 整數(shù)文件10,元素36(先前文件10已被用戶定義為整數(shù)文件)注:整數(shù)文件的缺省值為7,如上 N:2 為整數(shù)文件7的元素。若所操作元素在其它整數(shù)文件上必須注明該文件號(hào),如上 N10:36。第二節(jié) 位指令位指令包括:1. 檢查閉合(XIC)2. 檢查斷開(XIO)3. 輸出激勵(lì)(OTE)4. 輸出鎖存(O

9、TL)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)(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),則指令被賦值為

10、假。3. 輸出激勵(lì)(OTE)OTE指令屬輸出指令,用于控制存儲(chǔ)器中的位。若OTE指令前面的梯級(jí)條件為真,尋址位導(dǎo)通,相應(yīng)的設(shè)備接通;否則尋址位不能夠?qū)ǎ鄳?yīng)的設(shè)備不能夠接通。它類似于繼電器的輸出線圈。OTE指令由它前面的輸入指令控制,而繼電器的線圈由硬觸點(diǎn)控制。4. 輸出鎖存(OTL)OTL屬保持型輸出指令。當(dāng)梯級(jí)條件為真時(shí),OTL指令對(duì)該尋址位置位。即使梯級(jí)條件變?yōu)榧?,該位依然保持置位。若要?fù)位,則需要在另一個(gè)階梯中使用解鎖指令OTU,對(duì)同一尋址位進(jìn)行解鎖。5. 輸出解鎖(OTU)OTU屬保持型輸出指令。常用于復(fù)位由OTL指令鎖存的位,此時(shí)OTL、OTU應(yīng)使用相同的地址。當(dāng)梯級(jí)條件為真時(shí),

11、OTU指令對(duì)該尋址位復(fù)位。即使梯級(jí)條件變?yōu)榧?,該位依然保持?fù)位。直至另一指令對(duì)該位重新置位。下面通過(guò)具體的梯形圖來(lái)進(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為真,燈亮。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指令成對(duì)出現(xiàn)。一旦I: 0/9使能,O:0/3就鎖存為真,燈亮。即使I: 0/9在下一次掃描周期由真變假,燈仍然保持亮。直至I: 0/10使能

12、,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ù),此地址可以是位文件或整數(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)O

13、SR屬輸出指令。當(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指令所在梯級(jí)條件由真到假變化時(shí),在輸出位(Output Bit)產(chǎn)生一個(gè)周期正脈沖(即“下降沿動(dòng)作類型”)。存儲(chǔ)位(Storage Bit)中自動(dòng)存儲(chǔ)了OSF指令所在階梯的梯級(jí)條件(為真則存儲(chǔ)1,為假則存儲(chǔ)0)。下面我們通過(guò)具體的梯形圖來(lái)進(jìn)一步理解這三條指令:例2:討論改變以下開關(guān)狀態(tài)時(shí),燈的變化情況。1)

14、 RUNG0和 RUNG1中,當(dāng)I:0/4閉合時(shí)(即產(chǎn)生一個(gè)上升沿信號(hào)),ONS指令的梯級(jí)條件由假到真變化,它的指令邏輯變?yōu)檎妫筄:4/0和O:4/1兩燈都亮。到下一個(gè)掃描周期時(shí)ONS指令邏輯不再為真,O:4/1滅,O:4/0由于鎖存仍為亮。B3:0/0位存儲(chǔ)了ONS指令的梯級(jí)條件。即I:0/4閉合,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è)

15、周期正脈沖,使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) RUNG5、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ǔ)了

16、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. 減計(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)過(guò)一段延時(shí)時(shí)間對(duì)輸出動(dòng)作。它相當(dāng)于繼電器控制系統(tǒng)中的通電延時(shí)繼電器。TON是否啟動(dòng)由它前面的輸入指令控制,而通電延時(shí)繼電器是由硬觸點(diǎn)控制。TON的延時(shí)時(shí)間

17、可任意設(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.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ā)

18、生為止:累計(jì)值=預(yù)置值;梯級(jí)變假;復(fù)位計(jì)時(shí)器。不論計(jì)時(shí)器是否計(jì)到時(shí),梯級(jí)變假時(shí)計(jì)時(shí)器復(fù)位累計(jì)值(把累計(jì)值清0)。TON的狀態(tài)位可用作對(duì)輸出的控制信號(hào)。正確靈活的應(yīng)用這些狀態(tài)位是掌握TON編程的關(guān)鍵。TON的狀態(tài)位及它們的變化情況如下:狀態(tài)位置位條件保持置位直到下列情況發(fā)生DN累計(jì)值=預(yù)置值梯級(jí)變?yōu)榧賂T梯級(jí)為真且累計(jì)值=預(yù)置值TT梯級(jí)為假且累計(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ì)

19、值等于或超過(guò)預(yù)置值時(shí),CTU指令置位完成位DN。編程時(shí)可以用CTU指令計(jì)數(shù)某些動(dòng)作來(lái)引發(fā)事件,比如通過(guò)計(jì)數(shù)一個(gè)存儲(chǔ)位的變化或一個(gè)外設(shè)的導(dǎo)通關(guān)斷變化次數(shù)來(lái)讓另一外設(shè)動(dòng)作。CTU指令的狀態(tài)位及變化情況為:狀態(tài)位置位條件保持置位直到下列情況發(fā)生OV累計(jì)值返回到-32768(即從32767繼續(xù)計(jì)數(shù))相應(yīng)的RES指令使能或者用CTD指令使累計(jì)值=預(yù)置值累計(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)和計(jì)數(shù)器。當(dāng)梯級(jí)條件為真時(shí)RES指令復(fù)位相同尋址位的計(jì)時(shí)器或計(jì)數(shù)器(把狀態(tài)位和累計(jì)值清0)。

20、無(wú)論任何情況RES指令優(yōu)先執(zhí)行。例8:現(xiàn)有一個(gè)液體混合容器,有兩個(gè)輸入液體閥和一個(gè)輸出液體閥。使用程序模擬這三個(gè)閥的流量情況。分析:用計(jì)時(shí)器T4:1,T4:2,T4:3來(lái)模擬流速。在RUNG1中,當(dāng)使能I:0/4,運(yùn)行TON指令。經(jīng)過(guò)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ì)值來(lái)模擬容器中的液位。每當(dāng)T4:1/DN位產(chǎn)生一個(gè)脈沖,C5:0的累計(jì)值就加1。形象的說(shuō),就好象每1.6S注入

21、一單位的液體。對(duì)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ì)值可以無(wú)限制的增加和減小,這不符合客觀實(shí)際情況,在后面的章節(jié)里我們會(huì)用另外的程序來(lái)解決這個(gè)問(wèn)題。例:試編制一個(gè)6位數(shù)的自動(dòng)計(jì)數(shù)器,用BCD碼分別在N7:0和N:1上表示。分析:MicroLogix1500中,計(jì)數(shù)器向上計(jì)數(shù)只能計(jì)到32

22、767,在計(jì)數(shù)范圍較大的場(chǎng)合常感到不夠用,但是如果采用多個(gè)數(shù)據(jù)進(jìn)位的關(guān)系來(lái)表達(dá),幾乎可以計(jì)到無(wú)限。我們可以先用一個(gè)計(jì)數(shù)器來(lái)表示六位計(jì)數(shù)器的低四位,用另一個(gè)計(jì)數(shù)器來(lái)模擬六位計(jì)數(shù)器的高兩位。本程序中,RUNG0產(chǎn)生計(jì)數(shù)脈沖,RUNG1用一個(gè)計(jì)數(shù)器來(lái)表示六位計(jì)數(shù)器的低四位,RUNG2用另一個(gè)計(jì)數(shù)器來(lái)表示六位計(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顯示高兩位。第三章 比較指令比較指令屬輸入指令,用于比較兩值作為邏輯梯級(jí)

23、連續(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可為常數(shù)或地址。例1:讀

24、程序分析結(jié)果。分析:上面程序即為EQU指令的一個(gè)簡(jiǎn)單應(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. 大于(GRT)使用GRT指令比較

25、一個(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ù),置位的位通過(guò)數(shù)據(jù)。因此只比較源值和比較值的在屏蔽字中的相應(yīng)位為1的那些位。 例如:上面程序中,屏蔽字設(shè)為了00FFh,所以只比較B:3/0和

26、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ù)或字地址。例2:現(xiàn)有一個(gè)液體混

27、合容器,有兩個(gè)輸入液體閥和一個(gè)輸出液體閥。使用程序模擬這三個(gè)閥的流量情況。并設(shè)置液位上下限報(bào)警,使相應(yīng)閥門關(guān)閉。分析:本程序?yàn)榈诙吕?的問(wè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. 減指令(SUB)3. 乘指令(M

28、UL)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è)簡(jiǎn)單應(yīng)用。ADD指令把Source A和Source B的值相加,結(jié)果存入Dest中(4+9,結(jié)果13存入N7:2)。2. 減指令(SUB)SUB指令使源A的值減去源B的值,結(jié)果存放到目的地址內(nèi)。3. 乘指令(MUL)

29、MUL指令使源A的值乘以源B的值,結(jié)果存放到目的地址內(nèi)。4. 除指令(DIV) DIV指令使源A的值被源B的值所除。商四舍五入存放在目的地址內(nèi)。5. 平方根(SQR)SQR指令計(jì)算源值絕對(duì)值的平方根,結(jié)果四舍五入存放在目的地址內(nèi)。6. 取反指令(NEG)NEG指令改變?cè)粗档姆?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)換其絕對(duì)值。例:試編制一個(gè)6位數(shù)的自動(dòng)計(jì)數(shù)器,用BCD碼分別在N7:0和N:1上表示。 分析:MicroLogix1500中,計(jì)數(shù)器向上計(jì)數(shù)只能計(jì)到32767

30、,在計(jì)數(shù)范圍較大的場(chǎng)合常感到不夠用,但是如果采用多個(gè)數(shù)據(jù)進(jìn)位的關(guān)系來(lái)表達(dá),幾乎可以計(jì)到無(wú)限。我們可以先用一個(gè)計(jì)數(shù)器來(lái)表示六位計(jì)數(shù)器的低四位,用另一個(gè)計(jì)數(shù)器來(lái)模擬六位計(jì)數(shù)器的高兩位。本程序中,RUNG0產(chǎn)生計(jì)數(shù)脈沖,RUNG1用一個(gè)計(jì)數(shù)器來(lái)表示六位計(jì)數(shù)器的低四位,RUNG2用另一個(gè)計(jì)數(shù)器來(lái)表示六位計(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指令把BCD碼轉(zhuǎn)換成16

31、-位整數(shù)值。如果源數(shù)據(jù)不符合BCD碼格式則發(fā)生處理器出錯(cuò)。9. 線性轉(zhuǎn)換(SCP)SCP指令可對(duì)一個(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 0001 00000

32、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 0000 141000 0

33、000 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í)保持為真,每次掃描指令都重新

34、傳送數(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í)行位與位的邏輯與操作。結(jié)果存儲(chǔ)在目的

35、地址內(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. 順序器裝入(SQL)4.

36、順序器比較(SQC)5. 順序器輸出(SQO)6. FIFO裝入(FFL)7. FIFO卸出(FFU)8. LIFO裝入(LFL)9. LIFO卸出(LFU)下面逐個(gè)加以介紹。1. 位左移(BSL)當(dāng)梯級(jí)條件由假變真時(shí),BSL指令對(duì)File文件指定的數(shù)據(jù)向左(向高位)移動(dòng)一位。由Bit Address指定的一位被移入最右位(最低位)。MicroLogix1500中Length的設(shè)定范圍為02048,含義為文件中參與移位的數(shù)據(jù)塊的位數(shù)。但是實(shí)際上只能移位整數(shù)個(gè)字的所有位。參與移位的字?jǐn)?shù)為對(duì)Length除以16,再向上取整。如上例,當(dāng)Length的值為16時(shí),實(shí)際上都是移動(dòng)N7:0的16位。2.

37、位右移(BSR)當(dāng)梯級(jí)條件由假變真時(shí),BSR指令對(duì)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)方式。只不過(guò)這里讓它使B3:1/0和B3:1/1交替置1。RUNG0為1S脈沖發(fā)生器。RUNG3和RUNG4中,B3:1/0、B3:1/1和T4:2/DN共同作為

38、移位控制信號(hào),實(shí)現(xiàn)了循環(huán)左右移位的要求。下面的順序器指令一般用來(lái)控制具有連續(xù)和重復(fù)操作特性的自動(dòng)化生產(chǎn)線。順序器指令包括:順序器裝入指令SQL、順序器比較指令SQC、順序器輸出指令SQO。我們結(jié)合下面的程序來(lái)體會(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í)條件再由假到真變化時(shí),SQL指令

39、再?gòu)臄?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了。只不過(guò)它還可以設(shè)置獨(dú)立的屏蔽字。每3S從順序器文件讀出一個(gè)數(shù)據(jù)(第1次讀N10:0,第2次讀N10:1,依次類推)。經(jīng)過(guò)屏蔽后都送到N11:0。屏蔽位為1的可以通過(guò)數(shù)據(jù),屏蔽位為0的不能通過(guò)數(shù)據(jù)。這里屏蔽字設(shè)為了0FFFFH,數(shù)據(jù)都可以通過(guò)。RUNG2為順序器比較指令SQC。它的執(zhí)行結(jié)果為:每3S從順序器文件N12:0順序讀

40、入一個(gè)數(shù)據(jù),經(jīng)過(guò)屏蔽后和源數(shù)據(jù)相比較,如果相等則FD位被置1,否則被置0。例3:每2S從I:0.0讀入一個(gè)數(shù)據(jù),共讀9次,完成順序器裝載。然后將順序器文件按每2S一次的速度依次傳到O:0.0顯示。分析:上面程序?yàn)轫樞蚱鬏斎胼敵龅囊粋€(gè)簡(jiǎn)單應(yīng)用。需注意它們需使用不同的控制字。否則將處以混亂狀態(tài)。6. FIFO裝入(FFL)7. FIFO卸出(FFU)FFL和FFU 指令是成對(duì)使用的。它們實(shí)際為對(duì)數(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ù),然后依次在輸出口O0:0顯示

41、。分析:本程序中FFL、FFU指令成對(duì)使用,此時(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 指令是成對(duì)使用的。它們實(shí)際為對(duì)數(shù)據(jù)結(jié)構(gòu)中堆棧(LIFO,Last In First Out,后進(jìn)先出)的操作。LFL相當(dāng)于進(jìn)棧操作,LFU相當(dāng)于出棧操作。若將上例的FFL、FFU指令換為L(zhǎng)FL、LFU指令,則在輸出口O0:0上,首先顯示最后輸入的數(shù)據(jù),然后再顯示倒數(shù)第2次輸入的數(shù)

42、據(jù),依次類推,最后顯示第1次輸入的數(shù)據(jù)。第七章 程序流程指令程序流程指令控制梯形圖程序執(zhí)行的順序。有代表性的應(yīng)用這些指令,可提高程序的執(zhí)行效率和可讀性,也有利于程序的故障檢測(cè)。程序流程指令包括: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í)跳過(guò)一些梯級(jí),LBL指令是具有相同標(biāo)號(hào)的JMP指令的跳轉(zhuǎn)目標(biāo)。成對(duì)使用跳轉(zhuǎn)和標(biāo)號(hào)指令,可以跳轉(zhuǎn)到程序的某一部分。若跳轉(zhuǎn)指令為真,則處理器從JMP梯級(jí)跳到LBL梯級(jí)繼續(xù)執(zhí)行程序,而且既可以可以向前跳,也可以向后跳。若跳轉(zhuǎn)指令為假,則程序忽略JMP指令。向后跳向一個(gè)標(biāo)號(hào)省略了某

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論