第六章S7-200PLC功能指令二_第1頁
第六章S7-200PLC功能指令二_第2頁
第六章S7-200PLC功能指令二_第3頁
第六章S7-200PLC功能指令二_第4頁
第六章S7-200PLC功能指令二_第5頁
已閱讀5頁,還剩156頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第六章第六章S7-200PLCS7-200PLC功能指令功能指令4 4:子程序及應(yīng)用子程序及應(yīng)用5 5:中斷程序及應(yīng)用中斷程序及應(yīng)用6 6:高速計數(shù)器功能及應(yīng)用高速計數(shù)器功能及應(yīng)用7 7:高速脈沖輸出功能及應(yīng)用高速脈沖輸出功能及應(yīng)用第四節(jié)第四節(jié) 子程序及應(yīng)用子程序及應(yīng)用一、子程序簡介一、子程序簡介 子程序可以對程序子程序可以對程序 進(jìn)行分塊,使用子程序?qū)⑦M(jìn)行分塊,使用子程序?qū)⒊绦蚍殖扇菀坠芾淼男K,使程序結(jié)構(gòu)簡單清晰,程序分成容易管理的小塊,使程序結(jié)構(gòu)簡單清晰,易于查錯和維護(hù)。易于查錯和維護(hù)。 子程序常用于需要多次反復(fù)執(zhí)行相同任務(wù)的子程序常用于需要多次反復(fù)執(zhí)行相同任務(wù)的地方,只需要寫一次子程序

2、,別的程序在需要的時地方,只需要寫一次子程序,別的程序在需要的時候調(diào)用它,而無需重寫該程序。候調(diào)用它,而無需重寫該程序。 子程序的調(diào)用是有條件的,未調(diào)用它時不會子程序的調(diào)用是有條件的,未調(diào)用它時不會執(zhí)行子程序中的指令,因此使用子程序可以減少執(zhí)行子程序中的指令,因此使用子程序可以減少掃描時間。掃描時間。 S7-200 CPU的控制程序由主程序、子程序和的控制程序由主程序、子程序和中斷程序組成。中斷程序組成。STEP7-Micro/WIN在程序編輯器在程序編輯器窗口里為每個窗口里為每個POU(程序組織單元)提供一個獨(程序組織單元)提供一個獨立的頁。主程序總是第立的頁。主程序總是第1頁,后面是子程

3、序和中斷頁,后面是子程序和中斷程序。程序。 各個程序在編輯器窗口里被分開,編譯時在各個程序在編輯器窗口里被分開,編譯時在程序結(jié)束的地方自動加上無條件結(jié)束程序結(jié)束的地方自動加上無條件結(jié)束/返回指令,返回指令,用戶程序可使用有條件結(jié)束用戶程序可使用有條件結(jié)束/返回指令。返回指令。二、局部變量表二、局部變量表1、局部變量與全局變量局部變量與全局變量 在在SIMATIC符號表或符號表或IEC的全局變量表中定義的的全局變量表中定義的變量為全局變量。程序中的每個變量為全局變量。程序中的每個POU(Program Organizational Unit,程序組織單元)均有自己的由,程序組織單元)均有自己的由

4、64B L存儲器組成的局部變量表。它們用來定義有范存儲器組成的局部變量表。它們用來定義有范圍限制的變量,局部變量只在它被創(chuàng)建的圍限制的變量,局部變量只在它被創(chuàng)建的POU中有效。中有效。與之相反,全局符號在各與之相反,全局符號在各POU中均有效,只能在符號中均有效,只能在符號表表/全局變量表中定義。全局符號與局部變量名稱相同全局變量表中定義。全局符號與局部變量名稱相同時,在定義局部變量的時,在定義局部變量的POU中,該局部變量的定義優(yōu)中,該局部變量的定義優(yōu)先,該全局定義則在其它先,該全局定義則在其它POU中使用。中使用。 局部變量優(yōu)點:局部變量優(yōu)點: 在子程序中只用局部變量,不用絕對地址或全在子

5、程序中只用局部變量,不用絕對地址或全局符號,子程序可以移植到別的項目去。局符號,子程序可以移植到別的項目去。 如果使用臨時變量(如果使用臨時變量(TEMP),同一片物理存),同一片物理存儲器可以在不同的程序中重復(fù)使用。儲器可以在不同的程序中重復(fù)使用。 局部變量還用來在子程序和調(diào)用它的程序之間傳局部變量還用來在子程序和調(diào)用它的程序之間傳遞輸入?yún)?shù)和輸出參數(shù)。遞輸入?yún)?shù)和輸出參數(shù)。2、局部變量的類型局部變量的類型 局部變量表中的變量類型區(qū)定義的變量有:局部變量表中的變量類型區(qū)定義的變量有: IN:傳入子程序參數(shù),由調(diào)用它的:傳入子程序參數(shù),由調(diào)用它的POU提供的提供的輸入?yún)?shù)。輸入?yún)?shù)。 OUT:

6、傳出子程序參數(shù),將從子程序來的結(jié)果:傳出子程序參數(shù),將從子程序來的結(jié)果值返回到指定參數(shù)的位置。值返回到指定參數(shù)的位置。 IN/OUT:傳入:傳入/傳出子程序參數(shù)。傳出子程序參數(shù)。 TEMP:暫時變量,只能在子程序內(nèi)部暫時存:暫時變量,只能在子程序內(nèi)部暫時存儲數(shù)據(jù)。不能用來傳遞參數(shù)。儲數(shù)據(jù)。不能用來傳遞參數(shù)。 注意:注意: 只有在執(zhí)行該只有在執(zhí)行該POU時,定義的臨時變量才被使時,定義的臨時變量才被使用,用,POU執(zhí)行完后,不再使用臨時變量的數(shù)值。在主執(zhí)行完后,不再使用臨時變量的數(shù)值。在主程序或中斷程序中,局部變量表只包含程序或中斷程序中,局部變量表只包含TEMP變量。變量。3、局部變量的賦值局

7、部變量的賦值 在局部變量表中賦值時,只需指定局部變量的在局部變量表中賦值時,只需指定局部變量的類型(類型(TEMP、IN、IN_OUT或或OUT)和數(shù)據(jù)類型,)和數(shù)據(jù)類型,不用指定存儲器地址,程序編輯器按照子程序指令不用指定存儲器地址,程序編輯器按照子程序指令的調(diào)用順序,將參數(shù)值分配給局部變量存儲器,起的調(diào)用順序,將參數(shù)值分配給局部變量存儲器,起始地址是始地址是L0.0;8個連續(xù)位的參數(shù)值分配一個字節(jié),個連續(xù)位的參數(shù)值分配一個字節(jié),從從LX.0到到LX.7。 4、在、在局部變量表中增加新的變量局部變量表中增加新的變量 對于主程序與中斷程序,局部變量表顯示一組對于主程序與中斷程序,局部變量表顯示

8、一組已被預(yù)先定義為已被預(yù)先定義為TEMP變量的行。要在表中增加行,變量的行。要在表中增加行,只需用右鍵單擊表中的某一行,在彈出的菜單中執(zhí)只需用右鍵單擊表中的某一行,在彈出的菜單中執(zhí)行行“插入插入”“行行”命令,在所選行的上部插入新的行。命令,在所選行的上部插入新的行。執(zhí)行菜單命令執(zhí)行菜單命令“插入插入”“下一行下一行” 在所選行的下部在所選行的下部插入新的行。插入新的行。 對于子程序,局部變量表顯示數(shù)據(jù)類型被預(yù)先對于子程序,局部變量表顯示數(shù)據(jù)類型被預(yù)先定義為定義為IN、IN_OUT、OUT和和TEMP的一系列行,的一系列行,不能改變它們的順序。如果要增加新的局部變量,不能改變它們的順序。如果要

