Academic Company Events NI Developer Zone Support Solutions Products & Services Contact NI MyNI

Advanced LabVIEW Real-Time Development Resources and Benchmarks

10 ratings | 4.90 out of 5
Read in | Print

Overview

This document contains links to advanced LabVIEW Real-Time resources.

Application Architecture and Design

Application Design Resources  – These are a set of links that discuss useful application design patterns. While these are focused on general LabVIEW programming, they can still be helpful to the real-time programmer.

Command-Based Communication Architecture This paper describes an architecture that provides a solid foundation for building complex, robust and scalable applications. Unlike polling approaches, the command-based communication optimizes target response time while minimizing network and target CPU overhead.

Choosing a Machine Control Architecture  - This set of application notes gives detailed descriptions of how to develop a machine control system with archtiecture tips and example programs for the HMI, control, and communication aspects.

Real-Time Benchmarks

Benchmarking Single-Point Performance on National Instruments Real-Time Hardware (with links to code) – This document provides results from a set of single-point I/O benchmarks that NI R&D ran on CompactRIO, Compact FieldPoint, PC, and PXI.

Benchmarking a Typical Control Application using LabVIEW Real-Time & NI-DAQmx - This document provides an overview of a typical control application created specifically to provide a benchmarking reference platform to test the performance characteristics of NI hardware & software in this application space.

LabVIEW Optimizations

LabVIEW for Embedded Real-Time C developers (coming soon) – This comprehensive application note provides embedded C developers an understanding of how LabVIEW should be used for real-time applications. This includes a discussion of the execution model and a detailed explanation of how LabVIEW manages memory.

Memory Management

VI Memory Usage  (online documentation) – This content is a portion of the LabVIEW help that discusses how LabVIEW allocates memory. There are general guidelines on how LabVIEW uses memory and details on how memory is used within a block diagram.

Improving Memory Management in LabVIEW Real-Time  – This is a presentation from NIWeek 2006 that shares best practices for memory usage in a real-time application. Topics discussed include avoiding memory copies, inplaceness, clumping, and parallelism.

Using the In Place Element Structure to Manage Memory in LabVIEW - This application note explains how the In Place Element Structure can be used to more efficiently manage memory in LabVIEW. This feature can be especially useful in LabVIEW Real-Time development for avoiding jitter inducing memory allocation.

Timing and Scheduling

Advanced Application Timing with LabVIEW Real-Time – This interactive tutorial is an in-depth look into the LabVIEW Timed Loop feature.

LabVIEW Scheduler Under the Hood – This 45-minute Webcast on Demand video explains how the LabVIEW Scheduler organizes execution based on priorities and threads. Discover how you can analyze and debug issues such as memory allocation, priority inversion, and increased jitter.

I/O Optimization Techniques

NI-DAQmx Hardware-Timed Single Point Lateness Checking  – This tutorial briefly explains how to use NI-DAQmx for single-point IO control applications while maintaining determinism.

LabVIEW FPGA Training – This is online free training material that includes introductory material as well as advanced optimization information to reduce the size and increase the speed of FPGA code for R Series devices and CompactRIO.

LabVIEW FPGA Example IP – This page lists examples that ship with LabVIEW FPGA or are directly available through on-line application notes and example programs.

Communication and Networks

Using the LabVIEW Shared Variable – This application note is an introduction to the shared variable and includes a discussion of its features and performance within LabVIEW.

Simple TCP Messaging Protocol – This application note documents an effective Ethernet communication protocol between target and host computers. A simple TCP/IP messaging protocol can enhance the performance, usability, maintainability and scalability of a system. This application note also contains a link to the simple TCP messaging library.

Streaming to Disk

Optimizing File I/O in LabVIEW and LabVIEW Real-Time  – This document will explain how file I/O works and show how to optimize file I/O performance in for real-time applications.

Code Libraries

Current Value Table  - This is an implementation of a memory table that can be used for asynchronous access of data from within different parts of an application.

Configuration File Management – For design engineers who develop computer based systems, configuration files are a method to manage configuration information for the system. Unlike conventional configuration GUIs, configuration files provide a portable, flexible method to manage configuration information.

Real-Time Utilities

VIs for specifying CPUs available for load balancing in multicore systems - Tutorial and VIs

Monitoring CPU Usage of LabVIEW Real-Time Targets - VIs

Real-Time Target System Replication - Tutorial and link to VIs

 

10 ratings | 4.90 out of 5
Read in | Print

Reader Comments | Submit a comment »

 

Legal
This tutorial (this "tutorial") was developed by National Instruments ("NI"). Although technical support of this tutorial may be made available by National Instruments, the content in this tutorial may not be completely tested and verified, and NI does not guarantee its quality in any way or that NI will continue to support this content with each new revision of related products and drivers. THIS TUTORIAL IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND AND SUBJECT TO CERTAIN RESTRICTIONS AS MORE SPECIFICALLY SET FORTH IN NI.COM'S TERMS OF USE (http://ni.com/legal/termsofuse/unitedstates/us/).