陣列/波形的大小以及DAQmx PC緩衝區的大小由DAQmx任務的配置隱式確定,如下所述。
使用DAQmx擷取資料時,資料首先從DAQ裝置傳輸到電腦的內存 (RAM) 中。在您的電腦RAM上有一個預先分配的緩衝區,稱為DAQmx PC緩衝區,作為未讀資料的存放位置。
然後可以通過執行DAQmx讀取功能從DAQmx PC緩衝區讀取資料,並將資料讀取到DAQmx應用程式內部的陣列或波形中。
當你設定DAQmx Timing VI時,Samples per Channel所給定的數值會根據Sample Mode設定的不同會有不同的效果,具體取決於設定為Continuous Samples還是Finite Samples 。
在設定DAQmx Read VI時會去設定第二段傳輸的部分,也就是從buffer傳到軟體記憶體中。此VI其中一個參數設定Number of Samples per Channel中,當sample mode設定為continuous時,該參數會去設定每次從buffer讀取進來的資料量。
需要注意的是,DAQmx Read VI會等到設定的大小擷取至buffer後才會去取用回軟體的記憶體中再去做後續處理。因此,若是sample rate設定的不夠高,不足以在設定的timeout內讀到足夠的量,該VI即會產生timeout的錯誤。為了避免這樣的狀況,可以增加timeout或是減少Number of Samples per Channel 。
附加訊息
DAQ裝置和主電腦RAM上的DAQmx PC緩衝區之間的傳輸速度取決於與DAQ裝置(PCI、USB、PXI 等)通信所使用的總線。
在interactive DAQ Assistant panel,SignalExpress和NI MAX中,此參數重命名為Samples to Read,如下所示:
在LabVIEW中,不給定Number of Samples per Channel的默認值為 -1,當Number of Samples per Channel設定為 -1時,DAQmx Read VI會讀入buffer所有的資料。如果buffer內沒有任何資料,DAQmx Read VI 會回傳empty array。