MATLAB Answers

0

NI DAQ AI and AO realtime data acquaring

Asked by Sergey Makovkin on 6 Sep 2016
Hi, All!
I use NI PCI-6229 card. And I need to set 2 AO voltage outputs and get 1 AI voltage inputs. And I need to plot synchronously all these data on plots.
I do this with the following code:
clear all
close all
clc
Session = daq.createSession('ni');
Session.addAnalogInputChannel('Dev2', 'ai0', 'Voltage');
lh1 = addlistener(Session, 'DataAvailable', @plotData);
%lh1 = addlistener(Session, 'DataAvailable', @(src, event) plot(event.TimeStamps, event.Data));
addAnalogOutputChannel(Session, 'Dev2', 0:1, 'Voltage');
Session.IsContinuous = true;
Session.Rate = 10000;
data(:, 1) = [linspace(-1, 5, 5000) linspace(5, -1, 5000)]';
data(:, 2) = [linspace(-1, 10, 5000) linspace(10, -1, 5000)]';
%lh2 = addlistener(Session, 'DataRequired', @(src, event) src.queueOutputData(data));
lh2 = addlistener(Session, 'DataRequired', @(src, event) src.queueOutputData(data));
queueOutputData(Session, data);
subplot(2, 2, 1);
plot(data(:, 1))
subplot(2, 2, 2);
plot(data(:, 2))
% subplot(2, 2, 4);
% plot(event.TimeStamps, event.Data)
startBackground(Session);
function plotData(src, event)
subplot(2, 2, 3)
plot(event.TimeStamps, event.Data, 'ro-', 'MarkerEdgeColor', 'k', 'MarkerSize', 1);
%event.Data
end
But I see only AI data. How can I get from the listener the AO data in the same time?

  0 Comments

Sign in to comment.

Tags

0 Answers