GEPLC第14講控制功能指令1_第1頁
GEPLC第14講控制功能指令1_第2頁
GEPLC第14講控制功能指令1_第3頁
GEPLC第14講控制功能指令1_第4頁
GEPLC第14講控制功能指令1_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第十四講

控制功能指令控制功能指令程序控制指令用于對(duì)程序流轉(zhuǎn)的控制,可以控制程序的結(jié)束、分支、循環(huán)、子程序或中斷程序調(diào)用等。通過程序控制指令的合理應(yīng)用,可以使程序結(jié)構(gòu)靈活、層次分明,增強(qiáng)程序功能。讀轉(zhuǎn)換開關(guān)位置指令I(lǐng)/O控制指令主控繼電器指令跳轉(zhuǎn)指令循環(huán)指令子程序中斷程序轉(zhuǎn)鼓指令1.讀轉(zhuǎn)換開關(guān)位置指令

讀轉(zhuǎn)換器位置(SWITCH_POS)允許邏輯讀RUN/STOP轉(zhuǎn)換器的當(dāng)前位置,以及轉(zhuǎn)換器配置模式。

功能許用操作數(shù)描述POS除了S,SA,SB,SC之外任何操作數(shù)寫進(jìn)當(dāng)前轉(zhuǎn)換器位置值的存儲(chǔ)單元:1-運(yùn)行I/O激活2-運(yùn)行I/O不激活3-停止模式MODE除了S,SA,SB,SC之外任何操作數(shù)寫進(jìn)轉(zhuǎn)換器配置值的存儲(chǔ)單元0–轉(zhuǎn)換器配置不支持1–轉(zhuǎn)換器控制運(yùn)行/停止模式2–轉(zhuǎn)換器不用,或由擁護(hù)申請(qǐng)使用3–轉(zhuǎn)換器控制存儲(chǔ)保護(hù),或運(yùn)行/停止模式S返回2.I/O控制指令當(dāng)DOI/O(DO_IO)接收能流,在程序運(yùn)行時(shí),每次掃描就刷新輸入或輸出點(diǎn)。除了正常的I/O掃描外,在程序執(zhí)行期間也可以利用DO_IO功能刷新其所選擇的I/O。如果輸出指定,DO_IO根據(jù)存儲(chǔ)在I/O存儲(chǔ)器中最新值刷新輸出。在整個(gè)I/O模塊增量范圍內(nèi)使用I/O;如有必要,在DO_IO執(zhí)行期間,PLC調(diào)整基準(zhǔn)點(diǎn)。暫停I/O(SUS_IO)功能塊在一個(gè)CPU掃描中出現(xiàn)事故時(shí)停止正常I/O掃描。在下次輸出掃描期間,保持所有輸出的當(dāng)前狀態(tài)。在下次輸入掃描期間,輸入數(shù)據(jù)刷新。可用操作數(shù)參量許用操作數(shù)描述STI,Q,AI,AQ被掃描的輸入或輸出點(diǎn)(字)組起始地址。ST和END必須在相同的存儲(chǔ)區(qū)域。注意:如果ST和END在BOOL量存儲(chǔ)器中,ST必須是字節(jié)組。那就是說,基準(zhǔn)地址必須從(8n+1)開始,例如%I01,%Q09,%Q49。ENDI,Q,AI,AQ被掃描的輸入或輸出點(diǎn)的最后一位的地址。必須和ST在相同的存儲(chǔ)區(qū)域。注意:如果ST和END在BOOL量存儲(chǔ)器中,END的基準(zhǔn)地址必須是8n,例如%I08,%Q16ALTI,Q,M,T,G,R,AI,AQ對(duì)于一個(gè)輸入掃描,ALT指定地址來存儲(chǔ)掃描輸入點(diǎn)/字的值。對(duì)于一個(gè)輸出掃描,ALT從指定地址獲得輸出點(diǎn)/字的值發(fā)送到I/O模塊中。

