想要使用DAQ擷取加速規資料,並使其規律性的暫停和重新開始

各位大神好,最近想要使用DAQ Assistant來完成擷取加速規資料,並使其規律性的暫停和重新開始之功能(例如: 讀取3秒資料,休息2秒,再重新讀取3秒…),我將DAQ Assistant 和 Wait 放置於 Flat Sequence中,外面加了一個While迴圈,但我發現每次休息的秒數總是和Wait的設定值有落差?請問我該如何些改我的程式碼?感激不盡。

會發現的原因是我有在Write to measurement file中加入時間欄位,當我讀取的最後一筆資料時間為3秒時,在暫停兩秒後的第一筆資料時間卻顯示5.5秒…


Wait Time Example.vi (78.2 KB)

ps.

Hi, 謝謝您的協助,但使用您的程式碼好像也會有一樣的問題
附上我修改過的程式碼(暫停時間為5sec)


由下圖可以看到 下一筆資料的時間應為紀錄3秒+休息5秒後=8秒,但卻顯示9.26秒
image

圖中 2.999902 & 9.263460
你紀錄的是系統時間?

您好,是的。照理說我使用DAQ Assistant讀取3秒的資料後會進入 Wait time 等待2秒,再馬上進入下一次DAQ Assistant,讀取資料,而第一筆資料的系統時間應該為5秒(理想中)。
謝謝您

你紀錄的既然是系統時間
9.263460 - 2.999902 = 6.263558

你觀察一下 Time 這個物件的顯示值.

Wait Time Example.vi (75.8 KB)
Wait = 5000 ms 延遲 5秒, 但DAQ 資料擷取 & 資料寫入 也需要時間
圖中 的 Time 顯示值 是 跑一次迴圈的 時間.
Time 這個物件 = DAQ 資料擷取時間 + 資料寫入時間 + 延遲時間

原來如此!看來無法徹底解決延遲時間的問題!謝謝您的指導!

因作業系統多工,軟體無法精確控制時間,
或許…不要用軟體的wait, 用DAQ硬體擷取固定時間的資料 ( 取樣率*(筆數+/- offset) )
忽略這些資料,只是用來計時

另一個方法是利用DAQ的timebase產生精準的pulse去triggerDAQ資料的擷取,
因為DAQ的timebase很高,如40Mhz or 80Mhz , 時間可以控制得很準(可用示波器檢查)

TKS,我再研究看看

反正你是要量測, 可以連續擷取呀, 過濾掉你不要的資料也能實現你要的功能

是的,主要是我要量測的時間很長,量測完的LVM檔有64GB…用MatLab也打不開 :smiling_face_with_tear:還是有其他開啟的方法呢!?

你可以分檔案喔, 比方說每隔多少筆資料就分或者多大分, 這個應該你看一下expressVI都有寫

謝謝您的建議!