Counter/Timer

cancel
Showing results for 
Search instead for 
Did you mean: 

PCI-6602 card not updating timing delays when changed using DAQmx

Hello,

 

I have a program that outputs TTL pulses using Counter Outputs with DAQmx to time equipment signals. We use the program to scan timing delays from a master oscillator. Occasionally we run into an issue where Labview will write the correct timing using DAQmx, but the signal on the card (PCI-6602) will not update to the new timing delay (measured using an oscilloscope). A temporary workaround we found is to restart Labview. This has become more frequent over time and I was wondering if I could receive input towards how to troubleshoot the problem more.

 

We are currently using Labview 2009, and we have noticed that the CPU usage of Labview is abnormally high during this time (up to 50%). This only seems to occur when the timing delays don't update properly, otherwise CPU usage is low (<5%).

 

Thanks

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

I can offer one odd, obscure bit of info, but have low confidence it'll help because it wouldn't explain your CPU observation.  Here goes anyway.

 

[The following was true the last I knew and I assume it still is.  It's the kind of thing that seems susceptible to being fixed in more recent versions of DAQmx though.]

 

There are 2 main parameters to define in a pulse train.  You can define them either in terms of frequency / duty cycle or in terms of low time / high time.   A much lesser-known fact is that one of the parameters gets 2nd-class-citizen status.  If you use a DAQmx property node to update only the "wrong" parameter all by itself, the change will be ignored until the next time the "right" parameter is also modified.

   This has come up in past threads about pulse generation where frequency is the 1st-class-citizen and duty cycle is 2nd-class.  Attempts to modify *only* the duty cycle get ignored.  If the same old freq and a new duty cycle are *both* written, then the change takes effect.

 

You refer to a timing "delay", making me suspect a pulse train definition based on low time / high time.  It may be the case that you're updating only the "delay" parameter via property node and that it may be the 2nd-class one.  Try writing to both pulse parameters, even if the value you write to the other one is the same value it already had.

 

Again, I think your CPU observation tends to point toward a different issue than this.  I think it's more likely that the high CPU and failure to update pulse delay timing are both *symptoms* of some other root cause.

 

 

-Kevin P

ALERT! LabVIEW's subscription-only policy came to an end (finally!). Unfortunately, pricing favors the captured and committed over new adopters -- so tread carefully.
0 Kudos
Message 2 of 3
(2,796 Views)

Kevin,

 

We define the pulse train with low / high time and both of those are specified in our programming. The low and high time are written to a DAQmx property node every 10 Hz. Our programs runs fine for some period of time before the issue appears, so as you said the issue is probably something else.

 

I appreciate your response and thanks for the help.

 

-Elasive

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