This library provides an asynchronous interface with modbus devices over a TCP ethernet controller (such as this one) and control of the connected I/O modules. The code is a relatively thin wrapper around Pymodbus with the main feature being that it's possible to define a PLC controller and a complete set of modules as a YAML configuration file which can then be loaded. It also provides convenience methods to read and write to the I/O modules and to convert the read values to physical units.
This code is mostly intended to interface with the SDSS-V FPS electronic boxes but is probably general enough for other uses. It's originally based on Rick Pogge's WAGO code.
To install, run
pip install sdss-drift
To install from source, git clone or download the code, navigate to the root of the downloaded directory, and do
pip install .
sdss-drift
uses Poetry for development. To install it in development mode do
poetry install -E docs
Refer to the Read the Docs documentation for more details.