注意:如果ST和END在模擬量存儲(chǔ)器中,ALT僅是一個(gè)WORD。應(yīng)用舉例注意:大部分使用DO_IO和SUS_IO的程序,把SUS_IO功能塊放在第一梯級(jí),處理輸入的DO_IO功能塊放在下一個(gè)梯級(jí),處理輸出的DO_IO功能塊放在最后一個(gè)梯級(jí)。DO_IO功能塊處理輸出點(diǎn)的范圍從%Q00001到%Q00030。如果在這個(gè)范圍內(nèi)的模塊是一個(gè)32點(diǎn)的模塊,DO_IO功能塊執(zhí)行對(duì)整個(gè)模塊的掃描,不會(huì)把I/O模塊從中間分開掃描。

返回3、主控繼電器指令(MCRN,ENDMCRN)3、主控繼電器指令(MCRN,ENDMCRN)一個(gè)MCRN指令標(biāo)志一個(gè)邏輯段的開始,執(zhí)行該邏輯段時(shí)斷開能流。一個(gè)MCRN段的結(jié)束必須由一個(gè)和MCRN同名的ENDMCRN作記號(hào)。在邏輯里ENDMCRN必須跟在相應(yīng)的MCRN后面。

ENDMCRN有一個(gè)名稱,用來識(shí)別及聯(lián)合相應(yīng)的MCRN。

主控繼電器指令在激活的MCRN和相應(yīng)的ENDMCRN之間的所有梯級(jí)執(zhí)行時(shí),有來自母線的負(fù)能流。在主控繼電器范圍內(nèi)的功能塊執(zhí)行時(shí),能流斷開,線圈關(guān)斷。

一個(gè)MCRN強(qiáng)加下列控制:

定時(shí)器不計(jì)時(shí)。TMR類型重置。對(duì)于一個(gè)ONDTR功能塊,累加器保持原來的值。

正常輸出關(guān)斷,取反輸出接通。

在一個(gè)激活的主控繼電器范圍內(nèi)的子程序調(diào)用不執(zhí)行??墒?,在子程序內(nèi)的任一定時(shí)器連續(xù)不斷地計(jì)時(shí)。

舉例:主控繼電器的嵌套形式:只要V_I0002觸點(diǎn)允許能流進(jìn)入MCRN功能塊,程序執(zhí)行,能流不進(jìn)入線圈,一直執(zhí)行到關(guān)聯(lián)的ENDMCRN。如果V_I0001和V_I0003觸點(diǎn)為ON,線圈V_Q0001關(guān)斷,SET線圈V_Q0003維持當(dāng)前狀態(tài)。

返回4、跳轉(zhuǎn)指令(JUMP,LABEL)一個(gè)JUMP指令將旁路邏輯程序的一部分。程序在同一個(gè)塊中指定的LABELN中連續(xù)執(zhí)行。能量流直接從JUMPN跳轉(zhuǎn)到由LABELN指定梯級(jí)。當(dāng)跳轉(zhuǎn)激活時(shí),在jump和label之間的任何功能塊都不執(zhí)行。JUMPN有一個(gè)與之相關(guān)聯(lián)的LABELN。

跳轉(zhuǎn)指令跳轉(zhuǎn)指令性質(zhì):

在JUMPN和與其相關(guān)的LABELN之間的所有線圈都保持它們先前的狀態(tài)。

與定時(shí)器、計(jì)數(shù)器、鎖存器和繼電器相關(guān)聯(lián)的線圈也保持它們先前的狀態(tài)。

任何JUMPN能向前跳轉(zhuǎn)也能向后跳轉(zhuǎn),也就是說,LABELN既能在前面梯級(jí)中也能在后面梯級(jí)中。LABELN必須在同一個(gè)塊中。

跳轉(zhuǎn)指令注意:1)為了避免由向前或向后JUMPN指令建立一個(gè)死循環(huán),一個(gè)向后JUMPN應(yīng)該包含一條有條件的路徑。2)一個(gè)JUMPN指令的右端不連接任何指令或語句。3)多條跳轉(zhuǎn)指令可對(duì)應(yīng)同一標(biāo)號(hào),但不允許一個(gè)跳轉(zhuǎn)指令對(duì)應(yīng)多個(gè)相同標(biāo)號(hào),即在程序中不能出現(xiàn)兩個(gè)相同的標(biāo)號(hào)。

