Facilitating user code inclusion in a supported environment to enhance the flexibility of beamline control frameworks
Year: 2025
Type: conference-paper
Abstract: Beamline control system software is complex: it provides a common interface to a diverse range of hardware components, data services, and output file formats, any of which may not have been designed for ease of software integration. It should provide both simple and expert operation levels. End users are not expected to know the intricacies of the software, and facility staff will engage with it at a variety of levels. To enable users of the Beamline Experiment Control (BEC) software for SLS 2.0 at PSI to define custom and even one-off routines, while sustainably integrating them with the framework, we introduced two parallel systems. First, a plugin system, mainly intended for beamline staff. BEC plugins can be new devices, scan routines, data output formats, and GUI widgets. They are managed through a bespoke plugin-creation application which provides the user with the required boilerplate. It is based on highly configurable code templating, allowing us to update the template without exposing users to the peculiarities of the underlying libraries or the difficulties of resolving merge conflicts. Second, a system to run arbitrary user-supplied scripts, designed to limit the security issues this would normally entail. Scripts are executed in a container permissioned only to access the central message broker. The execution environment closely mimics the beamline iPython terminal environment, so that a procedure can be interactively developed, then submitted to the server.
Source: JACOW
Authors: Perl,David, Wakonig,Klaus, Appel,Christian, Wyzula,Jan, Augustin,Sven, Usov,Ivan
Language: English
Subfield: Aerospace Engineering
Field: Engineering
Domain: Physical Sciences
Open Access status: hybrid
OpenAlex ID: W7109105374
FWCI:
Cites:
Cited by:
Related to:
