NI Home
Cart Cart | Help
Hello Events Academic NI Developer Zone Support Solutions Products & Services Contact NI MyNI
You are here: 
NI Home > NI Developer Zone > NI Discussion Forums


Reply
Member
Dowsley
Posts: 2
0 Kudos

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

 

 

Trusted Enthusiast
John_P1
Posts: 2,073
0 Kudos

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

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
Trusted Enthusiast
John_P1
Posts: 2,073
0 Kudos

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

[ Edited ]

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
Member
wmbates
Posts: 2
0 Kudos

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

 

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

 

Active Participant
Brad_K
Posts: 609
0 Kudos

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

[ Edited ]

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
Member
wmbates
Posts: 2
0 Kudos

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

 

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

By using this web site, you accept the Terms of Use for this web site. Please read these Terms of Use carefully before using any part of this site. Please go here for information on ni.com's copyright infringement policy.
My Profile | Privacy | Legal | Contact NI © 2011 National Instruments Corporation. All rights reserved.    |    E-Mail this Page E-Mail this Page