LabVIEW Learning Materials: Difference between revisions
Line 69: | Line 69: | ||
=Tooling and Development Processes= | =Tooling and Development Processes= | ||
==Configuration Management | ==Configuration Management== | ||
* [https://www.sasworkshops.com/offers/zVnzmgMA/checkout TUTORIAL: Using LabVIEW and Git] | * [https://www.sasworkshops.com/offers/zVnzmgMA/checkout TUTORIAL: Using LabVIEW and Git] | ||
* [https://blog.sasworkshops.com/the-easiest-way-to-setup-lvcompare-and-lvmerge/ Configuring diff and merge in LabVIEW] | |||
* [https://blog.sasworkshops.com/gitting-started-with-git/ Git overview for LabVIEW programmers] | |||
* [https://www.ni.com/en-us/support/documentation/supplemental/18/configuring-git-for-labview.html Setting up Git for LabVIEW] | * [https://www.ni.com/en-us/support/documentation/supplemental/18/configuring-git-for-labview.html Setting up Git for LabVIEW] | ||
* [https://ohshitgit.com General overview of Git for all programmers] | |||
* [https://learngitbranching.js.org Interactive tutorial of Git workflows] | |||
* [https://www.youtube.com/watch?v=CUhBTYiUSyI Version Control in LabVIEW Tutorial] | * [https://www.youtube.com/watch?v=CUhBTYiUSyI Version Control in LabVIEW Tutorial] | ||
Revision as of 16:19, 30 September 2024
- See also: category:LabVIEW fundamentals
This page provides a recommended set of resources for LabVIEW programmers. The links are a collection of white papers, YouTube videos and formal learning content.
LabVIEW Programming Basics
Introduction to LabVIEW Environment
- LabVIEW Overview - Video tutorial introducing the environment, data structures, wiring, visualization and basic hardware connectivity.
- Creating a subVI or function call in LabVIEW
Data Types & Structures
- Data Types Overview
- Introduction to arrays
- Using shift registers to save data between loop iterations
- Overview of For Loops
User Interface Design
- Using event structures to capture user interactions
- Introduction to Panes for UI Organization
- Programmatically changing UI controls using property nodes
- Creating resizeable user interfaces
- Creating Custom Controls
- Creating Professional User Interfaces
Asynchronous Messaging
- Introduction to queues for sending messages between processes
- Queues, Notifiers, and Semaphores
- Queues and Notifiers in LabVIEW
- Overview of Queues
- Tutorial on Using Notifiers
Advanced Execution Control
- Dynamically loading VIs
- Launching clones of a VI
- Dynamically loading classes
- Launching a dynamically dispatched VI programmatically
Object-Oriented Programming (OOP) in LabVIEW
- Decisions behind the design of OOP in LabVIEW
- OOP Concepts in LabVIEW
- Object-Oriented Programming in LabVIEW Tutorial
Debugging Tools
Build and Deployment
LabVIEW Software Patterns
State Machines
Queued Message Handlers (QMH)
Producer/Consumer Architecture
Event-Driven Programming
Tooling and Development Processes
Configuration Management
- TUTORIAL: Using LabVIEW and Git
- Configuring diff and merge in LabVIEW
- Git overview for LabVIEW programmers
- Setting up Git for LabVIEW
- General overview of Git for all programmers
- Interactive tutorial of Git workflows
- Version Control in LabVIEW Tutorial
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
- Delacor’s DQMH Toolkit Overview This is the official page for the DQMH toolkit, which includes a summary of features and download links.
- DQMH User Guide The official DQMH user guide with detailed explanations of how to use the framework.
- DQMH Wiki Your one-stop shop for everything you ever wanted to know about DQMH.
- NI's DQMH Community PageNI community hub dedicated to discussions around the DQMH framework, where developers share best practices, examples, and troubleshooting tips.
- Introduction to DQMH by Darren NattingerA quick introduction to DQMH for beginners, focusing on the key features and benefits of using this framework.
- How to Use the DQMH Module Template (YouTube)A step-by-step guide for setting up and using the DQMH module template in your LabVIEW projects.
DQMH Use Cases and Advanced Topics
- Advanced DQMH Techniques (YouTube) - This video explores advanced features like nested modules, scripting tools, and best practices for event handling within DQMH.
- Developing Modular Applications Using DQMH (NI YouTube Channel)A deep dive into how to build modular and scalable applications using DQMH. It covers real-world use cases and best practices.
- Integrating DQMH with Other Frameworks (YouTube) - A tutorial that shows how to integrate DQMH with other architectures like Actor Framework or Command-Response patterns.
Community Contributions
- DQMH Best Practices on GitHub - This repository contains best practices for using DQMH, contributed by the community. You’ll find code examples, comments, and strategies for building robust systems.
- NI's DQMH Community Page DQMH Forum (LabVIEW Community)A place to ask questions, find tutorials, and get tips from experienced DQMH users.
- DQMH Tutorial YouTube Presented by Tom McQuillan on his channel "Tom's LabVIEW Adventure"
Actor Framework
Official Resources
- NI Actor Framework OverviewA high-level introduction to the Actor Framework, its structure, and use cases.
- NI Actor Framework DocumentationComprehensive documentation that walks through the details of the Actor Framework in LabVIEW, including examples and best practices.
- NI White Paper: Using Actor Framework for Modular, Scalable, and Maintainable ApplicationsA detailed white paper on how to use the Actor Framework to create robust and scalable LabVIEW applications.
Video Tutorials
- Introduction to Actor Framework (YouTube)A beginner-friendly video introducing the key concepts and structure of the Actor Framework in LabVIEW.
- Actor Framework Basics (YouTube)This video walks through the basic concepts, including actors, messages, and actors' lifetimes.
- Creating and Running Actors (YouTube)An in-depth look at how to create and run actors using the LabVIEW Actor Framework.
- Advanced Actor Framework Patterns (YouTube)A video for more experienced developers, covering advanced patterns and techniques in Actor Framework.
Advanced Topics
- NI White Paper: Actor Framework in LabVIEW: Architecture and BenefitsA white paper exploring the architecture of the Actor Framework, with use cases and scenarios for applying it in real-world projects.
- LabVIEW Actor Framework: Message Handling (YouTube)A detailed video on how to create, send, and handle messages between actors in the Actor Framework.
- NIWeek Presentation: Advanced Actor Framework Design (YouTube)A presentation from NIWeek discussing advanced Actor Framework design patterns, modularity, and messaging techniques.
Community Contributions and Tutorial
- Actor Framework Examples in LabVIEWA set of example projects provided by NI to help developers get hands-on experience with the Actor Framework.
- GitHub: Actor Framework Best PracticesA community-driven repository showcasing best practices, examples, and tips for building scalable applications with the Actor Framework.
- Actor Framework Forum (LabVIEW Community)A dedicated forum where LabVIEW developers discuss the Actor Framework, share use cases, and troubleshoot challenges.
Workers
VIPER
Hardware and Instrumentation Connectivity
DAQmx Basics
Instrument Control
Determinism and Real-Time Execution
Community and Best Practices
LabVIEW Style Guidelines
LabVIEW Community and User Groups
Connectivity and Report Generation
Database Connectivity
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/