Skip to main content

Cython wrapper for the SOEM Library

Project description

PySOEM is a Cython wrapper for the Simple Open EtherCAT Master Library (https://github.com/OpenEtherCATsociety/SOEM).

Introduction

PySOEM enables basic system testing of EtherCAT slave devices with Python.

Features

  • input process data read and output process data write

  • SDO read and write

  • EEPROM read and write

  • FoE read and write

Todo

  • EoE

Beware that real-time applications need some special considerations.

Requirements

Linux

  • Python 3

  • GCC (installed on your machine)

  • Python scripts that use PySOEM must be executed under administrator privileges

Windows

Installation

python -m pip install pysoem

or

pip install pysoem

Consider using a virtualenv.

Usage

Although there are some pieces missing, the documentation is hosted on “Read the Docs” at: pysoem.readthedocs.io.

Please also have a look at the examples on GitHub.

Contribution

Any contributions are welcome and highly appreciated. Let’s discuss any (major) API change, or large piles of new code first. Using this pysoem chat room on gitter is one communication channel option.

Changes

v1.1.0

  • Changed the data type for the name attribute of SDO info CdefCoeObject and CdefCoeObjectEntry, they are of type bytes now instead of a regular Python 3 string.

  • Also changed the desc attribute of the find_adapters() list elements to bytes.

  • Introduces the open() context manager function.

  • Adds the setup_func that will maybe later replace the config_func.

v1.0.8

  • Version bump only to re-upload to PyPI with windows-wheel for Python 3.11

v1.0.7

  • Fix issues with timeouts at amend_mbx and set_watchdog.

v1.0.6

  • Introduces amend_mbx and set_watchdog, though this is rather experimental

  • New example firmware_update.py.

v1.0.5

  • Introduces the manual_state_change property

v1.0.4

  • Proper logging

  • Introduces mbx_receive

v1.0.3

  • Fix the FoE password issue

v1.0.2

  • Licence change to MIT licence

  • Introduces configurable timeouts for SDO read and SDO write

  • Improved API docs

v1.0.1

  • API change: remove the size parameter for foe_write

  • Introduces overlap map support

v1.0.0

  • No Cython required to install the package from the source distribution

v0.1.1

  • Introduces FoE

v0.1.0

  • Update of the underlying SOEM

v0.0.18

  • Fixes bug when Ibytes = 0 and Ibits > 0

v0.0.17

  • Exposes ec_DCtime (dc_time) for DC synchronization

v0.0.16

  • Improvement on SDO Aborts

v0.0.15

  • SDO info read

v0.0.14

  • Readme update only

v0.0.13

  • Initial publication

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

pysoem-1.1.2.tar.gz (368.0 kB view hashes)

Uploaded Source

Built Distributions

pysoem-1.1.2-pp39-pypy39_pp73-win_amd64.whl (111.3 kB view hashes)

Uploaded PyPy Windows x86-64

pysoem-1.1.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (151.8 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

pysoem-1.1.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (154.2 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

pysoem-1.1.2-pp38-pypy38_pp73-win_amd64.whl (111.2 kB view hashes)

Uploaded PyPy Windows x86-64

pysoem-1.1.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (159.3 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

pysoem-1.1.2-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (160.8 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

pysoem-1.1.2-pp37-pypy37_pp73-win_amd64.whl (111.2 kB view hashes)

Uploaded PyPy Windows x86-64

pysoem-1.1.2-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (160.9 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

pysoem-1.1.2-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (162.2 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

pysoem-1.1.2-cp311-cp311-win_amd64.whl (124.1 kB view hashes)

Uploaded CPython 3.11 Windows x86-64

pysoem-1.1.2-cp311-cp311-musllinux_1_1_x86_64.whl (794.3 kB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.1+ x86-64

pysoem-1.1.2-cp311-cp311-musllinux_1_1_i686.whl (743.6 kB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.1+ i686

pysoem-1.1.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (809.5 kB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

pysoem-1.1.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (748.0 kB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

pysoem-1.1.2-cp310-cp310-win_amd64.whl (124.8 kB view hashes)

Uploaded CPython 3.10 Windows x86-64

pysoem-1.1.2-cp310-cp310-musllinux_1_1_x86_64.whl (746.5 kB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.1+ x86-64

pysoem-1.1.2-cp310-cp310-musllinux_1_1_i686.whl (706.5 kB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.1+ i686

pysoem-1.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (747.1 kB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

pysoem-1.1.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (705.9 kB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

pysoem-1.1.2-cp39-cp39-win_amd64.whl (128.3 kB view hashes)

Uploaded CPython 3.9 Windows x86-64

pysoem-1.1.2-cp39-cp39-musllinux_1_1_x86_64.whl (768.4 kB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.1+ x86-64

pysoem-1.1.2-cp39-cp39-musllinux_1_1_i686.whl (733.6 kB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.1+ i686

pysoem-1.1.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (771.3 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

pysoem-1.1.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (731.9 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

pysoem-1.1.2-cp38-cp38-win_amd64.whl (129.5 kB view hashes)

Uploaded CPython 3.8 Windows x86-64

pysoem-1.1.2-cp38-cp38-musllinux_1_1_x86_64.whl (820.2 kB view hashes)

Uploaded CPython 3.8 musllinux: musl 1.1+ x86-64

pysoem-1.1.2-cp38-cp38-musllinux_1_1_i686.whl (768.8 kB view hashes)

Uploaded CPython 3.8 musllinux: musl 1.1+ i686

pysoem-1.1.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (782.8 kB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

pysoem-1.1.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (738.3 kB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

pysoem-1.1.2-cp37-cp37m-win_amd64.whl (126.2 kB view hashes)

Uploaded CPython 3.7m Windows x86-64

pysoem-1.1.2-cp37-cp37m-musllinux_1_1_x86_64.whl (722.2 kB view hashes)

Uploaded CPython 3.7m musllinux: musl 1.1+ x86-64

pysoem-1.1.2-cp37-cp37m-musllinux_1_1_i686.whl (683.5 kB view hashes)

Uploaded CPython 3.7m musllinux: musl 1.1+ i686

pysoem-1.1.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (724.3 kB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ x86-64

pysoem-1.1.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (683.1 kB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page