Programming instructions
Table Of Contents
- Programming Guide
- Table of Contents
- 1 Getting Started
- 2 Programming Examples
- Using the Programming Examples
- GPIB Programming Examples
- Before Using the Examples
- Interface Check using Agilent BASIC
- Interface Check Using NI-488.2 and C++
- Interface Check using VISA and C
- Local Lockout Using Agilent BASIC
- Local Lockout Using NI-488.2 and C++
- Queries Using Agilent BASIC
- Queries Using NI-488.2 and C++
- Queries Using VISA and C
- Generating a CW Signal Using VISA and C
- Generating an Externally Applied AC-Coupled FM Signal Using VISA and C
- Generating an Internal AC-Coupled FM Signal Using VISA and C
- Generating a Step-Swept Signal Using VISA and C
- Saving and Recalling States Using VISA and C
- Reading the Data Questionable Status Register Using VISA and C
- Reading the Service Request Interrupt (SRQ) Using VISA and C
- LAN Programming Examples
- RS-232 Programming Examples
- 3 Programming the StatusRegisterSystem
- 4 Command Reference
- Command Reference Information
- SCPI Basics
- IEEE 488.2 Common Commands
- Calibration subsystem
- Communication Subsystem
- Diagnostic Subsystem
- Display Subsystem
- Memory Subsystem
- Mass Memory Subsystem
- Output Subsystem
- Status Subsystem
- :OPERation:CONDition
- :OPERation:ENABle
- :OPERation:NTRansition
- :OPERation:PTRansition
- :OPERation[:EVENt]
- :PRESet
- :QUEStionable:CALibration:CONDition
- :QUEStionable:CALibration:ENABle
- :QUEStionable:CALibration:NTRansition
- :QUEStionable:CALibration:PTRansition
- :QUEStionable:CALibration[:EVENt]
- :QUEStionable:CONDition
- :QUEStionable:ENABle
- :QUEStionable:FREQuency:CONDition
- :QUEStionable:FREQuency:ENABle
- :QUEStionable:FREQuency:NTRansition
- :QUEStionable:FREQuency:PTRansition
- :QUEStionable:FREQuency[:EVENt]
- :QUEStionable:MODulation:CONDition
- :QUEStionable:MODulation:ENABle
- :QUEStionable:MODulation:NTRansition
- :QUEStionable:MODulation:PTRansition
- :QUEStionable:MODulation[:EVENt]
- :QUEStionable:NTRansition
- :QUEStionable:POWer:CONDition
- :QUEStionable:POWer:ENABle
- :QUEStionable:POWer:NTRansition
- :QUEStionable:POWer:PTRansition
- :QUEStionable:POWer[:EVENt]
- :QUEStionable:PTRansition
- :QUEStionable[:EVENt]
- System Subsystem
- Trigger Subsystem
- Unit Subsystem (:UNIT)
- Amplitude Modulation Subsystem
- :AM[1]|2...
- :AM:INTernal:FREQuency:STEP[:INCRement]
- :AM:MODE
- :AM[1]|2:EXTernal[1]|2:COUPling
- :AM[1]|2:EXTernal[1]|2:IMPedance
- :AM[1]|2:INTernal[1]:FREQuency:ALTernate
- :AM[1]|2:INTernal[1]:FREQuency:ALTernate:AMPLitude:PERCent
- :AM[1]|2:INTernal[1]:SWEep:RATE
- :AM[1]|2:INTernal[1]:SWEep:TRIGger
- :AM[1]|2:INTernal[1]|2:FREQuency
- :AM[1]|2:INTernal[1]|2:FUNCtion:NOISe
- :AM[1]|2:INTernal[1]|2:FUNCtion:RAMP
- :AM[1]|2:INTernal[1]|2:FUNCtion:SHAPe
- :AM[1]|2:SOURce
- :AM[1]|2:STATe
- :AM[1]|2:TYPE
- :AM[1]|2[:DEPTh]:EXPonential
- :AM[1]|2[:DEPTh][:LINear]
- :AM[1]|2[:DEPTh][:LINear]:TRACk
- :AM[:DEPTh]:STEP[:INCRement]
- Correction Subsystem ([:SOURce]:CORRection)
- Frequency Subsystem ([:SOURce])
- Frequency Modulation Subsystem ([:SOURce])
- :FM[1]|2...
- :FM:INTernal:FREQuency:STEP
- :FM[1]|2:EXTernal[1]|2:COUPLing
- :FM[1]|2:EXTernal[1]|2:IMPedance
- :FM[1]|2:INTernal[1]:FREQuency:ALTernate
- :FM[1]|2:INTernal[1]:FREQuency:ALTernate:AMPLitude:PERCent
- :FM[1]|2:INTernal[1]:SWEep:RATE
- :FM[1]|2:INTernal[1]:SWEep:TRIGger
- :FM[1]|2:INTernal[1]|2:FREQuency
- :FM[1]|2:INTernal[1]|2:FUNCtion:NOISe
- :FM[1]|2:INTernal[1]|2:FUNCtion:RAMP
- :FM[1]|2:INTernal[1]|2:FUNCtion:SHAPe
- :FM[1]|2:SOURce
- :FM[1]|2:STATe
- :FM[1]|2[:DEViation]
- :FM[1]|2[:DEViation]:TRACk
- List/Sweep subsystem ([:SOURce])
- Low Frequency Output Subsystem ([:SOURce]:LFOutput)
- :AMPLitude
- :FUNCtion[1]:FREQuency:ALTernate
- :FUNCtion[1]:FREQuency:ALTernate:AMPLitude:PERCent
- :FUNCtion[1]:SWEep:RATE
- :FUNCtion[1]:SWEep:TRIGger
- :FUNCtion[1]|2:FREQuency
- :FUNCtion[1]|2:SHAPe
- :FUNCtion:NOISe
- :FUNCtion[1]|2:SHAPe:RAMP
- :SOURce
- LF Out softkeys:LF Out Off On;low frequency output subsystem keys:LF Out Off On
- Phase Modulation subsystem
- :PM[1]|2...
- :PM:INTernal:FREQuency:STEP[:INCRement]
- :PM[1]|2:BANDwidth|BWIDth
- :PM[1]|2:EXTernal[1]|2:COUPling
- :PM[1]|2:EXTernal[1]|2:IMPedance
- :PM[1]|2:INTernal[1]:FREQuency:ALTernate
- :PM[1]|2:INTernal[1]:FREQuency:ALTernate:AMPLitude:PERCent
- :PM[1]|2:INTernal[1]:SWEep:RATE
- :PM[1]|2:INTernal[1]:SWEep:TRIGger
- :PM[1]|2:INTernal[1]|2:FREQuency
- :PM[1]|2:INTernal[1]|2:FUNCtion:NOISe
- :PM[1]|2:INTernal[1]|2:FUNCtion:RAMP
- :PM[1]|2:INTernal[1]|2:FUNCtion:SHAPe
- :PM[1]|2:SOURce
- :PM[1]|2:STATe
- :PM[1]|2[:DEViation]
- :PM[1]|2[:DEViation]:TRACk
- :PM[:DEViation]:STEP[:INCRement]
- Power Subsystem ([:SOURce])
- :POWer:ALC:BANDwidth|BWIDth
- :POWer:ALC:BANDwidth|BWIDth:AUTO
- :POWer:ALC:LEVel
- :POWer:ALC:SEARch
- :POWer:ALC:SOURce
- :POWer:ALC:SOURce:EXTernal:COUPling
- :POWer:ALC[:STATe]
- :POWer:ATTenuation
- :POWer:ATTenuation:AUTO
- :POWer:MODE
- :POWer:REFerence
- :POWer:REFerence:STATe
- :POWer:STARt
- :POWer:STOP
- :POWer[:LEVel][:IMMediate]:OFFSet
- :POWer[:LEVel][:IMMediate][:AMPLitude]
- Pulse Modulation Subsystem ([:SOURce])
- SCPI Command Compatibility
- Index

