Can I Use External Code on My Real-Time System?

Updated Jul 31, 2018

Reported In

Hardware

  • CompactRIO Controller

Software

  • LabVIEW Real-Time Module

Operating System

  • VxWorks
  • PharLap
  • NI Linux Real-Time

Programming Language

  • C

Issue Details

  • I am using LabVIEW Real-Time (RT) on my RT controller and I would like to write a VI that calls code written in other languages. What languages can I call and how do I call them from within LabVIEW?
  • Can I run a .dll on a cRIO?
  • Is it possible to call a third party .dll on a cRIO real-time target?

Solution

You can call external code from LabVIEW on a RT target by compiling the DLL into a supported file type for the RT operating system.
  1. Check to see what real-time operating system is running on your device.
  2. See the following chart to find which shared library file type you need to compile to:
Operating SystemVxWorksPharLapLinux-RT
File Type.out.dll.so
 
  1. Call your code with a Call Library Function Node. Only code adherent to the C or stdcall conventions can be integrated in LabVIEW Real-Time.

Additional Information

It is important to note that even though Windows and PharLap both recognize the .dll file extension, DLLs that run on Windows may not run properly on PharLap targets.

NI recommends programming as much of your real-time application as possible using the LabVIEW Real-Time Module.

WAS THIS ARTICLE HELPFUL?

Not Helpful