Download presentation
Presentation is loading. Please wait.
1
NICOS – IBEX Interactions
Dominic Oram – ISIS
2
NICOS – IBEX Interactions
Overview of IBEX Scripting in IBEX Evaluation of different script servers Integration of NICOS into IBEX Future Improvements
3
IBEX New ISIS beamline control system
Moves towards a more distributed, client/server architecture Based on EPICS and CS-Studio Run entirely on Windows Now on 12/30 instruments
4
IBEX IBEX has been fully functional control system for 3-4 years
Allows users to: Configure which devices are on the beamline Tag PVs to store in the NeXus file, set archive rates etc. on these Set variables via CS-Studio OPIs or a scripting language Begin/end data collection Much more… Work now focused on migrating new instruments and ‘would like to have’ features
5
Scripting Instrument Control in IBEX
Scripting is in Python (2.7) In-house genie_python module allows instrument control Scripting is done client side and communicates with the server via channel access Run using pyDev in the GUI or as a standalone Python console
6
What do Users Want? Accountability of who ran what when
Guarantee of what script is controlling the instrument Be able to queue scripts overnight A view of what line of a script is currently being run The ability to pause/stop and edit scripts on the fly Validation and time estimates of a script More varied methods of creating scripts (drag-and-drop) All this in the pre-existing IBEX client Better separation of client and server (maybe more of a developer want) Some of these things don’t require a server but come with script server packages
7
SNS Scan Server Evaluation
Meets all user criteria Java and Eclipse RCP based script server Fixed set of commands that are hardcoded between client/server (or arbitrary Jython) Easy to integrate UI XML comms protocol
8
NICOS Meets all user criteria
Python based back-end (easy to integrate genie_python) Protocol is pickled python over sockets Needed to write a new UI (in Java) and change protocol to better integrate with Java Only need the daemon Basically choice between re implementing a backend or a frontend
9
First Integration Attempt - Proxy
Prototype - didn’t want to modify NICOS too much Communicated with client using JSON over ActiveMQ queues (both already in use in IBEX) Converted to pickled python for NICOS We wanted to evaluate the possibility of using NICOS without modifying it too much Building this confirmed that NICOS was a viable option
10
A Better Integration Attempt
Met with FRM-II February 2017 They modified NICOS to allow an option for JSON serialization over ZeroMQ JSON and ZeroMQ have good Java support Meant we could remove proxy and move forward with creating a prototype UI
11
Demo of Current Functionality
12
Current Rollout Status
Have demoed functionality to about half of the IBEX users so far NICOS is being rolled out to all IBEX instruments as we speak Will be enabled as default but can turn it off at scientists request Old scripting method is still available and will be for the foreseeable future Will be gathering usage statistics and asking for feedback at the end of the month
13
What do Users Want? Accountability of who ran what when
Guarantee of what script is controlling the instrument Be able to queue scripts overnight A view of what line of a script is currently being run The ability to pause/stop and edit scripts on the fly Validation and time estimates of a script More varied methods of creating scripts (drag-and-drop) All this in the pre-existing IBEX client Better separation of client and server (maybe more of a developer want) Green we can do, orange we’re a step closer to
14
Things to do Integrate better with NICOS repository
Improve authentication Tie security into our EPICS security Further UI improvements – code completion etc. Implement dry run functionality into UI and genie_python Think about how we want to interact with old style scripting Minor feedback e.g. get name of current script Look into using other NICOS features Build a script generator that interacts with NICOS Currently all clients use the same account and control is locked to localhost
15
Thank You Any Questions?
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.