250 likes | 410 Vues
GBT Control System. Richard Prestage. Requirements of a Single Dish Telescope. Flexibility! Multiple Receivers GBT has 11 current, 1 retired, more planned Multiple Backends Three Spectrometers Two heterodyne continuum + one bolometer array
E N D
GBT Control System • Richard Prestage
Requirements of a Single Dish Telescope Flexibility! Multiple Receivers GBT has 11 current, 1 retired, more planned Multiple Backends Three Spectrometers Two heterodyne continuum + one bolometer array Multiple pulsar backends (many visitor instruments) Multiple Observing Modes Line, Pulsar, Continuum, VLBI, FSSW, PSSW, BMSW, OTF Mapping… Continually being upgraded Software must be flexible and agile also…
Requirements of the Control System • Support the above flexibility • Allow novice users to think about astronomy, rather than device settings • Allow expert users to manipulate and use every capability of the hardware • Create a laboratory of instruments, rather than a monolithic telescope • Allow for expansion and upgrades • Minimize interdependencies • Systems implemented as autonomous units, coordinated by time • Consistent metaphor for devices • Consistent device state machine
Areas I will cover today Monitor and Control System (“Managers”) Configuration Logic Observation Control Queue Control
Monitor and Control System (“Managers”) Configuration Logic Observation Control Queue Control
Monitor and Control System • Each separate piece of hardware is controlled by a separate process - • “Device Manager” • Base class “Manager” provides a common control interface and implements core functionality required by all devices. • Derived class adds methods specific to the needs of the device • Control or “set-up” variables which define the operation of a device are encapsulated in the class “Parameter” • Primitive data types • Arrays • C-structures • “setParameter” method can set any Parameter of any type.
Monitor and Control System • Can have a hierarchy of “coordinators” and “managers” Scan Coordinator Antenna Coordinator LO1 Manager Spectrometer Manager Antenna Manager Active Surface Manager
Monitor and Control System • Basic unit of data acquisition is a “scan” • Contiguous period of telescope motion and data acquisition • One “On” of an On-Off observation or point map • One “row” of an on-the-fly map. • Managers are independent state machines • Coordinated by Start Time Running Committed Stopping Activating Aborting Ready Standby Off
Monitor and Control System (“Managers”) Configuration Logic Observation Control Queue Control
Configuration Logic The GBT has had over 10 receivers and over 10 backends available for use during the 10 years since its commissioning. Each receiver to backend must be routed through a complicated IF chain. If any part of the configuration is incorrectly setup, the observation will fail and telescope time will be lost. A typical configuration results in over 125 individual settings to at least 7 different hardware devices. The ‘configuration tool’ is an api that allows an observer to specify how they want to use the telescope without having to understand the details of the hardware or the M&C software system. The observer specifies what they want to do and the configuration tool maps this into GBT specific hardware settings.
Configuration Logic Configure(""" receiver = 'Rcvr12_18' beam = 'B12' obstype = 'Continuum' backend = 'DCR' nwin = 1 restfreq = 15000 deltafreq = 0 bandwidth = 320 swmode = 'tp' swtype = 'none' swper = 0.2 swfreq = 0.0, 0.0 tint = 0.2 vlow = 0 vhigh = 0 vframe = 'topo' vdef = 'Radio' noisecal = 'lo' pol = 'Circular' iftarget = 3 """)
Configuration Logic • Configuration Tool: • Does what? • How?
Monitor and Control System (“Managers”) Configuration Logic Observation Control Queue Control
Observation Control • Typical Observation: • Calibrate the Telescope (Peak, Focus) • Configure the instrumentation (as discussed above) • Balance the IF system • Slew to a target source (specified in a catalog) • Perform the observation • GBT Observation Control System executes simple scripts, written in python, to execute the above steps. • All of the power of python is available to the observer.
SimpleObserving Scripts Example 1: AutoPeakFocus() Example 2: mySource = “3C48” myOffset = Offset(“J2000”, 1.0, 1.0) Catalog(flux_cal) Configure(“/home/users/ashelton/myConfigure.py”) Slew(mySource) Balance() Track(mySource, myOffset, 60.0, “1”)
More Complex Example Python list, loop Call a Python function Python arithmetic Set values in hardware offsetList= [0,1,-1,2,-2,3,-3,4,-4,0] for nOffset in offsetList: # Calculate total offset, place into servo totOffset= offset0 + delOffset*nOffset SetSubrOffset("y3", totOffset) # Compensate LPC's a = (az0LPC+delOffset*nOffset*azLPCScale) e = (el0LPC+delOffset*nOffset*elLPCScale) f = focus0LPC+delOffset*nOffset*focusLPCScale SetValues("Antenna",{"localPointingOffsets,azOffset2":a}) SetValues("Antenna",{"localPointingOffsets,elOffset":e}) SetValues("Antenna",{"local_focus_correction,Y":f}}) # Add some annotation to the observing process Annotation("Y3FFSET",str(totOffset)) # Do the measurements AutoPeak(source=src, configure=False, balance=False)
Monitor and Control System (“Managers”) Configuration Logic Observation Control Queue Control
The National Radio Astronomy Observatory is a facility of the National Science Foundationoperated under cooperative agreement by Associated Universities, Inc. www.nrao.edu • science.nrao.edu