The Virtual Instrument Software Architecture (VISA) is a widely adopted standard API for communicating with test and measurement instruments from a computer. The standard is defined by the IVI Foundation. The primary purpose of VISA is to provide a single, consistent software interface for controlling instruments, regardless of the physical communication bus being used. Before VISA, a programmer would need to use a different set of library functions to control a GPIB instrument than they would for a serial (RS-232C) instrument. This made writing flexible and portable test code difficult.
VISA solves this problem by creating an abstraction layer. A programmer writes their code using the standardized VISA functions, such as viOpen() to connect to an instrument, viWrite() to send a command, and
viRead() to receive a response. The VISA library on the computer then automatically handles the low-level details of translating these function calls into the specific protocol required by the physical interface, whether it's GPIB, USB (USBTMC), LAN/Ethernet (LXI), or RS-232C. This interface independence is a major benefit, as it allows a test program to be easily adapted to work with different instruments or communication interfaces with minimal code changes. VISA is not a programming language itself, but a library specification that is implemented by various vendors (like National Instruments, Keysight, and Rohde & Schwarz) for use in many different programming environments (like LabVIEW, C#, Python, MATLAB, etc.).
VISA communication gave the communication solution. VISA communication is available with the same software regardless of the interface type, so there is no need for separate libraries or separate software for each. The VISA can reduce labor and make it easier to handle multiple devices simultaneously.
However, some interfaces and devices are not supported and require individual settings.
National Instruments https://www.ni.com/Keysight Technologies https://www.keysight.com/
Tektronix https://www.tek.com/