版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、附錄第一章 位指令2第一節(jié) 數(shù)據(jù)文件3第二節(jié) 位指令6第二章 計時器和計數(shù)器指令11第三章 比較指令21第四章 算術(shù)指令26第五章 傳送和邏輯指令32第六章 移位和順序進(jìn)出指令35第七章 程序流程指令42第八章 I/O,文件,PID指令46第九章 高速計數(shù)指令64第一章 位指令位指令可對數(shù)據(jù)的單個位進(jìn)行操作。在運行時,處理器可以根據(jù)其所在梯級的邏輯條件置位或復(fù)位一位。應(yīng)用程序可以根據(jù)需要對一位尋址任意次。本章第一節(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. 計時器文件(T4:)5. 計數(shù)器文件(C5:)6. 控制文件(R6:)7. 整數(shù)文件(N7:)上面的文件號也為系統(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ù)情況下,這些文件中的每個16位字號與位于控制器內(nèi)的一槽相對應(yīng),位號與相應(yīng)的輸入或輸出端子號對應(yīng)。輸出和輸入的地址格式用e表示槽號,s表示字號。處理文件指令時,數(shù)據(jù)文件元素按e.s(槽號和字號)格式一起使用。格式說明O:e.s/bI:e.s
3、/bO輸出I輸入:元素分隔符e槽號(十進(jìn)制)0號槽,即第一個框架中靠近電源的槽,用于處理器模塊。接下來的是I/O槽(130)。.字分隔符s字號如果某槽的I/O點數(shù)超過16時最好用字號(0255)。/位分隔符b端子號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)一個槽的I/O點數(shù)超過16個時,尋址位有兩種表示方法:使用字、位尋址和直接位尋址。如:MicroLogix 1500系列輸出0槽有64點。尋址O:0.2/13時,也可寫為O:0/45。缺省值:用戶編
4、程設(shè)備顯示的地址格式將更加正規(guī)。例如:當(dāng)分配地址O:5/0時,編程設(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)的控制位來實現(xiàn),這首先需要了解狀態(tài)文件中每個字、每個字節(jié)的功能。詳細(xì)說明請參閱SLC 500 and Micrologix 1000 指令集參考手冊附錄A。狀態(tài)文件不能被增加或刪除,尋址狀態(tài)文件的位和字的格式為:S:e/b 各位含義同I/O文件。舉例:S:1/15 元素1,位15。這是“首次掃描位”用戶在程序中可以使用它來初始化指令。S:3
5、元素3。這一元素的低位字節(jié)時當(dāng)前掃描時間,高位字節(jié)是看門狗掃描時間。3. 位文件(B3:)文件3是位文件,主要用于位指令(繼電器邏輯),移位寄存器和順序器指令。位文件的最大容量是256個單字元素,總計為4096位。可以通過指定元素號(0255)和元素內(nèi)的位編號(015)來尋址位,也可以通過位的順序編號直接尋址位04095。用戶也可以只尋址該文件的元素。舉例:B:3/14 元素3,位14B:252/0 元素252,位0B:9 元素9,位015B:/64 或 B/64 位64(即元素4,位0)B:/4042 或 B/4042 位40424. 計時器和計數(shù)器文件(T4:和C5:)每個計時器地址由一個
6、3字元素組成,如下表所示: 15 14 13EN TT DN內(nèi)部使用PRE(預(yù)置值)ACC(累計值)字0字1字2上表中,EN:使能位,TT:計時位,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 累計值5. 計數(shù)器文件(C5:)每個計數(shù)器地址由一個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(累計值)字0字1字2字 上表中,CU:加計數(shù)使
7、能位 CD:減計數(shù)使能位DN:完成位OV:上溢出位UN:下溢出位UA:更新累計值位(只用于固定式控制器的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 累計值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 錯誤代碼位陣列或文件的長度(LEN)位指針或位置(POS)012舉例:R:2 元素2R
8、: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ù)文件10,元素36(先前文件10已被用戶定義為整數(shù)文件)注:整數(shù)文件的缺省值為7,如上 N:2 為整數(shù)文件7的元素。若所操作元素在其它整數(shù)文件上必須注明該文件號,如上 N10:36。第二節(jié) 位指令位指令包括:1. 檢查閉合(XIC)2. 檢查斷開(XIO)3. 輸出激勵(OTE)4. 輸出鎖存(O
9、TL)5. 輸出解鎖(OTU)6. 一次啟動(ONS)7. 上升沿一次響應(yīng)(OSR)8. 下降沿一次響應(yīng)(OSF)下面逐個加以介紹。1. 檢查閉合(XIC)XIC屬輸入指令,用于檢查某位是否導(dǎo)通(ON)。它類似于常開開關(guān)。當(dāng)指令執(zhí)行時,如果尋址位是導(dǎo)通狀態(tài)(1),則指令被賦值為真;如果尋址位是斷開狀態(tài)(0),則指令被賦值為假。如果尋址位使用了輸入映象表的位,則其狀態(tài)必須與相應(yīng)地址實際輸入設(shè)備的狀態(tài)一致。2. 檢查斷開(XIO)XIO屬輸出指令,用于檢查某位是否斷開(OFF)。它類似于常閉開關(guān)。當(dāng)指令執(zhí)行時,如果尋址位是斷開狀態(tài)(0),則指令被賦值為真;如果尋址位是導(dǎo)通狀態(tài)(1),則指令被賦值為
10、假。3. 輸出激勵(OTE)OTE指令屬輸出指令,用于控制存儲器中的位。若OTE指令前面的梯級條件為真,尋址位導(dǎo)通,相應(yīng)的設(shè)備接通;否則尋址位不能夠?qū)ǎ鄳?yīng)的設(shè)備不能夠接通。它類似于繼電器的輸出線圈。OTE指令由它前面的輸入指令控制,而繼電器的線圈由硬觸點控制。4. 輸出鎖存(OTL)OTL屬保持型輸出指令。當(dāng)梯級條件為真時,OTL指令對該尋址位置位。即使梯級條件變?yōu)榧?,該位依然保持置位。若要?fù)位,則需要在另一個階梯中使用解鎖指令OTU,對同一尋址位進(jìn)行解鎖。5. 輸出解鎖(OTU)OTU屬保持型輸出指令。常用于復(fù)位由OTL指令鎖存的位,此時OTL、OTU應(yīng)使用相同的地址。當(dāng)梯級條件為真時,
11、OTU指令對該尋址位復(fù)位。即使梯級條件變?yōu)榧?,該位依然保持?fù)位。直至另一指令對該位重新置位。下面通過具體的梯形圖來進(jìn)一步理解上述位指令:例1:討論改變以下開關(guān)狀態(tài)時,燈的變化情況。1) RUNG0中,當(dāng)I:0/4使能時,O:0/0為真,燈亮。2) RUNG1中,當(dāng)I:0/5斷開時,O:0/1為真,燈亮。3) RUNG2中,只有當(dāng)I:0/6和I:0/8,或者I:0/7和I:0/8使能時,O:0/2才為真,燈亮。4) RUNG3和RUNG4中,OTL和OTU指令成對出現(xiàn)。一旦I: 0/9使能,O:0/3就鎖存為真,燈亮。即使I: 0/9在下一次掃描周期由真變假,燈仍然保持亮。直至I: 0/10使能
12、,O:0/3解鎖,燈滅。5) RUNG5中,END指令表明程序結(jié)束。6. 一次啟動(ONS)ONS屬輸入指令。當(dāng)程序中ONS指令所在梯級條件由假到真變化時,它的指令邏輯為真,但只保持一個掃描周期。使用ONS指令可啟動由按鈕觸發(fā)的事件,如從撥盤開關(guān)上取值。ONS指令中有一個位地址參數(shù),此地址可以是位文件或整數(shù)文件地址(如B3:0/3,N7:0/0等)。該位自動存儲了ONS指令所在梯級條件(為真則存儲1,為假則存儲0)。ONS的功能相當(dāng)于限制所在梯級的輸出。當(dāng)輸入條件由假變真時,它使輸出為1且只保持一個掃描周期,在以后連續(xù)的掃描中輸出為0。直到輸入再次由假到真跳變。7. 上升沿一次響應(yīng)(OSR)O
13、SR屬輸出指令。當(dāng)OSR指令所在梯級條件由假到真變化時,在輸出位(Output Bit)產(chǎn)生一個周期正脈沖(即“上升沿動作類型”)。存儲位(Storage Bit)中自動存儲了OSR指令所在階梯的梯級條件(為真則存儲1,為假則存儲0)。8. 下降沿一次響應(yīng)(OSF)OSF屬輸出指令。當(dāng)OSF指令所在梯級條件由真到假變化時,在輸出位(Output Bit)產(chǎn)生一個周期正脈沖(即“下降沿動作類型”)。存儲位(Storage Bit)中自動存儲了OSF指令所在階梯的梯級條件(為真則存儲1,為假則存儲0)。下面我們通過具體的梯形圖來進(jìn)一步理解這三條指令:例2:討論改變以下開關(guān)狀態(tài)時,燈的變化情況。1)
14、 RUNG0和 RUNG1中,當(dāng)I:0/4閉合時(即產(chǎn)生一個上升沿信號),ONS指令的梯級條件由假到真變化,它的指令邏輯變?yōu)檎妫筄:4/0和O:4/1兩燈都亮。到下一個掃描周期時ONS指令邏輯不再為真,O:4/1滅,O:4/0由于鎖存仍為亮。B3:0/0位存儲了ONS指令的梯級條件。即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閉合時(即產(chǎn)生一個上升沿信號),OSR指令的梯級條件由假到真變化,使在輸出位B3:0/2產(chǎn)生一個
15、周期正脈沖,使O:4/5和O:4/6兩燈都亮。到下一個掃描周期時,輸出位B3:0/2不再有正脈沖,O:4/6滅,O:4/5由于鎖存仍為亮。B3:0/1位存儲了OSR指令的梯級條件。同上步的分析,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斷開時(即產(chǎn)生一個下降沿信號),OSF指令的梯級條件由真到假變化,使在輸出位B3:0/4產(chǎn)生一個周期正脈沖,使O:4/8和O:4/9兩燈都亮。到下一個掃描周期時,輸出位B3:0/4不再有正脈沖,O:4/9滅,O:4/8由于鎖存仍為亮。B3:0/3位存儲了
16、OSF指令的梯級條件。分析同上。4) RUNG8中,I:0/9用于為上面鎖存的小燈解鎖。第二章 計時器和計數(shù)器指令計時器和計數(shù)器指令屬輸出指令,用于控制基于時間和事件記數(shù)的操作,包括:1. 延時導(dǎo)通計時器(TON)2. 延時斷開計時器(TOF)3. 保持型計時器(RTO)4. 加計數(shù)(CTU)5. 減計數(shù)(CTD)6. 計時器/計數(shù)器復(fù)位(RES)下面逐個加以介紹。1. 延時導(dǎo)通計時器(TON)延時導(dǎo)通計時器(TON)的功能是梯級條件變真后經(jīng)過一段延時時間對輸出動作。它相當(dāng)于繼電器控制系統(tǒng)中的通電延時繼電器。TON是否啟動由它前面的輸入指令控制,而通電延時繼電器是由硬觸點控制。TON的延時時間
17、可任意設(shè)定,而通電延時繼電器是由它的物理結(jié)構(gòu)決定,不能夠任意改動。因此TON指令更加方便靈活。使用TON指令時需要提供以下參數(shù):1) 計時器(Timer):指明所使用的計時器元素(如T4:0)。2) 時基(Time base):計時器每次計時的遞增值。Micrologix 1500系列可選擇 1S、0.01S和0.001S三種,共可累計32767個時基間隔。它決定了計時器的精度。3) 預(yù)置值(Preset):用于設(shè)定延時時間,可設(shè)為整數(shù)-3276832767。4) 累計值(Accum):是一個動態(tài)值,表明了到目前計時器已經(jīng)延時的數(shù)值。當(dāng)梯級條件變真時,TON開始計時,直到下列條件中的任何一個發(fā)
18、生為止:累計值=預(yù)置值;梯級變假;復(fù)位計時器。不論計時器是否計到時,梯級變假時計時器復(fù)位累計值(把累計值清0)。TON的狀態(tài)位可用作對輸出的控制信號。正確靈活的應(yīng)用這些狀態(tài)位是掌握TON編程的關(guān)鍵。TON的狀態(tài)位及它們的變化情況如下:狀態(tài)位置位條件保持置位直到下列情況發(fā)生DN累計值>=預(yù)置值梯級變?yōu)榧賂T梯級為真且累計值<預(yù)置值梯級變?yōu)榧倩虮籇N置位EN梯級為真梯級變?yōu)榧僮⒁釺T位和EN位的區(qū)別。TON工作的時序圖為:ONOFFONOFFONOFFONOFFONOFF2分鐘3分鐘通延時階梯條件計時器使能位計時器計時位計時器完成位輸出設(shè)備(完成位控制)時間累計值0120計時器預(yù)置值=
19、180180 圖3.21 TON時序圖例4:有三個馬達(dá)MTR1、MTR2、MTR3,按先后次序啟動。要求MTR1先啟動,三秒后MTR2啟動,再過5秒后MTR3啟動。停止時三個馬達(dá)同時停止,請模擬這個過程。分析:I:3/0為啟動按鈕,I:3/1為停止按鈕,它們都為點動按鈕。用燈O:4/0 、O:4/1、 O:4/2模擬馬達(dá)MTR1、MTR2、MTR3。當(dāng)觸發(fā)I:3/0時,ONS指令的梯級條件由假到真變化,所以有一個周期的正脈沖輸出,小燈O:4/0鎖存為亮,B3:0/0位鎖存為1,計時器T4:0開始計數(shù)。當(dāng)T4:0的累計值=預(yù)置值(3S)時,T4:0/DN置位,小燈O:4/1鎖存為亮,且計時器T4
20、:1開始計數(shù)。當(dāng)T4:1的累計值=預(yù)置值(5S)時,T4:1/DN置位,小燈O:4/2鎖存為亮。當(dāng)觸發(fā)I:3/1時,O:4/0 、O:4/1、 O:4/2都被解鎖,燈滅。例5:某交通要道,南北方向車流量大,東西方向車流量小。南北方向綠燈亮15秒,東西方向綠燈亮10秒。試編一程序模擬交通燈變化。分析:I:3/0為啟動按鈕,I:3/1為停止按鈕,它們都為點動按鈕。燈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計時15S后
21、動作,T4:0/DN閉合,O:4/0、O:4/8滅,O:4/2、O:4/6亮,T4:1開始工作。T4:1計時10S后動作,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/6滅,T4:0又開始工作。除非觸發(fā)停止按鈕I:3/1使它們停止和復(fù)位,程序?qū)⒁恢毖h(huán)執(zhí)行,這樣就實現(xiàn)了交通燈交替亮滅。2. 延時斷開計時器(TOF)延時斷開計時器(TOF)的功能是梯級條件變假后經(jīng)過一段延時時間對輸出動作。它相當(dāng)于繼電器控制系統(tǒng)中的斷電延時繼電器。TOF指令各參數(shù)的含義與TON相
22、同。當(dāng)梯級條件變假時,TOF開始計時,直到下列條件中的任何一個發(fā)生為止:累計值=預(yù)置值;梯級變真。不論計時器是否計到時,梯級變真時計時器復(fù)位累計值。TOF指令的狀態(tài)位變化情況如下,注意它們和TON的區(qū)別。狀態(tài)位置位條件保持置位直到下列情況發(fā)生DN梯級為真梯級變?yōu)榧偾依塾嬛?gt;=預(yù)置值TT梯級為假且累計值<預(yù)置值梯級變?yōu)檎婊駾N被復(fù)位EN梯級為真梯級變?yōu)榧贌o論任何情況都不要用RES指令對TOF復(fù)位。因為RES總是清零狀態(tài)位及累計值,若對TOF復(fù)位,則DN,TT,EN被清零,可能會使指令邏輯陷于混亂,發(fā)生不可預(yù)知的結(jié)果。3. 保持型計時器(RTO) TON和TOF計時器在梯級條件變假時,
23、累計值和DN位都要被復(fù)位,梯級條件變?yōu)檎婧笥种匦掠嫊r,有時這會給某些應(yīng)用帶來不便。這時我們可以采用能累積計時的RTO指令。當(dāng)梯級條件為真時,RTO指令開始計時。當(dāng)下列任何情況發(fā)生時,RTO指令保持它的累計值:梯級變假;用戶改變到編程方式;處理器出錯或斷電。 當(dāng)處理器重新運行或階梯變真時,RTO計時器從保持的值開始繼續(xù)計時,直到累計值達(dá)到預(yù)置值。如果需要復(fù)位其累計值和狀態(tài)位,可在另一階梯中用RES指令對相同地址的計時器復(fù)位。無論任何情況,復(fù)位指令總是優(yōu)先執(zhí)行。即只要使能復(fù)位指令,無論計時器是否正在計時,累計值及狀態(tài)位總被復(fù)位為0。RTO指令的狀態(tài)位的變化情況如下:狀態(tài)位置位條件保持置位直到下列情
24、況發(fā)生DN累計值>=預(yù)置值相應(yīng)的RES指令使能TT梯級為真且累計值<預(yù)置值梯級變?yōu)榧倩虮籇N置位EN梯級為真梯級變?yōu)榧?. 加計數(shù)(CTU)CTU指令在-3276832767范圍內(nèi)向上計數(shù)。每一次梯級條件由假變真時CTU累計值加1。當(dāng)梯級再次變?yōu)榧贂r累計值保持不變。當(dāng)累計值等于或超過預(yù)置值時,CTU指令置位完成位DN。編程時可以用CTU指令計數(shù)某些動作來引發(fā)事件,比如通過計數(shù)一個存儲位的變化或一個外設(shè)的導(dǎo)通關(guān)斷變化次數(shù)來讓另一外設(shè)動作。CTU指令的狀態(tài)位及變化情況為:狀態(tài)位置位條件保持置位直到下列情況發(fā)生OV累計值返回到-32768(即從32767繼續(xù)計數(shù))相應(yīng)的RES指令使能或者
25、用CTD指令使累計值<=32767DN累計值>=預(yù)置值累計值<預(yù)置值CU梯級為真梯級變?yōu)榧倩蛳鄳?yīng)的RES指令使能CTU工作的時序圖為:由計數(shù)器控制階梯上的輸出指令ONOFFONOFFONOFFONOFFONOFF控制計數(shù)器的階梯條件計時器使能位.EN控制復(fù)位指令的階梯條件完成位.DN計數(shù)器累計值012340計數(shù)器預(yù)置值=4圖3.22 CTU時序圖例7:試編一個自動增計數(shù)器。分析:I:0/4為保持式按鈕,I:0/9為點動式按鈕。在RUNG0中,當(dāng)I:0/4使能,啟動T4:0工作。延時1S后動作,T4:0/DN置位,其常閉斷開T4:0被復(fù)位,T4:0/DN清0,其常閉閉合又啟動T
26、4:0工作。如此循環(huán)執(zhí)行。相當(dāng)于每1S,T4:0/DN位產(chǎn)生一個正脈沖。這樣RUNG0構(gòu)成了一個1S脈沖發(fā)生器,向RUNG1中每1S提供一個正脈沖,每來一個正脈沖C5:0的累計值就增1,這樣就實現(xiàn)了自動增計數(shù)器。只要I:0/9使能,C5:0的累計值就立即復(fù)位為0。5. 減計數(shù)(CTD)CTD指令在-3276832767范圍內(nèi)向下計數(shù)。每一次梯級條件由假變真時CTU累計值減1。當(dāng)梯級再次變?yōu)榧贂r累計值保持不變。當(dāng)累計值等于或超過預(yù)置值時,CTU指令置位完成位DN。編程時可以用它計數(shù)某些動作來引發(fā)其它事件,比如通過計數(shù)一個存儲位的變化或一個外設(shè)的導(dǎo)通關(guān)斷變化來控制另一外設(shè)動作。狀態(tài)位置位條件保持置
27、位直到下列情況發(fā)生UN累計值返回到32767(即從-32768繼續(xù)計數(shù))相應(yīng)的RES指令使能或者用CTD指令使累計值>=-32767DN累計值>=預(yù)置值累計值<預(yù)置值CD梯級為真梯級變?yōu)榧倩蛳鄳?yīng)的RES指令使能6. 計時器/計數(shù)器復(fù)位(RES)RES指令用于復(fù)位計時器(除TOF) 和計數(shù)器。當(dāng)梯級條件為真時RES指令復(fù)位相同尋址位的計時器或計數(shù)器(把狀態(tài)位和累計值清0)。無論任何情況RES指令優(yōu)先執(zhí)行。例8:現(xiàn)有一個液體混合容器,有兩個輸入液體閥和一個輸出液體閥。使用程序模擬這三個閥的流量情況。分析:用計時器T4:1,T4:2,T4:3來模擬流速。在RUNG1中,當(dāng)
28、使能I:0/4,運行TON指令。經(jīng)過1.6S,T4:1/DN置位。其常閉斷開后T4:1馬上復(fù)位,T4:1/DN又立即被復(fù)位,又運行TON指令。如此循環(huán)執(zhí)行。相當(dāng)于每1.6S,T4:1/DN位產(chǎn)生一個脈沖。同理,T4:2/DN每1.5S,T4:3/DN每1S產(chǎn)生一個脈沖。用計數(shù)器C5:0的累計值來模擬容器中的液位。每當(dāng)T4:1/DN位產(chǎn)生一個脈沖,C5:0的累計值就加1。形象的說,就好象每1.6S注入一單位的液體。對T4:3/DN用的是減計數(shù)器,每當(dāng)T4:3/DN位產(chǎn)生一個脈沖,C5:0的累計值就減1。就好象每1S從容器里放掉一單位的液體。當(dāng)I:0/4使能,每1.6秒 C5:0的累計值就加1。當(dāng)
29、I:0/5使能,每1.5秒 C5:0的累計值就加1。當(dāng)I:0/6使能,每1秒 C5:0的累計值就減1。這樣就模擬了三個閥的流量情況。本程序也有不足之處,例如計數(shù)器的累計值可以無限制的增加和減小,這不符合客觀實際情況,在后面的章節(jié)里我們會用另外的程序來解決這個問題。第三章 比較指令比較指令屬輸入指令,用于比較兩值作為邏輯梯級連續(xù)的條件。例如,小于(LES)指令有兩個操作數(shù),如果第一個小于第二個,那么LES指令為真。比較指令共包括:1. 等于(EQU)2. 不等于(NEQ)3. 小于(LES)4. 小于或等于(LEQ)5. 大于(GRT)6. 大于或等于(GEQ)7. 相等屏蔽比較(MEQ)8.
30、極限比較(LIM)它們的用法大致相同,掌握了一個也就掌握了其它的。下面逐個加以介紹。1. 等于(EQU)使用EQU指令比較二值是否相等。如果源A的值和源B的值相等,指令邏輯為真,否則為假。操作數(shù)為兩個數(shù)的比較指令(比如有源A和源B兩個操作數(shù)的EQU指令)一般要求的數(shù)據(jù)尋址方式為:源A必須為地址,源B可為常數(shù)或地址。例1:讀程序分析結(jié)果。分析:上面程序即為EQU指令的一個簡單應(yīng)用。RUNG0中,Source A與Source B的值相等,小燈O:4/0亮。RUNG1中,Source A與Source B的值不等,小燈O:4/1滅。2. 不等于(NEQ)使用NEQ指令比較二值是否不相等。如果源A的
31、值和源B的值不相等,指令邏輯為真,否則為假。3. 小于(LES)使用LES指令比較一個值是否小于另一個值。如果源A的值小于源B的值,指令邏輯為真,否則為假。4. 小于或等于(LEQ)使用LEQ指令比較一個值是否小于或等于另一個值。如果源A的值小于或等于源B的值,指令邏輯為真,否則為假。5. 大于(GRT)使用GRT指令比較一個值是否大于另一個值。如果源A的值大于源B的值,指令邏輯為真,否則為假。6. 大于或等于(GEQ)使用GEQ指令比較一個值是否大于或等于另一個值。如果源A的值大于或等于源B的值,指令邏輯為真,否則為假。7. 相等屏蔽比較(MEQ)使用MEQ指令比較源地址中的數(shù)據(jù)和比較地址中
32、的數(shù)據(jù),允許被一個獨立字屏蔽。MEQ相當(dāng)于把源值和比較值的數(shù)據(jù)分別與屏蔽字作位與位的邏輯與操作,然后比較兩個所得結(jié)果。如果相等,指令邏輯為真,否則為假。可看作屏蔽字中復(fù)位的位屏蔽數(shù)據(jù),置位的位通過數(shù)據(jù)。因此只比較源值和比較值的在屏蔽字中的相應(yīng)位為1的那些位。 例如:上面程序中,屏蔽字設(shè)為了00FFh,所以只比較B:3/0和B:3/1的低八位,而屏蔽掉了高八位。只要低八位相等,指令邏輯就為真,小燈O:4/0亮。8. 極限比較(LIM)使用LIM指令,根據(jù)用戶設(shè)定的極限值,比較某值是在指定范圍之內(nèi)或之外。指令的真假狀態(tài):如果下限值小于或等于上限值,當(dāng)比較值在極限范圍內(nèi)或等于任一極限值時,指令邏輯為
33、真,否則為假。如果下限值大于上限值,當(dāng)比較值在極限范圍內(nèi),指令邏輯為假。如果比較值等于任一極限值或超出極限范圍,指令為真。下限值,比較值,和上限值可以是字地址或常數(shù),組合受到以下限制:如果比較參數(shù)是一個常數(shù),下限參數(shù)和上限參數(shù)必須是字地址。如果比較參數(shù)是一個字地址,下限參數(shù)和上限參數(shù)可以是常數(shù)或字地址。例2:現(xiàn)有一個液體混合容器,有兩個輸入液體閥和一個輸出液體閥。使用程序模擬這三個閥的流量情況。并設(shè)置液位上下限報警,使相應(yīng)閥門關(guān)閉。分析:本程序為第二章例8的問題。前半部分和例8的思想一樣。在后面加上了范圍判斷的指令,實現(xiàn)了上下限的報警,和相應(yīng)閥門關(guān)閉。若同時有注入和流出閥門打開,上面程序可自動
34、循環(huán)。第四章 算術(shù)指令算術(shù)指令屬輸出指令,當(dāng)梯級條件為真時,執(zhí)行指定的算術(shù)運算,輸出結(jié)果存放到一個指定的存儲單元。并根據(jù)結(jié)果自動設(shè)置狀態(tài)位。例如,加和減指令都是取兩個輸入值,進(jìn)行加或減運算,運算結(jié)果存放到指定的目的地址內(nèi)。并根據(jù)結(jié)果自動設(shè)置了狀態(tài)位。算術(shù)指令包括:1. 加指令(ADD)2. 減指令(SUB)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)它們的用法也大致相同,下面逐個加以介紹。1. 加指令(ADD)A
35、DD指令使源A和源B的值相加,結(jié)果存放到目的地址內(nèi)。例1:讀程序分析結(jié)果。分析:上面程序為ADD指令的一個簡單應(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)MUL指令使源A的值乘以源B的值,結(jié)果存放到目的地址內(nèi)。4. 除指令(DIV) DIV指令使源A的值被源B的值所除。商四舍五入存放在目的地址內(nèi)。5. 平方根(SQR)SQR指令計算源值絕對值的平方根,結(jié)果四舍五入存放在目的地址內(nèi)。6. 取反指令(NEG)NEG指令改變源值的符
36、號然后存放到目的地址內(nèi)。例如,如果源的值是3,目的數(shù)據(jù)將是-3。7. 整數(shù)轉(zhuǎn)換成BCD碼(TOD)BCD指令把16-位整數(shù)值轉(zhuǎn)換成BCD碼。如果輸入的整數(shù)是負(fù)數(shù),則轉(zhuǎn)換其絕對值。例:試編制一個6位數(shù)的自動計數(shù)器,用BCD碼分別在N7:0和N:1上表示。 分析:MicroLogix1500中,計數(shù)器向上計數(shù)只能計到32767,在計數(shù)范圍較大的場合常感到不夠用,但是如果采用多個數(shù)據(jù)進(jìn)位的關(guān)系來表達(dá),幾乎可以計到無限。我們可以先用一個計數(shù)器來表示六位計數(shù)器的低四位,用另一個計數(shù)器來模擬六位計數(shù)器的高兩位。本程序中,RUNG0產(chǎn)生計數(shù)脈沖,RUNG1用一個計數(shù)器來表示六位計數(shù)器的低四位,RUNG2用另
37、一個計數(shù)器來表示六位計數(shù)器的高兩位。RUNG3兩位計數(shù)器一旦完成計數(shù)(即六位計數(shù)器已完成999999),兩位計數(shù)器清0復(fù)位并輸出信號。RUNG4和RUNG5用TOD指令把兩個計數(shù)器的累計值變?yōu)锽CD碼在整數(shù)文件中顯示,N7:0顯示低四位,N7:1顯示高兩位。8. 從BCD碼轉(zhuǎn)換成整數(shù)(FRD)FRD指令把BCD碼轉(zhuǎn)換成16-位整數(shù)值。如果源數(shù)據(jù)不符合BCD碼格式則發(fā)生處理器出錯。9. 線性轉(zhuǎn)換(SCP)SCP指令可對一個數(shù)進(jìn)行線性轉(zhuǎn)換。Input 為轉(zhuǎn)換的輸入值。Input Min Input Max為設(shè)定的輸入值的范圍。Scaled Min Scaled Max為希望得到的轉(zhuǎn)換結(jié)果的范圍。當(dāng)
38、梯級條件為真,它可以把輸入值(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 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 00
39、00 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 0000 0000 0000 1511. 解碼(DCD)DCD指令為ENC指令的逆運算。它把源數(shù)據(jù)(Source)的最低4位的轉(zhuǎn)化結(jié)果置入目的地址(Dest)中。轉(zhuǎn)換規(guī)則為上表的逆。第五章 傳送和邏輯指令傳送和邏輯指令屬輸出指令,當(dāng)梯級條件為真時,執(zhí)行相應(yīng)的傳送或邏輯操作。指令
40、執(zhí)行后,并根據(jù)結(jié)果自動設(shè)置狀態(tài)位。傳送和邏輯指令包括:1. 傳送(MOV)2. 屏蔽傳送(MVM)3. 邏輯與(AND)4. 邏輯或(OR)5. 邏輯異或(XOR)6. 邏輯非(NOT)7. 清零(CLR) 下面逐個加以介紹。1. 傳送(MOV )MOV指令將數(shù)據(jù)從源地址傳送到目的地址。只要梯級保持為真,每次掃描指令都重新傳送數(shù)據(jù)。2. 屏蔽傳送(MVM)MVM指令將數(shù)據(jù)從源地址傳送到目的地址,并且允許部分目的數(shù)據(jù)被一個獨立的字屏蔽。只要梯級條件保持為真,每次掃描該指令都重新傳送數(shù)據(jù)。上面程序中,數(shù)據(jù)傳送的方式為:屏蔽字中位為0時,源值相應(yīng)位的數(shù)據(jù)不傳送,相當(dāng)于源值和目的值的相應(yīng)位數(shù)據(jù)保持不變
41、。屏蔽字中位為1時,源值相應(yīng)位的數(shù)據(jù)傳送到目的地址的相應(yīng)位,相當(dāng)于MOV指令。1514131211109876543210B3:01100000000110011Mask0000000011111111B3:100001100001100113. 邏輯與(AND)AND指令使源A與源B執(zhí)行位與位的邏輯與操作。結(jié)果存儲在目的地址內(nèi)。4. 邏輯或(OR)OR指令使源A與源B執(zhí)行位與位的邏輯或操作。結(jié)果存儲在目的地址內(nèi)。5. 邏輯異或(XOR)XOR指令使源A與源B執(zhí)行位與位的邏輯異或操作。結(jié)果存儲在目的地址內(nèi)。6. 邏輯非(NOT)NOT指令使源A與源B執(zhí)行位與位的邏輯非操作。結(jié)果存儲在目的地址內(nèi)
42、。7. 清零(CLR)CLR指令使目的地址的值清為0。第六章 移位和順序進(jìn)出指令移位和順序進(jìn)出指令屬輸出指令。每一次梯級條件由假變真時,移位指令把指定地址內(nèi)的所有位都移動一個位的位置,順序進(jìn)出指令完成一次順序進(jìn)出或比較操作。移位和順序進(jìn)出指令包括:1. 位左移(BSL)2. 位右移(BSR)3. 順序器裝入(SQL)4. 順序器比較(SQC)5. 順序器輸出(SQO)6. FIFO裝入(FFL)7. FIFO卸出(FFU)8. LIFO裝入(LFL)9. LIFO卸出(LFU)下面逐個加以介紹。1. 位左移(BSL)當(dāng)梯級條件由假變真時,BSL指令對File文件指定的數(shù)據(jù)向左(向高位)移動一位
43、。由Bit Address指定的一位被移入最右位(最低位)。MicroLogix1500中Length的設(shè)定范圍為02048,含義為文件中參與移位的數(shù)據(jù)塊的位數(shù)。但是實際上只能移位整數(shù)個字的所有位。參與移位的字?jǐn)?shù)為對Length除以16,再向上取整。如上例,當(dāng)Length的值為16時,實際上都是移動N7:0的16位。2. 位右移(BSR)當(dāng)梯級條件由假變真時,BSR指令對File文件指定的數(shù)據(jù)向右(向低位)移動一位。由Bit Address指定的一位被移入最左位(最高位)。Length的含義與BSL中的相同。例1:O:0.0的預(yù)置狀態(tài)為1111000000000000。試編一程序,其前20S,
44、按每秒一次的速度進(jìn)行左移位;后20S,按每秒一次的速度進(jìn)行右移位。循環(huán)進(jìn)行。分析:本程序借鑒了前面的交通燈設(shè)計的思想。RUNG1和RUNG2即為交通燈交替亮的實現(xiàn)方式。只不過這里讓它使B3:1/0和B3:1/1交替置1。RUNG0為1S脈沖發(fā)生器。RUNG3和RUNG4中,B3:1/0、B3:1/1和T4:2/DN共同作為移位控制信號,實現(xiàn)了循環(huán)左右移位的要求。下面的順序器指令一般用來控制具有連續(xù)和重復(fù)操作特性的自動化生產(chǎn)線。順序器指令包括:順序器裝入指令SQL、順序器比較指令SQC、順序器輸出指令SQO。我們結(jié)合下面的程序來體會這三條指令。3. 順序器裝入(SQL)4. 順序器比較(SQC)
45、5. 順序器輸出(SQO)例2:讀程序分析結(jié)果。分析:RUNG0為3S脈沖發(fā)生器。為RUNG1RUNG3提供脈沖信號。RUNG1中,#File N9:0為順序器裝入文件,Source N7:0為數(shù)據(jù)源。當(dāng)梯級條件由假到真變化時,SQL指令從數(shù)據(jù)源讀入16位數(shù)據(jù),把它存入順序器裝入文件。當(dāng)梯級條件再由假到真變化時,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次。這時就可以輕松的讀懂RUNG3了。只
46、不過它還可以設(shè)置獨立的屏蔽字。每3S從順序器文件讀出一個數(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從順序器文件N12:0順序讀入一個數(shù)據(jù),經(jīng)過屏蔽后和源數(shù)據(jù)相比較,如果相等則FD位被置1,否則被置0。例3:每2S從I:0.0讀入一個數(shù)據(jù),共讀9次,完成順序器裝載。然后將順序器文件按每2S一次的速度依次傳到O:0.0顯示。分析:上面程序為順序器輸入輸出的一個簡單應(yīng)用。需注意它們需使用不同的控制字。否則
47、將處以混亂狀態(tài)。6. FIFO裝入(FFL)7. FIFO卸出(FFU)FFL和FFU 指令是成對使用的。它們實際為對數(shù)據(jù)結(jié)構(gòu)中隊列(FIFO,F(xiàn)irst In First Out,先進(jìn)先出)的操作。FFL相當(dāng)于進(jìn)隊操作,F(xiàn)FU相當(dāng)于出隊操作。例4:試編一程序,可以從輸入口I0:0置入10個數(shù),然后依次在輸出口O0:0顯示。分析:本程序中FFL、FFU指令成對使用,此時應(yīng)使用相同的控制字。程序運行后,前20S,每2S從I0:0讀入一個數(shù)據(jù),然后存入隊列文件#N7:0中。后20S,每2S從隊列文件#N7:0中讀出一個數(shù)據(jù),然后顯示在O0:0上(按先進(jìn)先出的順序讀數(shù))。8. LIFO裝入(LFL)
48、9. LIFO卸出(LFU)LFL和LFU 指令是成對使用的。它們實際為對數(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ù),然后再顯示倒數(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í)行梯形圖程序時跳過一些梯級,LBL指令是具有相同標(biāo)號的JMP指令的跳轉(zhuǎn)目標(biāo)。成對使用跳轉(zhuǎn)和標(biāo)號指令,可以跳轉(zhuǎn)到程序的某一部分。若跳轉(zhuǎn)指令為真,則處理器從JMP梯級跳到LBL梯級繼續(xù)執(zhí)行程序,而且既可以可以向前跳,也可以向后跳。若跳轉(zhuǎn)指令為假,則程序忽略JMP指令。向后跳向一個標(biāo)號省略了某段程序,故而縮短了掃描時間。向前跳轉(zhuǎn)可使處理器反復(fù)執(zhí)行一段程序,直到其邏輯完成為止。設(shè)JMP和LBL指令標(biāo)號的設(shè)置范圍為0999。上例中,當(dāng)I:0/6使
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 產(chǎn)品質(zhì)量持續(xù)改進(jìn)培訓(xùn)課件
- 電子產(chǎn)品回收處理標(biāo)準(zhǔn)
- 單病種臨床路徑管理制度
- 智能小區(qū)物聯(lián)網(wǎng)應(yīng)用系統(tǒng)
- 《Excel數(shù)據(jù)獲取與處理實戰(zhàn)》 課件 陳青 第3、4章 數(shù)據(jù)的輸入、工作表的格式化
- 溶劑泄露應(yīng)急處置
- GMP基礎(chǔ)知識培訓(xùn)
- 病從口入教案反思
- 胸腔閉式引流器的護(hù)理
- 城市娛樂設(shè)施建筑平房施工合同
- GB/T 15249.2-2009合質(zhì)金化學(xué)分析方法第2部分:銀量的測定火試金重量法和EDTA滴定法
- GA 1800.4-2021電力系統(tǒng)治安反恐防范要求第4部分:風(fēng)力發(fā)電企業(yè)
- 識別危險源-遠(yuǎn)離危險-公開課課件
- 木字的寫法寫字課教學(xué)課件教學(xué)設(shè)計
- 優(yōu)秀-敦煌壁畫課件
- 普法講座-治安管理處罰法課件
- 全科醫(yī)師培訓(xùn)大綱解讀課件
- 云南省學(xué)校食堂“六T”管理檢查評分標(biāo)準(zhǔn)
- 腫瘤細(xì)胞代謝與腫瘤微環(huán)境課件
- 工程建設(shè)項目招投標(biāo)領(lǐng)域整治強調(diào)發(fā)言
- 腹部閉合性損傷護(hù)理查房課件
評論
0/150
提交評論