Skip to content

Developing Embedded Applications Using CompactRIO and LabVIEW Real-Time Course Overview

Developing Embedded Applications using CompactRIO and LabVIEW Real-Time course delivers a learning experience for designing, prototyping, and deploying a reliable Real-Time application using NI compactRIO. At the end of the course, you will be able to translate your embedded system requirements into a scalable software architecture, choose appropriate methods for inter-process and network-based communication, design, deploy and define your Real-Time datalogging, control, and/or monitoring algorithm.

Course Details:

Duration

  • Instructor-led Classroom: Four (4) 8-hour sessions

Audience

  • Users preparing to develop embedded control and monitoring applications using LabVIEW Real-Time and LabVIEW FPGA with CompactRIO, Single-Board RIO, and Real-Time PXI hardware
  • Users interested in learning about performance and reliability considerations using NI Real-Time and FPGA targets

Prerequisites

  • LabVIEW Core 1 and LabVIEW Core 2

After attending this course, you will be able to:

  • Design, prototype, and deploy a datalogging control & monitoring application.
  • Acquire and generate analog and digital signals, control timing, and implement signal processing on RT.
  • Implement additional functionality on the RT target for logging, network communication, system health monitoring, and reliability using the LabVIEW Real-Time Module.
  • Implement a human machine interface (HMI) on the PC.
  • Communicate data between FPGA, RT, and PC.
  • Debug, benchmark, and test your application.
  • Deploy your application to multiple systems.

Developing Embedded Applications using CompactRIO and LabVIEW Real-Time Course Outline

LessonOverviewTopics
Introduction to Embedded Measurement, Control, and Monitoring Using LabVIEW Real-TimeExplore an embedded application requiring data logging, control, and monitoring capabilities.Overview of System CommonalitiesReal-Time Processor OverviewField-Programmable Gate Array (FPGA) OverviewHuman-Machine Interface (HMI) Overview
Identifying Application RequirementsExplore the considerations when designing and developing an embedded application.Identify I/O and I/O Rate Requirements.Exploring Common Application ProcessesInvestigating Process TimingExploring Data Transfer TypesIdentifying Performance and Reliability Requirements
Document Your DesignExplore the use of diagrams to aid in system design. Implement the design for the CompactRIO-based course project.Identifying Diagram Types and BenefitsCreating a Communication DiagramExploring Common Embedded Applications System Diagrams
Configure Your HardwareSet up real-time HW and install the necessary SW to work with the CompactRIO.Setting Up Hardware and PCConfiguring RT System Settings and SoftwareConfiguring Network Settings
Accessing Your I/O in LabVIEWExplore the methods available to use the I/O channels of your hardware.Configuring RT Targets through the LabVIEW ProjectComparing I/O MethodsAccessing I/O Using DAQmxAccessing I/O Using Scan EngineAccessing I/O from FPGA
Programming Using LabVIEW Real-TimeLearn how to access the inputs and outputs of your RT target in your application.Real-Time VI Architecture OverviewMultitasking and Multithreading OverviewScheduling OverviewInvestigating Priority Levels of ProcessesSetting Priority Levels of VIsYielding Execution in Deterministic LoopsTiming Loops in LabVIEW Real-TimeImproving Speed and Determinism
Inter-Process Communication in LabVIEW Real-TimeLearn how to transfer data between multiple loops on your Real-Time VI.Introduction to Inter-Process Communication in Real-TimeTransfer Data between Deterministic and Non-deterministic LoopsTransfer Data between Non-deterministic LoopsIntroduction to Channel Wires
Communicating between the Real-Time Target and Host PCExplore how to transfer data and communicate between a host PC and an RT Target.Front Panel Communication versus Programmatic Network CommunicationTransferring Latest Values (Tag)Transferring Buffered Values (Stream, Message)Investigating Standard ProtocolsEmbedded UI Overview
Managing Memory and Monitoring System HealthExplore best practices for monitoring RT system health, memory, and CPU usage to mitigate potential issues during application execution.Exploring Impacts of Memory UsageInvestigating Memory Pre-AllocationMinimizing Dynamic Memory AllocationsExploring System Monitoring
Creating Reliable RT ApplicationsLearn about the techniques available to improve the reliability of your RT system and applicationReliability OverviewSafe Shutdown OverviewComprehensive Error HandlingWatchdogs OverviewRedundancy OverviewC-Series Functional Safety Module
Debugging, Benchmarking, and TestingExplore methods for debugging, benchmarking, and testing your real-time application.Debugging Real-Time VIsBenchmarking the Performance of a Real-Time SystemTesting the Code Functionality
Deployment and ReplicationDeploy a stand-alone RT application and replicate it on multiple RT targets.Introduction to RT DeploymentCommunicating with Deployed ApplicationsReplicating RT Systems