# Hewlett-Packard¶

## HP3456a Digital Voltmeter¶

class instruments.hp.HP3456a(filelike)[source]

The HP3456a is a 6 1/2 digit bench multimeter.

It supports DCV, ACV, ACV + DCV, 2 wire Ohms, 4 wire Ohms, DCV/DCV Ratio, ACV/DCV Ratio, Offset compensated 2 wire Ohms and Offset compensated 4 wire Ohms measurements.

Measurements can be further extended using a system math mode that allows for pass/fail, statistics, dB/dBm, null, scale and percentage readings.

HP3456a is a HPIB / pre-448.2 instrument.

class MathMode[source]

Enum with the supported math modes

db = 9
dbm = 4
null = 3
off = 0
pass_fail = 1
percent = 8
scale = 7
statistic = 2
thermistor_c = 6
thermistor_f = 5
class Mode[source]

Enum containing the supported mode codes

acv = 'S0F2'

AC voltage

acvdcv = 'S0F3'

RMS of DC + AC voltage

dcv = 'S0F1'

DC voltage

oc_resistence_2wire = 'S1F4'

offset compensated 2 wire resistance

oc_resistence_4wire = 'S1F5'

offset compensated 4 wire resistance

ratio_acv_dcv = 'S1F2'

ratio AC / DC voltage

ratio_acvdcv_dcv = 'S1F3'

ratio (AC + DC) / DC voltage

ratio_dcv_dcv = 'S1F1'

ratio DC / DC voltage

resistance_2wire = 'S0F4'

2 wire resistance

resistance_4wire = 'S0F5'

4 wire resistance

class Register[source]

Enum with the register names for all HP3456a internal registers.

count = 'C'
delay = 'D'
lower = 'L'
mean = 'M'
nplc = 'I'
number_of_digits = 'G'
number_of_readings = 'N'
r = 'R'
upper = 'U'
variance = 'V'
y = 'Y'
z = 'Z'
class TriggerMode[source]

Enum with valid trigger modes.

external = 2
hold = 4
internal = 1
single = 3
class ValidRange[source]

Enum with the valid ranges for voltage, resistance, and number of powerline cycles to integrate over.

nplc = (0.1, 1.0, 10.0, 100.0)
resistance = (100.0, 1000.0, 10000.0, 100000.0, 1000000.0, 10000000.0, 100000000.0, 1000000000.0)
voltage = (0.1, 1.0, 10.0, 100.0, 1000.0)
auto_range()[source]

Set input range to auto. The HP3456a should upscale when a reading is at 120% and downscale when it below 11% full scale. Note that auto ranging can increase the measurement time.

fetch(mode=None)[source]

Retrieve n measurements after the HP3456a has been instructed to perform a series of similar measurements. Typically the mode, range, nplc, analog filter, autozero is set along with the number of measurements to take. The series is then started at the trigger command.

Example usage:

>>> dmm.number_of_digits = 6
>>> dmm.auto_range()
>>> dmm.nplc = 1
>>> dmm.mode = dmm.Mode.resistance_2wire
>>> n = 100
>>> dmm.trigger()
>>> time.sleep(n * 0.04)
>>> v = dmm.fetch(dmm.Mode.resistance_2wire)
>>> print len(v)
10

Parameters: mode (HP3456a.Mode) – Desired measurement mode. If not specified, the previous set mode will be used, but no measurement unit will be returned. A series of measurements from the multimeter. Quantity
measure(mode=None)[source]

Instruct the HP3456a to perform a one time measurement. The measurement will use the current set registers for the measurement (number_of_readings, number_of_digits, nplc, delay, mean, lower, upper, y and z) and will immediately take place.

Note that using HP3456a.measure() will override the trigger_mode to HP3456a.TriggerMode.single

Example usage:

>>> dmm = ik.hp.HP3456a.open_gpibusb("/dev/ttyUSB0", 22)
>>> dmm.number_of_digits = 6
>>> dmm.nplc = 1
>>> print dmm.measure(dmm.Mode.resistance_2wire)

Parameters: mode (HP3456a.Mode) – Desired measurement mode. If not specified, the previous set mode will be used, but no measurement unit will be returned. A measurement from the multimeter. Quantity
trigger()[source]

Signal a single manual trigger event to the HP3456a.

autozero

Set the autozero mode.

