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
GPIB Programming Examples
Chapter 2 61
ViStatus viStatus = 0; // Declares a variable of type ViStatus
// for GPIB verifications
char rdBuffer[MAX_CNT]; // Declare a block of memory data
viStatus=viOpenDefaultRM(&defaultRM);// Initialize VISA session
if(viStatus < VI_SUCCESS){ // If problems, then prompt user
printf("ERROR initializing VISA... exiting\n");
printf("\n");
return -1; }
// Open session to gpib device at address 19
viStatus=viOpen(defaultRM, "GPIB::19::INSTR", VI_NULL, VI_NULL, &vi);
if(viStatus){ // If problems then prompt user
printf("ERROR: Could not open communication with
instrument\n");
printf("\n");
return -1; }
viClear(vi); // Clears the signal generator
viPrintf(vi, "*RST\n"); // Resets signal generator
// Print program header and information
printf("** End of Sweep Service Request **\n");
printf("\n");
printf("The signal generator will be set up for a step sweep mode
operation.\n");
printf("An ’*’ will be printed while the instrument is sweeping. The end of
\n");
printf("sweep will be indicated by an SRQ on the GPIB and the program will
end.\n");
printf("\n");
printf("Press Enter to continue\n");
printf("\n");
getch();
viPrintf(vi, "*CLS\n"); // Clears signal generator status byte
viPrintf(vi, "STAT:OPER:NTR 8\n");// Sets the Operation Status Group
// Negative Transition Filter to indicate a
// negative transition in Bit 3 (Sweeping)
// which will set a corresponding event in
// the Operation Event Register. This occurs
// the end of a sweep.
viPrintf(vi, "STAT:OPER:PTR 0\n");// Sets the Operation Status Group
// Positive Transition Filter so that no
// positive transition on Bit 3 affects the
// Operation Event Register. The positive
// transition occurs at the start of a sweep.
viPrintf(vi, "STAT:OPER:ENAB 8\n");// Enables Operation Status Event Bit 3
// to report the event to Status Byte
// Register Summary Bit 7.
viPrintf(vi, "*SRE 128\n"); // Enables Status Byte Register Summary Bit 7
// The next line of code indicates the
// function to call on an event