NI產品與技術 討論區

取消
顯示結果 
搜尋替代 
您的意思是: 

若輸入的電壓大於3V,則digital輸出為High (但反應時間不如預期)

我是Labview的新手,目前使用Labview8.6 + DAQ(USB-6221),

在使用上有些問題,還請大家幫幫忙。

 

要達成的目標:當input電壓在指定範圍(例如3~5V)時,數位輸出為高電位,否則為低電位

 

狀況:發現有數十~數百ms的延遲時間(且延遲時間長短不一),也就是數位輸出無法及時變成預期的高電位或低電位

 

 

為了簡化問題,我做了一個非常簡單的vi (如附件),

若輸入的電壓大於3V,則digital輸出為High,如此而已

用示波器去看,結果digital輸出還是有數十~數百ms的延遲時間(延遲時間不定)

請問我程式的寫法是不是有什麼根本的問題? 謝謝

 

0 積分
1 條訊息(共 10 條)
8,380 檢視

請參考以下範例:

 

http://zone.ni.com/devzone/cda/epd/p/id/6165

 

理論說明請看以下

 

http://zone.ni.com/devzone/cda/tut/p/id/4284

 

如果有解決到您的問題麻煩您勾選已接受解答,並且給我一個獎勵!謝謝~~~

0 積分
2 條訊息(共 10 條)
8,372 檢視

很不好意思,這個vi很複雜,還是沒弄懂

以致於我在step2就卡住了(timing source?)

changed.GIF

 

或者有什麼比這個單純的範例可以達成原來的目標?

0 積分
3 條訊息(共 10 條)
8,354 檢視

終於了解您的意思。

 

您的程式碼=

 

當數位輸入電壓大於3V, 則數位書出電壓為High

當數位輸入電壓小於3V, 則數位書出電壓為Low.

 

軟體判斷,因為作業系統內部作業的延遲,會有延遲的現象,這個現象很合理。

 

請問您的延遲大約在多少 ms 之內?

 

 

0 積分
4 條訊息(共 10 條)
8,341 檢視

為方便觀察,以0V→4V方波做為參考訊號

延遲時間約100~300ms不等,如下兩圖(第一圖:一格500ms)(第二圖:一格1sec)

(藍: 輸入電壓,1Hz,0~4V)

(紫: 數位輸出,延遲時間不定、脈寬亦不定)

TEK0014.JPG  TEK0015.JPG

 

 

=============================================== 

 

若頻率提升至3Hz,則有跟不上的情形,如下圖

TEK0018.JPG

 

想請問有沒有可能將延遲時間變小? 或至少讓延遲時間盡量保持一定以便補償? 謝謝

0 積分
5 條訊息(共 10 條)
8,333 檢視

請問您的應用是? 

請問您一定要透過軟體判斷嗎?

 

如果一定要透過判斷來輸出高低,軟體判斷就是會受到Windows XP/Vista/7 OS的影響。

 

我們會推薦labview+labview FPGA 軟體模組+PCI-7811R [ 在labview執行FPGA 很容易 ]

 

透過硬體判斷,不會有延遲的情形。

0 積分
6 條訊息(共 10 條)
8,325 檢視

目標是電磁線圈必須在主軸轉至指定角度時接通/切斷

這或許可以用傳統方式達成(機構、limit switch、IC、PLC等等)

但Labview可塑性高、介面清晰、使用容易,所以我試著用Labview

Labview+FPGA的方法我知道,但是性能過剩而且成本太高

0 積分
7 條訊息(共 10 條)
8,318 檢視

Hi ysc.me97,

 

如果您要使用LabVIEW加上DAQ來達成上述功能,建議您使用Change Detection的功能,

並利用DAQmx提供的Hardware Timing來達成,在LabVIEW裡正好有一個範例,請參考範例裡的"Event Response.vi"

 

這邊是利用Change Detection的event 當作clock給timed loop,使用硬體event的時脈當作軟體的clock,

在時序上,會比純軟體的功能準確。

我們實際上測到的結果可以follow到2KHz,timing的誤差範圍在100us左右。

您可以參考以下我修改過的程式,

但畢竟這個程式的時脈還是利用軟體,只是借用硬體的event,若這個誤差範圍仍未達到您的需求,

建議您使用FPGA會更加準確,也可以將誤差縮小到ns的範圍。

 

NI應用工程部

 

下載全部
0 積分
8 條訊息(共 10 條)
8,305 檢視

試了多次還是無法運作,不知錯在哪裡冷淡表情

請問是少接了什麼嗎? 如下圖 

timingsource.jpg

註: Step3說「Wire the timing source output to the Source terminal of timed loop」,因為我不知道什麼是 Source terminal ,所以沒做這步驟

 

 

另外,請問Falling Edge Physical Channels、Rising Edge Physical Channels兩個channel是如何使用?

我的理解是: 當Digital Input Lines的電位介於這兩個Channel的電位時,output為high

不知上面的理解是否正確?

0 積分
9 條訊息(共 10 條)
8,248 檢視

如果你是使用範例的話,那麼程式部分是沒有問題的。

問題點可能在於Falling Edge Physical Channels、Rising Edge Physical Channels上面。

 

在我上面的範例裡,rising & falling channel是同一個,他們的意思是,

當這個channel得到的訊號有rising或是falling的動作時,就會產生一個event,讓timed loop做動。

因為這個範例是用Change Detection,所以抓的是訊號改變的時間點。也就是rising(low->high)與falling(high->low)。

 

我們這邊嘗試複製這個錯誤訊息,只有在沒有訊號輸入至device的時候,才會發生這個狀況,

也就是說,會有這個狀況發生,是因為沒有輸入訊號的改變,

對timed loop來說,等了一段時間之後,仍沒有有改變,才會接到這個訊息。

所以建議您將輸入訊號點查看一下是否有對應到或是有無接好。

 

0 積分
10 條訊息(共 10 條)
8,223 檢視