物理波道是資料擷取卡上的波道,此名稱可以MAX看出來,其名稱類似"/Dev1/ai0"、"/Dev1/ai1"、"/Dev1/ao0"' "/Dev1/ao1"、"/Dev1/ctr0"…不同的功能會有不同的對應名稱,不同的卡片因為規格的不同,可用的物理波道也不完全相同,下面的幾張圖分別是在NI MAX中,Analog Input、Counter和Analog Output的物理波道名稱。
虛擬波道是寫程式時所操作的對象,一個虛擬波道可以單含一個物理波道,或是二個以上的波道;虛擬波道的建立使用的是Task物件中的AIChannels、AOChannels、DIChannels DOChannels、COChannels、CIChannels這六個集合中的Create***方法來建立。
每次建立虛擬波道只能使用上述的六個集合中的一個來建立,也就是說,每一個被建立的Task物件只能用來操作其中一種的功能。
以類比輸入為例,如果建立單一物理波道的虛擬波道,建立時的程式寫法是
ADTask.AIChannels.CreateVoltageChannel("/Dev1/ai0","",AITerminalConfiguration.Differential, -10, 10, AIVoltageUnits.Volts)
上述函式建立時採用了"/Dev1/ai0"的物理波道。
若同時要操作二個以上的物理波道,則其寫法是
若同時要操作二個以上的物理波道,則其寫法是
ADTask.AIChannels.CreateVoltageChannel("/Dev1/ai0,/Dev1/ai1,/Dev1/ai2","",AITerminalConfiguration.Differential, -10, 10, AIVoltageUnits.Volts)
欲使用的物理波道名稱以逗號將其分開,組合為一個字串後給定參數。
對於連續的物理波道名稱,也可以如下的寫法
以冒號分開最前和最後的波道號碼即可。
ADTask.AIChannels.CreateVoltageChannel("/Dev1/ai0:2","",AITerminalConfiguration.Differential, -10, 10, AIVoltageUnits.Volts)
沒有留言:
張貼留言