# pysoem
**Repository Path**: yqg.tom/pysoem
## Basic Information
- **Project Name**: pysoem
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2025-08-20
- **Last Updated**: 2026-06-26
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
PySOEM
======
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
* Python scripts that use PySOEM must be executed under administrator privileges
Windows
^^^^^^^
* Python 3 / 64 Bit
* `Npcap `_ [*]_ or `WinPcap `_
.. [*] Make sure you check "Install Npcap in WinPcap API-compatible Mode" during the install
macOS (new with PySOEM 1.1.5)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
* Python 3
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.12
^^^^^^^
* Updates the underlying SOEM to fix segmented io issues
* Fixes issues with Enums on newer Cython versions
v1.1.11
^^^^^^^
* Adds No-GIL support.
* Per global setting ``pysoem.settings.always_release_gil``.
* Per Master instance attribute ``always_release_gil``.
* Per function argument ``release_gil``.
v1.1.10
^^^^^^^
* Adds ``pysoem.settings.timeouts`` to configure low-level timeouts at run-time.
v1.1.9
^^^^^^^
* Adds protection against closed network interface connection.
v1.1.8
^^^^^^^
* Fixes null pointer issues when reading not initialized properties ``config_func`` and ``setup_func``.
v1.1.7
^^^^^^^
* Adds ``add_emergency_callback()`` to allow a better handling of emergency messages.
* Improves auto-completion.
v1.1.6
^^^^^^^
* Adds working counter check on SDO read and write.
* Fixes issues with ``config_init()`` when it's called multiple times.
v1.1.5
^^^^^^^
* Adds support for redundancy mode, ``master.open()`` provides now an optional second parameter for the redundancy port.
v1.1.4
^^^^^^^
* Fixes Cython compiling issues.
v1.1.3
^^^^^^^
* Adds function ``_disable_complete_access()`` that stops config_map() from using "complete access" for SDO requests.
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