Getting Started with NI Devices
This example shows how to get started with National Instruments™ devices from the command line.
Discover Available Devices
Discover devices connected to your system using daqlist
. To learn more about an individual device, access the entry in the device table.
d = daqlist; d(1, :)
ans = 1×5 table VendorID DeviceID Description Model DeviceInfo ________ ___________ ______________________________ _________ _____________________________ "ni" "cDAQ1Mod1" "National Instruments NI 9205" "NI 9205" [1×1 daq.ni.CompactDAQModule]
d{1, "DeviceInfo"}
ans = ni: National Instruments NI 9205 (Device ID: 'cDAQ1Mod1') Analog input supports: 4 ranges supported Rates from 0.6 to 250000.0 scans/sec 32 channels ('ai0' - 'ai31') 'Voltage' measurement type This module is in slot 1 of the 'cDAQ-9178' chassis with the name 'cDAQ1'.
Create a DataAcquisition
The daq
command creates a DataAcquisition object. The DataAcquisition contains information describing hardware, scan rate, and other properties associated with the acquisition.
dq = daq("ni")
dq = DataAcquisition using National Instruments hardware: Running: 0 Rate: 1000 NumScansAvailable: 0 NumScansAcquired: 0 NumScansQueued: 0 NumScansOutputByHardware: 0 RateLimit: [] Show channels Show properties and methods
Add an Analog Input Channel
The addinput
command attaches an input channel to the DataAcquisition.
ch = addinput(dq,"cDAQ1Mod1", "ai0","Voltage")
ch = Index Type Device Channel Measurement Type Range Name _____ ____ ___________ _______ ________________ __________________ _______________ 1 "ai" "cDAQ1Mod1" "ai0" "Voltage (Diff)" "-10 to +10 Volts" "cDAQ1Mod1_ai0"
Acquire Timestamped Data
The read
command starts the acquisition and returns the results as a timetable.
data = read(dq, seconds(1));
Plot Data
plot(data.Time, data.cDAQ1Mod1_ai0);
ylabel("Voltage (V)");
Change Default Properties of the Acquisition
By default, run at a scan rate of 1000 scans per second. To acquire at a higher rate, change the Rate
property.
dq.Rate = 5000;
Run the acquisition and plot the acquired data:
[data, startTime] = read(dq, seconds(2));
plot(data.Time, data.cDAQ1Mod1_ai0);
ylabel("Voltage (V)");