CANopen library providing functionality to implement nodes
Project description
CANopen library to implement slave nodes.
Backends:
CAN interfaces via python-can
Synopsis
Pure python implementation
Under MIT license (2021 Günther Jena)
Source is hosted on GitHub.com
Tested on Python 3.7, 3.8, 3.9 and 3.10
Unit tested with pytest, coding style checked with Flake8, static type checked with mypy, static code checked with Pylint, documented with Sphinx
Supporting CiA301 (EN 50325-4)
Feature List
object dictionary
provides callbacks for validation, update, download and read
supports records, arrays and variables
EDS support
dynamically generation of EDS file
automatically provided via object 0x1021 (“Store EDS”)
128 SDO servers by default (can be reduced to 1)
expitited, segmented and block transfer for up- and download
COB-IDs dynamically configurable
custom up- and download handlers supported
512 TPDOs and 512 RPDOs by default (can be reduced to 0)
dynamically configurable
transmission types: synchronous (acyclic and every nth sync) and event driven
inhibit time supoorted
EMCY service
COB-ID dynamically configurable
inhibit time supported
Producer Heartbeat service
dynamically configurable
NMT service
boot-up service
callback for state change provided
SYNC (slave) service
COB-ID dynamically configurable
callback for received sync provided
CiA305 Layer Setting Service
fast scan supported
baudrate and node id configuring supoorted
identify remote slave supported
Scheduling supporting threaded and async operation
Install
pip install durand
Credits
This library would not be possible without:
python-canopen: CANopen library (by Christian Sandberg)
python-can: CAN interface library (by Brian Thorne)
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.