第8章任務(wù)編程_第1頁(yè)
第8章任務(wù)編程_第2頁(yè)
第8章任務(wù)編程_第3頁(yè)
第8章任務(wù)編程_第4頁(yè)
第8章任務(wù)編程_第5頁(yè)
已閱讀5頁(yè),還剩37頁(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、第第 8 8 章章任務(wù)編程任務(wù)編程v 8.1 8.1 概述概述v 8.2 8.2 任務(wù)的管理和使用任務(wù)的管理和使用v 8.3 8.3 中斷任務(wù)中斷任務(wù)v 思考題與習(xí)題思考題與習(xí)題 8.1 8.1 概述概述8.1.1 任務(wù)編程的特點(diǎn)任務(wù)編程的特點(diǎn) v 可分解為多個(gè)任務(wù),由多人共同開(kāi)發(fā),最終合并在一個(gè)用戶程序中??煞纸鉃槎鄠€(gè)任務(wù),由多人共同開(kāi)發(fā),最終合并在一個(gè)用戶程序中。v 根據(jù)功能可將某些任務(wù)定制為獨(dú)立性強(qiáng)的標(biāo)準(zhǔn)化模塊,這樣在進(jìn)行根據(jù)功能可將某些任務(wù)定制為獨(dú)立性強(qiáng)的標(biāo)準(zhǔn)化模塊,這樣在進(jìn)行新的編程時(shí),如果有相同的功能要求,就可以方便地移植先前已有新的編程時(shí),如果有相同的功能要求,就可以方便地移植先

2、前已有的任務(wù)模塊。的任務(wù)模塊。v 提高總體響應(yīng)性能。提高總體響應(yīng)性能。v 修改與調(diào)試簡(jiǎn)便。修改與調(diào)試簡(jiǎn)便。v 容易實(shí)現(xiàn)程序的切換。容易實(shí)現(xiàn)程序的切換。v 用戶程序的可讀性好。用戶程序的可讀性好。8.1.2 8.1.2 任務(wù)和程序任務(wù)和程序v 圖為多個(gè)任務(wù)組成的程序。圖為多個(gè)任務(wù)組成的程序。每個(gè)任務(wù)分配了一個(gè)獨(dú)立的每個(gè)任務(wù)分配了一個(gè)獨(dú)立的程序,任務(wù)的最后一條指令程序,任務(wù)的最后一條指令是是END,代表任務(wù)結(jié)束,代表任務(wù)結(jié)束,END之后的指令不執(zhí)行。這之后的指令不執(zhí)行。這些任務(wù)大體上分為兩類:循些任務(wù)大體上分為兩類:循環(huán)任務(wù)和中斷任務(wù),而中斷環(huán)任務(wù)和中斷任務(wù),而中斷任務(wù)還可以作為擴(kuò)充循環(huán)任任務(wù)還可

3、以作為擴(kuò)充循環(huán)任務(wù)使用。務(wù)使用。1. 循環(huán)任務(wù)循環(huán)任務(wù)v當(dāng)循環(huán)任務(wù)的狀態(tài)置為準(zhǔn)備時(shí),每個(gè)掃描周期執(zhí)行一次,最多能使用當(dāng)循環(huán)任務(wù)的狀態(tài)置為準(zhǔn)備時(shí),每個(gè)掃描周期執(zhí)行一次,最多能使用32個(gè)循環(huán)任務(wù),任務(wù)編號(hào)為個(gè)循環(huán)任務(wù),任務(wù)編號(hào)為0031,多個(gè)任務(wù)時(shí)按從小到大的順序執(zhí)行。,多個(gè)任務(wù)時(shí)按從小到大的順序執(zhí)行。 2. 中斷任務(wù)中斷任務(wù)v當(dāng)中斷條件產(chǎn)生時(shí),無(wú)論處于循環(huán)任務(wù)執(zhí)行、擴(kuò)充循環(huán)任務(wù)執(zhí)行,還是當(dāng)中斷條件產(chǎn)生時(shí),無(wú)論處于循環(huán)任務(wù)執(zhí)行、擴(kuò)充循環(huán)任務(wù)執(zhí)行,還是I/O刷新、外設(shè)服務(wù)階段,都必須立即強(qiáng)制中斷,轉(zhuǎn)去執(zhí)行中斷任務(wù),執(zhí)刷新、外設(shè)服務(wù)階段,都必須立即強(qiáng)制中斷,轉(zhuǎn)去執(zhí)行中斷任務(wù),執(zhí)行完后再返回執(zhí)行前的斷點(diǎn)

4、。行完后再返回執(zhí)行前的斷點(diǎn)。CP1H的中斷任務(wù)分為輸入中斷、定時(shí)中的中斷任務(wù)分為輸入中斷、定時(shí)中斷、高速計(jì)數(shù)器中斷和外部中斷四種。中斷任務(wù)還可以通過(guò)斷、高速計(jì)數(shù)器中斷和外部中斷四種。中斷任務(wù)還可以通過(guò)TKON指令指令的設(shè)置,作為擴(kuò)充循環(huán)任務(wù)使用。的設(shè)置,作為擴(kuò)充循環(huán)任務(wù)使用。3. 擴(kuò)充循環(huán)任務(wù)擴(kuò)充循環(huán)任務(wù)v擴(kuò)充循環(huán)任務(wù)能夠和通常的循環(huán)任務(wù)一樣周期性的執(zhí)行。在運(yùn)行完循擴(kuò)充循環(huán)任務(wù)能夠和通常的循環(huán)任務(wù)一樣周期性的執(zhí)行。在運(yùn)行完循環(huán)任務(wù)(編號(hào)為環(huán)任務(wù)(編號(hào)為0031)后,對(duì)設(shè)置為)后,對(duì)設(shè)置為“準(zhǔn)備準(zhǔn)備”狀態(tài)的中斷任務(wù),按狀態(tài)的中斷任務(wù),按中斷任務(wù)編號(hào)由小到大順序執(zhí)行。最多執(zhí)行中斷任務(wù)編號(hào)由小到大順

5、序執(zhí)行。最多執(zhí)行256個(gè)擴(kuò)充循環(huán)任務(wù),編個(gè)擴(kuò)充循環(huán)任務(wù),編號(hào)為號(hào)為0255。但是,與通常的循環(huán)任務(wù)不同,擴(kuò)充循環(huán)任務(wù)的屬性不。但是,與通常的循環(huán)任務(wù)不同,擴(kuò)充循環(huán)任務(wù)的屬性不能設(shè)置為啟動(dòng)時(shí)自動(dòng)執(zhí)行,只能由能設(shè)置為啟動(dòng)時(shí)自動(dòng)執(zhí)行,只能由TKON指令啟動(dòng)。指令啟動(dòng)。8.1.3 8.1.3 任務(wù)的執(zhí)行條件及相關(guān)設(shè)定任務(wù)的執(zhí)行條件及相關(guān)設(shè)定v 任務(wù)的執(zhí)行條件和相關(guān)設(shè)定見(jiàn)表任務(wù)的執(zhí)行條件和相關(guān)設(shè)定見(jiàn)表任務(wù)種類任務(wù)號(hào)執(zhí)行條件相關(guān)設(shè)定循環(huán)任務(wù)031在準(zhǔn)備狀態(tài)(程序?qū)傩赃x中“操作開(kāi)始”或由TKON指令啟動(dòng))下,取得執(zhí)行權(quán)后在每個(gè)周期執(zhí)行無(wú)(總是有效)中斷任務(wù)間隔定時(shí)中斷0中斷任務(wù)2根據(jù)CPU單元的內(nèi)置定時(shí)器,