This is used to compensate for offsets in the dc input amplifier circuit of the multimeter. If set, the amplifier”s input circuit is shorted to ground prior to actual measurement in order to take an offset reading. This offset is then used to compensate for drift in the next measurement. When disabled, one offset reading is taken immediately and stored into memory to be used for all successive measurements onwards. Disabling autozero increases the HP3456a”s measurement speed, and also makes the instrument more suitable for high impendance measurements since no input switching is done.

count

Get the number of measurements taken from HP3456a.Register.count when in HP3456a.MathMode.statistic.

Return type: int
delay

Get/set the delay that is waited after a trigger for the input to settle using HP3456a.Register.delay.

Type: As specified, assumed to be s otherwise s
filter

Set the analog filter mode.

The HP3456a has a 3 pole active filter with greater than 60dB attenuation at frequencies of 50Hz and higher. The filter is applied between the input terminals and input amplifier. When in ACV or ACV+DCV functions the filter is applied to the output of the ac converter and input amplifier. In these modes select the filter for measurements below 400Hz.

input_range

Set the input range to be used.

The HP3456a has separate ranges for ohm and for volt. The range value sent to the instrument depends on the unit set on the input range value. auto selects auto ranging.

Type: Quantity
lower

Get/set the value in HP3456a.Register.lower, which indicates the lowest value measurement made while in HP3456a.MathMode.statistic, or the lowest value preset for HP3456a.MathMode.pass_fail.

Type: float
math_mode

Set the math mode.

The HP3456a has a number of different math modes that can change measurement output, or can provide additional statistics. Interaction with these modes is done via the HP3456a.Register.

mean

Get the mean over HP3456a.Register.count measurements from HP3456a.Register.mean when in HP3456a.MathMode.statistic.

Return type: float
mode

Set the measurement mode.

nplc

Get/set the number of powerline cycles to integrate per measurement using HP3456a.Register.nplc.

Setting higher values increases accuracy at the cost of a longer measurement time. The implicit assumption is that the input reading is stable over the number of powerline cycles to integrate.

Type: int
number_of_digits

Get/set the number of digits used in measurements using HP3456a.Register.number_of_digits.

Set to higher values to increase accuracy at the cost of measurement speed.

Type: int
number_of_readings

Get/set the number of readings done per trigger/measurement cycle using HP3456a.Register.number_of_readings.

Type: float float
r

Get/set the value in HP3456a.Register.r, which indicates the resistor value used while in HP3456a.MathMode.dbm or the number of recalled readings in reading storage mode.

Type: float float
relative

Enable or disable HP3456a.MathMode.Null on the instrument.

Type: bool
trigger_mode

Set the trigger mode.

Note that using HP3456a.measure() will override the trigger_mode to HP3456a.TriggerMode.single.

upper

Get/set the value in HP3456a.Register.upper, which indicates the highest value measurement made while in HP3456a.MathMode.statistic, or the highest value preset for HP3456a.MathMode.pass_fail.

Type: float float
variance

Get the variance over HP3456a.Register.count measurements from HP3456a.Register.variance when in HP3456a.MathMode.statistic.

Return type: float
y

Get/set the value in HP3456a.Register.y to be used in calculations when in HP3456a.MathMode.scale or HP3456a.MathMode.percent.

Type: float float
z

Get/set the value in HP3456a.Register.z to be used in calculations when in HP3456a.MathMode.scale or the first reading when in HP3456a.MathMode.statistic.

Type: float float

## HP6624a Power Supply¶

class instruments.hp.HP6624a(filelike)[source]

The HP6624a is a multi-output power supply.

This class can also be used for HP662xa, where x=1,2,3,4,7. Note that some models have less channels then the HP6624 and it is up to the user to take this into account. This can be changed with the channel_count property.

Example usage:

>>> import instruments as ik
>>> psu = ik.hp.HP6624a.open_gpibusb('/dev/ttyUSB0', 1)
>>> psu.channel[0].voltage = 10 # Sets channel 1 voltage to 10V.

class Channel(hp, idx)[source]

Class representing a power output channel on the HP6624a.

Warning

This class should NOT be manually created by the user. It is designed to be initialized by the HP6624a class.

query(cmd)[source]

Function used to send a command to the instrument while wrapping the command with the neccessary identifier for the channel.

Parameters: cmd (str) – Command that will be sent to the instrument after being prefixed with the channel identifier The result from the query str
reset()[source]

Reset overvoltage and overcurrent errors to resume operation.

sendcmd(cmd)[source]

Function used to send a command to the instrument while wrapping the command with the neccessary identifier for the channel.

Parameters: cmd (str) – Command that will be sent to the instrument after being prefixed with the channel identifier
current

Gets/sets the current of the specified channel. If the device is in constant voltage mode, this sets the current limit.

Note there is no bounds checking on the value specified.

Units: As specified, or assumed to be $$\text{A}$$ otherwise. float or Quantity
current_sense

Gets the actual output current as measured by the instrument for the specified channel.

Units: $$\text{A}$$ (amps) Quantity
mode

Gets/sets the mode for the specified channel.

output

Gets/sets the outputting status of the specified channel.

This is a toggle setting. True will turn on the channel output while False will turn it off.

Type: bool
overcurrent

Gets/sets the overcurrent protection setting for the specified channel.

This is a toggle setting. It is either on or off.

Type: bool
overvoltage

Gets/sets the overvoltage protection setting for the specified channel.

Note there is no bounds checking on the value specified.

Units: As specified, or assumed to be $$\text{V}$$ otherwise. float or Quantity
voltage

Gets/sets the voltage of the specified channel. If the device is in constant current mode, this sets the voltage limit.

Note there is no bounds checking on the value specified.

Units: As specified, or assumed to be $$\text{V}$$ otherwise. float or Quantity
voltage_sense

Gets the actual voltage as measured by the sense wires for the specified channel.

Units: $$\text{V}$$ (volts) Quantity
class Mode[source]

Enum holding typical valid output modes for a power supply.

However, for the HP6624a I believe that it is only capable of constant-voltage output, so this class current does not do anything and is just a placeholder.

current = 0
voltage = 0
clear()[source]

Taken from the manual:

Return the power supply to its power-on state and all parameters are returned to their initial power-on values except the following:

1. The store/recall registers are not cleared.
2. The power supply remains addressed to listen.
3. The PON bit in the serial poll register is cleared.
channel

Gets a specific channel object. The desired channel is specified like one would access a list.

Return type: HP6624a.Channel

HP6624a for example using this property.

channel_count

Gets/sets the number of output channels available for the connected power supply.

Type: int
current

Gets/sets the current for all four channels.

Units: As specified (if a Quantity) or assumed to be of units Amps. tuple[~pint.Quantity, …] with units Amp
current_sense

Gets the actual current as measured by the instrument for all channels.

Units: $$\text{A}$$ (amps) tuple[~pint.Quantity, …]
voltage

Gets/sets the voltage for all four channels.

Units: As specified (if a Quantity) or assumed to be of units Volts. tuple[~pint.Quantity, …] with units Volt
voltage_sense

Gets the actual voltage as measured by the sense wires for all channels.

Units: $$\text{V}$$ (volts) tuple[~pint.Quantity, …]

## HP6632b Power Supply¶

class instruments.hp.HP6632b(filelike)[source]

The HP6632b is a system dc power supply with an output rating of 0-20V/0-5A, precision low current measurement and low output noise.

According to the manual this class MIGHT be usable for any HP power supply with a model number

• HP663Xb with X in {1, 2, 3, 4},
• HP661Xc with X in {1,2, 3, 4} and
• HP663X2A for X in {1, 3}, without the additional measurement capabilities.

HOWEVER, it has only been tested by the author with HP6632b supplies.

Example usage:

>>> import instruments as ik
>>> psu = ik.hp.HP6632b.open_gpibusb('/dev/ttyUSB0', 6)
>>> psu.voltage = 10             # Sets voltage to 10V.
>>> psu.output = True            # Enable output
>>> psu.voltage
array(10.0) * V
>>> psu.voltage_trigger = 20     # Set transient trigger voltage
>>> psu.init_output_trigger()    # Prime instrument to initiated state, ready for trigger
>>> psu.trigger()                # Send trigger
>>> psu.voltage
array(10.0) * V

class ALCBandwidth[source]

Enum containing valid ALC bandwidth modes for the hp6632b

fast = 60000
normal = 15000
class DFISource[source]

Enum containing valid DFI sources for the hp6632b

event_status_bit = 'ESB'
off = 'OFF'
operation = 'OPER'
questionable = 'QUES'
request_service_bit = 'RQS'
class DigitalFunction[source]

Enum containing valid digital function modes for the hp6632b

data = 'DIG'
remote_inhibit = 'RIDF'
class ErrorCodes[source]

