170 likes | 340 Views
BLU-ICE & The Distributed Control System Past, Present, and Future. Scott McPhillips Stanford Synchrotron Radiation Laboratory. Overview. Review the core features DCS 1.0: Centralized Message Routing Architecture DCS 2.0: Scripted Devices DCS 3.0: Scripted Operations Example Applications
E N D
BLU-ICE & The Distributed Control SystemPast, Present, and Future Scott McPhillipsStanford Synchrotron Radiation Laboratory
Overview • Review the core features • DCS 1.0: Centralized Message Routing Architecture • DCS 2.0: Scripted Devices • DCS 3.0: Scripted Operations • Example Applications • Automatic Loop Alignment • Data Collection • Crystal Screening • Plans for releasing DCS 3.0
What is a core feature? • Features that could persist in a completely different environment. • Features that simplify hardware control & integration.
DCS 1.0: Software Components & Acronyms • XOS (Cross Operating System library) • Provides subset of system calls with O.S. independent API. • BLU-ICE (the GUI interface) • Multiple, fully synchronized clients • Written in TCL. • Simple scripting available. • Scans • Hardware testing • DHS (Distributed Hardware Servers) • Translates DCS protocol into hardware specific protocol. • DCSS (The Distributed Control System Server) • Centralized process • 1 DCSS per beam line.
DCS 1.0: Basic Architecture BLU-ICE(s) • DCSS is the central message router • BLU-ICE clients connect to DCSS only. • Hardware servers connect to DCSS only. • DCSS records the state of the beam line. • Benefits • Fewer interfaces / less complexity. • Easier system level debugging? • Persistent & current state available in 1 place. DCSS Hardware Servers Beam Line Hardware
table_pivot table_vert table_pitch Table table_vert_2 table_vert_1 DCS 1.0: Limitations BLU-ICE(s) • Combo motors not support natively in DCS 1.0. • Requires lower level control system to support these features. DCSS ICS Wrapper DHS Galil DHS ICS control system Beam Line Hardware
DCS 2.0: Scripted Devices BLU-ICE • TCL Scripting added to DCSS. • DCSS sits above all of the hardware servers. • Relationships can be defined between devices spanning multiple hardware servers. DCSS TCL Scripting Engine Core • Scripting engine obeys and depends upon centralized messaging. • Connects as “GUI client.” • Connects as a DHS. Hardware Servers Beam Line Hardware
table_pivot table_vert table_pitch Table table_vert_2 table_vert_1 DCS 2.0: Scripted Devices • Support for unlimited parent and “grandparent” hierarchy. beam_size_y slit_1_vert_gap slit_2_vert_gap slit_1_upper slit_1_lower slit_2_upper slit_2_lower • Virtual motor support (e.g. table_pivot)
DCS 3.0: Operations • Added a generic “Operation” message to the DCS protocol. • Allows easy integration of new types of hardware. • DCSS routes the operation request to the responsible DHS. • Added “scripted operation” capabilities to the scripting engine. • Scripted operations can • do anything possible in TCL. • move motors or scripted devices. • wait for motors to complete moving. • Start other operations (DHS or scripted). • wait for operations to complete. • Scripted devices can start operations. • DCS protocol messages are unlimited in size. • Removed the 200 byte message size limitation. • DCSS is backward compatible with old hardware servers.
DCS 3.0: Example Application #1 Automatic Loop Alignment BLU-ICE • Wrote “camera” DHS with operations for retrieving and processing images. • “getLoopTip” will return image coordinates of tip of sample. • “addImageToList” takes a picture and stores it in memory. • “findBoundingBox” looks at images in memory and finds 3D bounding box for loop. • Wrote Scripted Operation “centerLoop.” • Calls the “camera” DHS operations. • Moves motors. • Script handles the high level centering decisions. Center loop DCSS centerLoop Image operations Move motors Camera DHS Motor DHS Axis Server Motion controller Sample camera
DCS 3.0: Example Application #2: Data Collection collectRun collectFrame gonio_phi detector_z_corr optimizedEnergy Legend • collectRun operation does the following: • Moves motors to the next frame’s position. • Waits for the motors. • Starts the operation “collectFrame”. • Waits for the collectFrame operation to complete. • Loops over the above steps until the run is finished. Scripted Device Scripted Operation “Real” hardware
DCS 3.0: Example Application #2: Data Collection collectRun collectFrame gonio_phi detector_z_corr detector_encoder detector_z optimizedEnergy optimize Legend energy Scripted Device table_vert Scripted Operation ion_chambers “Real” hardware
DCS 3.0: Example Application #2: Data Collection collectRun collectFrame gonio_phi detector_z_corr detector_encoder detector_z optimizedEnergy optimize Legend energy Scripted Device table_vert table_slide Scripted Operation ion_chambers mono_angle “Real” hardware table_horz_2 table_horz_1 table_vert_1 table_vert_2
DCS 3.0: Example Application #2: Data Collection collectRun collectFrame gonio_phi expose detector_z_corr detector gonio_phi detector_encoder detector_z optimizedEnergy optimize Legend energy Scripted Device table_vert table_slide Scripted Operation ion_chambers mono_angle “Real” hardware table_horz_2 table_horz_1 table_vert_1 table_vert_2
DCS 3.0: Example Application #3: Crystal Screening Crystal Screening centerLoop optimizedEnergy Video Snapshot collectFrame Mount Next Crystal Legend Beamstop_z Scripted Device Sample_x,y,z Scripted Operation Gonio_phi detector_z robot “Real” hardware
DCS 3.0+: Development Environment • All code stored in CVS (Concurrent Version System) • External collaborators can see what is being worked on at SSRL. • Absorb architecturally consistent changes from external collaborators. • Open the software portions of Bugzilla to external Collaborators? • Engineering change requests already being tracked at SSRL. • Create an online discussion group? • Allow collaborators to discuss design changes, problems, and solutions without opening a bug report. • Documentation • DCS Administrator’s Manual • Script Writer’s Guide
Acknowledgements • Developers • Tim McPhillips, Guenter Wolf, Henry van den Bedem, Ken Sharp, Nick Sauter, Jian Zhong, Hilary Yu, Thomas Eriksson • Scientific Input • Paul Ellis, Aina Cohen, Ana Gonzalez, Mitch Miller, Irimpan Mathews, Dan Harrington, Ezequiel Panepucci, John Coller, Hsiu-Ju Chiu, Ashley Deacon, Paul Phizackerley, Jeanette Hobbs, Linda Brinen • Team Leaders • Peter Kuhn, Mike Soltis