This content is not available in your preferred language.

The content is shown in another available language. Your browser may include features that can help translate the text.

Using External Code on My Real-Time System

Updated Mar 22, 2019

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?
  • Is it possible to call a third-party .dll on a cRIO real-time target?
  • I am trying to call a .dll on my RT target but I run into error "Failed to load shared library XXXX.dll". Am I able to call .dll files on my RT target? 

Solution

You can call external code from LabVIEW on a RT target by compiling the DLL into a supported file type for your RT operating system. 
Note: If you try to call shared library files on an unsupported operating system, you will run into errors when your code is deployed. 

To use shared libraries in your real-time code:
  1. First, check to see what real-time operating system is running on your device.
  2. Examine 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.

If you acquired a library from a third-party, you can call this library when working with the supported real-time OS. For example, in order you use a third-party .dll, you would need to be on a PharLap RT target and would not be able to use a Linux RT target.

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