引入組件後,可以開始使用其中的Task類別來建立任務物件。NI的Task類別中的常見屬性如下表
屬性 | 說明 |
AIChannels | 取得在Task物件中的類比輸入波道的集合 |
取得在Task物件中的類比輸出波道的集合 | |
取得在Task物件中的計數輸入波道的集合 | |
取得在Task物件中的計數輸出波道的集合 | |
取得在Task物件中的數位輸入波道的集合 | |
取得在Task物件中的數位輸出波道的集合 | |
取得Task中的Stream物件 | |
取得Task的Timing物件組態 | |
取得Task的Trigger物件組態 |
宣告Task後,以Task物件呼叫AIChannels集合,同時以此集合物件所提供的方法(Method)建立虛擬的類比輸入波道,並且設定目前的虛擬波道所對應的實體波道號碼、電壓範圍、數值單位…等等的內容;圖中的虛線部份就是對應到實際的卡片所要擷取的訊號設定內容。
以下是一段讀取AD的程式碼,它放在一個是按鈕的Click事件程序中:
1: Dim ADTask As Task '宣告一個任務
2: Dim reader As AnalogSingleChannelReader
3: ADTask = New Task() '建立任務
4: '建立該任務的工作波道
5: ADTask.AIChannels.CreateVoltageChannel(cmbChannel.Text,
6: "",
7: AITerminalConfiguration.Rse,
8: nudMin.Value,
9: nudMax.Value,
10: AIVoltageUnits.Volts)
11: '建立讀取物件
12: reader = New AnalogSingleChannelReader(ADTask.Stream)
13: '讀取波道數值,並存入data變數中
14: Dim data As Double = reader.ReadSingleSample()
15: '將變數值顯示到文字框
16: txtADValue.Text = data.ToString("0.00000")
17: '消滅物件
18: reader = Nothing
19: ADTask = Nothing
這是一個簡單的取單值的作法,下圖是執行的狀況,0.17522就是讀到的波道電壓值。
沒有留言:
張貼留言