4)一個(gè)JUMPN與和它相關(guān)聯(lián)的LABELN能放在程序的任何地方,只要JUMPN/LABELN在下面的范圍內(nèi):不與MCRN/ENDMCRN對(duì)的范圍重疊不與FOR_LOOP/END_FOR對(duì)范圍重疊返回5.循環(huán)指令FORLOOP,ENDFOR,EXITFOR循環(huán)指令FORLOOP,ENDFOR,EXITFOR一個(gè)FOR_LOOP可以通過設(shè)置一個(gè)負(fù)的增加量給下標(biāo)變量遞減賦值。當(dāng)START和END的值設(shè)置相等,程序循環(huán)僅執(zhí)行一次。當(dāng)START的值不能增加/減少到END的值時(shí),不執(zhí)行循環(huán)語句。如果在第一次測(cè)試時(shí),F(xiàn)OR_LOOP指令的使能輸入有能流,在FOR和相應(yīng)的END_FOR指令之間的梯級(jí)執(zhí)行循環(huán)的次數(shù)由START,END和INCREMENT最初指定值決定。這種重復(fù)執(zhí)行出現(xiàn)在PLC單個(gè)掃描情況,如果循環(huán)周期長(zhǎng),這種重復(fù)執(zhí)行可能導(dǎo)致看門狗定時(shí)器停止。程序循環(huán)允許嵌套,但限制在5對(duì)FOR/END_FOR內(nèi)。完全嵌套,也允許帶有JUMP和MCR的嵌套。

控制要求:使用自增、自減指令和數(shù)據(jù)指針,將%R00101~%R00200中的數(shù)據(jù)逆序傳送到%R00301~%R00400中。例.數(shù)據(jù)逆序傳輸控制要求:使用自增、自減指令和數(shù)據(jù)指針,將%R00001~%R00030中的數(shù)據(jù)逆序傳送到%R00201~%R00230中。例.數(shù)據(jù)逆序傳輸返回參考程序6.子程序不帶參數(shù)調(diào)用子程序帶參數(shù)調(diào)用子程序子程序新建一個(gè)梯形圖子程序修改子程序名根據(jù)需要可以新建幾個(gè)子程序(最多512個(gè))打開屬性窗帶參數(shù)子程序與不帶參數(shù)子程序子程序不帶參數(shù)調(diào)用子程序帶參數(shù)調(diào)用子程序子程序注意:一個(gè)CALL功能塊能在任何程序塊中使用,包括_MAIN塊或一個(gè)帶參數(shù)塊。但不能在一個(gè)外部塊中使用。

不能調(diào)用一個(gè)_MAIN塊。

執(zhí)行調(diào)用之前,被調(diào)用的塊必須存在。

一個(gè)已知塊的調(diào)用和被調(diào)用的次數(shù)沒有限制。

通過調(diào)用塊本身可以形成遞歸子程序。當(dāng)堆棧容量配置為默認(rèn)值(64K),PLC保證在“應(yīng)用堆棧溢出”錯(cuò)誤發(fā)生之前8個(gè)嵌套調(diào)用中最小一個(gè)調(diào)用。

當(dāng)一個(gè)程序塊、帶參模塊或外部C塊的Y0參數(shù)返回ON時(shí),CALL向右傳遞能流,當(dāng)返回為OFF時(shí),CALL不向右傳遞能流。例1:使用子程序設(shè)計(jì)一彩燈控制程序?qū)崿F(xiàn)如下功能:①前64s,16個(gè)輸出(Q00001~Q00016),初態(tài)為Q00001閉合,其他打開,依次從最低位到最高位移位閉合,循環(huán)4次;②后64s,16個(gè)輸出(Q00001~Q00016),初態(tài)為Q00016和Q00015閉合,其它打開,依次從最高位到最低位兩兩移位閉合,循環(huán)8次。

