Multifunction DAQ

cancel
Showing results for 
Search instead for 
Did you mean: 

DAQ always takes 100 ms multiples to make the task, why ?

Hi every body, 

 

I'm trying to do a finite trigger signal with my board PCIe-6251 .

The problem is that the DAQ allways takes a longer time to do the task that should take, and is not proportional.

 

Like this, when the trigger signal  should take between  20-100 ms the board take 100 ms, when should take 101-200 ms  it always takes N*100 ms. 

 

Example:

 

Should take (ms)                                        take (ms)

 

between 0-100                                          100

between 101-200                                      200

between 201-300                                      300

between 301-400                                      400

               .                                                 .

               .                                                 .

               .                                                 .

 

and this is a big problem for my program,

somebody knows why this is happening ?

and how to fix it ?

 

I attached one simple code that happens the problem.

 

Thanks in advance,

 

Tiago 

 

Ps: Using Win Xp 32 and labview 8.5.1

 

 

0 Kudos
Message 1 of 6
(4,202 Views)

Hi Tiago,

 

The Wait Until Done function actually polls the status of your DAQ Device every 100 ms (for Counter Output only).  This has been mentioned a couple of times on other forum posts:

DAQmx Wait Until Done 100ms Default

 

DAQmx Wait Until Done Takes an Extra 100ms

 

Unfortunately, our older hardware requires the polling behavior but the output of the counter is not affected.  What is the exact application that you require where this is a big problem? 

 

 

X Series devices implement an Interrupt to signify when the CO Task is complete, so the Wait Until Done will be much more responsive.  For example, on my 6353 I was able to get a time of 367 or 368 when using a task that takes 366.022.

 

 

Best Regards,

John Passiak
0 Kudos
Message 2 of 6
(4,190 Views)

Hi Tiago,

 

Let me amend my previous post a bit.  The driver is polling every 100ms, but this isn't necessarily required by the hardware.  We have filed Corrective Action Request #219308 and are looking into changing the behavior to give a faster response. 

 

Thank you for bringing the behavior to our attention--if you need help coming up with any possible workarounds until we can fix the behavior just let us know more about the big picture of your application.

 

 

Best Regards,

Message Edited by John P on 04-09-2010 09:16 AM
John Passiak
0 Kudos
Message 3 of 6
(4,149 Views)

 

hi,


I'm using either a PCI-6602 or a PCI-6259 board with DAQmx to generate a finite number of pulses with the counter.  After the generation is done (for example 100 pulses) I want to detect that the task is finished, do something else, and then quickly restart the task to generate another 100 pulses.

 

I'm using the DAQmx "WAIT UNTIL DONE" vi to detect when the 100 pulses have been generated.  What I'm seeing is that the wait until done vi seems to only update once every 100ms, such that the minimum time between my pulse generations is always 100ms. 

 

This is much too slow for my application, and the behaviour of this function is counter-intuitive: it should return after an internal hardware interrupt or some such thing.  I see that this issue was first reported in 2006 - surely by now this has been corrected??

 

thanks
Mark

 

0 Kudos
Message 4 of 6
(3,750 Views)

Hi Mark,

 

What version of NI-DAQmx are you using? CAR #219308 was fixed in NI-DAQmx 9.2, which was released in August 2010. A related problem where a large initial delay could make "wait until done" take too long was fixed in NI-DAQmx 9.5, which was released in February 2012.

 

Also, are you using triggering or external clocks?

 

Brad

---
Brad Keryan
NI R&D
0 Kudos
Message 5 of 6
(3,727 Views)

 

hi Brad,

 

Thanks for the info.  I'm using NIDAQmx 9.11, and if the problem was fixed in version 9.2, unfortunately that version also dropped support for my version of Labview, which is 8.2.1.

 

btw, the pulse generation I'm doing is internally clocked.

 

thanks again,
Mark

0 Kudos
Message 6 of 6
(3,716 Views)