啟程自動(dòng)化成立于2012年,,培訓(xùn)項(xiàng)目主打西門(mén)子PLC編程系統(tǒng)集成,、工業(yè)機(jī)器人編程、EPLAN電氣設(shè)計(jì),、視覺(jué)等培訓(xùn)與技術(shù)服務(wù)的機(jī)構(gòu),。推薦高薪就業(yè),越努力越幸運(yùn) 假設(shè)在旋轉(zhuǎn)機(jī)械上有單相增量編碼器作為反饋,,接入到S7-1200 CPU,,要求在計(jì)數(shù)25個(gè)脈沖時(shí),計(jì)數(shù)器復(fù)位,,置位 M0.5,,并設(shè)定新預(yù)置值為50個(gè)脈沖,當(dāng)計(jì)滿50個(gè)脈沖后復(fù)位M0.5,,并將預(yù)置值再設(shè)為25,,周而復(fù)始執(zhí)行此功能。組態(tài)步驟: 先在設(shè)備與組態(tài)中,,選擇CPU,單擊屬性,,激活高速計(jì)數(shù)器,,并設(shè)置相關(guān)參數(shù)。此步驟必須事先執(zhí)行,,S7-1200的高速計(jì)數(shù)器功能必須要先在硬件組態(tài)中激活,,才能進(jìn)行下面的步驟。添加硬件中斷塊,,關(guān)聯(lián)相對(duì)應(yīng)的高速計(jì)數(shù)器所產(chǎn)生的預(yù)置值中斷,,在中斷塊中添加高速計(jì)數(shù)器指令塊,編寫(xiě)修改預(yù)置值程序,,設(shè)置復(fù)位計(jì)數(shù)器等參數(shù),。將程序下載,執(zhí)行功能,。 硬件組態(tài)如圖1所示,,進(jìn)入CPU的硬件視圖。 ①展開(kāi)PLC,,左鍵雙擊設(shè)備組態(tài) ②在CPU硬件視圖,,左鍵選中CPU 如圖2所示,啟用高速計(jì)數(shù)器,。 ①左鍵選擇屬性 ②在導(dǎo)航欄中選擇“高速計(jì)數(shù)器(HSC)”,,在HSC1中選擇“常規(guī)” ③勾選“啟用該高速計(jì)數(shù)器” 圖3.激活高速計(jì)數(shù)功能 ①在HSC1中選擇'功能' ②計(jì)數(shù)類(lèi)型選擇“計(jì)數(shù)” ③工作模式選擇“單相” ④計(jì)數(shù)方向取決于選擇“用戶程序(內(nèi)部方向控制)” ⑤初始計(jì)數(shù)方向選擇“加計(jì)數(shù)” ②初始計(jì)數(shù)器值設(shè)置“0” ③初始參考值設(shè)置“25” 如圖5所示,,組態(tài)事件,。 ①在HSC1中選擇'事件組態(tài)' ②激活“為計(jì)數(shù)器值等于參考值這一事件生成中斷” ③左鍵點(diǎn)擊該按鈕在彈出頁(yè)面選擇所需的硬件中斷 ④如果沒(méi)有硬件中斷或者沒(méi)有所需要的硬件中斷,則左鍵點(diǎn)擊按鈕“新增”,,會(huì)彈出頁(yè)面,如圖6所示 ①選擇'Hardware interrupt' ②注意該硬件中斷的中斷OB編號(hào) ③左鍵點(diǎn)擊“確定”按鈕 如圖7所示,,設(shè)置硬件輸入點(diǎn),。 圖7. 設(shè)置輸入點(diǎn) ①在HSC1中選擇'硬件輸入' ②在時(shí)鐘發(fā)生器輸入中選擇所需的I點(diǎn),例如例子中的“I0.0” ①在HSC1中選擇'I/O地址' ②起始地址到結(jié)束地址為HSC實(shí)際計(jì)數(shù)器值的地址,圖中地址為ID1000,。 ③組織塊和過(guò)程映像一般設(shè)置默認(rèn),,可以設(shè)置計(jì)數(shù)值在指定OB更新,。 如圖9所示,設(shè)置I點(diǎn)的輸入濾波器時(shí)間,。 圖9.輸入濾波器 ①在CPU或者信號(hào)板中找到使用的通道 ②在輸入濾波器設(shè)置合適的濾波值,,V4.0以后版本需要設(shè)置,具體可以參考FAQ頁(yè)面,,為什么S7-1200 高速計(jì)數(shù)器只能檢測(cè)到低頻率的脈沖信號(hào),。 程序編寫(xiě)如圖10所示,,展開(kāi)項(xiàng)目樹(shù)中的PLC的程序塊,,選擇所需的硬件中斷。 圖10. 打開(kāi)硬件中斷塊 ①左鍵雙擊打開(kāi)所需的硬件中斷 如圖11所示,,在指令列表中找到工藝指令 -- 計(jì)數(shù) -- CTRL_HSC_EXT,。 圖11. 添加高速計(jì)數(shù)器 ①在圖中位置找到所需指令,將指令拖入硬件中斷的程序編輯器,,會(huì)產(chǎn)生如圖12所示的調(diào)用選項(xiàng),,只能選擇單個(gè)實(shí)例,單擊“確定”按鈕,。 圖12. 定義指令背景數(shù)據(jù)塊 如圖13所示,,新建DB,新建變量,,數(shù)據(jù)類(lèi)型為HSC_Count,。 圖13. 高速計(jì)數(shù)器變量 ①在數(shù)據(jù)類(lèi)型處手動(dòng)輸入HSC_Count,輸入完回車(chē)確認(rèn),。 如圖14所示,,展開(kāi)該變量。 圖14. 高速計(jì)數(shù)器變量 ①將該變量設(shè)置為1,,也就是高速計(jì)數(shù)器的軟件門(mén)使能,。 如圖15所示,在硬件中斷內(nèi)編程,。 圖 15. 硬件中斷編程 程序段1:M0.5作為標(biāo)志位,,在OB1第一個(gè)掃描周期置位,參考圖16,,該標(biāo)志位為1時(shí)指代參考值為25時(shí),,為0時(shí)指代參考值為50時(shí)。 當(dāng)進(jìn)入中斷時(shí),,反轉(zhuǎn)標(biāo)志位,,并賦值新的參考值。 程序段2:設(shè)置新的當(dāng)前值為0,設(shè)置新的當(dāng)前值使能,,設(shè)置新的參考值使能,。 程序段3:觸發(fā)高速計(jì)數(shù)器指令 ①輸入高速計(jì)數(shù)器標(biāo)識(shí)符,以HSC1為例,,建議輸入符號(hào)名“Local~HSC_1”,。 ②在CTRL處輸入圖13處新建的變量。 如圖16所示,,在OB1中編寫(xiě)程序,,只需將圖15中的程序段3復(fù)制到OB1即可。 圖16. OB1程序 高速計(jì)數(shù)器常見(jiàn)問(wèn)題如何在高速計(jì)數(shù)器斷電或停機(jī)后實(shí)現(xiàn)數(shù)據(jù)保持? 答:有兩種方法,分別使用CTRL_HSC指令和CTRL_HSC_EXT指令,。 首先配置高速計(jì)數(shù)器:
方法1:使用CTRL_HSC指令
方法2:使用CTRL_HSC_EXT指令
高速計(jì)數(shù)器的計(jì)數(shù)范圍是什么? 答:高速計(jì)數(shù)器的計(jì)數(shù)范圍是-231~231-1,。當(dāng)向上計(jì)數(shù)到最大值231-1時(shí),會(huì)跳回到-231,;當(dāng)向下計(jì)數(shù)到最小值-231時(shí),,會(huì)跳回231-1。 斷電停機(jī)或復(fù)位后,,高速計(jì)數(shù)器的值會(huì)復(fù)位到什么值,? 答:CPU 斷電或重啟后,高速計(jì)數(shù)器的值會(huì)復(fù)位到初始值,;如果執(zhí)行了外部復(fù)位,,高速計(jì)數(shù)器的值會(huì)復(fù)位為0。 不編寫(xiě) CTRL_HSC,,高速計(jì)數(shù)器是否可以計(jì)數(shù),? 答:只要在硬件配置里使能并組態(tài)了高速計(jì)數(shù)器,不編寫(xiě) CTRL_HSC,,高速計(jì)數(shù)器就可以正常計(jì)數(shù),。CTRL_HSC 只是完成參數(shù)寫(xiě)入的功能,。 為什么高速計(jì)數(shù)器的數(shù)值不增加,總是停在一個(gè)固定的值,? 答:如果編程了 CTRL_HSC,,當(dāng)置位 CV 將 NEW_CV 寫(xiě)入當(dāng)前值后,CV位不會(huì)自動(dòng)復(fù)位為0,,這時(shí)程序會(huì)一直將 NEW_CV寫(xiě)入當(dāng)前值,,導(dǎo)致高速計(jì)數(shù)器不繼續(xù)計(jì)數(shù)而保持在固定的 NEW_CV 值。因此必須編程復(fù)位 CV,,才能避免該錯(cuò)誤的發(fā)生,。 如果高速計(jì)數(shù)器定義為 '運(yùn)動(dòng)軸' 計(jì)數(shù),程序中是否還可以訪問(wèn) ID1000:P 的值,? 答:如果高速計(jì)數(shù)器用做內(nèi)部的運(yùn)動(dòng)控制的計(jì)數(shù),,此時(shí)程序中不能再訪問(wèn) ID1000:P 的值,否則會(huì)造成 I/O 訪問(wèn)錯(cuò)誤,。如果沒(méi)有編程GET_ERROR 或 GET_ERR_ID 指令,,還會(huì)造成 CPU 停機(jī)。 為什么 CTRL_HSC 的 'STATUS' 會(huì)返回 '80C0' 多次訪問(wèn)高速計(jì)數(shù)器錯(cuò)誤,? 答:如果高速計(jì)數(shù)器用做內(nèi)部的運(yùn)動(dòng)控制的計(jì)數(shù),,則CTRL_HSC 的 'STATUS' 就會(huì)返回 '80C0' 多次訪問(wèn)高速計(jì)數(shù)器錯(cuò)誤。 使用信號(hào)板 SB1221 4DI (CPU V3.0及早期版本)最多可以接入多少組高速計(jì)數(shù)器 ,? 答:最多2組,,所使用的高速計(jì)數(shù)器號(hào)可以是 HSC1、HSC2,、HSC5,、HSC6其中2組。 為什么S7-1200 高速計(jì)數(shù)器只能檢測(cè)到低頻率的脈沖信號(hào),? 答:在 S7-1200 CPU 和 SB 信號(hào)板的屬性中,,數(shù)字量輸入通道的輸入濾波器默認(rèn)設(shè)置值為 6.4 millisec,該輸入濾波時(shí)間對(duì)應(yīng)的高速計(jì)數(shù)器能檢測(cè)到的最大頻率為 78Hz,。 因此如果使用該默認(rèn)值,,且 S7-1200 CPU 或 SB 信號(hào)板接入的高速輸入脈沖超過(guò) 78Hz,則 S7-1200 CPU 或SB 信號(hào)板過(guò)濾掉該頻率的輸入脈沖,。 要正確使用 S7-1200 CPU 和 SB 信號(hào)板高速計(jì)數(shù)功能,,需要根據(jù)實(shí)際接入的高速輸入脈沖最大頻率,在'屬性—常規(guī)—數(shù)字量輸入通道設(shè)置'輸入濾波器時(shí)間,。 V4.0 或更高版本的 S7-1200 CPU 和 SB 信號(hào)板,,每個(gè)數(shù)字量輸入點(diǎn)都可設(shè)置輸入濾波器時(shí)間, 如下圖 12,、13 所示: 圖 12. 設(shè)置 S7-1200 CPU 輸入濾波器時(shí)間 圖 13. 設(shè)置 SB 信號(hào)板輸入濾波器時(shí)間 下表 1 顯示了輸入濾波器時(shí)間和可檢測(cè)到的最大輸入頻率:
表 1 輸入濾波器時(shí)間和可檢測(cè)到的最大輸入頻率 S7-1200 的高速計(jì)數(shù)器輸入通道是否固定,? 答:早期固件版本的高速計(jì)數(shù)器輸入通道是固定的,。 V4.0 或更高版本的 S7-1200 的高速計(jì)數(shù)器輸入通道可以在其屬性中更改。如圖 14 所示: 圖 14. 更改高速計(jì)數(shù)器輸入通道 S7-1200 CPU 最多支持多少個(gè)高速計(jì)數(shù)器,? 答:早期固件版本的S7-1200 CPU 中,,CPU 1211C 最多支持3個(gè)單相的高速計(jì)數(shù)器,CPU 1212C 最多支持 4 個(gè)單相的高速計(jì)數(shù)器,,CPU1214C 和 CPU1215C最 多支持6個(gè)單相的高速計(jì)數(shù)器。 V4.0或更高版本的所有型號(hào)的S7-1200 CPU 都支持最多6個(gè)單相高速計(jì)數(shù)器,。 需要注意的是V4.0或更高版本的 S7-1200 CPU 有默認(rèn)的高速計(jì)數(shù)器通道地址,,而 CPU 1211C 數(shù)字量輸入地址僅有 6 個(gè),為I0.0-I0.5,,CPU 1212C 數(shù)字量輸入地址僅有8個(gè),,為I0.0-I0.7。 因此如果需要使用 CPU 1211C 的 HSC4,, HSC5,, HSC6 或 CPU 1212C 的 HSC5, HSC6 ,,則需要更改其硬件輸入地址到有效的范圍才能正常使用,。以 CPU1211C 舉例,如圖 15,、16,、17所示: 圖 15. 更改 HSC4 的硬件輸入地址 圖 16. 更改 HSC5 的硬件輸入地址 圖 17. 更改 HSC6 的硬件輸入地址 來(lái)源:網(wǎng)絡(luò)侵刪 |
|
來(lái)自: 反恐精英禿鷲 > 《高速計(jì)數(shù)》