9、增加新的局部變量,必須用鼠標(biāo)右鍵單擊已有的行,并用彈出菜單在所必須用鼠標(biāo)右鍵單擊已有的行,并用彈出菜單在所擊行的上面或下面插入相同類型的另一局部變量。擊行的上面或下面插入相同類型的另一局部變量。 5、局部變量數(shù)據(jù)類型檢查局部變量數(shù)據(jù)類型檢查 局部變量作為參數(shù)向子程序傳遞時,在該子局部變量作為參數(shù)向子程序傳遞時,在該子程序的局部變量表中指定的數(shù)據(jù)類型必須與調(diào)用它程序的局部變量表中指定的數(shù)據(jù)類型必須與調(diào)用它的的POU中的數(shù)據(jù)類型值匹配。中的數(shù)據(jù)類型值匹配。 例如:在主程序例如:在主程序OB1中調(diào)用子程序中調(diào)用子程序SBR0,使用名,使用名為為INPUT1的全局符號作為子程序的輸入?yún)?shù)。在的全局符號

10、作為子程序的輸入?yún)?shù)。在SBR0的局部變量表中,已經(jīng)定義了一個名為的局部變量表中,已經(jīng)定義了一個名為FIRST的局部變量作為該輸入?yún)?shù)。當(dāng)?shù)木植孔兞孔鳛樵撦斎雲(yún)?shù)。當(dāng)OB1調(diào)用調(diào)用SBR0時,時,INPUT1的數(shù)值被傳入的數(shù)值被傳入FIRST,INPUT1和和FIRST的數(shù)據(jù)類型必須完全匹配。的數(shù)據(jù)類型必須完全匹配。三、建立子程序三、建立子程序在在“編輯編輯”菜單中執(zhí)行命令菜單中執(zhí)行命令“插入插入”“子程序子程序”;在程序編輯器視窗中點擊鼠標(biāo)右鍵,從彈出的菜單中在程序編輯器視窗中點擊鼠標(biāo)右鍵,從彈出的菜單中執(zhí)行命令執(zhí)行命令“插入插入”“子程序子程序”; 新建的子程序,默認(rèn)的程序名是新建的子程序

11、,默認(rèn)的程序名是SBR_n,編號,編號n從從0(063)開始按遞增順序生成。開始按遞增順序生成。用鼠標(biāo)右鍵點用鼠標(biāo)右鍵點擊指令樹中的子程序的圖標(biāo),在彈出的菜單中選擇擊指令樹中的子程序的圖標(biāo),在彈出的菜單中選擇“重 新 命 名重 新 命 名 ”, 可 以 修 改 它 們 的 名 稱 。, 可 以 修 改 它 們 的 名 稱 。 注 意 :注 意 :CPU226的項目中最多可以創(chuàng)建的項目中最多可以創(chuàng)建128個子程序個子程序。四、子程序的調(diào)用(四、子程序的調(diào)用(CALLCALL指令)指令) 可以帶參數(shù)或不帶參數(shù)調(diào)用子程序。每個子可以帶參數(shù)或不帶參數(shù)調(diào)用子程序。每個子程序必須以無條件返回(程序必須以無

12、條件返回(RET)指令作結(jié)束,)指令作結(jié)束,STEP7-Micio/WIN編程軟件為每個子程序自動加編程軟件為每個子程序自動加入無條件返回(入無條件返回(RET)指令。有條件子程序返回)指令。有條件子程序返回(CRET)指令,在控制條件有效時,終止子程)指令,在控制條件有效時,終止子程序(序(n)。子程序執(zhí)行完畢,控制程序回到主程序)。子程序執(zhí)行完畢,控制程序回到主程序中子程序調(diào)用(中子程序調(diào)用(CALL)指令的下一條指令。)指令的下一條指令。 主程序可以用子程序調(diào)用(主程序可以用子程序調(diào)用(CALL)指令來)指令來調(diào)用一個子程序。子程序調(diào)用(調(diào)用一個子程序。子程序調(diào)用(CALL)指令把)指令

13、把程序控制權(quán)交給子程序(程序控制權(quán)交給子程序(n)。子程序結(jié)束后,)。子程序結(jié)束后,必須返回主程序。必須返回主程序。子程序被調(diào)用時,系統(tǒng)會保存當(dāng)前的邏輯堆棧。子程序被調(diào)用時,系統(tǒng)會保存當(dāng)前的邏輯堆棧。保存后再置棧頂值為保存后再置棧頂值為1,堆棧的其他值為零,把控制,堆棧的其他值為零,把控制權(quán)交給被調(diào)用的子程序。子程序執(zhí)行完畢,通過返權(quán)交給被調(diào)用的子程序。子程序執(zhí)行完畢,通過返回指令自動恢復(fù)邏輯堆棧原調(diào)用點的值,把控制權(quán)回指令自動恢復(fù)邏輯堆棧原調(diào)用點的值,把控制權(quán)交還給調(diào)用程序。交還給調(diào)用程序。因為累加器可在調(diào)用程序和被調(diào)用程序之間自由因為累加器可在調(diào)用程序和被調(diào)用程序之間自由傳遞數(shù)據(jù),所以累加

14、器的值在子程序調(diào)用開始時不傳遞數(shù)據(jù),所以累加器的值在子程序調(diào)用開始時不需要另外保存,在子程序調(diào)用結(jié)束時也不用恢復(fù)。需要另外保存,在子程序調(diào)用結(jié)束時也不用恢復(fù)。說明:說明:在中斷程序、子程序中也可調(diào)用子程序;主程序在中斷程序、子程序中也可調(diào)用子程序;主程序中可以嵌套調(diào)用子程序,嵌套深度為中可以嵌套調(diào)用子程序,嵌套深度為8層。中斷程層。中斷程序中,不能嵌套調(diào)用子程序。序中,不能嵌套調(diào)用子程序。 五、帶參數(shù)子程序的調(diào)用五、帶參數(shù)子程序的調(diào)用1、子程序參數(shù)、子程序參數(shù) 由不超過由不超過23個字符的字母和數(shù)字組成,但第一個字符的字母和數(shù)字組成,但第一個字符必須是字母。個字符必須是字母。2、變量名、變量名

15、 在子程序帶參數(shù)調(diào)用時可以使用在子程序帶參數(shù)調(diào)用時可以使用4種變量類型。種變量類型。3、變量類型、變量類型ININ類型(傳入子程序)類型(傳入子程序)IN/OUTIN/OUT類型(傳入傳出子程序)類型(傳入傳出子程序)OUTOUT類型(傳出子程序)類型(傳出子程序)TEMPTEMP類型(暫時型)類型(暫時型) 子程序在帶參數(shù)調(diào)用時,最多可以帶子程序在帶參數(shù)調(diào)用時,最多可以帶16個參個參數(shù),每個參數(shù)包含變量名、變量類型和數(shù)據(jù)類型。數(shù),每個參數(shù)包含變量名、變量類型和數(shù)據(jù)類型。這些參數(shù)在子程序的局部變量表中進(jìn)行定義。這些參數(shù)在子程序的局部變量表中進(jìn)行定義。4、使用局部變量表、使用局部變量表 當(dāng)給子程

