From 04:00 PM CDT – 08:00 PM CDT (09:00 PM UTC – 01:00 AM UTC) Tuesday, April 16, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

NI TestStand

cancel
Showing results for 
Search instead for 
Did you mean: 

DAQ readings in batch model

I am writing a sequence that reads some analog channels, performs some tasks, reads some other analog channels and so on. I am using the batch process model to test multiple DUTs at the same time. Currently, when the sequence gets to a step where I call a LabVIEW VI that handles the data acquisition, each socket perfroms the step in series. 


This was fine initially, but now due to the large number of DAQ reads throughout the sequence, the time spent executing the reads in series is becoming an issue. I started to explore using notifications to pass each sockets channel list to the first socket, performing a 'global DAQ read' with all socket channels and then passing the results back to each socket. 

 

I have been unsuccessful with this so far and would appreciate some help.

 

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

do you have some examples of your code? that will help...

 

 

so what you want to do is having a STEP to make a MULTIPLE  read of all the channels. Then pass the data of the channels read to the corresponding socket?

 

 

Dont know if this would be like an acceptable practice but i have done somethign similar and it worked.

  • Start a thread that will be running  parallel on the background. 
  • This thread will be always reading you DAQ and putting the latest result  on  File Global or Station Global(this might not be the correct practice, Globals are not for this lol). 
  • Each socket will read from that File Global. ONLY read if you start writing stuff you will begin to have problems.

 

let me know what you guys think.

CLAD, CTD
0 Kudos
Message 2 of 3
(2,964 Views)

Thanks for the response buton.

 

What I ended up doing was to initialze a DAQ task for a certain signal to include the channels of each socket. Then in the sequence, when I want to read from the DAQ, I have only the first socket execute the read step (which would read the specific signal on all sockets) and then put the array in a FileGlobal. By changing the sequence file setting to have each execution share FileGlobals, the next step has each socket index the FileGlobal array based on the socket number and pull its data from it.

 

I'm not sure if it's the best way to go about it, but it is working for now.

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