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)");