LabWindows/CVI

cancel
Showing results for 
Search instead for 
Did you mean: 

Is LabWindows/CVI suitable to me more than Labview?

Dear all,

   I"m new to the the NI world. I have some experience on Microsoft Visual studio 6.0. Now I'm going to develop some Image online tracking and motion control system via NI boards(DAQ and IMAQ). I tried Labview programming these days, the style of Labview programming looks so different from that of the normal c++ programming. today I just know that there is a Labwindows/CVI.
  since I want to save time on GUI developement, I'm not sure which one is better for me, the Labwindows/CVI or Labview?  I'm not quite sure does Labwindows/CVI include all the function or modules that Labview has?  If I want to build up the imaging tracking system and motion control system, is it good to use Labwindows/CVI? I really don't know what's the difference between CVI and labview? only the programming styles are not the same??

Looking forward to your suggestions,

Best,

Jack
0 Kudos
Message 1 of 9
(5,323 Views)

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 Smiley Very Happy 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 Smiley Wink

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! Smiley Wink ).

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



Proud to use LW/CVI from 3.1 on.

My contributions to the Developer Community
________________________________________
If I have helped you, why not giving me a kudos?
Message 2 of 9
(5,302 Views)
Roberto is correct in that the tranistion for you would be more natural if you went with LabWindows. I have been using LabWindows for about 4 years now and I love it. A recent requirement has forced me to do some work with LabView and for me it is pure struggle and effort. I'm hoping that something will click for me as well because at the moment I am frazzled. If you do decide to go with LabView you will most certainly have better access to support. LabView is NI's money maker (along with their excellent hardware). In my humble opinion, if you have no programming experience at all then LabView is going to be the easiest route.
If you like writing code as I do (explains why I am here on a Sunday) then you will find LabWindows to be a fascinating tool.
Message 3 of 9
(5,296 Views)
Jack:  How familiar are you with C?  If you are an experienced C programmer and want to do things quickly, then maybe CVI would be best for you to use since your learning curve time would be shortened.  Labview is purely graphical programming (graphics instead of text).  There is a learning curve here, but it is a rather quick one if you buy a good beginners book.  The two are very close as to functionality.  There is little that can be done in CVI that can't be done in Labview, and there is nothing in Labview that can't be done in CVI.  Of all the people I know that use Labview, none would want to switch back to a text based language.  On the other hand, some C gurus I know won't even try Labview because they are C experts and it would take some time to learn all of their C tricks in Labview.
I have used both, and I would choose Labview by far.  Much easier to code and maintain, and much easier for someone else to come in and take over your project if need be.  So if C is really your bag, stick with CVI, it is a very good development environment.  Otherwise, bone up on Labview since the learning curve is a lot shorter than C.
- tbob

Inventor of the WORM Global
Message 4 of 9
(5,242 Views)

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.


___________________
Try to take over the world!
Message 5 of 9
(5,231 Views)
Hi, Jack!

   I agree with tst, when he says that once you become used with LV, it's difficult to turn back to CVI, even if I'm actually programming in both environments.

   What I suggest you, is to use CVI, but spending some time to learn LV, and try to do the same things you do in CVI in LV.  It's always good to be practical with labview, because some toolkits are available only for LV (let's talk about Real-Time toolkit, which is always late for CVI...... when it's available!!!).  Moreover, when you need some examples, and help, consider that there're much documents, forum topics, and unofficial sites for Labview, and referring to them can be useful also for a CVI programmer, but you should knw LV!

   Greetings!

graziano
Message 6 of 9
(5,223 Views)

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

Message 7 of 9
(5,149 Views)
thanks all, very useful suggestions : )

now i've got some sense of how to use LV, it looks faster than VC++ which I used often before.
and I'll try to look at CVI and see if it is easier for my projects.
the faster, the better for my projects.

best,

Jack


0 Kudos
Message 8 of 9
(5,019 Views)
Hi!
 
    It's nice to hear that!


0 Kudos
Message 9 of 9
(4,984 Views)