目的展示如何使用MCC數據采集設備和各種軟件平臺讀取單個模擬輸入值。
目標讀者
數據采集系統開發人員,他們需要偶爾閱讀AI頻道,并尋求了解其在各種軟件環境中的實現方法。
概述
模擬輸入DAQ設備通常因其高速連續AI采樣能力而受到吹捧。但是,當以這種方式使用時,生成的數據量可能會很大,無法篩選和存儲。為了便于在系統總線上傳輸大量數據,通常將數據排隊到大數據包或數據塊中,這可能會延遲特定數據點的可用性。為了補充高速多通道AI掃描,MCC DAQ設備還支持頻譜的另一端-從一個AI通道讀取單個AI值。
對于USB DAQ,從一個AI通道讀取單個值所需的時間因DAQ模型而異,但通常為1毫秒至5毫秒。當您發出該讀取請求時,您的程序將等待來自DAQ設備的結果數據點。這被稱為輪詢或軟件定速讀取,因為未使用定速時鐘或硬件存儲隊列。
由于經常需要一遍又一遍地讀取新的電壓,因此用戶通常會設置軟件計時器(或定時循環)。其他任務(例如基于電壓輸入值將值發送到DAQ輸出通道)也可以駐留在環路中。這種循環通常稱為控制循環,因此需要及時輸入讀數。為了簡單起見,本文檔中未顯示軟件計時器或循環。
隨著應用程序中AI通道數量的增加和/或采樣率的增加,這種單讀取方法可能無法滿足您的總體吞吐量需求。此外,如果您的應用程序不需要在每個樣本可用時就對其進行“訪問”,例如在處理大型數組中的數據或僅在運行結束時分析數據的情況下,則應考慮波形/陣列捕獲場景。
獨立于軟件平臺,必須為每個讀取的模擬輸入指定以下信息:
AI頻道
輸入范圍
并返回以下兩條信息:
電壓讀數
錯誤代碼
以下示例顯示了如何使用Universal Library?,UL for Android?,NI LabVIEW?和DASYLab?對單個AI讀數進行采樣。
通用庫
下面的示例演示如何使用通用庫(UL)和Visual Basic對AI值進行采樣:
Channel = 0'指定通道#0
范圍= MccDaq.Range.Bip10Volts'指定±10 V輸入范圍
ULStat = DaqBoard.VIn(通道,范圍,數據值,選項)
電壓讀數作為DataValue返回,而錯誤代碼作為ULStat的值返回。
適用于Android
的UL以下示例顯示了如何使用適用于Android和Java的UL采樣AI值。
//建立與DAQ設備的連接
mDaqDevice.connect();
//讀取AI通道0
AiDaqDevice mAiDevice = mDaqDevice.getAiDev();
aInValue = mAiDevice.aIn(0,ChannelMode.SINGLE_ENDED,Range.BIP10VOLTS,AiUnit.VOLTS)
電壓讀數返回到aInValue。
NI LabVIEW
以下示例顯示了如何使用LabVIEW對AI值進行采樣。下面的接線圖顯示了相關的VI和設置。要求硬件設備#0的第一個通道(AiO)返回-10 V至+10 V的預期范圍內的一個測量值。

DASYLab
非程序員,需要偶爾閱讀的話,應該考慮使用流行的DASYLab軟件包。以下示例工作表顯示了模擬輸入模塊,其輸出連接到數字儀表顯示模塊。電壓讀數顯示在儀表顯示屏上。

雙擊“模擬輸入”模塊,可以訪問菜單,您可以在其中選擇N個采樣模式。
在這里,我們為N(樣本數)指定1。