程序:返回例2:思考:使用帶參數(shù)的子程序?qū)崿F(xiàn)一位數(shù)加法計(jì)算器計(jì)算結(jié)果的顯示:(1)計(jì)算結(jié)果存放在%R00001中,數(shù)據(jù)類型為INT型;(2)第一個(gè)數(shù)碼管顯示計(jì)算結(jié)果的十位數(shù),第二個(gè)數(shù)碼管顯示計(jì)算結(jié)果的個(gè)位數(shù)。7.中斷程序1)由CPU產(chǎn)生,中斷的時(shí)間間隔由用戶指定。如果設(shè)定了初始延時(shí),則在完成停止-運(yùn)行轉(zhuǎn)換并經(jīng)過初始延時(shí)時(shí)間后,開始計(jì)算中斷時(shí)間。2)I/O中斷由I/O模塊發(fā)出,I/O中斷用于指示離散輸入狀態(tài)的改變(上升沿/下降沿),模擬量范圍限制(高/低報(bào)警)和高速計(jì)數(shù)器事件。3)模塊中斷由VME模塊產(chǎn)生。每個(gè)模塊支持單個(gè)中斷。注意:中斷驅(qū)動(dòng)塊執(zhí)行后能中斷非中斷驅(qū)動(dòng)塊的執(zhí)行。如果正在中斷的邏輯和已中斷的邏輯訪問相同的數(shù)據(jù),會(huì)產(chǎn)生不可預(yù)期的錯(cuò)誤。需要的話,在共享數(shù)據(jù)正在被訪問時(shí),服務(wù)請(qǐng)求程序17或服務(wù)請(qǐng)求程序32可以臨時(shí)屏蔽I/O和定時(shí)中斷程序的執(zhí)行。用于啟動(dòng)程序塊的3種中斷類型中斷程序中斷設(shè)置

定時(shí)中斷塊第一次執(zhí)行的時(shí)間為:CPU進(jìn)入運(yùn)行模式后((延時(shí)*時(shí)間基準(zhǔn))+(時(shí)間間隔*時(shí)間基準(zhǔn)))時(shí)間基準(zhǔn)(TimeBase)設(shè)定的時(shí)間間隔和延時(shí)的最小時(shí)間單元。時(shí)間基準(zhǔn)可以設(shè)定為1秒,0.1秒和0.001秒時(shí)間間隔(Interval)設(shè)定值*時(shí)間基準(zhǔn)后,得到的值為程序塊兩次執(zhí)行的時(shí)間間隔延時(shí)(Delay)

(可選擇)設(shè)定值*時(shí)間基準(zhǔn)后,得到的值為延時(shí)多長(zhǎng)時(shí)間開始第一次執(zhí)行程序塊1)定時(shí)中斷:系統(tǒng)上電后定期執(zhí)行的中斷程序塊中斷設(shè)置

程序塊可以由某些硬件輸入的中斷信號(hào)觸發(fā)。例如,24VDC,32路的輸入模塊(IC697MDL650),不管輸入信號(hào)是上升沿還是下降沿,第一次輸入時(shí)都發(fā)出一個(gè)中斷。如果模塊配置中將中斷功能使能,則中斷可以觸發(fā)執(zhí)行一個(gè)程序塊。I/O中斷在程序塊屬性欄中配置,觸發(fā)必須使用全局變量%I,%AI或者%AQ。2)I/O中斷如果在模塊硬件配置中將VME中斷參數(shù)使能,程序塊可以由VME模塊輸入的中斷信號(hào)觸發(fā)。PAC系統(tǒng)CPU允許每個(gè)模塊有一個(gè)中斷。要配置模塊中斷,在程序塊屬性欄中標(biāo)明模塊所在的機(jī)架/槽號(hào)/中斷ID即可。3)模塊中斷舉例:完成功能:輸出繼電器Q00001以1秒為周期通斷。思考:主程序?yàn)槿缦绿菪螆D時(shí)繪制Q00001的時(shí)序。優(yōu)先級(jí)程序塊時(shí)序優(yōu)先級(jí)時(shí)序允許你為每一個(gè)觸發(fā)指定一個(gè)優(yōu)先級(jí)。優(yōu)

溫馨提示

  • 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)論