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 |
|
| 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
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8075ce625cb617d7f97f3f987ab33113fca1028ba95ca9806a4c754723f9f213
|
|
| MD5 |
b62ce9b2d0170c6808ef0ecce96b9fc3
|
|
| BLAKE2b-256 |
33cdb1b9a61c9c941465a8c70f4dfc02b3890a1e7e840db77d22c7d07d1d3d4a
|
Provenance
The following attestation bundles were made for eaps2000-1.1.1.tar.gz:
Publisher:
python-package.yml on KozhinovAlexander/eaps2000
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
eaps2000-1.1.1.tar.gz -
Subject digest:
8075ce625cb617d7f97f3f987ab33113fca1028ba95ca9806a4c754723f9f213 - Sigstore transparency entry: 173254190
- Sigstore integration time:
-
Permalink:
KozhinovAlexander/eaps2000@464370b1610f930f68851ae9d061738957cf0c48 -
Branch / Tag:
refs/tags/v1.1.1 - Owner: https://github.com/KozhinovAlexander
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-package.yml@464370b1610f930f68851ae9d061738957cf0c48 -
Trigger Event:
push
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
930ab55ab6f87f483c2cc218702f4e4bf8123dd16dfffa6b1ab77c52497cf668
|
|
| MD5 |
4b7770003262ec26659888173b4f838c
|
|
| BLAKE2b-256 |
39effca66678f6179b0a3e1b48c27ac83cac2445cac4b207441324bcea180eb7
|
Provenance
The following attestation bundles were made for eaps2000-1.1.1-py3-none-any.whl:
Publisher:
python-package.yml on KozhinovAlexander/eaps2000
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
eaps2000-1.1.1-py3-none-any.whl -
Subject digest:
930ab55ab6f87f483c2cc218702f4e4bf8123dd16dfffa6b1ab77c52497cf668 - Sigstore transparency entry: 173254191
- Sigstore integration time:
-
Permalink:
KozhinovAlexander/eaps2000@464370b1610f930f68851ae9d061738957cf0c48 -
Branch / Tag:
refs/tags/v1.1.1 - Owner: https://github.com/KozhinovAlexander
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-package.yml@464370b1610f930f68851ae9d061738957cf0c48 -
Trigger Event:
push
-
Statement type: