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
Lesson | Overview | Topics |
---|---|---|
Introduction to Embedded Measurement, Control, and Monitoring Using LabVIEW Real-Time | Explore 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 Requirements | Explore 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 Design | Explore 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 Hardware | Set 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 LabVIEW | Explore 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-Time | Learn 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-Time | Learn 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 PC | Explore 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 Health | Explore 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 Applications | Learn about the techniques available to improve the reliability of your RT system and application | Reliability OverviewSafe Shutdown OverviewComprehensive Error HandlingWatchdogs OverviewRedundancy OverviewC-Series Functional Safety Module |
Debugging, Benchmarking, and Testing | Explore 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 Replication | Deploy a stand-alone RT application and replicate it on multiple RT targets. | Introduction to RT DeploymentCommunicating with Deployed ApplicationsReplicating RT Systems |