Skip to content

robotkernel-hal/module_esl

Repository files navigation

module_esl

Build and Publish Debian Package License: LGPL-V3 Linux Debian Ubuntu

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.

Features

  • 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

Supported Devices

  • Beckhoff CU2508 EtherCAT Port multiplier device (ESL protocol)

Configuration

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

Configuration Parameters

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

Installation

  1. Clone the repository:

    git clone https://github.com/robotkernel-hal/module_esl.git
    cd module_esl
  2. Build the module:

    mkdir build && cd build
    ./bootstrap.sh
    autoreconf -if
    ./configure
    make -j$(nproc)
  3. Install the module:

    sudo make install
  4. Ensure robotkernel is properly configured to load the module.

Usage

  1. Start robotkernel with the module loaded.
  2. Configure the module using the provided YAML configuration.
  3. Connect the input stream (e.g., via sock-raw-2-stream or similar) to receive ESL data from the CU2508 device.
  4. Access the newly generated stream devices to established communication with the CU2508 downstream ports.

Dependencies

  • robotkernel framework
  • autotools
  • Linux kernel with real-time capabilities (PREEMPT_RT recommended)

Development

Contributions are welcome! Please follow the standard pull request workflow:

  1. Fork the repository
  2. Create a feature branch
  3. Commit your changes
  4. Push to the branch
  5. Open a pull request

License

This project is licensed under the LGPL-V3 License - see the LICENSE file for details.

Contact

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.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published