Вы находитесь на странице: 1из 55

Real Time Programming with LabVIEW RT

John Limroth Software Engineer Thurs Aug 17 10:15-1:15 p.m., 1:45-4:45 p.m. Exhibit (3G)
ni.com

Agenda
LabVIEW RT basics Current RT hardware targets Using LabVIEW RT Advanced programming techniques Software/hardware watchdogs Application builder
ni.com

What is Real-time?
Real-time does NOT mean real fast! Requires deterministic response Windows does NOT guarantee determinism

ni.com

RT Hardware Architecture
RTOS embedded LabVIEW TCP/IP connection Win OS LabVIEW QP Motherboard
ni.com

DAQ board QP

A/D A/D A/D

Target motherboard A/D DAQ board

LabVIEW RT Software
LabVIEW RT adds two extra components to regular LabVIEW

The RT Development System


Part of it runs on host PC Programming and debugging LabVIEW code

The RT Engine
Runs on target Executes embedded code Independent of host PC

ni.com

Software Architecture
Three separate instances of LabVIEW

ni.com

Software Architecture
Application development
(Instance B)
RT development system front panel User Interface Thread RT engine (diagram) DAQ VIs RT data acquisition daughter card

High-performance application
(Instance A) Host PC
VI Server Host LabVIEW application on Windows PC TCP/IP Peek/poke DAQ VIs Plug-in DAQ board

RT engine (diagram)

Target

DAQ VIs RT data acquisition daughter card

(Instance C) ni.com

(Instance C)

Agenda
LabVIEW RT basics Current RT hardware targets Using LabVIEW RT Advanced programming techniques Software/hardware watchdogs Application Builder
ni.com

RT Series DAQ Devices


Hardware
Processor
486 133 MHz AMD chip

Memory
8 MB of DRAM for LabVIEW executable and NI-DAQ.dll 1 kB of SRAM for shared memory

Two user-defined LEDs

ni.com

RT Series DAQ Devices


Form Factors
Single product based on DAQ devices
7030/6040E : 16 channel, 12-bit resolution, 250 kS/s 7030/6030E : 16 channel, 16-bit resolution, 100 kS/s 7030/6533 : 32 high-speed digital lines

Single PCI slot Double PXI slot All SCXI and accessories supported

ni.com

Installing the RT Series DAQ Card


Installed and seen in MAX RT intelligent card has one device number Daughter card has separate device number No test panels
ni.com

RT PXI Controller
General description
Connected through Ethernet Pre-loaded RTOS and software Available with LV RT 5.1.2 and NI-DAQ 6.7 PXI-8156B (233 or 333 MHz) must be configured

Communication
Default user interface thread VI Server TCP/IP
ni.com

RT PXI Hardware
Supported hardware
All PXI chassis without monitors All of regular NI-DAQ MXI-3

Configure your own system

ni.com

Remote System Explorer


Configures system Installs or upgrades software Creates utility disks Lists installed software or hardware

ni.com

Installation Procedure
Ensure the system is ready to be configured
Must reside on same subnet Run the uninstall disk if questionable

Create boot floppy (RT system specific) Reboot system with floppy installed
IP = 0.0.0.0 Serial number is from Ethernet chip set

ni.com

Installation Procedure (cont.)


Assign IP address, name, password, etc
Password is optional

Reboot system Upgrade/download software


Choose install script Verify software versions

Reboot system RT system is ready


ni.com

Exercise 1 Configuring a PXI Controller

ni.com

File Structure
Viewable through Windows OS Ph_exec.exe and ni-rt.ini in root directory Embedded PXI File Structure (c:\ni-rt\)
\system\ includes emblview.exe, ni-daq.dll, etc \startup\ includes boot up executables

ni.com

Useful Tools in MAX


Remote DAQ Configuration
Sets the properties of the remote DAQ boards Also available through Remote System Explorer

Remote Device Access


RDA Server enabled on RT Series PXI controller Allows user to test the board with test panels

ni.com

Exercise 2 Troubleshooting RT Series PXI controller

ni.com

Agenda
LabVIEW RT Basics Current RT hardware targets Using LabVIEW RT Advanced programming techniques Software/hardware watchdogs Application Builder
ni.com

Embedding a VI Step 1
Select target platform
Host RT intelligent card PXI controller on network

ni.com

Embedding a VI Step 2
Download code on target

ni.com

Embedding a VI Step 3
Exit without closing RT Engine

ni.com

Exercise 3 Download a VI

ni.com

