Skip to main content

No project description provided

Project description

pfeiffer-turbo

Python versions on PyPI pfeiffer-turbo version on PyPI
Python interface for RS485 connections to Pfeiffer HiPace turbo drive units. Supports the TM700 and TC110 electronic drive units, and can also communicate through a TCP/IP socket, for example when using a serial-to-TCP/IP converter for the turbo controller.

Supported drive units

  • TM700
  • TC110

Examples

RS485 connection example

from pfeiffer_turbo import TC110, SerialTransport

pump = TC110(address=1, transport=SerialTransport(port="COM9"))
# or: pump = TC110.from_serial("COM9", address=1)

# get the rotation speed in Hz
pump.actual_spd

# start the pump
pump.start()

# stop the pump
pump.stop()

TCP/IP connection example

from pfeiffer_turbo import TM700, TcpTransport

pump = TM700(address=1, transport=TcpTransport(host="10.10.222.8", port=12345))
# or: pump = TM700.from_tcp("10.10.222.8", 12345, address=1)

# get the rotation speed in Hz
pump.actual_spd

# start the pump
pump.start()

# stop the pump
pump.stop()

Writable parameters and validation

Parameters marked read-write or write-only by the parameter metadata can be assigned. When assigning values, the library validates:

  • type (bool/int/float/str as defined per parameter)
  • allowed options (options map when present)
  • value limits (min/max when present)

Write-only parameters raise AttributeError when read.

Example:

# writable
pump.set_rot_spd = 600
pump.error_ackn = True

# raises ValueError (invalid option)
# pump.gas_mode = 999

# raises AttributeError (write-only parameter)
# pump.error_ackn

Implementation

A baseclass DriveUnit:

class DriveUnit:
    def __init__(
        self,
        transport: BaseTransport,
        address: int,
        supported_parameters: Sequence[int],
    ):

takes a set of integers that correspond to Pfeiffer vacuum parameters supported by a particular drive unit. Implemented vacuum parameters are defined in parameters.py. Getters and setters are then generated dynamically from supported_parameters and the metadata in parameters.py.

The enum Parameters contains all implemented Pfeiffer vacuum parameters, and the dictionary parameters maps Parameters values to ParameterInfo objects, where ParameterInfo is a dataclass containing the implementation details for a particular parameter:

@dataclass
class ParameterInfo:
    designation: str
    data_type: DataType
    access: Access | str
    min: Optional[Union[int, float]] = None
    max: Optional[Union[int, float]] = None
    unit: Optional[str] = None
    default: Optional[Union[int, float, str]] = None
    options: Optional[dict[int, str]] = None

New drive units can be implemented by inheriting from DriveUnit and specifying which Pfeiffer parameters are supported by the model. New parameters can be implemented by extending the Parameters enum and the parameters dictionary. Generated class attributes are named similarly to the Pfeiffer parameter names, with underscores inserted between uppercase-to-lowercase transitions and all letters lowercased, for example GasMode becomes gas_mode.

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

pfeiffer_turbo-0.3.1.tar.gz (16.3 kB view details)

Uploaded Source

Built Distribution

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

pfeiffer_turbo-0.3.1-py3-none-any.whl (15.0 kB view details)

Uploaded Python 3

File details

Details for the file pfeiffer_turbo-0.3.1.tar.gz.

File metadata

  • Download URL: pfeiffer_turbo-0.3.1.tar.gz
  • Upload date:
  • Size: 16.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pfeiffer_turbo-0.3.1.tar.gz
Algorithm Hash digest
SHA256 2777a81eb10a713c6b558ea35a541f1b3eebe9bdffd858499d049b76bea1fa43
MD5 1a6c4a88167d6c6b6fbb4e58a56e7160
BLAKE2b-256 97354ca2ebb0c19a7e9438f5250501b8d8be76fae47329ce45a3528719d15dc6

See more details on using hashes here.

Provenance

The following attestation bundles were made for pfeiffer_turbo-0.3.1.tar.gz:

Publisher: publish.yml on ograsdijk/pfeiffer-turbo

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

File details

Details for the file pfeiffer_turbo-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: pfeiffer_turbo-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 15.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pfeiffer_turbo-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 4795de3ffad91a4ae19622f5aca6030e0cfc0b22ecb7f40d047f345373c2fdd5
MD5 a75c4f60ef5336220565ed76b06971b3
BLAKE2b-256 ae26fd09de842518b864de540a19c2a079dcd80e1de0e2f5ee2518294dcbd7f3

See more details on using hashes here.

Provenance

The following attestation bundles were made for pfeiffer_turbo-0.3.1-py3-none-any.whl:

Publisher: publish.yml on ograsdijk/pfeiffer-turbo

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