Enum containing generic-SCPI error codes along with codes specific to the HP6632b.

block_data_error = -160
block_data_not_allowed = -168
cal_not_enabled = 403
cal_password_incorrect = 402
cal_switch_prevents_cal = 401
character_data_error = -140
character_data_not_allowed = -148
character_data_too_long = -144
command_error = -100
command_header_error = -110
command_only_applic_rs232 = 602
computed_prog_cal_constants_incorrect = 405
computed_readback_cal_const_incorrect = 404
curr_or_volt_fetch_incompat_with_last_acq = 603
cv_or_cc_status_incorrect = 407
data_out_of_range = -222
data_type_error = -104
digital_io_selftest = 80
execution_error = -200
exponent_too_large = -123
expression_error = -170
expression_not_allowed = -178
front_panel_uart_buffer_overrun = 223
front_panel_uart_framing = 221
front_panel_uart_overrun = 220
front_panel_uart_parity = 222
front_panel_uart_timeout = 224
get_not_allowed = -105
header_separator_error = -111
header_suffix_out_of_range = -114
illegal_macro_label = -273
illegal_parameter_value = -224
incorrect_seq_cal_commands = 406
ingrd_recv_buffer_overrun = 213
invalid_block_data = -161
invalid_character = -101
invalid_character_data = -141
invalid_character_in_number = -121
invalid_expression = -171
invalid_inside_macro_definition = -183
invalid_outside_macro_definition = -181
invalid_separator = -103
invalid_string_data = -151
invalid_suffix = -131
macro_error_180 = -180
macro_error_270 = -270
macro_execution_error = -272
macro_parameter_error = -184
macro_recursion_error = -276
macro_redefinition_not_allowed = -277
measurement_overrange = 604
missing_parameter = -109
no_error = 0
numeric_data_error = -120
numeric_data_not_allowed = -128
operation_complete = -800
out_of_memory = -225
output_mode_must_be_normal = 408
ovdac_selftest = 15
parameter_not_allowed = -108
power_on = -500

Raised when the instrument detects that it has been turned from off to on.

program_mnemonic_too_long = -112
query_deadlocked = -430
query_error = -400
query_interrupted = -410
query_unterminated = -420
query_unterminated_after_indefinite_response = -440
ram_cal_checksum_failed = 3
ram_config_checksum_failed = 2
ram_rd0_checksum_failed = 1
ram_rst_checksum_failed = 5
ram_selftest = 10
ram_state_checksum_failed = 4
request_control_event = -700
rs232_recv_framing_error = 216
rs232_recv_overrun_error = 218
rs232_recv_parity_error = 217
string_data_error = -150
string_data_not_allowed = -158
suffix_error = -130
suffix_not_allowed = -138
suffix_too_long = -134
syntax_error = -102
system_error = -310
too_many_digits = -124
too_many_errors = -350
too_many_sweep_points = 601
too_much_data = -223
undefined_header = -113
unexpected_number_of_parameters = -115
user_request_event = -600
vdac_idac_selftest1 = 11
vdac_idac_selftest2 = 12
vdac_idac_selftest3 = 13
vdac_idac_selftest4 = 14
class RemoteInhibit[source]

Enum containing vlaid remote inhibit modes for the hp6632b.

latching = 'LATC'
live = 'LIVE'
off = 'OFF'
class SenseWindow[source]

Enum containing valid sense window modes for the hp6632b.

hanning = 'HANN'
rectangular = 'RECT'
abort_output_trigger()[source]

Set the output trigger system to the idle state.

check_error_queue()[source]

Checks and clears the error queue for this device, returning a list of ErrorCodes or int elements for each error reported by the connected instrument.

init_output_trigger()[source]

Set the output trigger system to the initiated state. In this state, the power supply will respond to the next output trigger command.

current_sense_range

Get/set the sense current range by the current max value.

A current of 20mA or less selects the low-current range, a current value higher than that selects the high-current range. The low current range increases the low current measurement sensitivity and accuracy.

Units: As specified, or assumed to be $$\text{A}$$ otherwise. float or Quantity
current_trigger

Gets/sets the pending triggered output current.

Note there is no bounds checking on the value specified.

Units: As specified, or assumed to be $$\text{A}$$ otherwise. float or Quantity
digital_data

Get/set digital in+out port to data. Data can be an integer from 0-7.

Type: int
digital_function

