150 likes | 364 Vues
Status of BluIce-EPICS beamline control system for macromolecular crystallography.
E N D
Status of BluIce-EPICS beamline control system for macromolecular crystallography Sergey Stepanov, Oleg Makarov, Mark Hilgart, Sudhir Pothineni, Derek Yoder, Nagarajan Venugopalan, and Robert FischettiGM/CA CAT at the Advanced Photon Source, Biosciences Division ofArgonne National Laboratory, USA
GM/CA CAT Control system: BluIce-EPICS GM/CA CAT layout: two canted-undulator ID beamlines and one BM beamline at APS Sector 23, all dedicated to macromolecular crystallography. BluIce-EPICS: project started in 2003 Motivation: Preserve commonly praised user interface of SSRL BluIce, but make it efficiently working with EPICS hardware. Canted undulator beamlines Hardware: PMAC VME motion controllers for all motors; Struck scalers, Canberra MCA for fluorescent detectors, MAR CCD, bimorph mirrors power supplies by Elettra, EPS by Accel, ALS-style sample robot, ADC, DAC & Digital I/O by Acromag, PMAC, Systran, HyTec & XYcom. All hardware is EPICS driven (in house drivers for PMAC, ALS-style robot, HyTec, XYcom & partially MAR CCD). Additionally Axis and IQEYE web cameras (non-EPICS).
Architecture of the original SSRL BluIce The original BluIce is 3-layer system with socket communications between the layers. The DCSS is a central “coordinator” that is supposed to know everything about the beamline status. The GUI is written in Tcl/Tk and the rest in C/C++. DHS DHS DistributedHardwareServers(DHS) DHS DCSS Distributed ControlSystem Server (DCSS) UserInterfaceClients(BluIce)
Motion Motion Shutter Shutter Scaler Scaler MCA MCA PV PV Embedded EPICS I/O controllers: Embedded EPICS I/O controllers: BluIce-EPICS application details mySQL initialization Combined DHS-DCSS C++ backend channel access EPICS IOC(s) • Three SSRL BluIce layers merged into one: EPICS DHS merged with DCSS into a single C++ backend controller and furthermore the combined controller merged with the GUI and socket calls from the GUI converted into function calls (the calls format was preserved) • Initialization through mySQL and exchange between different GUI instances via EPICS PVs • Each GUI is standalone MEDM-like EPICS client
mySQL initialization Embedded EPICS I/O controllers Embedded EPICS I/O controllers EPICS IOC(s) APS controls: electronics: Bimorph -undulator scalers, mirrors -ring status digital I/O control motors - EPS, etc. DAC, ADC CCD Robot Place of BluIce-EPICS application among other controls Staff beamline automation tasks Blu-Ice interfaces for beamline users MEDM Scan software Automation Scripts channel access Each BluIce is a standalone EPICS client (like MEDM!)
BluIce-EPICS GUI core tabs Hutch Raster Sample Collect Screening Scan Older tabs are in Tcl/Tk, newer tabs are in Java. The plan is to convert all tabs into Java.
BluIce-EPICS: tabs added since NOBUGS’2006 SAMPLE RASTERING(minibeam) LOGS SCREENING
Rack of helpers Frame Server Edge Scans Server 2006 Point & Click Server 2008 Robot Server Sample Autocentering Keithley Server Embedded EPICS I/O controllers Embedded EPICS I/O controllers Frame audit Big energy move Minibeam alignment Collimator In/Out BL Feedback Server Fluor.Rastering Server Fluor.detector tune BluIce-EPICS: outsourcing complex controls to helpers mySQL initialization channel access EPICS IOC(s) • Helpers include SNL-like servers and external scripts that interact with BluIce via PVs; some also share mySQL initialization. • Each helper is an independent module that can be written in any language without knowledge of the main BluIce application. • They widen base of developers: use SNL, C, Java, Perl, Tck/Tk…
BluIce:is |ΔE| > 0.5KeV? How BluIce-EPICS helpers work: big energy moves No Drive energydirectly in BluIce Frame Server: Yes Call external script BigEnergyMove.pl script: Pauses BL intensity feedback server Changes undulator harmonic and offset, if needed Changes mirrors lanes, if needed Changes filters to preserve beam attenuation Re-centers the beam & restarts intensity feedback server Reports to BluIce log window & pops-up dialog messages if needed. PMAC: Frame Server:
How BluIce-EPICS helpers work: frame processing engine EPICS DB for Frame Server Tells PMAC via EPICS CA at what angles it should open/close shutter Tells CCD via socket what should be the frame name and starts collection Tells PMAC via CA to start gonio motion from A to B. Frame Server: Executes motion & shutter open/close commands PMAC: Waits for PMAC to finish (CA monitor) Commands CCD via CA to stop integration and save file Frame Server: Gonio PMAC Gonio-shutter sync in PMAC! MAR CCD Shutter
Remote beamline control • Same NOMACHINE technology as at many other facilities • Two computers open per beamline (one for data collection & one for processing) • Extra controls for remote operation in BluIce Todd Geders using remote controls at U. Michigan Compliance with Argonne’s enhanced security requirements: access is restricted not only to the time of an experiment and specified user name, but also to a list of IP domains from which users work.
Mini beam support • Switch between 5μm, 10μm & 300μm collimators in one click • Fast minibeam alignment with on-the-fly piezo scans • Scanless optical minibeam alignment with YAG • Tool for fast optimization of bimorph mirrors focus
BluIce-EPICS development practices • Collect users feedback through end-of-run reports (if only one improvement..) • Discuss and prioritize at weekly group meetings • Bugs list queue and new features queue • Typically a week of testing by staff crystallographers before releasing to users • Big changes on shutdowns only • Use BM beamline as a test bed (no simulated hardware yet) • Version tracking with Subversion • Documentation on Group Wiki and video guides for users • Weekly snapshots at http://www.gmca.aps.anl.gov/bluice-epics/
Tcl/Tk GUI 45K LOC C++ DCSS/DHS 50K LOC Helpers: 110K LOC channel access EPICS IOC(s) BluIce-EPICS source code Current Developers: Mark Hilgart Oleg Makarov Sudhir Pothineni Sergey Stepanov Former Developers: Satish Devarapalli Alex Urakhchin BluIce/Helpers ~ 50/50 The application is Open Source. The core source is tracked with Subversion and weekly snapshots are posted at http://www.gmca.aps.anl.gov/bluice-epics/
Acknowledgements GMCA CAT Staff: - Janet Smith (GMCA CAT director)- Craig Ogata (crystallographer)- Nukri Sanishvili (crystallographer)- Michael Becker (crystallographer)- Shenglan Xu (engineer)- Richard Benn (engineering assistant)- Stephen Corcoran (engineering assistant)- Sheila Trznadel (administrative specialist) SSRL:- Scott McPhillips- Mike Soltis ALS:- Thomas Earnest- Carl Cork- Nick Sauter Scripps:- Peter Kuhn GM/CA CAT has been financed with federal funds from the National Cancer Institute (Y1-CO-1020) and the National Institute of General Medical Science (Y1-GM-1104).