The Karabo SCADA Framework

Picture
The Karabo topology at the MID instrument and the interconnections among devices.

Since its inception in 2011, the XFEL Suite, now Karabo [1], has become a stable and state-of-the-art Control System developed in-house at EU.XFEL. It distinguishes itself from established, earlier-generation systems, such as EPICS and Tango, by its modern, event-driven paradigm, built on a central message broker. Additionally, there is no requirement for a central authority to describe the entire distributed system. This design makes Karabo highly scalable, from single machine installations to large facilities like EU.XFEL, where an individual installation may contain hundreds of thousands of control parameters distributed on dozens of physical, interconnected hosts.

The Karabo GUI, the main operator interface, implements a novel, coding-free interface to build complex hierarchical panels (scenes). Furthermore, it is by design rather loosely coupled to Karabo, such that it may also interoperate with other control systems.

The core system and the GUI have in common that they are developed using modern, collaborative coding practices, such as mandatory review of any contribution and large-scale use of continuous integration (CI) and testing facilities. Furthermore, Karabo is designed to pass large amounts of data at rates of up to 20GB/s, while maintaining global time correlation for such data. 

Karabo is hosted at https://github.com/European-XFEL/Karabo

[1] https://scripts.iucr.org/cgi-bin/paper?xq5007

Beamline and Instrument Control

Karabo provides all features necessary for efficient beamline and instrument control. Via so-called "devices", functionality is added to the core system. In this way hardware can be integrated, high level procedures can be defined, and data acquistion can be implemented. Karabo provides APIs for C++ and Python, which facilitates integration of most third-party SDKs and libraries.

At the European XFEL, Karabo is used on a facility scale to control equipement as simple as single digital switches, to the large MHz-framerate capable X-ray detectors of the facility: AGIPD, DSSC and LPD. Control solutions for many beamline components are built on-top of Beckhoff PLCs. Additionally, a significant fraction of equipment is interfaced directly using Karabo, such as cameras and multi-axis motion systems. Finally, efficient bridges to the DOOCS Control System [1] of the accelerator exist.

Karabo handles both slow/control data flows, and fast/large data streams. The facility's data acquisition system (DAQ), which is implemented in Karabo, leverages this capability. Additionally, a state-of-the-art time series database, InfluxDB [2], logs any condition changes in the control system. This data is explorable e.g. via the Grafana web-frontend.

The Karabo GUI, and importantly the code-free scene builder allow to create hierarchical overview panels for instrument and beamline control. These provide the synoptic views for the operator - from very high level overviews, to detailed expert panels.

[1] http://doocs.desy.de
[2] https://www.influxdata.com

karabo_beamline_view_3_small.png

Examples of vacuum components integrated in Karabo and controlled via a so-called scene.

Standalone Lab Systems

Karabo does not require large-scale infrastructure to run. In fact, in has been shown to run efficiently on hardware as compact, and low-power as a Raspberry PI Zero. 

Specifically, the so-called middlelayer API is very well suited for such small system purposes, and can yield fast results for developers. The framework ships with "batteries included", i.e. it provides tools to start auxilliary tools such as the broker or its project database locally on a stand-alone installation as needed.