09-29-2006 02:40 PM
09-29-2006 03:39 PM
It has been a long time since I looked at what VEE could do but your conclusion that it is pretty limited to instrument control is on the mark. I think LabVIEW can do this at least as well and it does so many other things that VEE programmers can only dream about. LabVIEW does DAQ, vision, motion, fpga, embedded, and a whole lot more.
Your interchangeable instruments is covered by something called IVI and LabVIEW and VEE both support this. Put simply, the IVI foundation has defined certain classes of instruments (scope, power supply, dmm, function gen, switch, arb, spec an) and your write code that calls class drivers. In order to replace an instrument, you install the instrument specific driver and re-configure a utility that tells the generic class driver which instrument driver to use. As long as you stick with functions that are in the class driver, your programs never need to be modified. The problem is that not all instruments are covered by a generic instrument class and if you have to use an instrument specific function, the interchangability goes away. There are two types of IVI drivers. The type supported by LabVIEW is called IVI-C and these drivers are written with LabWindows/CVI. The other type(which LabVIEW can also call) is IVI-COM and these are based on ActiveX. I have no idea what type VEE supports best. You can find out more at http://www.ni.com/ivi/ which also has a link to the IVI Foundations web site.
LabVIEW can use VB code that is made into an ActiveX control or DLL.
09-29-2006 04:24 PM
09-30-2006 03:31 PM
And as for executables, you can compile LV code into EXEs, but you will need the application builder. That comes built-in with some distributions of LV, but for some of the cheaper ones (with "cheap" being a very relative word), you will have to buy it seperately. Also, you will need to install the LV run-time engine, in the same way that you would need the C or VB RT libraries to run executables compiled in those languages (for those, the RTs are usually bundled with your operating system). When you build your executable, you can create an installer to install the RTE for you. You might need to install some other drivers depending on the functionality you'll need.
Another point about LV code is that it's portable to other platforms like Linux and Mac. Not all Windows functionality would be supported on those systems (like ActiveX, mentioned by Dennis), so you would need to check what is before doing something like that (if you even wanted too).
10-01-2006 05:10 AM
10-01-2006 05:32 AM
@JohnW wrote:
LV will make a distributable package including required runtimes.
My question is: if I develop a one line application (say the classic hello world) how large the required package, to work
on any windows machine?
In a few words: is the building process dinamically "intelligent" including only what really needed, or will a "Hello world" require
several megs to run (and if so, how many megs, more or less)?
Does this building process take into account, for example, of needed drivers such as instrument drivers and 488 drivers?
The size of the RTE varies between different versions of LV. For LV 8.x, I believe the practical minimum size is around 80 MB. There is a smaller version (around 30 MB), but I think that would only work for a feature known as Remote Front Panels, which allows you to control your program through a web browser. This size is because the RTE includes a lot of the base functionality needed to run programs. After you install it once, you should be able to run any LV-built EXE on that machine. Of course, with CDs and DVDs this should not be a problem and you can download the RTE seperately, if you don't want to send a big installer through email.
The exceptions to that would be executables which require additional NI drivers for talking to hardware. The way I understand it, the LV 8.x application builder gives you a lot of options for which drivers you want to add into your installation. Depending on what functionality you need, this could easily come out as several hundred MB and quite a long time for installing.
BTW, you could (at least in the past) run some programs (usually ones which didn't require hardware) without installing the RTE by simply having the proper DLLs in the same folder as your executable. I don't know if that still works, though.