DAQ中各種采樣方法的一點想法(最簡單的采樣方式)
另外做類似的程序時,最好在循環外部加上DAQmx Start和Stop函數,免得read和write每次運行都要重新開始任務。
即類似于這樣的結構。
綜上所述:單點采樣連續采樣的read函數不等待,一直根據函數結構進行讀取和處理。
另:程序采樣開始于開始任務(DAQmx Start)函數
下面的說法可以解釋上述的現象:在read函數中可以設置采樣數目!是這樣定義的!N采樣的情況下,read函數包含設置采樣個數的節點,每通道采樣數指定要讀取的采樣數。 如未連線該輸入端或將其設置為-1,NI-DAQmx將根據任務進行連續采樣或采集一定數量的采樣,確定要讀取的采樣數。
如任務進行連續采樣且該輸入的值為-1,VI將讀取緩沖區中當前可用的全部采樣。
如采集一定數量的采樣且該輸入的值為-1,VI將等待任務獲取全部所需采樣,然后讀取采樣。如讀取全部可用數據屬性的值為TRUE,VI將讀取緩沖區中當前可用的采樣,而不等待任務獲取全部所需采樣。
另外合理利用好DAQ的各屬性節點。如DAQ讀取屬性節點(測量IO——DAQmx數據采集——DAQ讀取屬性節點等)
如將上面的程序修改一下。
就可以在while循環運行時,顯示出目前緩沖區內可用的樣點數目。
當然:我們可以在read.VI中設置 每次讀取的采樣數目(每通道采樣數)。如下圖
評論