zhujianzhong
好人一生平安
級別: 略有小成
|
版主及各位高手,怎么用一個增量式編碼器測得它的脈沖總數(shù)和脈沖密度(頻率)?謝謝 |
|
---|---|---|
|
醉湮邃虞
醉湮邃虞話老黑
級別: 略有小成
|
版主沒來的急回答你,先讓俺看到,俺就充當(dāng)一回高手。 你說的增量編碼器是否就是要做的計數(shù)器? 如果是外部計數(shù)器需要通過其他方式讀取其值,這要看那計數(shù)器的說明書如何讀取,應(yīng)該不在討論之列。 如果是要做的計數(shù)器,比如使用HSC1高速計數(shù)器,就需要把外部脈沖信號連接到I0.6 首先在 SM0.1的控制下,初始化HSC1工作于模式0(內(nèi)部復(fù)位和改變方向),然后讓其使能。 此時HC1已經(jīng)開始工作,程序中任何時刻都可讀取HSC1計數(shù)器的當(dāng)前值,例如MOVD HC1, VD0,即可得到當(dāng)前值,是不是總脈沖數(shù)那需要你來判定什么時候讀的是總脈沖數(shù)。 獲得頻率就有點兒麻煩了,這要根據(jù)你的脈沖頻率的大致數(shù)量級,而選擇不同的方法和測試時間。 如果脈沖頻率在1HZ以下下,就需要測試兩個脈沖之間的時間長度來測試頻率,不用使用高速計數(shù)器,應(yīng)該也不在討論之列 。 脈沖脈沖頻率在10HZ以上,就需要用一定時間來獲取脈沖數(shù)然后轉(zhuǎn)換成頻率,而這個一定時間是根據(jù)脈沖頻率的大致數(shù)量級而定,這個時間內(nèi)獲得的脈沖數(shù)越多算出來的就越準(zhǔn)確,比如一小時,而時間越長,系統(tǒng)的遲滯也越長,多長時間應(yīng)該是你能夠忍受的最大遲滯時間和這段時間能夠獲取相當(dāng)數(shù)量的脈沖, 例如3秒內(nèi),脈沖數(shù)不低于10。 .實現(xiàn)方法是:建立一個毫秒記時器使其反復(fù)工作在3秒,然后記錄并計算,下面的程序,VD10是每一個3秒始時的累計脈沖總數(shù),VD18中是3秒內(nèi)獲得的脈沖數(shù),運行中觀察VD18,如果數(shù)量很大則可縮短測試時間,如果很少,就需要加大測試時間,VD14中是脈沖頻率 LD SM0.0 LPS AN T37 LPS EU MOVD HC1, VD10 LPP TON T37, 30 LPP A T37 EU MOVD HC1, VD18 -D VD10, VD18 MOVD VD18, VD14 /D +3, VD14 程序?qū)嶋H使用中還要有HC1的清零指令,啥時清零是你來定的,如何清零參看HC1幫助。 [ 此帖被醉湮邃虞在2009-04-01 12:50重新編輯 ] |
|
---|---|---|
|