AB-PLC-5000-編程基礎(chǔ)指令例說明_第1頁
AB-PLC-5000-編程基礎(chǔ)指令例說明_第2頁
AB-PLC-5000-編程基礎(chǔ)指令例說明_第3頁
AB-PLC-5000-編程基礎(chǔ)指令例說明_第4頁
AB-PLC-5000-編程基礎(chǔ)指令例說明_第5頁
已閱讀5頁,還剩50頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

附錄TOC\o"1-3"\h\z第一章位指令 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ù)文件分為以下幾種類型:輸出和輸入數(shù)據(jù)文件(O0:和I1:)狀態(tài)文件(S2:)位文件(B3:)計(jì)時(shí)器文件(T4:)計(jì)數(shù)器文件(C5:)控制文件(R6:)整數(shù)文件(N7:)上面的文件號(hào)也為系統(tǒng)默認(rèn)的(即系統(tǒng)默認(rèn)文件0為輸出文件,1為輸入文件,2為狀態(tài)文件,等等)。下面對(duì)這些系統(tǒng)默認(rèn)的文件類型分別予以介紹。輸出和輸入數(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))格式一起使用。格式說明O:O輸出I輸入:元素分隔符e槽號(hào)(十進(jìn)制)加1擴(kuò)展或模擬量表示+1槽號(hào)0號(hào)槽,即第一個(gè)框架中靠近電源的槽,用于處理器模塊。接下來的是I/O槽(1~30)。.字分隔符s字號(hào)如果某槽的I/O點(diǎn)數(shù)超過16時(shí)最好用字號(hào)(0~255)。字號(hào)表示十六進(jìn)表現(xiàn)法,不用按十端子號(hào)算法(0~255)/位分隔符b端子號(hào)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)一個(gè)槽的I/O點(diǎn)數(shù)超過16個(gè)時(shí),尋址位有兩種表示方法:使用字、位尋址和直接位尋址。如:MicroLogix1500系列輸出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)。狀態(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ì)說明請(qǐng)參閱SLC500andMicrologix1000指令集參考手冊(cè)附錄A。狀態(tài)文件不能被增加或刪除,尋址狀態(tài)文件的位和字的格式為:S:e/b各位含義同I/O文件。舉例:S:1/15元素1,位15。這是“首次掃描位”用戶在程序中可以使用它來初始化指令。S:3元素3。這一元素的低位字節(jié)時(shí)當(dāng)前掃描時(shí)間,高位字節(jié)是看門狗掃描時(shí)間。位文件(B3:)文件3是位文件,主要用于位指令(繼電器邏輯),移位寄存器和順序器指令。位文件的最大容量是256個(gè)單字元素,總計(jì)為4096位??梢酝ㄟ^指定元素號(hào)(0~255)和元素內(nèi)的位編號(hào)(0~15)來尋址位,也可以通過位的順序編號(hào)直接尋址位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計(jì)時(shí)器和計(jì)數(shù)器文件(T4:和C5:)每個(gè)計(jì)時(shí)器地址由一個(gè)3字元素組成,如下表所示:151413121116位式表示法ENTTDN內(nèi)部使用PRE(預(yù)置值)1ACC(累計(jì)值)2字0字1字2上表中,EN:使能位,TT:計(jì)時(shí)位,DN:完成位。舉例:T4:0/13或T4:0/DN完成位T4:0.1或T4:0.PRE預(yù)置值計(jì)數(shù)器文件(C5:)每個(gè)計(jì)數(shù)器地址由一個(gè)3字元素組成,如下表所示:1514131211109876543210CUCDDNOVUNUA內(nèi)部使用PRE(預(yù)置值)ACC(累計(jì)值)字0字1字2字上表中,CU:加計(jì)數(shù)使能位CD:減計(jì)數(shù)使能位DN:完成位OV:上溢出位UN:下溢出位UA:更新累計(jì)值位(只用于固定式控制器的HSC指令)。舉例:C5:0/13或C5:0/DN完成位C5:0.1或C5:0.PRE預(yù)置值控制文件(R6:)控制文件是3字元素,各字含義如下表。位移、順序器指令都用到控制文件。字1514131211109876543210ENEUDNEMERULINFD錯(cuò)誤代碼位陣列或文件的長(zhǎng)度(LEN)位指針或位置(POS)012

舉例:R:2元素2R:2/15或R:2/EN使能位R:2/13或R:2/DN完成位R:2.1或R:2.LEN長(zhǎng)度值整數(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ù)文件上必須注明該文件號(hào),如上N10:36。

