關(guān)于labview的DAQ輸出緩沖區(qū)
DAQ的輸出緩沖區(qū)的大小是由寫入的樣本數(shù)決定的,一般為樣點數(shù)的2倍左右。
所以能及時的響應(yīng)波形信號改變。不會產(chǎn)生巨大的延遲。若將輸出緩沖區(qū)的大小設(shè)置的很大,那么就會在改變波形參數(shù)的時候產(chǎn)生巨大的延遲。因為存進緩沖區(qū)的數(shù)據(jù)必須逐一的輸出。而緩沖區(qū)合適的時候,會不時的丟棄一部分數(shù)據(jù),而隨時的相應(yīng)新的波形。
就像這個例子
當我把輸出緩存區(qū)設(shè)置成很大(10000)時,我在程序中改變波形屬性,就會等很長很長時間才能輸出相應(yīng)的波形。原因是我每隔100ms就會忘緩存中寫數(shù)據(jù),在這之前寫了非常多的數(shù)據(jù)保存在緩存中(還沒來得及生成),所以需要延遲很多時間才能生成。
多謝謝多測試,慢慢精通。
而輸入緩沖區(qū)的大小則是由采樣速度決定的。具體的可以參見lavview的幫助。橙色部分顯示。
如何確定緩沖區(qū)大???
輸入任務(wù)
如采樣模式為有限采樣(定時函數(shù)/VI上的采樣模式設(shè)置為有限采樣),NI-DAQmx將劃分出一塊緩沖區(qū),大小與每通道采樣數(shù)屬性相等。例如,指定每通道采樣數(shù)為1000,應(yīng)用程序使用兩條通道,則緩沖區(qū)大小為2000個采樣的大小。因此,緩沖區(qū)的大小足夠存放要采集的所有樣本。
如采樣模式為連續(xù)采樣(定時函數(shù)/VI上的采樣模式設(shè)置為連續(xù)采樣),NI-DAQmx將劃分出一塊緩沖區(qū),大小與每通道采樣數(shù)屬性相等,除非緩沖區(qū)大小的值比小表所列的值更小。如每通道采樣數(shù)屬性的值小于下表所列的值,NI-DAQmx將使用下表中的值。
通過調(diào)用輸入緩沖配置函數(shù)/VI可重寫默認緩沖區(qū)大小。
當定時函數(shù)/VI的采樣模式設(shè)置為硬件定時單點采集時,NI-DAQmx不會創(chuàng)建緩沖區(qū)。
輸出任務(wù)
開始一次新的生成之前需要執(zhí)行寫入操作的數(shù)據(jù)決定緩沖區(qū)的大小。第一次調(diào)用“寫入”函數(shù)/VI的“多采樣”實例時會創(chuàng)建一個緩沖區(qū)并確定其大小。
也可使用輸出緩沖區(qū)函數(shù)/VI創(chuàng)建一個輸出緩沖區(qū)。必須在寫入數(shù)據(jù)之前使用該VI。
定時函數(shù)/VI的每通道采樣數(shù)不決定輸出緩沖區(qū)的大小。反之,它是要生成的采樣的總和。如緩沖區(qū)大小是n,將每通道采樣數(shù)設(shè)置為3×n,將緩沖區(qū)的數(shù)據(jù)設(shè)置為正好3倍。如要生成整一倍的數(shù)據(jù),將每通道采樣數(shù)設(shè)置為n。
當定時函數(shù)/VI的采樣模式設(shè)置為硬件定時單點采集時,NI-DAQmx不會創(chuàng)建緩沖區(qū)。