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
Install the project from PyPi or build it first.
pip install eaps2000Using 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 --onNOTE: 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()The project is built with hatchling
pip install hatchling && flake8 . -v && hatchling build && pytest --flake8Installing freshly built project may be done by invoking:
pip install ./dist/eaps2000-*.whl --upgrade --force-reinstallThe 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.
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 |
|
| 71 | Status + Actual values | ro | int | 6 | Bits 1+0: Byte 1: Bit 0: Bit 3: Bit 4: Bit 5: Bit 6: Bit 7: |
00=free access; 01=Remote 1=Output on 1=Tracking active** 1=OVP active 1=OCP active 1=OPP active 1=OTP active |
|
| 72 | Status + Momentary set values | ro | int | 6 | Bits 1+0: Byte 1: Bit 0: Bit 3: Bit 4: Bit 5: Bit 6: Bit 7: |
00=free access; 01=Remote 1=Output on 1=Tracking active** 1=OVP active 1=OCP active 1=OPP active 1=OTP active |
** PS 2000 B Triple only