Skip to main content

Controller for Elektro-Automatik power supplies

Project description

SOMANET Test Suite - Controller for EA PSUs

Linux

Recommended step

Move 99-ea-psu.rules to /etc/udev/rules.d/ and restart udev with sudo service udev restart. This rule will create devices, that look like ea-ps-20xx-xx-0 or ea-ps-23xx-xx-0 with an increasing counter for every connected device.

Before start

To use ttyACMx devices without sudo, add your user to the group dialout:

sudo adduser your_user dialout

Windows

When connecting the power supply, Windows will install automatically the correct drivers.

Installing module

pip3 install ea_psu_controller

Import module

import ea_psu_controller

Create object

To connect to a particular PSU, you can call

Linux: psu = PsuEA(comport='ttyACM0')

Windows: psu = PsuEA(comport='COM1') or as com port description: psu = PsuEA(comport='PS 2000 B')

If you added the device rule and you connected only one PSU, there is no need to provide a device name:

psu = PsuEA()

Also possible is:

psu = PsuEA(comport='ea-ps-20xx-xx-0')

| If there is more then one PSU connected to the host, the script will connect to the first device found. | It is also possible to take the S/N written on the back of the PSU and call (dev rule on Linux needed):

psu = PsuEA(sn='0123456789')

or to use the device designator (dev rule on Linux needed):

psu = PsuEA(desi='PS 2142-10B')

Dis/connect to power supply for controlling

psu.remote_on()

psu.remote_off()

For multi output devices most functions provide a additional output argument:

psu.remote_on(output_num=0) or psu.remote_on(output_num=1)

| It's only necessary to call remote_on(), when you want to control the PSU. | If you just want to read device information, you don't need to.

Power on and off output

psu.output_on()

psu.output_off()

or

psu.output_on(output_num=1)

psu.output_off(output_num=1)

Set parameters

Arguments can be int or float.

psu.set_voltage(24)

psu.set_current(0.5)

psu.set_ovp(30)

psu.set_ocp(8)

The script will always set the maximum possible values in dependency of the nominal power.

| For example: | Nominal power = 160 W | If you set now the voltage to 40 V, it's not possible to set a higher current than 4 A (=160W/40V). | If you want to set a higher current, you need to decrease first the voltage.

Get parameters

Return argument: float.

psu.get_voltage()

psu.get_current()

Maximum sampling rate is ~10 Hz.

Get status

Return argument: dictionary

psu.get_status()

Dict contains following keys:

  • 'remote on'
  • 'output on'
  • 'controller state' (CV=0, CC=2)
  • 'tracking active'
  • 'OVP activ'
  • 'OCP activ'
  • 'OPP activ'
  • 'OTP activ'

Get device description

Return argument: tuple (name, SN)

psu.get_device_description()

Close connection

To close the connection, call:

psu.close(remote=False, output=False)

Set both arguments to True to turn off the output and remote control

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

ea-psu-controller-1.1.0.tar.gz (7.4 kB view hashes)

Uploaded source

Built Distribution

ea_psu_controller-1.1.0-py3-none-any.whl (8.2 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page