Speaker
Description
EtherCAT has become a popular communication protocol for controlling equipment in large facilities. Although it is an open standard that can be used on common hardware, commercial solutions on specialized hardware are usually employed. Here we introduce EBPFCat, a fully open-source implementation of the EtherCAT protocol that can be used on any modern Linux system without the need to write kernel modules. In EBPFCat, non-time-critical parts are implemented in Python, while real-time performance and reliability are ensured through the use of EBPF, a virtual machine embedded within the Linux kernel. EBPFCat contains a code generator that allows EBPF programs to be generated directly from Python without the need of separate compilation tools. These programs are verified for correctness by the Linux kernel and executed therein, allowing for feedback bandwidths exceeding 10 kHz. The EBPF code generator is a generic solution that can also be used for unrelated EBPF programs. EBPFCat is a standalone project that operates independently of any specific high-level control system. Nevertheless, it has already been integrated into Karabo*, the control system used at the European XFEL. We show applications for a large variety of control problems, from simple vacuum systems to intricate feedback loops for motion control.
Footnotes
- Hauf, et al. The Karabo distributed control system J.Sync. Rad.26.5(2019):1448ff