Monitor and Control of the K-band Focal Plane Array

Overview

The GBT M&C System

The GBT monitor and control (M&C) system, named Ygor, is a distributed object-oriented telescope control system written in C++. The basic design of the M&C system is simple. A radio telescope is defined as a laboratory rather than an instrument (i.e. it is a set of devices of which the antenna is only one, which needs to be configured in novel ways to accomplish observations or scans). Each device, such as the K-band Focal Plane Array, is an autonomous subsystem which can be fully configured prior to a scan through a finite set of control parameters in order to run the scan in coordination with other devices. For purposes of configuration and observing, each device requires no more than four interfaces (control, monitor, message/alarm, and data) which are identical for all devices. The same control interface for user programs is also used to recursively build a tree of control modules whose root is a generic "scan coordinator". Any control module of the tree may be used to initiate a scan for the sub-tree under its control because each control module is derived from the same base class (called a Manager) and therefore inherits all of the control protocols required to coordinate and initiate a scan. (Clark, 1998)

Note: Throughout this document, items that are shown in fixed font refer to C++ classes used by the K-Band Focal Plane Array monitor and control software.

Ygor.JPG

Ygor Component Diagram

KFPA Monitor and Control

To lay the foundation for the full integration of the K-band Focal Plane Array (KFPA) into the GBT M&C system, we plan to create a synchronous Manager, using the ManagerSynchronous base class, for the array which will implement three of the four interfaces described above: control, monitor, and message/alarm. The base Manager class provides a number of predefined control points and messages/alarms. Furthermore, we plan to leverage existing code which already monitors and controls the cryogenics, power supplies, and calibration diodes. This is accomplished by inheriting from the GregorianRcvrMgr base class. By convention, the receiver calibration engineering FITS files produced during a scan (i.e. the data interface) for the KFPA receiver will be generated by another, preexisting Manager, called the Measurements Manager.

The engineering specifications for the hardware monitor and control of the HEMTBiasCard form the basis for the design detailed in this document and are further clarified in the Monitor and Control Specification for the KFPA (Document A02920D004). One important issue to note regarding monitoring , which is referenced in the details of the HEMTBiasCard, is that the "adjusting and monitoring of the bias would take place between scans or other times active observing is not taking place and the IIc bus will be dormant during observing to eliminate any possible RFI generated by the IIC bus."

The KFPA Manager will primarily communicate with an commercial, off-the-shelf, microcontroller (via 10/100 Ethernet) which is in turn connected with the sub-modules that actually monitor and control the instrument. A diagram depicting the connection from the Manager down to the M&C sub-modules is shown below. It is expected that a TCP/IP socket will most likely be used to establish communication between the Manager and the microcontroller(s). The communication protocol to be used between the Manager and the microcontroller(s) over the socket connection is to be determined.

Manager2Pixel.JPG

High Level Diagram from Manager to Pixel

High Level Software Design

Monitor

Overview

Each individual monitor value is referenced by an object of the class DataDescriptor which contains a complete description of the value including name, explanation, data type, size, units, and array count (if a vector). These DataDescriptors allow more functionality to be handled by the base classes than otherwise would be possible. For example, the user programs do not have to be rewritten (or even recompiled) to handle new devices and their associated scan parameters and monitor values since the reading, writing, communicating, and displaying of their values depends on code based on the DataDescriptors not on compiled data types. Also, the displays can be embellished with explanations and units since the information is readily available. In fact, the DataDescriptor is complete enough that headers for FITS binary tables can be generated automatically. This allows the engineers to select any monitor point whose values are sent to a logging program which generates files in FITS format. Likewise, the observer can select any monitor point's values to be stored as part of the observational data along with traditionally sampled values such as antenna positions and weather. (Clark, 1998)

Because adjusting and monitoring of the bias will likely take place between scans or other times active observing is not taking place and the IIc bus will be dormant during observing to eliminate any possible RFI generated by the IIC bus. This means that monitoring will not occur during data acquisition (i.e. during a scan).

Individual monitor values are grouped into a Sampler, which contains the monitored values along with a time stamp. The table below details the monitor values for the array, the units of the monitor value, the type of the monitor value, the vector size of the monitor value, the Sampler to which each belongs, an indication as to whether existing code can be leveraged for the KFPA Manager, a monitor rate for the sampling, and a description of the monitor value.

