Skip to content

KozhinovAlexander/eaps2000

Repository files navigation

eaps2000 - PS 2000B Series PSU Python Control Unit

The eaps2000 is a python module for Elektro-Automatik PS 2000B Series PSU control.

This software implements following functionality:

  • Reading out device information (serial number, model etc.)
  • Setting ovewr-voltage and over-current protection
  • Setting voltage and current for an output
  • Controlling the output stage on/off
  • Acknowledging alarms

Installing the package

Install the project from PyPi or build it first.

pip install eaps2000

Getting Started

Using CLI interface:

# Showing help
eaps2000 --help

# Show device info and current state
eaps2000 -p COM123 --info

# Set output voltage to 3.3V, current to 1.3A, output off:
eaps2000 -p COM123 -V 3.5 -I 1.3 --off

# Set output voltage to 3.3V, current to 1.3A, output on:
# CAUTION: This command will apply power to the output!
eaps2000 -p COM123 -V 3.5 -I 1.3 --on

NOTE: Instead COM123 port a port /tty/usbACM0 shall be used on Linux.

Using Python interface:

from eaps2000 import eaps2k

port = 'COM123'  # use /tty/ACM0 for linux based system
with eaps2k(port) as ps:
    # Prepare config:
    cfg = eaps2k.get_config_template()
    cfg['ACK'] = True  # acknowledge alarms if any
    cfg['OVP'] = 5.0   # over-voltage-protection value
    cfg['OCP'] = 0.5   # over-current-protection value
    cfg['Iset'] = 0.1  # current to be set
    cfg['Vset'] = 3.3  # voltage to be set

    # Turn off the output stage:
    ps.set_output_state(False)

    # Apply configuration:
    ps.configure(cfg)

    # Turn on the output stage:
    # ATTENTION: The power will be applied to your probe here!
    # ps.set_output_state(True)

    # Show information:
    ps.print_info()

Building the Project

The project is built with hatchling

pip install hatchling && flake8 . -v && hatchling build && pytest --flake8

Installing freshly built project may be done by invoking:

pip install ./dist/eaps2000-*.whl --upgrade --force-reinstall

Documentation form the Manufacturer

The manufacturer EA ELEKTRO-AUTOMATIK GMBH & CO. KG has an overview over all available models of PS 2000 B Series in the shop Serie PS 2000 B 100 bis 332 W on German web-page.

The Programming_Guide_PS2000B_TFT gives an overview of the protovol implemented. It also describes voltage/current conversions necessary for the communication.

Object List

Additional document object_list_ps2000b_de_en.pdf mentioned in Programming_Guide_PS2000B_TFT gives an overview over control commands. Each object in the list is basically a get/set command to control the PSU.

The table below lists objects in one place:

Object Description Access Data type Data length in Bytes Mask for type 'char' Data Example or further description
0 Device type ro string 16 PS2042-06B + EOL (EOL= End of Line 0x00)
1 Device serial no. ro string 16 1034440002 + EOL
2 Nominal voltage ro float 4 Unom = 42.0 (Floating point number IEEE754 Standard)
3 Nominal current ro float 4 Inom = 6.0 (Floating point number IEEE754 Standard)
4 Nominal power ro float 4 Pnom = 100.0 (Floating point number IEEE754 Standard)
6 Device article no. ro string 16 39200112 + EOL
8 Manufacturer ro string 16 Manufacturer's name + EOL
9 Software version ro string 16 V2.01 09.08.06 + EOL
19 Device class ro int 2 0x0010 = PS 2000 B Single, 0x0018 = PS 2000 B Triple
38 OVP threshold rw int 2 Overvoltage set value 0-110% of Unom * 256
39 OCP threshold rw int 2 Overcurrent set value 0-110% of Inom * 256
50 Set value U rw int 2 Set value of voltage 0-100% of Unom * 256
51 Set value I rw int 2 Set value of current 0-100% of Inom * 256
54 Power supply control rw char 2 0x01
0x01
0x0A
0x10
0x10
0xF0
0xF0
0x01
0x00
0x0A
0x10
0x00
0xF0
0xE0
  • Switch power output on
  • Switch power output off
  • Acknowledge alarms
  • Switch to remote control
  • Switch to manual control
  • Tracking on
  • Tracking off
  • 71 Status + Actual values ro int 6
  • Byte 0:
    Bits 1+0:
    Byte 1:
    Bit 0:
  • Bits 2+1:
    Bit 3:
    Bit 4:
    Bit 5:
    Bit 6:
    Bit 7:
  • Word 1:
  • Word 2:
  • Query device state
    00=free access; 01=Remote

    1=Output on
  • Controller state: 00=CV, 10=CC
    1=Tracking active**
    1=OVP active
    1=OCP active
    1=OPP active
    1=OTP active
  • Actual voltage (% of Unom * 256)
  • Actual current (% of Inom * 256)
  • 72 Status + Momentary set values ro int 6
  • Byte 0:
    Bits 1+0:
    Byte 1:
    Bit 0:
  • Bits 2+1:
    Bit 3:
    Bit 4:
    Bit 5:
    Bit 6:
    Bit 7:
  • Word 1:
  • Word 2:
  • Query device state
    00=free access; 01=Remote

    1=Output on
  • Controller state: 00=CV; 10=CC
    1=Tracking active**
    1=OVP active
    1=OCP active
    1=OPP active
    1=OTP active
  • Set value of voltage (% of Unom * 256)
  • Set value of current (% of Inom * 256)
  • ** PS 2000 B Triple only