西門子S7-200SMART模塊黑龍江代理價(jià)格
西門子PLC高速計(jì)數(shù)器的計(jì)數(shù)模式
高速計(jì)數(shù)器有4種計(jì)數(shù)模式:內(nèi)部控制方向的單相加/減計(jì)數(shù)、外部控制方向的單相加/減計(jì)數(shù)、雙相脈沖輸入的加/減計(jì)數(shù)和雙相脈沖輸入的正交加/減計(jì)數(shù)。
1.內(nèi)部控制方向的單相加/減計(jì)數(shù)
在該計(jì)數(shù)模式下,只有一路脈沖輸入,計(jì)數(shù)器的計(jì)數(shù)方向(即加計(jì)數(shù)或減計(jì)數(shù))由特殊存儲(chǔ)器某位值來(lái)決定,該位值為1為加計(jì)數(shù),該位值為0為減計(jì)數(shù)。內(nèi)部控制方向的單相加/減計(jì)數(shù)說(shuō)明如圖5-38所示,以高速計(jì)數(shù)器HSC0為例,它采用I0.0端子為計(jì)數(shù)脈沖輸入端,SM37.3的位值決定計(jì)數(shù)方向,SMD42用于寫入計(jì)數(shù)預(yù)置值。當(dāng)高速計(jì)速器的計(jì)數(shù)值達(dá)到預(yù)置值時(shí)會(huì)產(chǎn)生中斷請(qǐng)求,觸發(fā)中斷程序的執(zhí)行。
2.外部控制方向的單相加/減計(jì)數(shù)
在該計(jì)數(shù)模式下,只有一路脈沖輸入,計(jì)數(shù)器的計(jì)數(shù)方向由某端子輸入值來(lái)決定,該位值為1為加計(jì)數(shù),該位值為0為減計(jì)數(shù)。外部控制方向的單相加/減計(jì)數(shù)說(shuō)明如圖5-39所示,以高速計(jì)數(shù)器HSC4為例,它采用I0.3端子作為計(jì)數(shù)脈沖輸入端,I0.4端子輸入值決定計(jì)數(shù)方向,SMD152用于寫入計(jì)數(shù)預(yù)置值。
3.雙相脈沖輸入的加/減計(jì)數(shù)
在該計(jì)數(shù)模式下,有兩路脈沖輸入端,一路為加計(jì)數(shù)輸入端,另一路為減計(jì)數(shù)輸入端。雙相脈沖輸入的加/減計(jì)數(shù)說(shuō)明如圖5-40所示,以高速計(jì)數(shù)器HSC0為例,當(dāng)其工作模式為6時(shí),它采用I0.0端子作為加計(jì)數(shù)脈沖輸入端,I0.1為減計(jì)數(shù)脈沖輸入端,SMD42用于寫入計(jì)數(shù)預(yù)置值。
4.雙相脈沖輸入的正交加/減計(jì)數(shù)
在該計(jì)數(shù)模式下,有兩路脈沖輸入端,一路為A脈沖輸入端,另一路為B脈沖輸入端,A、B脈沖相位相差90°(即正交),即A、B兩脈沖相差1/4周期。若A脈沖超前B脈沖90°,為加計(jì)數(shù);若A脈沖滯后B脈沖90°,為減計(jì)數(shù)。在這種計(jì)數(shù)模式下,可選擇1x模式或4x模式,1x模式又稱單倍頻模式,當(dāng)輸入一個(gè)脈沖時(shí)計(jì)數(shù)器值增1或減1,4x模式又稱四倍頻模式,當(dāng)輸入一個(gè)脈沖時(shí)計(jì)數(shù)器值增4或減4。
普通計(jì)數(shù)器的計(jì)數(shù)速度與PLC的掃描周期有關(guān),掃描周期越長(zhǎng),計(jì)數(shù)速度越慢,即
計(jì)數(shù)頻率越低,一般僅幾十赫茲,普通計(jì)數(shù)器適用于計(jì)數(shù)速度要求不高的場(chǎng)合。為了滿足高速計(jì)數(shù)要求,S7-200系列PLC專門設(shè)計(jì)了高速計(jì)數(shù)器,其計(jì)數(shù)速度很快,CPU22X系列PLC計(jì)數(shù)頻率高為30kHz,CPU224XP CN計(jì)數(shù)頻率達(dá)230kHz,并且不受PLC掃描周期影響。
在S7 -200系列PLC中,CPU 224、CPU 224XP和CPU 226支持HSC0~HSC5六個(gè)高速計(jì)數(shù)器;而CPU 221和CPU222支持HSC0、HSC3、HSC4和HSC5四個(gè)高速計(jì)數(shù)器,不支持HSC1和HSC2。高速計(jì)數(shù)器有0~12種(即13種)工作模式。
高速計(jì)數(shù)器指令包括高速計(jì)數(shù)器定義指令( HDEF)和高速計(jì)數(shù)器指令(HSC)。
中斷指令有6條:中斷允許指令、中斷禁止指令、中斷連接指令、中斷分離指令、清除中斷事件指令和中斷條件返回指令。
1.指令說(shuō)明
中斷指令說(shuō)明如下:
2.中斷程序的建立
中斷程序是為處理中斷事件而事先寫好的程序,它不像子程序要用指令調(diào)用,而是當(dāng)中斷事件發(fā)生后系統(tǒng)會(huì)自動(dòng)執(zhí)行中斷程序,如果中斷事件未發(fā)生,中斷程序就不會(huì)執(zhí)行。在編寫中斷程序時(shí),要求程序越短越好,并且在中斷程序中不能使用DISI、ENI、HDEF、LSCR和END指令。
編寫中斷程序要在編程軟件中進(jìn)行,打開STEP 7 - Micro/WIN編程軟件,在程序編輯區(qū)下方有“主程序”、“SBR_0”、“INT_0”三個(gè)標(biāo)簽,單擊“INT_0”標(biāo)簽即可切換到中斷程序編輯頁(yè)面,在該頁(yè)面就可以編寫名稱為“INT_0”的中斷程序。
如果需要編寫第2個(gè)或更多的中斷程序,可執(zhí)行菜單命令“編輯→插入→中斷程序”,即在程序編輯區(qū)下方增加一個(gè)中斷程序名稱為“INT_1”的標(biāo)簽,在標(biāo)簽上單擊鼠標(biāo)右鍵,在彈出的菜單中可進(jìn)行更多操作,如圖5-35所示。
3.指令使用舉例
(1)使用舉例一
在主程序運(yùn)行時(shí),若I0.0端口輸入一個(gè)脈沖下降沿(如I0.0端口外接開關(guān)突然斷開),馬上會(huì)產(chǎn)生一個(gè)中斷請(qǐng)求,即中斷事件1產(chǎn)生中斷請(qǐng)求,由于在主程序中已用ATCH指令將中斷事件1與INT_0中斷程序連接起來(lái),故系統(tǒng)響應(yīng)此請(qǐng)求,停止主程序的運(yùn)行,轉(zhuǎn)而執(zhí)行INT_0中斷程序,中斷程序執(zhí)行完成后又返回主程序。
在主程序運(yùn)行時(shí),如果系統(tǒng)檢測(cè)到I/O發(fā)生錯(cuò)誤,會(huì)使SM5.0觸點(diǎn)閉合,中斷分離DTCH指令執(zhí)行,禁用中斷事件1,即當(dāng)I0.0端口輸入一個(gè)脈沖下降沿時(shí),系統(tǒng)不理會(huì)該中斷,也就不會(huì)執(zhí)行INT_0中斷程序,但還會(huì)接受其他中斷事件發(fā)出的請(qǐng)求;如果I0.6觸點(diǎn)閉合,中斷禁止DISI指令執(zhí)行,禁止所有的中斷事件。在中斷程序運(yùn)行時(shí),如果I0.5觸點(diǎn)閉合,中斷條件返回RETI指令執(zhí)行,中斷程序提前返回,不會(huì)執(zhí)行該指令后面的內(nèi)容。
(2)使用舉例二
在主程序運(yùn)行時(shí),PLC次掃播時(shí)SM0.1觸點(diǎn)接通一個(gè)掃描周期,MOV_B指令首先執(zhí)行,將常數(shù)10送入定時(shí)中斷時(shí)間存儲(chǔ)器SMB34中,將定時(shí)中斷時(shí)間間隔設(shè)為10ms,然后中斷連接ATCH指令執(zhí)行。將中斷事件10 (即定時(shí)器中斷0)與INT_0中斷程序連接起來(lái),再執(zhí)行中斷允許ENI指令,允許所有的中斷事件。當(dāng)定時(shí)中斷存儲(chǔ)器SMB34 10ms定時(shí)時(shí)間間隔到,會(huì)向系統(tǒng)發(fā)出中斷請(qǐng)求,由于該中斷事件對(duì)直的INT_0中斷程序,所以PLC馬上執(zhí)行INT_0中斷程序,將模擬量輸入AIW0單元中的數(shù)據(jù)傳送到VW100單元中,當(dāng)SMB34下一個(gè)10ms定時(shí)時(shí)間間隔到,又會(huì)發(fā)出中斷請(qǐng)求,從而又執(zhí)行一次中斷程序,這樣程序就可以每隔10ms時(shí)間對(duì)模擬輸入AIW0單元數(shù)據(jù)采樣一次。
子程序調(diào)用指令可以帶參數(shù),使用帶參數(shù)的子程序調(diào)用指令可以擴(kuò)大子程序的使用范圍。在子程序調(diào)用時(shí),如果存在數(shù)據(jù)傳遞,通常要求子程序調(diào)用指令帶有相應(yīng)的參數(shù)。
1.參數(shù)的輸入
子程序調(diào)用指令默認(rèn)是不帶參數(shù)的,也無(wú)法在指令梯形圖符號(hào)上直接輸入?yún)?shù),使用子程序編輯頁(yè)面上方的局部變量表可給子程序調(diào)用指令設(shè)置參數(shù)。
子程序調(diào)用指令參數(shù)的設(shè)置方法是:打開STEP 7 - Micro/WIN編程軟件,單擊程序編輯區(qū)下方的SBR_0標(biāo)簽,切換到SBR_0子程序編輯頁(yè)面,在頁(yè)面上方的局部變量表內(nèi)按圖5-33a所示進(jìn)行輸入設(shè)置,然后切換到主程序編輯頁(yè)面,在該頁(yè)面輸入子程序調(diào)用指令,即可得到帶參數(shù)的子程序調(diào)用指令梯形圖,如圖5-33b所示。在局部變量表某項(xiàng)參數(shù)上單擊鼠標(biāo)右鍵,會(huì)彈出菜單,利用該菜單可對(duì)參數(shù)進(jìn)行增刪等操作。局部變量表中參數(shù)的地址編號(hào)LBO、LB1…是自動(dòng)生成的。
2.指令參數(shù)說(shuō)明
子程序調(diào)用指令多可以設(shè)置16個(gè)參數(shù),每個(gè)參數(shù)包括變量名(又稱符號(hào))、變量類型、數(shù)據(jù)類型和注釋4部分,注釋部分不是必需的。
(1)變量名
變量名在局部變量表中稱作符號(hào),它需要直接輸入,變量名多可用23個(gè)字符表示,并且個(gè)字符不能為數(shù)字。
(2)變量類型
變量類型是根據(jù)參數(shù)傳遞方向來(lái)劃分的,它可分為4種類型:IN(傳入子程序)、IN_OUT(傳入和傳出子程序)、OUT(傳出子程序)和TEMP(暫變量)。參數(shù)的4種變量類型詳細(xì)說(shuō)明如下:
(3)數(shù)據(jù)類型
參數(shù)的數(shù)據(jù)類型有布爾型( BOOL)、字節(jié)型(BYTE)、字型(WORD)、雙字型( DWORD)、整數(shù)型(INT)、雙整數(shù)型(DINT)、實(shí)數(shù)型(REAL)和字符型(STRING)。
3.指令使用的注意事項(xiàng)
在使用帶參數(shù)子程序調(diào)用指令時(shí),要注意以下事項(xiàng):
1)常數(shù)參數(shù)必須指明數(shù)據(jù)類型。例如輸入一個(gè)無(wú)符號(hào)雙字常數(shù)12345時(shí),該常數(shù)必須為DW#12345,如果遺漏常數(shù)的數(shù)據(jù)類型,該常數(shù)可能會(huì)當(dāng)做不同的類型使用。
2)輸入或輸出參數(shù)沒(méi)有自動(dòng)數(shù)據(jù)類型轉(zhuǎn)換功能。例如局部變量表明一個(gè)參數(shù)為實(shí)數(shù)型,而在調(diào)用時(shí)使用一個(gè)雙字,子程序中的值就是雙字。
3)在帶參數(shù)調(diào)用的子程序指令中,參數(shù)必須按照一定順序排列,參數(shù)排列順序依次是:輸入、輸入/輸出、輸出和暫變量。如果用語(yǔ)句表編程,CALL指令的格式為
CALL子程序號(hào),參數(shù)1,參數(shù)2,…,參數(shù)n
4.指令使用舉例
帶參數(shù)的子程序調(diào)用指令使用如圖5-34所示,圖5-34a為主程序,圖5-34b為子程序及局部變量表,主、子程序可以實(shí)現(xiàn)Y= (X+20)×3÷8運(yùn)算。
程序執(zhí)行過(guò)程:在主程序中,常ON觸點(diǎn)SM0.0處于閉合狀態(tài),首先執(zhí)行個(gè)帶參數(shù)子程序調(diào)用指令,轉(zhuǎn)入執(zhí)行子程序,同時(shí)將VW0單元中的數(shù)據(jù)作為X值傳入子程序的LW0單元(局部變量存儲(chǔ)器),在子程序中,ADD_I指令先將LW0中的值+20,結(jié)果存入LW10中,然后MUL_I指令將LW10中的值×3,結(jié)果存入LW12中,DIV_I指令再將LW12中的值÷8,結(jié)果存入LW2中,后子程序結(jié)束返回到主程序,同時(shí)子程序LW2中的數(shù)據(jù)作為Y值被傳入主程序的VW10單元中。子程序返回到主程序后,接著執(zhí)行主程序中的第二個(gè)帶參數(shù)子程序調(diào)用指令,又將VW2中的數(shù)據(jù)作為X值傳入子程序進(jìn)行(X+20)×3÷8運(yùn)算,運(yùn)算結(jié)果作為Y值返回到VW20單元中。
西門子S7-200SMART模塊黑龍江代理價(jià)格