Using Keysight VISA with Another Vendor's VISA (32-Bit)
This section contains information specific to the Windows product.
![]() |
This discussion applies to VISA on 32-bit application running on 64-bit systems only. |
The Keysight IO Libraries Suite includes an implementation of VISA (Virtual Instrument Software Architecture). However, installing any two different VISA implementations together can cause conflicts. This is due to the VISA standard requiring the visa32.dll- the dynamic-link library that implements the VISA interface- to be installed in specific locations. As a result, only one installed implementation (the primary implementation) can fully comply with the standard at any given time. Therefore, if you plan to use the KeysightIO Libraries Suite alongside another VISA implementation, such as NI-VISA, you must take extra precautions to avoid compatibility issues.
When you have both Keysight VISA and another vendor's VISA installed on the same system, you will need to decide whether to let your programs use the primary VISA or whether to explicitly direct them to use the Keysight VISA implementation.
Why Use Two VISA Implementations?
![]()
In general, you do not need to install NI-VISA to use National Instruments GPIB cards and devices. You can install NI-488.2 as a driver for these devices, and avoid the complications of side-by-side operations.
There may be times when you need to use I/O interfaces, devices, or software features that are only supported by certain vendors' VISA implementations. You may also find that some vendors' programming environments, applications, or instrument drivers require the presence of that vendor's VISA or are optimized for use with that vendor's VISA. In such a situation, you need to install those vendors' VISA implementations side-by-side.
National Instruments Measurement & Automation Explorer (MAX) and VISA Interactive Control (VISAIC) are installed with NI-VISA. This software is only available from National Instruments. Keysight Connection Expert and Interactive IO, which are available only in the Keysight IO Libraries Suite, provide similar capabilities based on Keysight VISA.
Using Keysight VISA in Side-by-Side Mode
The Keysight IO Libraries Suite supports the option to install Keysight VISA in side-by-side mode (as the secondary VISA), which allows Keysight VISA to be used simultaneously with another vendor's VISA implementation. In side-by-side mode, Keysight VISA is installed only in a secondary location and therefore does not overwrite another vendor's VISA if it is present on the computer.
In general, non-Keysight VISA implementations do not support operation as the secondary VISA (in side-by-side mode). This means that you must operate Keysight VISA in side-by-side mode as the secondary VISA, and the other vendor's VISA as primary.
About Primary and Secondary VISA
- VISA programs normally use visa32.dll, which is installed in the Windows system directory. This is the primary VISA, as defined by the VISA standard.
- Keysight VISA is implemented in ktvisa32.dll, which is also installed in the Windows system directory.
- If Keysight VISA is installed as primary, the Keysight version of visa32.dll is installed in the Windows system directory. It simply forwards all VISA calls to ktvisa32.dll.
- If you install Keysight VISA as primary, all files needed to support side-by-side mode are also installed. This means that if you subsequently install another vendor's VISA as primary, you can still use Keysight VISA as secondary.
If Keysight VISA is installed in side-by-side mode (as the secondary VISA),
- ktvisa32.dll is installed, but Keysight's visa32.dll is not. Thus, it will not overwrite another vendor's visa32.dll residing in the standard location.
- Keysight support files are not installed in the bin, include, and lib directories of the VISA path (e.g. C:\Program Files\IVI Foundation\VISA\Win64), since they would overwrite the other vendor's support files. Copies of the Keysight versions of the VISA support files reside in the ktbin, include, and lib subdirectories under <VISA path>\ktvisa. (These files are installed even when Keysight VISA is primary.)
- The About Keysight IO Libraries Suite dialog box and the message area at the bottom of the Connection Expert window contain a message indicating whether 32-bit Keysight VISA is installed as primary, installed as secondary, or missing (installed as primary but overwritten by another vendor's VISA). In the latter case, Keysight VISA operates identically to a secondary installation.
VISA programs that are linked to the standard VISA DLL (e.g. C:\WINDOWS\system32\visa32.dll) use the primary VISA. However, if a VISA program is linked with ktvisa32.lib or dynamically loads ktvisa32.dll, it always uses Keysight VISA (regardless of whether Keysight VISA is primary or secondary). Addressing is identical regardless of whether you are using the primary or secondary VISA in your program.
By dynamically loading both visa32.dll and ktvisa32.dll, it is possible for a program to access both versions of VISA in the same program. If you do this, keep careful track of your VISA session values. Session values returned from one vendor's VISA implementation cannot be used in VISA calls to a different vendor's implementation. Use this technique only if it is necessary to your application; debugging in this configuration may be difficult.
Most Keysight software uses Keysight VISA if it is present.
- Keysight IO Libraries Suite utilities (such as Connection Expert and Interactive IO) always use Keysight VISA.
- Keysight VEE Pro uses Keysight VISA if it is installed (regardless of whether it is primary or secondary), but will use another vendor's VISA if Keysight VISA is not installed.
- Because Keysight VISA.NET and VISA COM both employ a Global Resource Manager, they work equally well using Keysight VISA, another vendor's VISA, or a combination of VISA implementations. See the Keysight VISA.NET Help and the Keysight VISA COM Help for information on this topic.
Using VISA Aliases when Keysight VISA and NI-VISA are Side-by-Side
You can define VISA aliases in Keysight Connection Expert and use them in your VISA programs, even if your programs are linked to NI-VISA (with Keysight VISA present as secondary VISA in a side-by-side configuration). In order to do this, you must enable the NI-VISA Passport for Tulip. This is a software module included with NI-VISA for support of Keysight hardware, and it is not enabled by default.
Aliases defined in Connection Expert need not be legal aliases in NI-VISA (which has more lexical restrictions on aliases). They will still work in NI-VISA programs if you have enabled the Passport for Tulip. This is because the NI Passport for Tulip calls Keysight VISA to resolve aliases that NI-VISA cannot resolve.
VISA aliases defined in NI MAX cannot be used in programs linked to Keysight VISA (ktvisa32.dll). If you want to use those aliases with Keysight VISA, redefine them in Connection Expert:
- Copy the alias string in NI MAX.
- Go to Connection Expert and select
, Tools, then Alias Manager....
- Add a new alias for the instrument, using the copied string as the alias name.
Notes on VISA Aliases
The following are true for VISA aliases, assuming that NI-VISA is installed and (for 32-bit programs only) NI Passport for TULIP is enabled:
![]()
NI Passport for TULIP is not enabled by default during NI MAX installation; you must manually enable it. See Enabling the NI-VISA Passport for Tulip for instructions.
- Both NI MAX and Keysight software support VISA aliases, but each program maintains its own separate alias list.
- A VISA program can use an alias defined in NI MAX to access any device that is shown in NI MAX. This includes Keysight devices that appear in NI MAX if NI Passport for TULIP is enabled (for 32-bit programs).
- An alias that is defined for a device in Keysight software on any Keysight interface (such as a Keysight GPIB card) can also be used by a VISA program to access the device.
- An alias that is defined in Keysight software for a device on the TCPIP0 or USB0 interface can also be used by a VISA program to access the device. Note also that when an alias is created in Keysightsoftware, the actual I/O is done using Keysight VISA rather than NI-VISA. This means that Keysight software will trace the Keysight calls for these devices.
Additional Notes on Side-by-Side Operation
With IO Libraries Suite 2024 Update 1 onwards, you will not get the option to choose a primary VISA during installation, if another VISA is already present, the installer configures Keysight VISA as a secondary VISA. If no VISA exists, it configures Keysight VISA as the primary VISA. IO Libraries 2024 Update 1 provides a CLI utility that lets you choose a primary VISA anytime. You can access this utility by navigating to the IO Libraries desktop icon, selecting Utilities, and then choosing Set 32-Bit Primary VISA.
-
The utility is for Windows 64-bit OS.
-
It is a CLI application that lists all installed VISA(s) and allows the user to choose the primary VISA interactively or via parameters.
-
The utility should run as admin.
-
The utility handles cases where visa32.dll is used by other applications, prompting userd to close or forcibly terminate them if necessary.
New Directory for VISA DLLs -
The utility will use a pre-created folder to store the visa32.dll files from each VISA vendor. Place them at the following location:
C:\Program Files (x86)\IVI Foundation\VISA\WinNT\visa32Store
Using Set 32-Bit Primary Visa Utility
Interactive mode
-
Navigate to the IO Libraries desktop icon.
-
Select the Utilities option.
-
Choose the Set 32-Bit Primary VISA option.
This will enter interactive mode, displaying a list of available VISA libraries. Follow the prompts to select the primary VISA by entering the corresponding number for your choice from the list.
Command line mode
Open Command Prompt with administrative rights or elevated mode and navigate to the following location:
Command Line Options:
List all installed VISA Libraries
\primary-visa-utility.exe list
or
\primary-visa-utility.exe list -all
Update primary VISA to VISA with index 2 forcefully
\primary-visa-utility.exe update -index=2 -force
See Also
Using the Keysight IO Libraries Suite with Other Vendors' Hardware
Keysight's 32-Bit Software Compatibility Architecture