600 likes | 791 Views
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.
E N D
ATST Software andInstrument 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 1st: after command accepted 2nd: after action completes associated configuration ID
Containers and Components Custom interface User (functional) code Components CS code Toolbox Container Lifecycle control Service interfaces
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 Running (Functional Behavior) Shutdown Uninit Remove
Configurations Attribute Value Name Attribute Value Name Attribute Value Name Configuration Header Tag Config Id Access Key AttributeTable
Services “Minor” Service Classes “Major” Service Classes • Archive • Property and Constant • Header • IdDB • App (for connections) • Event • Log • Health Available to Support Functionality Used by all Components
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)
Example: ViSP Components ViSP Container 5 ViSP Container 4 ViSP Container 3 ViSP Container 1 ViSP Container 2 is dc dc.vc dc mc dc.vc.timebase dc.vc mc.slit dc.vc.camera dc.vc.timebase mc.slit.decker dc.bdt dc.vc.camera mc.slit.rot dc.bdt.buffers dc.bdt mc.slide dc.bdt.buffers mc.grating1 mc.grating1.a mc.grating1.b mc.grating1.g mc.stage1 mc.stage1.x mc.strage1.y mc.stage1.z mc.stage1.a mc.stage1.b mc.stage1.g
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
FeedOptics Mount M1 Mirror Wavefront PAC Enclosure Acq. M3 Azimuth Actuators Coudé AO Polarization Carousel Camera Altitude M4 Supports Coudé aO Analysis Shutter Filter Coudé M7-M9 Thermal Calibration Coudé CT Thermal Shutter GOS Vent Gates Telescope Control Trajectories Pointing TCS TCS Functions: • Ephemeris calculator • Coordinate conversions • Pointing corrections • Mount and enclosure trajectories • Wavefront correction strategy • Polarization and calibration configuration Coordination Optics M2 Mirror Hexapod Tip-Tilt Lyot Stop Heat Stop Occulter 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
Fibre Channel Switch Data Handling • Large volume data processing • Use of existing Digital Archive • Connection to worldwide VSO • High-speed instrument data • High-speed data storage • High-speed quick look display Processing Inst Inst Inst Inst Reduction Data Storage Calibration Databases Pipeline Quality Assurance Realtime Storage Quicklook Data Control Quicklook Quicklook NSO Digital Archive Virtual Solar Observatory
Instrument Control Observation Management Observations Other Instruments Instrument Sequencer Scripts Mechanism Controller Detector Controller
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 Scripts OCS 4.2 Users ICD 3.1-4-4.2 DHS 4.3 ICS 3.1.4 TCS 4.4 ICD 3.1.4-3.2 ICD 3.1.4-3.3 ICD 3.1.4-3.4 ICD 3.1.4-3.5 ICD 3.1.2-3.1.4 ICD 3.1.1-4.4 BDT 4.3.1 VBI 3.2 ViSP 3.3 NIRSP 3.4 VTF 3.5 SynchroBus 3.1.2 GOS 3.1.1 ICD 3.2-3.6 ICD 3.3-3.6 ICD 3.4-3.6 ICD 3.5-3.6 ICD 3.1.1-3.1.2 Cameras 3.6 ICD 3.6-4.3 ICD 3.1.2-3.6 SynchroBus Data LAN
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
Synchrobus CPU Antenna NTP/Ethernet GPS Receiver Timecode Generator Network Switch CPU CPU Distribution Hub IRIG-B/DCLS Fiber Polarizer Controller Virtual Camera Controller Virtual Camera Controller Virtual Camera Controller Timecode Receiver Timecode Receiver Timecode Receiver Timecode Receiver
Synchrobus • Symmetricom bc635PCI-V2 • PCI bus • IRIG B analog or DC Level Shift • 100 nsec resolution • .000001-100MPPS 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. BaseController ITimebaseConnection HardwareController ITimebaseConnection TimebaseController <uses> Bc635Connection
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 BuildAstronomerScientist RunObserverOperator Experiments Observations Properties
Actors Roles Resources Select Experiments Experiments Resident Astronomer Manage Experiments Select Instruments Build Instruments Scripts Instrument Scientist Build Experiments Build Scripts Instruments Run Scripts Run Experiments Configure Instrument Components Observer Analyze Data ManageData Data Store ControlData Resources OperateTelescope Telescope Operator OperateFacility Manage Services Services Engineer OperateComponents
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
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 Operation status (by color) Finish rule Time left Instrument being displayed Status messages go here Instrument health (by color) Active mode (by color) Time left Mode Status (color) ViSP action for ObserveMode Mode being displayed Details for ViSP's Observe mode
What the display controls Experiment being examined Instrument to display Display inst. overview (deselect mode) Display mode overview (deselect instrument) Operation control (pull down) Select mode to display Select action for Observe Mode Mode Control (pull down) Set params for ViSP's Observe mode
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