請問我這樣做在歸零時脈波數會歸零嗎?

我這樣好像有點BUG..有時會數到60幾才歸零~~還有數到100多的~~是因為取樣的速度嗎~~還是我歸零點和第24個脈波有點不同步的關西阿??謝 謝           

PS.信號是0-5V的方波~~ 

就上圖中的程式來說,DIO-Port取得信號時,"一轉24個波"為True時,"歸零波一轉一個"才有作用.

所以,如果"一轉24個波"為False時,應該輸入0到Shift Register,而且"脈波數"是不是應該放到Case Structure外面比較適當.

謝謝你的說明不過你說在false的時候要放0到shift register可是我考慮到的是我的DI是0-5V的方波所以說信號是0-1在變化的在我抓到1的時候脈波數會加1那如果是0的話那shift register不是就被歸零了嗎那我的脈波數根本加不到24只會保持在1吧所以我false時是把另一邊shift register直接拉到另一邊這樣我的脈波數才會保持在我現在所算到的脈波數那也就是說可能是我兩個訊號有點不同步在歸零點到時我的24個脈波那條線有可能在false的狀態~~以致沒歸零那應該要怎麼解決ㄋ?

如果沒有將Shift Register做歸零的動作的話.會造成一直累加的動作;

例如:

第一次從0加到24,

第二次再進入True后會從24開始做累加,例如加到50.

第三次會從50開始加.

....

除非你將程式停止後再重新執行.

你能詳細說明一下,你要的動作及功能嗎?

我知道...我的歸零脈波如果判斷位TRUE的時候~~shift register就會歸零~~我知道問題應該是出在我的歸零脈波和24個脈波不太同步的關西吧~~可能判斷到轉一圈歸零脈波出現時~~24個脈波剛好抓到低電位形成false~~所以無法歸零吧~~有辦法讓只要判斷到歸零脈波時~~不管24個脈波高低電位都讓shift register歸零嗎?

我要的動作很簡單~~要抓編碼器所產生的脈波0-5V方波~~~2條輸出線(理論上同步~實際上有點不同步~~因為洞是鑽在同一個圓盤上的)~~一條規零脈波一轉產生一個~~一條一轉產生24個脈波~~我用DAQ卡擷取DI輸入~要數到第24個方波時~~由歸零線判斷轉一圈了~~然後24各脈波又從頭數~~很簡單吧~PS.方波是有高低位準的0-5V~不是一直都是5V

所以理論上,一圈24個Counts,每一圈出現一次Index信號.

如果是我,我會先判斷信號是不是改變,就是由True變False或是False變True.

也就是說當狀態確定改變時,才進行累加動作.而不是單單在True或False時,進行累加動作.

在下圖中,A表示"一轉24個波"信號,Z表示"歸零波一轉一個"信號.

圈選處表示狀態改變後與新值做AND.

2004-07-27_152012_Encoder_A_Z.vi

因為我沒有硬體做測試,所以請您試試看吧~![](upload://kgKjFjULeiT3VYYN3Ma0GFEQlGF.gif)

謝謝囉我剛學寫LV沒多久寫程式沒考慮到那麼多就直接寫了想說再慢慢改沒想到一開始出發點沒用好就寫不好了謝謝你交我那麼多我再去試看看~以前我是寫8051的都是寫完改一改就好了謝謝你我再去練習看看~~