6、每經(jīng)過(guò)一定時(shí)間執(zhí)行由中斷屏蔽設(shè)置指令(MSKS指令)的定時(shí)中斷時(shí)間來(lái)設(shè)定(09999)PLC系統(tǒng)設(shè)定的“定時(shí)中斷時(shí)間單位設(shè)定”(10ms/1.0ms/0.1ms)輸入中斷07中斷任務(wù)140147CPU單元內(nèi)置的輸入點(diǎn)上升沿或下降沿時(shí)執(zhí)行由中斷屏蔽設(shè)置指令(MSKS指令)進(jìn)行指定點(diǎn)的中斷屏蔽解除高速計(jì)數(shù)器中斷中斷任務(wù)0255在CPU單元內(nèi)置高速計(jì)數(shù)器的目標(biāo)值比較一致或區(qū)域比較的條件滿足時(shí)執(zhí)行由比較表登錄指令CTBL進(jìn)行比較條件設(shè)定和分配中斷任務(wù)號(hào)外部中斷中斷任務(wù)0255在CP1H擴(kuò)展使用的CJ特殊I/O單元或CPU總線單元要求時(shí)執(zhí)行無(wú)(總是有效)擴(kuò)充循環(huán)任務(wù)0255中斷任務(wù)0255在準(zhǔn)備狀態(tài)(由

7、TKON指令啟動(dòng))下,取得執(zhí)行權(quán)后在每個(gè)周期執(zhí)行無(wú)(總是有效)任務(wù)的執(zhí)行條件1. 未使能狀態(tài)(未使能狀態(tài)(DISABLED)2. 準(zhǔn)備狀態(tài)(準(zhǔn)備狀態(tài)(READY)3. 執(zhí)行狀態(tài)(執(zhí)行狀態(tài)(RUN)4. 待機(jī)狀態(tài)(待機(jī)狀態(tài)(STANDBY)8.1.4 8.1.4 任務(wù)的狀態(tài)及轉(zhuǎn)換任務(wù)的狀態(tài)及轉(zhuǎn)換v各任務(wù)狀態(tài)的轉(zhuǎn)換關(guān)系如圖所示。通過(guò)狀態(tài)之間的轉(zhuǎn)換,可以對(duì)不執(zhí)行各任務(wù)狀態(tài)的轉(zhuǎn)換關(guān)系如圖所示。通過(guò)狀態(tài)之間的轉(zhuǎn)換,可以對(duì)不執(zhí)行的程序區(qū)域進(jìn)行任務(wù)分割,使之處于適當(dāng)?shù)拇龣C(jī)狀態(tài),以縮短掃描周期。的程序區(qū)域進(jìn)行任務(wù)分割,使之處于適當(dāng)?shù)拇龣C(jī)狀態(tài),以縮短掃描周期。8.2 8.2 任務(wù)的管理和使用任務(wù)的管理和使用v

8、循環(huán)任務(wù)循環(huán)任務(wù)0的屬性設(shè)為的屬性設(shè)為“操作開(kāi)始操作開(kāi)始”時(shí)啟動(dòng),時(shí)啟動(dòng),(a)中的循環(huán)任務(wù))中的循環(huán)任務(wù)0使使用用TKON、TKOF指令,指令,控制循環(huán)任務(wù)控制循環(huán)任務(wù)0、1、2、3的執(zhí)行;(的執(zhí)行;(b)為任務(wù))為任務(wù)0、1、2、3循環(huán)執(zhí)行的順序。循環(huán)執(zhí)行的順序。 v 圖圖a中,運(yùn)行開(kāi)始,任務(wù)中,運(yùn)行開(kāi)始,任務(wù)0啟動(dòng),處于執(zhí)行狀態(tài),其它的任務(wù)為未使能狀態(tài)。啟動(dòng),處于執(zhí)行狀態(tài),其它的任務(wù)為未使能狀態(tài)。v 圖圖b中,中,A為為ON 時(shí),任務(wù)時(shí),任務(wù)1置為準(zhǔn)備狀態(tài),開(kāi)始啟動(dòng),同任務(wù)置為準(zhǔn)備狀態(tài),開(kāi)始啟動(dòng),同任務(wù)0一樣,處于執(zhí)行一樣,處于執(zhí)行狀態(tài),而任務(wù)狀態(tài),而任務(wù)2、3 處于未使能狀態(tài)。處于未使

9、能狀態(tài)。v 圖圖c中,中,D為為ON時(shí),任務(wù)時(shí),任務(wù)0把自身置為待機(jī)狀態(tài),從下一個(gè)周期開(kāi)始,任務(wù)把自身置為待機(jī)狀態(tài),從下一個(gè)周期開(kāi)始,任務(wù)0不不再執(zhí)行,而其它的任務(wù)保持原狀態(tài)。再執(zhí)行,而其它的任務(wù)保持原狀態(tài)。8.2.3 8.2.3 任務(wù)與任務(wù)與I/OI/O內(nèi)存的關(guān)系內(nèi)存的關(guān)系(1)按各個(gè)任務(wù)分別單獨(dú)使用)按各個(gè)任務(wù)分別單獨(dú)使用(2)各任務(wù)共同使用)各任務(wù)共同使用v 二者的區(qū)別是:在方法(二者的區(qū)別是:在方法(1)中,循環(huán)任務(wù))中,循環(huán)任務(wù)1中使用的中使用的IR0和循環(huán)任務(wù)和循環(huán)任務(wù)2中使用的中使用的IR0不相不相同。在方法(同。在方法(2)中,循環(huán)任務(wù))中,循環(huán)任務(wù)1中使用的中使用的IR0和循