Get/set the inhibit+fault port to digital in+out or vice-versa.

display_brightness

Brightness of the display on the connected instrument, represented as a float ranging from 0 (dark) to 1 (full brightness).

Type: float
display_contrast

Contrast of the display on the connected instrument, represented as a float ranging from 0 (no contrast) to 1 (full contrast).

Type: float
init_output_continuous

Get/set the continuous output trigger. In this state, the power supply will remain in the initiated state, and respond continuously on new incoming triggers by applying the set voltage and current trigger levels.

Type: bool
line_frequency

Gets/sets the power line frequency setting for the instrument.

Returns: The power line frequency Hertz Quantity
output_dfi

Get/set the discrete fault indicator (DFI) output from the dc source. The DFI is an open-collector logic signal connected to the read panel FLT connection, that can be used to signal external devices when a fault is detected.

Type: bool
output_dfi_source

Get/set the source for discrete fault indicator (DFI) events.

Type: DFISource
output_protection_delay

Get/set the time between programming of an output change that produces a constant current condition and the recording of that condigition in the Operation Status Condition register. This command also delays over current protection, but not overvoltage protection.

Units: As specified, or assumed to be $$\text{s}$$ otherwise. float or Quantity
output_remote_inhibit

Get/set the remote inhibit signal. Remote inhibit is an external, chassis-referenced logic signal routed through the rear panel INH connection, which allows an external device to signal a fault.

sense_sweep_interval

Get/set the digitizer sample spacing. Can be set from 15.6 us to 31200 seconds, the interval will be rounded to the nearest 15.6 us increment.

Units: As specified, or assumed to be $$\text{s}$$ otherwise. float or Quantity
sense_sweep_points

Get/set the number of points in a measurement sweep.

Type: int
sense_window

Get/set the measurement window function.

voltage_alc_bandwidth

Get the “automatic level control bandwidth” which for the HP66332A and HP6631-6634 determines if the output capacitor is in circuit. Normal denotes that it is, and Fast denotes that it is not.

voltage_trigger

Gets/sets the pending triggered output voltage.

Note there is no bounds checking on the value specified.

Units: As specified, or assumed to be $$\text{V}$$ otherwise. float or Quantity

## HP6652a Single Output Power Supply¶

class instruments.hp.HP6652a(filelike)[source]

The HP6652a is a single output power supply.

Because it is a single channel output, this object inherits from both PowerSupply and PowerSupplyChannel.

According to the manual, this class MIGHT be usable for any HP power supply with a model number HP66XYA, where X is in {4,5,7,8,9} and Y is a digit(?). (e.g. HP6652A and HP6671A)

HOWEVER, it has only been tested by the author with an HP6652A power supply.

Example usage:

>>> import time
>>> import instruments as ik
>>> psu = ik.hp.HP6652a.open_serial('/dev/ttyUSB0', 57600)
>>> psu.voltage = 3 # Sets output voltage to 3V.
>>> psu.output = True
>>> psu.voltage
array(3.0) * V
>>> psu.voltage_sense < 5
True
>>> psu.output = False
>>> psu.voltage_sense < 1
True
>>> psu.display_textmode=True
>>> psu.display_text("test GOOD")
'TEST GOOD'
>>> time.sleep(5)
>>> psu.display_textmode=False

display_text(text_to_display)[source]

Sends up to 12 (uppercase) alphanumerics to be sent to the front-panel LCD display. Some punctuation is allowed, and can affect the number of characters allowed. See the programming manual for the HP6652A for more details.

Because the maximum valid number of possible characters is 15 (counting the possible use of punctuation), the text will be truncated to 15 characters before the command is sent to the instrument.

If an invalid string is sent, the command will fail silently. Any lowercase letters in the text_to_display will be converted to uppercase before the command is sent to the instrument.

No attempt to validate punctuation is currently made.

Because the string cannot be read back from the instrument, this method returns the actual string value sent.

Parameters: text_to_display ('str') – The text that you wish to have displayed on the front-panel LCD Returns the version of the provided string that will be send to the instrument. This means it will be truncated to a maximum of 15 characters and changed to all upper case. str
reset()[source]

Reset overvoltage and overcurrent errors to resume operation.

channel

Return the channel (which in this case is the entire instrument, since there is only 1 channel on the HP6652a.)

Return type: ‘tuple’ of length 1 containing a reference back to the parent HP6652a object.
current

Gets/sets the output current.

