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.

Creating a VeriStand 64-Bit Custom Device Using a 32-Bit Driver

Updated Oct 23, 2023

Environment

Software

  • VeriStand Custom Devices
  • VeriStand

This article will describe how to build and deploy a custom device to a Linux RT controller with a VeriStand 64-bit engine, but a 32-bit driver. This is possible by building the system explorer section in 64-bit LabVIEW, and building the real-time target deployment via 32-bit LabVIEW.
 

Software Requirements:

LabVIEW, LabVIEW Real-Time and dependent drivers (32-bit)
LabVIEW, LabVIEW Real-Time, and the Custom Device API

Getting the right VIs in the right places

Since VeriStand 2021 switched to a 64-bit architecture, VeriStand 2021 and later only provide vi.lib support for LabVIEW 64-bit; it does not install its VIs to vi.lib for LabVIEW 32-bit. Similarly, the driver API only is installing VIs to LabVIEW 32-bit.

  1. Copy the 32-bit driver API contained within the 32-bit vi.lib folder to LabVIEW 64-bit's vi.lib folder:
    1. 2021: C:\Program Files (x86)\National Instruments\LabVIEW 2021\vi.lib to C:\Program Files\National Instruments\LabVIEW 2021\vi.lib\
    2. 2023 and later: C:\Program Files (x86)\NI\LVAddons to C:\Program Files\NI\LVAddons
  2. Copy VeriStand's 64-bit custom device API "C:\Program Files\National Instruments\LabVIEW 2021\vi.lib\NI VeriStand\Custom Device API" to LabVIEW 32-bit's vi.lib folder "C:\Program Files (x86)\National Instruments\LabVIEW 2021\vi.lib.
 

Building the System Explorer/Configuration component

You need to build your custom device's System Explorer pages and Action VIs using LabVIEW 64-bit, because they will be loaded by the LabVIEW 64-bit Runtime Engine.

  1. If you need to make driver calls during configuration, componentize your custom device such that the driver calls can be wrapped in a standalone executable and invoked using System Exec.
  2. By leveraging LabVIEW's ability to flatten to JSON and the driver typedefs being exposed to LabVIEW 64-bit via our previous copying, it should be straightforward to pass information between the custom device hosted in System Explorer and these standalone executables.

The Scan Engine EtherCAT custom device is a good example of using this to detect the hardware configuration and automatically populate the system definition.
 

Building the Engine/RT component

You can build the Engine/RT component of the custom device for Linux RT directly in LabVIEW 32-bit, since the actual compiled code will target Linux x64 regardless of the LabVIEW editor bitness!