Transitioning to LabVIEW assists experienced programmers with skills in other languages such as Visual Basic, C, or Java to quickly become productive with LabVIEW.
Why should an experienced programmer undergo formal training in LabVIEW?
There are many different programming paradigms in use today, and the major ones are Procedural, Functional, Logical, and Object-Oriented. LabVIEW does not fit under any of these major paradigms (although LabVIEW does support object-oriented programming). Instead, LabVIEW is primarily a dataflow language.
While prior programming experience helps when learning a new language, a change in thinking is required to take full advantage of a new paradigm. Each paradigm has its own strengths and weaknesses, and a particular strength of LabVIEW’s dataflow paradigm is that it better takes advantage of today’s parallel computing architectures than the Procedural paradigm.
The material in Transitioning to LabVIEW is drawn largely from our Understanding Dataflow and LabVIEW Development Top-Down units, condensed into one-and-a-half days. This unit aims to teach experienced programmers to think naturally in dataflow terms, by focussing on the the most significant differences between LabVIEW and Procedural languages. We do not spend a lot of time on LabVIEW syntax, as covered in The Basics of Building a LabVIEW Application unit. We assume that most experienced programmers are comfortable learning the LabVIEW syntax themselves, without formal LabVIEW training.
After attending this unit, you will be able to:
- Understand the practical distinction between the Procedural and dataflow paradigms
- Understand both the benefits, and the potential pitfalls, of dataflow programming
- Recognize and implement the most important techniques for timing and synchronizing tasks in LabVIEW
- Recognise and avoid race conditions and other timing and synchronisation errors
- Recognise functions that “break dataflow”, and know when and how to use them
- Recognise and implement standard design patterns in LabVIEW
- Create LabVIEW Dataflow code that executes reliably under all conditions
When, Where and How Much?
Transitioning to LabVIEW is a one day course that is available on-demand, and scheduled to suit your timetable. There is no minimum enrolment – we will run the unit for a single user.
It can be delivered at your premises, or on-line via Zoom or Teams.
The cost is $2,220 ex-GST for the first attendee, and $1,110 ex-GST (50% discount) for each subsequent attendee from the same organisation. The price includes a copy of the presentation slides, and a USB Drive with LabVIEW source code for all in-course demonstrations and examples. Lunch is not included. Attendees are required to bring their own laptop or desktop PC with LabVIEW installed – the LabVIEW trial version, downloadable from National Instruments’ website, is acceptable.
- Intermediate level experience with another language such as Visual Basic, C++, or Python. Procedural languages are ideal.
- Familiarity with generic computational algorithms and design patterns
- Familiarity with the LabVIEW syntax (functions and wiring rules) sufficient to create a simple VI – an appropriate level of familiarity could be acquired by working through a few of the introductory tutorial exercises that ship with the LabVIEW trial version
Once you have understood and mastered the key differences between dataflow and Procedural programming, you should be able to adapt your previous programming experience quite quickly to improve your productivity with LabVIEW.
If you need to quickly develop equivalent expertise with practical tasks like data acquisition from NI hardware, device communications, or file IO we offer other complementary units:
- Introduction to Data Acquisition using NI-DAQmx
- Introduction to Data Acquisition using NI CompactRIO
- Introduction to Device Communications
- LabVIEW File IO
These units are focussed primarily on the LabVIEW API’s for interacting with the native drivers for these tasks, and can benefit anyone that is new to the LabVIEW environment, regardless of previous programming background.