10、環(huán)任務(wù)和循環(huán)任務(wù)2中使用的中使用的IR0相同。相同。v 對(duì)于對(duì)于IR或或DR而言,無(wú)論采用方法(而言,無(wú)論采用方法(1)還是)還是方法(方法(2),都必須使用),都必須使用CX-P設(shè)定。在工程設(shè)定。在工程窗口中,右鍵點(diǎn)擊窗口中,右鍵點(diǎn)擊“新新PLC1”,如圖所示,如圖所示,在彈出子菜單中選擇在彈出子菜單中選擇“屬性屬性”。v 在彈出的在彈出的“PLC屬性屬性”窗口中選取窗口中選取“每個(gè)任每個(gè)任務(wù)獨(dú)立使用務(wù)獨(dú)立使用IR/DRs(I)”,如圖所示。,如圖所示。 設(shè)置PLC的屬性PLC屬性窗口8.2.4 8.2.4 任務(wù)對(duì)指令的限制任務(wù)對(duì)指令的限制v 某些需配對(duì)使用的指令必須在同一任務(wù)中,否則錯(cuò)誤標(biāo)

11、志位某些需配對(duì)使用的指令必須在同一任務(wù)中,否則錯(cuò)誤標(biāo)志位P_ER將置位,不將置位,不能執(zhí)行指令。這些需要配對(duì)使用的指令為:能執(zhí)行指令。這些需要配對(duì)使用的指令為:JMP/JME、CJP/JME、CJPN/JME、JMP0/JME0、FOR/NEXT、IL/ILC、SBS/SBN/RET、MCRO/SBN/RET、STEP S/STEP。v 某些指令在中斷任務(wù)中不能被執(zhí)行,但是將中斷任務(wù)切換為擴(kuò)充循環(huán)任務(wù)后某些指令在中斷任務(wù)中不能被執(zhí)行,但是將中斷任務(wù)切換為擴(kuò)充循環(huán)任務(wù)后就可以執(zhí)行了就可以執(zhí)行了,TKON、TKOF、STEP、SNEX、STUP、DI、EI。v 某些指令在中斷任務(wù)內(nèi)執(zhí)行結(jié)果將不準(zhǔn)確

12、。指令為:某些指令在中斷任務(wù)內(nèi)執(zhí)行結(jié)果將不準(zhǔn)確。指令為:TIM/TIMX、TIMH/TIMHX、TTIM/TTIMX、MTIM/MTIMX、TIML/TIMLX、TIMW/TIMWX、TMHW/TMHWX、PID、FPD、STUP。8.2.5 8.2.5 任務(wù)標(biāo)志任務(wù)標(biāo)志1. 循環(huán)任務(wù)的標(biāo)志循環(huán)任務(wù)的標(biāo)志1)任務(wù)標(biāo)志()任務(wù)標(biāo)志(TK00TK31)v任務(wù)標(biāo)志任務(wù)標(biāo)志TK00TK31是在確認(rèn)當(dāng)前任務(wù)是否被執(zhí)行時(shí)使用,當(dāng)循環(huán)任務(wù)為準(zhǔn)備狀態(tài)時(shí)置是在確認(rèn)當(dāng)前任務(wù)是否被執(zhí)行時(shí)使用,當(dāng)循環(huán)任務(wù)為準(zhǔn)備狀態(tài)時(shí)置1,在未使能或待機(jī)狀態(tài)時(shí)置在未使能或待機(jī)狀態(tài)時(shí)置0。任務(wù)。任務(wù)0031對(duì)應(yīng)于標(biāo)志對(duì)應(yīng)于標(biāo)志TK00T

13、K31。2)任務(wù)初次啟動(dòng)標(biāo)志)任務(wù)初次啟動(dòng)標(biāo)志A200.15v任務(wù)初次啟動(dòng)標(biāo)志任務(wù)初次啟動(dòng)標(biāo)志A200.15是在運(yùn)行程序中進(jìn)行一次初始化處理時(shí)使用。當(dāng)循環(huán)任務(wù)從未使是在運(yùn)行程序中進(jìn)行一次初始化處理時(shí)使用。當(dāng)循環(huán)任務(wù)從未使能轉(zhuǎn)換為準(zhǔn)備并得到執(zhí)行權(quán),處于執(zhí)行狀態(tài)時(shí)置為能轉(zhuǎn)換為準(zhǔn)備并得到執(zhí)行權(quán),處于執(zhí)行狀態(tài)時(shí)置為1,實(shí)際結(jié)束時(shí)置為,實(shí)際結(jié)束時(shí)置為0。循環(huán)任務(wù)通過(guò)該標(biāo)。循環(huán)任務(wù)通過(guò)該標(biāo)志可以判斷自身是否為初次執(zhí)行。當(dāng)初次執(zhí)行時(shí)可以進(jìn)行初始化處理,如圖志可以判斷自身是否為初次執(zhí)行。當(dāng)初次執(zhí)行時(shí)可以進(jìn)行初始化處理,如圖8.17所示。所示。4. 任務(wù)上升沿標(biāo)志任務(wù)上升沿標(biāo)志A200.14v任務(wù)上升沿標(biāo)志任務(wù)