Shared Memory
 Incremental read/write high-level continuous transfer of array of singles  Read/write VIs incorporates a flag (8-bit word) to make reading and writing more efficient  Low-level peeks and pokes basic building blocks for other levels

ni.com

VI Server
Similar to normal VI Server Different machine name that corresponds to RT Series Intelligent Card device number (DAQ::1) Requirements
VI must be loaded in memory LabVIEW RT must be running on target

ni.com

Download Application
Loads VI into dynamic memory without running it VI is now ready to run (Download bar will not appear)

ni.com

LabVIEW RT Running on Target


Important aspect of VI Server Exit without closing RT Engine VIs
Keeps LabVIEW RT open Closes user interface

ni.com

Exercise 4 Using VI Server

ni.com

TCP/IP with LabVIEW RT


Similar to regular LabVIEW Requires different machine names to correspond to Intelligent DAQ Cards (DAQ::1) Used to communicate large chunks of data Not deterministic

ni.com

Exercise 5 Using TCP/IP

ni.com

Agenda
LabVIEW RT basics Current RT hardware targets Using LabVIEW RT Advanced programming techniques Software/hardware watchdogs Application Builder
ni.com

Programming Tips Timing


Keep unnecessary computations outside of the time-critical loop Keep configuration VIs outside of the loop Sleep mode helps maintain loop rates while allowing other loops to share time

ni.com

Programming Tips Memory


Determinism
Pre-allocate arrays Avoid shared resources

Performance
Cast data to the proper type Inplaceness Global Variables
ni.com

Exercise 6 Reducing the Jitter in a LabVIEW RT Program

ni.com

Single-Threaded LabVIEW
Computer Thread CoCo-routines User Interface Loop Exec( )

ni.com

Multithreaded LabVIEW
Computer Thread UI Loop Exec() Messages Thread Exec( ) Thread Exec( ) Exec( ) Thread

ni.com

LabVIEW RT Target System


RT Computer Thread Messages Thread Exec( ) Thread Exec( ) Exec() Exec( ) Thread

Communication TCP/IP Loop

ni.com

LabVIEW RT Deployed System


Host PC
Thread Thread Exec() Thread Exec() Thread Exec() Exec() Exec() Thread Exec() UI Loop

-Shared memory -TCP/IP -VI server

RT Series hardware target


Thread Thread Exec() Communi cation Thread Exec()

ni.com

Understanding Priorities
Normal priority
Allows the CPU to be shared

Time-critical priority
100% of CPU time Sleep mode is very important

Subroutine priority
Highest priority level Releases thread only when done
ni.com

Exercise 7 Understanding Priorities

ni.com

Agenda
LabVIEW RT basics Current RT hardware targets Using LabVIEW RT Advanced programming techniques Software/hardware watchdogs Application Builder
ni.com

Watchdogs

Hardware or software mechanism that checks the status of the embedded system Increases the systems robustness Generally requires a low overhead

ni.com

Software Watchdog
Host PC

(?)

Software watchdog can use the shared memory One side writes a value that is constantly changing Both host PC and embedded PC can implement watchdogs

1K

(?)
Embedded PC

ni.com

Hardware Watchdog
 Digital/counter lines can be used to trigger other systems
External System 1

(?)

(?)
Embedded PC

External System 2

CTR/DIO

ni.com

Built-in Hardware Watchdog API


Extra hardware counter/timer Continuously counts down Software continually resets the counter Can be configured to take action
Reset PXI System Set Occurrence Trigger

ni.com

Exercise 8 Implementing a Hardware Watchdog

ni.com

Agenda
LabVIEW RT basics Current RT hardware targets Using LabVIEW RT Advanced programming techniques Software/hardware watchdogs Application Builder
ni.com

Application Builder
Usually targeted to host PC Extra RT options
Show RT target selection dialog Quit RT boot application after downloading

ni.com

Targeting to the PXI Controller


Able to save executable to disk Remove serpdrv App Settings Tab is disabled

ni.com

Networked Preferences
Application Builder (when connected to TARGET)
Default name Startup.exe (C:\ni-rt\startup) NETWORKED PREFERENCES->RT Target: Miscellaneous Install path Name must be 8.3

ni.com

Command Line Arguments


 Used to alter execution
Ex: c:\mybuiltapp.exe target DAQ::1 reset quithost

RT Series DAQ device -target DAQ::1

RT Series PXI system 130.164.48.51

-reset Resets device not available -quithost Exits without Exits without closing RT Engines closing RT Engines

ni.com

Exercise 9 Using Application Builder

ni.com

End of LabVIEW RT Hands-on Questions?

ni.com

Вам также может понравиться