Generate and Acquire Data on Bidirectional Channels
This example shows how to use a bidirectional channel and read and write data using the same two lines on an NI 6255.
Discover NI devices connected to your system and find the ID for the NI 6255.
d = daqlist("ni")dev =
3×4 table
DeviceID Description Model DeviceInfo
________ ___________________________________ __________ _______________________
"Dev1" "National Instruments(TM) USB-6255" "USB-6255" [1×1 daq.ni.DeviceInfo]
"Dev2" "National Instruments(TM) USB-6363" "USB-6363" [1×1 daq.ni.DeviceInfo]Create a DataAcquisition object and add two lines from port 0 and 2 lines
from port 1 on Dev1.
d = daq("ni"); addbidirectional(d,"Dev1","Port0/Line0:1","Digital"); addbidirectional(d,"Dev1","Port1/Line0:1","Digital"); d.Channels
ans =
Index Type Device Channel Measurement Type Range Name
_____ _____ ______ _____________ _______________________ _____ __________________
1 "dio" "Dev1" "port0/line0" "Bidirectional (Input)" "n/a" "Dev1_port0/line0"
2 "dio" "Dev1" "port0/line1" "Bidirectional (Input)" "n/a" "Dev1_port0/line1"
3 "dio" "Dev1" "port1/line0" "Bidirectional (Input)" "n/a" "Dev1_port1/line0"
4 "dio" "Dev1" "port1/line1" "Bidirectional (Input)" "n/a" "Dev1_port1/line1"Set the direction on all channels to output data.
set(d.Channels,"Direction","Output");
Generate the digital output data.
write(d,[1 0 1 0])
Change the direction on all channels to input data.
set(d.Channels,"Direction","Input");
Acquire the digital data.
read(d,"OutputFormat","Matrix")
ans =
1 0 1 0