Multifunction DAQ

cancel
Showing results for 
Search instead for 
Did you mean: 

outp visual c++

I have to coordinate a still to buy DAQ-card with an ACAM TDC.
The TDC interface looks like this:

OpenPortsForNT();
ScanPciBus();
inner_loop{
   _asm
   {
   mov dx, Port
   mov eax, Data
   out dx,eax
   }

   _asm
   {
       mov dx, Port
       in eax,dx
       mov Data, eax
   }
}

Is it possilbe to do this with NI DAQ cards?
Or are NI DLLs as fast as QueryPerformanceCounter() or modern graphic card APIs?
The loop runs 1 kHz.

I am a bit lost in this website. Some competitiors were a bit clearer.
0 Kudos
Message 1 of 3
(3,227 Views)
Hi Arnero,
 
If you use DAQmx, you can expect excellent performance for a driver library.  DAQmx Read or Write performance when using a single digital port is less than 20 microseconds using Windows a Dell 1.6 GHz computer.  On LabVIEW RT, using an 8176 controller, I have  benchmarked the performance to be less than 5 microseconds per read or write.  Make sure you start the DAQmx task outside your inner loop to get best performance.
A 1KHz loop rate should be no problem.  However, if you are using Windows, you can occasionally expect the system or other applications to interrupt your program.  This interruption could cause a significant delay.  If you use a real-time OS like LabVIEW RT you can get expect better determism and less jitter.
 
If you need register-level programming, you can use the "Measurements DDK".  However, your application will be easier to write if you use DAQmx.  Your loop rate is fairly slow, so I would expect DAQmx to work just fine and you shouldn't need to do register level programming.
 
Jonathan
Message 2 of 3
(3,215 Views)
I was just told, that I can use win 98 with DAQmx 7.1 and the M-Series.

When I use the DAQmx, do they start a seperate thread? This would be a problem as Win 98 uses 10ms< time slices (requirement 1) ?

I planned to syncronize two cards ( the acam TDC and the DAQ) by
first activating both
query their status to see if they are really activated
wait some time
query their status to see if they are still activated
so that I know that both respond to the same external trigger pulse

That means, that the DAQmx driver must not block my program  (requirement 2).
0 Kudos
Message 3 of 3
(3,198 Views)