目的
展示如何使用 MCC 數據采集設備和各種軟件平臺捕獲模擬波形。
目標受眾
數據采集系統開發人員需要隨著時間的推移將模擬波形數字化,并尋求了解各種軟件環境中的波形捕獲實現。
概述
對于變化非常緩慢的模擬現象,對信號進行不頻繁的采樣就足夠了,而且采樣之間的時間增量變化通常是可以接受的,因為主要需要獲得信號的當前狀態。在這種情況下,對每個 AI 通道進行相當簡單的“軟件輪詢”就足夠了。然而,如果信號相對于經過的時間快速變化,或者如果用戶對信號的頻率分量感興趣,則需要更快的 A/D 采樣。事實上,不僅需要更快的采樣,而且在樣本之間具有均勻且控制良好的時間增量也很重要。
MCC 的 AI DAQ 設備集成了板載計時電路,以統一調整來自一個或多個 AI 通道的讀數。MCC DAQ 設備還集成了板載內存來排隊數據,以便通過接口總線(通常是 USB)定期發送有效大小的數據包。與 DAQ 硬件一起工作的是 MCC 軟件驅動程序,它接收數據包,將它們捆綁到內存中一個更大的緩沖區中,并使數據和狀態可供更高級別的用戶程序使用。
應用程序開發人員希望從 AI 采樣持續時間和數據訪問需求的角度來確定項目的范圍。換句話說,我需要采樣多長時間,我是否需要在收集期間訪問數據,或者直到結束才需要訪問數據。最直接的情況是在相對較短的時間內收集數據,并且在收集完所有數據之前不處理任何數據。擴展這個想法,人們可能需要在收集期間開始處理數據——例如向操作員提供實時顯示。在這種情況下,開發人員希望在仍在添加新數據的同時訪問數據緩沖區,MCC 通過其后臺模式促進了這一點。最復雜的情況是收集時間非常長,由于計算機內存有限,因此需要循環緩沖區。隨著新數據不斷涌入,應用程序必須能夠執行所需的數學運算、顯示以及可能將結果記錄到磁盤,并且足夠高效以跟上。雖然不是本文的重點,但 MCC 的軟件驅動程序通過其連續模式支持這種高級需求。
對于獨立于軟件平臺的非連續掃描,必須指定以下信息:
人工智能通道號
要收集的樣本數
時鐘頻率
輸入范圍
存儲數據的內存緩沖區
除了 A/D 數據外,還會返回錯誤代碼。
下面的示例展示了如何使用 Universal Library?、UL for Android?、NI LabVIEW?、DASYLab? 和 DAQami 執行非連續掃描。
通用庫
以下示例顯示如何使用通用庫 (UL) 和 Visual Basic 執行非連續掃描:
LowChan = 0
HighChan = 0 '僅從通道 0 收集
Count = 50000 '指定要收集的樣本總數
Rate = 50000 '指定每通道時鐘速率
Range = MccDaq.Range.Bip10Volts '指定 +/- 10V 輸入range
ULStat = DaqBoard.AInScan(LowChan, HighChan, Count, Rate, Range, MemHandle, Options)
樣本數據返回到 PC 內存中提供的句柄的緩沖區,而錯誤代碼作為 ULStat 的值返回。
接下來,我們將數據從內存緩沖區復制到本地程序數組,名為 ADData:
ULStat = MccDaq.MccService.WinBufToArray(MemHandle, ADData, FirstPoint, Count)
到目前為止,為了提高效率,數據已以計數格式傳輸和存儲。我們可以使用以下 UL 函數轉換為電壓:
ULStat = DaqBoard.ToEngUnits(Range, ADData(0), EngUnits)
UL for Android
以下示例顯示如何使用 UL for Android 和 Java 執行非連續掃描:
低陳 = 0;
高陳 = 0; //僅從通道 0
模式收集= ChannelMode.SINGLE_ENDED; //指定配置模式
range = Range.BIP10VOLTS; //指定±10V輸入范圍
samplesPerChan = 50000; //指定每通道采樣數
rate = 50000; //指定每通道時鐘速率
mUnit = AiUnit.VOLTS; //指定電壓單位
actualScanRate = mAiDevice.aInScan(lowChan, highChan, mode, range, samplesPerChan, rate, options, mUnit, mScanData);
通過調用 aInScan() 函數收集值。數據在名為 mScanData 的數組中返回。
NI LabVIEW
以下示例顯示如何使用 LabVIEW 執行非連續掃描。下面的接線圖顯示了相關的 VI 和設置。這里要求硬件設備 # 0 的第一個通道 (AiO) 在 -10 V 到 +10 V 的預期范圍內以 50000 Hz 的速率返回 50000 個樣本。所得電壓數據可用作測量陣列。

DASYLab
非程序員可以考慮使用多種軟件包中的一種,這些軟件包使收集、顯示和存儲波形數據變得非常容易。一種流行的軟件包是 DASYLab。
以下示例工作表顯示了一個模擬輸入模塊,其輸出連接到 Y/t 圖表顯示模塊。捕獲的電壓波形顯示在圖表顯示屏上。

雙擊模擬輸入模塊會打開一個對話框,您可以使用它來啟用所需的通道、選擇輸入范圍并指定采樣率。

DAQami
以下示例顯示了 DAQami Acquisition 頁面,您可以在其中設置 Sample Rate 和 Sample Count。

結果數據繪制在 DAQami 顯示頁面上:
