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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for pysoem-1.1.2-pp39-pypy39_pp73-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2a8df31132ce5e63819c1327a37dbca60b4f4f68a3130fd76246f6c373984b54 |
|
MD5 | 1e2a27e450a729f3c291e0c9421e92b8 |
|
BLAKE2b-256 | 6456227dc3b30372511bbdde6bb72e9891882ca874a5434d2a0043620c4f142d |
Hashes for pysoem-1.1.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | adf523e267334dc8b6dec6790d181d78d88a32fd9eede83ac3711a2356e64e10 |
|
MD5 | aa19b82b977b1085133d7553d34ce989 |
|
BLAKE2b-256 | 275d1b26fb631c066901219d7b8bcb9dede2d6466079fc22ff6c5a170828eacc |
Hashes for pysoem-1.1.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 485fa2edeb584699f21d703bf1053759375aae6a4c9e32b20486432af63f8fa6 |
|
MD5 | 173346c3008cad5ce9b1ddb420c19309 |
|
BLAKE2b-256 | c74e1b3edfe0cf5f4a81b43d35189092346f0588df3c52d3c4a41be028dae249 |
Hashes for pysoem-1.1.2-pp38-pypy38_pp73-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a318ac6d0d77853cf7dce21f3968deb66d2dbdb5e154618bd3e2dca19714a0de |
|
MD5 | 39946c51330372cc52025a232da43e58 |
|
BLAKE2b-256 | 28696cc62407241756dd749231d361caba17862e1c719f845dcc7b8a1fcaffd1 |
Hashes for pysoem-1.1.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5c0c3612a213752f3b29bfbdad2365e3db436ada265234076aa1963909246ff3 |
|
MD5 | 0232947efaee9fd316f80e07030fa303 |
|
BLAKE2b-256 | 5eba92e51cd45309a5dee85ca18aac632a77df75fb6e8defbc631db33ecb3be7 |
Hashes for pysoem-1.1.2-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7c1476d45019747b0cc5c970e6fdd115422aa6ff0d843eb6c6c46ce736aea73a |
|
MD5 | 51c24f2f7dfae20c690daf4e5625381e |
|
BLAKE2b-256 | 5a215c5b1f6325311bdc0747002e51e4bcd3d07bbd61869e3b621d56e27d1995 |
Hashes for pysoem-1.1.2-pp37-pypy37_pp73-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a86f6b53c84476b1a6b02dab10de24dee8f1e22d1f58e2bc4b9caff0cdb95084 |
|
MD5 | b79a78f7ad723fbfc2b92927993a877e |
|
BLAKE2b-256 | e260ed2d58593f939f9d813d62c86569902287a1f1cf947aa0cbd86d7d4b3de4 |
Hashes for pysoem-1.1.2-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4c826e602cff04d0b04c03842122c435c3173d18f40ed5649be2b48c53884344 |
|
MD5 | 934ab4dfb4ff6d88d16d4217a003100a |
|
BLAKE2b-256 | 9a3ba8e953cc797af9ae50f6a50a0b948057d57722deed20ee9187fab11fa1a5 |
Hashes for pysoem-1.1.2-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fb9e215edfcf477ef0f51d135c6b48ec41199f60447e96c9396493e10b80ec04 |
|
MD5 | 8ed0f8365cb9cbede4fb0dd9f74633c7 |
|
BLAKE2b-256 | aaecf359a5b1d4d3cedae849129708f08e5a86beb0a17c3352f54f8a398f2e27 |
Hashes for pysoem-1.1.2-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 46d30952205abb13584b5d1ca2cfc5e99010fad0adb28173eb4cda41f7c4c060 |
|
MD5 | 58aa736f8742edb04d2541bc4489be3f |
|
BLAKE2b-256 | 8588bf20185d81ca5ae1c81ac370db9fef708f11cdd65338007418d6d624e737 |
Hashes for pysoem-1.1.2-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8abeb71fe22169f0d45865abfd12d202a8f84c47d10e59f01af3612b296cf8a1 |
|
MD5 | 76c8d6444d30f7b4bf087f3430f2e962 |
|
BLAKE2b-256 | 2e57312487307df158e5c87a38bc1ee4a7b36a3089b8e40287bd8940ef7c347c |
Hashes for pysoem-1.1.2-cp311-cp311-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ddb60789529ec7a841541a62484af976a272010b6493940e1b81c4836978c8a8 |
|
MD5 | 362c382c34a40ce40a4773fc7b04d930 |
|
BLAKE2b-256 | e48e3c269e12ebb890d31586b4d00857609c5d45e5c8e1a81ce3560ea8ca8b14 |
Hashes for pysoem-1.1.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f5b2a3ece661bbb5faddf69e0fb538c32113a2b5d753825697fc5eec91dfa10b |
|
MD5 | 890b332b4b789fec78b7b6d2c370d6d0 |
|
BLAKE2b-256 | 7edb1d4a06f39cb8c5da548ad82fb132bf0fce189becafec290ab5d5880f2ac4 |
Hashes for pysoem-1.1.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f9154a2631df95cfd4fc3cc12bc3fc1f346c9c1eef9cb21af35f7e71ff38e036 |
|
MD5 | cbd423161e4c46e76a07be381f65ebea |
|
BLAKE2b-256 | e85a5ad342073ab0ac1aee76fe363cafd8a0e3f5b6e813980a4aa17778f6c4d5 |
Hashes for pysoem-1.1.2-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 30688c42a040cf8fbb735f967916e31ae51dedd16fa9614f9f0b9e25f491b426 |
|
MD5 | cdee209b3fccd3ce23c88b8224cc27df |
|
BLAKE2b-256 | 23fd3e5af6d36004a586155144f5ba835dd8394e0a3314019e9db9360b4dfa93 |
Hashes for pysoem-1.1.2-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3fe405c5ca0320546cbd0d6e492dff4c92d7880c67c851e4fca199ce2b453cc8 |
|
MD5 | 5aeba2621c8e2f0c3e996610162b238e |
|
BLAKE2b-256 | f788749c7adb4ec7d2e5905b2dfe10fef92bed9029392dcc0b241617eda2cb5e |
Hashes for pysoem-1.1.2-cp310-cp310-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 683c596b61600615962213583e05c4d78c8eeb73a53a82cef610cd4f5d6a51ab |
|
MD5 | d999d152cce596f194bea36f6e07e835 |
|
BLAKE2b-256 | 2cf34603e9f340101fa39af9f87a0180abc582b93ac91270b9396269b0fe3deb |
Hashes for pysoem-1.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 00fabdec3ecfacb38cbff1ab9202c13d6316e6539a2c526258f0858c733af09d |
|
MD5 | 3b1e5d7b8e6db80a9c48d9c9fe61a9c3 |
|
BLAKE2b-256 | 320c2324671b69ebc2915600db3a1da765c5ca16ea9f9cf1ce492e01d060ec0f |
Hashes for pysoem-1.1.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a45b69ab0319ac9b59ac3e1a4204e3855718c98730beb98e0c0f8337c6a28628 |
|
MD5 | 2aa4015c6b50d127995a3c724620c6e5 |
|
BLAKE2b-256 | 55cbcff323cee5ef4c9f8ffa16055365843b6d43e613f7d482fbc29bcbedb857 |
Hashes for pysoem-1.1.2-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a1a75cf58d76094a785d39427f1c109f9939f0717ca426d4b94be7cb783c844d |
|
MD5 | 889fb410b1b9e567c3fb53d89ad9934d |
|
BLAKE2b-256 | 63f73578b83d6c1e6d295ad640ec99c8b378b3398ed5e5d90aceb31add626b4f |
Hashes for pysoem-1.1.2-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f7e51f686b1a0507e7909aa715f70fd1c6a666874be28c657189e0bc809316c3 |
|
MD5 | 7b0e863efe3a14e890ec147a67c85654 |
|
BLAKE2b-256 | c1970baca6056ad71d772d3a0f81b840f1c59989e548b65b4491af458fc6823a |
Hashes for pysoem-1.1.2-cp39-cp39-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f2fefcff5ac1d947cc45c719a181ed64cad296b57972ab3aab583fb34b80af11 |
|
MD5 | a03bedab2c991b53918a374e4be84d8a |
|
BLAKE2b-256 | f3470a8ac566e1126fce652582c5e7028842e1a32a5a4ae718b6a12e93410d42 |
Hashes for pysoem-1.1.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4d8820a394ebffb2c089fbd6ab735a5272d45b6974f5e2d6064f69f1c21e5f22 |
|
MD5 | ae41098f4d2e936f571b84ec0ff19377 |
|
BLAKE2b-256 | 5a2ec1ea6913ba5fd66b46f1c0ac634be1d4ffa581d612479549cb502ca50f1a |
Hashes for pysoem-1.1.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d324c2f2febeff80ec9774bde0cb5e12c8d5623c2de09267ed42658150592590 |
|
MD5 | 7da4fe7dff065ba8b828966be4519f0f |
|
BLAKE2b-256 | 2cbea6e85f6545906ab1d6312c91559d268cd832203af0291c0a83ead185e181 |
Hashes for pysoem-1.1.2-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 640706d7fa55a51840220a5e916ca4f489e1a4ffbdfe1ed6eb39330c92defb86 |
|
MD5 | 0c88579eb4c825b7845d755dbe30a404 |
|
BLAKE2b-256 | 882f18d66a6cbfb64a38ab469b9e1ab5c794011178047ecd43896d2f7899be7f |
Hashes for pysoem-1.1.2-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b1d4aba019eee6fee7cf64e4d5a00ebcc824f2b0124ab46d8cae8a55d7b38aa8 |
|
MD5 | a45573270eddc9ddaa6d7a969d01e962 |
|
BLAKE2b-256 | e01ff81c1957c867d2508578eeb10607f936197c6b68c99fd4ee88e6c7e22370 |
Hashes for pysoem-1.1.2-cp38-cp38-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a54097e82ce696791e5de75fd2eabbae7d37ee1f32f627ba899db54ce884c48d |
|
MD5 | 8c5c3748bc7083c36f9981c98594e278 |
|
BLAKE2b-256 | e38b657fa912fd3e02e05575ea7553c664e8b103ca3a006f6abc0bb9a1cc2041 |
Hashes for pysoem-1.1.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dc4073f0e34a082ae9bf500c5ce7359069cbbe3da4e537f4837a909cc516d5a9 |
|
MD5 | 2a4cb4ddc793b43ee9f1ccd8dd708194 |
|
BLAKE2b-256 | fcf531eb50bcefae36cc57f25ebad2f17e37bf1286d89bbd1e2a66ddce60dd72 |
Hashes for pysoem-1.1.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fb68e80f1cc952956a370531c16c96e1e717a756d4e61a39d2839a8f84a632f9 |
|
MD5 | c2131e5239e38fe7b3cf60a418fbc754 |
|
BLAKE2b-256 | 26e46fa22f4a162c44662ba3e9bf663c89b0a8f5a07f32ce2203c4c51b160eff |
Hashes for pysoem-1.1.2-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cb82b2a5d974acdc94ddd68d4ddd3521f3f84d5c1c58e3387a74a645863255e4 |
|
MD5 | c51dd52035045681bc5381cbc6e749b5 |
|
BLAKE2b-256 | 97651bce147219dc9697a535a3aeb237696de50ef8157493f7a77b2a9b626fe3 |
Hashes for pysoem-1.1.2-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 84de18b1c3e7f6501d0ac0ea459b02e8e19db4e242c94f609b18bba00173f98c |
|
MD5 | fa703d9013ee9090705d4bb016849ed4 |
|
BLAKE2b-256 | 770c53dccfdf53e7e4462c6357858a7b157e5d3ef17e2fa6b9cde9814a6d4f29 |
Hashes for pysoem-1.1.2-cp37-cp37m-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 94f431c16cd6856bde34ef6552ce21c33ede75bbf74a689e7cc0d63c451c1bf4 |
|
MD5 | dc54f456a54df60975462b830a0bd105 |
|
BLAKE2b-256 | c0d501fcebe7cae9eb5acaebd7ed187733f12f954a307f6876b6659b3ea82740 |
Hashes for pysoem-1.1.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1b12f5234063d29d5d6f581eff65b52fa22062b6d99f5ad031f364bf90cbd232 |
|
MD5 | 34f0a0d208bdf05fc8b93c1bd4c69da8 |
|
BLAKE2b-256 | 417c90ae0237888cb58a1edcaa53e2ecda58fa910fc5b39cc29a4fb33cda3f8f |
Hashes for pysoem-1.1.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0c0d3e59165340cd80adfa9eba417b7569a8e9660f1d247e70ac11c7193be051 |
|
MD5 | 0ca9450260e2a4a640b12dd36d34c7bf |
|
BLAKE2b-256 | f045c4ddf20fd8d7a0bc1bfaec8189ac3400ef0e1552d287c549e5416e5c87ff |