Multifunction DAQ

cancel
Showing results for 
Search instead for 
Did you mean: 

PCI-6010 Sampling

Hello NI Experts,

 

I am using PCI-6010 DAQ Device in order to acquire and generate signals from/to a pneumatic system. I am using channels that are following;

 

AI9 : First Pressure Sensor Input

AI10 : Second Pressure Sensor Input

CTR0 : Sony SJ300 Scale Unit / A signal for position (Edge-Count)

CTR1 : Sony SJ300 Scale Unit / B signal for position (Edge-Count)

AO0 : First Valve Analog Output

AO1 : Second Valve Analog Output

 

I am also using MatLab for accessing the device, and I am using the code following,

 

clear
clc
close all

 

UpB=4;
Ts=0.05;


s=daq.createSession('ni');
s.DurationInSeconds=UpB;
s.addAnalogInputChannel('Dev1',9,'Voltage');
s.addAnalogInputChannel('Dev1',10,'Voltage');
s.addCounterInputChannel('Dev1','ctr0', 'EdgeCount');
s.addCounterInputChannel('Dev1','ctr1', 'EdgeCount');
s.addAnalogOutputChannel('Dev1',0,'Voltage');
s.addAnalogOutputChannel('Dev1',1,'Voltage');

 

I want to launch the session for UpB (4) seconds with respect to Ts (0.05) sampling time.I am getting the following error if I run these codes.

 

Warning: A channel that does not support clocked sampling was added to the
session. Clocked operations using startForeground and startBackground will be
disabled. Only on-demand operations using inputSingleScan and outputSingleScan
can be done.

 

I know it occurred because of the analog outputs. In order to get over this problem, I am using a timer function to send and acquire signals conditionally to a specific sample rate.

 

t = timer('TimerFcn', 'stat=false; disp(''Finish'')',...
'StartDelay',UpB);
start(t)
stat=true;
i=1;
while(stat==true)
dataAcquired(i,:)=s.inputSingleScan();
P1(i,1)=dataAcquired(i,1);
P2(i,1)=dataAcquired(i,2);
x(i,1)=dataAcquired(i,3)-dataAcquired(i,4);
pause(Ts)
i=i+1;
end

 

But instead of having 80 samples, I can only read data for 64 samples. This means that my timer works for 3.2 seconds instead of 4 seconds.

What is the problem, any ideas? Cannot I use external clock of the PCI-6010 if I want to send signals to my system? 

 

I tried using two sessions and assign analog outputs one of them, but nothing changed, I think I still have to create a timer function to send signals with a sample rate.

 

By the way PCI-6010 is not supported from Real-Time Windows Target, I cannot use it neither.

 

Thanks in advance.

0 Kudos
Message 1 of 2
(3,731 Views)

Unfortunately, I'm having a hard time understanding what you're trying to do. If you could give me a list of what you're trying to do, I could test the hardware on my end. For the software, it is probably best to contact MathWorks regarding this issue.

 

Regards,

 

Brandon V.

Applications Engineer

National Instruments

0 Kudos
Message 2 of 2
(3,683 Views)