14、上升沿標(biāo)志A200.14是每次任務(wù)啟動(dòng)時(shí)用于初始化處理。當(dāng)循環(huán)是每次任務(wù)啟動(dòng)時(shí)用于初始化處理。當(dāng)循環(huán)任務(wù)從未使能狀態(tài)轉(zhuǎn)換為準(zhǔn)備狀態(tài)時(shí)置為任務(wù)從未使能狀態(tài)轉(zhuǎn)換為準(zhǔn)備狀態(tài)時(shí)置為1。通過(guò)把該標(biāo)志作為輸入。通過(guò)把該標(biāo)志作為輸入條件,能夠進(jìn)行任務(wù)啟動(dòng)時(shí)(用條件,能夠進(jìn)行任務(wù)啟動(dòng)時(shí)(用TKON指令將此前為待機(jī)狀態(tài)的循指令將此前為待機(jī)狀態(tài)的循環(huán)任務(wù)置成準(zhǔn)備狀態(tài)時(shí))的初始化處理。環(huán)任務(wù)置成準(zhǔn)備狀態(tài)時(shí))的初始化處理。 2 2任務(wù)的共享標(biāo)志任務(wù)的共享標(biāo)志1)任務(wù)出錯(cuò)標(biāo)志)任務(wù)出錯(cuò)標(biāo)志A295.12v 當(dāng)在一個(gè)循環(huán)周期內(nèi)不存在一個(gè)準(zhǔn)備狀態(tài)的循環(huán)任務(wù)或擴(kuò)充循環(huán)任務(wù)時(shí),或不當(dāng)在一個(gè)循環(huán)周期內(nèi)不存在一個(gè)準(zhǔn)備狀態(tài)的循環(huán)任務(wù)

15、或擴(kuò)充循環(huán)任務(wù)時(shí),或不存在分配給循環(huán)任務(wù)的程序時(shí),或不存在分配給啟動(dòng)的中斷任務(wù)(包括擴(kuò)充循存在分配給循環(huán)任務(wù)的程序時(shí),或不存在分配給啟動(dòng)的中斷任務(wù)(包括擴(kuò)充循環(huán)任務(wù))的程序時(shí),任務(wù)出錯(cuò)標(biāo)志環(huán)任務(wù))的程序時(shí),任務(wù)出錯(cuò)標(biāo)志A295.12置為置為1。2)出錯(cuò)的任務(wù)號(hào)通道)出錯(cuò)的任務(wù)號(hào)通道A294v 由于程序出錯(cuò)而停止運(yùn)行時(shí),出錯(cuò)的任務(wù)種類及任務(wù)號(hào)將保存在由于程序出錯(cuò)而停止運(yùn)行時(shí),出錯(cuò)的任務(wù)種類及任務(wù)號(hào)將保存在A294通道中,通道中,見(jiàn)表。由此可以判定發(fā)生異常的任務(wù)。當(dāng)異常解除時(shí)見(jiàn)表。由此可以判定發(fā)生異常的任務(wù)。當(dāng)異常解除時(shí)A294的值被清零。同時(shí)將的值被清零。同時(shí)將該程序停止時(shí)所處的程序地址保存在該

16、程序停止時(shí)所處的程序地址保存在A298(程序地址低字)和(程序地址低字)和A299通道(程序通道(程序地址高字)。地址高字)。任務(wù)種類A294循環(huán)任務(wù)0000001FHex(對(duì)應(yīng)任務(wù)0031)中斷任務(wù)(包括擴(kuò)充循環(huán)任務(wù))800080FFHex(對(duì)應(yīng)中斷任務(wù)0255)程序停止時(shí)A294通道的數(shù)據(jù)8.2.6 8.2.6 任務(wù)設(shè)計(jì)的原則任務(wù)設(shè)計(jì)的原則v 任務(wù)編程是模塊化編任務(wù)編程是模塊化編程的進(jìn)一步發(fā)展,但程的進(jìn)一步發(fā)展,但優(yōu)點(diǎn)更突出。將任務(wù)優(yōu)點(diǎn)更突出。將任務(wù)進(jìn)行不同的組織就構(gòu)進(jìn)行不同的組織就構(gòu)成不同的程序,如圖成不同的程序,如圖所示所示 v 每個(gè)任務(wù)執(zhí)行結(jié)束時(shí),所有的標(biāo)志位,如每個(gè)任務(wù)執(zhí)行結(jié)束時(shí),

17、所有的標(biāo)志位,如ER、CY、EQ、AER等均被等均被置為置為0。任務(wù)劃分及設(shè)計(jì)時(shí)要考慮以下問(wèn)題:。任務(wù)劃分及設(shè)計(jì)時(shí)要考慮以下問(wèn)題:1. 可從多種角度劃分任務(wù)可從多種角度劃分任務(wù)v (1)按執(zhí)行條件劃分。)按執(zhí)行條件劃分。v (2)按外部輸入)按外部輸入/輸出劃分。輸出劃分。v (3)按功能劃分。將程序劃分為時(shí)序控制、模擬量控制、人機(jī)處理、)按功能劃分。將程序劃分為時(shí)序控制、模擬量控制、人機(jī)處理、異常處理等任務(wù)。異常處理等任務(wù)。v (4)按生產(chǎn)工序劃分。)按生產(chǎn)工序劃分。v (5)按加工工件劃分。)按加工工件劃分。v (6)按開(kāi)發(fā)者劃分。)按開(kāi)發(fā)者劃分。v (7)按執(zhí)行優(yōu)先級(jí)劃分。分為周期任務(wù)和