16、序傳遞數(shù)據(jù)時,這些參數(shù)被存放在子當(dāng)給子程序傳遞數(shù)據(jù)時,這些參數(shù)被存放在子程序的局部變量存儲器中,當(dāng)調(diào)用子程序時,輸入程序的局部變量存儲器中,當(dāng)調(diào)用子程序時,輸入?yún)?shù)被拷貝到子程序的局部變量存儲器中,當(dāng)子程參數(shù)被拷貝到子程序的局部變量存儲器中,當(dāng)子程序完成時,從局部變量存儲器拷貝輸出參數(shù)到指定序完成時,從局部變量存儲器拷貝輸出參數(shù)到指定的輸出參數(shù)地址。的輸出參數(shù)地址。 局部變量表使用局部變量存儲器局部變量表使用局部變量存儲器L L,CPUCPU在執(zhí)行在執(zhí)行子程序時,自動分配給每個子程序子程序時,自動分配給每個子程序6464個局部變量存?zhèn)€局部變量存儲器單元,在進(jìn)行子程序參數(shù)調(diào)用時,將調(diào)用參數(shù)儲器單

17、元,在進(jìn)行子程序參數(shù)調(diào)用時,將調(diào)用參數(shù)按照變量類型按照變量類型ININ,IN/OUTIN/OUT,0UT0UT和和TEMPTEMP的順序依次的順序依次存入局部變量表中。存入局部變量表中。5、將參數(shù)值指定給子程序中的局部內(nèi)存時應(yīng)、將參數(shù)值指定給子程序中的局部內(nèi)存時應(yīng)遵守下列規(guī)則:遵守下列規(guī)則: 字節(jié)、字和雙字?jǐn)?shù)值被指定給局部內(nèi)存,位于字節(jié)、字和雙字?jǐn)?shù)值被指定給局部內(nèi)存,位于字節(jié)邊界(字節(jié)邊界(LBx、LWx或或LDx)位置。在帶參數(shù)的)位置。在帶參數(shù)的“調(diào)調(diào)用子程序用子程序”指令中,參數(shù)必須與子程序局部變量表中定指令中,參數(shù)必須與子程序局部變量表中定義的變量完全匹配。參數(shù)順序必須以輸入?yún)?shù)開始,

18、義的變量完全匹配。參數(shù)順序必須以輸入?yún)?shù)開始,其次是輸入輸出參數(shù),然后是輸出參數(shù)。其次是輸入輸出參數(shù),然后是輸出參數(shù)。 一至八個連續(xù)位參數(shù)值被指定給從一至八個連續(xù)位參數(shù)值被指定給從Lx.0開始開始持續(xù)至持續(xù)至Lx.7的單字節(jié)。的單字節(jié)。 參數(shù)值指定給局部內(nèi)存的順序由參數(shù)值指定給局部內(nèi)存的順序由CALL指定,指定,參數(shù)從參數(shù)從L0.0開始。開始。例:帶參數(shù)的子程序調(diào)用如下所示。例:帶參數(shù)的子程序調(diào)用如下所示。注釋:注釋:Micro/WIN保留保留L內(nèi)存的最上方的內(nèi)存的最上方的4個字節(jié)個字節(jié)(LB60-LB63),用于調(diào)用參數(shù)數(shù)據(jù)。),用于調(diào)用參數(shù)數(shù)據(jù)。/ L內(nèi)存被用于保存布爾輸入?yún)?shù)狀態(tài),內(nèi)存被

19、用于保存布爾輸入?yún)?shù)狀態(tài),/ 此類參數(shù)在此類參數(shù)在LAD和和FBD中被顯示為使能位輸入。中被顯示為使能位輸入。/ 從而允許本網(wǎng)絡(luò)在從而允許本網(wǎng)絡(luò)在LAD、FBD和和STL編輯器中顯示。編輯器中顯示。 名為名為“模擬量計算模擬量計算”的子程序如下圖所示,在該子的子程序如下圖所示,在該子程序的局部變量表中,定義了名為程序的局部變量表中,定義了名為“轉(zhuǎn)換值轉(zhuǎn)換值”、“系數(shù)系數(shù)1 1”和和“系數(shù)系數(shù)”的輸入(的輸入(ININ)變量,名為)變量,名為“模擬值模擬值”的輸?shù)妮敵觯ǔ觯∣UTOUT)變量,和名為)變量,和名為“暫存暫存”的臨時(的臨時(TEMPTEMP)變量。)變量。局部變量表最左邊的一列是

20、每個參數(shù)在局部存儲器(局部變量表最左邊的一列是每個參數(shù)在局部存儲器(L L)中的地址。中的地址。 # #表示局部變量,軟件自動添加表示局部變量,軟件自動添加。如果用語句表編程,子程序調(diào)用指令的格式為:如果用語句表編程,子程序調(diào)用指令的格式為: CALL 子程序號,參數(shù)子程序號,參數(shù)1,參數(shù),參數(shù)2,參數(shù)參數(shù)n, n=116。上梯形圖對應(yīng)的語句表程序為:上梯形圖對應(yīng)的語句表程序為:LD I0.1CALL 模擬量計算,模擬量計算,AIW2,VW20,+2356,VD40六、子程序中定時器的使用六、子程序中定時器的使用 調(diào)用子程序時,子程序中的定時器正常計時;調(diào)用子程序時,子程序中的定時器正常計時;

21、停止調(diào)用子程序時,線圈在子程序內(nèi)的位元件的停止調(diào)用子程序時,線圈在子程序內(nèi)的位元件的ON/OFF狀態(tài)保持不變。如果在停止調(diào)用時子程序狀態(tài)保持不變。如果在停止調(diào)用時子程序中的定時器正在定時,中的定時器正在定時,100ms定時器將停止定時,定時器將停止定時,當(dāng)前值保持不變,重新調(diào)用時繼續(xù)定時;但當(dāng)前值保持不變,重新調(diào)用時繼續(xù)定時;但1ms和和10ms定時器將繼續(xù)定時,定時時間到時,它們的定時器將繼續(xù)定時,定時時間到時,它們的定時器位變?yōu)槎〞r器位變?yōu)?狀態(tài),且可以在子程序之外起作用。狀態(tài),且可以在子程序之外起作用。七、子程序應(yīng)用舉例七、子程序應(yīng)用舉例例例1:用兩個子程序分別控制兩臺電動機的啟停,:用

22、兩個子程序分別控制兩臺電動機的啟停,主程序中調(diào)用子程序?qū)崿F(xiàn)控制。主程序中調(diào)用子程序?qū)崿F(xiàn)控制。OB1SBR0SBR1方案一:無參數(shù)傳遞方案一:無參數(shù)傳遞OB1方案二:帶參數(shù)傳遞方案二:帶參數(shù)傳遞LD I0.0= L60.0LD I0.1= L63.7LD I0.2= L63.6LD L60.0CALL SBR_0:SBR0, L63.7, L63.6, Q0.0LD I1.0= L60.0LD I1.1= L63.7LD I1.2= L63.6LD L60.0CALL SBR_0:SBR0, L63.7, L63.6, Q1.0SBR0方案二:帶參數(shù)傳遞方案二:帶參數(shù)傳遞LD #啟動啟動:L0.

