Accelerate Program Development
using Keysight Command Expert
with Microsoft Visual Studio
Application Note
Page 2
Introduction
Keysight Command Expert for fast and easy
instrument control!
Keysight Technologies, Inc. Command Expert is a FREE software application that
provides fast and easy instrument control in many PC application environments.
Command Expert combines instrument command sets, command sequences,
documentation, syntax checking, and command execution in one simple interface.
Command Expert helps you to:
Keysight VEE, or Keysight SystemVue PC application environment
– Generate code for command sequences in Visual C#, VisualBasic.NET,
Visual C/C++, and MATLAB
–
– Debug command sequences using breakpoints and single-stepping
– Generate SCPI.NET for use in Visual Studio
Instrument command sets are available for instruments that use Standard Commands
for Programmable Instrumentation (SCPI) or IVI-COM drivers.
This application note contains
two main sections:
– Command Expert Basics
Introduces you to the
Command Expert user
interface and shows an
example sequence.
– Command Expert in the Visual
Studio Environment
Describes how to generate
code for use in Visual Studio
projects and how to use
SCPI.NET drivers in Visual
Studio.
Page 3
Command Expert Basics
This section describes how to download, install, and start Command Expert, and uses an example sequence to show the features of the Command Expert user interface.
Figure 1. Command Expert and Visual Studio Integration
Downloading and Installing Command Expert
You can download Command Expert from
www.keysight.com/find/commandexpert.
After downloading, click Run in the installer window
and follow the instructions on your screen.
Figure 2. Command Expert Icon
Additional required software
Be sure to install Keysight IO Libraries Suite to find and communicate with instruments.
You can download Keysight IO Libraries Suite from www.keysight.com/find/iosuite.
Visual Studio Versions Supported
Command Expert can be used with Visual Studio 2005, Visual Studio 2008, or Visual Studio 2010.
3
Page 4
Starting Command Expert
Click Start > All Programs > Keysight Command Expert > Keysight Command Expert.
The Command Expert opening window (Welcome Window) is shown below.
Command Expert comes with a number of preconfigured examples for popular instruments. The installation software installs an example
instrument named N6700 that provides the commands for the Keysight N6700B Power Supply. We will use this instrument and the
N6700_PowerSupply_OutputSetup example to introduce you to the Command Expert user interface.
Figure 3. Command Expert Welcome Window
Internet access and command sets
The N6700 instrument and its SCPI command set are installed by default. For other instrument examples, you will be prompted to
install the instrument’s command set. After installing Command Expert, you will need Internet access to download SCPI command
sets or IVI-COM instrument drivers for your instruments. If you work in a secure environment with limited Internet access, you can still
use Command Expert. Simply download the SCPI command sets or IVI-COM instrument drivers using a computer with internet access.
You can then transfer the command sets or drivers to the computer with no internet access (using a USB drive, for example).
4
Page 5
The Command Sequence
The command sequence for the N6700_PowerSupply_OutputSetup example is shown in the Sequence Pane in the graphic below. A
Command Expert sequence is a series of steps that are executed in order to connect to an instrument, configure an instrument, set outputs, and
perform measurements.
Figure 4. Command Expert User Inter face Over view
– The Instruments Pane shows your instruments and lets you connect to them.
– The Search/Browse Pane shows you the commands for the selected instrument and lets you search for commands.
– The Command Pane shows the selected command and its documentation, and lets you execute the command.
– The Status Bar shows progress messages as Command Expert performs operations.
– The Parameters Pane expands to show sequence parameters and lets you view and edit their names and values.
– The Sequence Pane shows the various steps in the Command Expert sequence and lets you edit the sequence and
replay commands. The Sequence Pane has the following features:
5
Page 6
The Command Sequence cont’d
Figure 5. Sequence Pane Details
Working offline
The absence of a specific instrument address in step 1of the sequence shown above indicates that we are working offline.
To connect to an actual instrument, select step 1 in the Sequence Pane, and enter the instrument address in the address
field in the Command Pane.
Working offline is a simulation mode where you can view and perform commands as usual, but the commands return
default values. This is a good way to explore a command set, view documentation, and prototype sequences without having
to connect to a physical instrument.
6
Page 7
Sequence Steps
Selecting a step in the Sequence Pane reveals details about the command and its parameters.
Figure 6. Command Details
Command Expert uses these types of steps:
– Connect steps (to connect to instruments)
– Command steps (SCPI or IVI-COM commands)
– Wait statements
– Comments
– Steps to control timeouts and error handling
7
Page 8
Sequence Debugging
You can debug a sequence by inserting breakpoints. When you run the sequence, execution pauses at the first step with a
breakpoint and Command Expert enters single-step mode. In single-step mode you can single-step the sequence, monitor
parameters and results, replay the sequence, and play selected steps. When you are ready to run the sequence without pausing
at the breakpoint, remove the breakpoint and run the sequence normally.
Figure 7. Debugging the Sequence
You can also skip steps to help with debugging.
Substituting an instrument
You can temporarily switch command sets in a sequence to see the effects of switching to a different instrument.
Any commands that aren’t supported by the new instrument are highlighted in red.
8
Page 9
Using IVI-COM
If you prefer, you can use IVI-COM commands instead of SCPI commands. Command Expert has a number of IVI-COM examples
and the operation is very similar to SCPI.
The example below (filename: N67xx_PowerSupply_OutputSetup.xlsx) uses IVI-COM commands:
Figure 8. IVI- COM commands
IVI-COM command sets and drivers
IVI-COM command sets are automatically extracted from IVI-COM drivers. You must install an IVI-COM driver (outside of Command
Expert) before you can use the driver’s command set in Command Expert.
You can download Keysight IVI-COM drivers from www.keysight.com/find/ivi.
9
Page 10
Using IVI-COM cont’d
The Command Expert IVI-COM interface is very similar to the SCPI interface. All elements within the interface operate as described earlier in this
application note. For more information, see Command Expert for IVI-COM Tutorial in the Command Expert help:
Figure 9. IVI-COM Help
Using Command Expert with Non-Keysight Instruments
You can use Command Expert with any SCPI instrument that follows the SCPI-99 standard, using the Generic SCPI-99 Instrument
command set. This command set provides the commands that are common to SCPI-99 instruments.
You can also use direct commands to send additional SCPI commands. Using direct commands, you can send any SCPI command to any SCPI instrument.
Any instrument that has an IVI-COM driver can be used with Command Expert, regardless of the manufacturer.
Getting Started with
Command Expert
To get started using Command Expert,
you can start with one of the many
example sequences and modify that
sequence, or you can create your own
sequence. For a step-by-step tutorial
showing how to create a sequence,
see Command Expert Tutorial in the
Command Expert help:
Figure 10. Command E xper t Tutorial
10
Page 11
Command Expert in the Visual Studio Environment
You can use Command Expert to help automate instrument control in Visual Studio using either or both of these approaches:
– Generating code from Command Expert
– Using SCPI.NET drivers
Generating Code from Command Expert
You can use Command Expert to automatically generate code from SCPI or IVI-COM command sequences. This allows you to efficiently develop
and test instrument command sequences before incorporating the code into your Visual Studio project.
The steps for generating code are:
1. Create a SCPI or IVI-COM command sequence in Command Expert
2. Select a code generation option and export the sequence to the clipboard
3. Paste the generated code into a Visual Studio project
4. Add any required references to your Visual Studio project
5. Build and run the application
The Visual Studio code generation options for SCPI command sequences are:
– C/C++ with calls to VISA Formatted I/O
– C# with calls to SCPI.NET Drivers
– VB.NET with calls to SCPI.NET Drivers
The code generation options for IVI-COM command sequences are:
– C# with calls to IVI-COM Drivers
– VB.NET with calls to IVI-COM Drivers
Examples
This application note shows a code generation example for C/C++ with calls to VISA Formatted I/O and for C# with calls to SCPI.NET Drivers. The code generation process for the other options listed above is similar. Detailed information and tutorials are
located in the Command Expert help.
11
Page 12
VISA Formatted I/O Code Generation Example
The following example uses the SCPI N6700_PowerSupply_OutputSetup example to show how to generate C/C++ with calls to VISA
Formatted IO and paste that code into a Visual Studio C++ project. The advantages to using C/C++ with calls to VISA Formatted I/O are:
– The VISA C/C++ formatted I/O functions are an industry standard.
– The VISA C/C++ formatted I/O functions perform data translation; that is, the functions convert between programming
language data structures and SCPI command/response strings.
– The generated code can be used in unmanaged C or C++ applications.
– The generated code can also be used in LabWindows/CVI applications.
Procedure
1. If not already open, open the N6700_PowerSupply_OutputSetup example from the Welcome Window.
2. The example opens with the SCPI commands listed (default mode). This example sets the output voltage and current of
a Keysight N6700B Power Supply:
Figure 11. N6700 Example
12
Page 13
VISA Formatted I/O Code Generation Example cont’d
3. To add Keysight VISA I/O calls to the SCPI commands and export the sequence, click File > Export Sequence… and
select C/C++ with calls to Visa Formatted I/O:
Figure 12. Expor ting the Sequence (Visa Formatted I/O)
4. Click Copy to Clipboard followed by Close. The Keysight VISA I/O calls (viOpen, viPrint) are automatically added to the
sequence and copied to the clipboard.
When Command Expert generates code:
– The generated code for skipped statements is commented out.
– Comments in a sequence become comments in the generated code.
– Wait statements become calls to appropriate library functions.
5. You can now paste this code into a Visual Studio console application to create a working program. The following
graphic shows the generated code from the N6700_PowerSupply_OutputSetup example pasted into a Visual Studio C++
console application. Be sure to add the appropriate #include statements (see the Command Expert help for details).
13
Page 14
VISA Formatted I/O Code Generation Example cont’d
Figure 13. C++ Example
The above example is included with Command Expert as a Visual Studio C++ project. A number of examples are included for
Visual Studio. These examples are located in:
C:\Documents and Settings\All Users\Keysight\Command Expert\Examples (for Windows XP)
C:\ProgramData\Keysight\Command Expert\Examples (for Windows 7)
Visual Studio examples are in these subfolders:
…\Scpi\Visual Studio (SCPI examples)
…\IviCom\Visual Studio (IVI-COM examples)
For More Information
These tutorials are available in the Command Expert help:
– Tutorial on Using Generated VISA Code
– Command Expert for IVI-COM Tutorial
14
Page 15
Using SCPI.NET Drivers
A SCPI.NET driver is a .NET assembly that provides a strongly typed interface to a SCPI command set. Using a SCPI.NET driver allows you to
efficiently add instrument control steps without leaving the Visual Studio environment. This allows you to make use of standard Visual Studio
productivity aids such as IntelliSense and compile-time type checking. Command Expert installs the SCPI.NET driver for a command set when you
install the SCPI command set.
A typical process for using SCPI.NET drivers is:
1. Create a command sequence in Command Expert or open an example command sequence.
2. Export the sequence to the clipboard using the SCPI.NET code generation option.
3. Paste the generated code into your Visual Studio project.
4. Add references to required SCPI.NET drivers to the Visual Studio project.
5. In Visual Studio, modify the generated code by adding, removing or editing steps, and adding comments to the code.
6. Build and run the application.
C# SCPI.NET Example
1. If not already open, open the N6700_PowerSupply_OutputSetup example from the Welcome Window.
2. The example opens with the SCPI commands listed (default mode). This example sets the output voltage and current of
a Keysight N6700B Power Supply:
Figure 14. N6700 Example
15
Page 16
Using SCPI.NET Drivers cont’d
3. Click File > Export Sequence… and select C# with calls to SCPI.NET Drivers:
Figure 15. Expor ting the Sequence (SCPI.NET )
4. Click Copy to Clipboard followed by Close. Command Expert automatically adds the C# SCPI.NET calls to the sequence
and copies the sequence to the clipboard.
5. You can now paste this code into a Visual Studio console application to create a working program.
The following graphic shows the generated code from the N6700_PowerSupply_OutputSetup example pasted into a Visual
Studio C# project. Be sure to add the required references (see the SCPI.NET Drivers Tutorial in the online help for details).
16
Page 17
Using SCPI.NET Drivers cont’d
Figure 16. N6700 C# Example
6. To use IntelliSense in Visual Studio, begin typing a SCPI command string.
For example, type: n6700.SCPI.SOURce.VOLTage.
IntelliSense displays the available command strings and descriptions:
Figure 17. IntelliSense
Select a string, such as RANGe, to append it to the SCPI command.
17
Page 18
Using SCPI.NET Drivers cont’d
7. To view SCPI documentation in Visual Studio, right-click the rightmost SCPI keyword in the driver call. For example,
right-click the AMPLitude keyword in this line of code:
Click Go to Definition from the Visual Studio context menu. Visual Studio displays the source code for the SCPI.NET driver class.
Click the link directly under
// Remarks: to view the HTML documentation for the AMPLitude command.
Figure 18. SCPI Documentation in Visual Studio
The preceding example is included with Command Expert as a Visual Studio C# project. A number of Visual Studio examples are
included for Visual Studio. Examples are located in:
C:\Documents and Settings\All Users\Keysight\Command Expert\Examples (for Windows XP)
C:\ProgramData\Keysight\Command Expert\Examples (for Windows 7)
Visual Studio examples are in these subfolders:
…\Scpi\Visual Studio (SCPI examples)
…\IviCom\Visual Studio (IVI-COM examples)
For More Information
For a step-by-step tutorial, see SCPI.NET Drivers Tutorial in the Command Expert help.
18
Page 19
Where to Go Next
The easiest way to get started using Command Expert with Visual Studio is to browse through the example folders and select an example that is
similar to your test and measurement application. Examples are provided for Visual Studio 2005, Visual Studio 2008, and Visual Studio 2010.
Figure 19. More Examples
Command Expert has extensive application documentation containing FAQs, tutorials, examples, and getting started information. You can use one
of these tutorials, available in the Command Expert help, for step-by-step information on how to use Command Expert with Visual Studio:
– Tutorial on Using Generated VISA Code
– Command Expert for IVI-COM Tutorial
– SCPI.NET Drivers Tutorial
19
Page 20
Where to Go Next cont’d
Figure 20. Command Expert Tutorials
Be sure to check the Command Expert help for important information on using the various Visual Studio versions. You can find more information
on Command Expert, including links to other application notes,
at www.keysight.com/find/commandexpert.
PC Operating Requirements
Operating SystemWindows XP, Service Pack 2 or above, 32-bit only.
Editions: Home, Professional
Windows 7, 32-bit or 64-bit.
Editions: Starter, Home Basic, Home Premium, Professional, Ultimate, or Enterprise
Disk At least 1GB free disk space
Keysight IO Libraries Suite Version 15.0 or above
MonitorAt least 1024x768 monitor resolution
BrowserInternet Explorer 6 or above (7 or above recommended)
You can find the current list of instrument SCPI command sets at: www.keysight.com/find/commandsetlist
Application Development Environment Requirements
Visual StudioVisual Studio 2005, 2008, 2010 or above
LabVIEWLabVIEW 8.2.1 or above.
VEEVEE Pro 9.22 or above.
ExcelExcel 2007 or Excel 2010.
MATLABMATLAB Instrument Control Toolbox R2009a or above
Download Command Expert now and experience fast and easy instrument control: www.keysight.com/find/commandexpert
20
Page 21
21 | Keysight | Accelerate Program Development using Agilent Command Expert with Microsoft Visual Studio - Application Note
myKeysight
www.keysight.com/find/mykeysight
A personalized view into the information most relevant to you.
Up to five years of protection and no budgetary surprises to ensure your
instruments are operating to specification so you can rely on accurate
measurements.
www.keysight.com/quality
Keysight Technologies, Inc.
DEKRA Certified ISO 9001:2008
Quality Management System
Get the best of both worlds: Keysight’s measurement expertise and product
breadth, combined with channel partner convenience.
Microsoft is a trademark or registered trademark of Microsoft Corporation in
the United States and/or other countries.
Visual Studio is a trademark or registered trademark of Microsoft Corporation
in the United States and/or other countries.
Visual C++, Visual C#, and Visual Basic are trademarks or registered
trademarks of Microsoft Corporation in the United States and/or other
countries.
www.keysight.com/find/commandexpert
For more information on Keysight
Technologies’ products, applications or
services, please contact your local Keysight
office. The complete list is available at:
www.keysight.com/find/contactus