Karabo - A control framework fueled by Python asyncio
The Supervisory Control And Data Acquisition (SCADA) system 'Karabo' is briefly introduced focusing on the challenges and current solutions for a user-friendly Python based framework and interface at the European XFEL research facility.
Tags: Business & Start-Ups, Infrastructure, Science
Scheduled on wednesday 12:20 in room lecture
Senior Software Enginner at the European XFEL
The European XFEL in Hamburg is the world's largest X-ray Free Electron Laser (XFEL) in operation and opens up completely new research opportunities for scientists coming from all over the world to the facility to carry out experiments with the laser, which allows to create images or molecular movies to determine atomic positions with a temporal resolution of a few hundreds of femtoseconds.
For the Supervisory Control And Data Acquisition (SCADA) system in this research facility a new software control framework called 'Karabo' is actively developed accepting the challenge of the very high data rates and volumes by the large scientific detectors and numbers of slow control devices: when fully commissioned, the large scientific detectors will each produce up to 27,000 images per second, each image containing about a million pixels. The core of the framework relies on an essentially event-based architecture using a central message broker and so-called pipelines, which are direct tcp connections for large data transfers. There is significant complexity as a large number and variety of hardware and virtual devices for the different beamlines and experiments need to be orchestrated together for various control and data acquisition tasks. Therefore, next to the programming language C++, the framework has been developed in Python based on the asyncio library providing a central event loop for managing the asynchronous i/o and concurrency tools. Reasons for the choice of Python include that it provides a strong asynchronous library, allows rapid software development, and is also widely regarded as a mediator language between scientists and software engineers. It strongly enhances external contributions from scientists for the integration of the necessary data analysis algorithms and control routines. In this talk, the challenges and current solutions for a user-friendly Python based framework and interface at the European XFEL research facility are presented.