23、0O #電機電機:L0.2AN #停止停止:L0.1= #電機電機:L0.2例例2:設(shè)計一記錄設(shè)備運行時間的子程序,符號名:設(shè)計一記錄設(shè)備運行時間的子程序,符號名為為“運行時間運行時間”。設(shè)備運行時。設(shè)備運行時I0.0為為ON,用,用I0.0的常的常開觸點調(diào)用子程序。開觸點調(diào)用子程序。OB1SBR0第五節(jié)第五節(jié) 中斷程序及應(yīng)用中斷程序及應(yīng)用一、中斷程序簡介一、中斷程序簡介 中斷程序可以為中斷程序可以為PLC內(nèi)部或外部的特殊事件內(nèi)部或外部的特殊事件提供快速反應(yīng),在提供快速反應(yīng),在PLC控制系統(tǒng)中,對于不定期控制系統(tǒng)中,對于不定期產(chǎn)生的繼續(xù)處理事件,常通過采用中斷處理技術(shù)產(chǎn)生的繼續(xù)處理事件,常通過

24、采用中斷處理技術(shù)來完成。來完成。 中斷程序不是由程序調(diào)用,而是在中斷事件中斷程序不是由程序調(diào)用,而是在中斷事件發(fā)生時由系統(tǒng)調(diào)用。發(fā)生時由系統(tǒng)調(diào)用。 當(dāng)當(dāng)CPU響應(yīng)中斷請求后,會暫時停止當(dāng)前響應(yīng)中斷請求后,會暫時停止當(dāng)前正在執(zhí)行的程序,進(jìn)行現(xiàn)場保護(hù),然后轉(zhuǎn)到相應(yīng)正在執(zhí)行的程序,進(jìn)行現(xiàn)場保護(hù),然后轉(zhuǎn)到相應(yīng)的中斷服務(wù)程序中去處理。的中斷服務(wù)程序中去處理。 一旦中斷程序處理結(jié)束,立即恢復(fù)現(xiàn)場,將一旦中斷程序處理結(jié)束,立即恢復(fù)現(xiàn)場,將保存起來的現(xiàn)場數(shù)據(jù)和狀態(tài)重新裝入,返回到源保存起來的現(xiàn)場數(shù)據(jù)和狀態(tài)重新裝入,返回到源程序繼續(xù)執(zhí)行。程序繼續(xù)執(zhí)行。 在在S7-200中,中斷服務(wù)程序的調(diào)用和處理由中,中斷服務(wù)

25、程序的調(diào)用和處理由中斷指令來完成。一般中斷程序都較為短小和簡中斷指令來完成。一般中斷程序都較為短小和簡明扼要,這樣可以加快中斷程序執(zhí)行的速度,使明扼要,這樣可以加快中斷程序執(zhí)行的速度,使其他程序不會受到長時間的延誤。其他程序不會受到長時間的延誤。二、中斷源及中斷事件二、中斷源及中斷事件1、中斷源及種類、中斷源及種類 中斷源中斷源,即中斷事件發(fā)出中斷請求的來源。,即中斷事件發(fā)出中斷請求的來源。S7-200PLC具有最多可達(dá)具有最多可達(dá)34個中斷源,每個中斷源都分個中斷源,每個中斷源都分配一個編號用以識別,稱為配一個編號用以識別,稱為中斷事件號中斷事件號。這些中斷。這些中斷源大致分為三大類:源大致

26、分為三大類:通信中斷通信中斷、輸入輸出中斷輸入輸出中斷和和時時基中斷基中斷。 S7-200中,過程中斷分為通信中斷和輸入輸中,過程中斷分為通信中斷和輸入輸出中斷。通信中斷包括通信口出中斷。通信中斷包括通信口0和通信口和通信口1產(chǎn)生的中產(chǎn)生的中斷;輸入輸出中斷包括外部輸入中斷、高速計數(shù)器斷;輸入輸出中斷包括外部輸入中斷、高速計數(shù)器中斷和高速脈沖串輸出中斷。中斷和高速脈沖串輸出中斷。1)通信中斷:是指)通信中斷:是指S7-200的串行通信口可以通過的串行通信口可以通過梯形圖或語句表編程的方法來設(shè)置波特率、奇偶校梯形圖或語句表編程的方法來設(shè)置波特率、奇偶校驗和通信協(xié)議等參數(shù),對通信口的這種操作方式,

27、驗和通信協(xié)議等參數(shù),對通信口的這種操作方式,又稱為自由口通信。利用接收和發(fā)送中斷可簡化程又稱為自由口通信。利用接收和發(fā)送中斷可簡化程序?qū)νㄐ诺目刂啤P驅(qū)νㄐ诺目刂啤?)外部輸入中斷:來自過程中斷的信息可通過)外部輸入中斷:來自過程中斷的信息可通過I0.0,I0.1,I0.2,I0.3的上升沿或下降沿輸入到的上升沿或下降沿輸入到PLC中中。3)高速計數(shù)器中斷:應(yīng)用高速計數(shù)器場合,當(dāng)其當(dāng))高速計數(shù)器中斷:應(yīng)用高速計數(shù)器場合,當(dāng)其當(dāng)前值等于設(shè)定值時,或當(dāng)計數(shù)方向發(fā)生改變時,或當(dāng)前值等于設(shè)定值時,或當(dāng)計數(shù)方向發(fā)生改變時,或當(dāng)其外部復(fù)位時,都可能使其向其外部復(fù)位時,都可能使其向CPU提出中斷請求。提出中

28、斷請求。S7-200中,時基中斷分為定時中斷和定時器中斷。中,時基中斷分為定時中斷和定時器中斷。4)高速脈沖串輸出中斷:當(dāng))高速脈沖串輸出中斷:當(dāng)PLC完成輸出給定數(shù)完成輸出給定數(shù)量的高速脈沖串時,可引起中斷。量的高速脈沖串時,可引起中斷。1)定時中斷:定時中斷響應(yīng)周期性的事件,周期)定時中斷:定時中斷響應(yīng)周期性的事件,周期時間以時間以1ms為計量單位,最小周期為為計量單位,最小周期為5ms,最大周,最大周期為期為255ms。 定時中斷有兩種類型:定時中斷定時中斷有兩種類型:定時中斷0和定時中斷和定時中斷1。對于定時中斷對于定時中斷0,把周期時間寫入特殊繼電器,把周期時間寫入特殊繼電器SMB3

29、4;對于定時中斷;對于定時中斷1,把周期時間寫入特殊繼,把周期時間寫入特殊繼電器電器SMB35。利用定時中斷可以設(shè)定采樣周期,實。利用定時中斷可以設(shè)定采樣周期,實現(xiàn)對模擬量的數(shù)據(jù)采樣?,F(xiàn)對模擬量的數(shù)據(jù)采樣。2)定時器中斷:定時器中斷是利用指定的定時器)定時器中斷:定時器中斷是利用指定的定時器設(shè)定的時間產(chǎn)生中斷。在設(shè)定的時間產(chǎn)生中斷。在S7-200中,指定的定時器中,指定的定時器為為1ms的通電延時定時器的通電延時定時器T32和斷電延時定時器和斷電延時定時器T96。S7-200的的CPU中可響應(yīng)最多中可響應(yīng)最多34個中斷事件,見下表。個中斷事件,見下表。事件事件號號中斷事件描述中斷事件描述優(yōu)先優(yōu)