Note there is no bounds checking on the value specified.

Units: As specified, or assumed to be $$\text{A}$$ otherwise. float or Quantity
current_sense

Gets the actual output current as measured by the sense wires.

Units: $$\text{A}$$ (amps) Quantity
display_textmode

Gets/sets the display mode.

This is a toggle setting. True will allow text to be sent to the front-panel LCD with the display_text() method. False returns to the normal display mode.

Type: bool
mode

Unimplemented.

name

The name of the connected instrument, as reported by the standard SCPI command *IDN?.

Return type: str
output

Gets/sets the output status.

This is a toggle setting. True will turn on the instrument output while False will turn it off.

Type: bool
overcurrent

Gets/sets the overcurrent protection setting.

This is a toggle setting. It is either on or off.

Type: bool
overvoltage

Gets/sets the overvoltage protection setting in volts.

Note there is no bounds checking on the value specified.

Units: As specified, or assumed to be $$\text{V}$$ otherwise. float or Quantity
voltage

Gets/sets the output voltage.

Note there is no bounds checking on the value specified.

Units: As specified, or assumed to be $$\text{V}$$ otherwise. float or Quantity
voltage_sense

Gets the actual output voltage as measured by the sense wires.

Units: $$\text{V}$$ (volts) Quantity

## HPe3631a Power Supply¶

class instruments.hp.HPe3631a(filelike)[source]

The HPe3631a is a three channels voltage/current supply. - Channel 1 is a positive +6V/5A channel (P6V) - Channel 2 is a positive +25V/1A channel (P25V) - Channel 3 is a negative -25V/1A channel (N25V)

This module is designed for the power supply to be set to a specific channel and remain set afterwards as this device does not offer commands to set or read multiple channels without calling the channel set command each time (0.5s). It is possible to call a specific channel through psu.channel[idx], which will automatically reset the channel id, when necessary.

This module is likely to work as is for the Agilent E3631 and Keysight E3631 which seem to be rebranded but identical devices.

Example usage:

>>> import instruments as ik
>>> psu = ik.hp.HPe3631a.open_gpibusb("/dev/ttyUSB0", 10)
>>> psu.channelid = 2           # Sets channel to P25V
>>> psu.voltage = 12.5          # Sets voltage to 12.5V
>>> psu.voltage                 # Reads back set voltage
array(12.5) * V
>>> psu.voltage_sense           # Reads back sensed voltage
array(12.501) * V

class Channel(parent, valid_set)[source]

Class representing a power output channel on the HPe3631a.

Warning

This class should NOT be manually created by the user. It is designed to be initialized by the HPe3631a class.

channel

Gets a specific channel object. The desired channel is specified like one would access a list.

Return type: HPe3631a.Channel

HPe3631a for example using this property.

channelid

Gets/Sets the active channel ID.

Type: HPe3631a.ChannelType
current

Gets/sets the output current of the source.

Units: As specified, or assumed to be $$\text{A}$$ otherwise. float or Quantity
current_max
current_min
current_sense

Gets the actual output current as measured by the sense wires.

Units: As specified, or assumed to be $$\text{A}$$ otherwise. Quantity
mode

Gets/sets the mode for the specified channel.

The constant-voltage/constant-current modes of the power supply are selected automatically depending on the load (resistance) connected to the power supply. If the load greater than the set V/I is connected, a voltage V is applied and the current flowing is lower than I. If the load is smaller than V/I, the set current I acts as a current limiter and the voltage is lower than V.

output

Gets/sets the outputting status of the specified channel.

This is a toggle setting. ON will turn on the channel output while OFF will turn it off.

Type: bool
voltage

Gets/sets the output voltage of the source.

Units: As specified, or assumed to be $$\text{V}$$ otherwise. float or Quantity
voltage_max

Gets the maximum voltage for the current channel.

Units: $$\text{V}$$. Quantity
voltage_min

Gets the minimum voltage for the current channel.

Units: $$\text{V}$$. Quantity
voltage_range

Gets the voltage range for the current channel.

The MAX function SCPI command is designed in such a way on this device that it always returns the largest absolute value. There is no need to query MIN, as it is always 0., but one has to order the values as MAX can be negative.

Units: $$\text{V}$$. array of Quantity
voltage_sense

Gets the actual output voltage as measured by the sense wires.

Units: As specified, or assumed to be $$\text{V}$$ otherwise. Quantity