18、中斷任務(wù)。)按執(zhí)行優(yōu)先級(jí)劃分。分為周期任務(wù)和中斷任務(wù)。2.任務(wù)劃分時(shí)應(yīng)盡可能減少數(shù)據(jù)交換,以提高各自獨(dú)立性任務(wù)劃分時(shí)應(yīng)盡可能減少數(shù)據(jù)交換,以提高各自獨(dú)立性3.采用全局管理任務(wù)來(lái)控制其它任務(wù)的執(zhí)行或待機(jī)采用全局管理任務(wù)來(lái)控制其它任務(wù)的執(zhí)行或待機(jī)4.將循環(huán)任務(wù)或擴(kuò)充循環(huán)任務(wù)中優(yōu)先級(jí)高的任務(wù)分配小的任務(wù)號(hào)將循環(huán)任務(wù)或擴(kuò)充循環(huán)任務(wù)中優(yōu)先級(jí)高的任務(wù)分配小的任務(wù)號(hào)5.將優(yōu)先級(jí)高的中斷任務(wù)分配為小的中斷任務(wù)號(hào)將優(yōu)先級(jí)高的中斷任務(wù)分配為小的中斷任務(wù)號(hào)6.任務(wù)一旦被啟動(dòng),只要沒(méi)有被自身或其它任務(wù)設(shè)為待機(jī)狀態(tài),則在下一周期之任務(wù)一旦被啟動(dòng),只要沒(méi)有被自身或其它任務(wù)設(shè)為待機(jī)狀態(tài),則在下一周期之后成為可執(zhí)行狀態(tài),執(zhí)行

19、條件的任務(wù)分支時(shí),不要忘記插入針對(duì)于其它任務(wù)的后成為可執(zhí)行狀態(tài),執(zhí)行條件的任務(wù)分支時(shí),不要忘記插入針對(duì)于其它任務(wù)的TKOF指令指令7.劃分清楚各任務(wù)共同使用的內(nèi)存區(qū)域和各任務(wù)單獨(dú)使用的內(nèi)存區(qū)域。劃分清楚各任務(wù)共同使用的內(nèi)存區(qū)域和各任務(wù)單獨(dú)使用的內(nèi)存區(qū)域。8.在進(jìn)行任務(wù)執(zhí)行時(shí)的初始化處理時(shí),使用以下標(biāo)志:在進(jìn)行任務(wù)執(zhí)行時(shí)的初始化處理時(shí),使用以下標(biāo)志:(1)在運(yùn)行中只進(jìn)行一次初始化處理時(shí),使用任務(wù)初次啟動(dòng)標(biāo)志)在運(yùn)行中只進(jìn)行一次初始化處理時(shí),使用任務(wù)初次啟動(dòng)標(biāo)志A200.15。(2)只要任務(wù)啟動(dòng)就進(jìn)行初始化處理時(shí),使用任務(wù)上升沿標(biāo)志)只要任務(wù)啟動(dòng)就進(jìn)行初始化處理時(shí),使用任務(wù)上升沿標(biāo)志A200.14

20、。 8.3 8.3 中斷任務(wù)中斷任務(wù)8.3.1 CP1H的中斷功能的中斷功能 v CP1H的中斷分為下列的中斷分為下列5種情況。種情況。v 1)直接模式的輸入中斷)直接模式的輸入中斷 固定分配的中斷任務(wù)號(hào)為固定分配的中斷任務(wù)號(hào)為140147。v 2) 計(jì)數(shù)器模式的輸入中斷計(jì)數(shù)器模式的輸入中斷v 3) 間隔定時(shí)中斷間隔定時(shí)中斷v 4) 高速計(jì)數(shù)器中斷高速計(jì)數(shù)器中斷:可通過(guò)指令分配中斷任務(wù)可通過(guò)指令分配中斷任務(wù)0255。v 5)外部中斷)外部中斷中斷原因中斷任務(wù)號(hào)中斷條件設(shè)定方法最大點(diǎn)數(shù)用途例輸入中斷07140147計(jì)數(shù)CPU單元內(nèi)置的中斷輸入接點(diǎn)的上升沿/下降沿(直接模式)或指定次數(shù)的上升沿/下

21、降沿(計(jì)數(shù)模式)時(shí) 用MSKS(中斷屏蔽設(shè)置)指令來(lái)指定哪個(gè)輸入編號(hào)為中斷有效8點(diǎn)可使特定的輸入接點(diǎn)實(shí)現(xiàn)高速響應(yīng)高速計(jì)數(shù)器0255對(duì)于高速計(jì)數(shù)當(dāng)前值與目標(biāo)一致比較或區(qū)域比較的條件成立時(shí)用CTBL(比較表登錄)指令指定和比較條件一起執(zhí)行的中斷任務(wù)號(hào)256點(diǎn)在由編碼器脈沖的計(jì)數(shù)值來(lái)定位時(shí)間隔定時(shí)中斷02定時(shí)(一定時(shí)間間隔)用MSKS(中斷屏蔽設(shè)置)指令來(lái)指定定時(shí)中斷時(shí)間PLC系統(tǒng)設(shè)定的“定時(shí)中斷時(shí)間單位設(shè)定”1點(diǎn)可以按一定的間隔顯示運(yùn)行狀況外部中斷0255有來(lái)自CJ的特殊I/O單元、CPU總線單元的中斷要求時(shí)無(wú)(總是有效)256點(diǎn)使用CJ系列高功能單元的功能的各種條件中斷中斷任務(wù)一覽表v 中斷任務(wù)

22、程序的編程方法是在工中斷任務(wù)程序的編程方法是在工程工作區(qū)窗口中右擊程工作區(qū)窗口中右擊“新程序新程序1”,在彈出的上下文菜單中選擇在彈出的上下文菜單中選擇“屬屬性性”項(xiàng)。項(xiàng)。v 在彈出的程序?qū)傩詫?duì)話框中設(shè)定在彈出的程序?qū)傩詫?duì)話框中設(shè)定“任務(wù)類型任務(wù)類型”,設(shè)定中斷任務(wù),設(shè)定中斷任務(wù)00的示例。的示例。 設(shè)置新程序2屬性中斷任務(wù)設(shè)置中斷任務(wù)執(zhí)行的優(yōu)先順序,在輸入中斷(直接模式中斷任務(wù)執(zhí)行的優(yōu)先順序,在輸入中斷(直接模式/ /計(jì)數(shù)器模式)、高計(jì)數(shù)器模式)、高速計(jì)數(shù)器中斷、定時(shí)中斷和外部中斷中,都是相同的順序。速計(jì)數(shù)器中斷、定時(shí)中斷和外部中斷中,都是相同的順序。 8.3.2 8.3.2 直接模式的輸入

