Speaker
Description
Instrument scientists and scientific users desire a unified, flexible and accessible interface to control their experiments: one place from which to select the sample, compose and run scripted scan sequences, and view and plot live data with the possibility for multi-user sessions and remote access. The technical staff managing the control system, on the other hand, will want support for a specific underlying control protocol.
NICOS is a cross-platform, integrated control software designed to meet these requirements. It is written in Python with a network-based architecture able to control devices via EPICS, Tango, SECoP or CARESS.
The graphical Qt-based client combines device control, scan orchestration, and plotting of live (or historic) data into a rich, scientist-facing GUI. It can be extended with additional panels such as an electronic logbook or graphical instrument views. Users can create complex scans in the built-in Python-based script editor, validate them through dry-runs and monitor their execution process.
The NICOS server consists of a set of networked daemons, each providing different functionality: from script execution and archiving to electronic logbook integration and condition monitoring (watchdog). These processes communicate via a common cache with each other, which limits the necessary hardware polling.
NICOS has originally been developed at Heinz Maier-Leibnitz Zentrum (MLZ) and is free and open source software. Today, it is actively used and contributed to by MLZ, the European Spallation Source (ESS) and Paul Scherrer Institute (PSI) as well as other facilities worldwide.
In this contribution, the NICOS software, recent developments, and its typical use at ESS instruments will be presented on behalf of the NICOS collaboration and the Experimental Control and Data Collection group at ESS.