Jump to content

LabVIEW Learning Materials: Difference between revisions

From LabVIEW Wiki
No edit summary
No edit summary
Line 16: Line 16:
* [https://www.ni.com/en-us/innovations/white-papers/06/labview-programming-basics.html LabVIEW Basics White Paper]
* [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]
* [https://www.youtube.com/watch?v=YfOYkz8b-Bg LabVIEW Basics Tutorial Series]
==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]
==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]


=Working with LabVIEW Architectures=
=Working with LabVIEW Architectures=
Line 46: Line 54:
==Dynamic Code Analysis and Performance Benchmarking==
==Dynamic Code Analysis and Performance Benchmarking==


==Code Testing Tools==
==Unit Testing==
* [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]


==Software Design Patterns and Best Practices==
=Software Design Patterns and Best Practices=


=== Modular Programming and Code Reuse ===
==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.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]
* [https://www.youtube.com/watch?v=KiS5uCrJ9D8 Modular Programming in LabVIEW]


=== Object-Oriented Programming (OOP) in LabVIEW ===
==Error Handling==
* [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.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]
* [https://www.youtube.com/watch?v=5PzbsJfzRHY Error Handling Techniques]


== 5. Testing and Debugging ==
==Software Frameworks==
 
* DQMH
=== Debugging Tools ===
* Actor Framework
* [https://www.ni.com/en-us/innovations/white-papers/06/debugging-labview-applications.html Debugging Tools in LabVIEW]
* Workers
* [https://www.youtube.com/watch?v=tMtfXSqFPiY Debugging Techniques in LabVIEW]
* VIPER
 
=== 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 ==
=Integration with Hardware=


=== DAQmx Basics ===
==DAQmx Basics==
* [https://www.ni.com/en-us/support/documentation/supplemental/06/ni-daqmx-driver.html DAQmx Fundamentals Guide]
* [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]
* [https://www.youtube.com/watch?v=7kWekJAM2Ag DAQmx Basics Video Tutorial]


=== Instrument Control ===
==Instrument Control==
* [https://www.ni.com/en-us/support/documentation/supplemental/06/instrument-control.html LabVIEW Instrument Control Overview]
* [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]
* [https://www.youtube.com/watch?v=kZQsb8xT6bI Communicating with Instruments in LabVIEW]


=== Real-Time Systems ===
==Determinism and Real-Time Execution==
* [https://www.ni.com/en-us/innovations/white-papers/06/using-labview-real-time.html Introduction to LabVIEW Real-Time]
* [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]
* [https://www.youtube.com/watch?v=OjOEwVpRrmY Real-Time Systems Tutorial]


== 7. Community and Best Practices ==
=Community and Best Practices=


=== LabVIEW Style Guidelines ===
==LabVIEW Style Guidelines==
* [https://www.ni.com/en-us/innovations/white-papers/06/labview-style-guidelines.html 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]
* [https://forums.ni.com/ NI Forums]


=== LabVIEW Community and User Groups ===
==LabVIEW Community and User Groups==
* [https://www.ni.com/en-us/events.html LabVIEW User Groups and Community Events]
* [https://www.ni.com/en-us/events.html LabVIEW User Groups and Community Events]
* [https://www.gcentral.org/ GCentral: Open-Source Community for LabVIEW]
* [https://www.gcentral.org/ GCentral: Open-Source Community for LabVIEW]

Revision as of 10:40, 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

Object-Oriented Programming (OOP) in LabVIEW

Debugging Tools

Working with LabVIEW Architectures

State Machines

Queued Message Handlers (QMH)

Producer/Consumer Architecture

Event-Driven Programming

Tooling and Development Processes

Configuration Management=

Static Code Analysis

Dynamic Code Analysis and Performance Benchmarking

Unit Testing

Software Design Patterns and Best Practices

Modular Programming and Code Reuse

Error Handling

Software Frameworks

  • DQMH
  • Actor Framework
  • Workers
  • VIPER

Integration with Hardware

DAQmx Basics

Instrument Control

Determinism and Real-Time Execution

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: