A robotkernel module that implements a handler for the Beckhoff ESL (EtherCAT Switch Link) protocol used in CU2508 devices. This module enables seamless integration of Beckhoff CU2508 EtherCAT devices into robotkernel-based control systems, providing reliable and real-time communication for industrial automation applications.
- Implements Beckhoff ESL protocol for CU2508 devices
- Real-time capable with configurable thread priority and CPU affinity
- Supports timestamping (optional)
- Configurable via YAML for easy integration
- Beckhoff CU2508 EtherCAT Port multiplier device (ESL protocol)
The module is configured via a YAML configuration file. Below is an example configuration:
# Configuration file for module_esl.
#
# vi: set ft=yaml nowrap:
# -*- mode: yaml -*-
#########################################################
# Input stream settings
# Defines the stream device to use.
dev_stream: sock-raw-2-stream.sock_raw.stream
# Enable timestamp on all ports.
timestamp_enable: false
# Setting realtime priority for the receive thread
prio: 69
# Setting CPU affinity for the receive thread
affinity: [ 3, ]
#########################################################
# Logging settings
# Standard robotkernel module local loglevel.
# loglevel: verbose
| Parameter | Description | Default | Example |
|---|---|---|---|
dev_stream |
The input stream device to read/write data from/to | required | sock-raw-2-stream.sock_raw.stream |
timestamp_enable |
Enable timestamps on all ports (useful for synchronization) | false |
true |
prio |
Realtime priority for the receive thread (0-99) | 0 |
69 |
affinity |
CPU core(s) to bind the receive thread to (0-indexed) | [] |
[3] |
loglevel |
Logging verbosity (optional) | info |
verbose |
-
Clone the repository:
git clone https://github.com/robotkernel-hal/module_esl.git cd module_esl -
Build the module:
mkdir build && cd build ./bootstrap.sh autoreconf -if ./configure make -j$(nproc) -
Install the module:
sudo make install -
Ensure robotkernel is properly configured to load the module.
- Start robotkernel with the module loaded.
- Configure the module using the provided YAML configuration.
- Connect the input stream (e.g., via
sock-raw-2-streamor similar) to receive ESL data from the CU2508 device. - Access the newly generated stream devices to established communication with the CU2508 downstream ports.
- robotkernel framework
- autotools
- Linux kernel with real-time capabilities (PREEMPT_RT recommended)
Contributions are welcome! Please follow the standard pull request workflow:
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Open a pull request
This project is licensed under the LGPL-V3 License - see the LICENSE file for details.
For questions, issues, or feature requests, please open an issue on GitHub or contact the maintainers.
Note: This module is designed for use in research and industrial automation environments. Ensure proper safety protocols are followed when deploying in production systems.