第二節(jié)位指令位指令包括:檢查閉合(XIC)檢查斷開(XIO)輸出激勵(lì)(OTE)輸出鎖存(OTL)輸出解鎖(OTU)一次啟動(dòng)(ONS)上升沿一次響應(yīng)(OSR)下降沿一次響應(yīng)(OSF)下面逐個(gè)加以介紹。檢查閉合(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)一致。檢查斷開(XIO)XIO屬輸出指令,用于檢查某位是否斷開(OFF)。它類似于常閉開關(guān)。當(dāng)指令執(zhí)行時(shí),如果尋址位是斷開狀態(tài)(0),則指令被賦值為真;如果尋址位是導(dǎo)通狀態(tài)(1),則指令被賦值為假。輸出激勵(lì)(OTE)OTE指令屬輸出指令,用于控制存儲(chǔ)器中的位。若OTE指令前面的梯級(jí)條件為真,尋址位導(dǎo)通,相應(yīng)的設(shè)備接通;否則尋址位不能夠?qū)ǎ鄳?yīng)的設(shè)備不能夠接通。它類似于繼電器的輸出線圈。OTE指令由它前面的輸入指令控制,而繼電器的線圈由硬觸點(diǎn)控制。輸出鎖存(OTL)OTL屬保持型輸出指令。當(dāng)梯級(jí)條件為真時(shí),OTL指令對(duì)該尋址位置位。即使梯級(jí)條件變?yōu)榧?,該位依然保持置位。若要?fù)位,則需要在另一個(gè)階梯中使用解鎖指令OTU,對(duì)同一尋址位進(jìn)行解鎖。輸出解鎖(OTU)OTU屬保持型輸出指令。常用于復(fù)位由OTL指令鎖存的位,此時(shí)OTL、OTU應(yīng)使用相同的地址。當(dāng)梯級(jí)條件為真時(shí),OTU指令對(duì)該尋址位復(fù)位。即使梯級(jí)條件變?yōu)榧?,該位依然保持?fù)位。直至另一指令對(duì)該位重新置位。下面通過具體的梯形圖來進(jìn)一步理解上述位指令:例1:討論改變以下開關(guān)狀態(tài)時(shí),燈的變化情況。RUNG0中,當(dāng)I:0/4使能時(shí),O:0/0為真,燈亮。RUNG1中,當(dāng)I:0/5斷開時(shí),O:0/1為真,燈亮。RUNG2中,只有當(dāng)I:0/6和I:0/8,或者I:0/7和I:0/8使能時(shí),O:0/2才為真,燈亮。RUNG3和RUNG4中,OTL和OTU指令成對(duì)出現(xiàn)。一旦I:0/9使能,O:0/3就鎖存為真,燈亮。即使I:0/9在下一次掃描周期由真變假,燈仍然保持亮。直至I:0/10使能,O:0/3解鎖,燈滅。RUNG5中,END指令表明程序結(jié)束。一次啟動(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。直到輸入再次由假到真跳變。上升沿一次響應(yīng)(OSR)OSR屬輸出指令。當(dāng)OSR指令所在梯級(jí)條件由假到真變化時(shí),在輸出位(OutputBit)產(chǎn)生一個(gè)周期正脈沖(即“上升沿動(dòng)作類型”)。存儲(chǔ)位(StorageBit)中自動(dòng)存儲(chǔ)了OSR指令所在階梯的梯級(jí)條件(為真則存儲(chǔ)1,為假則存儲(chǔ)0)。下降沿一次響應(yīng)(OSF)OSF屬輸出指令。當(dāng)OSF指令所在梯級(jí)條件由真到假變化時(shí),在輸出位(OutputBit)產(chǎn)生一個(gè)周期正脈沖(即“下降沿動(dòng)作類型”)。存儲(chǔ)位(StorageBit)中自動(dòng)存儲(chǔ)了OSF指令所在階梯的梯級(jí)條件(為真則存儲(chǔ)1,為假則存儲(chǔ)0)。下面我們通過具體的梯形圖來進(jìn)一步理解這三條指令:例2:討論改變以下開關(guān)狀態(tài)時(shí),燈的變化情況。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閉合,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閉合時(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滅。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ǔ)了OSF指令的梯級(jí)條件。分析同上。RUNG8中,I:0/9用于為上面鎖存的小燈解鎖。`

第二章計(jì)時(shí)器和計(jì)數(shù)器指令計(jì)時(shí)器和計(jì)數(shù)器指令屬輸出指令,用于控制基于時(shí)間和事件記數(shù)的操作,包括:延時(shí)導(dǎo)通計(jì)時(shí)器(TON)延時(shí)斷開計(jì)時(shí)器(TOF)保持型計(jì)時(shí)器(RTO)加計(jì)數(shù)(CTU)減計(jì)數(shù)(CTD)計(jì)時(shí)器/計(jì)數(shù)器復(fù)位(RES)下面逐個(gè)加以介紹。延時(shí)導(dǎo)通計(jì)時(shí)器(TON)延時(shí)導(dǎo)通計(jì)時(shí)器(TON)的功能是梯級(jí)條件變真后經(jīng)過一段延時(shí)時(shí)間對(duì)輸出動(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ù):計(jì)時(shí)器(Timer):指明所使用的計(jì)時(shí)器元素(如T4:0)。時(shí)基(Timebase):計(jì)時(shí)器每次計(jì)時(shí)的遞增值。Micrologix1500系列可選擇1S、0.01S和0.001S三種,共可累計(jì)32767個(gè)時(shí)基間隔。它決定了計(jì)時(shí)器的精度。預(yù)置值(Preset):用于設(shè)定延時(shí)時(shí)間,可設(shè)為整數(shù)-32768~32767。累計(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)位可用作對(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ù)置值梯級(jí)變?yōu)榧倩虮籇N置位EN梯級(jí)為真梯級(jí)變?yōu)榧僮⒁釺T位和EN位的區(qū)別。TON工作的時(shí)序圖為:ONONOFFONOFFONOFFONOFFONOFF2分鐘3分鐘通延時(shí)階梯條件計(jì)時(shí)器使能位計(jì)時(shí)器計(jì)時(shí)位計(jì)時(shí)器完成位輸出設(shè)備(完成位控制)時(shí)間累計(jì)值0120計(jì)時(shí)器預(yù)置值=180180圖3.21TON時(shí)序圖例4:有三個(gè)馬達(dá)MTR1、MTR2、MTR3,按先后次序啟動(dòng)。要求MTR1先啟動(dòng),三秒后MTR2啟動(dòng),再過5秒后MTR3啟動(dòng)。停止時(shí)三個(gè)馬達(dá)同時(shí)停止,請(qǐng)模擬這個(gè)過程。分析:I:3/0為啟動(dòng)按鈕,I:3/1為停止按鈕,它們都為點(diǎn)動(dòng)按鈕。用燈O:4/0、O:4/1、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: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/6滅,T4:0又開始工作。除非觸發(fā)停止按鈕I:3/1使它們停止和復(fù)位,程序?qū)⒁恢毖h(huán)執(zhí)行,這樣就實(shí)現(xiàn)了交通燈交替亮滅。延時(shí)斷開計(jì)時(shí)器(TOF)延時(shí)斷開計(jì)時(shí)器(TOF)的功能是梯級(jí)條件變假后經(jīng)過一段延時(shí)時(shí)間對(duì)輸出動(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í)為假且累計(jì)值<預(yù)置值梯級(jí)變?yōu)檎婊駾N被復(fù)位EN梯級(jí)為真梯級(jí)變?yōu)榧贌o論任何情況都不要用RES指令對(duì)TOF復(fù)位。因?yàn)镽ES總是清零狀態(tài)位及累計(jì)值,若對(duì)TOF復(fù)位,則DN,TT,EN被清零,可能會(huì)使指令邏輯陷于混亂,發(fā)生不可預(yù)知的結(jié)果。保持型計(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í)器從保持的值開始繼續(xù)計(jì)時(shí),直到累計(jì)值達(dá)到預(yù)置值。如果需要復(fù)位其累計(jì)值和狀態(tài)位,可在另一階梯中用RES指令對(duì)相同地址的計(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指令在-32768~32767范圍內(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í)可以用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ù)器控制階梯上的輸出指令由計(jì)數(shù)器控制階梯上的輸出指令ONOFFONOFFONOFFONOFFONOFF控制計(jì)數(shù)器的階梯條件控制復(fù)位指令的階梯條件計(jì)數(shù)器累計(jì)值012340計(jì)數(shù)器預(yù)置值=4圖3.22CTU時(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。減計(jì)數(shù)(CTD)CTD指令在-32768~32767范圍內(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指令使能計(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)。無論任何情況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ì)值來模擬容器中的液位。每當(dāng)T4:1/DN位產(chǎn)生一個(gè)脈沖,C5:0的累計(jì)值就加1。形象的說,就好象每1.6S注入一單位的液體。對(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ì)值可以無限制的增加和減小,這不符合客觀實(shí)際情況,在后面的章節(jié)里我們會(huì)用另外的程序來解決這個(gè)問題。

第三章比較指令比較指令屬輸入指令,用于比較兩值作為邏輯梯級(jí)連續(xù)的條件。例如,小于(LES)指令有兩個(gè)操作數(shù),如果第一個(gè)小于第二個(gè),那么LES指令為真。比較指令共包括:等于(EQU)不等于(NEQ)小于(LES)小于或等于(LEQ)大于(GRT)大于或等于(GEQ)相等屏蔽比較(MEQ)極限比較(LIM)它們的用法大致相同,掌握了一個(gè)也就掌握了其它的。下面逐個(gè)加以介紹。等于(EQU)使用EQU指令比較二值是否相等。如果源A的值和源B的值相等,指令邏輯為真,否則為假。操作數(shù)為兩個(gè)數(shù)的比較指令(比如有源A和源B兩個(gè)操作數(shù)的EQU指令)一般要求的數(shù)據(jù)尋址方式為:源A必須為地址,源B可為常數(shù)或地址。例1:讀程序分析結(jié)果。分析:上面程序即為EQU指令的一個(gè)簡(jiǎn)單應(yīng)用。RUNG0中,SourceA與SourceB的值相等,小燈O:4/0亮。RUNG1中,SourceA與SourceB的值不等,小燈O:4/1滅。不等于(NEQ)使用NEQ指令比較二值是否不相等。如果源A的值和源B的值不相等,指令邏輯為真,否則為假。小于(LES)使用LES指令比較一個(gè)值是否小于另一個(gè)值。如果源A的值小于源B的值,指令邏輯為真,否則為假。小于或等于(LEQ)使用LEQ指令比較一個(gè)值是否小于或等于另一個(gè)值。如果源A的值小于或等于源B的值,指令邏輯為真,否則為假。大于(GRT)使用GRT指令比較一個(gè)值是否大于另一個(gè)值。如果源A的值大于源B的值,指令邏輯為真,否則為假。大于或等于(GEQ)使用GEQ指令比較一個(gè)值是否大于或等于另一個(gè)值。如果源A的值大于或等于源B的值,指令邏輯為真,否則為假。相等屏蔽比較(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,所以只比較B:3/0和B:3/1的低八位,而屏蔽掉了高八位。只要低八位相等,指令邏輯就為真,小燈O:4/0亮。極限比較(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è)液體混合容器,有兩個(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ù)指令包括:加指令(ADD)減指令(SUB)乘指令(MUL)除指令(DIV)平方根(SQR)取反指令(NEG)整數(shù)轉(zhuǎn)換成BCD碼(TOD)從BCD碼轉(zhuǎn)換成整數(shù)(FRD)線性轉(zhuǎn)換(SCP)編碼(ENC)解碼(DCD)它們的用法也大致相同,下面逐個(gè)加以介紹。加指令(ADD)ADD指令使源A和源B的值相加,結(jié)果存放到目的地址內(nèi)。例1:讀程序分析結(jié)果。分析:上面程序?yàn)锳DD指令的一個(gè)簡(jiǎn)單應(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指令計(jì)算源值絕對(duì)值的平方根,結(jié)果四舍五入存放在目的地址內(nèi)。取反指令(NEG)NEG指令改變?cè)粗档姆?hào)然后存放到目的地址內(nèi)。例如,如果源的值是3,目的數(shù)據(jù)將是-3。整數(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,在計(jì)數(shù)范圍較大的場(chǎng)合常感到不夠用,但是如果采用多個(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顯示高兩位。從BCD碼轉(zhuǎn)換成整數(shù)(FRD)FRD指令把BCD碼轉(zhuǎn)換成16-位整數(shù)值。如果源數(shù)據(jù)不符合BCD碼格式則發(fā)生處理器出錯(cuò)。線性轉(zhuǎn)換(SCP)SCP指令可對(duì)一個(gè)數(shù)進(jìn)行線性轉(zhuǎn)換。Input為轉(zhuǎn)換的輸入值。InputMin~InputMax為設(shè)定的輸入值的范圍。ScaledMin~ScaledMax為希望得到的轉(zhuǎn)換結(jié)果的范圍。當(dāng)梯級(jí)條件為真,它可以把輸入值(Input)線性轉(zhuǎn)化到ScaledMin~ScaledMax中。轉(zhuǎn)換規(guī)則根據(jù)下面方程:編碼(ENC)ENC指令可以把Source編碼。Source為16位字,并且只能有一位為1,其余位均為0。轉(zhuǎn)換規(guī)則如下:SourceDest00000000000000010000000000000001010000000000000100200000000000010003000000000001000040000000000100000500000000010000006000000001000000070000000100000000800000010000000009000001000000000010000010000000000011000100000000000012001000000000000013010000000000000014100000000000000015解碼(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)位。傳送和邏輯指令包括:傳送(MOV)屏蔽傳送(MVM)邏輯與(AND)邏輯或(OR)邏輯異或(XOR)邏輯非(NOT)清零(CLR)下面逐個(gè)加以介紹。傳送(MOV)MOV指令將數(shù)據(jù)從源地址傳送到目的地址。只要梯級(jí)保持為真,每次掃描指令都重新傳送數(shù)據(jù)。屏蔽傳送(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:10000110000110011邏輯與(AND)AND指令使源A與源B執(zhí)行位與位的邏輯與操作。結(jié)果存儲(chǔ)在目的地址內(nèi)。邏輯或(OR)OR指令使源A與源B執(zhí)行位與位的邏輯或操作。結(jié)果存儲(chǔ)在目的地址內(nèi)。邏輯異或(XOR)XOR指令使源A與源B執(zhí)行位與位的邏輯異或操作。結(jié)果存儲(chǔ)在目的地址內(nèi)。邏輯非(NOT)NOT指令使源A與源B執(zhí)行位與位的邏輯非操作。結(jié)果存儲(chǔ)在目的地址內(nèi)。清零(CLR)CLR指令使目的地址的值清為0。

第六章移位和順序進(jìn)出指令移位和順序進(jìn)出指令屬輸出指令。每一次梯級(jí)條件由假變真時(shí),移位指令把指定地址內(nèi)的所有位都移動(dòng)一個(gè)位的位置,順序進(jìn)出指令完成一次順序進(jìn)出或比較操作。移位和順序進(jìn)出指令包括:位左移(BSL)位右移(BSR)順序器裝入(SQL)順序器比較(SQC)順序器輸出(SQO)FIFO裝入(FFL)FIFO卸出(FFU)LIFO裝入(LFL)LIFO卸出(LFU)下面逐個(gè)加以介紹。位左移(BSL)當(dāng)梯級(jí)條件由假變真時(shí),BSL指令對(duì)File文件指定的數(shù)據(jù)向左(向高位)移動(dòng)一位。由BitAddress指定的一位被移入最右位(最低位)。MicroLogix1500中Length的設(shè)定范圍為0~2048,含義為文件中參與移位的數(shù)據(jù)塊的位數(shù)。但是實(shí)際上只能移位整數(shù)個(gè)字的所有位。參與移位的字?jǐn)?shù)為對(duì)Length除以16,再向上取整。如上例,當(dāng)Length的值為1~16時(shí),實(shí)際上都是移動(dòng)N7:0的16位。位右移(BSR)當(dāng)梯級(jí)條件由假變真時(shí),BSR指令對(duì)File文件指定的數(shù)據(jù)向右(向低位)移動(dòng)一位。由BitAddress指定的一位被移入最左位(最高位)。Length的含義與BSL中的相同。分析:本程序借鑒了前面的交通燈設(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和T4:2/DN共同作為移位控制信號(hào),實(shí)現(xiàn)了循環(huán)左右移位的要求。下面的順序器指令一般用來控制具有連續(xù)和重復(fù)操作特性的自動(dòng)化生產(chǎn)線。順序器指令包括:順序器裝入指令SQL、順序器比較指令SQC、順序器輸出指令SQO。我們結(jié)合下面的程序來體會(huì)這三條指令。順序器裝入(SQL)順序器比較(SQC)順序器輸出(SQO)例2:讀程序分析結(jié)果。分析:RUNG0為3S脈沖發(fā)生器。為RUNG1~RUNG3提供脈沖信號(hào)。RUNG1中,#FileN9:0為順序器裝入文件,SourceN7:0為數(shù)據(jù)源。當(dāng)梯級(jí)條件由假到真變化時(shí),SQL指令從數(shù)據(jù)源讀入16位數(shù)據(jù),把它存入順序器裝入文件。當(dāng)梯級(jí)條件再由假到真變化時(shí),SQL指令再?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了。只不過它還可以設(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從順序器文件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è)簡(jiǎn)單應(yīng)用。需注意它們需使用不同的控制字。否則將處以混亂狀態(tài)。FIFO裝入(FFL)FIFO卸出(FFU)FFL和FFU指令是成對(duì)使用的。它們實(shí)際為對(duì)數(shù)據(jù)結(jié)構(gòu)中隊(duì)列(FIFO,F(xiàn)irstInFirstOut,先進(jìn)先出)的操作。FFL相當(dāng)于進(jìn)隊(duì)操作,F(xiàn)FU相當(dāng)于出隊(duì)操作。例4:試編一程序,可以從輸入口I0:0置入10個(gè)數(shù),然后依次在輸出口O0:0顯示。分析:本程序中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ù))。LIFO裝入(LFL)LIFO卸出(LFU)LFL和LFU指令是成對(duì)使用的。它們實(shí)際為對(duì)數(shù)據(jù)結(jié)構(gòu)中堆棧(LIFO,LastInFirstOut,后進(jìn)先出)的操作。LFL相當(dāng)于進(jìn)棧操作,LFU相當(dāng)于出棧操作。若將上例的FFL、FFU指令換為L(zhǎng)FL、LFU指令,則在輸出口O0:0上,首先顯示最后輸入的數(shù)據(jù),然后再顯示倒數(shù)第2次輸入的數(shù)據(jù),依次類推,最后顯示第1次輸入的數(shù)據(jù)。

第七章程序流程指令程序流程指令控制梯形圖程序執(zhí)行的順序。有代表性的應(yīng)用這些指令,可提高程序的執(zhí)行效率和可讀性,也有利于程序的故障檢測(cè)。程序流程指令包括:程序跳轉(zhuǎn)(JMP、LBL)跳轉(zhuǎn)到子程序(JSR、SBR、RET)暫停(TND)中斷(SUS)主控程序(MCR)下面分別加以介紹。程序跳轉(zhuǎn)(JMP、LBL)JMP指令使處理器在執(zhí)行梯形圖程序時(shí)跳過一些梯級(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)省略了某段程序,故而縮短了掃描時(shí)間。向前跳轉(zhuǎn)可使處理器反復(fù)執(zhí)行一段程序,直到其邏輯完成為止。設(shè)JMP和LBL指令標(biāo)號(hà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é)省存儲(chǔ)空間。新建子程序的方法為:打開RSLogix500編程界面。鼠標(biāo)右鍵點(diǎn)擊左邊目錄中的“ProgramFiles”。在彈出的菜單中單擊“New”。彈出“CreateProgramFile”對(duì)話框。填入所欲創(chuàng)建的子程序號(hào)(3~255),單擊“OK”即可。主程序的文件號(hào)為2(即LAD2)。JSR、SBR和RET指令使得處理器跳到梯形圖圖程序中的一個(gè)獨(dú)立的子程序文件,并對(duì)它進(jìn)行一次掃描,然后返回出發(fā)點(diǎn)。JSR指令使處理器跳到指定的子程序文件。如上例,在主程序中需要跳轉(zhuǎn)到子程序的地方加入JSR指令,參數(shù)為子程序的文件號(hào)。SBR指令必須在子程序的第一條指令的第一梯級(jí)。是否使用該指令是可選的,為了使程序清晰建議大家使用它。在子程序的末尾用RET指令返回到主程序。當(dāng)JSR指令的梯級(jí)條件變真時(shí),處理器便跳轉(zhuǎn)到子程序中。在用JSR指令編程時(shí),應(yīng)注意:每一個(gè)屬于主程序外部的子程序必須有自己的文件并且由唯一的描述符來識(shí)別。除了子程序文件的第一個(gè)SBR指令外,主程序不能跳轉(zhuǎn)到子程序中任何別的地方??梢郧短锥噙_(dá)8個(gè)子程序文件。子程序文件嵌套:可在一個(gè)程序文件中嵌套多達(dá)8個(gè)子程序。也就是說,只要子程序不超過7級(jí),便可讓處理器從主程序跳向一個(gè)子程序,然后再?gòu)囊粋€(gè)子程序跳轉(zhuǎn)到另一個(gè)子程序。處理器返回路徑與此相反,在RET指令處,處理器自動(dòng)的返回到先前JSR指令后的下一條指令,并且在返回主程序之前一直遵循此執(zhí)行過程。暫停(TND)當(dāng)TND指令梯級(jí)條件為真時(shí),處理器停止掃描程序的其余部分并更新I/O,并從主程序的第一條指令處恢復(fù)執(zhí)行程序掃描。在調(diào)試程序或查找程序故障時(shí),可插入TND指令,它只允許程序運(yùn)行到它所在的程序?yàn)橹?。在程序中逐步的移?dòng)此指令,以調(diào)試一段新的程序,還可以用它來作為主程序和本地子程序的一個(gè)分界線。中斷(SUS)當(dāng)SUS指令使能時(shí),它使處理器進(jìn)入掛起模式并且在狀態(tài)文件的字7(S:7)存儲(chǔ)掛起ID。所有的輸出被停止使能。在程序調(diào)試和系統(tǒng)故障檢測(cè)時(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(主文件)。主控程序(MCR)成對(duì)使用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í)各自的輸入條件怎樣,MCR都復(fù)位所有非保持型輸出指令。如上例,當(dāng)I:0/8斷開時(shí),好象MCR指令不存在,程序繼續(xù)執(zhí)行下一步。當(dāng)I:0/8使能時(shí),無論I:0/6是否使能,O:0/6都不亮。當(dāng)用MCR指令編程時(shí),應(yīng)注意:一定要成對(duì)使用MCR指令,用無條件MCR指令結(jié)束程序區(qū)。不能在一個(gè)MCR區(qū)內(nèi)嵌套另一個(gè)MCR區(qū)。不要從程序外部跳轉(zhuǎn)到MCR區(qū)內(nèi)。如果MCR區(qū)條件為假,跳轉(zhuǎn)到此區(qū)會(huì)使此區(qū)被激活。如果MCR區(qū)連接到梯形圖的結(jié)尾,就不必編寫另一條MCR指令來結(jié)束此MCR區(qū)。

第八章I/O,文件,PID指令本章指令大都涉及到I/O輸入輸出,文件的操作,模擬量輸入輸出,PID運(yùn)算與控制。具體包括:立即輸入輸出(IIM、IOM)通訊服務(wù)(SVC)通訊(MSG)更新I/O(REF)文件拷貝(COP)文件填充(FLL)數(shù)據(jù)整定(SCL)I/O中斷子程序(INT)STI中斷啟動(dòng)(STS)PID控制(PID)脈沖串輸出(PTO)脈寬調(diào)制(PWM)用戶中斷屏蔽(UID)用戶中斷使能(UIE)用戶中斷(UIF)下面逐個(gè)加以介紹。立即輸入(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)由三個(gè)基本的部分組成:梯形圖掃描(LaderScan);通訊緩沖區(qū)(CommunicationsBuffers);通訊隊(duì)列(CommunicationQueue)。它們決定了處理器什么時(shí)候傳送消息。當(dāng)MSG指令使能,假如指令內(nèi)定義的是寫命令,則指定的信息和數(shù)據(jù)被傳送到通訊緩沖區(qū)內(nèi)。處理器繼續(xù)掃描梯形圖程序的其他部分。一般在一個(gè)掃描周期結(jié)束后,信息被處理,并且通過通訊通道發(fā)出處理器。MicroLogix1500內(nèi)共4個(gè)通訊緩沖區(qū)。當(dāng)在一個(gè)通訊指令結(jié)束前,如果又有一條通訊指令要處理,則它的信息和數(shù)據(jù)被傳送到其余未用的一個(gè)通訊緩沖區(qū)內(nèi)。當(dāng)四個(gè)緩沖區(qū)全滿,第五個(gè)通訊指令又要處理時(shí),通訊請(qǐng)求信息放在通訊隊(duì)列中(注意,不是要傳送的數(shù)據(jù))。通訊隊(duì)列是一個(gè)信息存儲(chǔ)空間,存儲(chǔ)了那些還沒有被分配緩沖區(qū)的通訊指令。通訊隊(duì)列的操作順序是先進(jìn)先出(FIFO),它可容納得下梯形圖中所有的通訊指令。緩沖區(qū)和隊(duì)列機(jī)制都是完全自動(dòng)執(zhí)行的。通訊緩沖區(qū)被自動(dòng)分配和釋放,當(dāng)緩沖區(qū)滿時(shí),再來請(qǐng)求則自動(dòng)進(jìn)入隊(duì)列。因?yàn)橥ㄓ嶊?duì)列中不是存儲(chǔ)要傳送的數(shù)據(jù),所以如果一條通訊指令在隊(duì)列中移出,處理器實(shí)際發(fā)送的數(shù)據(jù)和通訊指令第一次被掃描時(shí)可能不同。MicroLogix1500可以本地或遠(yuǎn)程通信.本地通信中所有設(shè)備都可直接到達(dá),沒有單獨(dú)的設(shè)備用作網(wǎng)橋(Bigdge),組網(wǎng)中可能用到不同類型的接口,但是這樣的網(wǎng)絡(luò)依然被分類為本地網(wǎng)。遠(yuǎn)程通信用遠(yuǎn)程網(wǎng),設(shè)備連接通過或路由過一個(gè)專門的設(shè)備。用1761-NET-AIC配置的DH485本地網(wǎng)DH485遠(yuǎn)程網(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個(gè)字節(jié)),也被目的數(shù)據(jù)類型決定。通信通道選擇(Channel):參數(shù)指定了傳送通信請(qǐng)求時(shí)選用的通信通道。MicroLogix1500通過通道0(配置DF1全雙工、DF1半雙工或DH485協(xié)議)啟動(dòng)通訊指令。只有MicroLogix1500LRPSeriesB可使用通道0或1。以下是目標(biāo)設(shè)備通信的參數(shù):通信超時(shí)(MessageTimeout):定義了通信指令開始后,幾秒應(yīng)該完成,超過設(shè)定時(shí)間后,發(fā)生通信錯(cuò)誤。默認(rèn)為5秒。數(shù)據(jù)表地址(DataTableAddress):參數(shù)指定了目的處理器數(shù)據(jù)的開始地址。本地節(jié)點(diǎn)地址(LocalNodeAddr):連接在網(wǎng)絡(luò)上的目標(biāo)設(shè)備的節(jié)點(diǎn)地址。本地/遠(yuǎn)程(Local/Remote):指定選用的通信類型。選擇遠(yuǎn)程通信時(shí)還需要設(shè)置:遠(yuǎn)程站地址(RemoteStationAddress):目標(biāo)站的DH地址。遠(yuǎn)程橋地址(RemoteBridgeAddress):要訪問的遠(yuǎn)程處理器的所在地址。橋連接ID(BridgeLinkID):要訪問的數(shù)據(jù)的地址。下面我們通過一個(gè)實(shí)例體會(huì)MSG指令的具體應(yīng)用。問題描述:在一個(gè)DH485網(wǎng)絡(luò)上,有兩臺(tái)可編程序控制器MicroLogix1500(節(jié)點(diǎn)地址為2)和MicroLogix1000(節(jié)點(diǎn)地址分別為1)。現(xiàn)要求用1500的輸入口(I:0.0)控制1000的電機(jī)啟動(dòng)、停止、變頻調(diào)速。1500中運(yùn)行的程序MSG指令屏幕參數(shù)的設(shè)置1000中運(yùn)行的程序分析:MicroLogix1500的程序?qū)崿F(xiàn)把輸入端(I:0.0)的數(shù)據(jù)送到MicroLogix1000。只用到了一條通訊指令MSG,當(dāng)I:3/0使能時(shí)啟動(dòng)通訊。屏幕參數(shù)中,因?yàn)橐l(fā)送數(shù)據(jù),且目標(biāo)設(shè)備是MicroLogix1000,所以選擇500CPUWrite。要傳送的數(shù)據(jù)表地址為I:0.0,長(zhǎng)度為1個(gè)字。通過通道0傳送。目標(biāo)設(shè)備配置的參數(shù)中,最大通信延時(shí)設(shè)為默認(rèn)的5S,數(shù)據(jù)傳送到目標(biāo)設(shè)備的N7:0中。目標(biāo)設(shè)備的節(jié)點(diǎn)地址為1,采用本地網(wǎng)通信類型。MicroLogix1000的程序?qū)崿F(xiàn)根據(jù)傳送來的N7:0的數(shù)據(jù)控制電機(jī)工作。RUNG0~RUNG2分別控制電機(jī)的正轉(zhuǎn)、反轉(zhuǎn)、停止。RUNG3~RUNG5可通過三個(gè)開關(guān)為0或1的狀態(tài)組合而改變電機(jī)的工作頻率(共可組合為8種)。通訊服務(wù)(SVC)SVC屬輸出指令。用于優(yōu)于正常掃描周期執(zhí)行通訊程序。當(dāng)使能時(shí),程序掃描被中斷以執(zhí)行操作周期的通訊服務(wù)部分。然后從SVC指令的下一條指令恢復(fù)掃描。SVC指令允許選擇指定的通訊服務(wù)通道。處理器一般在梯形圖程序一個(gè)掃描周期結(jié)束后掃描通訊端口。如果要求通訊端口被更多次的掃描,或者梯形圖程序很長(zhǎng),要優(yōu)先執(zhí)行

MSG指令,可以選擇使用SVC指令。SVC可以提高通訊的性能和吞吐量,但它以整個(gè)梯形圖程序掃描時(shí)間變的更長(zhǎng)為代價(jià)。更新I/O(REF)當(dāng)REF指令使能,它中斷程序的正常掃描,執(zhí)行I/O掃描(讀輸入口,寫輸出口),然后程序重新開始。文件拷貝(COP)COP指令是一條輸出指令。當(dāng)梯級(jí)條件為真,它把源文件拷貝到目的文件。源文件和目的文件的長(zhǎng)度要求至少有Length指定的長(zhǎng)度。它們可為不同的文件類型。目的文件類型決定了要傳送的字?jǐn)?shù)。例如,將文件#N7:100的10個(gè)字拷貝到#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指令為一條輸出指令。它用源值來填充目的文件。目的文件類型決定了填充每個(gè)元素時(shí)需要傳送的字節(jié)數(shù)。數(shù)據(jù)整定(SCL)SCL指令把源值乘以比率(Rate),再加上一個(gè)偏移量(OFFSET)作為輸出。I/O中斷子程序(INT)INT指令把一個(gè)程序文件作為中斷子程序而不是一般的SBR子程序。INT指令必須在子程序的第一條指令的第一梯級(jí)。它不是必須,但是我們推薦使用。STI中斷啟動(dòng)(STS)STS指令有啟動(dòng)和停止STI(SelectableTimedInterrupt)功能,并可改變STI用戶中斷的時(shí)間間隔。當(dāng)梯級(jí)條件由假變真,STI功能文件的用戶中斷使能位UIE自動(dòng)置1(UIE位在程序中沒有被其它位控制);設(shè)定STI的中斷時(shí)間間隔值Time,定時(shí)中斷使能位TIE自動(dòng)置1,這樣就啟動(dòng)了可選定時(shí)中斷STI。如果時(shí)間值Time為0,TIE自動(dòng)置0,STI功能無效。STS指令只有一個(gè)參數(shù):Time。它設(shè)定了STI中斷每隔多少毫秒執(zhí)行一次,如上圖,若定時(shí)中斷被啟動(dòng),則每隔2300毫秒執(zhí)行一次中斷子程序,它必須大于執(zhí)行一次中斷子程序所需的時(shí)間。下面我們通過實(shí)例體會(huì)STS指令的具體應(yīng)用。問題描述:監(jiān)控模擬量輸入口,每隔3S檢查一次,當(dāng)它變?yōu)樨?fù)值時(shí)指示燈亮,并記錄檢查的總次數(shù)。分析:將STI功能文件中的程序文件號(hào)子元素(PFN)設(shè)置為4,表示4號(hào)子程序?yàn)镾TI中斷子程序。N7:10中置入3000,表示3000毫秒執(zhí)行一次子程序。當(dāng)I:0/8使能(只需一個(gè)周期的正脈沖就可),啟動(dòng)STS指令。STS指令所做的操作為:對(duì)STI功能文件中的用戶中斷使能位(UIE)置1,表示發(fā)生定時(shí)中斷后,執(zhí)行用戶中斷子程序。將參數(shù)值3000寫入STI功能文件中的設(shè)定中斷時(shí)間間隔子元素位(SPM),因?yàn)榇酥捣?,所以定時(shí)中斷使能位(UIE)置1,啟動(dòng)定時(shí)中斷計(jì)時(shí)器工作,計(jì)時(shí)到,則發(fā)生定時(shí)中斷。每隔3S,執(zhí)行一次STI子程序。STI子程序開始的標(biāo)志是INT指令,以區(qū)別于一般的SBR子程序。當(dāng)執(zhí)行時(shí),檢查輸入口的值是否變?yōu)樨?fù),并將累計(jì)的次數(shù)加1。若要停止執(zhí)行STI中斷,只要將N7:10的值設(shè)為0,則定時(shí)中斷使能位(UIE)被清0,不在啟動(dòng)定時(shí)中斷計(jì)時(shí)器工作。也可在程序中用指令控制用戶中斷使能位(UIE),則UIE位只跟隨它的輸入條件的變化,而不再由STS指令自動(dòng)設(shè)置。這樣再啟動(dòng)STS指令時(shí)(若參數(shù)值非0),是否執(zhí)行中斷子程序由UIE位控制。當(dāng)程序中UIE位被置1時(shí),則執(zhí)行中斷子程序,否則禁止執(zhí)行中斷子程序。MicroLogix1500還支持事件輸入中斷(EII)。事件輸入中斷是指處理器掃描到外部輸入(I1:0.0/0~I1:0.0/7)有觸發(fā)信號(hào)時(shí),將自動(dòng)去執(zhí)行特定的中斷子程序。執(zhí)行完后處理器將從中斷的位置恢復(fù)正常的掃描。共可設(shè)定4個(gè)事件輸入中斷:EII0、EII1、EII2和EII3。下面是一個(gè)事件輸入中斷應(yīng)用的實(shí)例。本例中,EII用來保證所有的瓶子在流出生產(chǎn)線時(shí),瓶蓋機(jī)已經(jīng)給它們蓋上了瓶蓋。瓶子接近開關(guān)I:0/6用來作為EII輸入。當(dāng)有一個(gè)瓶子經(jīng)過這個(gè)接近開關(guān)時(shí),處理器執(zhí)行EII子程序。在子程序中,處理器讀瓶蓋接近開關(guān)的狀態(tài)。如果瓶子已經(jīng)蓋上瓶蓋,滑行槽電磁線圈不得電,允許瓶子從流水線上流過。如果沒有瓶蓋,滑行槽電磁線圈得電,使不合格的瓶子轉(zhuǎn)到滑行槽進(jìn)入廢品箱。使用EII需要設(shè)定EII功能文件子元素。本例中,程序文件號(hào)PFN設(shè)為5,表示5號(hào)子程序?yàn)镋II事件輸入中斷子程序。自動(dòng)開始位AS設(shè)為1,表示EII自動(dòng)啟動(dòng)。觸發(fā)類型選擇位ES設(shè)為1,表示上升沿觸發(fā)。輸入口選擇位ES設(shè)為6,表示事件輸入中斷以I:0/6為觸發(fā)信號(hào)。每個(gè)開關(guān)的狀態(tài)的含義為:I:0/6-上升沿表示有瓶子流過。I:0/8-0表示有瓶蓋,1表示沒有瓶蓋。O:0/8-0表示正常位置,1表示不合格品位置。5號(hào)子程序?yàn)椋悍治觯寒?dāng)處理器檢測(cè)到I:0/6觸發(fā)信號(hào)時(shí),執(zhí)行5號(hào)中斷子程序。RUNG1:如果瓶子上有瓶蓋,且滑行槽在不合格品位置,把滑行槽設(shè)置到正常位置。RUNG2:如果沒有瓶蓋,則滑行槽設(shè)置到不合格品位置。PID控制(PID)PID控制在工業(yè)過程控制中有廣泛的應(yīng)用。它可以控制諸如溫度、壓力、液位等物理量。PID指令通常用于閉環(huán)控制。它從模擬量輸入通道采集信號(hào),經(jīng)過PID運(yùn)算后,提供一個(gè)模擬量輸出信號(hào)作為反應(yīng),以使一個(gè)過程量穩(wěn)定在一個(gè)期望點(diǎn)。PID方程決定了輸入和輸出信號(hào)的關(guān)系。Output=Kc*[(E)+1/Ti*∫(E)dt+Td*d(Pv)/d(t)]+Bias上式中各變量含義為:E:為輸入信號(hào)對(duì)期望點(diǎn)的偏移量。Kc:比例系數(shù),也叫開環(huán)增益。Ti:積分時(shí)間常數(shù)。Td:微分時(shí)間常數(shù)。Output:PID運(yùn)算輸出。Bias:給輸出加上的一個(gè)偏移量。當(dāng)輸入信號(hào)偏移期望點(diǎn)越大,這個(gè)調(diào)整量就越大。另外,可再加上一個(gè)值Bias(可看作偏移量Offset)作為運(yùn)算的結(jié)果輸出,它使得被控過程量快速、平滑、超調(diào)量小的向期望點(diǎn)靠近(只要PID參數(shù)選擇合適)。下面介紹PID指令的參數(shù)。PIDFile:只能使用PD文件類型,輸入文件號(hào)和字號(hào),若不存在系統(tǒng)將自動(dòng)創(chuàng)建。ProcessVariablePV:欲控制的過程量。可選已設(shè)置為ScaledforPID的模擬量輸入口,也可為整數(shù)0~16383。ControlVariableCV:PID運(yùn)算結(jié)果的輸出地址。運(yùn)算結(jié)果的取值范圍也為0~16383,16383作為100%“ON”值輸出。屏幕參數(shù)(SetupScreen):包括TurningParameters、Inputs、Outputs。TurningParameters:GainKc:比例系數(shù),一般設(shè)置為引起輸出振蕩所需值的一半。ResetTi:積分系數(shù),一般設(shè)置為上述Kc標(biāo)定時(shí)測(cè)定的自然周期。RateTd:微分系數(shù),一般設(shè)置為1/8*Ti。Loopupdate:PID運(yùn)算的時(shí)間間隔,一般設(shè)置為一個(gè)自然周期的5~10倍。STI方式運(yùn)行時(shí)這個(gè)值應(yīng)設(shè)定為等于STITimeInterval(STI:0.SPM)。當(dāng)為STI方式運(yùn)行時(shí),PID指令應(yīng)放在STI中斷子程序里。然后當(dāng)每次執(zhí)行STI子程序時(shí)更新輸出。Controlmode:可選擇為:ReverseActing:E=SP-PV當(dāng)PV<Sp時(shí),CV增加。DirectActing:E=PV-SP當(dāng)PV>Sp時(shí),CV增加。PIDcontrol:可選擇為:Auto:PID控制輸出。Manual:用戶控制輸出。TimeMode:可選擇為:Timed:定時(shí)執(zhí)行方式,每隔設(shè)定的時(shí)間間隔更新PID輸出。STI:以STI方式運(yùn)行,前面已介紹。LimitOutputCV:可選擇為:Yes:輸入受限(在設(shè)定的最小最大值之間)。NO:輸入不受限。DeadbandDB:死區(qū)設(shè)置。只有在PV進(jìn)入了死區(qū)且通過了設(shè)定點(diǎn)(Setpoint)才起作用??烧{(diào)整的死區(qū)允許用戶設(shè)定上下偏差范圍,只要偏差保持在這個(gè)范圍輸出就不更改。Inputs:SetpointSP:期望的控制點(diǎn)。SetpointMax:當(dāng)輸入為16383時(shí),起作用。SetpointMin:當(dāng)輸入為0時(shí),起作用。ProcessVariablePV:(不用填寫,只供顯示PV)。Outputs:ControlOutputCV(%):只有手動(dòng)(Manual)時(shí)有效。OutputMin(CV%):設(shè)定輸出最小值。當(dāng)設(shè)定了輸出受限時(shí)(IfLimitOutputCVisYes):如果CV小于這里設(shè)定的最小值,則置CV為這里的設(shè)定值,同時(shí)設(shè)標(biāo)志位;如果沒有設(shè)輸出受限,則不改變CV值,只用于警告。OutputMax(CV%):參數(shù)設(shè)置的含義同上。ScaledErrorSE:(不用填寫,只供顯示)。脈沖串輸出(PTO)PTO為高速輸出指令。高速輸出指令允許用戶有選擇性的刷新數(shù)據(jù),而無需等待輸入輸出掃描。PTO指令只有一個(gè)參數(shù),我們可選擇PTO0或者PTO1。PTO子系統(tǒng)可組態(tài)為三種工作方式:脈沖點(diǎn)動(dòng)狀態(tài)、連續(xù)點(diǎn)動(dòng)狀態(tài)和正常工作狀態(tài)。脈沖點(diǎn)動(dòng)狀態(tài)在輸出端只輸出一個(gè)正脈沖。連續(xù)點(diǎn)動(dòng)狀態(tài)在輸出端輸出連續(xù)正脈沖序列正常工作狀態(tài)輸出一個(gè)脈沖串序列,這個(gè)脈沖串序列有加速、勻速、減速三個(gè)階段?,F(xiàn)在我們通過程序體會(huì)PTO子系統(tǒng)的三種工作方式,功能文件中子元素的作用,先設(shè)PTO功能文件中輸出位子元素OUT為2,表示輸出端為O:0/2。其它子元素在程序中設(shè)定。程序如下:分析:PTO可組態(tài)為三種工作方式:脈沖點(diǎn)動(dòng)狀態(tài)、連續(xù)點(diǎn)動(dòng)狀態(tài)和正常工作狀態(tài)。不能同時(shí)組態(tài)為兩種以上方式。脈沖點(diǎn)動(dòng)狀態(tài)和連續(xù)點(diǎn)動(dòng)狀態(tài)運(yùn)行時(shí)PTO指令的梯級(jí)條件應(yīng)為假。當(dāng)B3:0/0為真,脈沖點(diǎn)動(dòng)狀態(tài)位PTO:0.JP位置1,在O:0/2位輸出一個(gè)正脈沖,脈沖的寬度由點(diǎn)動(dòng)頻率位PTO:0.JF控制,本程序中就是N7:2的數(shù)值。輸出完成后脈沖點(diǎn)動(dòng)狀態(tài)位PTO:0.JP自動(dòng)復(fù)位。當(dāng)B3:0/1為真,連續(xù)點(diǎn)動(dòng)狀態(tài)位PTO:0.JC位置1,在O:0/2位輸出連續(xù)正脈沖序列,直到B3:0/1為假。脈沖頻率也由點(diǎn)動(dòng)頻率位PTO:0.JF控制。當(dāng)B3:0/2由0變1時(shí),ONS指令輸出一個(gè)周期正脈沖,急停位PTO:0.EH置1,無論任何工作模式都停止產(chǎn)生脈沖,PTO子系統(tǒng)產(chǎn)生1號(hào)急停錯(cuò)誤。只有當(dāng)控制位復(fù)位后重新置1,系統(tǒng)才可正常工作,系統(tǒng)自動(dòng)清除錯(cuò)誤。當(dāng)PTO指令有上升沿觸發(fā),PTO子系統(tǒng)工作在正常工作狀態(tài)。此時(shí)輸出一個(gè)具有加速、勻速、減速的脈沖序列,脈沖序列勻速時(shí)的頻率為PTO:0.OF,脈沖總數(shù)為PTO:0.TOP,加減速時(shí)的脈沖各有PTO:0.ADP個(gè)。如圖所示,橫軸為產(chǎn)生的脈沖數(shù),縱軸為對(duì)應(yīng)的頻率。PTO功能文件的斜坡曲線子元素RP可改變輸出加減速時(shí)的曲線,RP為0時(shí),輸出為T型曲線,RP為1時(shí),輸出為S型曲線。通常一個(gè)物理輸出只在脈沖上升沿或下降沿時(shí)改變。這意味在脈沖上升沿

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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)論