最近課程進度正好講到高速計數(shù),有些學(xué)員反饋說高速計數(shù)很難,沒有講之前很多地方看不懂,我分析了每期學(xué)員的學(xué)習(xí)情況總結(jié)了幾個問題及一些見解,希望對大家學(xué)習(xí)有所幫助:
一、不知到什么場合需要用到高速計數(shù)。
高速計數(shù)與普通計數(shù)器最大的區(qū)別在于計數(shù)頻率高,根本原因是因為其原理有著本質(zhì)上的區(qū)別。普通計數(shù)器是通過掃描計數(shù)輸入條件是否發(fā)生變化來進行計數(shù),其計數(shù)頻率受掃描周期的影響,所以頻率不會太高。而高速計數(shù)器則是通過外部高速輸入I點直接采集外部高速事件到CPU中來實現(xiàn)計數(shù),其計數(shù)頻率不再受掃描周期限制,所以計數(shù)頻率可以高達200KHZ。由此可知,高速計數(shù)主要是應(yīng)用于計數(shù)頻率較高的場合,應(yīng)用時常與編碼器配合使用,典型的應(yīng)用有兩個:
1)用于速度檢測。
2)用于位置檢測。
二、不知道高速計數(shù)程序該從何寫起。
高速計數(shù)程序雖然步驟較多,但是還是有跡可循,編程步驟較為固定,總結(jié)了一下編程步驟不外乎一下幾步:
1)選擇合適的高速計數(shù)器以及定義符合要求的工作模式,該步采用HDEF指令
如圖1-1所示。HSC為高速計數(shù)編號1-5,MODE為工作模式可選0、1、3、4、6、7、9、10。該指令定義了計數(shù)輸入,方向及復(fù)位輸入端子,如圖1-2所示。
圖1-1
圖1-2
2)寫高速計數(shù)器的控制字節(jié)。該步應(yīng)用MOV_B將控制字節(jié)寫入對于地址中,如圖1-3所示,控制字節(jié)表如圖1-4所示。
圖1-3
圖1-4
3)設(shè)定新的預(yù)設(shè)值MOV_DW(可選)
當(dāng)需要達到某個計數(shù)值時觸發(fā)動作,則需要提前設(shè)置一個預(yù)設(shè)值,高速計數(shù)預(yù)設(shè)值為一個32位雙整數(shù),所以用MOV_DW指令,如圖1-5所示。
圖1-5
4)設(shè)定高速計數(shù)器的當(dāng)前值MOV_DW(可選)
需要計數(shù)從一個特定的值開始,如從0開始,則需要將當(dāng)前值更新成0,當(dāng)前值也是一個雙整數(shù),所以用MOV_DW操作,如圖1-6所示。
圖1-6
高速計數(shù)常需要中斷配合使用,需編寫中斷程序。高速計數(shù)器當(dāng)前值等于預(yù)設(shè)值(CV=PV)時會產(chǎn)生中斷;除0,1號模式外其他模式方向改變也會產(chǎn)生中斷;有外部復(fù)位輸入的模式下,當(dāng)外部復(fù)位輸入時也會產(chǎn)生中斷。中斷事件號如表1-7所示。
表1-7
注意:高速計數(shù)觸發(fā)動作一定要CV=PV中斷來觸發(fā),不能用比較指令。
5)允許中斷ENI。
6)連接中斷程序和事件號ATCH,如圖1-8所示。
圖1-8
7)編寫中斷程序。
8)執(zhí)行高速計數(shù)器HSC,如圖1-9所示。
圖1-9
不同的高速計數(shù)器,程序編寫方法類似,只是控制字節(jié)及預(yù)設(shè)值地址等不相同,如表1-10所示。
表1-10
以上就是編寫高速計數(shù)程序的基本步驟,只要理解了以上八步,高速計數(shù)程序再也難不倒你們了。
附上一個小案例供大家學(xué)習(xí):利用高速計數(shù)器HSC0計旋轉(zhuǎn)編碼器的數(shù)值,當(dāng)計到1000個數(shù)點亮Q0.0,當(dāng)計到2000時熄滅并清零當(dāng)前值,如此循環(huán)不斷,程序如圖1-11至1-13所示。
圖1-11
圖1-12
圖1-13
-
編碼器
+關(guān)注
關(guān)注
45文章
3574瀏覽量
133982 -
計數(shù)器
+關(guān)注
關(guān)注
32文章
2253瀏覽量
94287
原文標(biāo)題:S7-200 SMART高速計數(shù)原來這么簡單~~
文章出處:【微信號:GKYXT1508,微信公眾號:工控云學(xué)堂】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論