03-24-2011 07:32 AM
I know that express VI's are generally frowned upon here. My question is why?
Is it because people think that the programmer should be able to do (manually) what the express VI is doing?
Or is it because express VI's generally dont perform very well?
The reason I ask is because I know how to use the DAQ stuff, but I still use express VI's when I need to send a lot of data at once.
As an example... if I need to read or write single lines or ports I'll do it manually.
If I need to dump a 1K buffer onto a FIFO memory board, I'll use an express VI.
Solved! Go to Solution.
03-24-2011 08:57 AM
No
@WayneS1324 wrote:
I know that express VI's are generally frowned upon here. My question is why?
Is it because people think that the programmer should be able to do (manually) what the express VI is doing?
Or is it because express VI's generally dont perform very well?
No, none of those. I never use Express VI's cause there is way to much overhead in there and often "bad written" if you're looking at performance.
03-24-2011 09:13 AM
Other people will tell you theirs reasons for not using them. When Express VIs were introduced seasoned LabVIEW programmers saw them with much chagrin. In fact, there's a famous video that was taken at one of the NI meetings in which seasoned LabVIEW programmers were asked to name 10 Express VIs. They couldn't. Not because they didn't know LabVIEW, but because they stayed away from them. My own personal opinion is that NI was basically trying to take a cookie-cutter approach to programming. On the one hand they wanted to say that LabVIEW was a full-featured programming language. And on the other hand they wanted to say that non-programmers could use it. Hence the Express VIs. When they first came out they were horrendous in terms of complexity and overhead. They've gotten better. For instance, the Time Delay VI is quite useful. So is the Elapsed Time VI. So is the File Fialog.
One additional reason why Express VIs are frowned up is because in data acquisition they use the dynamic data type which is a pretty much next to useless data type. I'm sure NI will tout it as being the greatest thing since sliced bread, but I'll take the waveform data type over the dynamic data type any day of the week.
03-25-2011 09:53 AM
Wayne,
While express VIs may be frowned upon here, they do have their uses, and meet their intended goals quite well.Theyre great for people trying to do relatively simple tasks which arent very process intensive, like taking some thermocouple data and writing it to a file. They can greatly speed up design and built time, which saves money as LV developer time can get very expensive. They also take off a good chunk of the learning curve for new users, while still giving more functionality than something like SignalExpress.
For an experienced programmer, there absolutely can be more efficient and flexible solutions created, but there is also typically a higher development cost.
This is a community of labview developers, so of course there will be some bias to the more rigorous, higher performance way of doing things. That being said, a huge number of people in industry use express VIs on a daily basis because of the simplicity they offer.
Regards,
Kyle Mozdzyn
Applications Engineering
National Instruments