chandra-mta / config_mon

This is the MTA dumps monitoring scripts.
1 stars 0 forks source link

dumps_mon aka config_mon Monitors and reports deviations from expected spacecraft configuration using dumped telemetry in non-realtime.

found at colossus: /home/brad/Dumps/Dumps_mon/dumps_mon.pl run with cronjob by mta using interface /home/brad/Dumps/Dumps_mon/mta_run

This program checks once per hour for new telemetry dump data.

Its input comes from another program that has processed the raw telemetry through acorn. Input is dumps_mon.pl -c -p where ccdm is acorn output containing TSCPOS, FAPOS and gratings data pcad is acorn output containing quaternion data

This program compares this input with expected MP values. Expected values come from pred_state.rdb, see HEAD://proj/gads6/ops/Chex Values checked are TSC position FA position RA, Dec, Roll Grating angles A/B sides in agreement Currently, HETG/LETG position (inserted/retracted) is not checked

If descrepencies are found, e-mail is sent to sot_yellow_alert (currently sent only to brad swolk rac)

At most, one e-mail will be sent per dump file. Only the first violation of each of the checked values is reported in the e-mail. If a violated value, regains sync with the expected value, a recovery is reported in the e-mail.

** Program Parameters ***

allowable lag time for moves (seconds)

$tsclagtime = 500; # SIM translation $falagtime = 200; # SIM Focus $gratlagtime = 1000; # Grating insertion/retraction time $qtlagtime = 2000; # Slew time

violation limits

$tscposlim = 5; # steps $faposlim = 5; # steps $ralim = 0.05; # degrees = 3 min $declim = 0.05; # degrees = 3 min $rolllim = 0.05; # degrees = 3 min

gratings parameters

$gratinpar = 20; # position where gratings is considered inserted $gratoutpar = 65; # position where gratings is considered retracted $gratlim = 10; # allowable disagreement between A and B readings

*****

Basic algorithm goes something like this:

set violation = false for each input_time { find corresponding position in expected state file (esf) for each value to be checked (tscpos, fapos, pcad) { look backward in esf for last state transition if (input_time - last_transition_time > allowable_lag_time) then if (|actual_value - expected_value| > violation_limit and violation = false) then write some details about the violation set violation = true if (|actual_value - expected_value| < violation_limit and violation = true) then write some details about the recovery set violation = false } if any violations occurred, send e-mail alerts.

Revisions 10/15/00 dumps_mon_1.0

11/20/00 dumps_mon_1.2

11/21/00 dumps_mon_2.0

11/29/00 dumps_mon_2.1