Programming Examples
LAN Programming Examples
Chapter 266
char buf[256]; // Variable for id string
ionerror(I_ERROR_EXIT); // Register SICL error handler
// Open SICL instrument handle using VXI-11 protocol
sprintf(instNameBuf, "lan[%s]:inst0", instrumentName);
id = iopen(instNameBuf); // Open instrument session
itimeout(id, 1000); // Set 1 second timeout for operations
printf("Setting frequency to 1 Ghz...\n");
iprintf(id, "freq 1 GHz\n"); // Set frequency to 1 GHz
printf("Waiting for source to settle...\n");
iprintf(id, "*opc?\n"); // Query for operation complete
iscanf(id, "%d", &opcResponse); // Operation complete flag
if (opcResponse != 1) // If operation fails, prompt user
{
printf("Bad response to ’OPC?’\n");
iclose(id);
exit(1);
}
iprintf(id, "FREQ?\n"); // Query the frequency
iscanf(id, "%t", &buf); // Read the signal generator frequency
printf("\n"); // Print the frequency to the display
printf("Frequency of signal generator is %s\n", buf);
ipromptf(id, "*IDN?\n", "%t", buf);// Query for id string
printf("Instrument ID: %s\n", buf);// Print id string to display
iclose(id); // Close the session
return 0;
}
VXI-11 Programming Using VISA in C
The following program uses the VXI-11 protocol and the VISA library to control the signal
generator. The signal generator is set to a 1 GHz CW frequency and queried for its ID string.
Before running this code, you must set up the interface using the Agilent IO Libraries IO
Config utility.
The following program example is available on the PSG Family Documentation CD-ROM as
vxivisa.cpp.
//****************************************************************************************
// PROGRAM FILE NAME:vxivisa.cpp
// Sample test program using the VISA libraries and the VXI-11 protocol
//
// NOTE: You must have the Agilent Libraries installed on your computer to run
// this program
//
// PROGRAM DESCRIPTION:This example uses the VXI-11 protocol and VISA to query
// the signal generator for its ID string. The ID string is then printed to the