30、先級別級別CPU221CPU222CPU224CPU2260I0.0上升邊沿中斷上升邊沿中斷2 2Y YY YY YY Y1I0.0下降邊沿中斷下降邊沿中斷6 6Y YY YY YY Y2I0.1上升邊沿中斷上升邊沿中斷3 3Y YY YY YY Y3I0.1下降邊沿中斷下降邊沿中斷7 7Y YY YY YY Y事件事件號號中斷事件描述中斷事件描述優(yōu)先優(yōu)先級別級別CPU221CPU222CPU224CPU2264I0.2上升邊沿中斷上升邊沿中斷4 4Y YY YY YY Y5I0.2下降邊沿中斷下降邊沿中斷8 8Y YY YY YY Y6I0.3上升邊沿中斷上升邊沿中斷6 6Y YY YY Y

31、Y Y7I0.3下降邊沿中斷下降邊沿中斷9 9Y YY YY YY Y8端口端口 0:接收字符:接收字符0 0Y YY YY YY Y9端口端口0:傳輸完成:傳輸完成0 0Y YY YY YY Y10定時中斷定時中斷00 0Y YY YY YY Y11定時中斷定時中斷11 1Y YY YY YY Y12HSC0,CV=PV1010Y YY YY YY Y事件事件號號中斷事件描述中斷事件描述優(yōu)先優(yōu)先級別級別CPU221CPU222CPU224CPU22613HSC1,CV=PV1313Y YY Y14HSC1方向改變方向改變1414Y YY Y15HSC1外部復(fù)原外部復(fù)原1515Y YY Y16

32、HSC2,CV=PV1616Y YY Y17HSC2方向改變方向改變1717Y YY Y18HSC2外部復(fù)原外部復(fù)原1818Y YY Y19PTO 0完成中斷完成中斷0 0Y YY YY YY Y20PTO 1完成中斷完成中斷1 1Y YY YY YY Y21定時器定時器T32,CT=PT中斷中斷2 2Y YY YY YY Y事件事件號號中斷事件描述中斷事件描述優(yōu)先優(yōu)先級別級別CPU221CPU222CPU224CPU22622定時器定時器T96,CT=PT中斷中斷2 2Y YY YY YY Y23端口端口0:接收信息完成:接收信息完成0 0Y YY YY YY Y24端口端口1:接收信息完成

33、:接收信息完成1 1Y Y25端口端口1:接收字符:接收字符1 1Y Y26端口端口1:傳輸完成:傳輸完成1 1Y Y27HSC0方向改變方向改變1111Y YY YY YY Y28HSC0外部復(fù)原外部復(fù)原1212Y YY YY YY Y29HSC4,CV=PV2020Y YY YY YY Y30HSC4方向改變方向改變2121Y YY YY YY Y2、中斷優(yōu)先級、中斷優(yōu)先級 中斷優(yōu)先級由高到低依次是:通信中斷、輸入中斷優(yōu)先級由高到低依次是:通信中斷、輸入輸出中斷、時基中斷。每種中斷中的不同中斷事件輸出中斷、時基中斷。每種中斷中的不同中斷事件又有不同的優(yōu)先權(quán)。又有不同的優(yōu)先權(quán)。 主機中的所有

34、中斷事件及優(yōu)先級參照上表所示。主機中的所有中斷事件及優(yōu)先級參照上表所示。事件事件號號中斷事件描述中斷事件描述優(yōu)先優(yōu)先級別級別CPU221CPU222CPU224CPU22631HSC4外部復(fù)原外部復(fù)原2222Y YY YY YY Y32HSC3,CV=PV1919Y YY YY YY Y33HSC5,CV=PV2323Y YY YY YY Y 在在PLC中,中,CPU一般在指定的優(yōu)先級內(nèi)按照先一般在指定的優(yōu)先級內(nèi)按照先來先服務(wù)的原則響應(yīng)中斷事件的中斷請求,在任何時來先服務(wù)的原則響應(yīng)中斷事件的中斷請求,在任何時刻,刻,CPU只執(zhí)行一個中斷程序。當(dāng)只執(zhí)行一個中斷程序。當(dāng)CPU按照中斷優(yōu)按照中斷優(yōu)先

35、級響應(yīng)并執(zhí)行一個中斷程序時,就不會響應(yīng)其他中先級響應(yīng)并執(zhí)行一個中斷程序時,就不會響應(yīng)其他中斷事件的中斷請求(盡管此時可能會有更高級別的中斷事件的中斷請求(盡管此時可能會有更高級別的中斷事件發(fā)出中斷請求),直到將當(dāng)前的中斷程序執(zhí)行斷事件發(fā)出中斷請求),直到將當(dāng)前的中斷程序執(zhí)行結(jié)束。在結(jié)束。在CPU執(zhí)行中斷程序期間,對新出現(xiàn)的中斷執(zhí)行中斷程序期間,對新出現(xiàn)的中斷事件仍然按照中斷性質(zhì)和優(yōu)先級的順序分別進(jìn)行排隊,事件仍然按照中斷性質(zhì)和優(yōu)先級的順序分別進(jìn)行排隊,形成中斷隊列。形成中斷隊列。CPU22x系列的中斷隊列的長度如下系列的中斷隊列的長度如下表所示。如果超過規(guī)定的中斷隊列長度,則產(chǎn)生溢出,表所示。

36、如果超過規(guī)定的中斷隊列長度,則產(chǎn)生溢出,使特殊繼電器置位。使特殊繼電器置位。中斷隊列中斷隊列CPU221CPU222CPU224CPU226溢出位溢出位通信中斷通信中斷4個個4個個4個個8個個SM4.0I/O中斷中斷16個個16個個16個個16個個SM4.1時基中斷時基中斷8個個8個個8個個8個個SM4.2表中斷隊列的長度及溢出位表中斷隊列的長度及溢出位CPU型號型號CPU221CPU222CPU224CPU226可連接中斷事件數(shù)可連接中斷事件數(shù)253134可連接中斷事件號可連接中斷事件號012,1923,2733023,2733033表中斷數(shù)量及事件表中斷數(shù)量及事件三、中斷程序的相關(guān)指令三、

37、中斷程序的相關(guān)指令 中斷允許(中斷允許(ENI)指令,全局地開放所有被連接)指令,全局地開放所有被連接的中斷事件,允許的中斷事件,允許CPU接收所有中斷事件。接收所有中斷事件。1、中斷允許指令中斷允許指令ENI和中斷禁止指令和中斷禁止指令DISI 中斷禁止(中斷禁止(DISI)指令,全局地關(guān)閉所有被連)指令,全局地關(guān)閉所有被連接的中斷事件,禁止接的中斷事件,禁止CPU接收各個中斷事件的中斷接收各個中斷事件的中斷請求。請求。 執(zhí)行執(zhí)行DISI指令后,出現(xiàn)的中斷事件就進(jìn)入中斷指令后,出現(xiàn)的中斷事件就進(jìn)入中斷隊伍排隊等候,直到隊伍排隊等候,直到ENI指令重新允許中斷。指令重新允許中斷。 CPU進(jìn)入進(jìn)

