The objective of the IBEX project is to create a new control system for the neutron & muon instruments at ISIS to replace the SECI/LabVIEW control system previously used at ISIS. The new control system employs a modern, layered and distributed architecture, enabling the development of loosely-coupled client and server applications. Device control and business logic reside in the server applications. The new control system is based on the EPICS and Control System Studio (Eclipse/RCP) software frameworks. IBEX coordinates the activities of a number of software components, each of which controls a separate aspect of an ISIS experiment:
(i) The Instrument Control Program (ICP) controls the Data Acquisition Electronics (DAE), informing it when to start and stop data collection, including automatically suspending data collection temporarily if certain conditions (e.g. sample temperature or pressure, or synchronisation of the chopper) are not within user-defined limits. The ICP is also responsible for transferring the final data from the DAE to the Nexus file, available via ICAT, along with the requested experiment and sample environment data.
(ii) the IBEX server is a collection of cooperating software components, based on the EPICS control-system framework. The primary components of the IBEX server are Input-Output Controllers (IOCs), and the Blockserver. The IOCs control sample environment equipment and beamline components such as motion control or magnets. The Blockserver coordinates the activities of IOCs and other components, including the ICP and a data archiver.
(iii) The IBEX client is a graphical user interface application, which communicates with IBEX server and provides the primary means by which the experimenter can interact with the components of the IBEX server and the ICP to monitor and control an experiment. The IBEX client also provides a simple scripting environment for running genie_python scripts.
(iv) genie_python is an in-house library of Python commands which permit the automation of an experiment, for example enabling unattended overnight data collection from a sample at a number of temperatures in a furnace or cryostat, or from a number of samples in a sample changer. The documentation for genie_python commands is available here.
The IBEX client GUI.
More details on using IBEX can be found in the IBEX User Manual .
The source code for IBEX is kept on the Group's Github
Publications
IBEX - the new EPICS based instrument control system at the ISIS pulsed neutron and muon source (ICALEPCS, 2015)
IBEX - an EPICS based control system for the ISIS pulsed neutron and muon source (ICANSXXII, 2017)
IBEX - beamline control at the ISIS pulsed neutron and muon source (ICALEPCS, 2019)
Updates and Remote Challenges for IBEX, Beamline Control at ISIS Pulsed Neutron and Muon Source (ICALEPCS, 2021)