NI產品與技術 討論區

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

關於DAQmx

我傳給您的這個LabVIEW程式,我用它設samples per channel=65536 (即抓取65536筆資料)及rate=10000(即10KHz),執行後,發現真的約6.5536秒,就結束程式。成功了耶!畫面我將它拍成avi檔。您可看一下。

於程式的內的block diagram內有一個"DAQmx Wait Until Done.vi"這個元件,有什麼功用,我不是很清楚,它的timeout(sec),我都不知道要怎麼設,我亂設17,可是好像也沒什麼差的感覺,它還是可以正常的於6.5536秒結束程式耶?實在,不知道那個元件在程式內的角色是什麼?都亂設的而已。

另外,我目前傳給您的這個vi檔的波形圖,無法即時看到波形在跑的即時狀況(必需等6.5536秒時間到時,才會整個輸出波形),現在若我要另外在做一個波形圖,可即時顯示電壓變化的波形,DAQmx有辦法做到嗎?

下載全部
0 積分
1 條訊息(共 4 條)
5,814 檢視
回答您第一個問題,轉貼自LabVIEW360電子報(http://labview360.com)
Wait Until Done.vi的作用是甚麼呢?

  在DAQmx中提供了兩個與任務是否完成有關的vi,一個是查詢任務是否完成vi——Is Task Done.vi,另一個是等待直到任務完成vi——Wait Until Done.vi

  為什麼要設計這兩個vi呢?這是因為在調用Stop Task.vi時,任務可能還沒有結束。如果在任務還沒有結束時就調用Stop Task.vi來強制停止任務,那麼就可能出錯。

  解決這個問題有兩種策略,一是每隔一定的時間去查詢任務的狀態,如果完成,就可以執行Stop Task vi;如果沒有完成,那麼就再查詢。在這種策略的需求下,NI的軟體工程師們就設計出了供用戶用於查詢任務是否完成的vi——Is Task Done.vi

  第二種策略是,某些用戶不想去查詢,希望系統有一種類似中斷的機制,當任務未完成時,查詢工作被掛起;當任務完成時,查詢工作被啟動,然後繼續執行Stop Task.vi。 在這種策略的需求下,NI的軟體工程師們就設計出了等待任務是否完成的vi——Wait Until Done.vi

  Wait Until Done.vi 的好處是不需要一直去查詢,壞處是可能任務永遠不會完成,那麼查詢操作就一直被卦起,並阻塞後續的操作。由此,Wait Until Done.vi 又多出一個輸入參數——Timeout,超時標記,當等待一定時間後,發現等下去沒有什麼希望了,就利用超時機制回到執行過程中來,不要傻傻的等下去~~~

  若timeout設定為17秒,意思就是說這個DAQmx Wait Until Done.vi會等待DAQ完成工作才會進行後續的程式,以你的程式來說,目前只要執行6.5536秒就可以結束,但是如果DAQ沒有反映造成DAQmx Wait Until Done.vi一直等下去也不是辦法。所以你就設定了timeout值,意思就是說,最多等17秒,如果等待時間超過17秒,就視為錯誤,程式繼續進行,但是error out會出現錯誤。

0 積分
2 條訊息(共 4 條)
5,789 檢視
你们在安装PCI6024E的时候, 会不会出现在Labview 当中找不到DAQ的模块啊?
我现在刚刚接触数据采集,什么都不懂。请各位前辈指教一下
0 積分
3 條訊息(共 4 條)
5,647 檢視

Ancle:

如果我的任务是一个连续产生脉冲的任务。那末,程序运行后,该任务是一直执行的,没办法检查到任务结束的信息;也不可能用等待多少时间(无法确定这个时间)来结束任务。

使用“Stop Task.vi" 会报告错误吗? 

" 一天到晚游泳的鱼"

labview@263.net

我的个人网站:LabVIEW——北方客栈 http://www.labview365.com
欢迎加入《LabVIEW编程思想》组——http://decibel.ni.com/content/groups/thinking-in-labview
0 積分
4 條訊息(共 4 條)
5,643 檢視