atst software and instrument development
DESCRIPTION
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. - PowerPoint PPT PresentationTRANSCRIPT
ATST Software andInstrument Development
18 March 2009Boulder, 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
ComponentsComponents
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
AttributeName Value
Header Tag
Access Key Config Id
AttributeName Value
AttributeName Value
Services
“Major” Service Classes “Minor” Service Classes
• App (for connections)
• Event
• Log
• Health
• Archive
• Property and Constant
• Header
• IdDB
Used by all ComponentsAvailable 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 5ViSP Container 5ViSP Container 4ViSP Container 4
ViSP Container 3ViSP Container 3
dcdcdc.vcdc.vc
dc.vc.timebasedc.vc.timebasedc.vc.cameradc.vc.camera
dc.bdtdc.bdtdc.bdt.buffersdc.bdt.buffers
Example: ViSP Components
ViSP Container 1ViSP Container 1
isis
mcmcmc.slitmc.slit
mc.slit.deckermc.slit.decker
mc.slit.rotmc.slit.rot
mc.slidemc.slide
mc.grating1mc.grating1
mc.grating1.amc.grating1.a
mc.grating1.bmc.grating1.b
mc.grating1.gmc.grating1.g
mc.stage1mc.stage1
mc.stage1.gmc.stage1.gmc.stage1.bmc.stage1.bmc.stage1.amc.stage1.amc.stage1.zmc.stage1.zmc.strage1.ymc.strage1.ymc.stage1.xmc.stage1.x
ViSP Container 2ViSP Container 2
dcdcdc.vcdc.vc
dc.vc.timebasedc.vc.timebasedc.vc.cameradc.vc.camera
dc.bdtdc.bdtdc.bdt.buffersdc.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
FeedOptics
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 Inst Inst
Fibre Channel Switch
RealtimeStorage
NSODigital Archive
Virtual SolarObservatory
Processing
Reduction
Databases
Calibration
Quality Assurance
Pipeline
Inst
DataStorage
QuicklookQuicklook
Quicklook
Data Control
• Large volume data processing• Use of existing Digital Archive• Connection to worldwide VSO
Instrument Control
Observation ManagementObservation Management
ObservationsObservations
ScriptsScripts
Instrument SequencerInstrument Sequencer
Mechanism Controller
Mechanism Controller
Detector ControllerDetector
Controller
Other Instruments
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
OCS4.2OCS4.2
ICS3.1.4ICS
3.1.4TCS4.4TCS4.4
DHS4.3
DHS4.3
VBI3.2VBI3.2
ViSP3.3
ViSP3.3
NIRSP3.4
NIRSP3.4
VTF3.5VTF3.5
Data LAN
SynchroBus
Cameras3.6
Cameras3.6
ICD 3.1-4-4.2
ICD 3.1.2-3.6
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.5-3.6ICD 3.4-3.6ICD 3.3-3.6ICD 3.2-3.6
ICD 3.1.1-4.4
ScriptsScripts
ICD 3.6-4.3
ICD 3.1.1-3.1.2
SynchroBus3.1.2
SynchroBus3.1.2
ICD 3.1.2-3.1.4
GOS3.1.1GOS3.1.1
BDT4.3.1BDT4.3.1
UsersUsers
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
Virtual Camera Controller
Virtual Camera Controller
Virtual Camera Controller
Virtual Camera Controller
Virtual Camera Controller
Polarizer ControllerPolarizer
Controller
Synchrobus
GPS ReceiverGPS Receiver Timecode GeneratorTimecode Generator
DistributionHub
DistributionHub
Timecode Receiver
Timecode Receiver
Timecode Receiver
Timecode Receiver
Timecode Receiver
Timecode Receiver
Timecode Receiver
Timecode Receiver
NTP/Ethernet
Antenna
Network Switch
Network Switch
IRIG-B/DCLS Fiber
CPUCPU
CPUCPU
CPUCPU
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.
TimebaseControllerTimebaseController
BaseControllerBaseController
ITimebaseConnectionITimebaseConnection
Bc635ConnectionBc635Connection
HardwareControllerHardwareController
ITimebaseConnectionITimebaseConnection
<uses>
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
ExperimentsExperiments
ObservationsObservations
PropertiesProperties
BuildAstronomer
Scientist
BuildAstronomer
Scientist
RunObserverOperator
RunObserverOperator
Manage Experiments
Manage Experiments
Build Experiments
Build Experiments
Run Experiments
Run Experiments
ManageData
ManageData
OperateFacility
OperateFacility
Analyze Data
Analyze Data
ControlData Resources
ControlData Resources
Select Experiments
Select Experiments
Select Instruments
Select Instruments
Resident Astronomer
Resident Astronomer
Instrument Scientist
Instrument Scientist
ObserverObserver
OperatorOperator
EngineerEngineer OperateComponents
OperateComponents
OperateTelescopeOperate
Telescope
Manage ServicesManage Services
Run ScriptsRun
Scripts
Configure InstrumentConfigure
Instrument
Build Instruments
Build Instruments
Build ScriptsBuild Scripts
ComponentsComponents
ExperimentsExperiments
ServicesServices
InstrumentsInstruments
ScriptsScripts
TelescopeTelescope
Data StoreData Store
Actors Roles Resources
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 organizedInstrument setup/control/monitoring
Observation mode setup/control/monitoring
Detaileddisplay/setup
What the display is showingExperiment being examined
Instrument being displayed
ModeStatus(color)
Time left
Mode being displayed
Details for ViSP'sObserve mode
ViSP action for ObserveMode
Active mode (by color)
Time left
Finish rule
Instrument health (by color)
Operation status(by color)
Status messages go here
What the display controlsExperiment being examined
ModeControl(pull down)
Operation control (pull down)
Set params for ViSP's Observe mode
Select action forObserve Mode
Select mode to display
Instrument todisplay
Display mode overview (deselect instrument)
Display inst. overview (deselect mode)
Alarm/Health Management
What the display is showingHealth (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 byselecting 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