Orateur
Description
kiwi-scan is a modular, YAML-configured Python framework for beamline and laboratory automation in EPICS environments. Developed at BESSY II, it has evolved from a tool for integration testing and operational diagnostics into a reusable system for commissioning and routine beamline operation.
Representative applications include integration testing, encoder error detection, undulator–monochromator synchronization, and device performance studies. The framework uses event-driven scan execution and separates configuration from execution via declarative YAML descriptions of actuators, monitors, triggers, and plugins used by scan engines.
Supported functionality includes triggering and metadata acquisition with waveform support, metadata monitoring, hookable trigger points, parallel multi-actuator scans, and custom scan engines for specialized motion and synchronization tasks. Additional features include monitoring and plotting utilities, monitor-driven actuator callbacks, and plugin hooks for higher-level control logic, such as closed-loop continuous-mode (CM) operation and device coordination.
This contribution presents the architecture of kiwi-scan, its YAML configuration model, and its CLI and Python interfaces, with examples demonstrating its adaptability to new devices and scan strategies.