23、中斷直接模式的輸入中斷 v 直接模式下輸入中斷使用的輸入點(diǎn)編號(hào)根據(jù)直接模式下輸入中斷使用的輸入點(diǎn)編號(hào)根據(jù)CPU單元的不同而異。表列單元的不同而異。表列出了出了X/XA型型CP1H的中斷輸入點(diǎn)分配。的中斷輸入點(diǎn)分配。輸入點(diǎn)輸入動(dòng)作設(shè)定任務(wù)號(hào)通道編號(hào)(位)通用輸入輸入中斷0CH00通用輸入0輸入中斷0中斷任務(wù)14001通用輸入1輸入中斷1中斷任務(wù)14102通用輸入2輸入中斷2中斷任務(wù)14203通用輸入3輸入中斷3中斷任務(wù)1430411通用輸入4111CH00通用輸入12輸入中斷4中斷任務(wù)14401通用輸入13輸入中斷5中斷任務(wù)14502通用輸入14輸入中斷6中斷任務(wù)14603通用輸入15輸入中斷7

24、中斷任務(wù)1470411通用輸入1623v 在工程工作區(qū)中點(diǎn)擊在工程工作區(qū)中點(diǎn)擊“設(shè)置設(shè)置”,在彈出的窗口中選擇,在彈出的窗口中選擇“內(nèi)置輸入設(shè)置內(nèi)置輸入設(shè)置”,將用作中斷輸入使用的輸入點(diǎn)用途設(shè)定為將用作中斷輸入使用的輸入點(diǎn)用途設(shè)定為“中斷中斷”。IN0IN7對(duì)應(yīng)輸入中對(duì)應(yīng)輸入中斷斷07,這些點(diǎn)作為通用輸入使用時(shí),保持,這些點(diǎn)作為通用輸入使用時(shí),保持“普通普通”設(shè)定。設(shè)定。PLC必須斷電必須斷電再上電,設(shè)定才能生效。再上電,設(shè)定才能生效。輸入中斷的設(shè)定v 在程序中利用在程序中利用MSKS 指令進(jìn)行設(shè)置,兩次使用指令進(jìn)行設(shè)置,兩次使用MSKS指令,第一次指定輸入指令,第一次指定輸入中斷在上升沿還是

25、下降沿響應(yīng),第二次指定輸入中斷允許還是禁止。中斷在上升沿還是下降沿響應(yīng),第二次指定輸入中斷允許還是禁止。輸入中斷號(hào)中斷任務(wù)號(hào)設(shè)定輸入的上升沿/下降沿設(shè)定輸入中斷的允許/禁止N輸入中斷號(hào)S執(zhí)行條件N輸入中斷號(hào) S允許/禁止設(shè)定#0輸入中斷140110(或10)#0000上升沿指定#0001下降沿指定100(或6)#0000中斷允許#0001中斷允許#1輸入中斷141111(或11)101(或7)#2輸入中斷142112(或12)102(或8)#3輸入中斷143113(或13)103(或9)#4輸入中斷144114104#5輸入中斷145115105#6輸入中斷146116106#7輸入中斷147

26、117107MSKS指令的操作數(shù)v 當(dāng)輸入點(diǎn)當(dāng)輸入點(diǎn)0.00由由OFFON 時(shí),直接模時(shí),直接模式下執(zhí)行中斷任務(wù)式下執(zhí)行中斷任務(wù)140,設(shè)定步驟:,設(shè)定步驟:v 將輸入設(shè)備連接到輸入點(diǎn)將輸入設(shè)備連接到輸入點(diǎn)0.00。v 通過(guò)通過(guò)CX-P用用PLC設(shè)定將輸入設(shè)定將輸入0.00設(shè)定設(shè)定為中斷輸入點(diǎn)。為中斷輸入點(diǎn)。v 通過(guò)通過(guò)CX-P編寫中斷處理程序,并分配編寫中斷處理程序,并分配到中斷任務(wù)到中斷任務(wù)140。v 通過(guò)通過(guò)CX-P利用利用MSKS 指令編程,如圖指令編程,如圖所示。所示。 v 當(dāng)執(zhí)行條件當(dāng)執(zhí)行條件W0.00由由OFFON 時(shí),執(zhí)行時(shí),執(zhí)行MSKS 指令,此后,如輸入指令,此后,如輸入0

27、.00 從從OFF 向向ON 變化(上升沿),則將執(zhí)行中的循環(huán)任務(wù)暫時(shí)中變化(上升沿),則將執(zhí)行中的循環(huán)任務(wù)暫時(shí)中斷,開(kāi)始執(zhí)行中斷任務(wù)斷,開(kāi)始執(zhí)行中斷任務(wù)140。當(dāng)中斷任務(wù)執(zhí)行完畢,則返回中斷前的。當(dāng)中斷任務(wù)執(zhí)行完畢,則返回中斷前的循環(huán)任務(wù)程序,從斷點(diǎn)處繼續(xù)執(zhí)行。循環(huán)任務(wù)程序,從斷點(diǎn)處繼續(xù)執(zhí)行。 8.3.3 8.3.3 計(jì)數(shù)器模式的輸入中斷計(jì)數(shù)器模式的輸入中斷v 計(jì)數(shù)器模式的輸入中斷與直接模式的輸入中斷使用同樣的輸入點(diǎn),計(jì)數(shù)器模式的輸入中斷與直接模式的輸入中斷使用同樣的輸入點(diǎn),對(duì)輸入信號(hào)的上升沿或下降沿進(jìn)行計(jì)數(shù),可選擇加法或減法模式,對(duì)輸入信號(hào)的上升沿或下降沿進(jìn)行計(jì)數(shù),可選擇加法或減法模式,計(jì)

