LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Loop hang up after DAQ read finished

Please see attached diagram.
Can anybody help find why this loop hang up at "nowhere"?
 
This loop was found stop iteration, hang up at "ReadData" case,  while its parallel loop is contiouing iteration. the occurance can be from once several days or just 1 hour after start.
this vi is for continuous DAQ of 2 AI cards. two AI tasks (one 4-channel and one 3-channel) are configured time based, no trigger, continous, 25kHz sample rate, default buffer size, overwrite un-read samples. two task are not synchronized, read sample size is 2500 sample per channel (read every 0.1s); DAQ read wait time is 0.25s.
if there is any DAQ read error other than -200279 (overwriten happened), then the loop will go to "Error" case then terminate. if the error is -200279, then clear the AI tasks and reconfig, restart DAQ, up to 10 consequtive re-try.
 
After hang up was found (other VIs reads data from this VI is not getting data), I add a parallel log loop to track while it hangs. the log loop check "Status", "Iter#", RdErr", "Card#" every 0.5s, and log the values to disk file if RdErr changes or 5 seconds after last log.
 
 The DAQ loop was found hang up at Status=ReadData, Card#=100, RdErr=0; the log loop continues run and logging with logged iter# and other values no change.
 
Because "Status"=ReadData, the loop is not terminated; because Card#=100, appears both DAQ tasks reading are finished. the programm seems not even get to the error check case, because if there is no read error, it will go to next case "HistWave" and Card#=101; if there is an error, "RdErr" log shall show non-zero, and "Card#"=102 or 103.
if it is waiting on DAQ (it shall not because the time limit is 0.25s), then Card#= 0 or 1.
 
One place may hang up is the merge error function, but I can't image it would because nothing inside it should cause waiting forever.
Another place is: the FOR loop has write "100"out to the local variable "Card#", but the waveform shift reister is never writen out, can this be possible?
 
the "Newwaves" is a 7-channel array with waveform length initialized to 7501 samples, even contributes (name, units are iniliazed to larger than actually would be).
 
there are many other vis running at the same time and they appears to be fine, windows task manager show no abnormal in CPU and Memory usage.
 
 
0 Kudos
Message 1 of 3
(2,667 Views)
0 Kudos
Message 2 of 3
(2,664 Views)
Hi Bob,

You may want to check if highlight execution points out where the program has stalled. Once the VI enters its hanging state, turn on the highlight execution and see the current state of the VI. Where does it say the problem is?
Joe Friedchicken
NI Configuration Based Software
Get with your fellow OS users
[ Linux ] [ macOS ]
Principal Software Engineer :: Configuration Based Software
Senior Software Engineer :: Multifunction Instruments Applications Group (until May 2018)
Software Engineer :: Measurements RLP Group (until Mar 2014)
Applications Engineer :: High Speed Product Group (until Sep 2008)
0 Kudos
Message 3 of 3
(2,633 Views)