BK85XXB#

class BK85XXB(visa_resource: str | VisaConfig)[source]#

Bases: ELoadDriverBase

B&K Precision 8500B-series E-Load (8500B/8502B/8510B/8514B/8542B).

Hardware-validated against the 8514B; others share the SCPI surface but have not been bench-tested.

Methods

close

Close the underlying transport.

get_current

Measure the current the load is sinking on channel (amperes).

get_voltage

Measure the voltage at channel's terminals (volts).

open

Open the underlying transport and put the load in remote mode.

output_enable

Enable or disable load draw on channel.

set_level

Set the operating level on channel in the units appropriate for mode.

set_mode

Set the operating mode on channel: CC, CV, CP, or CR.

set_range

Set the operating range on channel from the expected maximum.

set_slewrate

Set the per-edge current slew rate on channel.

short_output

Apply or release the load's short on channel.

open() → None[source]#

Open the underlying transport and put the load in remote mode.

close() → None[source]#

Close the underlying transport. Idempotent.

short_output(enable: bool, channel: int) → None[source]#

Apply or release the load’s short on channel. Takes effect immediately.

set_mode(
mode: LoadMode,
channel: int,
) → None[source]#

Set the operating mode on channel: CC, CV, CP, or CR.

Not every model supports every mode; drivers should raise NotImplementedError for unsupported combinations.

set_level(
mode: LoadMode,
value: float,
channel: int,
curr_limit: float | None,
) → None[source]#

Set the operating level on channel in the units appropriate for mode.

Parameters:
  • mode

    Active load mode — caller passes it explicitly so the driver doesn’t need to track state. Units: CC → amperes, CV → volts, CP → watts, CR → ohms.

  • value

    Operating level in mode’s units.

  • channel

    Target channel (1-indexed).

  • curr_limit

    Optional current limit; only meaningful in CV mode. Drivers may ignore it in other modes.

set_range(
mode: LoadMode,
value: float,
channel: int,
) → None[source]#

Set the operating range on channel from the expected maximum.

value is the maximum operating value in mode’s units (see set_level()). Drivers typically snap to the closest hardware range that covers value.

set_slewrate(
direction: SlewRateDirection,
rate: float,
channel: int,
) → None[source]#

Set the per-edge current slew rate on channel.

Parameters:
  • direction

    RISE, FALL, or BOTH — which edge(s) the rate applies to.

  • rate

    Slew rate in amperes per microsecond (A/μs).

  • channel

    Target channel (1-indexed).

output_enable(enable: bool, channel: int) → None[source]#

Enable or disable load draw on channel.

get_current(channel: int) → float[source]#

Measure the current the load is sinking on channel (amperes).

get_voltage(channel: int) → float[source]#

Measure the voltage at channel’s terminals (volts).