Table of Monitor Values

Monitor Value Unit Type Vector Size Sampler Name Unique to KFPA? Monitor Rate Description
VdrainCtl Volts Float 488 LNAbias DONE TBD Control voltage for drain voltage for a single stage of LNA bias
IdrainCtl Volts Float 488 LNAbias DONE TBD Control voltage for drain current for a single stage of LNA bias
VgateCtl Volts Float 488 LNAbias DONE TBD Control voltage for gate voltage for a single stage of LNA bias
VdrainCtl Volts Float 61 noiseCalibration DONE TBD Control voltage for drain voltage for a single stage of noise calibration
IdrainCtl Volts Float 61 noiseCalibration DONE TBD Control voltage for drain current for a single stage of noise calibration
VgateCtl Volts Float 61 noiseCalibration DONE TBD Control voltage for gate voltage for a single stage of noise calibration
voltage TBD Volts Float 1 downConverter DONE TBD Voltage of down converter
current TBD Amps Float 1 downConverter DONE TBD Current of down converter
ampBiasMonitor None Integer 1 downConverter DONE TBD Monitor bits for amplifier bias
bits TBD TBD TBD 1 attenuatorCtrl DONE TBD Control bits for attenuator
loPower Volts Float 61 downConverter DONE TBD Module LO power
LEDCtl None Enumeration [swOff, swOn] 1 LNAbias DONE TBD Control bit for LNA LED (on/off)
LEDCurrent None Integer 1 LNAbias DONE TBD Control bit for LNA current
pos5volts Volts Float 1 powerSupply ALERT! variable - set through control parameter (default 5 seconds) +5 volts
neg5volts Volts Float 1 powerSupply ALERT! variable - set through control parameter (default 5 seconds) -5 volts
pos15volts Volts Float 1 powerSupply ALERT! variable - set through control parameter (default 5 seconds) +15 volts
neg15volts Volts Float 1 powerSupply ALERT! variable - set through control parameter (default 5 seconds) -15 volts
pos28volts Volts Float 1 powerSupply ALERT! variable - set through control parameter (default 5 seconds) +28 volts
D15KTemp Kelvin Float 1 cryogenics ALERT! variable - set through control parameter (default 2 seconds) Dewar 15K temperature
D50KTemp Kelvin Float 1 cryogenics ALERT! variable - set through control parameter (default 2 seconds) Dewar 50K temperature
D300KTemp Kelvin Float 1 cryogenics ALERT! variable - set through control parameter (default 2 seconds) Dewar 300K temperature
ambientTemp Kelvin Float 1 cryogenics ALERT! variable - set through control parameter (default 2 seconds) Ambient temperature
dewarVac Volts Float 1 gregorian ALERT! variable - set through control parameter (default 1 minute) Dewar vaccuum
pumpVac Volts Float 1 gregorian ALERT! variable - set through control parameter (default 1 minute) Pump vaccuum
vacIon Volts Float 1 gregorian ALERT! variable - set through control parameter (default 1 minute) Vac ion pump vacuum
cryoCtl None Short 1 gregorian ALERT! variable - set through control parameter (default 1 minute) Cryogenics control readback
xferSwCtl None Short 1 gregorian ALERT! variable - set through control parameter (default 1 minute) Transfer switch control readback
ampPwrCtl None Short 1 gregorian ALERT! variable - set through control parameter (default 1 minute) Cryogenics amplifier power control readback
IFfilterCtl None Short 1 gregorian ALERT! variable - set through control parameter (default 1 minute) IF filter control readback
cryoStatus None Short 1 gregorian ALERT! variable - set through control parameter (default 1 minute) Cryogenics status register monitor
switchStatus None Short 1 gregorian ALERT! variable - set through control parameter (default 1 minute) Transfer and noise switch register monitor
stages TBD Volts Float 1 cryoAmpBias ALERT! variable - set through control parameter (default 1 minute) Cryogenic amplifier stages
stages TBD Volts Float 1 cryoAmpLED ALERT! variable - set through control parameter (default 1 minute) Cryogenic amplifier stages
bits TBD None Integer 1 cryoStatusBits ALERT! variable - set through control parameter (default 1 minute) Cryogenic control word bit values
fields TBD Volts Float 1 noiseSource ALERT! variable - set through control parameter (default 1 minute) Diode voltages for noise source
bits TBD None Integer 1 switchStatusBits ALERT! variable - set through control parameter (default 1 minute) Calibration control word bit values