38、入RUN模式時,系統(tǒng)自動禁止了中斷。模式時,系統(tǒng)自動禁止了中斷。在在RUN模式執(zhí)行模式執(zhí)行ENI指令后,開放所有中斷。指令后,開放所有中斷。 中斷允許指令中斷允許指令ENI、中斷禁止指令、中斷禁止指令DISI以線圈以線圈的形式編程,無操作數(shù)。的形式編程,無操作數(shù)。2、中斷連接指令(中斷連接指令(ATCH) 中斷連接(中斷連接(ATCH)指令,用來建立某個中斷事)指令,用來建立某個中斷事件(件(EVNT)和某個中斷程序()和某個中斷程序(INT)之間的聯(lián)系。)之間的聯(lián)系。并允許這個中斷事件。并允許這個中斷事件。 在調(diào)用一個中斷程序前,必須用中斷連接指令,在調(diào)用一個中斷程序前,必須用中斷連接指令,

39、建立某中斷事件與中斷程序的連接,當(dāng)把某個中斷事建立某中斷事件與中斷程序的連接,當(dāng)把某個中斷事件和中斷程序建立連接后,該中斷事件發(fā)生時會自動件和中斷程序建立連接后,該中斷事件發(fā)生時會自動 執(zhí)行中斷。執(zhí)行中斷。多個中斷事件可調(diào)用同一個中斷程序,但多個中斷事件可調(diào)用同一個中斷程序,但一個中斷事件不能同時與多個中斷程序建立連接,否一個中斷事件不能同時與多個中斷程序建立連接,否則,在中斷允許且某個中斷事件發(fā)生時,系統(tǒng)默認(rèn)執(zhí)則,在中斷允許且某個中斷事件發(fā)生時,系統(tǒng)默認(rèn)執(zhí)行與該事件建立連接的最后一個中斷程序。行與該事件建立連接的最后一個中斷程序。3、中斷分離指令(中斷分離指令(DTCH) 中斷分離(中斷分離

40、(DTCH)指令,用來解除某個中斷事)指令,用來解除某個中斷事件(件(EVNT)和某個中斷程序之間的聯(lián)系,并禁止該)和某個中斷程序之間的聯(lián)系,并禁止該中斷事件。指令操作數(shù)中斷事件。指令操作數(shù)EVNT的數(shù)據(jù)類型均為的數(shù)據(jù)類型均為BYTE。 可以用可以用DTCH指令截斷中斷事件和中斷程序之間指令截斷中斷事件和中斷程序之間的聯(lián)系,以單獨禁止某中斷事件。的聯(lián)系,以單獨禁止某中斷事件。DTCH指令使中斷指令使中斷回到不激活或無效狀態(tài)?;氐讲患せ罨驘o效狀態(tài)。4、中斷中斷返回返回指令(指令(RETI)、(、(CRETI) 中斷返回指令的功能是,當(dāng)中斷結(jié)束時,通過中斷返回指令的功能是,當(dāng)中斷結(jié)束時,通過中斷返

41、回指令退出中斷服務(wù)程序,返回到主程序。中斷返回指令退出中斷服務(wù)程序,返回到主程序。RETI是無條件返回指令,是無條件返回指令,CRETI是有條件返回指令。是有條件返回指令。指令使用舉例:指令使用舉例:程序?qū)崿F(xiàn)的功能是程序?qū)崿F(xiàn)的功能是調(diào)用調(diào)用I0.1輸入點的輸入點的上升沿中斷,若上升沿中斷,若發(fā)現(xiàn)發(fā)現(xiàn)I/O錯誤,則錯誤,則禁止本中斷,用禁止本中斷,用外部條件可以禁外部條件可以禁止全局中斷。止全局中斷。四、中斷應(yīng)用舉例四、中斷應(yīng)用舉例例例1:利用定時中斷指令實現(xiàn)對模擬量的等間隔采樣:利用定時中斷指令實現(xiàn)對模擬量的等間隔采樣OB1:LD SM0.1CALL SBR_0:SBR0SBR0:LD SM0

42、.0MOVB 100, SMB34ATCH INT_0:INT0, 10ENIINT0:LD SM0.0MOVW AIW4, VW100例例2:在:在I0.0的上升沿通過中斷使的上升沿通過中斷使Q0.0立即置位;在立即置位;在I0.1的下降沿通過中斷使的下降沿通過中斷使Q0.0立即復(fù)位。立即復(fù)位。/主程序主程序OB1LD SM0.1 /第一次掃描時第一次掃描時ATCH INT_0,0 /I0.0上升沿執(zhí)行上升沿執(zhí)行0號中斷程序號中斷程序ATCH INT_1,3 /I0.1下降沿執(zhí)行下降沿執(zhí)行1號中斷程序號中斷程序ENI /允許全局中斷允許全局中斷/中斷程序中斷程序0(INT_0)LD SM0.

43、0 /常常ONSI Q0.0,1 /使使Q0.0立即置位立即置位/中斷程序中斷程序1(INT_1)LD SM0.0RI Q0.0,1 /使使Q0.0立即復(fù)位立即復(fù)位例例3:定時中斷的定時時間最長為:定時中斷的定時時間最長為255ms,如何用定,如何用定時中斷時中斷1實現(xiàn)周期為實現(xiàn)周期為2s的高精度定時?的高精度定時?/主程序主程序OB1LD SM0.1 /第一次掃描時第一次掃描時MOVB 0,VB10 /中斷次數(shù)計數(shù)器清零中斷次數(shù)計數(shù)器清零MOVB 250,SMB34 /設(shè)定中斷設(shè)定中斷0時間間隔為時間間隔為250msATCH INT_0,10 /指定定時中斷指定定時中斷0執(zhí)行執(zhí)行0號中斷程序

44、號中斷程序ENI /允許全局中斷允許全局中斷/中斷程序中斷程序0(INT_0),每隔),每隔250ms中斷一次中斷一次LD SM0.0 /常常ONINCB VB10 /中斷次數(shù)計數(shù)器加中斷次數(shù)計數(shù)器加1LDB= 8,VB10 /比較,如果中斷比較,如果中斷8次(次(2s)MOVB 0,VB10 /中斷次數(shù)計數(shù)器清零中斷次數(shù)計數(shù)器清零INCB QB0 /每每2s將將QB0加加1例例4:出現(xiàn)事故時,:出現(xiàn)事故時,I0.0的上升沿產(chǎn)生中斷,使輸?shù)纳仙禺a(chǎn)生中斷,使輸出出Q1.0立即置位,同時將事故發(fā)生的日期和時間立即置位,同時將事故發(fā)生的日期和時間保存在保存在VB10VB17中。中。/主程序主程序O

45、B1LD SM0.1 /第一次掃描第一次掃描ATCH 0,0 /指定在指定在I0.0上升沿上升沿 /執(zhí)行中斷程序執(zhí)行中斷程序0ENI /開中斷開中斷/中斷程序中斷程序INT0LD SM0.0SI Q1.0,1 /使使Q1.0立即置位立即置位TODR VB10 /讀實時時鐘讀實時時鐘例例5:使用定時中斷的彩燈控制程序,控制:使用定時中斷的彩燈控制程序,控制8個彩個彩燈循環(huán)左移。燈循環(huán)左移。 定時中斷定時中斷0的中斷號為的中斷號為10,SMB34中的定時時中的定時時間為間為1255ms。彩燈移位的延時時間一般大于。彩燈移位的延時時間一般大于255ms,將中斷的時間間隔設(shè)為,將中斷的時間間隔設(shè)為25

46、0ms,用,用VB0做做中斷次數(shù)計數(shù)器,在中斷服務(wù)程序中將中斷次數(shù)計數(shù)器,在中斷服務(wù)程序中將VB0加加1,然,然后用比較觸點指令判斷后用比較觸點指令判斷VB0是否等于設(shè)置的次數(shù)是否等于設(shè)置的次數(shù)N。若相等則將若相等則將QB0循環(huán)左移一位,同時循環(huán)左移一位,同時VB0清零。移清零。移位時間間隔為位時間間隔為0.25N(s)。)。主程序主程序OB1LD SM0.1CALL SBR_0:SBR0子程序子程序SBR0LD SM0.0MOVB 16#07, QB0MOVB 0, VB0MOVB 250, SMB34ATCH INT_0:INT0, 10ENI中斷程序中斷程序INT0LD SM0.0INC

