LabVIEW Learning Materials: Difference between revisions
No edit summary |
|||
| Line 1: | Line 1: | ||
{{see also|category:LabVIEW fundamentals}} | {{see also|category:LabVIEW fundamentals}} | ||
This page provides a recommended set of resources for LabVIEW programmers. It breaks the content across six phases of maturity and experience so that users may self-identify what content is most relevant for them based on their experience. Most of the content is crowd-sourced and freely available from ni.com and other sources like YouTube. | This page provides a recommended set of resources for LabVIEW programmers. It breaks the content across six phases of maturity and experience so that users may self-identify what content is most relevant for them based on their experience. Most of the content is crowd-sourced and freely available from ni.com and other sources like YouTube. | ||
=LabVIEW Fundamentals= | =LabVIEW Programming Basics = | ||
=== Introduction to LabVIEW Environment === | |||
* [https://www.ni.com/en-us/support/documentation/supplemental/18/getting-started-with-labview.html NI Getting Started with LabVIEW] | |||
* [https://www.youtube.com/watch?v=sXOhm0RsJCA LabVIEW Introduction Video] | |||
=== Data Types & Structures === | |||
* [https://www.ni.com/en-us/innovations/white-papers/06/labview-data-types.html LabVIEW Data Types Overview] | |||
* [https://www.youtube.com/watch?v=ieC4MBxPVtM Arrays and Clusters Tutorial] | |||
=== Basic Programming Concepts === | |||
* [https://www.ni.com/en-us/innovations/white-papers/06/labview-programming-basics.html LabVIEW Basics White Paper] | |||
* [https://www.youtube.com/watch?v=YfOYkz8b-Bg LabVIEW Basics Tutorial Series] | |||
== 2. Working with LabVIEW Architectures == | |||
=== State Machines === | |||
* [https://www.ni.com/en-us/innovations/white-papers/06/state-machines.html NI White Paper on State Machines] | |||
* [https://www.youtube.com/watch?v=NHtWZohvR7k State Machines Tutorial] | |||
=== Queued Message Handlers (QMH) === | |||
* [https://learn.ni.com/center-of-excellence/queued-message-handler Queued Message Handler Architecture Overview] | |||
* [https://www.youtube.com/watch?v=E8onRrQjR9E QMH Video Tutorial] | |||
=== Producer/Consumer Architecture === | |||
* [https://www.ni.com/en-us/innovations/white-papers/06/producer-consumer-architecture.html Producer/Consumer Architecture White Paper] | |||
* [https://www.youtube.com/watch?v=X4bQDXiYs1E Producer/Consumer Architecture Tutorial] | |||
=== Event-Driven Programming === | |||
* [https://www.ni.com/en-us/support/documentation/supplemental/06/event-driven-programming-in-labview.html Event Structures in LabVIEW] | |||
* [https://www.youtube.com/watch?v=oZhA5qVJfb8 Event-Driven Programming Tutorial] | |||
== 3. Tooling and Development Processes == | |||
=== Using LabVIEW Toolkits === | |||
* [https://www.ni.com/en-us/support/downloads/toolkits.html LabVIEW Toolkits Overview] | |||
* [https://www.youtube.com/watch?v=XfKRYVoemTM MathScript Toolkit Video] | |||
=== Version Control and Source Code Management === | |||
* [https://www.ni.com/en-us/support/documentation/supplemental/18/configuring-git-for-labview.html Setting up Git for LabVIEW] | |||
* [https://www.youtube.com/watch?v=CUhBTYiUSyI Version Control in LabVIEW Tutorial] | |||
=== VI Analyzer === | |||
* [https://www.ni.com/en-us/support/documentation/supplemental/06/vi-analyzer-in-labview.html VI Analyzer Overview] | |||
* [https://www.youtube.com/watch?v=WeHzr7RJJfs VI Analyzer in Action] | |||
== 4. Software Design Patterns and Best Practices == | |||
=== Modular Programming and Code Reuse === | |||
* [https://www.ni.com/en-us/innovations/white-papers/06/reusing-code.html NI Guide to Reusing Code] | |||
* [https://www.youtube.com/watch?v=KiS5uCrJ9D8 Modular Programming in LabVIEW] | |||
=== Object-Oriented Programming (OOP) in LabVIEW === | |||
* [https://www.ni.com/en-us/innovations/white-papers/06/introduction-to-object-oriented-programming-in-labview.html OOP Concepts in LabVIEW] | |||
* [https://www.youtube.com/watch?v=w0x-EBe8G7A Object-Oriented Programming in LabVIEW Tutorial] | |||
=== Error Handling === | |||
* [https://www.ni.com/en-us/innovations/white-papers/06/error-handling-in-labview.html Best Practices for Error Handling] | |||
* [https://www.youtube.com/watch?v=5PzbsJfzRHY Error Handling Techniques] | |||
== 5. Testing and Debugging == | |||
=== Debugging Tools === | |||
* [https://www.ni.com/en-us/innovations/white-papers/06/debugging-labview-applications.html Debugging Tools in LabVIEW] | |||
* [https://www.youtube.com/watch?v=tMtfXSqFPiY Debugging Techniques in LabVIEW] | |||
=== Unit Testing with LabVIEW === | |||
* [https://www.jki.net/vi-tester JKI VI Tester for Unit Testing] | |||
* [https://www.youtube.com/watch?v=XU9UJmHeH1U Unit Testing in LabVIEW with Caraya] | |||
== 6. Integration with Hardware == | |||
=== DAQmx Basics === | |||
* [https://www.ni.com/en-us/support/documentation/supplemental/06/ni-daqmx-driver.html DAQmx Fundamentals Guide] | |||
* [https://www.youtube.com/watch?v=7kWekJAM2Ag DAQmx Basics Video Tutorial] | |||
=== Instrument Control === | |||
* [https://www.ni.com/en-us/support/documentation/supplemental/06/instrument-control.html LabVIEW Instrument Control Overview] | |||
* [https://www.youtube.com/watch?v=kZQsb8xT6bI Communicating with Instruments in LabVIEW] | |||
=== Real-Time Systems === | |||
* [https://www.ni.com/en-us/innovations/white-papers/06/using-labview-real-time.html Introduction to LabVIEW Real-Time] | |||
* [https://www.youtube.com/watch?v=OjOEwVpRrmY Real-Time Systems Tutorial] | |||
== 7. Community and Best Practices == | |||
=== LabVIEW Style Guidelines === | |||
* [https://www.ni.com/en-us/innovations/white-papers/06/labview-style-guidelines.html LabVIEW Style Guidelines] | |||
* [https://forums.ni.com/ NI Forums] | |||
=== LabVIEW Community and User Groups === | |||
* [https://www.ni.com/en-us/events.html LabVIEW User Groups and Community Events] | |||
* [https://www.gcentral.org/ GCentral: Open-Source Community for LabVIEW] | |||
== 8. Advanced Topics == | |||
=== Advanced Data Structures === | |||
* [https://www.ni.com/en-us/innovations/white-papers/06/using-queues-and-notifiers-in-labview.html Queues, Notifiers, and Semaphores] | |||
* [https://www.youtube.com/watch?v=MevQp9A9Xqs Queues and Notifiers in LabVIEW] | |||
=== Interfacing with Databases === | |||
* [https://www.ni.com/en-us/support/documentation/supplemental/06/labview-database-connectivity-toolkit.html Using LabVIEW with Databases] | |||
* [https://www.youtube.com/watch?v=ARJTHbkxI-8 Database Connectivity in LabVIEW] | |||
=== Deploying Applications === | |||
* [https://www.ni.com/en-us/innovations/white-papers/06/building-executables-and-installers-in-labview.html Building Executables and Installers] | |||
* [https://www.youtube.com/watch?v=ZFYhKDUOnus Deploying LabVIEW Applications] | |||
{| class="wikitable" | {| class="wikitable" | ||
| Line 75: | Line 182: | ||
*LabVIEW Tutorial Basics (BEKA, German) - http://www.fu-net.de/lv/lv01/ | *LabVIEW Tutorial Basics (BEKA, German) - http://www.fu-net.de/lv/lv01/ | ||
*LabVIEW Tutorial Advanced Techniques (BEKA, German) - http://www.fu-net.de/lv/lv02/ | *LabVIEW Tutorial Advanced Techniques (BEKA, German) - http://www.fu-net.de/lv/lv02/ | ||
[[Category:LabVIEW fundamentals]] | [[Category:LabVIEW fundamentals]] | ||
Revision as of 10:33, 24 September 2024
- See also: category:LabVIEW fundamentals
This page provides a recommended set of resources for LabVIEW programmers. It breaks the content across six phases of maturity and experience so that users may self-identify what content is most relevant for them based on their experience. Most of the content is crowd-sourced and freely available from ni.com and other sources like YouTube.
LabVIEW Programming Basics
Introduction to LabVIEW Environment
Data Types & Structures
Basic Programming Concepts
2. Working with LabVIEW Architectures
State Machines
Queued Message Handlers (QMH)
Producer/Consumer Architecture
Event-Driven Programming
3. Tooling and Development Processes
Using LabVIEW Toolkits
Version Control and Source Code Management
VI Analyzer
4. Software Design Patterns and Best Practices
Modular Programming and Code Reuse
Object-Oriented Programming (OOP) in LabVIEW
Error Handling
5. Testing and Debugging
Debugging Tools
Unit Testing with LabVIEW
6. Integration with Hardware
DAQmx Basics
Instrument Control
Real-Time Systems
7. Community and Best Practices
LabVIEW Style Guidelines
LabVIEW Community and User Groups
8. Advanced Topics
Advanced Data Structures
Interfacing with Databases
Deploying Applications
| Topic | Concepts | Links |
|---|---|---|
| Example | Example | Example |
| Example | Example | Example |
Development Processes and Tooling
Static Code Analysis
Dynamic Code Analysis
Documentation
Unit Testing
Frameworks and Software Patterns
Actor Based Patterns
Design Patterns
PC-QSM
Formal Training
Formal training on LabVIEW is available from several providers. Offerings differ based on prior LabVIEW experience level and the preferred delivery method. Common delivery methods include:
- In-person instructor-led
- Remote instructor-led (usually through a web conference)
- Online self-paced (usually through a combination of pre-recorded lecture videos and exercise solution videos)
- Self-paced with a manual
National Instruments has a suite of courses ranging from beginner to advanced as well as several specialty topics such as LabVIEW Real-Time and LabVIEW Connectivity. National Instruments offers all common delivery methods mentioned above except online self-paced. Other LabVIEW training providers such as Sixclear provide this online self-paced environment. Sixclear's same curriculum is also delivered through in-person instructor-led training. Durability is another provider of in-person instructor-led training.
Recommended training courses for those with no knowledge of LabVIEW are the National Instruments Core 1 and Core 2 courses, the Sixclear LabVIEW Fundamentals I and II courses, or the Durability LabVIEW 101 and 102 courses. All sets of courses are geared to a user with little to no LabVIEW experience and teach the proficiencies outlined by the Certified LabVIEW Associate Developer (CLAD) exam as well as simple DAQ and instrument control.
Common arguments justifying formal training revolve around the idea that the sum cost of developers' time is greater than the cost of training because:
- the LabVIEW graphical programming paradigm is appreciably different than traditional text-based programming
- costly mistakes commonly occur when moving from simple LabVIEW applications to more complex applications, especially when developing parallel loop applications
Alternatives to Formal Training
National Instruments maintains a list of LabVIEW reference books as an alternative to formal training.
Another alternative to formal training are half-day "LabVIEW Hands-On" workshops offered by National Instruments. Recommended follow-ups are the "G Programmer's reference manual" and the LabVIEW "User Manual" found in the LabVIEW documentation.
External Links
Some online tutorials:
- VI High LabVIEW Video Tutorial Blog by Sixclear
- Some NI courses, including videos (requires an active support contract with NI)
- VI Shots LabVIEW Video Tutorials
- NI Tutorials (including videos and exercises) - http://zone.ni.com/devzone/cda/tut/p/id/7466
- More links at NI's site - http://www.ni.com/training/labview.htm
- Software Engineering with LabVIEW (generally requires some LabVIEW knowledge) - http://zone.ni.com/devzone/cda/tut/p/id/7117
- Connexions Tutorial (written by NI) - http://cnx.org/content/col10241/latest/
- LabVIEW Tutorials - http://www.upscale.utoronto.ca/GeneralInterest/LabView.html
- Videos of NI's LabVIEW Core 3 course (8 full lessons) - http://www.youtube.com/playlist?list=PL3E1DD4C18D357331
- Tutorial videos (some are free) - http://www.fafiles.com/
- Learning LabVIEW - http://learnlabview.blogspot.com/
- LabVIEW Tutorial Basics (BEKA, German) - http://www.fu-net.de/lv/lv01/
- LabVIEW Tutorial Advanced Techniques (BEKA, German) - http://www.fu-net.de/lv/lv02/