Part No. 5964-8198 Printed in Malaysia
Microfiche No 5964-8199 March, 2002
Safety Summary
The beginning of the electronic load User’s Guide has a Safety Summary page. Be sure you are familiar
with the information on this page before programming the electronic load from a controller.
Printing History
The edition and current revision of this manual are indicated below. Reprints of this manual containing
minor corrections and updates may have the same printing date. Revised editions are identified by a new
printing date. A revised edition incorporates all new or corrected material since the previous printing date.
Changes to the manual occurring between revisions are covered by change sheets shipped with the
manual.
This document contains proprietary information protected by copyright. All rights are reserved. No part of
this document may be photocopied, reproduced, or translated into another language without the prior
consent of Agilent Technologies. The information contained in this document is subject to change without
notice.
SCPI Triggering Nomenclature 29
List Trigger Model 29
Initiating List Triggers 30
Specifying a Trigger Delay 30
Generating Transient and List Triggers 30
Making Measurements 31
Voltage and Current Measurements 31
Triggering Measurements 33
SCPI Triggering Nomenclature 33
Measurement Trigger Model 33
Initiating the Measurement Trigger System 34
Generating Measurement Triggers 34
Measuring Triggered Transients or Lists 36
Measuring Dwell-Paced Lists 37
Programming the Status Registers 38
Power-On Conditions 41
Channel Status Group 41
Channel Summary Group 41
Questionable Status Group 41
Standard Event Status Group 41
Operation Status Group 42
Status Byte Register 42
Determining the Cause of a Service Interrupt 43
Servicing Standard Event Status and Questionable Status Events 43
Programming Examples 44
CC Mode Example 44
CV Mode Example 44
CR Mode Example 45
Continuous Transient Operation Example 45
Pulsed Transient Operation Example 46
Synchronous Toggled Transient Operation Example 46
Battery Testing Example 47
Power Supply Testing Example 49
C++ Programming Example 50
4
4 - LANGUAGE DICTIONARY 53
Introduction 53
Subsystem Commands 53
Common Commands 54
Programming Parameters 54
*CLS 97
*ESE 97
Bit Configuration of Standard Event Status Enable Register 98
*ESR? 98
*IDN? 98
*OPC 98
*OPT? 99
*PSC 99
*RCL 99
*RDT? 100
*RST 100
*SAV 101
*SRE 101
*STB? 101
Bit Configuration of Status Byte Register 102
*TRG 102
*TST? 102
*WAI 102
7
A - SCPI COMMAND TREE 103
Command Syntax 103
B - ERROR MESSAGES 107
Error Number List 107
C - COMPARING N3300A ELECTRONIC LOADS WITH EARLIER MODELS 111
Introduction 111
INDEX 115
8
1
General Information
About this Guide
This manual contains programming information for the Agilent Technologies N3301A, N3302A, N3303A,
N3304A, N3305A, N3306A, and N3307A Electronic Load modules when installed in an Agilent
Technologies N3300A and N3301A Electronic Load mainframes. These units will be referred to as
"electronic load" throughout this manual. You will find the following information in the rest of this guide:
Chapter 1 Introduction to this guide.
Chapter 2 Introduction to SCPI messages structure, syntax, and data formats.
Chapter 3 Introduction to programming the electronic load with SCPI commands.
Chapter 4 Dictionary of SCPI commands.
Appendix A SCPI command tree.
Appendix B Error messages
Appendix C Comparison With Earlier Models
Documentation Summary
The following documents that are related to this Programming Guide have additional helpful information
for using the electronic load.
Quick Start Guide - located in the front part of the User's Guide. Information on how to quickly get
started using the electronic load.
User's Guide. Includes specifications and supplemental characteristics, how to use the front
panel, how to connect to the instrument, and calibration procedures.
External References
SCPI References
The following documents will assist you with programming in SCPI:
Beginner's Guide to SCPI. Part No. H2325-90001. Highly recommended for anyone who has not
had previous experience programming with SCPI.
Tutorial Description of the GPIB . Part No. 5952-0156. Highly recommended for those not familiar
with the IEEE 488.1 and 488.2 standards.
To obtain a copy of the above documents, contact your local Agilent Technologies Sales and Support
Office.
9
1 - General Information
GPIB References
The most important GPIB documents are your controller programming manuals - GW BASIC, GPIB
Command Library for MS DOS, etc. Refer to these for all non-SCPI commands (for example: Local
Lockout).
The following are two formal documents concerning the GPIB interface:
ANSI/IEEE Std. 488.1-1987 IEEE Standard Digital Interface for Programmable Instrumentation.
Defines the technical details of the GPIB interface. While much of the information is beyond the
need of most programmers, it can serve to clarify terms used in this guide and in related
documents.
ANSI/IEEE Std. 488.2-1987 IEEE Standard Codes, Formats, Protocols, and Common
Commands. Recommended as a reference only if you intend to do fairly sophisticated
programming. Helpful for finding precise definitions of certain types of SCPI message formats,
data types, or common commands.
The above two documents are available from the IEEE (Institute of Electrical and Electronics Engineers),
345 East 47th Street, New York, NY 10017, USA.
VXIplug&play Power Products Instrument Drivers
VXIplug&play instrument drivers for Microsoft Windows 95 and Windows NT are now available on the
Web at http://www.agilent.com/find/drivers. These instrument drivers provide a high-level programming
interface to your Agilent Technologies electronic load. VXIplug&play instrument drivers are an alternative
to programming your instrument with SCPI command strings. Because the instrument driver's function
calls work together on top of the VISA I/O library, a single instrument driver can be used with multiple
application environments.
Supported Applications
y Agilent VEE
y Microsoft Visual BASIC
y Microsoft Visual C/C++
y Borland C/C++
y National Instruments LabVIEW
y National Instruments LabWindows/CVI
System Requirements
The VXIplug&play instrument driver complies with the following:
y Microsoft Windows 95
y Microsoft Windows NT 4.0
y HP VISA revision F.01.02
y National Instruments VISA 1.1
Downloading and Installing the Driver
NOTE: Before installing the VXIplug&play instrument driver, make sure that you have one of the
supported applications installed and running on your computer.
10
General Information - 1
1. Access Agilent Technologies W eb site at http://www.agilent.com/find/drivers.
2. Select the instrument for which you need the driver.
3. Click on the driver, either Windows 95 or Windows NT, and download the executable file to your
PC.
4. Locate the file that you downloaded from the Web. From the Start menu select Run
<path>:\agxxxx.exe - where <path> is the directory path where the file is located, and agxxxx is
the instrument driver that you downloaded .
5. Follow the directions on the screen to install the software. The default installation selections will
work in most cases. The readme.txt file contains product updates or corrections that are not
documented in the on-line help. If you decide to install this file, use any text editor to open and
read it.
6. To use the VXIplug&play instrument driver, follow the directions in the VXIplug&play online help
for your specific driver under “Introduction to Programming”.
Accessing Online Help
A comprehensive online programming reference is provided with the driver. It describes how to get
started using the instrument driver with Agilent VEE, LabVIEW, and LabWindows. It includes complete
descriptions of all function calls as well as example programs in C/C++ and Visual BASIC.
y To access the online help when you have chosen the default Vxipnp start folder, click on the Start
button and select Programs | Vxipnp | Agxxxx Help (32-bit).
- where Agxxxx is the instrument driver.
11
Introduction to Programming
GPIB Capabilities of the Electronic Load
All electronic load functions except for setting the GPIB address are programmable over the GPIB. The
IEEE 488.2 capabilities of the electronic load are described in Table 2-1. Refer to Appendix A of your
User's Guide for its exact capabilities.
Table 2-1. IEEE 488 Capabilities of Electronic Loads
GPIB Capabilities Response Interface
Function
Talker/Listener
Service Request The electronic load sets the SRQ line true if there is an enabled
Remote/Local
Device Trigger
Group Execute
Trigger
Device Clear
All electronic load functions except for setting the GPIB address are
programmable over the GPIB. The electronic load can send and
receive messages over the GPIB. Status information is sent using a
serial poll. Front panel annunciators indicate the present GPIB state
of the electronic load.
service request condition. Refer to Chapter 3 - Status Reporting for
more information.
In local mode, the electronic load is controlled from the front panel
but will also execute commands sent over the GPIB. The electronic
load powers up in local mode and remains in local mode until it
receives a command over the GPIB. Once the electronic load is in
remote mode the front panel RMT annunciator is on, all front panel
keys (except
metering mode. Pressing
electronic load to local mode.
lockout so that only the controller or the power switch can return the
electronic load to local mode.
The electronic load will respond to the device trigger function. DT1
The electronic load will respond to the group execute trigger function. GET
The electronic load responds to the Device Clear (DCL) and
Selected Device Clear (SDC) interface commands. They cause the
electronic load to clear any activity that would prevent it from
receiving and executing a new command (including *WAI and
*OPC?). DCL and SDC do not change any programmed settings.
) are disabled, and the display is in normal
on the front panel returns the
can be disabled using local
AH1, SH1,
T6. L4
SR1
RL1
DCL, SDC
2
GPIB Address
The electronic load operates from a GPIB address that is set from the front panel. To set the GPIB
address, press the Address key on the front panel and enter the address using the Entry keys. The
address can be set from 0 to 30. The GPIB address is stored in non-volatile memory.
13
2 - Introduction to Programming
RS-232 Capabilities of the Electronic Load
The electronic load provides an RS-232 programming interface, which is activated by commands located
under the front panel Address key. All SCPI commands are available through RS-232 programming.
When the RS-232 interface is selected, the GPIB interface is disabled.
The EIA RS-232 Standard defines the interconnections between Data Terminal Equipment (DTE) and
Data Communications Equipment (DCE). The electronic load is designed to be a DTE. It can be
connected to another DTE such as a PC COM port through a null modem cable.
NOTE:The RS-232 settings in your program must match the settings specified in the front panel
Address menu. Press the front panel Address key if you need to change the settings.
RS-232 Data Format
The RS-232 data is a 10-bit word with one start bit and one stop bit. The number of start and stop bits is
not programmable. However, the following parity options are selectable using the front panel Address key:
EVEN
ODD
MARK
SPACE
NONE
Parity options are stored in non-volatile memory.
Baud Rate
The front panel Address key lets you select one of the following baud rates, which is stored in non-volatile
memory:
300 600 1200 2400 4800 9600
Seven data bits with even parity
Seven data bits with odd parity
Seven data bits with mark parity (parity is always true)
Seven data bits with space parity (parity is always false)
Eight data bits without parity
RS-232 Flow Control
The RS-232 interface supports the following flow control options that are selected using the front panel
Address key. For each case, the electronic load will send a maximum of five characters after holdoff is
asserted by the controller. The electronic load is capable of receiving as many as fifteen additional
characters after it asserts holdoff.
RTS-CTS
NONE
Flow control options are stored in non-volatile memory.
The electronic load asserts its Request to Send (RTS) line to signal hold-off
when its input buffer is almost full, and it interprets its Clear to Send (CTS)
line as a hold-off signal from the controller.
There is no flow control.
14
Introduction to Programming - 2
Introduction to SCPI
SCPI (Standard Commands for Programmable Instruments) is a programming language for controlling
instrument functions over the GPIB and RS-232 interface. SCPI is layered on top of the hardware-portion
of IEEE 488.2. The same SCPI commands and parameters control the same functions in different classes
of instruments.
Conventions Used in This Guide
Angle brackets < > Items within angle brackets are parameter abbreviations. For example,
<NR1> indicates a specific form of numerical data.
Vertical bar | Vertical bars separate alternative parameters. For example, NORM | TEXT
indicates that either "TEXT" or "NORM" can be used as a parameter.
Square Brackets [ ] Items within square brackets are optional. The representation [SOURce:].
VOLTage means that SOURce: may be omitted.
Braces { } Braces indicate parameters that may be repeated zero or more times. It is
used especially for showing arrays. The notation <A>{<,B>} shows that
parameter "A" must be entered, while parameter "B" may be omitted or
may be entered one or more times.
Computer font Computer font is used to show program lines in text.
OUTPUT 723 "TRIGger:COUNt:CURRent 10" shows a program line.
Types of SCPI Commands
SCPI has two types of commands, common and subsystem.
♦ Common commands generally are not related to specific operation but to controlling overall
electronic load functions, such as reset, status, and synchronization. All common commands
consist of a three-letter mnemonic preceded by an asterisk: *RST *IDN? *SRE 8
♦ Subsystem commands perform specific electronic load functions. They are organized into an
inverted tree structure with the "root" at the top. The following figure shows a portion of a
subsystem command tree, from which you access the commands located along the various
paths. You can see the complete tree in Appendix A.
ROOT
:CURRent[:LEVel]
:MODE
:PROTection
:STATus
:OPERation[:EVENt]?
[:IMMediate]
[:LEVel]
:DELay
Figure 2-1. Partial Command Tree
:CONDition?
15
2 - Introduction to Programming
Multiple Commands in a Message
Multiple SCPI commands can be combined and sent as a single message with one message terminator.
There are two important considerations when sending several commands within a single message:
♦ Use a semicolon to separate commands within a message.
♦ There is an implied header path that affects how commands are interpreted by the electronic load.
The header path can be thought of as a string that gets inserted before each command within a message.
For the first command in a message, the header path is a null string. For each subsequent command the
header path is defined as the characters that make up the headers of the previous command in the
message up to and including the last colon separator. An example of a message with two commands is:
CURR:LEV 3;PROT:STAT OFF
which shows the use of the semicolon separating the two commands, and also illustrates the header path
concept. Note that with the second command, the leading header "CURR" was omitted because after the
"CURR:LEV 3" command, the header path became defined as "CURR" and thus the instrument
interpreted the second command as:
CURR:PROT:STAT OFF
In fact, it would have been syntactically incorrect to include the "CURR" explicitly in the second command,
since the result after combining it with the header path would be:
CURR:CURR:PROT:STAT OFF
which is incorrect.
Moving Among Subsystems
In order to combine commands from different subsystems, you need to be able to reset the header path to
a null string within a message. You do this by beginning the command with a colon (:), which discards any
previous header path. For example, you could clear the output protection and check the status of the
Operation Condition register in one message by using a root specifier as follows:
The following message shows how to combine commands from different subsystems as well as within the
same subsystem:
VOLTage:LEVel 20;PROTection 28; :CURRent:LEVel 3;PROTection:STATe ON
Note the use of the optional header LEVel to maintain the correct path within the voltage and current
subsystems, and the use of the root specifier to move between subsystems.
Including Common Commands
You can combine common commands with subsystem commands in the same message. Treat the
common command as a message unit by separating it with a semicolon (the message unit separator).
Common commands do not affect the header path; you may insert them anywhere in the message.
VOLTage:TRIGgered 17.5;:INITialize;*TRG
OUTPut OFF;*RCL 2;OUTPut ON
16
Introduction to Programming - 2
Using Queries
Observe the following precautions with queries:
♦ Set up the proper number of variables for the returned data. For example, if you are reading back
a measurement array, you must dimension the array according to the number of measurements
that you have placed in the measurement buffer.
♦ Read back all the results of a query before sending another command to the electronic load.
Otherwise a Query Interrupted error will occur and the unreturned data will be lost.
Types of SCPI Messages
There are two types of SCPI messages, program and response.
♦ A program message consists of one or more properly formatted SCPI commands sent from the
controller to the electronic load. The message, which may be sent at any time, requests the
electronic load to perform some action.
♦ A response message consists of data in a specific SCPI format sent from the electronic load to
the controller. The electronic load sends the message only when commanded by a program
message called a "query."
The following figure illustrates SCPI message structure:
Data
Headers
Header Separator
Message Unit Separators
Figure 2-2. Command Message Structure
Message Unit
;
Query Indicator
; : CURR?
Message Terminator
Root Specifier
<NL>VOLT:LEV 20TLEV 30
The Message Unit
The simplest SCPI command is a single message unit consisting of a command header (or keyword)
followed by a message terminator. The message unit may include a parameter after the header. The
parameter can be numeric or a string.
ABORt<NL>
VOLTage 20<NL>
Headers
Headers, also referred to as keywords, are instructions recognized by the electronic load. Headers may be
either in the long form or the short form. In the long form, the header is completely spelled out, such as
VOLTAGE, STATUS, and DELAY. In the short form, the header has only the first three or four letters,
such as VOLT, STAT, and DEL.
17
2 - Introduction to Programming
Query Indicator
Following a header with a question mark turns it into a query (VOLTage?, VOLTage:PROTection?). If a
query contains a parameter, place the query indicator at the end of the last header
(VOLTage:PROTection? MAX).
Message Unit Separator
When two or more message units are combined into a compound message, separate the units with a
semicolon (STATus:OPERation?;QUEStionable?).
Root Specifier
When it precedes the first header of a message unit, the colon becomes the root specifier. It tells the
command parser that this is the root or the top node of the command tree.
Message Terminator
A terminator informs SCPI that it has reached the end of a message. Three permitted messages
terminators are:
♦ newline (<NL>), which is ASCII decimal 10 or hex 0A.
♦ end or identify (<END>)
♦ both of the above (<NL><END>).
In the examples of this guide, there is an assumed message terminator at the end of each message.
NOTE:All RS-232 response data sent by the electronic load is terminated by the ASCII character
pair <carriage return><newline>. This differs from GPIB response data which is
terminated by the single character <newline> with EOI asserted.
SCPI Data Formats
All data programmed to or returned from the electronic load is ASCII. The data may be numerical or
character string.
Numerical Data Formats
Symbol Data Form
Talking Formats
<NR1> Digits with an implied decimal point assumed at the right of the least-significant digit.
Examples: 273
<NR2>
<NR3>
Listening Formats
<Nrf>
<Nrf+>
<Bool>
Digits with an explicit decimal point. Example: .0273
Digits with an explicit decimal point and an exponent. Example: 2.73E+2
Extended format that includes <NR1>, <NR2> and <NR3>. Examples: 273 273. 2.73E2
Expanded decimal format that includes <NRf> and MIN MAX. Examples: 273 273.
2.73E2 MAX. MIN and MAX are the minimum and maximum limit values that are
implicit in the range specification for the parameter.
Boolean Data. Example: 0 | 1 or ON | OFF
18
Introduction to Programming - 2
Suffixes and Multipliers
Class Suffix Unit Unit with Multiplier
Amplitude V volt MV (millivolt)
Current A ampere MA (milliampere)
Power W watt MW (milliwatt)
Resistance OHM ohm MOHM (megohm)
Slew Rate A/s
R/s
V/s
Time s second MS (millisecond)
1E3 K kilo
1E-3 M milli
1E-6 U micro
amps/second
ohms/second
volts/second
Common Multipliers
Response Data Types
Character strings returned by query statements may take either of the following forms, depending on the
length of the returned string:
<CRD>
<AARD>
<SRD>
Character Response Data. Permits the return of character strings.
Arbitrary ASCII Response Data. Permits the return of undelimited 7-bit ASCII. This data type
has an implied message terminator.
String Response Data. Returns string parameters enclosed in double quotes.
SCPI Command Completion
SCPI commands sent to the electronic load are processed either sequentially or in parallel. Sequential
commands finish execution before a subsequent command begins. Parallel commands allow other
commands to begin executing while the parallel command is still executing. Commands that affect trigger
actions are among the parallel commands.
The *WAI, *OPC, and *OPC? common commands provide different ways of indicating when all
transmitted commands, including any parallel ones, have completed their operations. The syntax and
parameters for these commands are described in chapter 4. Some practical considerations for using
these commands are as follows:
*WAI
*OPC?
*OPC
This prevents the electronic load from processing subsequent commands until all
pending operations are completed.
This places a 1 in the Output Queue when all pending operations have completed.
Because it requires your program to read the returned value before executing the next
program statement, *OPC? can be used to cause the controller to wait for commands
to complete before proceeding with its program.
This sets the OPC status bit when all pending operations have completed. Since your
program can read this status bit on an interrupt basis, *OPC allows subsequent
commands to be executed.
NOTE:The trigger system must be in the Idle state in order for the status OPC bit to be true.
Therefore, as far as triggers are concerned, OPC is false whenever the trigger system is
in the Initiated state.
19
2 - Introduction to Programming
Using Device Clear
You can send a device clear at any time to abort a SCPI command that may be hanging up the GPIB
interface. The status registers, the error queue, and all configuration states are left unchanged when a
device clear message is received. Device clear performs the following actions:
♦ The input and output buffers of the electronic load are cleared.
♦ The electronic load is prepared to accept a new command string.
The following statement shows how to send a device clear over the GPIB interface using GW BASIC:
CLEAR 705IEEE-488 Device Clear
The following statement shows how to send a device clear over the GPIB interface using the GPIB
command library for C or QuickBASIC:
IOCLEAR (705)
NOTE:For RS-232 operation, sending a Break will perform the same operation as the IEEE-488
device clear message.
RS-232 Troubleshooting
If you are having trouble communicating over the RS-232 interface, check the following:
♦ The computer and the electronic load must be configured for the same baud rate, parity, number
of data bits, and flow control options. Note that the electronic load is configured for 1 start bit and
1 stop bit (these values are fixed).
♦ The correct interface cables or adapters must be used, as described under RS-232 Connector.
Note that even if the cable has the proper connectors for your system, the internal wiring may be
incorrect.
♦ The interface cable must be connected to the correct serial port on your computer (COM1, COM2,
etc.).
20
Introduction to Programming - 2
SCPI Conformance Information
SCPI Conformed Commands
The Electronic Load conforms to SCPI Version 1995.0.
This chapter contains examples on how to program your electronic load. Simple examples show you how
to program:
Input functions such as voltage, current, and resistance
Transient functions, including lists
Measurement functions
The status and protection functions
NOTE:These examples in this chapter show which commands are used to perform a particular
function, but do not show the commands being used in any particular programming
environment.
Programming the Input
Power-on Initialization
When the electronic load is first turned on, it wakes up with the input state set OFF. The following
commands are given implicitly at power-on:
*RST
*CLS
*SRE 0
*ESE 0
*RST is a convenient way to program all parameters to a known state. Refer to the *RST command in
chapter 4 to see how each programmable parameter is set by *RST. Refer to the *PSC command in
chapter 4 for more information on the power-on initialization of the *ESE and the *SRE registers.
Enabling the Input
To enable the input, use the command:
INPut ON
Input Voltage
The input voltage is controlled with the VOLTage command. For example, to set the input voltage to 25
volts, use:
VOLTage 25
23
3 - Programming Examples
Maximum Voltage
The maximum input voltage that can be programmed can be queried with:
VOLTage? MAXimum
Input Current
All models have a programmable current function. The command to program the current is:
CURRent <n>
where <n> is the input current in amperes.
Maximum Current
The maximum input current that can be programmed can be queried with:
CURRent? MAXimum
Overcurrent Protection
The electronic load can also be programmed to turn off its input if the current protection level is reached.
As explained in chapter 4, this protection feature is implemented the following command:
CURRent:PROTection:STATe ON | OFF
NOTE:Use CURRent:PROTection:DELay to prevent momentary current limit conditions caused
by programmed input changes from tripping the overcurrent protection.
Setting the Triggered Voltage or Current Levels
To program voltage or current triggered levels, you must specify the voltage or current level that the input
will go to once a trigger signal is received. Use the following commands to set a triggered level:
VOLTage:TRIGgered <n> or
CURRent:TRIGgered <n>
NOTE:Until they are explicitly programmed, triggered levels will assume their corresponding
immediate levels. For example, if a electronic load is powered up and VOLTage:LEVel is
programmed to 6, then VOLTage:LEVel:TRIGger will also be 6 until you program it to
another value. Once you program VOLTage:LEVel:TRIGger to a value, it will remain at
that regardless of how you subsequently reprogram VOLTage:LEVel. Then, when the
trigger occurs, the VOLTage:LEVel is set to the VOLTage:LEVel:TRIGger value.
Generating Triggers
You can generate a single trigger by sending the following command over the GPIB:
TRIGger:IMMediate
Note that this command will always generate a trigger. Use the TRIGger:SOURce command to select
other trigger sources such as the mainframe's external trigger input.
24
Programming Examples - 3
Programming Transients
Transient operation is used to synchronize input changes with internal or external trigger signals, and
simulate loading conditions with precise control of timing, duration, and slew. The following transient
modes can be generated:
Continuous
Pulse
Toggled
NOTE: Before turning on transient operation, set the desired mode of operation as well as all of
Generates a repetitive pulse stream that toggles between two load levels.
Generates an load change that returns to its original state after some time period.
Generates a repetitive pulse stream that toggles between two load levels. Similar to
Continuous mode except that the transient points are controlled by explicit triggers
instead of an internal transient generator.
the parameters associated with transient operation. At *RST all transient functions are set
to OFF.
Continuous Transients
In continuous operation, a repetitive pulse train switches between two load levels, a main level (which can
be either the immediate or triggered level) and a transient level. The rate at which the level changes is
determined by the slew rate (see slew rate descriptions for CV, CR, or CV mode as applicable). In
addition, the frequency and duty cycle of the continuous pulse train are programmable. Use the following
commands to program continuous transients:
TRANsient:MODE CONTinuous
CURRent 5
CURRent:TLEVel 10
TRANsient:FREQuency 1000
TRANsient:DCYCle 40
TRANsient ON
This example assumes that the CC mode is active and the slew rate is at the default setting (maximum
rate). The load module starts conduction at the main level (in this case 5 amps). When transient
operation is turned on (no trigger is required in continuous mode), the module input current will slew to
and remain at 10 amps for 40% of the period (400 µs). The input current will then slew to and remain at 5
amps for the remaining 60% (600 µs) of that cycle.
Pulse Transients
Pulsed transient operation generates a load change that returns to its original state after some time
period. It is similar to continuous operation with the following exceptions:
a. To get a pulse, an explicit trigger is required. To specify the trigger source, use
TRIGger:SOURce. See "Triggering Transients".
b. One pulse results from each trigger. Therefore, frequency cannot be programmed.
Use the following commands to program pulsed transients:
25
3 - Programming Examples
TRIGger:SOURce EXTernal
TRANsient:MODE PULSe
CURRent 5
CURRent:TLEVel 10
TRANsient:TWIDth .01
TRANsient ON
This example assumes that the CC mode is active, the slew rate is at the factory default setting
(maximum rate), and a trigger signal is connected to the mainframe's external trigger input. The load
module starts conduction at the main current level setting (5 amps). When the transient mode is turned
on and an external trigger signal is received, the input level starts increasing at a rate determined by the
slew rate. When the value specified by the transient level setting (10 amps) is reached, it stays there for
the remainder of the time determined by the pulse width setting (10 milliseconds). After this time has
elapsed, the input level decreases to the main level again at the rate specified by the slew setting and
remains there until another trigger is received. Any triggers that occur during the time the transient level is
in effect will re-trigger the pulse, extending the pulse by another pulse-width value.
Toggled Transients
Toggled transient operation causes the module input to alternate between two pre-defined levels as in
continuous operation except that the transient transitions are controlled by explicit triggers instead of the
internal transient generator. See "Triggering Transients". Use the following commands to program toggled
transients:
TRIGger:SOURce EXTernal
TRANsient:MODE TOGGle
CURRent 5
CURRent:TLEVel 10
TRANsient ON
This example assumes that the CC mode is active, the slew rate is at the factory default setting
(maximum rate), and a trigger signal is connected to the mainframe's external trigger input. Toggled
transient operation is similar to that described for continuous and pulse operation, except that each time a
trigger is received the input alternates between the main and transient input current levels.
Programming Lists
List mode lets you generate complex sequences of input changes with rapid, precise timing, which may be
synchronized with internal or external signals. This is useful when running test sequences with a minimum
amount of programming overhead.
You can program up to 50 settings (or steps) in the list, the time interval (dwell) that each setting is
maintained, the number of times that the list will be executed, and how the settings change in response to
triggers. All list data is can be stored in nonvolatile memory when saved in locations 0, 7, 8, or 9 using the
*SAV command. This means that the programmed data for any list will be retained when the electronic
load is turned off. Use the *RCL command to recall the saved state. *RST clears the presently active list
but will not clear the lists saved in locations 0, 7, 8, or 9.
List steps can be either individually triggered, or paced by a separate list of dwell times that define the
duration of each step. Therefore, each of the up to 50 steps has an associated dwell time, which specifies
the time (in seconds) that the input remains at that step before moving on to the next step. The following
procedure shows how to generate a simple 9-step list of current and voltage changes.
26
Programming Examples - 3
Step 1
Step 2
Set the mode of each function that will participate in the sequence to LIST. For example:
CURRent:MODE LIST
Program the list of input values for each function. The list commands take a comma-separated
list of arguments. The order in which the arguments are given determines the sequence in
which the values will be input. For example, to vary the input current of the electronic load to
simulate a 25%, 50%, and 100% load, a list may include the following values:
You must specify a list for all current functions, whether or not the functions will be used. For
example, to synchronize the previous current list with another list that varies the slew rate from
0.01A/µs, to 0.1A/µs, to 1A/µs (programmed in A/s), the lists may include the following values:
All lists must have the same number of data values or points, or an error will occur when the list
system that starts the sequence is initiated. The exception is when a list has only one item or
point. In this case the single-item list is treated as if it had the same number of points as the
other lists, with all values being equal to the one item. For example:
LIST:CURRent 15, 30, 45, 60;SLEW 1E+6
is the same as:
LIST:CURRent 15, 30, 45, 60
LIST:CURRent:SLEW 1E+6, 1E+6, 1E+6, 1E+6
Step 3
Step 4
Step 5
Determine the time interval that the input remains at each level or point in the list before it
advances to the next point. The time is specified in seconds. For example, to specify five dwell
intervals, use:
LIST:DWELl 1, 1.5, 2, 2.5, 3
The number of dwell points must equal the number of input points. If a dwell list has only one
value, that value will be applied to all points in the input list.
Determine the number of times the list is repeated before it completes. For example, to repeat a
list 10 times use:
LIST:COUNt 10
Entering INFinity makes the list repeat indefinitely. At *RST, the count is set to 1.
Determines how the list sequencing responds to triggers. For a closely controlled sequence of
input levels, you can use a dwell-paced list. To cause the list to be paced by dwell time use:
LIST:STEP AUTO
As each dwell time elapses, the next point is immediately input. This is the *RST setting.
If you need the input to closely follow asynchronous events, then a trigger-paced list is more
appropriate. In a trigger-paced list, the list advances one point for each trigger received. To
enable trigger-paced lists use:
LIST:STEP ONCE
The dwell time of each point determines the minimum time that the input remains at that point.
If a trigger is received before the previous dwell time completes, the trigger is ignored.
Therefore, to ensure that no triggers are lost, program the dwell time to "MIN".
Step 6
Use the list trigger system to trigger the list. See "Triggering Transients and Lists".
27
3 - Programming Examples
Programming Lists for Multiple Channels
You can program separate lists for individual channels on a load mainframe. Once lists have been
programmed for each channel, they can all be triggered at the same time using the list trigger system.
NOTE:All lists must have the same number of data values or points, or an error will occur when
the list system that starts the sequence is initiated.
Step 1
Step 2
Step 3
Step 4
Select the channel for which you want to program the list. All subsequent list commands will be
sent to this channel until another channel is selected.
CHANnel 1
Program the list of values for each function for that channel. The list commands take a commaseparated list of arguments. For example:
Select the next channel for which you want to program a list. All subsequent list commands will
now be sent to this channel.
CHANnel 2
Program the list of values for each function for that channel. You can program different
functions for each channel, however all functions must have the same number of steps
Add other list functions. You do not have to program the same number of functions for each
channel.
Step 5
Step 6
Repeat steps 3 and 4 for any other channel that you wish to program.
Use the list trigger system to trigger the list. This is described under "Triggering Transients and
Lists".
28
Programming Examples - 3
Triggering Transients and Lists
Continuous, pulse, and toggled transient modes respond to triggers as soon as the trigger is received.
This is not the case for lists. Lists have an independent trigger system that is similar to the measurement
trigger system. This section describes the list trigger system. The measurement trigger system is
described under "Triggering Measurements".
SCPI Triggering Nomenclature
In SCPI terms, trigger systems are called sequences. When more than one trigger system exists, they are
differentiated by naming them SEQuence1 and SEQuence2. SEQuence1 is the list trigger system and
SEQuence2 is the measurement trigger system. The electronic load uses aliases with more descriptive
names for these sequences. These aliases can be used instead of the sequence forms.
Sequence Form Alias
SEQuence1 LIST
SEQuence2 ACQuire
List Trigger Model
Figure 3-3 is a model of the list trigger system. The rectangles represent states. The arrows show the
transitions between states. These are labeled with the input or event that causes the transition to occur.
INITiate:CONTinuous OFF
INITiate:CONTinuous ON
or
List not complete and
LIST:STEP ONCE
INITIATED STATE
DELAYING STATE
LIST STEP CHANGE
NO
WAIT FOR DWELL
TO COMPLETE
IDLE STATE
LIST:STEP
AUTO?
YES
ABORt
*RST
*RCL
INITiate[:IMMediate]
TRIGGER RECEIVED
DELAY COMPLETED
Figure 3-3. Model of List Triggers
29
3 - Programming Examples
Initiating List Triggers
When the electronic load is turned on, the list trigger system is in the idle state. In this state, the list
system ignores all triggers. Sending the following commands at any time returns the list system to the Idle
state:
ABORt
*RST
*RCL
The INITiate commands move the list system from the Idle state to the Initiated state. This enables the
list system to receive triggers. INITiate commands are not channel-specific, they affect all installed load
modules. To initiate the list system for a single triggered action, use:
INITiate:SEQuence1 or
INITiate:NAME LIST
NOTE:Whenever a list is initiated or triggered, the φ1 annunciator is lit on the front panel.
After a trigger is received and the action completes, the list system will return to the Idle state. Thus it will
be necessary to initiate the list system each time a triggered action is desired.
To keep the list system initiated for multiple actions without having to send an Initiate command for each
trigger, use:
INITiate:CONTinuous:SEQuence1 ON or
INITiate:CONTinuous:NAME LIST, ON
Specifying a Trigger Delay
A time delay can be programmed betweent he receipt of the trigger system and the start of the triggered
action. This delay applies to both list and measurement triggers. At *RST the trigger delay is set to 0,
which mens there is no trigger delay. To program a trigger delay use:
TRIGger:DELay <n>
Generating Transient and List Triggers
Use one of the following triggering methods to generate transients and lists:
TRIGger:SOURce BUS | EXTernal | HOLD | LINE | TIMer
After you have specified the appropriate trigger source, you can generate triggers as follows:
Single triggers over
the bus
Continuous triggers
synchronized with the
ac line frequency
Continuous triggers
synchronized with the
internal timer
Send one of the following commands over the GPIB:
TRIGger:IMMediate
*TRG
a group execute trigger
Send the following command over the GPIB:
TRIGger:SOURce LINE
Send the following commands over the GPIB:
TRIGger:TIMer <time>
TRIGger:SOURce TIMer
External trigger
Apply a low to high signal to the external trigger input at the back of the
mainframe.
30
Programming Examples - 3
Making Measurements
The electronic load has the ability to make several types of voltage or current measurements. The
measurement capabilities of the electronic load are particularly useful with applications that draw current
in pulses.
All measurements are performed by digitizing the instantaneous input voltage or current for a defined
number of samples and sample interval, storing the results in a buffer, and then calculating the measured
result. Many parameters of the measurement are programmable. These include the number of samples,
the time interval between samples, and the method of triggering. Note that there is a tradeoff between
these parameters and the speed, accuracy, and stability of the measurement in the presence of noise.
There are two ways to make measurements:
♦ Use the MEASure commands to immediately start acquiring new voltage or current data, and
return measurement calculations from this data as soon as the buffer is full. This is the easiest
way to make measurements, since it requires no explicit trigger programming.
♦ Use an acquisition trigger to acquire the data. Then use the FETCh commands to return
calculations from the data that was retrieved by the acquisition trigger. This method gives you the
flexibility to synchronize the data acquisition with a trigger. FETCh commands do not trigger the
acquisition of new measurement data, but they can be used to return many different calculations
from the data that was retrieved by the acquisition trigger.
Making triggered measurements with the acquisition trigger system is discussed under "Triggering
Measurements".
NOTE:For each MEASure form of the query, there is a corresponding query that begins with the
header FETCh. FETCh queries perform the same calculation as their MEASure
counterparts, but do not cause new data to be acquired. Data acquired by an explicit
trigger or a previously programmed MEASure command are used.
Voltage and Current Measurements
The SCPI language provides a number of MEASure and FETCh queries, which return various
measurement parameters of voltage and current waveforms.
DC Measurements
To measure the dc input voltage or current, use:
MEASure:VOLTage? or
MEASure:CURRent?
DC voltage and current is measured by acquiring a number of readings at the selected time interval,
optionally applying a Hanning window function to the readings, and averaging the readings. Windowing is
a signal conditioning process that reduces the error in dc measurements made in the presence of periodic
signals such as line ripple. At power-on and after a *RST command, the following parameters are set:
SENSe:SWEep:TINTerval 10E-6
SENSe:SWEep:POINts 1000
This results in a data acquisition time of 10 milliseconds. Adding a command processing overhead of
about 20 milliseconds results in a total measurement time of about 30 milliseconds per measurement
sample.
31
3 - Programming Examples
Ripple rejection is a function of the number of cycles of the ripple frequency contained in the acquisition
window. More cycles in the acquisition window results in better ripple rejection. If you increase the time
interval for each measurement to 45 microseconds for example, this results in 5.53 cycles in the
acquisition window at 60 Hz, for a ripple rejection of about 70 dB.
Note that the processing overhead time will vary, depending on the number of measurement samples. If
you reduce the number of sample points, you will also reduce the command processing overhead. If you
increase the number of sample point (up to a maximum of 4096) you increase the command processing
overhead.
RMS Measurements
To read the rms content of a voltage or current waveform, use:
MEASure:VOLTage:ACDC? or
MEASure:CURRent:ACDC?
This returns the total rms measurement, including the dc portion.
Minimum and Maximum Measurements
To measure the maximum or minimum voltage or current of a pulse or ac waveform, use:
MEASure:VOLTage:MAXimum?
MEASure:VOLTage:MINimum?
MEASure:CURRent:MAXimum?
MEASure:CURRent:MINimum?
Measurement Ranges
The electronic load has two current and two voltage measurement ranges. The commands that control the
measurement ranges are:
SENSe:CURRent:RANGe MIN | MAX
SENSe:VOLTage:RANGe MIN | MAX
When the range is set to MAX, the maximum current or voltage that can be measured is a function of the
current and voltage rating of the load module that is being programmed (see Table 4-1).
Returning Measurement Data From the Data Buffer
The MEASure and FETCh queries can also return all data values of the instantaneous voltage or current
buffer. The commands are:
FETCh:ARRay:CURRent?
FETCh:ARRay:VOLTage?
This is a useful feature if, for example, you have entered multiple measurements into the buffer as a result
of measuring the response to a triggered list. Data is returned from the buffer in the same order in which it
was entered into the buffer. Refer to "Synchronizing Transients and Measurements" for more information.
32
Programming Examples - 3
Triggering Measurements
You can use the data acquisition trigger system to synchronize the timing of the voltage and current data
acquisition with a trigger source. Then use the FETCh commands to return different calculations from the
data acquired by the measurement trigger.
SCPI Triggering Nomenclature
In SCPI terms, trigger systems are called sequences. When more than one trigger system exists, they are
differentiated by naming them SEQuence1 and SEQuence2. SEQuence1 is the list trigger system and
SEQuence2 is the measurement trigger system. The electronic load uses aliases with more descriptive
names for these sequences. These aliases can be used instead of the sequence forms.
Sequence Form Alias
SEQuence2 ACQuire
Measurement Trigger Model
Figure 3-1 is a model of the measurement trigger system. The rectangular boxes represent states. The
arrows show the transitions between states. These are labeled with the input or event that causes the
transition to occur.
IDLE STATE
INITIATED STATE
DELAYING STATE
SENSe:SWEep:POINts
ACQUIRED
NO
TRIGger:COUNt
COMPLETE?
YES
ABORt
*RST
*RCL
INITiate[:IMMediate]
TRIGGER RECEIVED
DELAY COMPLETED
Figure 3-1. Model of Measurement Triggers
33
3 - Programming Examples
Initiating the Measurement Trigger System
When the electronic load is turned on, the trigger system is in the idle state. In this state, the trigger
system ignores all triggers. Sending the following commands at any time returns the trigger system to the
Idle state:
ABORt
*RST
*RCL
The INITiate commands move the trigger system from the Idle state to the Initiated state. This enables the
electronic load to receive triggers. INITiate commands are not channel-specific, they affect all installed
load modules. To initiate a measurement trigger, use:
INITiate:SEQuence2 or
INITiate:NAME ACQuire
After a trigger is received and the data acquisition completes, the trigger system will return to the Idle state
unless multiple measurements are programmed using the TRIGger:SEQuence2:COUNt command. Thus
it will be necessary to initiate the system each time a triggered acquisition is desired.
NOTE:You cannot initiate measurement triggers continuously. Otherwise, the measurement data
in the data buffer would continuously be overwritten.
Generating Measurement Triggers
Use one of the following triggering methods to generate measurements:
TRIGger:SOURce BUS | EXTernal | HOLD | LINE | TIMer
After you have specified the appropriate source, you can generate measurement triggers as follows:
Single triggers over
the bus
Continuous triggers
synchronized with the
ac line frequency
Continuous triggers
synchronized with the
internal timer
External trigger
When the acquisition finishes, any of the FETCh queries can be used to return the results. Once the
measurement trigger is initiated, if a FETCh query is sent before the data acquisition is triggered or before
it is finished, the response data will be delayed until the trigger occurs and the acquisition completes. This
may tie up the controller if the trigger condition does not occur immediately.
Send one of the following commands over the GPIB:
TRIGger:IMMediate (this overrides TRIG:SOUR HOLD)
*TRG
a group execute trigger
Send the following command over the GPIB:
TRIGger:SOURce LINE
Send the following commands over the GPIB:
TRIGger:TIMer <time>
TRIGger:SOURce TIMer
Apply a low to high signal to the external trigger input at the back of the
mainframe.
One way to wait for results without tying up the controller is to use the SCPI command completion
commands. For example, you can send the *OPC command after INITialize, then occasionally poll the
OPC status bit in the standard event status register for status completion while doing other tasks. You can
also set up an SRQ condition on the OPC status bit going true, and do other tasks until an SRQ interrupt
occurs.
34
Programming Examples - 3
Controlling Measurement Samples
Varying the Sampling Rate
You can vary both the number of data points in a measurement sample, as well as the time between
samples. You can also specify a delay from the trigger to the start of the measurement. This is illustrated
in the following figure.
SENS:SWE:POIN <value>
SENS:SWE:TINT <value>
SENS:SWE:OFFS <value>
Trigger1Trigger2Trigger4Trigger3
TRIG:SEQ2:COUN <value>
Figure 3-2. Sense Commands Used to Vary the Sampling Rate
At power-on, the input voltage and current sampling rate is 10 microseconds. This means that, not
accounting for the command processing overhead, it takes about 41 milliseconds to fill up 4096 data
points in the data buffer. You can vary this data sampling rate with:
For example, to set the time interval to 50 microseconds per sample with 500 samples, use:
SENSe:SWEep:TINTerval 50E-6;POINts 500.
Measurement Delay
You can delay the start of a measurement in relation to the trigger. This is useful if you do not want to start
taking measurements at the beginning of an input transient or list step during the time that the input
voltage or current is still slewing or settling into its programmed value. To offset the measurement from
the beginning of the input transient or list step, use:
SENSe:SWEep:OFFSet 10E-3
In this example, the measurement occurs 10 milliseconds after the start of the trigger. The offset can be
set to a negative value, but this number cannot exceed the TRIGger:DELay value.
Multiple Measurements
The electronic load also has the ability to set up several acquisition triggers in succession and
concatenate the results from each acquisition in the measurement buffer. This is useful for making
measurements from lists. To set up the trigger system for a number of sequential acquisitions use:
TRIGger:SEQuence2:COUNt <number>
35
3 - Programming Examples
With this setup, the instrument performs each acquisition sequentially, storing the digitized readings in the
internal measurement buffer. A trigger signal is required to make each measurement. It is only necessary
to initialize the measurement once at the start; after each completed acquisition the instrument will wait for
the next valid trigger condition to start another. The results returned by MEASure or FETCh will be the
average of the total data acquired.
If you do not want the instrument to average the acquisition data, use the FETCh:ARRay commands to
return the raw data from the voltage or current measurement buffer.
NOTE:The total number of data points cannot exceed 4096. This means that the trigger count
multiplied by the number of points cannot exceed 4096; otherwise an error will occur.
Synchronizing Transients and Measurements
The transient and measurement systems are independent of each other. However, it possible to
synchronize the two systems through the use of triggers. This is because when both transient and
measurement systems have been initialized, the same trigger signal will affect both systems. For
example, you may have an application where you need to measure the effects of a list step.
Measuring Triggered Transients or Lists
Measuring triggered transients or lists is generally a straightforward process because you are using the
same trigger to generate the output transient and simultaneously take the measurement. The following
example illustrates how to make measurements from a simple 3-step trigger paced list. Each list step has
a duration of two seconds. Each step-measurement consists of three data points with an offset of 100
milliseconds.
Step 1
Step 2
Step 3
Step 4
Set the mode of each function that will participate in the sequence to LIST. For example:
CURRent:MODE LIST
Program the list of input values for each function.
Specify the number of triggered measurements that will be taken.
TRIGger:SEQuence2:COUNt 3
The number of measurements should match the number of steps in the list.
Specify the time interval and the number of points in each triggered measurement.
SENSe:SWEep:TINTerval 100E-3
SENSe:SWEep:POINts 3
In this example, three measurements or data points are taken at each list step, separated by
100ms intervals. Make sure that all of the measurement samples complete within the step time
interval. If another trigger occurs while a measurement is in progress, the measurement
system will ignore the trigger. Also note that the number of data points specified in this step
multiplied by the measurement count specified in step 3 cannot exceed 4096.
Step 5
Specify a delay time from the start of the trigger until the measurement is taken.
SENSe:SWEep:OFFset 100E-6
This specifies the offset in seconds, in this case, 100 microseconds
36
Programming Examples - 3
Step 6
Step 7
Step 8
NOTE: Each load module retains its measurement data. If multiple lists have been executed, you
Initiate both the transient (list) and the measurement trigger systems.
INITiate:SEQuence1
INITiate:SEQuence2
Specify the trigger source and the timing that will control the list steps and the measurements.
TRIGger:TIMer 2
TRIGger:SOURce TIMer
In this example the trigger source is the internal trigger. Because the internal timer starts
running as soon as the TRIGger:SOURce:TIMer command is executed, the trigger that starts
the list and measurement will not occur until the end of the two-second timer window within
which the trigger is received. After the initial trigger occurs, the list will remain at each step for
two seconds before the next trigger occurs.
Return the current measurements from the data array. In this case, a total of nine
measurements were taken, three at each list step. To return the measurement data you must
first dimension an array, then fetch the data.
Dimension an array here
FETch:CURRent:ARRay ARRAY1
must select each channel in turn, and fetch the measurement data from that channel.
Measuring Dwell-Paced Lists
The main difference between a trigger-paced list and a dwell-paced list is that no triggers occur between
steps in a dwell-paced list. Only one measurement will be taken during the time the list is executed.
Therefore, to capture measurement data for the entire time the list is executed, the total measurement
time of a dwell paced list (time interval X number of points) must equal the total dwell time of the list.
Step 1
Step 2
Step 3
Step 4
Step 5
Program the list as previously described under "Measuring Triggered Transients or Lists."
Specify a dwell time for each list step. For example:
LIST:DWELl 1, 1.5, 2, 2.5, 3
Add up the total number of dwell times to determine the time of the entire list. For the previous
example, the total dwell time adds up to 10 seconds. This is the time it takes to execute the
list.
Specify the time interval and the number of points for the measurement.
SENSe:SWEep:TINTerval 100E-3
SENSe:SWEep:POINts 100
In this example, the measurement interval is set to take 100 measurement points at 100ms
intervals. The total time of the measurement therefore equals the total dwell time of the list.
Return the measurements from the data array.
Dimension an array here
FETch:CURRent:ARRay ARRAY1
When you read back the measurement from the array, you must determine at what point
during the list that the measurement occurred. One way to do this is to multiply the
measurement number by the measurement interval. For example, multiply measurement #5 by
100ms, and you get 500ms, which is the time that the measurement was made.
37
3 - Programming Examples
Programming the Status Registers
You can use status register programming to determine the operating condition of the electronic load at any
time. For example, you may program the electronic load to generate an interrupt (assert SRQ) when an
event such as a current protection occurs. When the interrupt occurs, your program can then act on the
event in the appropriate fashion.
Table 3-1 defines the status bits. Figure 3-4 shows the status register structure of the electronic load. The
Standard Event, Status Byte, and Service Request Enable registers and the Output Queue perform
standard GPIB functions as defined in the IEEE 488.2 Standard Digital Interface for Programmable Instrumentation. The Operation Status and Questionable Status registers implement functions that are
specific to the electronic load.
Table 3-1. Bit Configurations of Status Registers
Bit Signal Meaning
0
5
0
1
3
4
8
9
10
11
12
13
CAL
WTG
VF
OC
OP
OT
EPU
RRV
UNR
LRV
OV
PS
Operation Status Group
Calibrating
Waiting
Channel Status Group
Voltage Fault
the active state of the FLT pin on the back of the unit. The bit remains set until the
condition is removed and INP:PROT:CLE is programmed.
Overcurrent
102% of the rated current or if it exceeds the user-programmed current protection level.
Removing the overcurrent condition clears the bit. If the condition persists beyond the
user programmable delay time, bit 13 is also set and the input is turned off. Both bits
remain set until the condition is removed and INP:PROT:CLE is programmed.
Overpowe
rated power of the input. Removing the overpower condition clears the bit. If the condition
persists for more than 3 seconds, bit 13 is also set and the input is turned off. Both bits
remain set until the condition is removed and INP:PROT:CLE is programmed.
Overtemperature
set and the input is turned off. Both bits remain set until the unit is cooled down and
INP:PROT:CLE is programmed.
Extended Power Unavailable
persists for more than 3 seconds will cause the input to be shut off and bit 13 to be set.
When EPU satus is false, an overpower condition will be reported in bit 3, but this will not
cause the input to be turned off. The state of the EPU bit is dependent on the internal
temperature of the load.
Remote Reverse Voltage
terminals. Both this bit and bit 0 are set. Removing the reverse voltage clears this bit but
does not clear bit 0. Bit 0 remains set until INP:PROT:CLE is programmed.
Unregulated
Local Reverse Voltage
Both this bit and bit 0 are set. Removing the reverse voltage clears this bit but does not
clear bit 0. Bit 0 remains set until INP:PROT:CLE is programmed.
Overvoltage
FETs are turned on as hard as possible to lower the voltage. Both bits remain set until the
condition is removed and INP:PROT:CLE is programmed.
Protection Shutdown
overcurrent, overpower, or overtemperature condition. The bit remains set until
INP:PROT:CLE is programmed.
. The electronic load is computing new calibration constants
. The electronic load is waiting for a trigger
. Either an overvoltage or a reverse voltage has occurred. This bit reflects
. An overcurrent condition has occurred. This occurs if the current exceeds
r. An overpower condition has occurred. This occurs if the unit exceeds the
. An overtemperature condition has occurred. Both this bit and bit 13 are
. When EPU status is true, an overpower condition that
. A reverse voltage condition has occurred on the sense
. The input is unregulated. When the input is regulated the bit is cleared.
. A reverse voltage condition has occurred on the input terminals.
. An overvoltage condition has occurred. Both this bit and bit 0 are set and the
. The protection shutdown circuit has tripped because of an
38
0
2
3
4
5
7
OPC
QYE
DDE
EXE
CME
PON
Programming Examples - 3
Table 3-1. Bit Configurations of Status Registers (continued)
Questionable Status Group
Same as Channel Status Group
Standard Event Status Group
Operation Complete
programmed for this bit to be set when pending operations are complete.
Query Error
in the range of −499 through −400 can set this bit.
Device-Dependent Error
through −300 can set this bit.
Execution Error
load's operation, or prevented from executing because of an operating condition. Errors in
the range of −299 through −200 can set this bit.
Command Error
within a program message. Errors in the range of −199 through −100 can set this bit.
Power-On
. The output queue was read with no data present or the data was lost. Errors
. The unit has been turned off and then on since this bit was last read.
. The load has completed all pending operations. *OPC must be
. Memory was lost or self test failed. Errors in the range of −399
. A command parameter was outside its legal range, inconsistent with the
. A syntax or semantic error has occurred or the load received a <get>
2
3
4
5
6
7
CSUM
QUES
MAV
ESB
MSS
RQS
OPER
Status Byte and Service Request Enable Registers
Channel Summary
Questionable Status Summary
Message Available Summary
Event Status Summary
Master Status Summary
Request Service
Operation Status Summary
. Indicates if an enabled channel event has occurred.
. Indicates if an enabled questionable event has occurred.
. Indicates if the Output Queue contains data.
. Indicates if an enabled standard event has occurred.
. For an *STB? query, MSS is returned without being cleared.
. During a serial poll, RQS is returned and cleared.
. Indicates if an operation event has occurred.
39
3 - Programming Examples
CONDITION
0
1
1
4
2
3
8
4
16
8
256
9
512
1024
2048
4096
8192
CHANNEL STATUS
EVENTENABLE
1
2
8
16
256
512
1024
2048
4096
8192
1024
2048
4096
8192
1
2
CHANNEL SUMMARY
EVENTENABLE
8
16
256
512
LOGICAL
OR
SAME
AS
CHAN 1
CHAN 1
CHAN 2
CHAN 3
CHAN 4
CHAN 5
CHAN 6
N.U.
0
1
2
2
4
3
8
4
16
5
32
6
64
2
4
8
16
32
64
LOGICAL
OR
(IDENTICAL REGISTERS FOR EACH CHANNEL)
VF
OC
N.U.
OP
OT
5-7
N.U.
RRV
EPU
10
UNR
11
LRV
12
OV
13
PS
5-9
N.U.
QUESTIONABLE STATUS
SAME
AS
CHAN 1
CHAN 1
CHAN 2
CHAN 3
CHAN 4
CHAN 5
CHAN 6
VF
VF
VF
LOGICAL
OR
VF
VF
VF
N.U.
OP
OT
N.U.
UNR
LRV
OV
PS
N.U.
VF
OC
RRV
EPU
CONDITION
0
1
2
3
4
16
5-7
8
256
9
512
10
1024
11
2048
12
4096
13
8192
5-9
1
4
8
EVENTENABLE
1024
2048
4096
8192
1
2
8
16
256
512
256
1024
2048
4096
8192
1
2
8
16
512
LOGICAL
OR
OPC
N.U.
QYE
DDE
EXE
CME
N.U.
PON
CAL
N.U.
WTG
N.U.
0
1-4
5
6-15
STANDARD EVENT
STATUS
EVENTENABLE
0
1
1
2
4
3
8
4
16
5
32
6
7
128
1
4
8
16
32
128
LOGICAL
OR
OPERATION STATUS
CONDITION
PTR/NTREVENTENABLE
11 1
323232
Figure 3-4. Electronic Load Status Model
OUTPUT QUEUE
DATA
DATA
DATA
1
32
QUEUE
NOT
EMPTY
LOGICAL
OR
N.U.
CSUM
QUES
MAV
ESB
RQS
OPER
STATUS BYTE
0,1
2
4
3
8
4
16
5
32
6
7
128
RQS
SERVICE
REQUEST
GENERATION
SERVICE
REQUEST
ENABLE
4
8
16
32
128
LOGICAL
OR
40
Programming Examples - 3
Power-On Conditions
Refer to the *RST command description in chapter 4 for the power-on conditions of the status registers.
Channel Status Group
The Channel Status registers record signals that indicate abnormal operation of a specific channel of the
electronic load. As shown below, the group consists of a Condition, Event, and Enable register. The
outputs of the Channel Status registers are logically-ORed into the Channel Summary Registers.
Register Command Description
Condition
Event
Enable
STAT:CHAN:COND?
STAT:CHAN:EVEN?
STAT:CHAN:ENAB <n>
A read-only register that holds real-time status of the channel
being monitored.
A read-only register that latches any condition. It is cleared
when read.
A read/write register that functions as a mask for enabling
specific bits in the Event register.
Channel Summary Group
The Channel Summary registers summarize the abnormal operation of all channels of the electronic load.
As shown below, the group consists of an Event and Enable register. The outputs of the Channel
Summary registers are logically-ORed into the Channel SUMmary bit (2) of the Status Byte register.
Register Command Description
Event
Enable
STAT:CSUM:EVEN?
STAT:CSUM:ENAB <n>
A read-only register that latches any condition from all
channels. It is cleared when read.
A read/write register that functions as a mask for enabling
specific bits in the Enable register.
Questionable Status Group
The Questionable Status registers record signals that indicate abnormal operation of the electronic load
from all of the channels. The group consists of the same type of registers as the Channel Status group.
The outputs of the Questionable Status group are logically-ORed into the QUEStionable summary bit (3)
of the Status Byte register.
Register Command Description
Condition
Event
Enable
STAT:QUES:COND?
STAT:QUES:EVEN?
STAT:QUES:ENAB <n>
A read-only register that holds real-time logically ORed status
of all channels of the mainframe.
A read-only register that latches any condition. It is cleared
when read.
A read/write register that functions as a mask for enabling
specific bits in the Enable register.
Standard Event Status Group
This group consists of an Event register and an Enable register that are programmed by Common
commands. The Standard Event event register latches events relating to instrument communication status
(see figure 3-4). It is a read-only register that is cleared when read. The Standard Event enable register
functions similarly to the enable registers of the Operation and Questionable status groups.
41
3 - Programming Examples
Command Action
*ESE
*PSC ON
*ESR?
The PON (Power On) Bit
The PON bit in the Standard Event event register is set whenever the electronic load is turned on. The
most common use for PON is to generate an SRQ at power-on following an unexpected loss of power. To
do this, bit 7 of the Standard Event enable register must be set so that a power-on event registers in the
ESB (Standard Event Summary Bit), bit 5 of the Service Request Enable register must be set to permit an
SRQ to be generated, and *PSC OFF must be sent. The commands to accomplish these conditions are:
*PSC OFF *ESE 128 *SRE 32
programs specific bits in the Standard Event enable register.
clears the Standard Event enable register at power-on.
reads and clears the Standard Event event register.
Operation Status Group
The Operation Status registers record signals that occur during normal operation. As shown below, the
group consists of a Condition, PTR/NTR, Event, and Enable register. The outputs of the Operation Status
register group are logically-ORed into the OPER(ation) summary bit (7) of the Status Byte register.
Register Command Description
Condition
PTR Filter
NTR Filter
Event
Enable
STAT:OPER:COND?
STAT:OPER:PTR <n>
STAT:OPER:NTR <n>
STAT:OPER:EVEN?
STAT:OPER:ENAB <n>
A read-only register that holds real-time status of the circuits
being monitored.
A read/write positive transition filter that functions as described
in chapter 4 under STAT:OPER:NTR|PTR.
A read/write negative transition filter that functions as described
in chapter 4 under STAT:OPER:NTR|PTR.
A read-only register that latches any condition that is passed
through the PTR or NTR filters. It is cleared when read.
A read/write register that functions as a mask for enabling
specific bits from the Event register.
Status Byte Register
This register summarizes the information from all other status groups as defined in the IEEE 488.2
Standard Digital Interface for Programmable Instrumentation. The bit configuration is shown in Table 3-1.
Command Action
*STB? reads the data in the register but does not clear it (returns MSS in bit 6)
serial poll clears RQS inside the register and returns it in bit position 6 of the response.
The MSS Bit
This is a real-time (unlatched) summary of all Status Byte register bits that are enabled by the Service
Request Enable register. MSS is set whenever the electronic load has one or more reasons for requesting
service. *STB? reads the MSS in bit position 6 of the response but does not clear any of the bits in the
Status Byte register.
The RQS Bit
The RQS bit is a latched version of the MSS bit. Whenever the electronic load requests service, it sets the
SRQ interrupt line true and latches RQS into bit 6 of the Status Byte register. When the controller does a
serial poll, RQS is cleared inside the register and returned in bit position 6 of the response. The remaining
bits of the Status Byte register are not disturbed.
42
Programming Examples - 3
The MAV Bit and Output Queue
The Output Queue is a first-in, first-out (FIFO) data register that stores electronic load-to-controller
messages until the controller reads them. Whenever the queue holds one or more bytes, it sets the MAV
bit (4) of the Status Byte register.
Determining the Cause of a Service Interrupt
You can determine the reason for an SRQ by the following actions:
Step 1 Determine which summary bits are active. Use:
*STB? or serial poll
Step 2 Read the corresponding Event register for each summary bit to determine which events
caused the summary bit to be set. Use:
STATus:QUEStionable:EVENt?
STATus:OPERation:EVENt?
ESR?
When an Event register is read, it is cleared. This also clears the corresponding summary
bit.
Step 3 Remove the specific condition that caused the event. If this is not possible, the event may
be disabled by programming the corresponding bit of the status group Enable register or
NTR|PTR filter if there is one. A faster way to prevent the interrupt is to disable the service
request by programming the appropriate bit of the Service Request Enable register
Servicing Standard Event Status and Questionable Status Events
This example assumes you want a service request generated whenever the electronic load experiences a
command execution error, or whenever the electronic load's overcurrent, overpower, or overtemperature
circuits have tripped. From figure 3-4, note the required path for a condition at bit 4 (EXE) of the Standard
Event Status register to set bit 6 (RQS) of the Status Byte register. Also note the required path for
Questionable Status conditions at bits 1, 3, and 4 to generate a service request (RQS) at the Status Byte
register. The required register programming is as follows:
Step 1 Program the Standard Event Status register to enable an event at bit 4. This allows the
event to be summed into the ESB bit of the Status Byte Register. Use:
*ESE 4
Step 2
Step 3
Step 4
Program the Questionable Status register to allow an event at bits 1, 3, or 4 to be
summed into the Questionable summary bit. Use:
STATus:QUEStionable:ENABle 26 (2 + 8 + 16 = 26)
Program the Service Request Enable register to allow both the Standard Event Status
and the Questionable summary bits from the Status Byte register to generate RQS. Use:
*SRE 40 (8 + 32 = 40)
When you service the request, read the event registers to determine which Operation
Status and Questionable Status Event register bits are set, and clear the registers for the
next event. Use:
STATus:OPERation:EVENt;QUEStionable:EVENt?
43
3 - Programming Examples
Programming Examples
NOTE: Because of the wide variety of input ratings between load modules, not all of the values
used in the following programming examples will work with every module.
CC Mode Example
This example selects channel 1, sets the current level to 1.25 A and reads back the actual current value.
Line 10: Selects the channel 1 module.
Line 20: Turns off the input.
Line 30: Selects the CC mode.
Line 40: Selects the low current range.
Line 50: Sets the current level to 1.25 amps.
Line 60: Turns on the input.
Line 70: Measures the actual input current and stores it in a buffer inside the electronic load.
Line 80: Reads the input current value into variable A in the computer.
Line 90: Displays the measured current value on the computer's display.
CV Mode Example
This example selects channel 2, presets the voltage level to 10 volts, and selects the external trigger
source. When the external trigger signal is received, the channel 2 CV level will be set to 10 volts.
Line 10: Selects channel 2 and turns off the input.
Line 20: Selects the CV mode.
Line 30: Sets the initial voltage level to 0 volts.
Line 40: Sets the triggered voltage level to 10 volts.
Line 50: Selects the external input as the trigger source.
Line 60: Turns on the channel 2 input.
44
Programming Examples - 3
CR Mode Example
This example selects channel 1, sets the current protection limit to 2 amps, programs the resistance level
to 100 ohms, and reads back the computed power.
Line 10: Selects channel 1 and turns off the input.
Line 20: Selects the CR mode.
Line 30: Sets the current protection limit to 2 amps with a trip delay of 5 seconds.
Line 40: Enables the current protection feature.
Line 50: Selects the high resistance range.
Line 60: Sets the resistance level to 1000 ohms.
Line 70: Turns on the input.
Line 80: Reads the computed input power value and stores it in a buffer inside the electronic load.
Line 90: Reads the computed input power level into variable A in the computer.
Line 100: Displays the computed input power level on the computer's display.
Continuous Transient Operation Example
This example selects channel 2, sets the CC levels and programs the slew, frequency, and duty cycle
parameters for continuous transient operation.
Line 10: Selects channel 2 and turns the input off
Line 20: Selects the CC mode.
Line 30: Sets the main current level to 1 ampere.
Line 40: Sets the transient current level to 2 amps and the slew rate to maximum.
Line 50: Selects continuous transient operation, sets the transient generator frequency to 5 kHz, and sets the duty
cycle to 40%.
Line 60: Turns on the transient generator and the input.
45
3 - Programming Examples
Pulsed Transient Operation Example
This example selects channel 1, sets the CR levels, selects the bus as the trigger source, sets the fastest
slew rate, programs a pulse width of 1 millisecond, and turns on transient operation. W hen the *TRG
command is received, a 1 millisecond pulse is generated at the channel 1 input.
Line 10: Selects channel 1 and turns the input off.
Line 20: Selects the CR mode.
Line 30: Selects the high resistance range and sets the main resistance level to 100 ohms.
Line 40: Sets the transient resistance level to 50 ohms.
Line 50: Selects the HP-IB as the trigger source.
Line 60: Sets the CR slew rate to the maximum value.
Line 70: Selects pulsed transient operation and sets the pulse width to 1 millisecond.
Line 80: Turns on the transient generator and the input.
Other commands are executed
Line 200: The *TRG command generates a 1 millisecond pulse at the channel 1 input.
Synchronous Toggled Transient Operation Example
This example programs channels 1 and 2 to generate synchronous transient waveforms. The channels
can then be paralleled for increased current input. Each channel is set up to operate in the CC mode with
toggled transient operation turned on. The electronic load's internal trigger oscillator is set up to produce
trigger pulses at a frequency of 2 kHz in order to generate synchronous waveforms at the channel 1 and
channel 2 inputs.
Line 10: Selects channel 1 and turns the input off.
Line 20: Selects the CC mode.
Line 30: Sets the main current level to 25 A.
Line 40: Sets the transient current level to 50 A and the slew rate to maximum.
Line 50: Selects toggled transient operation.
Line 60: Enables transient operation and turns on the channel 1 input.
Line 70: Selects channel 2 and turns the input off.
Line 80: Selects the CC mode.
Line 90: Sets the main current level to 25 A.
Line 100: Sets the transient current level to 50 A and the slew to maximum.
Line 110: Selects toggled transient operation.
Line 120: Enables transient operation and turns on the channel 2 input.
Line 130: Sets the internal trigger oscillator frequency to 2 kHz (period of pulses = 0.0005).
line 140: Selects the electronic load's internal oscillator as the trigger source. The oscillator starts running as soon
as this line is executed.
Battery Testing Example
The principal measurement of a battery's performance is its rated capacity. The capacity of a fully charged
battery, at a fixed temperature, is defined as the product of the rated discharge current in amperes and the
discharge time in hours, to a specified minimum termination voltage in volts (see figure 3-5). A battery is
considered completely discharged when it reaches the specified minimum voltage called the "end of
discharge voltage" (EODV).
Figure 3-5. Typical Discharge Curve
In this example, the electronic load discharges three nickel-cadmium batteries to determine their
discharge rates at a fixed temperature (see Figure 3-6). The batteries are connected in series so that
when the EODV is reached, it is still above the minimum operating voltage of the electronic load. The
EODV for nickel-cadmium batteries is typically 1.0 volts.
47
3 - Programming Examples
Figure 3-6. Batteries in Series
Battery Test Example Program
l0 ! Battery Test Example Program
20 !
30 Eodv=l.0 ! End of discharge voltage for single cell
40 Number_of_cells=3 ! Number of cells to be discharged in series
50 Discharge_at=.05 ! Constant current discharge rate in amperes
60 !
70 OUTPUT 705;
80 OUTPUT 705;"FUNCTION CURRENT" ! Sets CC mode
90 OUTPUT 705;"CURRENT:LEVEL";Discharge_at ! Sets the CC level
l00 OUTPUT 705;"INPUT ON" ! Enables the input
110 !
120 Start_time=TIMEDATE ! Records test start time
130 !
140 Start_test: ! Starts test routine that
150 OUTPUT 705;"MEASURE:VOLTAGE?" ! continuously measures and reads
160 ENTER 705;Sum_of_volts ! back the voltage and current
170 OUTPUT 705;"MEASURE:CURRENT?" ! until batteries are completely
180 ENTER 705;Actual_current ! discharged
190 !
200 PRINT "Total cell voltage: ";Sum_of_volts
210 PRINT "Actual current: ";Actual_current
220 PRINT "Elapsed time in seconds: ";TIMEDATE-Start_time
230 !
240 IF Sum_of_volts>(Number_of_cells*Eodv) THEN GOTO Start_test
250 ! Checks if the total voltage is less than the
260 ! sum of the minimum cell voltages of all cells
270 !
280 OUTPUT 705;"INPUT OFF" ! Disables the input
290 !
300 END
A typical use for electronic loads when testing power supplies involves power supply burn-in. One of the
problems associated with burn-in is what to do if the power supply fails before the test is over. One
solution involves continuously monitoring the supply and removing the load if the supply fails during the
test (see figure 3-7).
In this example, the electronic load is used to burn-in a power supply at its rated output current. Because
the electronic load is operating in CC mode, if the power supply's output current drops below the rated
output current during the test, the UNR (unregulated) condition will be set on the electronic load. This can
be used to indicate that a failure has occurred on the power supply. If the unregulated condition persists
for a specified time, the inputs of the electronic load are turned off.
The purpose of this example is not to illustrate power supply testing, but to explain how to program and
use the status registers on the electronic load. The part of the program that runs the test simply monitors
the supply at the rated output current for one hour and stops the test. You can replace this portion of the
program with your own routine to test the power supply. Although SRQ (service request) is enabled to
interrupt only on the UNR bit in this example, you can modify the program to interrupt on other conditions.
Figure 3-7. Typical Burn-In Test
Power Supply Test Example Program
l0 ! Power Supply Test Example Program
20 !
30 Current=10 ! Load current in amperes
40 Burn_in_time=36000 ! One hour burn-in time
50 !
60 ON INTR 7 GOSUB Srq_service ! Set up interrupt linkage
70 ENABLE INTR 7;2 ! Enable interrupts for SRQs
80 !
90 OUTPUT 705;
l00 OUTPUT 705;"*SRE 4" ! Enable SRQ (SRQ enable for CSUM)
110 OUTPUT 705;"STAT:CSUM:ENAB 2" ! Enable Chan 1 (channel summary)
120 OUTPUT 705;"STAT:CHAN:ENAB l024" ! Enable UNR bit (channel status)
130 OUTPUT 705;"FUNCTION CURRENT" ! Sets CC mode
140 OUTPUT 705;"CURRENT:LEVEL";Current ! Sets the CC level
l50 OUTPUT 705;"INPUT ON" ! Enables the input
160 !
170 PRINT "Burn-in test started at ";TIME$(TIMEDATE)
180 !
190 FOR I=1 TO Burn_in_time ! Loop on wait You can write your
200 WAIT .1 ! own power supply test routine and
210 NEXT I ! insert it in this section
220 !
230 OUTPUT 705;"INPUT OFF" ! Disables the input at end of test
240 PRINT "Burn-in test complete at ";TIME$(TIMEDATE)
250 STOP
260 !
270 Srq_service ! Service request subroutine
280 Load_status=SPOLL(705) ! Conduct serial poll
290 IF BIT(Load_status, 6) THEN ! Check if SRQ bit is set
300 GOSUB Check_unr
310 ELSE
320 PRINT "A condition other than UNR generated SRQ at ";TIME$(TIMEDATE)
330 END IF ! You can also check the other bits
340 ENABLE INTR 7 ! Re-enable interrupts before return
350 RETURN
360 !
370 Check_unr ! Check if UNR bit still set
380 WAIT 1 ! Wait 1 s before reading UNR bit
390 OUTPUT 705;"STAT:CHAN:COND?" ! Read channel condition register
400 ENTER 705;Value
410 IF Bit(Value, l0)=0 THEN ! Return value for UNR bit only
420 OUTPUT 705;"*CLS" ! If 0, clear channel event register
430 PRINT "UNR was momentarily asserted at ";TIME$(TIMEDATE)
440 ELSE
450 OUTPUT 705;"INPUT OFF" ! Disables the inputs
460 PRINT "UNR is asserted at ";TIME$(TIMEDATE);" Input is turned off"
470 STOP
480 END IF
490 RETURN
500 END
C++ Programming Example
This program demonstrates the use of lists and triggered measurements in an Agilent N3300A Electronic
Load. The load is programmed to step through three values of current at 1 second intervals. At each
current step, the load measures its own current by sampling it 50 times at 10 microsecong intervals. The
program reads back all of the data, averages the 50 samples for each of the three current steps, and
outputs the results. After each current step, the measurement is delayed by 100us to allow the current to
settle.
/* Each triggered measurement consists of nPoints samples. If multiple
* triggered measurements are taken, all of the samples (nPoints times the
* number of measurements) are placed in the load's measurement buffer.
* This function averages the samples in the buffer that are associated
* with one triggered measurement. When nIndex is 0, the first set of
* nPoints samples are averaged; when nIndex is 1, the 2nd set of nPoints
* samples are averaged; etc.
*/
50
Programming Examples - 3
double Average(double *pData, int nPoints, int nIndex)
{
int nStart, nEnd, i;
double dSum = 0.0;
nStart = nIndex * nPoints;
nEnd = nStart + nPoints;
for (i = nStart; i < nEnd; ++i)
dSum += pData[i];
return dSum / nPoints;
}
void main(int argc, char **argv)
{
INST Load;
int i, nListSteps, nTotalPoints;
double aMeasData[MEAS_BUF_SIZE];
/* This array contains the load current values, in Amps. */
double aListData[] = {0.5, 1.0, 1.5};
/* The current steps occur at 1 sec intervals. */
double dListPeriod = 1.0;
/* 50 measurement samples are taken at each current step. */
int nMeasPoints = 50;
/* The measurement samples are taken at 10us intervals. */
double dMeasPeriod = 10e-6;
/* The measurements are delayed by 100us after each current step. */
double dMeasDelay = 100e-6;
/* The total number of measurement samples may not exceed the size of
* the load's measurement buffer.
*/
nListSteps = sizeof(aListData) / sizeof(aListData[0]);
nTotalPoints = nMeasPoints * nListSteps;
if (nTotalPoints > MEAS_BUF_SIZE) {
printf("Total number of measurement points exceeds buffer size.\n");
exit(1);
}
/* Set up the SICL error handler. */
ionerror(ErrorHandler);
/* Assume the load is set to the address shown here. */
Load = iopen("hpib7,5");
itimeout(Load, 10000);
/* Put the load current into List mode. */
iprintf(Load, "curr:mode list\n");
/* Send the list of currents to the load. */
iprintf(Load, "list:curr %.4,*lf\n", nListSteps, aListData);
/* Since current is in List mode, all parameters associated with current
* must also have lists programmed. All lists must be of the same
* length, or they may have a single value as shown below.
*/
iprintf(Load, "list:curr:slew max\n");
iprintf(Load, "list:curr:range max\n");
iprintf(Load, "list:curr:tlevel 0\n");
51
3 - Programming Examples
/* We are using trigger-paced lists, so set the list of dwell times to
* minimum so no triggers are lost.
*/
iprintf(Load, "list:dwell min\n");
/* Set trigger-paced lists. */
iprintf(Load, "list:step once\n");
/* Set up the parameters for each triggered measurement. */
iprintf(Load, "sense:sweep:points %d\n", nMeasPoints);
iprintf(Load, "sense:sweep:tinterval %lf\n", dMeasPeriod);
iprintf(Load, "sense:sweep:offset %lf\n", dMeasDelay);
/* Make sure the load's trigger timer is off by setting the trigger
* source to something else.
*/
iprintf(Load, "trig:source bus\n");
/* Set the period of the trigger timer. */
iprintf(Load, "trig:timer %lf\n", dListPeriod);
/* Set the measurement trigger count, so the measurement system can
* be triggered multiple times (by the timer) after being initiated
* only once.
*/
iprintf(Load, "trig:seq2:count %d\n", nListSteps);
/* Initiate the list system and the measurement system. */
iprintf(Load, "init:name list\n");
iprintf(Load, "init:name acq\n");
/* Set the trigger source to Timer. This also starts the timer, so
* execution of the load current list and measurements will start here.
*/
iprintf(Load, "trig:source timer\n");
/* Fetch the array of data. The iscanf() call will not return until
* all measurements are complete and the data is available.
*/
iprintf(Load, "fetch:array:curr?\n");
iflush(Load, I_BUF_READ);
iscanf(Load, "%,#lf", &nTotalPoints, &aMeasData);
/* For each list step, average the measurement samples and output the
* results.
*/
for (i = 0; i < nListSteps; ++i)
printf("%8.3lf\n", Average(aMeasData, nMeasPoints, i));
/* To output all the measurement samples, uncomment this loop.
*/
/* for (i = 0; i < nTotalPoints; ++i)
* printf("%8.3lf\n", aMeasData[i]);
*/
}
52
4
Language Dictionary
Introduction
This section gives the syntax and parameters for all the IEEE 488.2 SCPI subsystem and common
commands used by the electronic loads. It is assumed that you are familiar with the material in chapter 2
"Introduction to Programming". Because the SCPI syntax remains the same for all programming
languages, the examples given for each command are generic.
Syntax Forms
Parameters
Channel
Related
Commands
Order of
Presentation
Syntax definitions use the long form, but only short form headers (or "keywords")
appear in the examples. Use the long form to help make your program selfdocumenting.
Most commands require a parameter and all queries will return a parameter. The
range for a parameter may vary according to the model of electronic load. Parameters
for all models are listed in the Specifications table in the User’s Guide.
If a command only applies to individual channels of a mainframe, the entry Channel
Selectable will appear in the command description.
Where appropriate, related commands or queries are included. These are listed
because they are either directly related by function, or because reading about them will
clarify or enhance your understanding of the original command or query.
The dictionary is organized as follows:
Subsystem commands, arranged by subsystem
IEEE 488.2 common commands
Subsystem Commands
Subsystem commands are specific to functions. They can be a single command or a group of
commands. The groups are comprised of commands that extend one or more levels below the root. The
description of common commands follows the description of the subsystem commands.
The subsystem command groups are arranged according to function: Calibration, Channel, Input, List,
Measurement, Port, Status, System, Transient, and Trigger. Commands under each function are grouped
alphabetically under the subsystem. Commands followed by a question mark (?) take only the query form.
When commands take both the command and query form, this is noted in the syntax descriptions.
Appendix A lists all subsystem commands in alphabetical order.
53
4 - Language Dictionary
Common Commands
Common commands begin with an * and consist of three letters (command) or three letters and a ?
(query). They are defined by the IEEE 488.2 standard to perform common interface functions. Common
commands and queries are categorized under System, Status, or Trigger functions and are listed at the
end of this chapter.
Programming Parameters
The following table lists the electronic load programming parameters. Refer to Appendix A of the User's
Guide for programming accuracy and resolution.
Table 4-1. Programming Parameters
Parameter Code1 Model and Value
N3302A N3303A N3304A N3305A N3306A N3307A
CURR <Nrf+>
Enable and disable the calibration mode
Change the calibration password
Calibrate the input functions, current monitor offset and gain, and store new calibration constants
in nonvolatile memory.
CALibrate:DATA
This command is only used in calibration mode. It enters a calibration value that you obtain by reading an
external meter. You must first select a calibration level (with CALibrate:LEVel) for the value being entered.
These constants are not stored in nonvolatile memory until they are saved with CALibrate:SAVE. If
CALibrate:STATE OFF is programmed without a CALibrate:SAVE, the previous calibration constants are
restored.
This command can only be used in calibration mode. It is used to set the two calibration points of the
analog current monitor signal.
Command Syntax
Parameters
Examples
Related Commands
CALibrate:IMON:LEVel <level>
P1 | P2
CAL:LEV P2
CAL:STAT CAL:SAV
CALibrate:IPR:LEVel
This command can only be used in calibration mode. It is used to set the four calibration points for
calibrating the gains of the analog current monitor signal and the analog current programming signal.
Command Syntax
Parameters
Examples
Related Commands
CALibrate:IPRog:LEVel <level>
P1 | P2 | P3 | P4
CAL:LEV P2
CAL:STAT CAL:SAV
CALibrate:LEVel
This command can only be used in calibration mode. It is used to set the two calibration points of the
presently selected FUNCtion and RANGe.
Command Syntax
Parameters
Examples
Related Commands
CALibrate:LEVel <level>
P1 | P2
CAL:LEV P2
CAL:STAT CAL:SAV
55
4 - Language Dictionary
CALibrate:PASSword
This command can only be used in calibration mode. It allows you to change the calibration password.
The new password is not saved until you send the CALibrate:SAVE command. If the password is set to 0,
password protection is removed and the ability to enter the calibration mode is unrestricted.
Command Syntax
Parameters
Examples
Related Commands
CALibrate:PASSword <NRf>
0 (default)
CAL:PASS N3301A CAL:PASS 02.1997
CAL:STAT
CALibrate:SAVE
This command can only be used in calibration mode. It saves any new calibration constants (after a
current or voltage calibration procedure has been completed) in nonvolatile memory.
Command Syntax
Parameters
Examples
Related Commands
CALibrate:SAVE
None
CAL:SAVE
CAL:STAT
CALibrate:STATe
This command enables and disables calibration mode. The calibration mode must be enabled before the
load will accept any other calibration commands. The first parameter specifies the enabled or disabled
state. The second parameter is the password. It is required if the calibration mode is being enabled and
the existing password is not 0. If the password is not entered or is incorrect, an error is generated and the
calibration mode remains disabled. The query statement returns only the state, not the password.
Whenever the calibration state is changed from enabled to disabled, any new calibration constants are
lost unless they have been stored with CALibrate:SAVE.
Command Syntax
Parameters
*RST Value
Examples
Query Syntax
Returned Parameters
Related Commands
CALibrate:STATe <bool> [,<NRf>]
0 | 1 | OFF | ON [,<password>]
OFF
CAL:STAT 1, N3301A CAL:STAT OFF
CALibrate:STATe?
<NR1>
CAL:PASS CAL:SAVE
56
Language Dictionary - 4
Channel Commands
These commands program the channel selection capability of the electronic load. The CHANnel and
INSTrument commands are equivalent.
CHANnel
INSTrument
These commands select the multiple electronic load channel to which all subsequent channel-specific
commands will be directed. If the specified channel number does not exist or is outside the MIN/MAX
range, an error code is generated (see appendix C). Refer to the installation section of the User's Guide
for more information about channel number assignments.
CHANnel? (NOTE: Use CHAN? MAX to return the number of
channels installed in a load mainframe)
<NR1>
57
4 - Language Dictionary
Input Commands
These commands control the input of the electronic load. The INPut and OUTput commands are
equivalent. The CURRent, RESistance and VOLTage commands program the actual input current,
resistance, and voltage.
[SOURce:]INPut
[SOURce:]OUTPut
Channel Specific
These commands enable or disable the electronic load inputs. The state of a disabled input is a high
impedance condition.
Command Syntax
Parameters
*RST Value
Examples
Query Syntax
Returned Parameters
Related Commands
[SOURce:]INPut[:STATe] <bool>
[SOURce:]OUTPut[:STATe] <bool>
0 | 1 | OFF | ON
ON
These commands clear the latch that disables the input when a protection condition such as overvoltage
(OV) or overcurrent (OC) is detected. All conditions that generated the fault must be removed before the
latch can be cleared. The input is then restored to the state it was in before the fault condition occurred.
This command programs the specified electronic load module to the maximum current that it can sink in
the present operating range.
Command Syntax
Parameters
*RST Value
Examples
Query Syntax
Returned Parameters
Related Commands
[SOURce:]INPut:SHORt <bool>
[SOURce:]OUTPut:SHORt <bool>
0 | 1 | OFF | ON
OFF
INP:SHOR 1 OUTP:SHOR ON
INPut:SHORt?
0 | 1
INP OUTP
58
Language Dictionary - 4
[SOURce:]CURRent
Channel Specific
This command sets the current that the load will regulate when operating in constant current mode. Refer
to Table 4-1 for model-specific programming ranges.
Command Syntax
Parameters
Unit
*RST Value
Examples
Query Syntax
Returned Parameters
Related Commands
[SOURce:]CURRent[:LEVel][:IMMediate][:AMPLitude] <NRf+>
0 through MAX | MINimum | MAXimum
A (amperes)
MINimum
This command determines whether the current settings are controlled by values in a list or by the
CURRent command setting.
FIXed
LIST
Returned Parameters
The current settings are determined by the CURRent command.
The current settings are determined by the active list.
Command Syntax
Parameters
*RST Value
Examples
Query Syntax
Related Commands
[SOURce:]CURRent:MODE <mode>
FIXed | LIST
FIXed
CURR:MODE FIX
[SOURce:]CURRent:MODE?
<CRD>
CURR: CURR:TRIG
[SOURce:]CURRent:PROTection
Channel Specific
This command sets the soft current protection level. If the input current exceeds the soft current protection
level for the time specified by CURR:PROT:DEL, the input is turned off. Refer to Table 4-1 for modelspecific programming ranges.
NOTE:Use CURR:PROT:DEL to prevent momentary current limit conditions caused by
programmed changes from tripping the overcurrent protection.
Command Syntax
Parameters
Unit
*RST Value
Examples
Query Syntax
Returned Parameters
Related Commands
[SOURce:]CURRent:PROTection[:LEVel] <NRf+>
0 through MAX | MINimum | MAXimum
A (amperes)
MAXimum
This command sets the current range of the electronic load module. There are two current ranges.
High Range: model dependent, see Table 4-1
Low Range: model dependent, see Table 4-1
When you program a range value, the load automatically selects the range that corresponds to the value
that you program. If the value falls in a region where ranges overlap, the load selects the range with the
highest resolution.
NOTE:When this command is executed, the IMMediate, TRANsient, TRIGgered, and SLEW
current settings are adjusted as follows:
If the existing settings are within the new range: No adjustment is made.
If the existing settings are outside the new range: The levels are set to the
maximum value of the new range.
Command Syntax
Parameters
*RST Value
Examples
Query Syntax
Returned Parameters
Related Commands
[SOURce:]CURRent:RANGe <NRf+>
0 through MAX | MINimum | MAXimum
A (amperes)
Unit
MAXimum (high range)
SOUR:CURR:RANGE MIN
[SOURce:]CURRent:RANGe?
<NR3>
CURR CURR:SLEW
60
Language Dictionary - 4
[SOURce:]CURRent:SLEW
Channel Specific
This command sets the slew rate for all programmed changes in the input current level of the electronic
load. This command programs both positive and negative going slew rates. Although any slew rate value
may be entered, the electronic load selects a slew rate that is closest to the programmed value.
MAXimum sets the slew to the fastest possible rate. MINimum sets the slew to the slowest rate. Slew
rates less than the minimum value are set to MINimum. Slew rates greater than the maximum value are
set to MAXimum.
Command Syntax
Parameters
Unit
*RST Value
Examples
Query Syntax
Returned Parameters
Related Commands
[SOURce:]CURRent:SLEW[:BOTH] <NRf+>
0 to 9.9E37 | MAXimum | MINimum
A (amps per second)
MAXimum
This command sets the slew rate of the current for negative going transitions. MAXimum sets the slew to
the fastest possible rate. MINimum sets the slew to the slowest rate.
Command Syntax
Parameters
Unit
*RST Value
Examples
Query Syntax
Returned Parameters
Related Commands
[SOURce:]CURRent:SLEW:NEGative <NRf+>
0 to 9.9E37 | MAXimum | MINimum
A (amps per second)
MAXimum
CURR:SLEW:NEG 50 CURR:SLEW:NEG MAX
[SOURce:]CURRent:SLEW:NEGative?
<NR3>
CURR:SLEW
[SOURce:]CURRent:SLEW:POSitive
Channel Specific
This command sets the slew rate of the current for positive going transitions. MAXimum sets the slew to
the fastest possible rate. MINimum sets the slew to the slowest rate.
Command Syntax
Parameters
Unit
*RST Value
Examples
Query Syntax
Returned Parameters
Related Commands
[SOURce:]CURRent:SLEW:POSitive <NRf+>
0 to 9.9E37 | MAXimum | MINimum
A (amps per second)
MAXimum
CURR:SLEW:POS 50 CURR:SLEW:POS MAX
[SOURce:]CURRent:SLEW:POSitive?
<NR3>
CURR:SLEW
61
4 - Language Dictionary
[SOURce:]CURRent:TLEVel
Channel Specific
This command specifies the transient level of the input current. The transient function switches between
the immediate setting and the transient level. Refer to Table 4-1 for model-specific programming ranges.
Command Syntax
Parameters
Unit
*RST Value
Examples
Query Syntax
Returned Parameters
Related Commands
[SOURce:]CURRent:TLEVel <NRf+>
0 through MAX | MINimum | MAXimum
A (amperes)
MAXimum
CURR:TLEV 5 CURR:TLEV .5
[SOURce:]CURRent:TLEVel?
<NR3>
CURR:
[SOURce:]CURRent:TRIGgered
Channel Specific
This command sets the current level that will become active when the next trigger occurs.
Command Syntax
Parameters
Unit
*RST Value
Examples
Query Syntax
Returned Parameters
Related Commands
[SOURce:]CURRent[:LEVel]:TRIGgered[:AMPLitude] <NRf+>
refer to Specifications Table in User’s Guide
A (amperes)
MINimum
CURR:TRIG 15
[SOURce:]CURRent:TRIG?
<NR3> (if the trigger level is not programmed, the immediate
level is returned)
CURR: CURR:MODE
[SOURce:]FUNCtion
[SOURce:]MODE
Channel Specific
These equivalent commands select the input regulation mode of the electronic load.
CURRent
RESistance
VOLTage
Returned Parameters
Equivalent Commands
constant current mode
constant resistance mode
constant voltage mode
Command Syntax
Parameters
*RST Value
Examples
Query Syntax
Related Commands
[SOURce:]FUNCtion <function>
[SOURce:]MODE <function>
CURRent | RESistance | VOLTage
CURRent
This command determines whether the resistance setting is controlled by values in a list or by the
RESistance command setting.
FIXed
LIST
Returned Parameters
The resistance setting is determined by the RESistance command.
The resistance setting is determined by the active list.
Command Syntax
Parameters
*RST Value
Examples
Query Syntax
Related Commands
[SOURce:]RESistance:MODE <mode>
FIXed | LIST
FIXed
RES:MODE FIX
[SOURce:]RESistance:MODE?
<CRD>
RES: RES:TRIG
63
4 - Language Dictionary
[SOURce:]RESistance:RANGe
Channel Specific
This command sets the resistance range of the electronic load module. There are four resistance ranges,
the values of which are model dependent. Refer to Table 4-1 for the resistance ranges of each electronic
load model.
When you program a range value, the load automatically selects the range that corresponds to the value
that you program. If the value falls in a region where ranges overlap, the load selects the range with the
highest resolution.
NOTE:When this command is executed, the IMMediate, TRANsient, TRIGgered, and SLEW
resistance settings are adjusted as follows:
If the existing settings are within the new range: No adjustment is made.
If the existing settings are outside the new range: The levels are set to either the
maximum or minimum value of the new range, depending on which they are closest to.
Command Syntax
Parameters
Unit
*RST Value
Examples
Query Syntax
Returned Parameters
Related Commands
[SOURce:]RESistance:RANGe <NRf+>
0 through MAX | MINimum | MAXimum
Ω (ohms)
MAXimum (high range)
RES:RANG 15 SOUR:RES:RANGE MIN
[SOURce:]RESistance:RANGe?
<NR3>
RES RES:SLEW
[SOURce:]RESistance:SLEW
Channel Specific
This command sets the slew rate for all programmed changes in the resistance level of the electronic
load. This command programs both positive and negative going slew rates. Although any slew rate value
may be entered, the electronic load selects a slew rate that is closest to the programmed value.
MAXimum sets the slew to the fastest possible rate. MINimum sets the slew to the slowest rate. Slew
rates less than the minimum value are set to MINimum. Slew rates greater than the maximum value are
set to MAXimum.
Command Syntax
Parameters
Unit
*RST Value
Examples
Query Syntax
Returned Parameters
Related Commands
[SOURce:]RESistance:SLEW[:BOTH] <NRf+>
0 to 9.9E37 | MAXimum | MINimum
Ω (ohms/second)
MAXimum
This command sets the slew rate of the resistance for negative going transitions. MAXimum sets the slew
to the fastest possible rate. MINimum sets the slew to the slowest rate.
64
Language Dictionary - 4
Command Syntax
Parameters
Unit
*RST Value
Examples
Query Syntax
Returned Parameters
Related Commands
[SOURce:]RESistance:SLEW:NEGative <NRf+>
0 to 9.9E37 | MAXimum | MINimum
Ω (ohms/second)
MAXimum
RES:SLEW:NEG 50 RES:SLEW:NEG MAX
[SOURce:]RESistance:SLEW:NEGative?
<NR3>
RES:SLEW
[SOURce:]RESistance:SLEW:POSitive
Channel Specific
This command sets the slew rate of the resistance for positive going transitions. MAXimum sets the slew
to the fastest possible rate. MINimum sets the slew to the slowest rate.
Command Syntax
Parameters
Unit
*RST Value
Examples
Query Syntax
Returned Parameters
Related Commands
[SOURce:]RESistance:SLEW:POSitive <NRf+>
0 to 9.9E37 | MAXimum | MINimum
Ω (ohms/second)
MAXimum
RES:SLEW:POS 50 RES:SLEW:POS MAX
[SOURce:]RESistance:SLEW:POSitive?
<NR3>
RES:SLEW
[SOURce:]RESistance:TLEVel
Channel Specific
This command specifies the transient level of the resistance. The transient function switches between the
immediate setting and the transient level. Refer to Table 4-1 for model-specific programming ranges.
Command Syntax
Parameters
Unit
*RST Value
Examples
Query Syntax
Returned Parameters
Related Commands
[SOURce:]RESistance:TLEVel <NRf+>
0 through MAX | MINimum | MAXimum
Ω (ohms)
MAXimum
RES:TLEV 5 RES:TLEV .5
[SOURce:]RESistance:TLEVel?
<NR3>
RES:
[SOURce:]RESistance:TRIGgered
Channel Specific
This command sets the resistance level that will become active when the next trigger occurs.
Command Syntax
Parameters
Unit
*RST Value
Examples
Query Syntax
Returned Parameters
Related Commands
[SOURce:]RESistance[:LEVel]:TRIGgered[:AMPLitude] <NRf+>
refer to Specifications Table in User’s Guide
Ω (ohms)
MAXimum
RES:TRIG 120 RES:LEV:TRIG 150
[SOURce:]RESistance[:LEVel]:TRIGgered[:AMPLitude]?
<NR3> (if the trigger level is not programmed, the immediate
level is returned)
RES RES:MODE
65
4 - Language Dictionary
[SOURce:]VOLTage
Channel Specific
This command sets the voltage that the load will regulate when operating in constant voltage mode. Refer
to Table 4-1 for model-specific programming ranges.
Command Syntax
Parameters
Unit
*RST Value
Examples
Query Syntax
Returned Parameters
Related Commands
[SOURce:]VOLTage[:LEVel][:IMMediate][:AMPLitude] <NRf+>
0 through MAX | MINimum | MAXimum
V (volts)
MAXimum
This command determines whether the voltage setting is controlled by values in a list or by the VOLTage
command setting.
FIXed
LIST
Returned Parameters
The voltage setting is determined by the VOLTage command.
The voltage setting is determined by the active list.
Command Syntax
Parameters
*RST Value
Examples
Query Syntax
Related Commands
[SOURce:]VOLTage:MODE <mode>
FIXed | LIST
FIXed
VOLT:MODE FIX
[SOURce:]VOLTage:MODE?
<CRD>
VOLT: VOLT:TRIG
[SOURce:]VOLTage:RANGe
Channel Specific
This command sets the voltage range of the electronic load module. There are two voltage ranges.
High Range: model dependent, see Table 4-1
Low Range: model dependent, see Table 4-1
When you program a range value, the load automatically selects the range that corresponds to the value
that you program. If the value falls in a region where ranges overlap, the load selects the range with the
highest resolution.
NOTE:When this command is executed, the IMMediate, TRANsient, TRIGgered, and SLEW
voltage settings are adjusted as follows:
If the existing settings are within the new range: No adjustment is made.
If the existing settings are outside the new range: The levels are set to the
maximum value of the new range.
66
Language Dictionary - 4
Command Syntax
Parameters
Unit
*RST Value
Examples
Query Syntax
Returned Parameters
Related Commands
[SOURce:]VOLTage:RANGe <NRf+>
0 through MAX | MINimum | MAXimum
V (volts)
MAXimum (high range)
VOLT:RANG 15 SOUR:VOLT:RANGE MIN
[SOURce:]VOLTage:RANGe?
<NR3>
VOLT VOLT:SLEW
[SOURce:]VOLTage:SLEW
Channel Specific
This command sets the slew rate for all programmed changes in the input voltage level of the electronic
load. This command programs both positive and negative going slew rates. Although any slew rate value
may be entered, the electronic load selects a slew rate that is closest to the programmed value.
MAXimum sets the slew to the fastest possible rate. MINimum sets the slew to the slowest rate. Slew
rates less than the minimum value are set to MINimum. Slew rates greater than the maximum value are
set to MAXimum.
Command Syntax
Parameters
Unit
*RST Value
Examples
Query Syntax
Returned Parameters
Related Commands
[SOURce:]VOLTage:SLEW[:BOTH] <NRf+>
0 to 9.9E37 | MAXimum | MINimum
V (volts per second)
MAXimum
This command sets the slew rate of the voltage for negative going transitions. MAXimum sets the slew to
the fastest possible rate. MINimum sets the slew to the slowest rate.
Command Syntax
Parameters
Unit
*RST Value
Examples
Query Syntax
Returned Parameters
Related Commands
[SOURce:]VOLTage:SLEW:NEGative <NRf+>
0 to 9.9E37 | MAXimum | MINimum
V (volts per second)
MAXimum
VOLT:SLEW:NEG 50 VOLT:SLEW:NEG MAX
[SOURce:]VOLTage:SLEW:NEGative?
<NR3>
VOLT:SLEW
67
4 - Language Dictionary
[SOURce:]VOLTage:SLEW:POSitive
Channel Specific
This command sets the slew rate of the voltage for positive going transitions. MAXimum sets the slew to
the fastest possible rate. MINimum sets the slew to the slowest rate.
Command Syntax
Parameters
Unit
*RST Value
Examples
Query Syntax
Returned Parameters
Related Commands
[SOURce:]VOLTage:SLEW:POSitive <NRf+>
0 to 9.9E37 | MAXimum | MINimum
V (volts per second)
MAXimum
VOLT:SLEW:POS 50 VOLT:SLEW:POS MAX
[SOURce:]VOLTage:SLEW:POSitive?
<NR3>
VOLT:SLEW
[SOURce:]VOLTage:TLEVel
Channel Specific
This command specifies the transient level of the input voltage. The transient function switches between
the immediate setting and the transient level. Refer to Table 4-1 for model-specific programming ranges.
Command Syntax
Parameters
Unit
*RST Value
Examples
Query Syntax
Returned Parameters
Related Commands
[SOURce:]VOLTage:TLEVel <NRf+>
0 through MAX | MINimum | MAXimum
V (volts)
MAXimum
VOLT:TLEV 5 VOLT:TLEV .5
[SOURce:]VOLTage:TLEVel?
<NR3>
VOLT:
[SOURce:]VOLTage:TRIGgered
Channel Specific
This command sets the voltage level that will become active when the next trigger occurs.
Command Syntax
Parameters
Unit
*RST Value
Examples
Query Syntax
Returned Parameters
Related Commands
[SOURce:]VOLTage[:LEVel]:TRIGgered[:AMPLitude] <NRf+>
refer to Specifications Table in User’s Guide
V (volts)
MAXimum
VOLT:TRIG 120 VOLT:LEV:TRIG 150
[SOURce:]VOLTage[:LEVel]:TRIGgered[:AMPLitude]?
<NR3> (if the trigger level is not programmed, the immediate
level is returned)
VOLT VOLT:MODE
68
Language Dictionary - 4
Measurement Commands
Measurement commands consist of measurement and sense commands.
Two measurement commands are available: MEASure and FETCh. MEASure triggers the acquisition of
new data before returning the readings from the array. FETCh returns previously acquired data from the
array. Only input current and voltage are actually measured. Power is calculated from the stored voltage
and current data. The input voltage and current are digitized whenever a measure command is given or
whenever an acquire trigger occurs. The time interval of the measurement is set by
SENSe:SWEep:TINTerval, and the position of the trigger relative to the beginning of the data buffer is
determined by SENSe:SWEep:OFFSet.
Sense commands control the measurement range, the acquisition sequence, and the measurement
window of the electronic load.
ABORt
This command resets the measurement and list trigger systems to the Idle state. Any measurement or list
that is in progress is immediately aborted. ABORt also resets the WTG bit in the Operation Condition
Status register (see chapter 3 under “Programming the Status Registers”). ABORt is executed at power
turn-on and upon execution of *RCL, RST, or any implied abort command (see List Commands).
NOTE:If INITiate:CONTinuous ON has been programmed, the trigger system initiates itself
immediately after ABORt, thereby setting the WTG bit.
Command Syntax
Parameters
Examples
Related Commands
ABORt
None
ABOR
INIT *RST *TRG TRIG
MEASure:ARRay:CURRent?
FETCh:ARRay:CURRent?
Channel Specific
These queries return an array containing the instantaneous input current.
These queries return an array containing the instantaneous input power. The power is calculated from the
instantaneous voltage and current data points.
This command sets the current measurement range. There are two current measurement ranges:
High Range: model dependent, see Table 4-1
Low Range: model dependent, see Table 4-1
A value of infinity is returned if the measured value is outside the specified current measurement range.
Command Syntax
Parameters
*RST Value
Examples
Query Syntax
Returned Parameters
SENSe:CURRent:RANGe <NRf+>
0 through MAX | MINimum | MAXimum
A (amperes)
Unit
MAX (high range)
SENS:CURR:RANGE MIN
SENSe:CURRent:RANGe?
<NR3>
SENSe:SWEep:POINts
Channel Specific
This command specifies how many data points are taken in any measurement. Applies to both voltage
and current measurements. The number of points can be specified, from 1 to 4096.
Command Syntax
Parameters
*RST Value
Examples
Query Syntax
Returned Parameters
Related Commands
SENSe:SWEep:POINts <NRf+>
1 through 4096 | MINimum | MAXimum
1000
SENS:SWE:POIN 2048
SENSe:SWEep:POINts?
<NR3>
SENS:SWE:TINT MEAS:ARR
SENSe:SWEep:OFFSet
Channel Specific
This command specifies a delay time after the trigger, but before the measurement is taken. The delay is
specified in seconds. The measurement offset can be either positive or negative with respect to the
trigger.
NOTE:Negative measurement offsets can only be programmed in conjunction with delayed
triggers. The negative measurement offset cannot exceed the trigger delay value.
Command Syntax
Parameters
Unit
*RST Value
Examples
Query Syntax
Returned Parameters
Related Commands
SENSe:SWEep:OFFSet <NRf+>
0 through 0.032 | MINimum | MAXimum
seconds
0 (zero)
SENS:SWE:OFFS 0.01
SENSe:SWEep:OFFSet?
<NR3>
SENS:SWE:TINT MEAS:ARR
73
4 - Language Dictionary
SENSe:SWEep:TINTerval
Channel Specific
This command defines the time period between measurement points. The time interval can be
programmed from 0.00001 to 0.032 seconds in 10 microsecond increments.
This command sets the window function that is used in dc and ac+dc rms measurement calculations. The
following functions can be selected:
HANNing
RECTangular
A signal conditioning window that reduces errors in dc and rms measurement
calculations in the presence of periodic signals such as line ripple. It also reduces
jitter when measuring successive pulses. The Hanning window multiplies each point
in the measurement sample by the function cosine
when measuring single-shot pulses.
A window that returns measurement calculations without any signal conditioning.
4
. Do not use the Hanning window
NOTE: Neither window function alters the voltage or current data in the measurement array.
This command sets the voltage measurement range. There are two voltage measurement ranges:
High Range: model dependent, see Table 4-1
Low Range: model dependent, see Table 4-1
A value of infinity is returned if the measured value is outside the specified voltage measurement range.
Command Syntax
Parameters
*RST Value
Examples
Query Syntax
Returned Parameters
Related Commands
SENSe:VOLTage:RANGe[:UPPer] <NRf+>
0 through MAX | MINimum | MAXimum
V (voltage)
Unit
MAX (high range)
SENS:VOLT:RANGE MIN
SENSe:VOLTage:RANGe?
<NR3>
SENS:SWE:TINT MEAS:ARR
74
Language Dictionary - 4
Port Commands
These commands control the general purpose digital port on the electronic load modules.
PORT0
Channel Specific
This command sets the state of the general purpose digital port on the specified electronic load module. A
value of 1 sets the state high, a 0 sets the state low.
Command Syntax
Parameters
*RST Value
Examples
Query Syntax
Returned Parameters
Related Commands
PORT1
PORT0[:STATe] <bool>
0 | 1 | OFF | ON
OFF
PORT0 1 PORT0 0N
PORT0[:STATe]?
0 | 1
PORT1
This command sets the state of the two general purpose digital ports on the mainframe. The value that
you send is the equivalent of a 2-bit binary word. Use the following values to set the individual bits. Note
that the digital port on the mainframe can also be programmed using lists.
value Dig 2 Dig 1
0 Lo Lo
1 Lo Hi
2 Hi Lo
3 Hi Hi
Command Syntax
Parameters
*RST Value
Examples
Query Syntax
Returned Parameters
Related Commands
PORT1[:LEVel] <NR1>
0 | 1 | 2 | 3
0
PORT1 1 PORT1 3
PORT1?
<NR3>
PORT0
75
4 - Language Dictionary
List Commands
List commands let you program complex sequences of input changes with rapid, precise timing, and
synchronized with trigger signals. Each function for which lists can be generated has a list of values that
specify the input at each list step. MODE commands such as VOLTage:MODE LIST are used to activate
specific functions. LIST:COUNt determines how many times the unit sequences through a list before that
list is completed. LIST:DWELl specifies the time interval that each value (step) of a list is to remain in
effect. LIST:STEP determines if a trigger causes a list to advance only to its next step or to sequence
through all of its steps.
NOTE:The LIST:DWELl command is active whenever any function is set to list mode. Therefore,
a LIST:DWELl time must always be specified whenever any list function is programmed.
The list data is given in the list command parameters, which are separated by commas. The order in
which the data is entered determines the sequence in which the data is programmed when a list is
triggered. Changing list data while a list is running generates an implied ABORt.
All functions that are set to LIST mode must have the same number of steps (up to 50), or an error is
generated when the INITiate command is sent. The only exception is a list consisting of only one step.
Such a list is treated as if it had the same number of steps as the other lists, with all of the implied step
having the same value as the one specified step. All list point data can be stored in nonvolatile memory.
[SOURce:]LIST:COUNt
This command sets the number of times that the list is executed before it is completed. The command
accepts parameters in the range 1 through 9.9E37, but any number greater than 2E9 is interpreted as
infinity. Use INFinity to execute a list indefinitely. This command is not channel specific, it applies to the
entire mainframe.
Command Syntax
Parameters
*RST Value
Examples
Query Syntax
Returned Parameters
Related Commands
[SOURce:]LIST:COUNt <NRf+> | INFinity
1 to 9.9E37 | MINimum | MAXimum | INFinity
1
This command specifies the current setting for each list step. Refer to Table 4-1 for model-specific
programming ranges. LIST:CURRent:POINts returns the number of points programmed.
Command Syntax
Parameters
Unit
Examples
Query Syntax
Returned Parameters
Related Commands
[SOURce:]LIST:CURRent[:LEVel] <NRf+> {,<NRf+>}
0 through MAX | MINimum | MAXimum
A (amperes)
This command sets the current range for each list step. There are two current ranges.
High Range: model dependent, see Table 4-1
Low Range: model dependent, see Table 4-1
When you program a range value, the load automatically selects the range that corresponds to the value
that you program. If the value falls in a region where ranges overlap, the load selects the range with the
highest resolution. LIST:CURRent:RANGe:POINts? returns the number of points programmed.
NOTE: If the existing IMMediate, TRANsient, and TRIGgered current list settings are outside the
new range, a list error is generated when the list is initiated and the list does not execute.
Command Syntax
Parameters
*RST Value
Examples
Query Syntax
Returned Parameters
Related Commands
[SOURce:]LIST:CURRent:RANGe <NRf+> {,<NRf+>}
0 through MAX | MINimum | MAXimum
A (amperes)
This command sets the current slew rate for each step. This command programs both positive and
negative going slew rates. MAXimum sets the slew to its fastest possible rate. MINimum sets the slew to
its slowest rate. LIST:CURRent:SLEW:POINts? returns the number of points programmed.
Command Syntax
Parameters
Unit
*RST Value
Examples
Query Syntax
Returned Parameters
Related Commands
[SOURce:]LIST:CURRent:SLEW[:BOTH] <NRf+> {,<NRf+>}
0 to 9.9E37 | MAXimum | MINimum
A (amperes per second)
MAXimum
This command sets the negative current slew rate for each step. MAXimum sets the slew to its fastest
possible rate. MINimum sets the slew to its slowest rate.
Command Syntax
Parameters
Unit
*RST Value
Examples
Query Syntax
Returned Parameters
Related Commands
[SOURce:]LIST:CURRent:SLEW:NEGative <NRf+> {,<NRf+>}
0 to 9.9E37 | MAXimum | MINimum
A (amperes per second)
MAXimum
This command sets the positive current slew rate for each step. MAXimum sets the slew to its fastest
possible rate. MINimum sets the slew to its slowest rate.
Command Syntax
Parameters
Unit
*RST Value
Examples
Query Syntax
Returned Parameters
Related Commands
[SOURce:]LIST:CURRent:SLEW:POSitive <NRf+> {,<NRf+>}
0 to 9.9E37 | MAXimum | MINimum
A (amperes per second)
MAXimum
This command specifies the transient current level for each step. The transient function switches between
the immediate setting and the transient level. LIST:CURRent:TLEVel:POINts? returns the number of
points programmed.
Command Syntax
Parameters
Unit
*RST Value
Examples
Query Syntax
Returned Parameters
Related Commands
[SOURce:]LIST:CURRent:TLEVel <NRf+> {,<NRf+>}
refer to Specifications Table in User’s Guide
A (amperes)
MAXimum
This command sets the sequence of list dwell times. Each value represents the time in seconds that the
input will remain at the particular list step point before completing the step. At the end of the dwell time,
the input of the electronic load depends upon the following conditions:
If LIST:STEP AUTO has been programmed, the input automatically changes to the next
point in the list.
If LIST:STEP ONCE has been programmed, the input remains at the present level until a
trigger sequences the next point in the list.
The order in which the points are entered determines the sequence in which they are executed when a list
is triggered. Changing list data while a subsystem is in list mode generates an implied ABORt. This
command is not channel specific, it applies to the entire mainframe. LIST:DWELl:POINts? returns the
number of points programmed.
Command Syntax
Parameters
Unit
Examples
Query Syntax
Returned Parameters
[SOURce:]LIST:DWELl <NRf+> {,<NRf+>}
0 - 10s | MINimum | MAXimum
s (seconds)
This command specifies the resistance setting for each list step. Refer to Table 4-1 for model-specific
programming ranges. LIST:RESistance:POINts? returns the number of points programmed.
Command Syntax
Parameters
Unit
Examples
Query Syntax
Returned Parameters
Related Commands
[SOURce:]LIST:RESistance[:LEVel] <NRf+> {,<NRf+>}
0 through MAX | MINimum | MAXimum
Ω (ohms)
LIST:RES 2.5,3.0,3.5
LIST:RES MAX,3.5,2.5,MIN
[SOURce:]LIST:RESistance[:LEVel]?
[SOURce:]LIST:RESistance:POINts?
<NR3> {,<NR3>}
RES
This command sets the resistance range for each list step. There are four resistance ranges, the values of
which are model dependent. Refer to Table 4-1 for the resistance ranges of each Electronic Load model.
When you program a range value, the load automatically selects the range that corresponds to the value
that you program. If the value falls in a region where ranges overlap, the load selects the range with the
highest resolution. LIST:RESistance:RANGe:POINts? returns the number of points programmed.
NOTE: If the existing IMMediate, TRANsient, and TRIGgered resistance list settings are outside
the new range, a list error is generated when the list is initiated and the list does not
execute.
Command Syntax
Parameters
*RST Value
Examples
Query Syntax
Returned Parameters
Related Commands
[SOURce:]LIST:RESistance:RANGe <NRf+> {,<NRf+>}
0 through MAX | MINimum | MAXimum
This command sets the resistance slew rate for each step. This command programs both positive and
negative going slew rates. MAXimum sets the slew to its fastest possible rate. MINimum sets the slew to
its slowest rate. LIST:RESistance:SLEW:POINts? returns the number of points programmed.
Command Syntax
Parameters
Unit
*RST Value
Examples
Query Syntax
Returned Parameters
Related Commands
[SOURce:]LIST:RESistance:SLEW[:BOTH] <NRf+> {,<NRf+>}
0 to 9.9E37 | MAXimum | MINimum
Ω (ohms per second)
MAXimum
This command sets the negative resistance slew rate for each step. MAXimum sets the slew to its fastest
possible rate. MINimum sets the slew to its slowest rate.
Command Syntax
Parameters
Unit
*RST Value
Examples
Query Syntax
Returned Parameters
Related Commands
[SOURce:]LIST:RESistance:SLEW:NEGative <NRf+> {,<NRf+>}
0 to 9.9E37 | MAXimum | MINimum
Ω (ohms per second)
MAXimum
This command sets the positive resistance slew rate for each step. MAXimum sets the slew to its fastest
possible rate. MINimum sets the slew to its slowest rate.
Command Syntax
Parameters
Unit
*RST Value
Examples
Query Syntax
Returned Parameters
Related Commands
[SOURce:]LIST:RESistance:SLEW:POSitive <NRf+> {,<NRf+>}
0 to 9.9E37 | MAXimum | MINimum
Ω (ohms per second)
MAXimum
This command specifies the transient resistance level for each step. The transient function switches
between the immediate setting and the transient level. LIST:RESistance:TLEVel:POINts? returns the
number of points programmed.
Command Syntax
Parameters
Unit
*RST Value
Examples
Query Syntax
Returned Parameters
Related Commands
[SOURce:]LIST:RESistance:TLEVel <NRf+> {,<NRf+>}
refer to Table 4-1
Ω (ohms)
MAXimum
This command specifies how the list sequencing responds to triggers. The following parameters may be
specified. This command is not channel specific, it applies to the entire mainframe.
ONCE
AUTO
Returned Parameters
Causes the list to advance only one point after each trigger. Triggers that arrive during a
dwell delay are ignored
Causes the entire list to be executed sequentially after the starting trigger, paced by its
dwell delays. As each dwell delay elapses, the next point is immediately executed.
This command sets the transient duty cycle for each step when the generator is in CONTinuous mode.
LIST:TRANsient:DCYCle:POINts? returns the number of points programmed.
This command sets the transient frequency for each step when the generator is in CONTinuous mode.
LIST:TRANsient:FREQuency:POINts? returns the number of points programmed.
This command sets the transient pulse width for each step when the generator is in PULSe mode.
LIST:TRANsient:TWIDth:POINts? returns the number of points programmed.
This command specifies the voltage setting for each list step. Refer to Table 4-1 for model-specific
programming ranges. LIST:VOLTage:POINts? returns the number of points programmed.
Command Syntax
Parameters
Unit
Examples
Query Syntax
Returned Parameters
Related Commands
[SOURce:]LIST:VOLTage[:LEVel] <NRf+> {,<NRf+>}
0 through MAX | MINimum | MAXimum
V (volts)
LIST:VOLT 2.5,3.0,3.5
LIST:VOLT MAX,3.5,2.5,MIN
[SOURce:]LIST:VOLTage[:LEVel]?
[SOURce:]LIST:VOLTage:POINts?
<NR3> {,<NR3>}
VOLT
This command sets the voltage range for each list step. There are two voltage ranges.
High Range: model dependent, see Table 4-1
Low Range: model dependent, see Table 4-1
When you program a range value, the load automatically selects the range that corresponds to the value
that you program. If the value falls in a region where ranges overlap, the load selects the range with the
highest resolution. LIST:VOLTage:RANGe:POINts? returns the number of points programmed.
NOTE: If the existing IMMediate, TRANsient, and TRIGgered voltage list settings are outside the
new range, a list error is generated when the list is initiated and the list does not execute.
84
Language Dictionary - 4
Command Syntax
Parameters
*RST Value
Examples
Query Syntax
Returned Parameters
Related Commands
[SOURce:]LIST:VOLTage:RANGe <NRf+> {,<NRf+>}
0 through MAX | MINimum | MAXimum
V (volts)
This command sets the voltage slew rate for each step. This command programs both positive and
negative going slew rates. MAXimum sets the slew to its fastest possible rate. MINimum sets the slew to
its slowest rate. LIST:VOLTage:SLEW :POINts? returns the number of points programmed.
Command Syntax
Parameters
Unit
*RST Value
Examples
Query Syntax
Returned Parameters
Related Commands
[SOURce:]LIST:VOLTage:SLEW [:BOTH] <NRf+> {,<NRf+>}
0 to 9.9E37 | MAXimum | MINimum
V (volts per second)
MAXimum
This command sets the negative voltage slew rate for each step. MAXimum sets the slew to its fastest
possible rate. MINimum sets the slew to its slowest rate.
Command Syntax
Parameters
Unit
*RST Value
Examples
Query Syntax
Returned Parameters
Related Commands
[SOURce:]LIST:VOLTage:SLEW :NEGative <NRf+> {,<NRf+>}
0 to 9.9E37 | MAXimum | MINimum
V (volts per second)
MAXimum
This command sets the positive voltage slew rate for each step. MAXimum sets the slew to its fastest
possible rate. MINimum sets the slew to its slowest rate.
Command Syntax
Parameters
Unit
*RST Value
Examples
Query Syntax
Returned Parameters
Related Commands
[SOURce:]LIST:VOLTage:SLEW :POSitive <NRf+> {,<NRf+>}
0 to 9.9E37 | MAXimum | MINimum
V (volts per second)
MAXimum
This command specifies the transient voltage level for each step. The transient function switches between
the immediate setting and the transient level. LIST:VOLTage:TLEVel:POINts? returns the number of
points programmed.
Command Syntax
Parameters
Unit
*RST Value
Examples
Query Syntax
Returned Parameters
Related Commands
[SOURce:]LIST:VOLTage:TLEVel <NRf+> {,<NRf+>}
refer to Table 4-1
V (volts)
MAXimum
These commands program the transient generator of the electronic load. The transient generator
programs a second (transient) level at which the electronic load can operate without changing the original
programmed settings.
See also [SOURce:]CURRent:TLEVel, [SOURce:]RESistance:TLEVel, and [SOURce:]VOLTage:TLEVel
in the Input Commands section.
[SOURce:]TRANsient
Channel Specific
This command turns the transient generator on or off.
Command Syntax
Parameters
*RST Value
Examples
Query Syntax
Returned Parameters
Related Commands
[SOURce:]TRANsient[:STATe] <bool>
0 | 1 | OFF | ON
OFF
This command selects the operating mode of the transient generator as follows.
CONTinuous
PULSe
TOGGle
Returned Parameters
The transient generator puts out a continuous pulse stream.
The transient generator puts out a single pulse upon receipt of a trigger.
The transient generator toggles between two levels upon receipt of a trigger.
This command selects whether the transient generator uses immediate or list values for the transient
settings.
FIXed
LIST
Returned Parameters
The transient generator uses the fixed or immediate values (set by the
TRANsient function commands)
The transient generator uses the transient values programmed by the list.
Command Syntax
Parameters
*RST Value
Examples
Query Syntax
Related Commands
[SOURce:]TRANsient:LMODE <mode>
FIXed | LIST
FIXed
TRAN:LMODE FIX
[SOURce:]TRANsient:LMODE?
<CRD>
TRAN:MODE TRAN
[SOURce:]TRANsient:TWIDth
Channel Specific
This command sets the pulse width of the transients when the generator is in PULSe mode.
Command Syntax
Parameters
Unit
*RST Value
Examples
Query Syntax
Returned Parameters
Related Commands
[SOURce:]TRANsient:TWIDth <NRf+>
0.00005s - 4s | MAXimum | MINimum
seconds
0.0005s
TRAN:TWID .005 TRAN:TWID 5E-4
[SOURce:]TRANsient:TWIDth?
<NR3>
TRAN:DCYC TRAN
88
Language Dictionary - 4
Status Commands
These commands program the electronic load status registers. The electronic load has five groups of
status registers; Channel Status, Channel Summary, Questionable Status, Standard Event Status, and
Operation Status. Refer to chapter 3 under “Programming the Status Registers” for more information.
Bit Configuration of Channel Status Registers
Bit Position 15-14 13 12 11 10 9 8 7–5 4 3 2 1 0
Bit Name N.U. PS OV LRV UNR EPU RRV N.U. OT OP N.U. OC VF
Bit Weight 8192 4096 2048 1024 512 256 16 8 4 2 1
VF voltage fault has occurred
OC over-current condition has occurred
OP over-power condition has occurred
OT over-temperature condition has occurred
RRV reverse voltage on the sense terminals
STATus:CHANnel?
Channel Specific
This query returns the value of the Channel Event register. The Event register is a read-only register which
holds (latches) all events that are passed into it. Reading the Channel Event register clears it.
Query Syntax
Parameters
Examples
Returned Parameters
Related Commands
STATus:CHANnel[:EVENt]?
None
STAT:CHAN:EVEN?
<NR1> (register value)
*CLS
EPU extended power unavailable
UNR input is unregulated
LRV reverse voltage on the input terminals
OV over-voltage condition has occurred
PS protection shutdown circuit has tripped
STATus:CHANnel:CONDition?
Channel Specific
This query returns the value of the Channel Condition register. The particular channel must first be
selected by the CHAN command.
Query Syntax
Parameters
Examples
Returned Parameters
Related Commands
STATus:CHANnel:CONDition?
None
STAT:CHAN:COND?
<NR1> (register value)
STAT:CHAN?
STATus:CHANnel:ENABle
Channel Specific
This command sets or reads the value of the Channel Enable register for a specific channel. The
particular channel must first be selected by the CHAN command.
This query returns the value of the Channel Event summary register. The bits in this register correspond
to a summary of the channel register for each input channel. Reading the Channel Event summary
register clears it. This command is not channel specific, it applies to the entire mainframe.
Query Syntax
Parameters
Examples
Returned Parameters
Related Commands
STATus:CSUMmary[:EVENt]?
None
STAT:CSUM:EVEN?
<NR1> (register value)
*CLS
STATus:CSUMmary:ENABle
This command sets or reads the value of the Channel Enable summary register. This command is not
channel specific, it applies to the entire mainframe.
Bit Position 15–5 5 4–1 0
Bit Name not used WTG not used CAL
Bit Weight 32 1
CAL = Interface is computing new calibration constants WTG = Interface is waiting for a trigger.
STATus:OPERation?
This query returns the value of the Operation Event register. The Event register is a read-only register that
holds (latches) all events that are passed by the Operation NTR and/or PTR filter. Reading the Operation
Event register clears it. This command is not channel specific, it applies to the entire mainframe.
This query returns the value of the Operation Condition register. That is a read-only register that holds the
real-time (unlatched) operational status of the electronic load. This command is not channel specific, it
applies to the entire mainframe.
Query Syntax
Parameters
Examples
Returned Parameters
Related Commands
STATus:OPERation:CONDition?
None
STAT:OPER:COND?
<NR1> (register value)
STAT:QUES:COND?
90
Language Dictionary - 4
STATus:OPERation:ENABle
This command and its query set and read the value of the Operation Enable register. This register is a
mask for enabling specific bits from the Operation Event register to set the operation summary bit (OPER)
of the Status Byte register. The operation summary bit is the logical OR of all enabled Operation Event
register bits. This command is not channel specific, it applies to the entire mainframe.
Command Syntax
Parameters
Default Value
Examples
Query Syntax
Returned Parameters
Related Commands
STATus:OPERation:ENABle <NRf+>
0 to 32767 | MAXimum | MINimum
0
These commands set or read the value of the Operation NTR (Negative-Transition) and PTR (PositiveTransition) registers. These registers serve as polarity filters between the Operation Enable and
Operation Event registers to cause the following actions. This command is not channel specific, it applies
to the entire mainframe.
When a bit in the Operation NTR register is set to 1, then a 1-to-0 transition of the corresponding
bit in the Operation Condition register causes that bit in the Operation Event register to be set.
When a bit of the Operation PTR register is set to 1, then a 0-to-1 transition of the corresponding
bit in the Operation Condition register causes that bit in the Operation Event register to be set.
If the same bits in both NTR and PTR registers are set to 1, then any transition of that bit at the
Operation Condition register sets the corresponding bit in the Operation Event register.
If the same bits in both NTR and PTR registers are set to 0, then no transition of that bit at the
Operation Condition register can set the corresponding bit in the Operation Event register.
NOTE:Setting a bit in the PTR or NTR filter can of itself generate positive or negative events in
the corresponding Operation Event register.
Command Syntax
Parameters
Default Value
Examples
Query Syntax
Returned Parameters
Related Commands
STATus:OPERation:NTRansition <NRf+>
STATus:OPERation:PTRansition <NRf+>
0 to 32767 | MAXimum | MINimum
0
Bit Configuration of Questionable Status Registers
Bit Position 15-14 13 12 11 10 9 8 7–5 4 3 2 1 0
Bit Name N.U. PS OV LRV UNR EPU RRV N.U. OT OP N.U. OC VF
Bit Weight 8192 4096 2048 1024 512 256 16 8 4 2 1
VF voltage fault has occurred
OC over-current condition has occurred
OP over-power condition has occurred
OT over-temperature condition has occurred
RRV reverse voltage on the sense terminals
EPU extended power unavailable
UNR input is unregulated
LRV reverse voltage on the input terminals
OV over-voltage condition has occurred
PS protection shutdown circuit has tripped
STATus:QUEStionable?
This query returns the value of the Questionable Event register. The Event register is a read-only register
that holds (latches) all events that pass into it. Reading the Questionable Event register clears it. This
command is not channel specific, it applies to the entire mainframe.
Query Syntax
Parameters
Examples
Returned Parameters
Related Commands
STATus:QUEStionable[:EVENt]?
None
STAT:QUES:EVEN?
<NR1> (register value)
*CLS
STATus:QUEStionable:CONDition?
This query returns the value of the Questionable Condition register. That is a read-only register that holds
the real-time (unlatched) questionable status of the electronic load. This command is not channel specific,
it applies to the entire mainframe.
Query Syntax
Parameters
Examples
Returned Parameters
Related Commands
STATus:QUEStionable:CONDition?
None
STAT:QUES:COND?
<NR1> (register value)
STAT:OPER:COND?
STATus:QUEStionable:ENABle
This command sets or reads the value of the Questionable Enable register. This register is a mask for
enabling specific bits from the Questionable Event register to set the questionable summary (QUES) bit of
the Status Byte register. This bit (bit 3) is the logical OR of all the Questionable Event register bits that are
enabled by the Questionable Status Enable register. This command is not channel specific, it applies to
the entire mainframe.
Command Syntax
Parameters
Default Value
Examples
Query Syntax
Returned Parameters
Related Commands
STATus:QUEStionable:ENABle <NRf+>
0 to 32767 | MAXimum | MINimum
0
System commands control the system-level functions of the electronic load that are not directly related to
input control or measurement functions.
SYSTem:ERRor?
This query returns the next error number followed by its corresponding error message string from the
remote programming error queue. The queue is a FIFO (first-in, first-out) buffer that stores errors as they
occur. As it is read, each error is removed from the queue. When all errors have been read, the query
returns “0, No Error”. If more errors are accumulated than the queue can hold, the last error in the queue
is “-350, Too Many Errors”.
Query Syntax
Parameters
Returned Parameters
Examples
SYSTem:ERRor?
None
<NR1>, <SRD>
SYST:ERR?
SYSTem:LOCal
This command places the electronic load in local mode during RS-232 operation. The front panel keys are
functional.
Command Syntax
Parameters
Example
Related Commands
SYSTem:LOCal
None
SYST:LOC
SYST:REM SYST:RWL
SYSTem:REMote
This command places the electronic load in remote mode during RS-232 operation. This disables all front
panel keys except the Local key. Pressing the Local key while in the remote state returns the front panel to
the local state.
Command Syntax
Parameters
Example
Related Commands
SYSTem:REMote
None
SYST:REM
SYST:LOC SYST:RWL
SYSTem:RWLock
This command places the electronic load in remote mode during RS-232 operation. All front panel keys
including the Local key are disabled. Use SYSTem:LOCal to return the front panel to the local state.
Command Syntax
Parameters
Example
Related Commands
SYSTem:RWLock
None
SYST:RWL
SYST:REM SYST:LOC
SYSTem:VERSion?
This query returns the SCPI version number to which the electronic load complies. The value is of the
form YYYY.V, where YYYY is the year and V is the revision number for that year.
Query Syntax
Parameters
Examples
Returned Parameters
SYSTem:VERSion?
None
SYST:VERS?
<NR2>
93
4 - Language Dictionary
Trigger Commands
Trigger commands controls the triggering of the electronic load. Chapter 3 under "Triggering Changes"
provides an explanation of the Trigger System.
See also [SOURce:]CURRent:TRIGgered, [SOURce:]RESistance:TRIGgered, and
[SOURce:]VOLTage:TRIGgered in the Input Commands section.
NOTE:The list and measurement commands must first be enabled using the INITiate commands
or no action due to triggering will occur. This does not apply to transient triggers.
ABORt
This command resets the list and measurement trigger systems to the Idle state. Any list or measurement
that is in progress is immediately aborted. ABORt also resets the WTG bit in the Operation Condition
Status register (see chapter 3 under “Programming the Status Registers”). ABORt is executed at power
turn-on and upon execution of *RCL, RST, or any implied abort command (see List Commands).
NOTE:If INITiate:CONTinuous ON has been programmed, the trigger system initiates itself
immediately after ABORt, thereby setting the WTG bit.
Command Syntax
Parameters
Examples
Related Commands
ABORt
None
ABOR
INIT *RST *TRG TRIG
INITiate:SEQuence
INITiate:NAME
These equivalent commands prepare the list for the execution of the next trigger. These commands are
not channel specific, they apply to the entire mainframe. If the trigger system is not in the Idle state, they
are ignored. INITiate:SEQuence references the list sequence by a number, while INITiate:NAME
references the list sequence by the name LIST.
Sequence Number Sequence Name Description
1 (the default) LIST List trigger sequence
Command Syntax
Parameters
Examples
Related Commands
INITiate[:IMMediate]:SEQuence[ 1 ]
INITiate[:IMMediate]:NAME LIST
For INIT:NAME: LIST
INIT:SEQ1 INIT:NAME LIST
ABOR INIT:CONT TRIG *TRG
INITiate:SEQuence2
INITiate:NAME
These equivalent commands prepare the measurement system to take a measurement on the next
trigger. These commands are not channel specific, they apply to the entire mainframe. If the trigger
system is not in the Idle state, they are ignored. INITiate:SEQuence references the measurement
sequence by a number, while INITiate:NAME references the measurement sequence by the name
ACQuire.
Sequence Number Sequence Name Description
2 ACQuire Measurement acquire trigger sequence
94
Language Dictionary - 4
Command Syntax
Parameters
Examples
Related Commands
INITiate[:IMMediate]:SEQuence2
INITiate[:IMMediate]:NAME ACQuire
For INIT:NAME: ACQuire
These equivalent commands prepare the list to respond to trigger commands. ON or 1 continuously
initiates the list. OFF or 0 turns off continuous initiation. Upon the receipt of a trigger with continuous
initiation on, one of the following actions occur:
If LIST:STEP is set to ONCe, the list will progress to the next step in the sequence.
If LIST:STEP is AUTO, each trigger will start the list again.
These commands are not channel specific, they apply to the entire mainframe. If the trigger system is not
in the Idle state and therefore already initiated, the initiate commands are ignored.
Command Syntax
Parameters
Examples
Related Commands
INITiate:CONTinuous:SEQuence[1] <bool>
INITiate:CONTinuous:NAME LIST, <bool>
0 | 1 | OFF | ON
INIT:CONT:SEQ1 ON INIT:CONT:NAME LIST, 1
ABOR INIT:CONT TRIG *TRG
TRIGger
When the trigger system has been initiated, this command generates a trigger signal regardless of the
selected trigger source. This command is not channel specific, it applies to the entire mainframe.
Command Syntax
Parameters
Examples
Related Commands
TRIGger[:IMMediate]
None
TRIG
ABOR TRIG:SOUR TRIG:DEL TRIG:TIM
TRIGger:DELay
Channel Specific
This command sets the time delay between the detection of a trigger signal and the start of any
corresponding trigger action. After the time delay has elapsed, the trigger is implemented. This command
only applies to the selected channel.
Command Syntax
Parameters
Unit
*RST Value
Examples
Query Syntax
Returned Parameters
Related Commands
TRIGger:DELay <NRf+>
0 - 0.032s | MINimum | MAXimum
seconds
0
TRIG:DEL .025 TRIG:DEL MAX
TRIGger:DELay?
<NR3>
ABOR TRIG TRIG:SOUR TRIG:TIM
95
4 - Language Dictionary
TRIGger:SEQuence2:COUNt
This command sets up a successive number of triggers for measuring data. With this command, the
trigger system needs to be initialized only once at the start of the acquisition period. After each completed
measurement, the instrument waits for the next valid trigger condition to start another measurement. This
continues until the count has completed.
Command Syntax
Parameters
*RST Value
Examples
Query Syntax
Returned Parameters
Related Commands
TRIGger:SEQuence2:COUNt<NRf+>
1 to 100
1
TRIG:SEQ2:COUN 5
TRIGger:SEQuence2:COUNt?
<NR3>
TRIG INIT:SEQ
TRIGger:SOURce
This command selects the trigger source. This command is not channel specific, it applies to the entire
mainframe.
BUS
EXTernal
HOLD
LINE
TIMer
Accepts a GPIB <GET> signal or a *TRG command as the trigger source. This selection
guarantees that all previous commands are complete before the trigger occurs.
Selects the electronic load’s trigger input as the trigger source. This trigger is processed
as soon as it is received.
Only the TRIG:IMM command will generate a trigger in HOLD mode. All other trigger
commands are ignored.
This generates triggers that are in synchronization with the ac line frequency.
This generates triggers that are in synchronization with the electronic load's internal
oscillator as the trigger source. The internal oscillator begins running as soon as this
command is executed. Use TRIG:TIM to program the oscillator period.
Command Syntax
Parameters
*RST Value
Examples
Query Syntax
Returned Parameters
Related Commands
TRIGger:SOURce <CRD>
BUS | EXTernal | HOLD | LINE | TIMer
HOLD
This command specifies the period of the triggers generated by the internal trigger generator. This
command is not channel specific, it applies to the entire mainframe.
Command Syntax
Parameters
Unit
*RST Value
Examples
Query Syntax
Returned Parameters
Related Commands
TRIGger:TIMer <NRf+>
8µs to 4s | MINimum | MAXimum
seconds
0.001
TRIG:TIM .25 TRIG:TIM MAX
TRIGger:TIMer?
<NR3>
ABOR TRIG TRIG:SOUR TRIG:DEL
96
Language Dictionary - 4
Common Commands
Common commands begin with an * and consist of three letters (command) IEEE 488.2 standard to
perform some common interface functions. The electronic loads respond to the required common
commands that control status reporting, synchronization, and internal operations. The electronic loads
also respond to optional common commands that control triggers, power-on conditions, and stored
operating parameters.
Common commands and queries are listed alphabetically. If a command has a corresponding query that
simply returns the data or status specified by the command, then both command and query are included
under the explanation for the command. If a query does not have a corresponding command or is
functionally different from the command, then the query is listed separately. The description for each
common command or query specifies any status registers affected. Refer to chapter 3 under
“Programming the Status Registers”, which explains how to read specific register bits and use the
information that they return.
*CLS
This command clears the following registers (see chapter 3 under “Programming the Status Registers” for
descriptions of all registers):
Standard Event Status
Operation Status Event
Questionable Status Event
Status Byte
Error Queue
Command Syntax
Parameters
*CLS
None
*ESE
This command programs the Standard Event Status Enable register bits. The programming determines
which events of the Standard Event Status Event register (see *ESR?) are allowed to set the ESB (Event
Summary Bit) of the Status Byte register. A "1" in the bit position enables the corresponding event. All of
the enabled events of the Standard Event Status Event Register are logically ORed to cause the Event
Summary Bit (ESB) of the Status Byte Register to be set. See chapter 3 under “Programming the Status
Registers” for descriptions of the Standard Event Status registers.
The query reads the Standard Event Status Enable register.
Command Syntax
Parameters
Power-On Value
Examples
Query Syntax
Returned Parameters
Related Commands
*ESE <NRf>
0 to 255
see *PSC
*ESE 129
*ESE?
<NR1>
*ESR? *PSC *STB?
97
4 - Language Dictionary
Bit Configuration of Standard Event Status Enable Register
Bit Position 7 6 5 4 3 2 1 0
Bit Name PON not used CME EXE DDE QYE not used OPC
Bit Weight 128 32 16 8 4 1
PON Power-on
CME Command error
EXE Execution error
This query reads the Standard Event Status Event register. Reading the register clears it. The bit
configuration of this register is the same as the Standard Event Status Enable register (see *ESE). See
chapter 3 under “Programming the Status Registers” for a detailed explanation of this register.
This query requests the electronic load to identify itself. It returns the data in four fields separated by
commas.
Query Syntax
Parameters
Returned Parameters <AARD> Field Information
Example
*IDN?
None
Agilent Technologies manufacturer
xxxxA model number
nnnnA-nnnnn serial number or 0
<R>.xx.xx firmware revision
Agilent Technologies, N3300A, 0, A.00.01
*OPC
This command causes the interface to set the OPC bit (bit 0) of the Standard Event Status register when
the electronic load has completed all pending operations. (See *ESE for the bit configuration of the
Standard Event Status registers.) Pending operations are complete when:
All commands sent before *OPC have been executed. This includes overlapped commands. Most
commands are sequential and are completed before the next command is executed. Overlapped
commands are executed in parallel with other commands. Commands that affect trigger actions
are overlapped with subsequent commands sent to the electronic load. The *OPC command
provides notification that all overlapped commands have been completed.
All triggered actions are completed and the trigger system returns to the Idle state.
*OPC does not prevent processing of subsequent commands but Bit 0 will not be set until all pending
operations are completed. The query causes the interface to place an ASCII "1" in the Output Queue
when all pending operations are completed.
Command Syntax
Parameters
Query Syntax
Returned Parameters
Related Commands
*OPC
None
*OPC?
<NR1>
*TRIG *WAI
98
Language Dictionary - 4
*OPT?
This query requests the electronic load to identify any options that are installed. Options are identified by
number. A 0 indicates no options are installed.
Query Syntax
Returned Parameters
*OPT?
<AARD>
*PSC
This command controls the automatic clearing at power-on of the Service Request Enable and the
Standard Event Status enable registers as follows (see chapter 3 under “Programming the Status
Registers” for register details):
1 or ON
0 or OFF
The query returns the current state of *PSC.
Returned Parameters
Prevents the register contents from being saved, causing them to be cleared at power-on.
This prevents a PON event from clearing SRQ at power-on.
Saves the contents of the Service Request Enable and the Standard Event Status enable
registers in non-volatile memory and recalls them at power-on. This allows a PON event to
generate SRQ at power-on.
Command Syntax
Parameters
Example
Query Syntax
Related Commands
*PSC <Bool>
0 | 1 | OFF | ON
*PSC 0 *PSC 1
*PSC?
0 | 1
*ESE *SRE
*RCL
This command restores the electronic load to a state that was previously stored in memory with a *SAV
command to the specified location. All states are recalled with the following exceptions:
CAL:STATe is set to OFF
The trigger system is set to the Idle state by an implied ABORt command (this cancels any
uncompleted trigger actions)
NOTE:The device state stored in location 0 is automatically recalled at power turn-on. Lists are
only restored if they have been saved in non-volatile memory locations 0, 7, 8, and 9.
Command Syntax
Parameters
Example
Related Commands
*RCL <NRf>
0 to 9
*RCL 3
*PSC *RST *SAV
99
4 - Language Dictionary
*RDT?
This query reads the model numbers of the modules installed in the mainframe. It returns the data in
comma-separated fields.
Query Syntax
Parameters
Returned Parameters
Example
*RDT?
None
model numbers separated by commas
CHAN1:N3302A; CHAN2:N3302A; CHAN3:N3304A
*RST
This command resets ALL channels of the electronic load to the following factory-defined states:
CAL:STAT OFF [SOUR:]RES MAX
CHAN 1 [SOUR:]RES:MODE FIX
INP ON [SOUR:]RES:RANG MAX
INP:SHOR OFF [SOUR:]RES:SLEW MAX
PORT0 OFF [SOUR:]RES:SLEW:NEG MAX
PORT1 0 [SOUR:]RES:SLEW:POS MAX
SENS:CURR:RANG MAX [SOUR:]RES:TLEV MAX
SENS:SWE:POIN 1 [SOUR:]RES:TRIG MAX
SENS:SWE:OFFS 0 [SOUR:]TRAN OFF
SENS:SWE:TINT 0.00001 [SOUR:]TRAN:DCYC 50%
SENS:VOLT:RANG MAX [SOUR:]TRAN:FREQ 10000
SENS:WIND RECT [SOUR:]TRAN:MODE CONT
[SOUR:]CURR MIN [SOUR:]TRAN:TWID 0.0005
[SOUR:]CURR:MODE FIX [SOUR:]VOLT MAX
[SOUR:]CURR:PROT MAX [SOUR:]VOLT:MODE FIX
[SOUR:]CURR:PROT:DEL 15 s [SOUR:]VOLT:RANG MAX
[SOUR:]CURR:PROT:STAT OFF [SOUR:]VOLT:SLEW MAX
[SOUR:]CURR:RANG MAX [SOUR:]VOLT:SLEW :NEG MAX
[SOUR:]CURR:SLEW MAX [SOUR:]VOLT:SLEW:POS MAX
[SOUR:]CURR:SLEW:NEG MAX [SOUR:]VOLT:TLEV MAX
[SOUR:]CURR:SLEW:POS MAX [SOUR:]VOLT:TRIG MAX
[SOUR:]CURR:TLEV MIN TRIG:DEL 0
[SOUR:]CURR:TRIG MIN TRIG:SOUR HOLD
[SOUR:]FUNC CURR TRIG:SEQ2:COUN 1
[SOUR:]LIST:COUN 1 TRIG:TIM 0.001
[SOUR:]LIST:STEP AUTO
NOTE: *RST does not clear any of the status registers or the error queue, and does not
affect any interface error conditions.
*RST sets the trigger system to the Idle state.
*RST clears the presently active list.
Command Syntax
Parameters
Related Commands
*RST
None
*PSC *SAV
100
Loading...
+ hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.