Showing results for 
Search instead for 
Did you mean: 

Express VI's vs. Regular VI's


I am using LabVIEW for DAQ and logging, and am currently using Express VI's. What are the advantages and disadvantages of using thing over regular VI's?
0 Kudos
Message 1 of 9
In the Express vi's, most common parameters are already configured.  Being inherently lazy, I use the Express vi's whenever I can.  But there are always situations where you need to tweak things.  If you're new to Labview, using Express vi's is a very non-daunting way to get your feet wet.  Sooner or later, though, you'll want to get inside the vi's and find out what makes them tick. 
In Labview tradition, an Advanced vi is simpler than a "normal" one, which can seem somewhat confusing.   What is means is that YOU have to be more advanced to use doesn't mean the vi is more advanced!  I was a bit thrown by this in my early days, but now it seems quite intuitive.
Eric P. Nichols
P.O. Box 56235
North Pole, AK 99705
0 Kudos
Message 2 of 9

Just to add to chutla's answer

On a block diagram, if you open the front panel of an Express VI, you will find that it is built using relevant 'Regular VI' functions.

To summarise, if you use Express VI's the advantage would be the obvious 'easy to get started'

the disadvantage would be 'not a very efficient way of building a multi-functional application'

Whereas, if you buils a VI using Regular functions, you get more flexibility in programming various parameters and you code would be more efficient

any doubts, do ask


Message 3 of 9

I'm using the various DAQ Express VI's as well as Express VI's to log my data and calculate statistics. Does this put an unnecessarily large toll on my processor? What I'm really wondering is if I would achieve better data resolution if I did not use Express VI's.
0 Kudos
Message 4 of 9
The express VIs include ALOT of overhead and are therefore "slower" and "larger"

If you can use them in your application, by all means use them. Like others have mentioned, a specific solution can be better... but only if you need it.

I do however have a simple (VERY SIMPLE) example.
Create two vis. Nothing on the front panel. On one block diagram place the regular "wait" and wire a constant to it. Save this VI.
On the other VI's block diagram place an express "Time delay". Save it.
Now, explore to the files and compare sizes. The simple VI is about 5kB. The express copy is almost 20kB!
Message 5 of 9
Yeah, I know that Express VI's take up a lot of disk space...simply look at the VI heirarchy and you can see for yourself. But does it affect the resolution of the data I'm acquiring? I'm sampling an analog voltage pretty quickly, at 100 Hz.
0 Kudos
Message 6 of 9
There is no effect on resolution, timing, etc whether you use Express VIs or lower level functions. You are programming the exact same hardware with the same exact functions. All the Express VIs do is put a wrapper around the lower level functions. And, acquiring at 100 Hz is considered very slow. Exactly what problem are you having that you are asking this question.
Message 7 of 9
It's not actually a problem that I'm currently having, per se...

I plan on logging data over an extended period of time (several days), and I just want to make sure I'm doing things efficiently for my machine.
0 Kudos
Message 8 of 9
The efficiency of the Express VIs ifs pretty good in most cases but you can usually optimize things by using the lower level functions. At your low acquisition rate, the Express VIs may not be a problem at all but there is almost certainly room for improvement. For example, the Write LabVIEW Measurement File contains a lot of functions to make it simple to use but you would be able to write faster if you did an open file once at the beginning of the program and then inside your acquisition loop, formatted the data yourself and do the low level Write File.
Message 9 of 9