/*
* **MEMBER**=MPS_ALG_MPSL
*
* --------------------------------------------------------------------
*
* Abs: AP alg for ESA
*
* AP: AP01
*
* Rem: This alg is an example, as may be written for AP01.
*
* Auth: 03-Sep-1993, N Evermore)
* Rev:
*
* --------------------------------------------------------------------
*
* Mod:
*
* --------------------------------------------------------------------
*/
/*
* --------------------------------------------------------------------
* Some A-Line definitions. Note NONE of these expressions end with
* "&". This is so they can be and'd together in the algorithm.
* --------------------------------------------------------------------
*/
/*
* These are the A-Line PIC's that must be okay in order for the
* A-Line to run. AB01.208/209.
*/
#define ALINE_PIC_OK \
MPS.AB01.20."40IC " == "OK" {"BSY_40B1_IC TRIPPED "} & \
MPS.AB01.20."IC1 " == "OK" {"BSY_IC TRIPPED "} & \
MPS.AB01.20."IC108" == "OK" {"BSY_PC0_IC TRIPPED "} & \
/* end of ALINE_PIC_OK macro */
/*
* These are the A-Line BIR's that must be okay in order for the
* A-Line to run. AB01.305/306.
*/
#define ALINE_BIR_OK \
MPS.AB01.5."IV12 " == "OPEN" {"ESA_IV12 NOT_OPEN "} & \
MPS.AB01.5."FV11 " == "OPEN" {"ESA_FV11 NOT_OPEN "} & \
MPS.AB01.5."G14 " == "OK" {"ESA_G14 FAULTED "} & \
MPS.AB01.5."IC_PRESS" == "OK" {"ESA_IONC_GAS FAULTED "} & \
/* end of ALINE_BIR_OK macro */
/*
* These are the A-Line RTD's that must be okay in order for the
* A-Line to run. AB01.306.
*/
#define ALINE_RTD_OK \
MPS.AB01.13."T23 " == "OK" {"A_P1_TMP TRIPPED "} & \
MPS.AB01.13."52ST2_T1" == "OK" {"A_52ST2_TMP TRIPPED "} & \
/* end of ALINE_RTD_OK macro */
/*
* ===================================================================
* AP and algorithm name.
* ===================================================================
*/
AP = AP01
ALG = "september mps"
BEAM = "SLCSLD" | "BAS2"
RATE = "FULLRATE" | /* Full rate everywhere */
"LIMHI_FN" | /* E- beam in arcs/ff limited to 10 Hz */
"LIMHI_FS" | /* E+ beam in arcs/ff limited to 10 Hz */
"LIMHI_FF" /* Both beams in arcs/ff limited to 10 Hz */
STOPCNF = NONE {"NONE"}
NEWRATE = "ZERORATE"
ALINE_PIC_OK &
ALINE_BIR_OK &
ALINE_RTD_OK &
PICS.AB01.101."CABLE " == "OK"
;
NEWRATE = "LIMIT_HI"
PICS.AB01.101."FULLRATE" == "OK"
;
NEWRATE = "FULLRATE"
; /* default */
RATE = "LIMIT_HI" /* Beam everywhere limited to 10 Hz. */
STOPCNF = NONE {"NONE"}
NEWRATE = "ZERORATE"
ALINE_PIC_OK &
ALINE_BIR_OK &
ALINE_RTD_OK &
PICS.AB01.101."CABLE " == "OK"
;
NEWRATE = "LIMIT_LO"
PICS.AB01.101."FULLRATE" == "OK"
;
NEWRATE = "LIMIT_HI"
PICS.AB01.101."LIMIT_LO" == "OK" &
PICS.AB01.101."LIMIT_HI" == "OK"
;
NEWRATE = "FULLRATE"
; /* default */
RATE = "LIMIT_LO" /* Beam everywhere limited to 1 Hz. */
STOPCNF = NONE {"NONE"}
NEWRATE = "ZERORATE"
ALINE_PIC_OK &
ALINE_BIR_OK &
ALINE_RTD_OK &
PICS.AB01.101."CABLE " == "OK" &
PICS.AB01.101."FULLRATE" == "OK"
;
NEWRATE = "LIMIT_LO"
PICS.AB01.101."LIMIT_HI" == "OK"
;
NEWRATE = "LIMIT_HI"
PICS.AB01.101."LIMIT_LO" == "OK"
;
NEWRATE = "LIMIT_HI"
; /* default */
RATE = "ZERORATE" /* No beam at all. */
STOPCNF = NONE {"NONE"}
NEWRATE = "ZERORATE"
ALINE_PIC_OK &
ALINE_BIR_OK &
ALINE_RTD_OK &
PICS.AB01.101."CABLE " == "OK" &
PICS.AB01.101."FULLRATE" == "OK" &
PICS.AB01.101."LIMIT_HI" == "OK" &
PICS.AB01.101."LIMIT_LO" == "OK"
;
NEWRATE = "LIMIT_LO"
; /* default */