Control

Overview

Each individual scan parameter is referenced by an object of the class DataDescriptor which contains a complete description of the value including name, explanation, data type, size, units, and array count (if a vector). These DataDescriptors allow more functionality to be handled by the base classes than otherwise would be possible. For example, the user programs do not have to be rewritten (or even recompiled) to handle new devices and their associated scan parameters since the reading, writing, communicating, and displaying of their values depends on code based on the DataDescriptors not on compiled data types. Also, the displays can be embellished with explanations and units since the information is readily available. (Clark, 1998)

Individual control values are represented via a Parameter, each of which is potentially associated with three customized methods - a check method, a dependency method, and an activate method. The check method evaluates incoming values for each Parameter to ensure that they make sense. The dependency method takes the checked value and further evaluates it with regard to any dependency the Parameter has with other Parameters. The activate method does just that; the incoming value is transferred to the hardware. It is worth noting that although each Parameter can have all three of this methods, usually only check and activate methods are implemented.

The table below details each Parameter name associated with a control value, the units of the control value, the type of the control value, the vector size of the control value, the name of the control value, an indication as to whether existing code can be leveraged for the KFPA Manager, and a description of the monitor value.

Table of Control Values

Parameter Name Unit Type Vector Size Unique to KFPA?Sorted ascending Description
calStateCntl None Integer 1 ALERT! Computed control parameter sent to device
cryoState None Enumeration [refrigOff, refrigHeat, refrigCool, refrigPump] 1 ALERT! Controls the state of the cryogenics refrigerator
cryoAmpMonitorRate None Enumeration [values from 100ms to 1 hr] 1 ALERT! Sets the 'cryoAmpBias' and 'cryoAmpLED' sampler monitor interval
cryoMonitorRate None Enumeration [values from 100ms to 1 hr] 1 ALERT! Sets the 'cryogenics' sampler monitor interval
cryoStatusMonitorRate None Enumeration [values from 100ms to 1 hr] 1 ALERT! Sets the 'cryoStatusBits' sampler monitor interval
gregorianMonitorRate None Enumeration [values from 100ms to 1 hr] 1 ALERT! Sets the 'gregorian' sampler monitor interval
noiseSourceMonitorRate None Enumeration [values from 100ms to 1 hr] 1 ALERT! Sets the 'noiseSource' sampler monitor interval
supplyMonitorRate None Enumeration [values from 100ms to 1 hr] 1 ALERT! Sets the 'powerSupply' sampler monitor interval
switchStatusMonitorRate None Enumeration [values from 100ms to 1 hr] 1 ALERT! Sets the 'switchStatusBits' sampler monitor interval
asap None Boolean 1 ALERT! controls whether the manager starts as soon as possible
requestedStartTime TimeStamp TimeStamp 1 ALERT! target start timme of next scan if asap flag is clear
requestedStopTime TimeStamp TimeStamp 1 ALERT! target stop time of next scan
startTime TimeStamp Integer 1 ALERT! expected start time of the next scan
scanLength TimeStamp Integer 1 ALERT! expected duration of next scan
nextScanNumber None Integer 1 ALERT! 1:N
scanNumber None Integer 1 ALERT! 1:N
projectId None Char(16) 1 ALERT! project identifier string < 16 char
source None Char(32) 1 ALERT! source identifier string < 32 char
scanId None Char(32) 1 ALERT! scan identifier string < 32 char
recipientNumber None Integer 1 ALERT! number of clients of Manager
state None Enumeration [Off, Standby, Ready, Activating, Committed, Running, Stopping, Aborting, NotInService] 1 ALERT! current operational state of Manager
debugLevel None Enumeration 1 ALERT! controls the level of debug printing
status None Enumeration [clear, Info, Notice, Warning, Error, Fault, Fatal] 1 ALERT! summarizes the severity of the Message levels
LEDCtl None Enumeration [swOff, swOn] 1 DONE On/off control of LED of LNA bias
VdrainLNACtl Volts Float 488 DONE Control for drain voltage per single stage of LNA bias
IdrainLNACtl Volts Float 488 DONE Control for drain current per single stage of LNA bias
VgateLNACtl Volts Float 488 DONE Control for gate voltage per single stage of LNA bias
VdrainCalCtl Volts Float 61 DONE Control for drain voltage per single stage of noise calibration
IdrainCalCtl Volts Float 61 DONE Control for drain current per single stage of noise calibration
VgateCalCtl Volts Float 61 DONE Control for gate voltage per single stage of noise calibration
attenuatorCtl TBD TBD 1 DONE Control for downconverter attentuator

