普通計數(shù)器的計數(shù)速度與PLC的掃描周期有關(guān),掃描周期越長,計數(shù)速度越慢,即計數(shù)頻率越低,一般僅為幾十赫茲,因而普通計數(shù)器適用于計數(shù)速度要求不高的場合。
為了滿足高速計數(shù)要求,S7-200 SMART PLC專門設(shè)計了高速計數(shù)器,其計數(shù)速度很快,C型CPU(CR40、CR60)的計數(shù)頻率最高為100kHz,S型CPU(SR20、ST20……SR60、ST60)最高計數(shù)頻率達(dá)200kHz,均不受PLC掃描周期的影響。
S7-200 SMART PLC支持HSC0~HSC3四個高速計數(shù)器,高速計數(shù)器有0、1、3、4、6、7、9、10共八種計數(shù)模式,HSC0 和 HSC2 支持八種計數(shù)模式(模式 0、1、3、4、6、7、9和10),HSC1 和 HSC3 只支持一種計數(shù)模式(模式 0)。
一、高速計數(shù)器指令說明
高速計數(shù)器指令包括高速計數(shù)器定義指令(HDEF)和高速計數(shù)器指令(HSC)。
高速計數(shù)器指令說明如表6-61所示。
表6-61 高速計數(shù)器指令說明
二、高速計數(shù)器的計數(shù)模式
S7-200 SMART PLC高速計數(shù)器有八種計數(shù)模式:模式0和1(內(nèi)部控制方向的單相加/減計數(shù)),模式1具有外部復(fù)位功能;模式3和4(外部控制方向的單相加/減計數(shù)),模式4具有外部復(fù)位功能;模式6和7(雙相脈沖輸入的加/減計數(shù)),模式7具有外部復(fù)位功能;模式9和10(雙相脈沖輸入的正交加/減計數(shù)),模式10具有外部復(fù)位功能。
1.模式0和1(內(nèi)部控制方向的單相加/減計數(shù))在模式0和1時,只有一路脈沖輸入,計數(shù)器的計數(shù)方向(即加計數(shù)或減計數(shù))由PLC特定SM存儲器某位值來決定,該位值為1時為加計數(shù),該位值為0時為減計數(shù)。模式0和1說明如圖6-47所示,以高速計數(shù)器HSC0為例,它采用I0.0端子為計數(shù)脈沖輸入端,SM37.3的位值決定計數(shù)方向,SMD42用于寫入計數(shù)預(yù)設(shè)值。當(dāng)高速計數(shù)器的計數(shù)值達(dá)到預(yù)設(shè)值時會產(chǎn)生中斷請求,觸發(fā)中斷程序的執(zhí)行。
模式0和1的區(qū)別在于模式1具有外部復(fù)位功能,可以通過PLC特定的輸入端子輸入復(fù)位信號將計數(shù)器復(fù)位,模式0無此功能。模式0和1最大允許輸入脈沖頻率為200kHz(S 型CPU)和100kHz(C型CPU)。
圖6-47 模式0和1(內(nèi)部控制方向的單相加/減計數(shù))說明
2.模式3和4(外部控制方向的單相加/減計數(shù))
在模式3和4時,只有一路脈沖輸入,計數(shù)器的計數(shù)方向由PLC特定輸入端子的輸入值來決定,該輸入值為1時為加計數(shù),該輸入值為0時為減計數(shù)。模式3和4說明如圖6-48所示,以高速計數(shù)器HSC4為例,它采用I0.3端子作為計數(shù)脈沖輸入端,I0.4端子輸入值決定計數(shù)方向,SMD152用于寫入計數(shù)預(yù)設(shè)值。
模式3和4的區(qū)別在于模式4具有外部復(fù)位功能,可以通過PLC特定的輸入端子輸入復(fù)位信號將計數(shù)器復(fù)位,模式3無此功能。模式3和4最大允許輸入脈沖頻率為200kHz(S 型CPU)和100kHz(C 型CPU)。
圖6-48 模式3和4(外部控制方向的單相加/減計數(shù))說明
3.模式6和7(雙相脈沖輸入的加/減計數(shù))
在模式6和7時,有兩路脈沖輸入端,一路為加計數(shù)輸入端,另一路為減計數(shù)輸入端。模式6和7說明如圖6-49所示,以高速計數(shù)器HSC0為例,當(dāng)其工作模式為6時,它采用I0.0端子作為加計數(shù)脈沖輸入端,I0.1為減計數(shù)脈沖輸入端,SMD42用于寫入計數(shù)預(yù)設(shè)值。
圖6-49 模式6和7(雙相脈沖輸入的加/減計數(shù))說明
模式6和7的區(qū)別在于模式7具有外部復(fù)位功能,可以通過PLC特定的輸入端子輸入復(fù)位信號將計數(shù)器復(fù)位,模式6無此功能。模式6和7最大允許輸入脈沖頻率為100 kHz(S 型CPU)和50 kHz(C 型CPU)。
4.模式9和10(雙相脈沖輸入的正交加/減計數(shù))
在模式9和10時,有兩路脈沖輸入端,一路為A脈沖輸入端,另一路為B脈沖輸入端,A、B脈沖相位相差90°(即正交,A、B兩脈沖相差1/4周期)。若A脈沖超前B脈沖90°,則為加計數(shù);若A脈沖滯后B脈沖90°,則為減計數(shù)。在這種計數(shù)模式下,可選擇1×方式或4×方式,1×模式又稱單倍頻方式,當(dāng)輸入一個脈沖時計數(shù)器值增1或減1;4×模式又稱四倍頻方式,當(dāng)輸入一個脈沖時計數(shù)器值增4或減4。模式9和10的1×方式和4×方式說明如圖6-50所示。
模式9和10的區(qū)別在于模式10具有外部復(fù)位功能,可以通過PLC特定的輸入端子輸入復(fù)位信號將計數(shù)器復(fù)位,模式9無此功能。在模式9和10時, S型 CPU的最大允許輸入脈沖頻率為100kHz(1×方式時)和400kHz(4×方式時),C型 CPU的最大允許輸入脈沖頻率為50kHz(1×方式時)和400kHz(4×方式時)。
圖6-50 模式9和10(雙相脈沖輸入的正交加/減計數(shù))說明
三、高速計數(shù)器分配的輸入端子及在各工作模式下的功能
高速計數(shù)器工作時需要使用一些輸入端子,HSC0~HSC3高速計數(shù)器分配的輸入端子及在不同工作模式下端子的功能見表6-62。同一個輸入端子不能用于兩種不同的功能,但是任何一個沒有被高速計數(shù)器當(dāng)前模式使用的輸入端子,均可以用作其他用途。例如,HSC0計數(shù)器工作在模式1時,會分配占用I0.0端子用于脈沖輸入,I0.4端子用于復(fù)位信號輸入,I0.1端子在模式1時未使用,可以用作HSC1計數(shù)器工作在模式0時的脈沖輸入端子。
表6-62 HSC0~HSC3高速計數(shù)器分配的輸入端子及在不同工作模式下端子的功能
四、高速計數(shù)器輸入端子濾波時間的設(shè)置
由于PLC使用時大多數(shù)情況下輸入信號頻率較低,為了抑制高頻信號的干擾,輸入端子的默認(rèn)濾波時間為6.4ms,該濾波時間較長,最高只允許78Hz信號輸入。如果要將某些端子用于高速計數(shù)器輸入,需要將這些端子的濾波時間設(shè)短。表6-63列出了PLC輸入端子濾波時間與對應(yīng)的最大檢測頻率。
表6-63 PLC輸入端子濾波時間與對應(yīng)的最大檢測頻率
注:1.S型號CPU包括SR20、ST20、SR30、ST30、SR40、ST40、SR60、ST60。
2.C型號CPU包括CR40、CR60。
在STEP 7-Micro/WIN SMART軟件中可以設(shè)置(組態(tài))PLC輸入端子的濾波時間,設(shè)置操作如圖6-51所示。在項目指令樹區(qū)域雙擊“系統(tǒng)塊”,彈出“系統(tǒng)塊”對話框;在對話框上方選中CPU模塊,在左邊選擇數(shù)字量輸入項內(nèi)的I0.0~I(xiàn)0.7,然后在右邊對高速計數(shù)器使用的端子進(jìn)行濾波時間設(shè)置;先勾選端子旁“脈沖捕捉”選項,再根據(jù)計數(shù)可能的最大頻率來選擇合適的濾波時間,不用作高速計數(shù)器的輸入端子濾波時間保持默認(rèn)值;單擊“確定”按鈕關(guān)閉“系統(tǒng)塊”對話框,將系統(tǒng)塊下載到CPU模塊即可使濾波時間設(shè)置生效。
圖6-51 在編程軟件的系統(tǒng)塊內(nèi)設(shè)置輸入端子的濾波時間
五、高速計數(shù)器的控制字節(jié)
高速計數(shù)器定義HDEF指令只能讓某編號的高速計數(shù)器工作在某種模式,無法設(shè)置計數(shù)器的方向、復(fù)位等內(nèi)容。為此,每個高速計數(shù)器都配備了一個專用的控制字節(jié)來對計數(shù)器進(jìn)行各種控制設(shè)置。
1.控制字節(jié)功能說明
高速計數(shù)器HSC0~HSC3的控制字節(jié)各位功能說明見表6-64。例如,高速計數(shù)器HSC0的控制字節(jié)為SMB37,其中SM37.0位用來設(shè)置復(fù)位有效電平,當(dāng)該位為0時高電平復(fù)位有效,該位為1時低電平復(fù)位有效。
表6-64 高速計數(shù)器HSC0~HSC3的控制字節(jié)各位功能說明
2.控制字節(jié)設(shè)置舉例
用控制字節(jié)設(shè)置高速計數(shù)器如圖6-52所示。PLC第一次掃描時SM0.1觸點接通一個掃描周期,首先MOV_B指令執(zhí)行,將十六進(jìn)制數(shù)F8(即11111000)送入SMB37單元,則SM37.7~SM37.0為11111000,這樣就將高速計數(shù)器HSC0的復(fù)位設(shè)為高電平,正交計數(shù)設(shè)為4×模式;然后HDEF指令執(zhí)行,將HSC0工作模式設(shè)為模式10。
圖6-52 用控制字節(jié)設(shè)置高速計數(shù)器
六、高速計數(shù)器計數(shù)值的讀取與設(shè)置
1.計數(shù)值的讀取
高速計數(shù)器的當(dāng)前計數(shù)值保存在HC存儲單元中,高速計數(shù)器HSC0~HSC3的當(dāng)前值分別保存在HC0~HC3單元中,這些單元中的數(shù)據(jù)為只讀類型,即不能向這些單元寫入數(shù)據(jù)。
圖6-53 高速計數(shù)器計數(shù)值的讀取
高速計數(shù)器計數(shù)值的讀取如圖6-53所示。當(dāng)I0.0觸點由斷開轉(zhuǎn)為閉合時,上升沿P觸點接通一個掃描周期,MOV_DW指令執(zhí)行,將高速計數(shù)器HSC0的當(dāng)前計數(shù)值(保存在HC0單元)讀入并保存在VD200單元。
2.計數(shù)值的設(shè)置
每個高速計數(shù)器都用兩個專用存儲單元分別存放當(dāng)前計數(shù)值(CV)和預(yù)設(shè)計數(shù)值(PV),這兩個值都是32位(雙字)。在高速計數(shù)器工作時,當(dāng)CV=PV時會觸發(fā)HSC中斷。當(dāng)前計數(shù)值可從HC單元中讀取,預(yù)設(shè)值則無法直接讀取。要將新的CV值或PV值載入高速計數(shù)器,必須先設(shè)置相應(yīng)的控制字節(jié)和專用雙字存儲單元,再執(zhí)行HSC指令以將新值傳送到高速計數(shù)器。
HSC0~HSC3高速計數(shù)器存放CV值和PV值的專用存儲單元見表6-65。例如,高速計數(shù)器HSC0采用SMD38雙字單元存放新CV值,采用SMD42雙字單元存放新PV值。
表6-65 HSC0~HSC3高速計數(shù)器存放CV值和PV值的專用存儲單元
高速計數(shù)器計數(shù)值的設(shè)置如圖6-54所示。當(dāng)I0.2觸點由斷開轉(zhuǎn)為閉合時,上升沿P觸點接通一個掃描周期,首先第1個MOV_DW指令執(zhí)行,將新CV值(當(dāng)前計數(shù)值)“100”送入SMD38單元;然后第2個MOV_DW指令執(zhí)行,將新PV值(預(yù)設(shè)計數(shù)值)“200”送入SMD42單元;接著高速計數(shù)器HSC0的控制字節(jié)中的SM37.5、SM37.6兩位均得電為1,允許HSC0更新CV值和PV值;最后HSC指令執(zhí)行,將新CV值和PV值載入高速計數(shù)器HSC0。
圖6-54 高速計數(shù)器計數(shù)值的設(shè)置
在執(zhí)行HSC指令前,設(shè)置控制字節(jié)和修改SMD單元中的新CV值、PV值不會影響高速計數(shù)器的運(yùn)行;只有執(zhí)行HSC指令后,高速計數(shù)器才按新設(shè)置值開始工作。
七、高速計數(shù)器的狀態(tài)字節(jié)
每個高速計數(shù)器都有一個控制字節(jié)和一個狀態(tài)字節(jié),控制字節(jié)用來設(shè)置控制計數(shù)器的工作,狀態(tài)字節(jié)則用來反映計數(shù)器的一些工作狀態(tài)。HSC0~HSC3高速計數(shù)器的狀態(tài)字節(jié)見表6-66,其中每個狀態(tài)字字節(jié)的0~4位不用。監(jiān)視高速計數(shù)器狀態(tài)字節(jié)的狀態(tài)位值,除了可以了解計數(shù)器當(dāng)前的工作狀態(tài)外,還可以用狀態(tài)位值來觸發(fā)其他操作。例如,當(dāng)SM36.6=1時,表示HSC0的當(dāng)前計數(shù)值正好等于預(yù)設(shè)值,可以用SM36.6=1觸發(fā)執(zhí)行一段程序。
表6-66 HSC0~HSC3高速計數(shù)器的狀態(tài)字節(jié)
八、高速計數(shù)器的編程步驟與舉例
1.高速計數(shù)器的編程步驟
高速計數(shù)器的編程較為復(fù)雜,一般步驟如下。根據(jù)計數(shù)要求設(shè)置高速計數(shù)器的控制字節(jié)。例如,讓HSC1的控制字節(jié)SMB47=16#F8,則將HSC1設(shè)為允許計數(shù)、允許寫入計數(shù)初始值、允許寫入計數(shù)預(yù)設(shè)值、更新計數(shù)方向為加計數(shù)、正交計數(shù)為4×模式、高電平復(fù)位。執(zhí)行HDEF指令,將某編號的高速計數(shù)器設(shè)為某種工作模式。將計數(shù)初始值寫入當(dāng)前值存儲器。當(dāng)前值存儲器是指SMD38、SMD48、SMD58和SMD138。將計數(shù)預(yù)設(shè)值寫入預(yù)設(shè)值存儲器。預(yù)設(shè)值存儲器是指SMD42、SMD52、SMD62和SMD142。如果往預(yù)設(shè)值存儲器寫入16#00,則高速計數(shù)器不工作。為了捕捉當(dāng)前值(CV)等于預(yù)設(shè)值(PV),可用中斷連接ATCH指令將條件CV=PV中斷事件(HSC0的CV=PV對應(yīng)中斷事件12)與某中斷程序連接起來。為了捕捉計數(shù)方向改變,可用中斷連接ATCH指令將方向改變中斷事件(HSC0的方向改變對應(yīng)中斷事件27)與某中斷程序連接起來。為了捕捉計數(shù)器外部復(fù)位,可用中斷連接ATCH指令將外部復(fù)位中斷事件(HSC0的外部復(fù)位對應(yīng)中斷事件28)與某中斷程序連接起來。執(zhí)行中斷允許ENI指令,允許系統(tǒng)接受高速計數(shù)器(HSC)產(chǎn)生的中斷請求。執(zhí)行HSC指令,啟動某高速計數(shù)器按前面的設(shè)置工作。編寫相關(guān)的中斷程序。
2.高速計數(shù)器的編程舉例
高速計數(shù)器的編程舉例見表6-67,整個程序由MAIN(主程序)、SBR_0(子程序0)和INT_0(中斷程序0)組成。
PLC進(jìn)入RUN模式第一次掃描時,主程序中的SM0.1觸點接通一個掃描周期,執(zhí)行調(diào)用子程序SBR_0指令,程序轉(zhuǎn)入執(zhí)行SBR_0子程序。在子程序SBR_0中,對高速計數(shù)器HSC0進(jìn)行初始化設(shè)置,設(shè)置內(nèi)容有:用MOV_B指令設(shè)置HSC0的控制字節(jié)SMB37;用HDEF指令讓HSC0工作在模式10;用MOV_DW指令將HSC0當(dāng)前值(CV)存儲器SMD38清0;用MOV_DW指令往HSC0的計數(shù)預(yù)設(shè)值(PV)存儲器SMD42中寫入PV值;用ATCH指令將中斷事件12(HSC0的CV=PV時觸發(fā)的事件)與中斷程序INT_0關(guān)聯(lián)起來;用ENI指令打開所有的中斷;用HSC指令使設(shè)置生效并啟動HSC0工作。
表6-67 高速計數(shù)器的編程舉例
高速計數(shù)器HSC0啟動后開始計數(shù),當(dāng)HSC0的當(dāng)前計數(shù)值(CV)等于計數(shù)預(yù)設(shè)值(PV)時,觸發(fā)中斷事件12,由于已將中斷事件12與中斷程序INT_0關(guān)聯(lián)起來,故馬上執(zhí)行中斷程序INT_0。在INT_0程序中,先用MOV_DW指令將HSC0當(dāng)前值(CV)存儲器SMD38清0,再用MOV_B指令重新設(shè)置HSC0的控制字節(jié)SMB37,然后用HSC指令使新設(shè)置生效并啟動HSC0重新工作。
高速計數(shù)器HSC0每計數(shù)到CV=PV時都會產(chǎn)生中斷,執(zhí)行一次中斷程序INT_0;執(zhí)行中斷程序后,HSC0又按新的設(shè)置重新開始計數(shù),以后不斷重復(fù)這個過程。
審核編輯:湯梓紅
-
plc
+關(guān)注
關(guān)注
5016文章
13387瀏覽量
465394 -
SMART
+關(guān)注
關(guān)注
3文章
227瀏覽量
44761 -
指令
+關(guān)注
關(guān)注
1文章
611瀏覽量
35812 -
計數(shù)器
+關(guān)注
關(guān)注
32文章
2261瀏覽量
94983 -
S7-200
+關(guān)注
關(guān)注
13文章
408瀏覽量
50567
原文標(biāo)題:一篇文章搞懂:S7-200 SMART PLC高速計數(shù)器指令!
文章出處:【微信號:中泰PLC自動化教學(xué),微信公眾號:中泰PLC自動化教學(xué)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
![](https://file.elecfans.com/web2/M00/AA/E2/pYYBAGSAD4SAY6aIAAEdJUDg0hA529.png)
16內(nèi)部講座:S7-200 SMART 高速計數(shù)器功能#硬聲創(chuàng)作季
?S7-200SMART與S7-200的區(qū)別是什么
西門子S7-200 SMART PLC的定時器和計數(shù)器及功能指令詳解
西門子S7-200 SMART系列PLC的系統(tǒng)手冊免費(fèi)下載
![西門子<b class='flag-5'>S7-200</b> <b class='flag-5'>SMART</b>系列<b class='flag-5'>PLC</b>的系統(tǒng)手冊免費(fèi)下載](https://file.elecfans.com/web1/M00/D3/A9/o4YBAF_W3Y6ANs2LAADYmxs-HdM596.png)
西門子S7-200 SMART系統(tǒng)手冊第二版免費(fèi)下載
![西門子<b class='flag-5'>S7-200</b> <b class='flag-5'>SMART</b>系統(tǒng)手冊第二版免費(fèi)下載](https://file.elecfans.com/web1/M00/D4/58/o4YBAF_Z0GOAIliMAADaSGTG61g662.png)
西門子S7-200 PLC編程與應(yīng)用(定時器與計數(shù)器)
Simatic S7-200 SMART PLC介紹
S7-200 SMART PLC的應(yīng)用案例
SIMATIC S7-200 SMART系統(tǒng)手冊
S7協(xié)議讀取西門子S7-200 Smart PLC數(shù)據(jù)
![<b class='flag-5'>S7</b>協(xié)議讀取西門子<b class='flag-5'>S7-200</b> <b class='flag-5'>Smart</b> <b class='flag-5'>PLC</b>數(shù)據(jù)](https://file1.elecfans.com/web2/M00/FB/17/wKgZomaPVMyACXs0AAAumSg9lMg812.png)
評論