how to output multiple scan in usb6008 with matlab

3 vues (au cours des 30 derniers jours)
mado le 23 Mar 2014
i need your help to use ni usb6008 to output analog signal , the analog signal is the control signal from PID controller i used this code
% Initialization
global Temperature
global Irradiance
global current
global Vref
global data
global u
%%get connected devices
d = daq.getDevices
%create session
s = daq.createSession('ni')
s1= daq.createSession('ni')
%add analog channel s.addAnalogInputChannel('ID',channel num, 'measurement type')
% s.addAnalogInputChannel('Dev1',0:3, 'Voltage')%irradiance
s.addAnalogInputChannel('Dev1','ai0', 'Voltage')%irradiance
s.addAnalogInputChannel('Dev1','ai1', 'Voltage')%Temperature
% s.addAnalogInputChannel('Dev1','ai3', 'Voltage')%Temperature
s1.addAnalogOutputChannel('Dev1', 'ao0', 'Voltage')
% set rate of scan 1000 scans/second , run for 30 seconds
s.DurationInSeconds =10
v.TerminalConfig = ' Differential';
%v.TerminalConfig = ' SingleEnded';
%aquire data and process
lh = s.addlistener('DataAvailable', @plotData);
%store data
%h = s.addlistener('DataAvailable', @storedata)% Analog Output
ao_value = u % duty cycle control signal
delete (lh)
delete (h)
but an error message appeared "The data argument must contain one column for each output channel in the session.
i also can't use queue output data
ao_value = u % duty cycle control signal
s.queueOutputData (( ao_value)');
it gives me error that "There must be at least one analog output channel in the session before outputSingleScan or queueOutputData can be used.

Réponses (1)

Walter Roberson
Walter Roberson le 24 Mar 2014
When you use
global u
then "u" is initialized to [] unless you have already initialized it. The empty array [] does not contain at least one column and so cannot be used as a value for outputSingleScan


En savoir plus sur Analog Input and Output dans Help Center et File Exchange


Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by