In the previous chapters, we learned how to remote control Rohde & Schwarz instruments using direct SCPI commands. As an alternative, Rohde & Schwarz offers free instrument drivers that provide an abstraction layer between your application and the instrument’s SCPI commands.
5. Instruments Drivers vs. Direct SCPI Commands
Instead of using VISA Write / Read functions and direct SCPI commands, you use functions and attributes of an instrument driver. A simple example of such substitution in the LabVIEW rsscope Instrument driver:
The same substitution in C# using the IVI.NET RsScope instrument driver. You set the individual parameters with properties, or set more of them with a method:
For simplicity, the above direct SCPI command pictures do not contain all the operations that the instrument drivers perform. For example, the drivers also wait for the instrument acknowledgment that a command has been executed (see Chapter 6 Measurement Synchronization), and check for potential errors after each command (see Chapter 7 Instrument Error Checking). When you use direct SCPI commands, you have to take care of both of these tasks yourself.
Summarized advantages/disadvantages of using direct SCPI commands
Advantages:
- Quicker start; Instrument user manual has all the SCPI commands described.
- Faster execution speed.
Disadvantages:
- You need to take care of the measurement synchronization and the instrument error checking.
- You must format arguments into SCPI commands. This is especially tricky with binary data.
- When you receive an instrument string response, you need to convert it into an appropriate type (e.g. integer, double or boolean, arrays or binary data).
Summarized advantages/disadvantages of using the instrument drivers
Advantages:
- Performing error checking after each command. You can switch this off for the critical sections where you require the maximum speed.
- Synchronization of commands that take long time to complete.
- Formatting of arguments into the SCPI commands and parsing the instrument responses is already implemented.
- Instrument drivers come with their own *.chm help files.
- They always offer the option of using direct SCPI commands.
Disadvantages:
- Longer learning curve, you have to get familiar with the driver structure.
- Minor overhead. This can be minimized by the correct approach; see Chapter 8 Speed Optimization
- Sometimes you have to wait until new instrument features are supported by instrument drivers.
Suitability of Rohde & Schwarz Instrument drivers for different programming languages
The following table shows, which instrument driver is suitable for which programming language. The specifics of the different environments we discuss afterwards.
| VXI plug&play drivers | LabWindows/CVI drivers | LabVIEW drivers | IVI.NET drivers | SCPI drivers | |
|---|---|---|---|---|---|
| Python | X (bulky) | X (some instruments) | |||
| MATLAB | X | ||||
| C#, VB.NET | X (if IVI.NET is not available) | X | X (some instruments) | ||
| LabVIEW | X | ||||
| LabWindows/CVI | X |
For MATLAB users
Rohde & Schwarz provides MATLAB MDD drivers. Using MDD drivers requires advanced knowledge of VXI plug&play driver structure, you must manually import all enumeration constants from the driver header file. In addition, you need a MATLAB Instrument Control Toolbox license. For MATLAB users we recommend using direct SCPI commands. This application note covers both approaches:
For LabVIEW users
Rohde & Schwarz provides native LabVIEW drivers. Find out more in the application note:
1MA228: 10 Tips & Tricks on how to use Rohde & Schwarz LabVIEW Instrument drivers
For C#, VB.NET users
Here, you have two choices:
- IVI.NET drivers - available for almost all the instruments. Here you can also use the VXI plug&play drivers that come with the C# and VB.NET wrapper classes.Find out more in the dedicated application note:
1MA268: How to use Rohde & Schwarz IVI.NET Instrument drivers
Download them from our product websites. - SCPI-based drivers - these drivers are auto-generated fro the instrument's SCPI tree and follow exactly the SCPI tree syntax. Use them if you are used to SCPI commands. These drivers offer intellisense help and type-safe interface for the SCPIs. Download them as NuGet packages from the nuget.org:
https://www.nuget.org/profiles/rohde-schwarz
For LabWindows/CVI and other C/C++ environment users
VXI plug&play drivers are compiled CVI drivers for 32-bit and 64-bit Windows applications. You can use them both in C/C++ languages.
To use a CVI driver, add its entire source code into your project.
To use a VXI plug&play driver, add the driver's LLB file (for static linking) or its DLLs file (for dynamic linking) into your project.