28、數(shù)頻率可達(dá)計(jì)數(shù)頻率可達(dá)5KHz,計(jì)數(shù)器當(dāng)前值計(jì)數(shù)結(jié)束時(shí)啟動(dòng)相應(yīng)的中斷任務(wù)。,計(jì)數(shù)器當(dāng)前值計(jì)數(shù)結(jié)束時(shí)啟動(dòng)相應(yīng)的中斷任務(wù)。輸入點(diǎn)與中斷任務(wù)號(hào)及計(jì)數(shù)器區(qū)域的關(guān)系見(jiàn)表。輸入點(diǎn)與中斷任務(wù)號(hào)及計(jì)數(shù)器區(qū)域的關(guān)系見(jiàn)表。輸入點(diǎn)功 能計(jì)數(shù)器X/XA型Y型輸入中斷號(hào)中斷任務(wù)No.設(shè)定值(0000FFFFHex)當(dāng)前值0.000.00#0輸入中斷140A532CHA536CH0.010.01#1輸入中斷141A533CHA537CH0.02#2輸入中斷142(Y型不可使用)A534CHA538CH0.03#3輸入中斷143(Y型不可使用)A535CHA539CH1.001.00#4輸入中斷144A544CHA548C

29、H1.011.01#5輸入中斷145A545CHA549CH1.021.03#6輸入中斷146A546CHA550CH1.031.03#7輸入中斷147A547CHA551CHv PLC設(shè)定與直接模式的輸入中斷方法相同,設(shè)定與直接模式的輸入中斷方法相同,MSKS指令的操作數(shù)見(jiàn)表指令的操作數(shù)見(jiàn)表輸入點(diǎn)中斷任務(wù)號(hào)設(shè)定輸入的上升沿/下降沿設(shè)定輸入中斷的允許/禁止N輸入中斷號(hào)S執(zhí)行條件N輸入中斷號(hào)S允許/執(zhí)行條件#0輸入中斷140110(或10)#0000上升沿指定#0001下降沿指定100(或6)#0001中斷禁止#0002中斷允許,計(jì)數(shù)器模式,啟動(dòng)加法計(jì)數(shù)#0003中斷允許,計(jì)數(shù)器模式,啟動(dòng)減法計(jì)

30、數(shù)#1輸入中斷141111(或11)100(或6)#2輸入中斷(1)142112(或12)100(或6)#3輸入中斷(1)143113(或13)100(或6)#4輸入中斷144114104#5輸入中斷145115105#6輸入中斷146116106#7輸入中斷147117107v對(duì)輸入對(duì)輸入0.01 的上升沿進(jìn)行的上升沿進(jìn)行200 次計(jì)數(shù)(計(jì)數(shù)方式設(shè)為加法模式),執(zhí)行次計(jì)數(shù)(計(jì)數(shù)方式設(shè)為加法模式),執(zhí)行中斷任務(wù)中斷任務(wù)141,設(shè)定步驟如下:,設(shè)定步驟如下:將輸入設(shè)備連接到輸入點(diǎn)將輸入設(shè)備連接到輸入點(diǎn)0.01。通過(guò)通過(guò)CX-P用用PLC設(shè)定將輸入設(shè)定將輸入0.01設(shè)定為中斷輸入點(diǎn)。設(shè)定為中斷輸入

31、點(diǎn)。通過(guò)通過(guò)CX-P編寫中斷處理程序,并分配到中斷任務(wù)編寫中斷處理程序,并分配到中斷任務(wù)141。通過(guò)通過(guò)CX-P將中斷計(jì)數(shù)器的設(shè)定值將中斷計(jì)數(shù)器的設(shè)定值00C8H(200)設(shè)定到)設(shè)定到A533CH。通過(guò)通過(guò)CX-P利用利用MSKS 指令編程,。指令編程,。 v 如圖所示,當(dāng)執(zhí)行條件如圖所示,當(dāng)執(zhí)行條件W0.00由由OFFON 時(shí),執(zhí)行時(shí),執(zhí)行MSKS 指令,指令,可進(jìn)行計(jì)數(shù)模式輸入中斷。如輸入點(diǎn)可進(jìn)行計(jì)數(shù)模式輸入中斷。如輸入點(diǎn)0.01通斷通斷200次,則將執(zhí)行次,則將執(zhí)行中的循環(huán)任務(wù)暫時(shí)中斷,開(kāi)始執(zhí)行中斷任務(wù)中的循環(huán)任務(wù)暫時(shí)中斷,開(kāi)始執(zhí)行中斷任務(wù)141。當(dāng)中斷任務(wù)執(zhí)。當(dāng)中斷任務(wù)執(zhí)行完畢,則返

32、回中斷前的循環(huán)任務(wù)程序,從斷點(diǎn)處繼續(xù)執(zhí)行。行完畢,則返回中斷前的循環(huán)任務(wù)程序,從斷點(diǎn)處繼續(xù)執(zhí)行。此時(shí),中斷計(jì)數(shù)器的當(dāng)前值清此時(shí),中斷計(jì)數(shù)器的當(dāng)前值清0,對(duì),對(duì)0.01從從0開(kāi)始重新計(jì)數(shù),重復(fù)開(kāi)始重新計(jì)數(shù),重復(fù)上述過(guò)程。上述過(guò)程。 8.3.4 8.3.4 間隔定時(shí)中斷間隔定時(shí)中斷v 在工程工作區(qū)中雙擊在工程工作區(qū)中雙擊“設(shè)置設(shè)置”,在彈出的窗口中選擇,在彈出的窗口中選擇“時(shí)序時(shí)序”,設(shè)定,設(shè)定“定時(shí)中斷間隔定時(shí)中斷間隔”的單位時(shí)間,可設(shè)定的單位時(shí)間為的單位時(shí)間,可設(shè)定的單位時(shí)間為10ms/1ms/0.1ms,該單位時(shí)間乘以通過(guò)該單位時(shí)間乘以通過(guò)MSKS 指令設(shè)定的值,即為間隔定時(shí)中斷任務(wù)的循指令

