Make a "hello, world!"-like application to experience the advantages of multiple linked VIs running simultaneously on the real-time (RT) target and desktop computer
"RT Main" VI -- runs as the RT target start-up VI, blinks the onboard LEDs, reads the onboard button, and communicates with an external desktop computer via network-published shared variables
"PC Main" VI -- runs on the desktop computer as a user-friendly human-machine interface (HMI) for remote command and control of "RT Main" through the network
Make a "hello, world!"-like application to experience the advantages of multiple linked VIs running simultaneously on the FPGA target, real-time (RT) target, and desktop computer
"FPGA Main" VI -- blinks the onboard LEDs and reads the onboard pushbutton
"FPGA testbench" VI -- runs on the desktop computer for interactive development and debugging of "FPGA Main" in simulation mode prior to compiling to a bitstream file
"RT Main" VI -- runs as the RT target start-up VI; it runs "FPGA Main", interacts with its front-panel controls/indicators, and communicates with an external desktop computer via network-published shared variables
"PC Main" VI -- runs on the desktop computer as a user-friendly human-machine interface (HMI) for remote command and control of "FPGA Main" through the network
Real-Time Programming
LabVIEW programming techniques for the RIO real-time (RT) processor.
Interactively set output values and monitor input values on the Academic RIO Device MXP and MSP connector signals
to quickly test your connected peripheral devices without creating a VI
Exchange data between parallel process loops, especially between deterministic (timed) and nondeterministic (conventional) loops.
Deterministic / non-deterministic process loops: single-element shared process variable and channel wire
Non-deterministic process loops: local and global variables, single-process shared process variable (SPSV), functional global variable (FGV), queue, and channel wire
Trigger a process ("callback VI") to run immediately on an external event such as a digital input transition or an analog input voltage threshold crossing
Trigger a process to run when an FPGA-based timer generates an interrupt request (IRQ)
The FPGA "personality" (bitstream file) determines how the RT target interacts with peripheral devices. The personality can also implement custom functionality.
Add basic I/O with the Academic RIO Device Default Personality
Add enhanced I/O with the Academic RIO Device High-Throughput Personality
Augment (modify) the Academic RIO Device Default Personality with your own code
Queue-based state machines excel at implementing system control, data measurement and processing, and other tasks to respond to inputs from the surrounding physical system and user interface. Popular design patterns include:
Queued state machine (QSM) for specific tasks
Queued message handler (QMH) for system-level application
Event-driven producer-consumer loops for PC-based human-machine interface (HMI) to the RT application
Networking
The RT processor supports a wide range of networking capabilities.
Use the infrastructure of the Web for machine-to-machine exchange of information. The Academic RIO Device can call Web services to retrieve information and can also host Web services to provide information to other systems.
Learn how to develop an FPGA VI: create a new FPGA LabVIEW project, simulate the VI to verify functionality, compile the VI to a bitfile, and deploy the project as the start-up VI.
Run the VI with simulated I/O or create a testbench on the PC host to apply a test sequence as the FPGA VI input and monitor the resulting output sequence.