Acquire Data from Multiple Channels
This example shows how to acquire data from multiple channels, and
from multiple devices on the same chassis. In this example, you acquire voltage data
from an NI 9201 device with ID cDAQ1Mod4
and an NI 9205 device with
ID cDAQ1Mod1
.
Create a DataAcquisition object and add two analog input voltage channels for
cDAQ1Mod1
with channel IDs 0 and 1:
d = daq("ni"); addinput(d,"cDAQ1Mod1",0:1,"Voltage")
ch = Index Type Device Channel Measurement Type Range Name _____ ____ ___________ _______ ________________ __________________ _______________ 1 "ai" "cDAQ1Mod1" "ai0" "Voltage (Diff)" "-10 to +10 Volts" "cDAQ1Mod1_ai0" 2 "ai" "cDAQ1Mod1" "ai1" "Voltage (Diff)" "-10 to +10 Volts" "cDAQ1Mod1_ai1"
Add an additional channel for a separate device, cDAQ1Mod6
with
channel ID 0. For NI devices, use either a terminal name, like
ai0
, or a numeric equivalent like 0
. Then view
all channels on the DataAcquisition.
ch = addinput(d,"cDAQ1Mod6","ai0","Voltage"); d.Channels
Index Type Device Channel Measurement Type Range Name _____ ____ ___________ _______ ________________ __________________ _______________ 1 "ai" "cDAQ1Mod1" "ai0" "Voltage (Diff)" "-10 to +10 Volts" "cDAQ1Mod1_ai0" 2 "ai" "cDAQ1Mod1" "ai1" "Voltage (Diff)" "-10 to +10 Volts" "cDAQ1Mod1_ai1" 3 "ai" "cDAQ1Mod6" "ai0" "Voltage (Diff)" "-10 to +10 Volts" "cDAQ1Mod6_ai0"
Acquire one second of data and store it in the variable data
,
and then plot it:
data = read(d,seconds(1),"OutputFormat","Matrix"); plot(data)
Change the properties of the channel ai0
on
cDAQ1Mod6
and display ch
:
ch.TerminalConfig ="SingleEnded"; ch.Name = "Velocity sensor"; ch
ch = Index Type Device Channel Measurement Type Range Name _____ ____ ___________ _______ ____________________ __________________ _________________ 1 "ai" "cDAQ1Mod6" "ai0" "Voltage (SingleEnd)" "-10 to +10 Volts" "Velocity sensor"
Acquire the data and store it in the variable, data
, and plot
it:
data = read(d,seconds(1),"OutputFormat","Matrix"); plot(data)