33、設(shè)定的值,即為間隔定時(shí)中斷任務(wù)的循環(huán)執(zhí)行周期。環(huán)執(zhí)行周期。PLC必須斷電再上電,設(shè)定才能生效。必須斷電再上電,設(shè)定才能生效。 v MSKS指令的操作數(shù)見(jiàn)表指令的操作數(shù)見(jiàn)表8.8。 間隔定時(shí)中斷時(shí)執(zhí)行中斷任務(wù)02,其設(shè)定方法是在工程工作區(qū)中,右擊“新程序1”選擇“屬性”,在彈出的窗口中選擇“中斷任務(wù)02” 。 MSKS指令的操作數(shù)中斷時(shí)間間隔(周期)N間隔定時(shí)中斷號(hào)S中斷時(shí)間PLC系統(tǒng)中的單位時(shí)間設(shè)定中斷時(shí)間間隔間隔定時(shí)中斷0(中斷任務(wù)2)14:指定復(fù)位開(kāi)始4:指定非復(fù)位開(kāi)始#0000#270F(09999)10ms1099990ms1ms19999ms0.1ms0.5999.9msMSKS指令

34、的操作數(shù)v 按照按照30.5ms的時(shí)間執(zhí)行間隔定時(shí)中斷的時(shí)間執(zhí)行間隔定時(shí)中斷2,設(shè)定步驟如下:,設(shè)定步驟如下:(1)通過(guò))通過(guò)CX-P用用PLC系統(tǒng)設(shè)定,將定時(shí)中斷單位時(shí)間設(shè)定設(shè)定為系統(tǒng)設(shè)定,將定時(shí)中斷單位時(shí)間設(shè)定設(shè)定為0.1ms(2)通過(guò))通過(guò)CX-P編寫間隔定時(shí)中斷任務(wù)編寫間隔定時(shí)中斷任務(wù)02的處理程序。的處理程序。(3)通過(guò))通過(guò)CX-P利用利用MSKS 指令編程,如圖所示。指令編程,如圖所示。v 如圖所示,當(dāng)執(zhí)行條件如圖所示,當(dāng)執(zhí)行條件W0.00由由OFFON 時(shí),執(zhí)行時(shí),執(zhí)行MASKS 指指令,可進(jìn)行間隔定時(shí)中斷,將定時(shí)器復(fù)位后開(kāi)始計(jì)時(shí)。每隔令,可進(jìn)行間隔定時(shí)中斷,將定時(shí)器復(fù)位后開(kāi)始

35、計(jì)時(shí)。每隔30.5ms 執(zhí)行一次定時(shí)中斷任務(wù)執(zhí)行一次定時(shí)中斷任務(wù)02。8.3.5 8.3.5 高速計(jì)數(shù)器中斷高速計(jì)數(shù)器中斷 v 在工程工作區(qū)中雙擊在工程工作區(qū)中雙擊“設(shè)置設(shè)置”,在彈出的窗口中選擇,在彈出的窗口中選擇“內(nèi)置輸入設(shè)置內(nèi)置輸入設(shè)置”,選中所使用的高速計(jì)數(shù)器,設(shè)置相關(guān)的選項(xiàng)。如圖所示。選中所使用的高速計(jì)數(shù)器,設(shè)置相關(guān)的選項(xiàng)。如圖所示。PLC必須斷電必須斷電再上電,設(shè)定才能生效。再上電,設(shè)定才能生效。 v 高速計(jì)數(shù)器使用的輸入端子隨高速計(jì)數(shù)器使用的輸入端子隨PLC單元類型不同而異。表列出單元類型不同而異。表列出了了X/XA型型CP1H的輸入端子分配情況。的輸入端子分配情況。 輸入點(diǎn)通過(guò)

36、PLC系統(tǒng)設(shè)定將#0、#1、#2、#3高速計(jì)數(shù)器設(shè)定為“使用”時(shí)的功能通道編號(hào)(位)0CH0001#2高速計(jì)數(shù)器(Z相/復(fù)位)02#1高速計(jì)數(shù)器(Z相/復(fù)位)03#0高速計(jì)數(shù)器(Z相/復(fù)位)04#2高速計(jì)數(shù)器(A相/加法/計(jì)數(shù)輸入)05#2高速計(jì)數(shù)器(B相/減法/方向輸入)06#1高速計(jì)數(shù)器(A相/加法/計(jì)數(shù)輸入)07#1高速計(jì)數(shù)器(B相/減法/方向輸入)08#0高速計(jì)數(shù)器(A相/加法/計(jì)數(shù)輸入)09#0高速計(jì)數(shù)器(B相/減法/方向輸入)10#3高速計(jì)數(shù)器(A相/加法/計(jì)數(shù)輸入)11#3高速計(jì)數(shù)器(B相/減法/方向輸入)1CH00#3高速計(jì)數(shù)器(Z相/復(fù)位)0111高速計(jì)數(shù)器輸入端子分配 高速計(jì)數(shù)器高速計(jì)數(shù)器0在線性模式下使用,當(dāng)前值達(dá)到在線性模式下使用,當(dāng)前值達(dá)到30000(00007530H)時(shí),使中斷任)時(shí),使中斷任務(wù)務(wù)10 啟動(dòng)。設(shè)定步驟如下:?jiǎn)?dòng)。設(shè)定步驟如下:(1)在)在PLC 系統(tǒng)設(shè)定的系統(tǒng)設(shè)定的“內(nèi)置輸入設(shè)置內(nèi)置輸入設(shè)置”中對(duì)高速計(jì)數(shù)器中對(duì)高速計(jì)數(shù)器0進(jìn)行設(shè)定進(jìn)行設(shè)定v 高速計(jì)數(shù)器高速計(jì)數(shù)器0:使用:使用v 計(jì)數(shù)模式:線性模式計(jì)數(shù)模式:線性模式v 循環(huán)最大計(jì)數(shù):無(wú)循環(huán)最大計(jì)數(shù):無(wú)v 復(fù)位:軟件復(fù)位復(fù)位

溫馨提示

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