Data

The K-band Focal Plane Array Manager will not produce its own engineering FITS files. By the convention established with all other receivers, the receiver calibration engineering FITS files produced during a scan (i.e. the data interface) are generated by a different preexisting Manager, called the Measurements Manager. We envision that each pixel of the KFPA will have its own calibration entry in the receiver calibration database (currently in MySQL format). It is unclear at this time whether the Measurements Manager or receiver calibration database schema will require changes as a result of the introduction of the KFPA.

Messaging

Overview

In the GBT M&C system, each message is assigned a severity level (i.e., information, notice, warning, error, fault, or fatal). The base Manager class computes a status based on its most severe message currently active. Managers with a status of error or higher prevent observing and indicate serious issues with the M&C system. The control hierarchy of Managers that make up the control system recursively passes these summary statuses up the hierarchy so that the status of each device and subsystem reflects the most severe level of all of its messages. From this it becomes trivial to create a display for indicating statuses for the entire system. (Clark, 1998). In Ygor, messages are encapsulated by the Message class.

Messages Generated by Control Parameters

A Manager's scan parameters can generate two possible errors: one is the result of user input (illegal value) and the other is the result of failures in digital control interfaces (activate fault). The methods to check and activate scan parameter values are written for specific parameters in the derived Manager, e.g. the K-band Focal Plane Array Manager, but are called in the base Manager class. The base Manager class uses the return value of the scan parameter virtual methods to generate and report the appropriate messages for all parameters. (Clark, 1998)

Illegal User Input

For each control Parameter for the KFPA, we will need valid input ranges from the design engineers. We can integrate those ranges into the respective check methods for each Parameter so that illegal input will be automatically flagged in the GBT operator's message window using Messages generated in the Manager base class; this is accomplished via a return value from the check method for a Parameter.

Failures in Digital Interfaces

For each control Parameter for the KFPA, we will check to ensure that the validated commanded value is properly set within the hardware. If a failure should occur, the failure will automatically flagged in the GBT operator's message window using Messages generated in the Manager base class; this is accomplished via a return value from the activate method for the Parameter.

Messages Generated from Sampled Values (i.e. Monitor Points)

Unlike control parameters, a Manager has no built-in Messages for monitored values. This means that for the K-band Focal Plane Array, we will need guidance from the design engineers in order to determine which monitor points need to be checked within the Manager, what criteria should be used to generate/clear the message, and the message attributes (e.g. message level, text, etc.).

Some of the pre-existing Messages that the KFPA will have (because it utilizes the same hardware for cryogenics, etc. as other GBT receivers) are shown in the table below. The messages/alarms are listed in ascending severity level. Any messages with a level of error or higher prevent observing.

Level Text
Info Debug Monitor window open failure.
Notice Receiver cryogenics not in COOL mode.
Notice The Cryo Refrigerator is under LOCAL control.
Warning MCB Read Error.
Warning MCB Write Error.
Warning The Cal Control is under LOCAL control.
Warning Check receiver refrigerator temperature.
Warning Check receiver power supplies.
Warning Check receiver dewar vacuum.
Warning Check LO power level.
Fatal Monitor semaphore error.

References

This topic: KPAF > DirectorsOffice > SWPlanning > ArrayMnCSoftwareDesign
Topic revision: 2016-06-08, PatrickMurphy
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding NRAO Public Wiki? Send feedback