User`s guide
Table Of Contents
- Agilent E3632A DC Power Supply
- Table of Contents
- List of Figures
- List of Tables
- 1 Getting Started
- 2 Operation and Features
- Overview
- Constant Voltage Operation
- Constant Current Operation
- Storing and Recalling Operating States
- Programming the Overvoltage Protection
- Programming the Overcurrent Protection
- Remote Voltage Sensing
- Disabling the Output
- System-Related Operations
- Remote Interface Configuration
- GPIB Interface Configuration
- RS-232 Interface Configuration
- Calibration
- 3 Remote Interface Reference
- SCPI Command Summary
- Introduction to the SCPI Language
- Simplified Programming Overview
- Using the APPLy Command
- Output Settings and Operation Commands
- Triggering Commands
- System-Related Commands
- Calibration Commands
- RS-232 Interface Commands
- SCPI Status Registers
- What is an event register?
- What is an enable register?
- SCPI status system
- The Questionable Status register
- The Standard Event register
- The Status Byte register
- Using Service Request (SRQ) and Serial POLL
- Using *STB? to read the Status Byte
- Using the Message Available Bit (MAV)
- To interrupt your bus controller using SRQ
- To determine when a command sequence is completed
- Using *OPC to signal when data is in the output buffer
- Status Reporting Commands
- Halting an Output in Progress
- SCPI Conformance Information
- IEEE-488 Conformance Information
- 4 Error Messages
- 5 Application Programs
- 6 Tutorial
- 7 Characteristics and Specifications
5 Application Programs
Example Program for C++ (GPIB IEEE 488)
142 E3632A User’s Guide
/* build the address needed to open communication with GPIB card */
/* address format looks like this; GPIB0::5::INSTR */
/* */
strcpy(GPIB_address, "5"); /****** Change GPIB address here *****/
strcpy(Visa_address, "GPIB0::");
strcat(Visa_address, GPIB_address);
/* Open communication (session) with power supply */
viOpenDefaultRM (&defaultRM);
viOpen (defaultRM, Visa_address, 0,0, &power_supply);
/* Query the power supply id, read response and print */
viPrintf (power_supply, "*IDN?\n");
viScanf (power_supply, "%s", &reply_string);
printf ("Instrument identification string:\n %s\n\n", reply_string);
/* Initialize Power Supply */
viPrintf (power_supply, "*RST\n"); /* Set power on condition */
viPrintf (power_supply, "Current 2\n"); /* Set Current limit to 2A */
viPrintf (power_supply, "Output on\n"); /* Turn output on */
printf("Voltage Current\n\n"); /* Print heading */
/* Step from 0.6v to 0.8 volt in .02volt steps */
for(voltage =.6;voltage <<=.8001;voltage +=.02)
{
viPrintf (power_supply, "Volt %f\n",voltage); /*set voltage */
printf("%.3f",voltage); /* print power supply setting */
delay(500); /* allow output to settle for 500 msec */
viPrintf(power_supply,"Measure:Current?\n"); /*measure output current */
viScanf (power_supply, "%lf",¤t); /* retrieve reading */
printf(" %.3lf\n",current); /* print reading */
}