01-21-2006 10:35 PM
01-22-2006 04:57 AM - edited 01-22-2006 04:57 AM
Jack, the choice between LabVIEW and CVI is crucial and no so simple to approach.
If you have some experience on traditional text based programming (especially C language as in your case) you should find easier the transition to CVI than to LabVIEW, but this is not a strict rule and is not necessarily the best solution to your needs.
"the style of Labview programming looks so different" you say, and it's true! When I first approached LabVIEW after several years of basic and C programming I spent almost a month simply to learn how to handle a few buttons on the GUI (OK, it was my summer vacations and I had my one-month-old daughter to "study" too so LV had not the highest priority, but on the other side I was free from the stress of normal working days...). Next somthing switched in my brain and I started using LV with some good results. But I still remain a CVI addict
These two environments are approaching one each other in the recent year and nowadays there are only some differences between them. But these differences are relevant if you are to use real-time devices, PDAs, FPGA or so, which can be programmed in LV and not in CVI. Consider that NI was born and continues to be "the LabVIEW company": that is, LV has always been (and maybe will continue being) one step ahead of CVI on new frontiers in programming, but if you are not involved in such concepts whichever you are using you can get very good results (as a side note: both NI-motion and IMAQ can be used indifferently in CVI and LabVIEW; I don't know if there are substantial differences between those environments).
Which language can be better for your needs? The one that permits you to focus on your problem rather then struggle with an uncomfortable instrument. Whether it is LV or CVI depends on your skills and feeling and cannot be predicted (however, if you posted this question in the LV forum you'd have found lots of programmers that guarantee LV is better! ).
As a last item, consider that CVI is a compiler (i.e. is intended to produce a compiled executable) while LabVIEW runs native in the "source" code, the Application Builder being an independent application in the past and included only from version 7 (or 6? I don't remember) on. In my opinion this is a relevant characteristics that drives me to use CVI where a non-modifiable application is preferable (testing equipments on production line or quality assurance laboratory applications where the repeteability of tests is crucial), while I can use LabVIEW where flexible and easily adaptable applications are preferable (False: I personally use CVI in almost all of my applications, but it's a matter of taste!)
Message Edited by Roberto Bozzolo on 01-22-2006 12:04 PM
01-22-2006 08:17 AM
01-23-2006 06:35 PM
01-24-2006 02:24 AM
Well, Jack, you got me to cross the lines and post in the CVI board. Congratulations!
I'm actually posting to say that you probably should use CVI. I haven't used it myself, but the learning curve involved, not only in learning basic LV and dataflow principles, but in producing a good program, is not negligible. If your program is complex enough, or commercial, you will probably want to go with the language which you know.
If you do get to really work with LV, though, you probably wouldn't want to go back - the lack of need to worry about memory allocations, correct syntax, variable definition and so on just spoils you and makes you not want to go back to C (if you manage to get used to it). One thing to note, however, is that this independence of the LV compiler comes at the price of memory - to work properly and keep your data, LV sometimes needs to make copies of data in memory. Add that to the fact that LV needs continuous memory blocks to hold its data, and you run into a situation where working with large data (and image acquisition sometime has that) is something that requires some knowledge into how and where LV allocates memory to avoid running out of it. If your application includes anything like that (let's say images or arrays which are 100's of MBs) you will probably want to avoid LV for this one.
01-24-2006 03:37 AM
01-25-2006 11:22 PM
Dear Jack,
Since 1998 I am useing CVI. I have experiance in LV also. I have many projects with CVI and one project with LV. I would suggest CVI. Very recenlty I have started three projects with LV. But after completing 60% of coding in LV I gone to CVI. If you are OK with the following you will fall in love with CVI.
1. The knowledge in C is must.
2. NI update for CVI is slower than CVI.
3. You can not work on real time hardware like compact RIO.
4. I do not know from which country you are. Support engineer for CVI is very less from NI is less.
As you are C++ programer you can do faster CVI than LV.
Regards,
Kumar.E
02-22-2006 11:43 PM
02-24-2006 02:31 AM