Skip to main content

Elektro-Automatik Series PS 2000 Python Controller

Project description

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

    Project details


    Download files

    Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

    Source Distribution

    eaps2000-1.1.1.tar.gz (3.9 kB view details)

    Uploaded Source

    Built Distribution

    If you're not sure about the file name format, learn more about wheel file names.

    eaps2000-1.1.1-py3-none-any.whl (9.4 kB view details)

    Uploaded Python 3

    File details

    Details for the file eaps2000-1.1.1.tar.gz.

    File metadata

    • Download URL: eaps2000-1.1.1.tar.gz
    • Upload date:
    • Size: 3.9 kB
    • Tags: Source
    • Uploaded using Trusted Publishing? Yes
    • Uploaded via: twine/6.1.0 CPython/3.12.9

    File hashes

    Hashes for eaps2000-1.1.1.tar.gz
    Algorithm Hash digest
    SHA256 8075ce625cb617d7f97f3f987ab33113fca1028ba95ca9806a4c754723f9f213
    MD5 b62ce9b2d0170c6808ef0ecce96b9fc3
    BLAKE2b-256 33cdb1b9a61c9c941465a8c70f4dfc02b3890a1e7e840db77d22c7d07d1d3d4a

    See more details on using hashes here.

    Provenance

    The following attestation bundles were made for eaps2000-1.1.1.tar.gz:

    Publisher: python-package.yml on KozhinovAlexander/eaps2000

    Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

    File details

    Details for the file eaps2000-1.1.1-py3-none-any.whl.

    File metadata

    • Download URL: eaps2000-1.1.1-py3-none-any.whl
    • Upload date:
    • Size: 9.4 kB
    • Tags: Python 3
    • Uploaded using Trusted Publishing? Yes
    • Uploaded via: twine/6.1.0 CPython/3.12.9

    File hashes

    Hashes for eaps2000-1.1.1-py3-none-any.whl
    Algorithm Hash digest
    SHA256 930ab55ab6f87f483c2cc218702f4e4bf8123dd16dfffa6b1ab77c52497cf668
    MD5 4b7770003262ec26659888173b4f838c
    BLAKE2b-256 39effca66678f6179b0a3e1b48c27ac83cac2445cac4b207441324bcea180eb7

    See more details on using hashes here.

    Provenance

    The following attestation bundles were made for eaps2000-1.1.1-py3-none-any.whl:

    Publisher: python-package.yml on KozhinovAlexander/eaps2000

    Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

    Supported by

    AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page