47、B VB0LDB= VB0, 4RLB QB0, 1MOVB 0, VB0例例6:使用:使用T32中斷的彩燈控制程序,控制中斷的彩燈控制程序,控制8個彩個彩燈循環(huán)左移。燈循環(huán)左移。 1ms定時器定時器T32和和T96的定時時間到時可以產(chǎn)生的定時時間到時可以產(chǎn)生中斷,中斷號分別為中斷,中斷號分別為21和和22,最長定時時間為,最長定時時間為32.767s。對于分辨率為。對于分辨率為1ms和和10ms的定時器,不的定時器,不能使用定時器本身觸點作為自復(fù)位控制,應(yīng)使用下能使用定時器本身觸點作為自復(fù)位控制,應(yīng)使用下面主程序方法。面主程序方法。主程序主程序OB1LD SM0.1CALL SBR_0:SB

48、R0LDN M0.0TON T32, +500LD T32= M0.0子程序子程序SBR0LD SM0.0MOVB 7, QB0ATCH INT_0:INT0, 21ENI中斷程序中斷程序INT0LD SM0.0RLB QB0, 1總總 結(jié)結(jié)(1)中斷程序構(gòu)成)中斷程序構(gòu)成 中斷程序必須由三部分構(gòu)成:中斷程序標(biāo)號、中斷程序必須由三部分構(gòu)成:中斷程序標(biāo)號、中斷程序指令和無條件返回指令。中斷程序指令和無條件返回指令。(2)編程要求)編程要求用中斷程序的標(biāo)號來區(qū)別每個中斷程序。用中斷程序的標(biāo)號來區(qū)別每個中斷程序。中斷服務(wù)程序越短越好,以減少中斷程序執(zhí)行時間。中斷服務(wù)程序越短越好,以減少中斷程序執(zhí)行時

49、間。在中斷程序中不能使用在中斷程序中不能使用ENIENI、DISIDISI、HDEFHDEF、LSCRLSCR、ENDEND指令。指令。中斷服務(wù)程序的最后一條指令一定是中斷服務(wù)程序的最后一條指令一定是RETIRETI或或CRETICRETI(其中(其中RETIRETI指令會由編程軟件自動添加)。指令會由編程軟件自動添加)。第六節(jié)第六節(jié) 高速計數(shù)器功能及應(yīng)用高速計數(shù)器功能及應(yīng)用一、高速計數(shù)器概述一、高速計數(shù)器概述 PLC的普通計數(shù)器的計數(shù)過程與掃描工作方式的普通計數(shù)器的計數(shù)過程與掃描工作方式有關(guān),有關(guān),CPU通過每一個掃描周期讀取一次被測信號通過每一個掃描周期讀取一次被測信號的方法來捕捉被測信號

50、的上升沿,被測信號的頻率的方法來捕捉被測信號的上升沿,被測信號的頻率較高時,會丟失計數(shù)脈沖,因此普通計數(shù)器的工作較高時,會丟失計數(shù)脈沖,因此普通計數(shù)器的工作頻率很低,一般僅有幾十赫茲。高速計數(shù)器可以對頻率很低,一般僅有幾十赫茲。高速計數(shù)器可以對普通計數(shù)器無能為力的事件進(jìn)行計數(shù),普通計數(shù)器無能為力的事件進(jìn)行計數(shù),S7-200有有6個高速計數(shù)器個高速計數(shù)器HSC0HSC5,可以設(shè)置多達(dá),可以設(shè)置多達(dá)12中不中不同的操作模式。同的操作模式。1、高速計數(shù)器的數(shù)量及編號、高速計數(shù)器的數(shù)量及編號 高速計數(shù)器在程序中使用時的地址編號用高速計數(shù)器在程序中使用時的地址編號用HSCn來表示,來表示,HSC表編程元

51、件名稱為高速計數(shù)器,表編程元件名稱為高速計數(shù)器,n(n=05)為編號。為編號。 每個高速計數(shù)器的計數(shù)結(jié)果都對應(yīng)有一個當(dāng)前值寄存器。每個高速計數(shù)器的計數(shù)結(jié)果都對應(yīng)有一個當(dāng)前值寄存器。編程時可通過地址編程時可通過地址HCx(x=05)來讀取高速計數(shù)器的當(dāng)前值。)來讀取高速計數(shù)器的當(dāng)前值。不同型號的不同型號的PLC主機,高速計數(shù)器的數(shù)量對應(yīng)如下表所示。主機,高速計數(shù)器的數(shù)量對應(yīng)如下表所示。2、高速計數(shù)器的外部輸入信號、高速計數(shù)器的外部輸入信號 每個高速計數(shù)器對它所支持的時鐘、方向控每個高速計數(shù)器對它所支持的時鐘、方向控制、復(fù)位和啟動都有專用的輸入點,通過中斷控制制、復(fù)位和啟動都有專用的輸入點,通過中

52、斷控制完成預(yù)定的操作。每個高速計數(shù)器所需的外部輸入完成預(yù)定的操作。每個高速計數(shù)器所需的外部輸入點如下圖所示。點如下圖所示。3、高速計數(shù)器相關(guān)的中斷事件、高速計數(shù)器相關(guān)的中斷事件 高速計數(shù)器的計數(shù)和動作可采用中斷方式進(jìn)行高速計數(shù)器的計數(shù)和動作可采用中斷方式進(jìn)行控制,與控制,與CPU的掃描周期關(guān)系不大,各種型號的的掃描周期關(guān)系不大,各種型號的PLC可用的高速計數(shù)器的中斷事件大致分為可用的高速計數(shù)器的中斷事件大致分為3類:類:當(dāng)前值等于預(yù)設(shè)值中斷當(dāng)前值等于預(yù)設(shè)值中斷、輸入方向改變中斷輸入方向改變中斷和和外部外部復(fù)位中斷復(fù)位中斷。所有高速計數(shù)器都支持當(dāng)前值等于預(yù)設(shè)。所有高速計數(shù)器都支持當(dāng)前值等于預(yù)設(shè)值

53、中斷。值中斷。 每個高速計數(shù)器的每個高速計數(shù)器的3種中斷的優(yōu)先級由高到低,種中斷的優(yōu)先級由高到低,不同高速計數(shù)器之間的優(yōu)先級又按編號順序由高到不同高速計數(shù)器之間的優(yōu)先級又按編號順序由高到低。具體對應(yīng)關(guān)系如下表所示。低。具體對應(yīng)關(guān)系如下表所示。高速計高速計數(shù)器數(shù)器當(dāng)前值當(dāng)前值=預(yù)設(shè)值中斷預(yù)設(shè)值中斷計數(shù)方向改變中斷計數(shù)方向改變中斷外部信號復(fù)位中斷外部信號復(fù)位中斷事件號事件號優(yōu)先級優(yōu)先級事件號事件號優(yōu)先級優(yōu)先級事件號事件號優(yōu)先級優(yōu)先級HSC0121027112812HSC1131314141515HSC2161617171818HSC33219無無無無無無無無HSC4292030213122HSC5

