ATST Software and Instrument Development 18 March 2009 Boulder, CO
Overview ATST Software – framework – principal systems – interfaces Instrument Development – ATST-supplied tools – mode scripts – software for hardware – instrument interface – data plugins
Framework Common Services Framework (CSF) – defines the software architecture for communications, control, and services. ATST base (“base”) – provides implementations for common controllers and connections. Instrument Control System – controls the execution of observations by an instrument. “A software framework, in computer programming, is an abstraction in which common code providing generic functionality can be selectively overridden or specialized by user code providing specific functionality.” –Wikipedia.
Framework Instrument Control System Framework – execution of instrument scripts observing mode, experiment parameters – building collections of mechanism management controllers, hardware controllers, connections – operating cameras synchronization, data transfer, header collection “Frameworks are similar to software libraries in that they are reuseable abstractions of code wrapped in a well-defined API. Unlike libraries, however, the overall program's flow of control is not dictated by the caller, but by the framework. This inversion of control is the distinguishing feature of software frameworks.” -- Wikipedia
Common Services Framework Control Model – command, action, response Container/Component Model – idealized installable components Configuration Model – narrow command interface, broad parameterization Service Model – useful functionality provided as external server resources. Documented in SPEC-0022 – “Common Services Users’ Manual”
Command-Action-Response Command – control configurations, not actions – do not block – queue & schedule configurations Action – perform work in the background – multiple, simultaneous actions Response – 1 st : after command accepted – 2 nd : after action completes – associated configuration ID
Containers and Components Components Container Lifecycle control Service interfaces Custom interface User (functional) code Toolbox CS code
Components Uniform Lifecycle –Part of technical architecture –Managed by container Access to services –Provided by container –Shared/private services Isolated namespace –Independent from other components in same container Create Initialize Startup Shutdown Uninit Running (Functional Behavior) Remove
Configurations Configuration AttributeTable Attribute Name Value Header Tag Access Key Config Id Attribute Name Value Attribute Name Value
Services “Major” Service Classes “Minor” Service Classes App (for connections) Event Log Health Archive Property and Constant Header IdDB Used by all Components Available to Support Functionality
Example:ViSP Five systems: hardware controller and 4 Virtual camera controllers – hardware controller one C++ container holding components – ICS instrument sequencer (atst.ics.visp) – ICS mechanism components (atst.ics.visp.mc.*) » slit, slide, grating(3), stage(4) – each Virtual Camera controller one C++ container holding components – ICS virtual camera controller (atst.ics.visp.dc) – ICS bulk data transfer controller (atst.ics.visp.dc.bdt)
ViSP Container 5 ViSP Container 4 ViSP Container 3 dc dc.vc dc.vc.timebase dc.vc.camera dc.bdt dc.bdt.buffers Example: ViSP Components ViSP Container 1 is mc mc.slit mc.slit.decker mc.slit.rot mc.slide mc.grating1 mc.grating1.a mc.grating1.b mc.grating1.g mc.stage1 mc.stage1.g mc.stage1.b mc.stage1.a mc.stage1.z mc.strage1.y mc.stage1.x ViSP Container 2 dc dc.vc dc.vc.timebase dc.vc.camera dc.bdt dc.bdt.buffers
Principal Systems Observatory Control System – executes the observing program that controls the experiment. Telescope Control System – moves the telescope and controls the optical configuration Data Handling System – transfers, displays, processes, and stores camera data. Instrument Control System
Observatory Control System Facility Management – deploy containers, components, and systems – control services Experiment Management – build, queue, and manage experiments – create and run observing programs – coordinate experiments and data User Interactions – alarms, health, telescope control – script building, observing control
Telescope Control TCS Functions: Ephemeris calculator Coordinate conversions Pointing corrections Mount and enclosure trajectories Wavefront correction strategy Polarization and calibration configuration TCS Mount Azimuth Altitude Coudé M1 Mirror Actuators Supports Thermal M2 Mirror Hexapod Tip-Tilt Lyot Stop Heat Stop Occulter Feed Optics M3 M4 M7-M9 GOS Enclosure Carousel Shutter Thermal Vent Gates Wavefront Coudé AO Coudé aO Coudé CT Acq. Camera Filter Shutter Pointing Optics Trajectories Coordination PAC Polarization Analysis Calibration Control & coordinate the subsystems: Mount Control System M1 Mirror Control System M2 Mirror Control System Feed Optics Control System Wavefront Correction Control System Enclosure Control System Acquisition Control System Polarization, Analysis, Calibration System
Data Handling High-speed instrument data High-speed data storage High-speed quick look display Inst Fibre Channel Switch Realtime Storage NSO Digital Archive Virtual Solar Observatory Processing Reduction Databases Calibration Quality Assurance Pipeline Inst Data Storage Quicklook Data Control Large volume data processing Use of existing Digital Archive Connection to worldwide VSO
Instrument Control Observation Management Observations Scripts Instrument Sequencer Mechanism Controller Detector Controller Other Instruments
Interfaces ICS Interfaces – Observatory Control System – Instruments (ViSP, VBI, VTF, NIRSPen) – Synchrobus Instrument Interfaces – ICS – Camera Synchrobus Bulk Data Transfer User Interfaces
Instrument Control System Interfaces OCS 4.2 OCS 4.2 ICS ICS TCS 4.4 TCS 4.4 DHS 4.3 DHS 4.3 VBI 3.2 VBI 3.2 ViSP 3.3 ViSP 3.3 NIRSP 3.4 NIRSP 3.4 VTF 3.5 VTF 3.5 Data LAN SynchroBus Cameras 3.6 Cameras 3.6 ICD ICD ICD ICD ICD ICD ICD ICD ICD ICD ICD Scripts ICD ICD SynchroBus SynchroBus ICD GOS GOS BDT BDT Users
OCD to ICS Select the controlling experiment – Instrument then has access to experiment’s parameters. – ICS can allocate and control instruments in experiment. Change the current observing mode – Instrument responds to new mode with new script. – Instrument can cancel/abort current script. Events – Unallocated instruments can ‘follow’ observing mode. – Current script status (% done, iteration, alarms, etc) is reported.
ICS to Instrument Property Definitions – general instrument properties beamlines in use, current configuration – mechanisms and their properties connection type, positions, rates, channels, etc. – virtual cameras and their properties cameras, identifiers, data filters, sizes, etc. Script Definitions – available modes – repetitions, wavelenght, order, steps, policies, etc – script library
Virtual Camera Controller Polarizer Controller Synchrobus GPS Receiver Timecode Generator Distribution Hub Distribution Hub Timecode Receiver NTP/Ethernet Antenna Network Switch IRIG-B/DCLS Fiber CPU
Synchrobus Symmetricom bc635PCI-V2 – PCI bus – IRIG B analog or DC Level Shift – 100 nsec resolution – MPPS rate synthesizer – external event capture – flywheel drift on signal loss – Linux SDK
Synchrobus Software ATST base TimebusController – slave to GPS/TAI – rate generation – event interrupt – input pulse tagging ATST base ITimebusConnection ATST base Bc635Connection – Symmetricom bc625 driver and library – Implementation of TimebusController functions. TimebaseController BaseController ITimebaseConnection Bc635Connection HardwareController ITimebaseConnection
Instrument to camera TBD – built from the existing virtual camera interface of DST. Modes: – accumulated, burst, frame select, monitor – focus, alignment, etc
Camera to Synchrobus Select bc635 modes – rate generation, event interrupt Select pulse tagging – reference time, pulse multiplier
User Interfaces Resident Astronomer – experiment control Observer/Operator – facility control telescope, framework – observation control observing scripts, mode Instrument Scientist – instrument configuration instrument scripts, telemetry Experiments Observations Properties Build Astronomer Scientist Run Observer Operator
Manage Experiments Build Experiments Run Experiments Manage Data Operate Facility Analyze Data Control Data Resources Select Experiments Select Instruments Resident Astronomer Instrument Scientist Observer Operator Engineer Operate Components Operate Telescope Manage Services Run Scripts Configure Instrument Build Instruments Build Scripts Components Experiments Services Instruments Scripts Telescope Data Store ActorsRolesResources
Instrument Development ATST-supplied software – CSF, base, ICS, mini-DHS, TCS simulator Observing mode scripts – one script for each supported mode, null mode script. New hardware – help extend ATST base with controllers and connections Instrument interface – define all instrument properties and configurations Data plugins – quick look display, quality assurance, reduction software
Instrument Development Complete facility instrument – completely integrated into software architecture synchronized, modal response, data transfer – full use of software framework events, alarms, health, logs, component/container Proxy facility instrument – partial use of software framework non-standard parts, proxies, stand-alone components Visitor facility instrument – partially integrated into software architecture – minimal use of software framework
Instrument Development Instrument User Interfaces – stand-alone engineering user interface used for calibration, configuration, and engineering may use non-framework components – instrument scientist interface development and testing of mode scripts status reports during observations
Mode "Scripts" Observatory broadcasts its current observing mode – all systems run in that mode (OCS, TCS, ICS, instruments) – allocated instrument execute their appropriate script Modes for each instrument: – setup – observe – calibrate (wave, pol, tel, etc) – specialized instrument modes
New hardware Instrument builders will choose/use new hardware – build/find Linux drivers – build CSF Controller support – possibly build new connection interfaces – build new hardware connections. Add hardware to ATST standards – propose new standard – develop to CSF software standards – enjoy full ATST support of software
Instrument Interface Properties – each instrument component should have a set range, positions, rates, etc – stored in the Property service – retrieved automatically at load time atst.ics.visp.mc.slide (ContinuousMotorController) – {minpos, maxpos, scale, channel, maxvel} atst.ics.visp.mc.grating1 (DiscreteMotorController) – {minpos, maxpos, pos, channel, maxvel}
Data Plugins Quick Look – convert data stream to quick look display – low latency, fully automated, no display feedback Quality Assurance – convert data stream to uqality control data files – high latency, selective files Reduction – only necessary to physically reduce the data volume
OCS User Interfaces
Experiment Control
How the display is organized Instrument setup/control/monitoring Observation mode setup/control/monitoring Detailed display/setup
What the display is showing Experiment being examined Instrument being displayed Mode Status (color) Time left Mode being displayed Details for ViSP's Observe mode ViSP action for ObserveMode Active mode (by color) Time left Finish rule Instrument health (by color) Operation status (by color) Status message s go here
What the display controls Experiment being examined Mode Control (pull down) Operation control (pull down) Set params for ViSP's Observe mode Select action for Observe Mode Select mode to display Instrument to display Display mode overview (deselect instrument) Display inst. overview (deselect mode)
Alarm/Health Management
What the display is showing Health (by color) Alarm status (by color) Raised alarm Acknowledged alarm Log a comment about an alarm View alarm history
Checking an alarm Details on alarm. Can acknowledge, clear, or leave raised.
Checking health detail Can get details on any component by selecting that component.
Framework Observatory Control System – executes the observing program that controls the experiment. Telescope Control System – moves the telescope and controls the optical configuration Data Handling System – transfers, displays, processes, and stores camera data. “Frameworks are similar to software libraries in that they are reuseable abstractions of code wrapped in a well-defined API. Unlike libraries, however, the overall program's flow of control is not dictated by the caller, but by the framework. This inversion of control is the distinguishing feature of software frameworks.” -- Wikipedia
Overview ICS Interfaces – Synchrobus, Observatory Control, Data Handling Requirements – Synchronization, scripting, Design – Sequencer, mechanism, detector controllers – ATST base controllers Common Services Framework
ICS Interfaces Put interface picture here
Synchrobus Requirements Requirements
Synchrobus Design Design picture
Synchrobus Interface
OCS Interface
DHS Interface
ICS Design Requirements
ICS Design
ICS Instrument Sequencer
ICS Components
ICS Detectors
ATST Base Controllers
Common Services Framework