版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
附錄TOC\o"1-3"\h\z第一章位指令 2第一節(jié)數(shù)據(jù)文件 3第二節(jié)位指令 6第二章計時器和計數(shù)器指令 11第三章比較指令 21第四章算術(shù)指令 26第五章傳送和邏輯指令 32第六章移位和順序進出指令 35第七章程序流程指令 42第八章I/O,文件,PID指令 46第九章高速計數(shù)指令 64
第一章位指令位指令可對數(shù)據(jù)的單個位進行操作。在運行時,處理器可以根據(jù)其所在梯級的邏輯條件置位或復(fù)位一位。應(yīng)用程序可以根據(jù)需要對一位尋址任意次。本章第一節(jié)介紹位指令地址可使用的數(shù)據(jù)文件,第二節(jié)介紹基本的位指令。
第一節(jié)數(shù)據(jù)文件系統(tǒng)默認(rèn)的數(shù)據(jù)文件分為以下幾種類型:輸出和輸入數(shù)據(jù)文件(O0:和I1:)狀態(tài)文件(S2:)位文件(B3:)計時器文件(T4:)計數(shù)器文件(C5:)控制文件(R6:)整數(shù)文件(N7:)上面的文件號也為系統(tǒng)默認(rèn)的(即系統(tǒng)默認(rèn)文件0為輸出文件,1為輸入文件,2為狀態(tài)文件,等等)。下面對這些系統(tǒng)默認(rèn)的文件類型分別予以介紹。輸出和輸入數(shù)據(jù)文件(O0:和I1:)文件O0中的各位表示外部的輸出,文件I1中的各位表示外部的輸入。在大多數(shù)情況下,這些文件中的每個16位字號與位于控制器內(nèi)的一槽相對應(yīng),位號與相應(yīng)的輸入或輸出端子號對應(yīng)。輸出和輸入的地址格式用e表示槽號,s表示字號。處理文件指令時,數(shù)據(jù)文件元素按e.s(槽號和字號)格式一起使用。格式說明O:O輸出I輸入:元素分隔符e槽號(十進制)加1擴展或模擬量表示+1槽號0號槽,即第一個框架中靠近電源的槽,用于處理器模塊。接下來的是I/O槽(1~30)。.字分隔符s字號如果某槽的I/O點數(shù)超過16時最好用字號(0~255)。字號表示十六進表現(xiàn)法,不用按十端子號算法(0~255)/位分隔符b端子號0~15舉例: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個時,尋址位有兩種表示方法:使用字、位尋址和直接位尋址。如:MicroLogix1500系列輸出0槽有64點。尋址O:0.2/13時,也可寫為O:0/45。缺省值:用戶編程設(shè)備顯示的地址格式將更加正規(guī)。例如:當(dāng)分配地址O:5/0時,編程設(shè)備將顯示為O:5.0/0(輸出文件,槽5,字0,端子0)。狀態(tài)文件(S2:)狀態(tài)文件允許用戶監(jiān)控、控制操作系統(tǒng)的工作狀況。監(jiān)控主要為監(jiān)控軟硬件故障及其它狀態(tài)信息。控制可通過設(shè)置相應(yīng)的控制位來實現(xiàn),這首先需要了解狀態(tài)文件中每個字、每個字節(jié)的功能。詳細說明請參閱SLC500andMicrologix1000指令集參考手冊附錄A。狀態(tài)文件不能被增加或刪除,尋址狀態(tài)文件的位和字的格式為:S:e/b各位含義同I/O文件。舉例:S:1/15元素1,位15。這是“首次掃描位”用戶在程序中可以使用它來初始化指令。S:3元素3。這一元素的低位字節(jié)時當(dāng)前掃描時間,高位字節(jié)是看門狗掃描時間。位文件(B3:)文件3是位文件,主要用于位指令(繼電器邏輯),移位寄存器和順序器指令。位文件的最大容量是256個單字元素,總計為4096位??梢酝ㄟ^指定元素號(0~255)和元素內(nèi)的位編號(0~15)來尋址位,也可以通過位的順序編號直接尋址位0~4095。用戶也可以只尋址該文件的元素。舉例:B:3/14元素3,位14B:252/0元素252,位0B:9元素9,位0~15B:/64或B/64位64(即元素4,位0)B:/4042或B/4042位4042計時器和計數(shù)器文件(T4:和C5:)每個計時器地址由一個3字元素組成,如下表所示:151413121116位式表示法ENTTDN內(nèi)部使用PRE(預(yù)置值)1ACC(累計值)2字0字1字2上表中,EN:使能位,TT:計時位,DN:完成位。舉例:T4:0/13或T4:0/DN完成位T4:0.1或T4:0.PRE預(yù)置值計數(shù)器文件(C5:)每個計數(shù)器地址由一個3字元素組成,如下表所示:1514131211109876543210CUCDDNOVUNUA內(nèi)部使用PRE(預(yù)置值)ACC(累計值)字0字1字2字上表中,CU:加計數(shù)使能位CD:減計數(shù)使能位DN:完成位OV:上溢出位UN:下溢出位UA:更新累計值位(只用于固定式控制器的HSC指令)。舉例:C5:0/13或C5:0/DN完成位C5:0.1或C5:0.PRE預(yù)置值控制文件(R6:)控制文件是3字元素,各字含義如下表。位移、順序器指令都用到控制文件。字1514131211109876543210ENEUDNEMERULINFD錯誤代碼位陣列或文件的長度(LEN)位指針或位置(POS)012
舉例:R:2元素2R:2/15或R:2/EN使能位R:2/13或R:2/DN完成位R:2.1或R:2.LEN長度值整數(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é)位指令位指令包括:檢查閉合(XIC)檢查斷開(XIO)輸出激勵(OTE)輸出鎖存(OTL)輸出解鎖(OTU)一次啟動(ONS)上升沿一次響應(yīng)(OSR)下降沿一次響應(yīng)(OSF)下面逐個加以介紹。檢查閉合(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)一致。檢查斷開(XIO)XIO屬輸出指令,用于檢查某位是否斷開(OFF)。它類似于常閉開關(guān)。當(dāng)指令執(zhí)行時,如果尋址位是斷開狀態(tài)(0),則指令被賦值為真;如果尋址位是導(dǎo)通狀態(tài)(1),則指令被賦值為假。輸出激勵(OTE)OTE指令屬輸出指令,用于控制存儲器中的位。若OTE指令前面的梯級條件為真,尋址位導(dǎo)通,相應(yīng)的設(shè)備接通;否則尋址位不能夠?qū)ǎ鄳?yīng)的設(shè)備不能夠接通。它類似于繼電器的輸出線圈。OTE指令由它前面的輸入指令控制,而繼電器的線圈由硬觸點控制。輸出鎖存(OTL)OTL屬保持型輸出指令。當(dāng)梯級條件為真時,OTL指令對該尋址位置位。即使梯級條件變?yōu)榧?,該位依然保持置位。若要?fù)位,則需要在另一個階梯中使用解鎖指令OTU,對同一尋址位進行解鎖。輸出解鎖(OTU)OTU屬保持型輸出指令。常用于復(fù)位由OTL指令鎖存的位,此時OTL、OTU應(yīng)使用相同的地址。當(dāng)梯級條件為真時,OTU指令對該尋址位復(fù)位。即使梯級條件變?yōu)榧?,該位依然保持?fù)位。直至另一指令對該位重新置位。下面通過具體的梯形圖來進一步理解上述位指令:例1:討論改變以下開關(guān)狀態(tài)時,燈的變化情況。RUNG0中,當(dāng)I:0/4使能時,O:0/0為真,燈亮。RUNG1中,當(dāng)I:0/5斷開時,O:0/1為真,燈亮。RUNG2中,只有當(dāng)I:0/6和I:0/8,或者I:0/7和I:0/8使能時,O:0/2才為真,燈亮。RUNG3和RUNG4中,OTL和OTU指令成對出現(xiàn)。一旦I:0/9使能,O:0/3就鎖存為真,燈亮。即使I:0/9在下一次掃描周期由真變假,燈仍然保持亮。直至I:0/10使能,O:0/3解鎖,燈滅。RUNG5中,END指令表明程序結(jié)束。一次啟動(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。直到輸入再次由假到真跳變。上升沿一次響應(yīng)(OSR)OSR屬輸出指令。當(dāng)OSR指令所在梯級條件由假到真變化時,在輸出位(OutputBit)產(chǎn)生一個周期正脈沖(即“上升沿動作類型”)。存儲位(StorageBit)中自動存儲了OSR指令所在階梯的梯級條件(為真則存儲1,為假則存儲0)。下降沿一次響應(yīng)(OSF)OSF屬輸出指令。當(dāng)OSF指令所在梯級條件由真到假變化時,在輸出位(OutputBit)產(chǎn)生一個周期正脈沖(即“下降沿動作類型”)。存儲位(StorageBit)中自動存儲了OSF指令所在階梯的梯級條件(為真則存儲1,為假則存儲0)。下面我們通過具體的梯形圖來進一步理解這三條指令:例2:討論改變以下開關(guān)狀態(tài)時,燈的變化情況。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解鎖。RUNG2、RUNG3和RUNG4中,當(dāng)I:0/6閉合時(即產(chǎn)生一個上升沿信號),OSR指令的梯級條件由假到真變化,使在輸出位B3:0/2產(chǎn)生一個周期正脈沖,使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滅。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位存儲了OSF指令的梯級條件。分析同上。RUNG8中,I:0/9用于為上面鎖存的小燈解鎖。`
第二章計時器和計數(shù)器指令計時器和計數(shù)器指令屬輸出指令,用于控制基于時間和事件記數(shù)的操作,包括:延時導(dǎo)通計時器(TON)延時斷開計時器(TOF)保持型計時器(RTO)加計數(shù)(CTU)減計數(shù)(CTD)計時器/計數(shù)器復(fù)位(RES)下面逐個加以介紹。延時導(dǎo)通計時器(TON)延時導(dǎo)通計時器(TON)的功能是梯級條件變真后經(jīng)過一段延時時間對輸出動作。它相當(dāng)于繼電器控制系統(tǒng)中的通電延時繼電器。TON是否啟動由它前面的輸入指令控制,而通電延時繼電器是由硬觸點控制。TON的延時時間可任意設(shè)定,而通電延時繼電器是由它的物理結(jié)構(gòu)決定,不能夠任意改動。因此TON指令更加方便靈活。使用TON指令時需要提供以下參數(shù):計時器(Timer):指明所使用的計時器元素(如T4:0)。時基(Timebase):計時器每次計時的遞增值。Micrologix1500系列可選擇1S、0.01S和0.001S三種,共可累計32767個時基間隔。它決定了計時器的精度。預(yù)置值(Preset):用于設(shè)定延時時間,可設(shè)為整數(shù)-32768~32767。累計值(Accum):是一個動態(tài)值,表明了到目前計時器已經(jīng)延時的數(shù)值。當(dāng)梯級條件變真時,TON開始計時,直到下列條件中的任何一個發(fā)生為止:累計值=預(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工作的時序圖為:ONONOFFONOFFONOFFONOFFONOFF2分鐘3分鐘通延時階梯條件計時器使能位計時器計時位計時器完成位輸出設(shè)備(完成位控制)時間累計值0120計時器預(yù)置值=180180圖3.21TON時序圖例4:有三個馬達MTR1、MTR2、MTR3,按先后次序啟動。要求MTR1先啟動,三秒后MTR2啟動,再過5秒后MTR3啟動。停止時三個馬達同時停止,請模擬這個過程。分析:I:3/0為啟動按鈕,I:3/1為停止按鈕,它們都為點動按鈕。用燈O:4/0、O:4/1、O:4/2模擬馬達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: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后動作,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)榧伲琓4: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)了交通燈交替亮滅。延時斷開計時器(TOF)延時斷開計時器(TOF)的功能是梯級條件變假后經(jīng)過一段延時時間對輸出動作。它相當(dāng)于繼電器控制系統(tǒng)中的斷電延時繼電器。TOF指令各參數(shù)的含義與TON相同。當(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é)果。保持型計時器(RTO)TON和TOF計時器在梯級條件變假時,累計值和DN位都要被復(fù)位,梯級條件變?yōu)檎婧笥种匦掠嫊r,有時這會給某些應(yīng)用帶來不便。這時我們可以采用能累積計時的RTO指令。當(dāng)梯級條件為真時,RTO指令開始計時。當(dāng)下列任何情況發(fā)生時,RTO指令保持它的累計值:梯級變假;用戶改變到編程方式;處理器出錯或斷電。當(dāng)處理器重新運行或階梯變真時,RTO計時器從保持的值開始繼續(xù)計時,直到累計值達到預(yù)置值。如果需要復(fù)位其累計值和狀態(tài)位,可在另一階梯中用RES指令對相同地址的計時器復(fù)位。無論任何情況,復(fù)位指令總是優(yōu)先執(zhí)行。即只要使能復(fù)位指令,無論計時器是否正在計時,累計值及狀態(tài)位總被復(fù)位為0。RTO指令的狀態(tài)位的變化情況如下:狀態(tài)位置位條件保持置位直到下列情況發(fā)生DN累計值>=預(yù)置值相應(yīng)的RES指令使能TT梯級為真且累計值<預(yù)置值梯級變?yōu)榧倩虮籇N置位EN梯級為真梯級變?yōu)榧偌佑嫈?shù)(CTU)CTU指令在-32768~32767范圍內(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指令使能或者用CTD指令使累計值<=32767DN累計值>=預(yù)置值累計值<預(yù)置值CU梯級為真梯級變?yōu)榧倩蛳鄳?yīng)的RES指令使能CTU工作的時序圖為:由計數(shù)器控制階梯上的輸出指令由計數(shù)器控制階梯上的輸出指令ONOFFONOFFONOFFONOFFONOFF控制計數(shù)器的階梯條件控制復(fù)位指令的階梯條件計數(shù)器累計值012340計數(shù)器預(yù)置值=4圖3.22CTU時序圖例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,其常閉閉合又啟動T4: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。減計數(shù)(CTD)CTD指令在-32768~32767范圍內(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)位置位條件保持置位直到下列情況發(fā)生UN累計值返回到32767(即從-32768繼續(xù)計數(shù))相應(yīng)的RES指令使能或者用CTD指令使累計值>=-32767DN累計值>=預(yù)置值累計值<預(yù)置值CD梯級為真梯級變?yōu)榧倩蛳鄳?yīng)的RES指令使能計時器/計數(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)使能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)I:0/5使能,每1.5秒C5:0的累計值就加1。當(dāng)I:0/6使能,每1秒C5:0的累計值就減1。這樣就模擬了三個閥的流量情況。本程序也有不足之處,例如計數(shù)器的累計值可以無限制的增加和減小,這不符合客觀實際情況,在后面的章節(jié)里我們會用另外的程序來解決這個問題。
第三章比較指令比較指令屬輸入指令,用于比較兩值作為邏輯梯級連續(xù)的條件。例如,小于(LES)指令有兩個操作數(shù),如果第一個小于第二個,那么LES指令為真。比較指令共包括:等于(EQU)不等于(NEQ)小于(LES)小于或等于(LEQ)大于(GRT)大于或等于(GEQ)相等屏蔽比較(MEQ)極限比較(LIM)它們的用法大致相同,掌握了一個也就掌握了其它的。下面逐個加以介紹。等于(EQU)使用EQU指令比較二值是否相等。如果源A的值和源B的值相等,指令邏輯為真,否則為假。操作數(shù)為兩個數(shù)的比較指令(比如有源A和源B兩個操作數(shù)的EQU指令)一般要求的數(shù)據(jù)尋址方式為:源A必須為地址,源B可為常數(shù)或地址。例1:讀程序分析結(jié)果。分析:上面程序即為EQU指令的一個簡單應(yīng)用。RUNG0中,SourceA與SourceB的值相等,小燈O:4/0亮。RUNG1中,SourceA與SourceB的值不等,小燈O:4/1滅。不等于(NEQ)使用NEQ指令比較二值是否不相等。如果源A的值和源B的值不相等,指令邏輯為真,否則為假。小于(LES)使用LES指令比較一個值是否小于另一個值。如果源A的值小于源B的值,指令邏輯為真,否則為假。小于或等于(LEQ)使用LEQ指令比較一個值是否小于或等于另一個值。如果源A的值小于或等于源B的值,指令邏輯為真,否則為假。大于(GRT)使用GRT指令比較一個值是否大于另一個值。如果源A的值大于源B的值,指令邏輯為真,否則為假。大于或等于(GEQ)使用GEQ指令比較一個值是否大于或等于另一個值。如果源A的值大于或等于源B的值,指令邏輯為真,否則為假。相等屏蔽比較(MEQ)使用MEQ指令比較源地址中的數(shù)據(jù)和比較地址中的數(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亮。極限比較(LIM)使用LIM指令,根據(jù)用戶設(shè)定的極限值,比較某值是在指定范圍之內(nèi)或之外。指令的真假狀態(tài):如果下限值小于或等于上限值,當(dāng)比較值在極限范圍內(nèi)或等于任一極限值時,指令邏輯為真,否則為假。如果下限值大于上限值,當(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)閉。若同時有注入和流出閥門打開,上面程序可自動循環(huán)。
第四章算術(shù)指令算術(shù)指令屬輸出指令,當(dāng)梯級條件為真時,執(zhí)行指定的算術(shù)運算,輸出結(jié)果存放到一個指定的存儲單元。并根據(jù)結(jié)果自動設(shè)置狀態(tài)位。例如,加和減指令都是取兩個輸入值,進行加或減運算,運算結(jié)果存放到指定的目的地址內(nèi)。并根據(jù)結(jié)果自動設(shè)置了狀態(tài)位。算術(shù)指令包括:加指令(ADD)減指令(SUB)乘指令(MUL)除指令(DIV)平方根(SQR)取反指令(NEG)整數(shù)轉(zhuǎn)換成BCD碼(TOD)從BCD碼轉(zhuǎn)換成整數(shù)(FRD)線性轉(zhuǎn)換(SCP)編碼(ENC)解碼(DCD)它們的用法也大致相同,下面逐個加以介紹。加指令(ADD)ADD指令使源A和源B的值相加,結(jié)果存放到目的地址內(nèi)。例1:讀程序分析結(jié)果。分析:上面程序為ADD指令的一個簡單應(yīng)用。ADD指令把SourceA和SourceB的值相加,結(jié)果存入Dest中(4+9,結(jié)果13存入N7:2)。減指令(SUB)SUB指令使源A的值減去源B的值,結(jié)果存放到目的地址內(nèi)。乘指令(MUL)MUL指令使源A的值乘以源B的值,結(jié)果存放到目的地址內(nèi)。除指令(DIV)DIV指令使源A的值被源B的值所除。商四舍五入存放在目的地址內(nèi)。平方根(SQR)SQR指令計算源值絕對值的平方根,結(jié)果四舍五入存放在目的地址內(nèi)。取反指令(NEG)NEG指令改變源值的符號然后存放到目的地址內(nèi)。例如,如果源的值是3,目的數(shù)據(jù)將是-3。整數(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ù)進位的關(guān)系來表達,幾乎可以計到無限。我們可以先用一個計數(shù)器來表示六位計數(shù)器的低四位,用另一個計數(shù)器來模擬六位計數(shù)器的高兩位。本程序中,RUNG0產(chǎn)生計數(shù)脈沖,RUNG1用一個計數(shù)器來表示六位計數(shù)器的低四位,RUNG2用另一個計數(shù)器來表示六位計數(shù)器的高兩位。RUNG3兩位計數(shù)器一旦完成計數(shù)(即六位計數(shù)器已完成999999),兩位計數(shù)器清0復(fù)位并輸出信號。RUNG4和RUNG5用TOD指令把兩個計數(shù)器的累計值變?yōu)锽CD碼在整數(shù)文件中顯示,N7:0顯示低四位,N7:1顯示高兩位。從BCD碼轉(zhuǎn)換成整數(shù)(FRD)FRD指令把BCD碼轉(zhuǎn)換成16-位整數(shù)值。如果源數(shù)據(jù)不符合BCD碼格式則發(fā)生處理器出錯。線性轉(zhuǎn)換(SCP)SCP指令可對一個數(shù)進行線性轉(zhuǎn)換。Input為轉(zhuǎn)換的輸入值。InputMin~InputMax為設(shè)定的輸入值的范圍。ScaledMin~ScaledMax為希望得到的轉(zhuǎn)換結(jié)果的范圍。當(dāng)梯級條件為真,它可以把輸入值(Input)線性轉(zhuǎn)化到ScaledMin~ScaledMax中。轉(zhuǎn)換規(guī)則根據(jù)下面方程:編碼(ENC)ENC指令可以把Source編碼。Source為16位字,并且只能有一位為1,其余位均為0。轉(zhuǎn)換規(guī)則如下:SourceDest00000000000000010000000000000001010000000000000100200000000000010003000000000001000040000000000100000500000000010000006000000001000000070000000100000000800000010000000009000001000000000010000010000000000011000100000000000012001000000000000013010000000000000014100000000000000015解碼(DCD)DCD指令為ENC指令的逆運算。它把源數(shù)據(jù)(Source)的最低4位的轉(zhuǎn)化結(jié)果置入目的地址(Dest)中。轉(zhuǎn)換規(guī)則為上表的逆。
第五章傳送和邏輯指令傳送和邏輯指令屬輸出指令,當(dāng)梯級條件為真時,執(zhí)行相應(yīng)的傳送或邏輯操作。指令執(zhí)行后,并根據(jù)結(jié)果自動設(shè)置狀態(tài)位。傳送和邏輯指令包括:傳送(MOV)屏蔽傳送(MVM)邏輯與(AND)邏輯或(OR)邏輯異或(XOR)邏輯非(NOT)清零(CLR)下面逐個加以介紹。傳送(MOV)MOV指令將數(shù)據(jù)從源地址傳送到目的地址。只要梯級保持為真,每次掃描指令都重新傳送數(shù)據(jù)。屏蔽傳送(MVM)MVM指令將數(shù)據(jù)從源地址傳送到目的地址,并且允許部分目的數(shù)據(jù)被一個獨立的字屏蔽。只要梯級條件保持為真,每次掃描該指令都重新傳送數(shù)據(jù)。上面程序中,數(shù)據(jù)傳送的方式為:屏蔽字中位為0時,源值相應(yīng)位的數(shù)據(jù)不傳送,相當(dāng)于源值和目的值的相應(yīng)位數(shù)據(jù)保持不變。屏蔽字中位為1時,源值相應(yīng)位的數(shù)據(jù)傳送到目的地址的相應(yīng)位,相當(dāng)于MOV指令。1514131211109876543210B3:01100000000110011Mask0000000011111111B3:10000110000110011邏輯與(AND)AND指令使源A與源B執(zhí)行位與位的邏輯與操作。結(jié)果存儲在目的地址內(nèi)。邏輯或(OR)OR指令使源A與源B執(zhí)行位與位的邏輯或操作。結(jié)果存儲在目的地址內(nèi)。邏輯異或(XOR)XOR指令使源A與源B執(zhí)行位與位的邏輯異或操作。結(jié)果存儲在目的地址內(nèi)。邏輯非(NOT)NOT指令使源A與源B執(zhí)行位與位的邏輯非操作。結(jié)果存儲在目的地址內(nèi)。清零(CLR)CLR指令使目的地址的值清為0。
第六章移位和順序進出指令移位和順序進出指令屬輸出指令。每一次梯級條件由假變真時,移位指令把指定地址內(nèi)的所有位都移動一個位的位置,順序進出指令完成一次順序進出或比較操作。移位和順序進出指令包括:位左移(BSL)位右移(BSR)順序器裝入(SQL)順序器比較(SQC)順序器輸出(SQO)FIFO裝入(FFL)FIFO卸出(FFU)LIFO裝入(LFL)LIFO卸出(LFU)下面逐個加以介紹。位左移(BSL)當(dāng)梯級條件由假變真時,BSL指令對File文件指定的數(shù)據(jù)向左(向高位)移動一位。由BitAddress指定的一位被移入最右位(最低位)。MicroLogix1500中Length的設(shè)定范圍為0~2048,含義為文件中參與移位的數(shù)據(jù)塊的位數(shù)。但是實際上只能移位整數(shù)個字的所有位。參與移位的字?jǐn)?shù)為對Length除以16,再向上取整。如上例,當(dāng)Length的值為1~16時,實際上都是移動N7:0的16位。位右移(BSR)當(dāng)梯級條件由假變真時,BSR指令對File文件指定的數(shù)據(jù)向右(向低位)移動一位。由BitAddress指定的一位被移入最左位(最高位)。Length的含義與BSL中的相同。分析:本程序借鑒了前面的交通燈設(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é)合下面的程序來體會這三條指令。順序器裝入(SQL)順序器比較(SQC)順序器輸出(SQO)例2:讀程序分析結(jié)果。分析:RUNG0為3S脈沖發(fā)生器。為RUNG1~RUNG3提供脈沖信號。RUNG1中,#FileN9:0為順序器裝入文件,SourceN7: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了。只不過它還可以設(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)用。需注意它們需使用不同的控制字。否則將處以混亂狀態(tài)。FIFO裝入(FFL)FIFO卸出(FFU)FFL和FFU指令是成對使用的。它們實際為對數(shù)據(jù)結(jié)構(gòu)中隊列(FIFO,F(xiàn)irstInFirstOut,先進先出)的操作。FFL相當(dāng)于進隊操作,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上(按先進先出的順序讀數(shù))。LIFO裝入(LFL)LIFO卸出(LFU)LFL和LFU指令是成對使用的。它們實際為對數(shù)據(jù)結(jié)構(gòu)中堆棧(LIFO,LastInFirstOut,后進先出)的操作。LFL相當(dāng)于進棧操作,LFU相當(dāng)于出棧操作。若將上例的FFL、FFU指令換為LFL、LFU指令,則在輸出口O0:0上,首先顯示最后輸入的數(shù)據(jù),然后再顯示倒數(shù)第2次輸入的數(shù)據(jù),依次類推,最后顯示第1次輸入的數(shù)據(jù)。
第七章程序流程指令程序流程指令控制梯形圖程序執(zhí)行的順序。有代表性的應(yīng)用這些指令,可提高程序的執(zhí)行效率和可讀性,也有利于程序的故障檢測。程序流程指令包括:程序跳轉(zhuǎn)(JMP、LBL)跳轉(zhuǎn)到子程序(JSR、SBR、RET)暫停(TND)中斷(SUS)主控程序(MCR)下面分別加以介紹。程序跳轉(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è)置范圍為0~999。上例中,當(dāng)I:0/6使能,程序便跳過RUNG1,直接執(zhí)行RUNG2。當(dāng)I:0/6斷開,程序不跳轉(zhuǎn),繼續(xù)執(zhí)行RUNG1。跳轉(zhuǎn)到子程序(JSR、SBR、RET)在梯形圖程序中,可以把在很多處都要執(zhí)行的部分做成子程序,這樣可以使程序更加清晰,并且節(jié)省存儲空間。新建子程序的方法為:打開RSLogix500編程界面。鼠標(biāo)右鍵點擊左邊目錄中的“ProgramFiles”。在彈出的菜單中單擊“New”。彈出“CreateProgramFile”對話框。填入所欲創(chuàng)建的子程序號(3~255),單擊“OK”即可。主程序的文件號為2(即LAD2)。JSR、SBR和RET指令使得處理器跳到梯形圖圖程序中的一個獨立的子程序文件,并對它進行一次掃描,然后返回出發(fā)點。JSR指令使處理器跳到指定的子程序文件。如上例,在主程序中需要跳轉(zhuǎn)到子程序的地方加入JSR指令,參數(shù)為子程序的文件號。SBR指令必須在子程序的第一條指令的第一梯級。是否使用該指令是可選的,為了使程序清晰建議大家使用它。在子程序的末尾用RET指令返回到主程序。當(dāng)JSR指令的梯級條件變真時,處理器便跳轉(zhuǎn)到子程序中。在用JSR指令編程時,應(yīng)注意:每一個屬于主程序外部的子程序必須有自己的文件并且由唯一的描述符來識別。除了子程序文件的第一個SBR指令外,主程序不能跳轉(zhuǎn)到子程序中任何別的地方??梢郧短锥噙_8個子程序文件。子程序文件嵌套:可在一個程序文件中嵌套多達8個子程序。也就是說,只要子程序不超過7級,便可讓處理器從主程序跳向一個子程序,然后再從一個子程序跳轉(zhuǎn)到另一個子程序。處理器返回路徑與此相反,在RET指令處,處理器自動的返回到先前JSR指令后的下一條指令,并且在返回主程序之前一直遵循此執(zhí)行過程。暫停(TND)當(dāng)TND指令梯級條件為真時,處理器停止掃描程序的其余部分并更新I/O,并從主程序的第一條指令處恢復(fù)執(zhí)行程序掃描。在調(diào)試程序或查找程序故障時,可插入TND指令,它只允許程序運行到它所在的程序為止。在程序中逐步的移動此指令,以調(diào)試一段新的程序,還可以用它來作為主程序和本地子程序的一個分界線。中斷(SUS)當(dāng)SUS指令使能時,它使處理器進入掛起模式并且在狀態(tài)文件的字7(S:7)存儲掛起ID。所有的輸出被停止使能。在程序調(diào)試和系統(tǒng)故障檢測時用這一指令可獲得或查明具體條件。當(dāng)編程該指令時輸入掛起ID,編號范圍是-32768~32767。如上例,當(dāng)I:0/8使能,執(zhí)行SUS指令,它使處理器掛起,程序中斷執(zhí)行。打開狀態(tài)文件,可看到S:7的值為4444,中斷文件號為2(主文件)。主控程序(MCR)成對使用MCR指令可創(chuàng)建一程序區(qū)域。它可關(guān)斷此區(qū)域內(nèi)所有非保持型輸出。非保持型輸出在其所在梯級條件變假時被復(fù)位。當(dāng)開始的MCR梯級條件為真時,每個梯級根據(jù)各自的輸入條件執(zhí)行MCR區(qū)域(好象MCR不存在一樣)。當(dāng)開始的MCR梯級條件為假時,無論每個梯級各自的輸入條件怎樣,MCR都復(fù)位所有非保持型輸出指令。如上例,當(dāng)I:0/8斷開時,好象MCR指令不存在,程序繼續(xù)執(zhí)行下一步。當(dāng)I:0/8使能時,無論I:0/6是否使能,O:0/6都不亮。當(dāng)用MCR指令編程時,應(yīng)注意:一定要成對使用MCR指令,用無條件MCR指令結(jié)束程序區(qū)。不能在一個MCR區(qū)內(nèi)嵌套另一個MCR區(qū)。不要從程序外部跳轉(zhuǎn)到MCR區(qū)內(nèi)。如果MCR區(qū)條件為假,跳轉(zhuǎn)到此區(qū)會使此區(qū)被激活。如果MCR區(qū)連接到梯形圖的結(jié)尾,就不必編寫另一條MCR指令來結(jié)束此MCR區(qū)。
第八章I/O,文件,PID指令本章指令大都涉及到I/O輸入輸出,文件的操作,模擬量輸入輸出,PID運算與控制。具體包括:立即輸入輸出(IIM、IOM)通訊服務(wù)(SVC)通訊(MSG)更新I/O(REF)文件拷貝(COP)文件填充(FLL)數(shù)據(jù)整定(SCL)I/O中斷子程序(INT)STI中斷啟動(STS)PID控制(PID)脈沖串輸出(PTO)脈寬調(diào)制(PWM)用戶中斷屏蔽(UID)用戶中斷使能(UIE)用戶中斷(UIF)下面逐個加以介紹。立即輸入(IIM)IIM指令可以優(yōu)先于正常的掃描順序刷新輸入的值。當(dāng)它使能,程序掃描被中斷,從指定的輸入口中讀來數(shù)據(jù),經(jīng)過屏蔽后,刷新其數(shù)據(jù)文件的值。然后再恢復(fù)程序掃描。屏蔽字中,為0的位屏蔽數(shù)據(jù),為1的位通過數(shù)據(jù)。立即輸出(IOM)IOM指令可以優(yōu)先于正常的掃描順序刷新輸出的值。當(dāng)它使能,程序掃描被中斷,從輸出數(shù)據(jù)文件中讀來數(shù)據(jù),經(jīng)過屏蔽后,刷新指定的輸出口。然后再恢復(fù)程序掃描通訊(MSG)MicroLogix1500的通訊體系結(jié)構(gòu)由三個基本的部分組成:梯形圖掃描(LaderScan);通訊緩沖區(qū)(CommunicationsBuffers);通訊隊列(CommunicationQueue)。它們決定了處理器什么時候傳送消息。當(dāng)MSG指令使能,假如指令內(nèi)定義的是寫命令,則指定的信息和數(shù)據(jù)被傳送到通訊緩沖區(qū)內(nèi)。處理器繼續(xù)掃描梯形圖程序的其他部分。一般在一個掃描周期結(jié)束后,信息被處理,并且通過通訊通道發(fā)出處理器。MicroLogix1500內(nèi)共4個通訊緩沖區(qū)。當(dāng)在一個通訊指令結(jié)束前,如果又有一條通訊指令要處理,則它的信息和數(shù)據(jù)被傳送到其余未用的一個通訊緩沖區(qū)內(nèi)。當(dāng)四個緩沖區(qū)全滿,第五個通訊指令又要處理時,通訊請求信息放在通訊隊列中(注意,不是要傳送的數(shù)據(jù))。通訊隊列是一個信息存儲空間,存儲了那些還沒有被分配緩沖區(qū)的通訊指令。通訊隊列的操作順序是先進先出(FIFO),它可容納得下梯形圖中所有的通訊指令。緩沖區(qū)和隊列機制都是完全自動執(zhí)行的。通訊緩沖區(qū)被自動分配和釋放,當(dāng)緩沖區(qū)滿時,再來請求則自動進入隊列。因為通訊隊列中不是存儲要傳送的數(shù)據(jù),所以如果一條通訊指令在隊列中移出,處理器實際發(fā)送的數(shù)據(jù)和通訊指令第一次被掃描時可能不同。MicroLogix1500可以本地或遠程通信.本地通信中所有設(shè)備都可直接到達,沒有單獨的設(shè)備用作網(wǎng)橋(Bigdge),組網(wǎng)中可能用到不同類型的接口,但是這樣的網(wǎng)絡(luò)依然被分類為本地網(wǎng)。遠程通信用遠程網(wǎng),設(shè)備連接通過或路由過一個專門的設(shè)備。用1761-NET-AIC配置的DH485本地網(wǎng)DH485遠程網(wǎng)MSG屬輸出指令,它可以使控制器和其他設(shè)備通訊。下面介紹MSG屏幕參數(shù)的含義。通信命令(CommunicationCommand):指定選擇的通信類型。包括目標(biāo)設(shè)備類型,以及是信息讀(Read)還是信息寫(Write)。讀是指本地處理器(指令駐留的處理器是本地處理器)接收數(shù)據(jù),寫是指本地處理器發(fā)送數(shù)據(jù)。目標(biāo)設(shè)備類型共有三種可以選擇:500CPU、485CIF、PLC5,它們分別支持的設(shè)備如下:500CPUREAD:如果目的設(shè)備為SLC500或兼容(包括所有的MicroLogix1000,1500)。485CIF:如果目的設(shè)備為PLC2或兼容(支持485CIF)。PLC5:如果目的設(shè)備為PLC5或兼容。MicroLogix1500支持6種不同的通信類型:500CPUREAD、500CPUWRITE、485CIFREAD、485CIFWRITE、PLC5READ、PLC5WRITE。如果目標(biāo)設(shè)備支持這6種通信類型中的任何一中,MicroLogix1500就可以和它通信。數(shù)據(jù)表地址(DataTableAddress):參數(shù)指定了本地處理器要處理數(shù)據(jù)的開始地址。元素大?。⊿izeinElements):參數(shù)指定了要和其他設(shè)備交換數(shù)據(jù)的大?。ū镜卦氐拇笮。?。MSG指令可傳送的數(shù)據(jù)最大量為103字(206個字節(jié)),也被目的數(shù)據(jù)類型決定。通信通道選擇(Channel):參數(shù)指定了傳送通信請求時選用的通信通道。MicroLogix1500通過通道0(配置DF1全雙工、DF1半雙工或DH485協(xié)議)啟動通訊指令。只有MicroLogix1500LRPSeriesB可使用通道0或1。以下是目標(biāo)設(shè)備通信的參數(shù):通信超時(MessageTimeout):定義了通信指令開始后,幾秒應(yīng)該完成,超過設(shè)定時間后,發(fā)生通信錯誤。默認(rèn)為5秒。數(shù)據(jù)表地址(DataTableAddress):參數(shù)指定了目的處理器數(shù)據(jù)的開始地址。本地節(jié)點地址(LocalNodeAddr):連接在網(wǎng)絡(luò)上的目標(biāo)設(shè)備的節(jié)點地址。本地/遠程(Local/Remote):指定選用的通信類型。選擇遠程通信時還需要設(shè)置:遠程站地址(RemoteStationAddress):目標(biāo)站的DH地址。遠程橋地址(RemoteBridgeAddress):要訪問的遠程處理器的所在地址。橋連接ID(BridgeLinkID):要訪問的數(shù)據(jù)的地址。下面我們通過一個實例體會MSG指令的具體應(yīng)用。問題描述:在一個DH485網(wǎng)絡(luò)上,有兩臺可編程序控制器MicroLogix1500(節(jié)點地址為2)和MicroLogix1000(節(jié)點地址分別為1)。現(xiàn)要求用1500的輸入口(I:0.0)控制1000的電機啟動、停止、變頻調(diào)速。1500中運行的程序MSG指令屏幕參數(shù)的設(shè)置1000中運行的程序分析:MicroLogix1500的程序?qū)崿F(xiàn)把輸入端(I:0.0)的數(shù)據(jù)送到MicroLogix1000。只用到了一條通訊指令MSG,當(dāng)I:3/0使能時啟動通訊。屏幕參數(shù)中,因為要發(fā)送數(shù)據(jù),且目標(biāo)設(shè)備是MicroLogix1000,所以選擇500CPUWrite。要傳送的數(shù)據(jù)表地址為I:0.0,長度為1個字。通過通道0傳送。目標(biāo)設(shè)備配置的參數(shù)中,最大通信延時設(shè)為默認(rèn)的5S,數(shù)據(jù)傳送到目標(biāo)設(shè)備的N7:0中。目標(biāo)設(shè)備的節(jié)點地址為1,采用本地網(wǎng)通信類型。MicroLogix1000的程序?qū)崿F(xiàn)根據(jù)傳送來的N7:0的數(shù)據(jù)控制電機工作。RUNG0~RUNG2分別控制電機的正轉(zhuǎn)、反轉(zhuǎn)、停止。RUNG3~RUNG5可通過三個開關(guān)為0或1的狀態(tài)組合而改變電機的工作頻率(共可組合為8種)。通訊服務(wù)(SVC)SVC屬輸出指令。用于優(yōu)于正常掃描周期執(zhí)行通訊程序。當(dāng)使能時,程序掃描被中斷以執(zhí)行操作周期的通訊服務(wù)部分。然后從SVC指令的下一條指令恢復(fù)掃描。SVC指令允許選擇指定的通訊服務(wù)通道。處理器一般在梯形圖程序一個掃描周期結(jié)束后掃描通訊端口。如果要求通訊端口被更多次的掃描,或者梯形圖程序很長,要優(yōu)先執(zhí)行
MSG指令,可以選擇使用SVC指令。SVC可以提高通訊的性能和吞吐量,但它以整個梯形圖程序掃描時間變的更長為代價。更新I/O(REF)當(dāng)REF指令使能,它中斷程序的正常掃描,執(zhí)行I/O掃描(讀輸入口,寫輸出口),然后程序重新開始。文件拷貝(COP)COP指令是一條輸出指令。當(dāng)梯級條件為真,它把源文件拷貝到目的文件。源文件和目的文件的長度要求至少有Length指定的長度。它們可為不同的文件類型。目的文件類型決定了要傳送的字?jǐn)?shù)。例如,將文件#N7:100的10個字拷貝到#N7:110。分析:閉和I:0/8,使能COP指令,就完成了COPY。把N7:100~N7:109的數(shù)據(jù)分別寫到了N7:110~N7:119,N7:100~N7:109的數(shù)據(jù)保持不變。文件填充(FLL)FLL指令為一條輸出指令。它用源值來填充目的文件。目的文件類型決定了填充每個元素時需要傳送的字節(jié)數(shù)。數(shù)據(jù)整定(SCL)SCL指令把源值乘以比率(Rate),再加上一個偏移量(OFFSET)作為輸出。I/O中斷子程序(INT)INT指令把一個程序文件作為中斷子程序而不是一般的SBR子程序。INT指令必須在子程序的第一條指令的第一梯級。它不是必須,但是我們推薦使用。STI中斷啟動(STS)STS指令有啟動和停止STI(SelectableTimedInterrupt)功能,并可改變STI用戶中斷的時間間隔。當(dāng)梯級條件由假變真,STI功能文件的用戶中斷使能位UIE自動置1(UIE位在程序中沒有被其它位控制);設(shè)定STI的中斷時間間隔值Time,定時中斷使能位TIE自動置1,這樣就啟動了可選定時中斷STI。如果時間值Time為0,TIE自動置0,STI功能無效。STS指令只有一個參數(shù):Time。它設(shè)定了STI中斷每隔多少毫秒執(zhí)行一次,如上圖,若定時中斷被啟動,則每隔2300毫秒執(zhí)行一次中斷子程序,它必須大于執(zhí)行一次中斷子程序所需的時間。下面我們通過實例體會STS指令的具體應(yīng)用。問題描述:監(jiān)控模擬量輸入口,每隔3S檢查一次,當(dāng)它變?yōu)樨?fù)值時指示燈亮,并記錄檢查的總次數(shù)。分析:將STI功能文件中的程序文件號子元素(PFN)設(shè)置為4,表示4號子程序為STI中斷子程序。N7:10中置入3000,表示3000毫秒執(zhí)行一次子程序。當(dāng)I:0/8使能(只需一個周期的正脈沖就可),啟動STS指令。STS指令所做的操作為:對STI功能文件中的用戶中斷使能位(UIE)置1,表示發(fā)生定時中斷后,執(zhí)行用戶中斷子程序。將參數(shù)值3000寫入STI功能文件中的設(shè)定中斷時間間隔子元素位(SPM),因為此值非0,所以定時中斷使能位(UIE)置1,啟動定時中斷計時器工作,計時到,則發(fā)生定時中斷。每隔3S,執(zhí)行一次STI子程序。STI子程序開始的標(biāo)志是INT指令,以區(qū)別于一般的SBR子程序。當(dāng)執(zhí)行時,檢查輸入口的值是否變?yōu)樨?fù),并將累計的次數(shù)加1。若要停止執(zhí)行STI中斷,只要將N7:10的值設(shè)為0,則定時中斷使能位(UIE)被清0,不在啟動定時中斷計時器工作。也可在程序中用指令控制用戶中斷使能位(UIE),則UIE位只跟隨它的輸入條件的變化,而不再由STS指令自動設(shè)置。這樣再啟動STS指令時(若參數(shù)值非0),是否執(zhí)行中斷子程序由UIE位控制。當(dāng)程序中UIE位被置1時,則執(zhí)行中斷子程序,否則禁止執(zhí)行中斷子程序。MicroLogix1500還支持事件輸入中斷(EII)。事件輸入中斷是指處理器掃描到外部輸入(I1:0.0/0~I1:0.0/7)有觸發(fā)信號時,將自動去執(zhí)行特定的中斷子程序。執(zhí)行完后處理器將從中斷的位置恢復(fù)正常的掃描。共可設(shè)定4個事件輸入中斷:EII0、EII1、EII2和EII3。下面是一個事件輸入中斷應(yīng)用的實例。本例中,EII用來保證所有的瓶子在流出生產(chǎn)線時,瓶蓋機已經(jīng)給它們蓋上了瓶蓋。瓶子接近開關(guān)I:0/6用來作為EII輸入。當(dāng)有一個瓶子經(jīng)過這個接近開關(guān)時,處理器執(zhí)行EII子程序。在子程序中,處理器讀瓶蓋接近開關(guān)的狀態(tài)。如果瓶子已經(jīng)蓋上瓶蓋,滑行槽電磁線圈不得電,允許瓶子從流水線上流過。如果沒有瓶蓋,滑行槽電磁線圈得電,使不合格的瓶子轉(zhuǎn)到滑行槽進入廢品箱。使用EII需要設(shè)定EII功能文件子元素。本例中,程序文件號PFN設(shè)為5,表示5號子程序為EII事件輸入中斷子程序。自動開始位AS設(shè)為1,表示EII自動啟動。觸發(fā)類型選擇位ES設(shè)為1,表示上升沿觸發(fā)。輸入口選擇位ES設(shè)為6,表示事件輸入中斷以I:0/6為觸發(fā)信號。每個開關(guān)的狀態(tài)的含義為:I:0/6-上升沿表示有瓶子流過。I:0/8-0表示有瓶蓋,1表示沒有瓶蓋。O:0/8-0表示正常位置,1表示不合格品位置。5號子程序為:分析:當(dāng)處理器檢測到I:0/6觸發(fā)信號時,執(zhí)行5號中斷子程序。RUNG1:如果瓶子上有瓶蓋,且滑行槽在不合格品位置,把滑行槽設(shè)置到正常位置。RUNG2:如果沒有瓶蓋,則滑行槽設(shè)置到不合格品位置。PID控制(PID)PID控制在工業(yè)過程控制中有廣泛的應(yīng)用。它可以控制諸如溫度、壓力、液位等物理量。PID指令通常用于閉環(huán)控制。它從模擬量輸入通道采集信號,經(jīng)過PID運算后,提供一個模擬量輸出信號作為反應(yīng),以使一個過程量穩(wěn)定在一個期望點。PID方程決定了輸入和輸出信號的關(guān)系。Output=Kc*[(E)+1/Ti*∫(E)dt+Td*d(Pv)/d(t)]+Bias上式中各變量含義為:E:為輸入信號對期望點的偏移量。Kc:比例系數(shù),也叫開環(huán)增益。Ti:積分時間常數(shù)。Td:微分時間常數(shù)。Output:PID運算輸出。Bias:給輸出加上的一個偏移量。當(dāng)輸入信號偏移期望點越大,這個調(diào)整量就越大。另外,可再加上一個值Bias(可看作偏移量Offset)作為運算的結(jié)果輸出,它使得被控過程量快速、平滑、超調(diào)量小的向期望點靠近(只要PID參數(shù)選擇合適)。下面介紹PID指令的參數(shù)。PIDFile:只能使用PD文件類型,輸入文件號和字號,若不存在系統(tǒng)將自動創(chuàng)建。ProcessVariablePV:欲控制的過程量??蛇x已設(shè)置為ScaledforPID的模擬量輸入口,也可為整數(shù)0~16383。ControlVariableCV:PID運算結(jié)果的輸出地址。運算結(jié)果的取值范圍也為0~16383,16383作為100%“ON”值輸出。屏幕參數(shù)(SetupScreen):包括TurningParameters、Inputs、Outputs。TurningParameters:GainKc:比例系數(shù),一般設(shè)置為引起輸出振蕩所需值的一半。ResetTi:積分系數(shù),一般設(shè)置為上述Kc標(biāo)定時測定的自然周期。RateTd:微分系數(shù),一般設(shè)置為1/8*Ti。Loopupdate:PID運算的時間間隔,一般設(shè)置為一個自然周期的5~10倍。STI方式運行時這個值應(yīng)設(shè)定為等于STITimeInterval(STI:0.SPM)。當(dāng)為STI方式運行時,PID指令應(yīng)放在STI中斷子程序里。然后當(dāng)每次執(zhí)行STI子程序時更新輸出。Controlmode:可選擇為:ReverseActing:E=SP-PV當(dāng)PV<Sp時,CV增加。DirectActing:E=PV-SP當(dāng)PV>Sp時,CV增加。PIDcontrol:可選擇為:Auto:PID控制輸出。Manual:用戶控制輸出。TimeMode:可選擇為:Timed:定時執(zhí)行方式,每隔設(shè)定的時間間隔更新PID輸出。STI:以STI方式運行,前面已介紹。LimitOutputCV:可選擇為:Yes:輸入受限(在設(shè)定的最小最大值之間)。NO:輸入不受限。DeadbandDB:死區(qū)設(shè)置。只有在PV進入了死區(qū)且通過了設(shè)定點(Setpoint)才起作用??烧{(diào)整的死區(qū)允許用戶設(shè)定上下偏差范圍,只要偏差保持在這個范圍輸出就不更改。Inputs:SetpointSP:期望的控制點。SetpointMax:當(dāng)輸入為16383時,起作用。SetpointMin:當(dāng)輸入為0時,起作用。ProcessVariablePV:(不用填寫,只供顯示PV)。Outputs:ControlOutputCV(%):只有手動(Manual)時有效。OutputMin(CV%):設(shè)定輸出最小值。當(dāng)設(shè)定了輸出受限時(IfLimitOutputCVisYes):如果CV小于這里設(shè)定的最小值,則置CV為這里的設(shè)定值,同時設(shè)標(biāo)志位;如果沒有設(shè)輸出受限,則不改變CV值,只用于警告。OutputMax(CV%):參數(shù)設(shè)置的含義同上。ScaledErrorSE:(不用填寫,只供顯示)。脈沖串輸出(PTO)PTO為高速輸出指令。高速輸出指令允許用戶有選擇性的刷新數(shù)據(jù),而無需等待輸入輸出掃描。PTO指令只有一個參數(shù),我們可選擇PTO0或者PTO1。PTO子系統(tǒng)可組態(tài)為三種工作方式:脈沖點動狀態(tài)、連續(xù)點動狀態(tài)和正常工作狀態(tài)。脈沖點動狀態(tài)在輸出端只輸出一個正脈沖。連續(xù)點動狀態(tài)在輸出端輸出連續(xù)正脈沖序列正常工作狀態(tài)輸出一個脈沖串序列,這個脈沖串序列有加速、勻速、減速三個階段?,F(xiàn)在我們通過程序體會PTO子系統(tǒng)的三種工作方式,功能文件中子元素的作用,先設(shè)PTO功能文件中輸出位子元素OUT為2,表示輸出端為O:0/2。其它子元素在程序中設(shè)定。程序如下:分析:PTO可組態(tài)為三種工作方式:脈沖點動狀態(tài)、連續(xù)點動狀態(tài)和正常工作狀態(tài)。不能同時組態(tài)為兩種以上方式。脈沖點動狀態(tài)和連續(xù)點動狀態(tài)運行時PTO指令的梯級條件應(yīng)為假。當(dāng)B3:0/0為真,脈沖點動狀態(tài)位PTO:0.JP位置1,在O:0/2位輸出一個正脈沖,脈沖的寬度由點動頻率位PTO:0.JF控制,本程序中就是N7:2的數(shù)值。輸出完成后脈沖點動狀態(tài)位PTO:0.JP自動復(fù)位。當(dāng)B3:0/1為真,連續(xù)點動狀態(tài)位PTO:0.JC位置1,在O:0/2位輸出連續(xù)正脈沖序列,直到B3:0/1為假。脈沖頻率也由點動頻率位PTO:0.JF控制。當(dāng)B3:0/2由0變1時,ONS指令輸出一個周期正脈沖,急停位PTO:0.EH置1,無論任何工作模式都停止產(chǎn)生脈沖,PTO子系統(tǒng)產(chǎn)生1號急停錯誤。只有當(dāng)控制位復(fù)位后重新置1,系統(tǒng)才可正常工作,系統(tǒng)自動清除錯誤。當(dāng)PTO指令有上升沿觸發(fā),PTO子系統(tǒng)工作在正常工作狀態(tài)。此時輸出一個具有加速、勻速、減速的脈沖序列,脈沖序列勻速時的頻率為PTO:0.OF,脈沖總數(shù)為PTO:0.TOP,加減速時的脈沖各有PTO:0.ADP個。如圖所示,橫軸為產(chǎn)生的脈沖數(shù),縱軸為對應(yīng)的頻率。PTO功能文件的斜坡曲線子元素RP可改變輸出加減速時的曲線,RP為0時,輸出為T型曲線,RP為1時,輸出為S型曲線。通常一個物理輸出只在脈沖上升沿或下降沿時改變。這意味在脈沖上升沿
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 林副產(chǎn)品購銷合同
- 施工工程進度保證信
- 踐行社會主義核心價值觀
- 房屋租賃合同范本完整
- 農(nóng)業(yè)技術(shù)產(chǎn)品售后服務(wù)協(xié)議
- 掛靠合作協(xié)議簡單
- 沙石運輸質(zhì)量協(xié)議書
- 鋼筋批發(fā)購買
- 代收貨款合同書
- 房屋買賣合同的簽訂與法律糾紛處理
- 2022年江蘇省普通高中學(xué)業(yè)水平合格性考試語文試卷(解析版)
- 超市經(jīng)營服務(wù)方案投標(biāo)方案(技術(shù)標(biāo))
- 尋找“紅衣姐”(2022年河北中考語文試卷記敘文閱讀題及答案)
- 法社會學(xué)教程(第三版)教學(xué)
- 醫(yī)學(xué)課件疼痛的護理
- 《26. 詩詞五首-赤壁》 課件 課件-2024-2025學(xué)年八年級語文上冊 (統(tǒng)編版)
- 期末檢測卷(試題)-2024-2025學(xué)年人教PEP版英語六年級上冊
- 充電站建設(shè)方案書-圖文
- 2024三年級英語下冊閱讀理解課件人教精通版三起
- 2023九年級數(shù)學(xué)下冊 第三章 圓7 切線長定理教案 (新版)北師大版
- 西門子燃機介紹課件學(xué)習(xí)課件
評論
0/150
提交評論