各位大大:
小弟在寫一個有關訊號處理的程式,是使用訊號產生器接收訊號,再使用DAQ輸出,很陽春的方塊.
這個訊號處理的方式是,偵測訊號一次,就輸出訊號一次,訊號產生器產生的是完整波形,但DAQ輸出訊號的sample點卻差了大約25ms左右,所以弦波變成很醜的梯狀弦波,請問跑一次迴圈最快的處理速度都是ms等級的嗎?或是有辦法使迴圈執行速度變快呢?我看到的timing的vi都是以ms為單位,或是有其他辦法可以使輸出變成較漂亮的弦波呢?
我DAQ的型號是NI PCI-6229,類比輸入的取樣速率為250kS/s,類比輸出的更新速率為833kS/s,所以硬體方面應該是沒有問題才對
而且當程式執行約一分鐘後,會跑出下列訊息:An exception occurred within the external code called by a Call Libary Function Node.This might have corrupted LabVIEW's memory.然後就停止執行了.我想請問各位大大,這個是node設定上的問題嗎?
小弟不才,煩請各位大大解答,感謝
順便附上程式 http://0rz.tw/812Hx
你的問題絕對不是出在迴圈上,迴圈計算靠的是電腦的cpu跟記憶體速度。
看樣子你的問題應該是出在其他地方。
第一、PCI6229每一個channel是非同步輸出入。
第二、由跑了一分鐘會出現那些訊息看來,你應該在迴圈程式的撰寫上在sample rate或samples的數量設定上出了問題。
這同時也會讓你的波形變得很醜。
另外你的描述不是很清楚,感覺你應該是先將波型產生器接到DAQ的類比輸入上,
然後將讀取到的值再由DAQ的類比輸出端輸出。
然後將波型產生器的訊號跟DAQ輸出的訊後接到示波器上來看吧?
如果是這樣,你可能還要進行觸發(trigger)的設定才行。
總而言之,Labview的迴圈處裡速度不大可能是造成你問題的原因。
非常感謝Bridge大大的回覆
我的確是先將波型產生器接到DAQ的類比輸入上,
然後將讀取到的值再由DAQ的類比輸出端輸出。
然後將波型產生器的訊號跟DAQ輸出的訊號接到示波器上來看
我想再請問大大,如果我的電腦硬體設備都很好,那處理訊號的速度有可能到達ms以下嗎?
在labview的Example裡有一個簡單的方法可以測試回圈的速度。
Timing Template (data dep).vi
非常感謝bridge大大的回答
我已經將狀態改為"已解決"
後來在詢問一些高手後
得知在windows下跑迴圈的時間只能在ms左右
如果要到達us需要把程式編輯好寫入硬體中在DOS下直接執行
非常感謝~