LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

"Read Data Express VI" alternative

Is there some alternative to get the channels from a channel group without use the "Read Data Express VI". Using the VI express is too slow, it is taking around of 15 msecond for interaction,  resulting on 2 second to get the data for each file, almost 3 minutes for 80 files.Read Data Express VI.png

0 Kudos
Message 1 of 4
(2,418 Views)

That's not actually an express VI, it's an xnode.  You can't really do anything with those.

 

Am I correct in assuming you're trying to parse data out from a data file?  What data file type is it?  There might be other parsing methods for some file types.

 

You could also try parallelizing your FOR loop, or the loop outside of this that calls the 80 files in sequence.  It'll only help if the subVIs it calls are set to be reentrant, but it can't hurt to try.  You will have to remove shift registers from the loop to parallelize it, though.

0 Kudos
Message 2 of 4
(2,392 Views)

Yes, those are Teststand ATML (XML) data files.

There are different methods, it was the method selected by simplicity and suggested by the examples, but it is slow.

parallelizing could be a good option, i could try it.

 

looks like there is a function (Data File Viewer.vi) inside of "Storage/DataPlugin" that is getting all the file information (Channel and Group), without use the Express VI (xnodee). I am analyzing it.

 

Thank you for you help

 

 

0 Kudos
Message 3 of 4
(2,367 Views)

If I had to guess, I'd say the root of the problem might be that the xnode is calling the built-in LabVIEW XML parsing, which is quite slow.  See here, though the article is from 2013 I tried a while back and I still had a lot of slowdown when I tried using the built-in parser as well.  

 

There's another post here that does speed trials on XML reading, showing that LabVIEW's XML reader slows down exponentially with the size of the file.  If you increase the number of elements in XML from 20 to 210, you'd expect the execution time to go up by a factor of 10 to 11, but in the experiment it goes up by a factor of 76.

 

The solution is probably (unfortunately) to manually parse the XML using a different XML library.  I used LibXML myself for a project unrelated to TestStand data files, and it did work OK despite being over a decade since getting an update, and way faster than LabVIEW's parser.

0 Kudos
Message 4 of 4
(2,351 Views)