06-10-2014 12:16 PM
Hi, I have a TestStand sequence which calls a step for data acquisition (DataAcq) and a step for data analysis (DataAna). The 2 steps are 2 different VIs.
The DataAcq pass data to TestStand, then TestStand pass the data to the DataAna. Running just one single thread in TestStand this is not the fastest way. Passing data directly trhu Labview using functional global or even file global is faster.
But, running in TestStand multiple threads in parallel, passing data thru TestStand is still the fastest way.
I tried with functional globals, file globals and DataValues reference but are all slower.
Is there any other faster way to transfer data in such an application?
Thanks a lot.
06-10-2014 12:24 PM
Why certainly there is a faster way.
Create a LabVIEW step that calls a module that has both subvis on one block diagram and wire the data from DataAcq.vi to DataAna.vi.
You can certainly still pass all of the raw and analyzed data to TestStand after it is analized.
06-11-2014 08:50 AM
Yes, you are right of course. If I use a wrapper that include both the VI I do not have any issue to pass the data.
But let’s suppose that you cannot wrap the Vis. Is there a way to keep the data in LV that is faster then pass the data thru TS?
Thanks, BR
06-11-2014 10:11 AM
@logatto wrote:
But let’s suppose that you cannot wrap the Vis. Is there a way to keep the data in LV that is faster then pass the data thru TS?
Thanks, BR
Given the preposition stated (and its a silly preposition, wrap the related vis)
You could launch a clone of a QHM via ACBR Fire n Forget and pass the clone name to the TS execution instance. the LabVIEW QMH is then asynchronously running and you can interact with it via queues for commands in and notifiers for data out. Silly, and I wouldn't want to debug it, but faster than passing in and out of TS for large data.