54、3323無無無無無無無無4、高速計數(shù)器的狀態(tài)字節(jié)與控制字節(jié)、高速計數(shù)器的狀態(tài)字節(jié)與控制字節(jié) 在特殊存儲器(在特殊存儲器(SM)區(qū),每個高速計數(shù)器都)區(qū),每個高速計數(shù)器都有一個狀態(tài)字節(jié)、一個設(shè)置參數(shù)用的控制字節(jié)、一有一個狀態(tài)字節(jié)、一個設(shè)置參數(shù)用的控制字節(jié)、一個個32位預(yù)置值寄存器和一個位預(yù)置值寄存器和一個32位當(dāng)前值寄存器。位當(dāng)前值寄存器。 狀態(tài)字節(jié)給出了當(dāng)前計數(shù)方向和當(dāng)前值是否大狀態(tài)字節(jié)給出了當(dāng)前計數(shù)方向和當(dāng)前值是否大于或等于預(yù)置值等信息。只有在執(zhí)行高速計數(shù)器的于或等于預(yù)置值等信息。只有在執(zhí)行高速計數(shù)器的中斷程序時,狀態(tài)位才有效。中斷程序時,狀態(tài)位才有效。 控制字節(jié)的各位用來設(shè)置高速計數(shù)器的屬

55、性??刂谱止?jié)的各位用來設(shè)置高速計數(shù)器的屬性。高速計數(shù)器的狀態(tài)字節(jié)表高速計數(shù)器的狀態(tài)字節(jié)表HSC0HSC1HSC2HSC3HSC4HSC5描描 述述SM36.0 SM46.0 SM56.0SM136.0SM146.0SM156.0不用不用SM36.1 SM46.1 SM56.1SM136.1SM146.1SM156.1不用不用SM36.2 SM46.2 SM56.2SM136.2SM146.2SM156.2不用不用SM36.3 SM46.3 SM56.3SM136.3SM146.3SM156.3不用不用SM36.4 SM46.4 SM56.4SM136.4SM146.4SM156.4不用不用SM

56、36.5 SM46.5 SM56.5SM136.5SM146.5SM156.5計數(shù)方向狀態(tài)計數(shù)方向狀態(tài)0減;減;1增增SM36.6 SM46.6 SM56.6SM136.6SM146.6SM156.6當(dāng)前值當(dāng)前值=設(shè)定值設(shè)定值0;1=SM36.7 SM46.7 SM56.7SM136.7SM146.7SM156.7當(dāng)前值當(dāng)前值設(shè)定值設(shè)定值0;1高速計數(shù)器的控制字節(jié)表高速計數(shù)器的控制字節(jié)表高速計數(shù)器的當(dāng)前值和設(shè)定值寄存器高速計數(shù)器的當(dāng)前值和設(shè)定值寄存器二、高速計數(shù)器的工作模式二、高速計數(shù)器的工作模式 S7-200的高速計數(shù)器有的高速計數(shù)器有4類工作模式,共有類工作模式,共有12種。每個模種。每個

57、模式各有不同,可通過編程,使用定義高速計數(shù)器指令式各有不同,可通過編程,使用定義高速計數(shù)器指令HDEF來來選定工作模式。選定工作模式。1、高速計數(shù)器的工作模式、高速計數(shù)器的工作模式2、高速計數(shù)器的工作模式說明、高速計數(shù)器的工作模式說明 從各個高速計數(shù)器的工作模式的描述可知:從各個高速計數(shù)器的工作模式的描述可知:6個個高速計數(shù)器具有不完全相同的功能,最多可能有高速計數(shù)器具有不完全相同的功能,最多可能有12種種工作模式,可分為四種類型。下面以工作模式,可分為四種類型。下面以HC1的工作模式的工作模式為例加以說明。為例加以說明。具有內(nèi)部方向控制的單相增具有內(nèi)部方向控制的單相增/ /減計數(shù)器(模式減計

58、數(shù)器(模式02) 用高速計數(shù)器的控制字節(jié)的第用高速計數(shù)器的控制字節(jié)的第3位來控制加計數(shù)位來控制加計數(shù)或減計數(shù)。該位為或減計數(shù)。該位為1時為加計數(shù),為時為加計數(shù),為0時為減計數(shù)。時為減計數(shù)。具有外部方向控制的單相增具有外部方向控制的單相增/ /減計數(shù)器(模式減計數(shù)器(模式35) 方向輸入信號為方向輸入信號為1時為加計數(shù),為時為加計數(shù),為0時為減計數(shù)。時為減計數(shù)。具有增具有增/ /減計數(shù)脈沖輸入的雙向計數(shù)器(模式減計數(shù)脈沖輸入的雙向計數(shù)器(模式68) 若加計數(shù)脈沖和減計數(shù)脈沖的上升沿出現(xiàn)的時若加計數(shù)脈沖和減計數(shù)脈沖的上升沿出現(xiàn)的時間間隔不到間間隔不到0.3ms,高速計數(shù)器認(rèn)為這兩個事件是同,高速計

59、數(shù)器認(rèn)為這兩個事件是同時發(fā)生的,當(dāng)前值不變,也不會有計數(shù)方向變化的指時發(fā)生的,當(dāng)前值不變,也不會有計數(shù)方向變化的指示。反之,高速計數(shù)器能捕捉到每一個獨立事件。示。反之,高速計數(shù)器能捕捉到每一個獨立事件。A/BA/B相正交計數(shù)器(模式相正交計數(shù)器(模式911) 正交:是指正交:是指A、B兩相輸入脈沖相位互差兩相輸入脈沖相位互差90。當(dāng)當(dāng)A相脈沖超前相脈沖超前B相脈沖相脈沖90時,計數(shù)為增計數(shù);時,計數(shù)為增計數(shù);當(dāng)當(dāng)A相脈沖滯后相脈沖滯后B相脈沖相脈沖90時,計數(shù)為減計數(shù)。時,計數(shù)為減計數(shù)。 正交計數(shù)器有兩種工作狀態(tài):正交計數(shù)器有兩種工作狀態(tài): 一種是輸入一種是輸入1個計數(shù)脈沖時,當(dāng)前值計個計數(shù)脈

60、沖時,當(dāng)前值計1個數(shù),此個數(shù),此時的計數(shù)倍率為時的計數(shù)倍率為1。 另一種工作狀態(tài)是輸入另一種工作狀態(tài)是輸入1個計數(shù)脈沖時,當(dāng)前值個計數(shù)脈沖時,當(dāng)前值計計4個數(shù),此時的計數(shù)倍率為個數(shù),此時的計數(shù)倍率為4。1倍率正交計數(shù)器時序圖倍率正交計數(shù)器時序圖4倍率正交計數(shù)器時序圖倍率正交計數(shù)器時序圖三、高速計數(shù)器指令三、高速計數(shù)器指令1、高速計數(shù)器定義指令、高速計數(shù)器定義指令HDEF 使能輸入有效時,為指定的高速計數(shù)器分配一種使能輸入有效時,為指定的高速計數(shù)器分配一種工作模式,即用來建立高速計數(shù)器與工作模式之間的工作模式,即用來建立高速計數(shù)器與工作模式之間的聯(lián)系。梯形圖指令盒中有兩個數(shù)據(jù)輸入端:聯(lián)系。梯形圖

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論