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.
- Copy the 32-bit driver API contained within the 32-bit vi.lib folder to LabVIEW 64-bit's vi.lib folder:
- 2021: C:\Program Files (x86)\National Instruments\LabVIEW 2021\vi.lib to C:\Program Files\National Instruments\LabVIEW 2021\vi.lib\
- 2023 and later: C:\Program Files (x86)\NI\LVAddons to C:\Program Files\NI\LVAddons
- 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.
- 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.
- 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!