I need to create a user interface software on a PC running Windows XP or Windows 7. The software needs to send and receive short data strings on a single RS232 port for controlling a custom RS232 instrument. The data strings are less than 10 bytes of ASCII and are not packetized with checksums. The user interface needs just a few soft buttons to send commands and a few windows to display voltage and current readings from the RS232 port. Click a button, see a reading.
I do not have software to write this application, still need to buy it. The software should be easy to learn and use so I spend less time trying to learn the software and get the job done quickly. I have no prior PC software writing experience but >30yrs in firmware. Might be crazy asking this question in a LabView forum but is LabView a good software to use for this? Any specific versions to look for?
Might be crazy asking this question in a LabView forum but is LabView a good software to use for this? Any specific versions to look for?
That kind of depends on your definition of crazy...
Obviously, asking this in a LabVIEW forum will provide more positives than negatives. Since you have a background in firmware I'm guessing your background is with eihter C or assembly language. Given that, the programming paradigm in LabVIEW is not the same. LabVIEW is a dataflow language, not a procedural language, like text-based programming. Dataflow means a node executes when data is present - it doesn't matter whether it's to the left of another node, above it, or below it. A lot of people who start out in LabVIEW don't get this and they try to program LabVIEW as if it were C. C++ experts will tell you the same thing if you're starting in C++ and come from C: don't program C++ as if it were C.
If you were to purchase LabVIEW you'd get the most recent version, which is LabVIEW 2010. However, I think you might be asking about a specific edition, as in whether to get the Base, Full, Professional, or Developer Suite. I can tell you one thing here: don't get the Base. The Base does not include the event structure which you will almost certainly need. For RS-232 you would be using NI-VISA, which is a separate item, albeit it's free. Thus, the Full should suffice for what you're doing. NOTE: you did not indicate whether you are planning to build this into an application for distribution. If so, that requires the Application Builder. The Full edition does NOT include the Application Builder - you would need to buy that separately. The Professional Edition comes with the Application builder.
LabVIEW comes with a lot of examples (including ones for serial communication), and for what you're doing you'd best be served by using a standard programming design pattern, such as the state machine or the producer-consumer. For what you're doing a simple producer-consumer would be quite effective.
Your best bet to see if LabVIEW is right for you is to download the demo - you can use it for 30 days. Please note that the demo is the Professional edition. There are also tutorials available in the introduction material, and other material in the NI Developer Zone's Learning Center which provides links to other materials and other tutorials. You can also take the online courses for free.
Now, with all that said I would be remiss in saying that you can also do this quite easily with another development environment, such as C, or .NET. The big advantage with this method is that Microsoft makes available Express editions of their .NET development tools for free.
Ultimately, it comes down to what your budget is, and what you feel most comfortable in.
All software development system Labview included do have a learning curve. If you are not into developing windows software, but do know your way in computer technology. Labview may help you you reaching your goals. But it can also be hard for C developer to change from C to Labview. As a Labview programmer must think more like hardware designer than a C programmer. You can download Labview and trail it. See how it works for you. But that will also require that you give Labview some time to mature. If you from day one dislike LAbview. You will not have any success in learning Labview. If you need help you may ask the forum for help during your trail period.
For a few hundred bucks, you may want to look into WinWedge Pro or WedgeLink. They are software wedges meant to commincate to and parse data from numerous serial instruments. I believe with minimal setup and programming, you can assign macros to keyboard keys to transmit strings and then have the data parsed and display to any current active Window (ie Word, Excel)
Just a serial suggestion....
Thanks for the replies everyone! Great info, answers my questions right-on. I thought the Application builder was standard. It seems I need to take a serious look at the Pro Edition. The info about programming concept difference is very interesting. Sounds more human.
Depends on what you want to do.... if it really is just a simple app as you describe then investing in LV may be a bit of an overkill. An alternative would be to find someone to create the app for you (not me, not my line....) it would be very straight forward. There are sample VIs (bits of code) which do what you are requesting that ship as part of LV, so a possible start point already exists. Generally, LV created GUIs look pretty generic, button & display graphics are selected from existing menus (which can be supplemented by additional downloadable themes). If you want to go wild with the GUI, it will take a little bit more effort. There are some stunning LV UI examples out there, but they are the exception rather than the norm, and the authors have had to work to achieve it. LV does not offer Flash/Web level UI ease/creation/potential (IMHO).
Another thing to bear in mind is that to run the app you create on a PC will require the LabVIEW Runtime Engine to be installed. This can be done as part of the app installer, so is transparent to the user, except that it is a few MB, (30? anyone?) so it can requires quite a bit more space than the actual app, especially if the app is very simple.
AK2DM's suggestion sounds interesting.
Don't get me wrong, LV is great (my dev platform of choice for most of the work we do (and the support network is great)), but investing in the whole package may be a bit more than you need if you just have this one requirement.
I think your budget may be a big factor here. LabVIEW would be the perfect tool for you. It is designed exactly for rapidly producing the type of application that you describe. And its relatively easy to learn. But its expensive.