Because of the geographical separation of the VLA Antennas, the wavefront of the received signal of an observed object reaches each antenna at a different time. The differences are compensated for in the correlator by inserting delays in the signal paths to effectively sychronize the arrival of the signals before correlation takes place.
A program called CALC from NASA uses ephemeris data for the Earth, the VLA's position on the Earth and the position of the observed source object to calculate the delay for each antenna in the observation. This information is collated by the EVLA Executor program into what are called Delay Models. Because of Earth's movement during the observation the Delay Models must be recalculated periodically (on the order of every 10-seconds).
A Delay Model consists of a set of polynomial coefficient values, one set for each of the four IF's of each of the (up to) 32 antennas (128 sets of coefficient values).
The models are transmitted from the Executor in the form of XML over UDP.
<vciStbDelayModel epoch='2013-08-07T13:11:14.500Z' fShift='-788.3' idString='ea01A' sslo='14552.0' t0='56511.54947337963'> <bbDelayModel bbId='0'> <modelCff cff='-7.581059348565685E-6' index='0'/> <modelCff cff='1.7865568667413245E-11' index='1'/> <modelCff cff='-9.398758129378292E-16' index='2'/> </bbDelayModel> </vciStbDelayModel>
Sample Delay Model XML
Each of the 128 antenna/IF models are sent over one of 128 ports on the multicast channel. The antenna/IF to port mapping is defined as (ant * 4) + IF
where 'ant' is the 'EA' number associated with each antenna and is numbered from 1 to 32 (the first four ports associated with antenna '0' are not used). IF values are defined as:
A (A1 C1) = IF 0 C (B1 D1) = IF 1 B (A2 C2) = IF 2 D (B2 D2) = IF 3
So, for example, the delay model for EA10 IF-D would be sent on port 10 * 4 + 3 = 43. (In actuality, this is an offset that gets added to a base port number. The base port value can be seen in the OPERATION section of this document.)
In the WIDAR Correlator, 128 Station Boards are physically 'wired' to the antennas where one Station Board is connected to one IF of one antenna. The Delay Model Distributor is the WIDAR Correlator process that accepts the delay models from the Executor and distributes them to the appropriate Station Boards based on the port each model is received on.
DelayModelDistributor receives delay models from Executor and retransmits them to the appropriate Station Boards.
While the physical connections from antenna/IF to Station Board will not normally change, it is possible that they can, so the mapping of the multicast ports to the individual Station Boards is provided by a property file (see OPERATION). DelayModelDistributor assigns one Thread to each of the 128 ports to listen for models being sent by the Executor. Each listener thread is started with the port number to listen on and the IP address of the Station Board associated with that port. When the listener receives a delay model from the Executor it sends it off to that IP address over UDP Unicast.
Since the occasional loss of a delay model will not be catastrophic to an observation it was decided that UDP could be used for their distribution.
On the CMIB, a Java Thread listens for incoming delay models via UDP on port 53500 and, when received, immediately writes it to a driver written in 'C' and located at '/dev/widar/models'.
Name | Host | Description | Contact |
---|---|---|---|
Executor | mchammer | Generates Delay Models, sends them via Multicast to MCCC | Barry Clark, Ken Sowinsky |
widar/mccc/dmd/DelayModelDistributor | mccc | Receives models from Executor, maps them to the proper Station Boards and transmits to them over UDP | Kevin Ryan |
widar/cmib/frontend/CmibMain.java | CMIB | Receives model via TCP and writes it to the device driver at /dev/widar/models | Kevin Ryan |
CMIB delay model task ('C') | CMIB | Receives model from via a file write and processes it for that individual Station Board. | Bruce Rowen |
On mccc.evla.nrao.edu
(as root or sudo) :
> /opt/services/bin/widar-dmd start
> /opt/services/bin/widar-dmd stop
The following table shows the delay model distribution status as of the last time this page was refreshed.
Ant |
|
Ant |
|
||||||||||
ea01 | ea02 | ||||||||||||
ea03 | ea04 | ||||||||||||
ea05 | ea06 | ||||||||||||
ea07 | ea08 | ||||||||||||
ea09 | ea10 | ||||||||||||
ea11 | ea12 | ||||||||||||
ea13 | ea14 | ||||||||||||
ea15 | ea16 | ||||||||||||
ea17 | ea18 | ||||||||||||
ea19 | ea20 | ||||||||||||
ea21 | ea22 | ||||||||||||
ea23 | ea24 | ||||||||||||
ea25 | ea26 | ||||||||||||
ea27 | ea28 |
Delay models orginate in Executor and are sent via Multicast over a different port for each antenna/IF. The DelayModelDistributor program, running in MCCC, listens for the models and retransmits them to the appropritate Station Boards based on a property file that maps the port number to the Station Board.
Located on MCCC's internal drive.
/opt/services/mccc/properties/delayModelDistributor.properties
The most common failure of the Delay Model Distributor subsystem occurs during its startup when the Java Virtual Machine uses one (or more) of the 132 ports that we need. No known way exists to fix this other than to restart the application.
-- To see if this problem has ocurred, check the port column in the table for entries in RED.
-- To restart:
> /opt/services/bin/widar-dmd stop
> /opt/services/bin/widar-dmd start
................................................
Thu Sep 19 16:55:31 MDT 2013 -- WARNING -- DelayModelDistributor$DelayModelListener:run -- DelayModelDistributor: Error with port '53623
Reason: Address already in use