PROC F_FL_M_PSGEN ;VERSION 1 IF(P@NRT_STATE#TELECOMMAND = "ENABLED")THEN /NRT TPUT PAUS ELSE ENDIF GOTO BEGIN ; ;#*********************************************************************** ;# ****PROCEDURE HEADER**** ;# ;# 1.0 Introduction ;# ;# 1.1 FOT Name: F_FL_M_PSGEN ;# MMS-F Name: ;# SUM Issue: ;# Simulator Validation Status: ;# ;# 1.2 Date Created: 05-NOV-95 ;# Revision: 1. 01-DEC-95 BS ;# 2. 23-DEC-95 HB ;# ;# 1.3 Change Description: ;# ;# 1. GO TO -> GOTO. ;# 2. Changed LIMIT to H'$LIMIT' in IF-THEN statements for power ;# supply numbers 1, 4, 5, 6, 7, and 8. ;# ;# 1.4 Point of Contact: CCAZEAU ATSC/SOHO 286-6374 ;# FOT Author: BSAPPER ATSC/SOHO 286-4799 ;# CELIAS Author: J PAQUETTE UMD 301-405-6223 ;# CELIAS Contact: A GALVIN UMD 301-405-6208 ;# ;#*********************************************************************** ;# 2.0 Description ;# ;# 2.1 Narrative Decription ;# ;# FOR AN MTOF POWER SUPPLY: ;# SET LIMIT AND LEVEL TO USER-SUPPLIED VALUES. ;# FOR WAVE EQ, PM EQ, AND VF, SET DELTA TO A ;# USER-SUPPLIED VALUE. FOR THE OTHER SUPPLIES, ;# DELTA IS ALWAYS 01. ;# POWER SUPPLY CODES: ;# 1 = Proton monitor MicroChannel Plate ;# 2 = PM E/Q deflection system ;# 3 = Wave E/Q deflection system ;# 4 = Vf ;# 5 = Start MCP ;# 6 = Neutral MCP ;# 7 = Ion MCP ;# 8 = Hyperbola ;# ;# 2.2 Intended Use: ;# ;# SET AN MCP POWER SUPPLY ;# ;# 2.3 Duration: TBD ;# ;# 2.4 References: ;# ;#*********************************************************************** ;# 3.0 Instructions for Use: ;# ;# 3.1 Parameters Required ;# ;# PS ;# DELTA ;# LIMIT ;# LEVEL ;# ;# 3.2 Critical Activities ;# ;# THIS COMMAND AFFECTS HIGH VOLTAGES. IF USED UNDER ;# NON-VACUUM CONDITIONS, MTOF DISABLE PLUG MUST BE ;# CONFIRMED BY EXPERIMENTER TO BE IN PLACE. ;# ;# 3.3 Special Constraints or Activities ;# ;# Monitor MTOF HV HK during procedure ;# and for at least an hour after procedure ends. ;# ;# COMMAND LINK must be available for at least an ;# hour after procedure ends, in case contingency ;# commanding is required. ;# ;# ************************************************************************* ;# 4.0 STEPS: BEGIN: LOCAL PS LOCAL DELTA LOCAL LIMIT LOCAL LEVEL IF(P@CMD_STATE#TELECOMMAND = "AVAILABLE") THEN ELSE /CLEAR ;Clearing the Command Buffer. ENDIF ;# 4.1 PROMPT USER FOR WHICH PS TO SET WRITE "1=PM MCP,2=PMEQ,3=WAVE,4=Vf,5=START,6=NEUTRAL,7=ION,8=HPS" ASK "INPUT POWER SUPPLY IDENTIFICATION NUMBER (decimal)"PS IF(PS<1)THEN ASK "Invalid input, please reenter"PS WAIT ;Verify number OK ENDIF IF(PS>8)THEN ASK "Invalid input, please reenter"PS WAIT ;Verify number OK ENDIF ;# 4.2 PROMPT USER FOR THE LIMIT ASK "Input LIMIT (0-255 decimal):"LIMIT IF(LIMIT<0)THEN WRITE "Incorrect LIMIT. PS LIMIT/LEVEL unchanged" GOTO DONE ENDIF IF(LIMIT>255)THEN WRITE "Incorrect LIMIT. PS LIMIT/LEVEL unchanged" GOTO DONE ENDIF ;# 4.3 PROMPT USER FOR THE LEVEL ASK "Input LEVEL (0-255 decimal):"LEVEL IF(LEVEL<0)THEN WRITE "Incorrect LEVEL. PS LIMIT/LEVEL unchanged" GOTO DONE ENDIF IF(LEVEL>255)THEN WRITE "Incorrect LEVEL. PS LIMIT/LEVEL unchanged" GOTO DONE ENDIF ;# 4.4 Convert decimal LEVEL, LIMIT to hex for use below LIMIT=%HEX(LIMIT,2) LEVEL=%HEX(LEVEL,4) ;# 4.5 SET DELTA, LIMIT. SET LEVEL WAIT ;NOTE VALUE OF FSDTCOK (command OK counter) IF(PS=5)THEN ;Start MCP IF(H'$LIMIT'>H'A5')THEN ;A5=165(decimal) ASK "This is a very high voltage. Are you sure (Y/N)" ANSWER=%UPPER(ANSWER) IF(ANSWER="Y")THEN ELSE WRITE "Exiting without change" GOTO DONE ENDIF ENDIF WAIT ;NOTE VALUE OF FSMVSMV /FBMLIMSM,01$LIMIT ; Start MCP power supply delta/limit = 01,LIMIT WAIT ;VERIFY BUFFER CONTENTS /SEND WAIT ;VERIFY FSDTCOK HAS INCREASED BY 1. NOTE NEW VALUE. /FBMSM,$LEVEL ;set START MCP to LEVEL WAIT ;VERIFY BUFFER CONTENTS /SEND GOTO GOOD ENDIF IF(PS=6)THEN ;Neutral MCP IF(H'$LIMIT'>H'A5')THEN ;A5=165(decimal) ASK "This is a very high voltage. Are you sure (Y/N)" ANSWER=%UPPER(ANSWER) IF(ANSWER="Y")THEN ELSE WRITE "Exiting without change" GOTO DONE ENDIF ENDIF WAIT ;NOTE VALUE OF FSMVNMV /FBMLIMNM,01$LIMIT ; NEUTRAL MCP power supply delta/limit = 01,LIMIT WAIT ;VERIFY BUFFER CONTENTS /SEND WAIT ;VERIFY FSDTCOK HAS INCREASED BY 1. NOTE NEW VALUE. /FBMNM,$LEVEL ;set NEUTRAL MCP to LEVEL WAIT ;VERIFY BUFFER CONTENTS /SEND GOTO GOOD ENDIF IF(PS=7)THEN ;Ion MCP IF(H'$LIMIT'>H'A5')THEN ;A5=165(decimal) ASK "This is a very high voltage. Are you sure (Y/N)" ANSWER=%UPPER(ANSWER) IF(ANSWER="Y")THEN ELSE WRITE "Exiting without change" GOTO DONE ENDIF ENDIF WAIT ;NOTE VALUE OF FSMVIMV /FBMLIMIM,01$LIMIT ; ION MCP power supply delta/limit = 01,LIMIT WAIT ;VERIFY BUFFER CONTENTS /SEND WAIT ;VERIFY FSDTCOK HAS INCREASED BY 1. NOTE NEW VALUE. /FBMIM,$LEVEL ;set ION MCP to LEVEL WAIT ;VERIFY BUFFER CONTENTS /SEND GOTO GOOD ENDIF IF(PS=1)THEN ;PM MCP IF(H'$LIMIT'>H'A5')THEN ;A5=165(decimal) ASK "This is a very high voltage. Are you sure (Y/N)" ANSWER=%UPPER(ANSWER) IF(ANSWER="Y")THEN ELSE WRITE "Exiting without change" GOTO DONE ENDIF ENDIF WAIT ;NOTE VALUE OF FSMGPMMV /FBMLIMPM,01$LIMIT ;PM MCP power supply delta/limit = 01,LIMIT WAIT ;VERIFY BUFFER CONTENTS /SEND WAIT ;VERIFY FSDTCOK HAS INCREASED BY 1. NOTE NEW VALUE. /FBMPM,$LEVEL ;set PM MCP to LEVEL WAIT ;VERIFY BUFFER CONTENTS /SEND GOTO GOOD ENDIF IF(PS=2)THEN ;PM EQ WRITE "Input DELTA (0-255 decimal). Suggested values are " ASK "255 in nominal mode, or 1 in any other mode:"DELTA IF(DELTA<0)THEN WRITE "Incorrect DELTA. PS LIMIT/LEVEL unchanged" GOTO DONE ENDIF IF(DELTA>255)THEN WRITE "Incorrect DELTA. PS LIMIT/LEVEL unchanged" GOTO DONE ENDIF DELTA=%HEX(DELTA,2) WAIT ;NOTE VALUE OF FSMGPMEV /FBMLIMPE,$DELTA$LIMIT ;PM EQ power supply delta/limit = DELTA, LIMIT WAIT ;VERIFY BUFFER CONTENTS /SEND WAIT ;VERIFY FSDTCOK HAS INCREASED BY 1. NOTE NEW VALUE. /FBMPE,$LEVEL ;set PM MCP to LEVEL WAIT ;VERIFY BUFFER CONTENTS /SEND GOTO GOOD ENDIF IF(PS=3)THEN ;WAVE EQ WRITE "Input DELTA (0-255 decimal)? Suggested values are " ASK "15 in nominal mode, or 1 in any other mode:"DELTA IF(DELTA<0)THEN WRITE "Incorrect DELTA. PS LIMIT/LEVEL unchanged" GOTO DONE ENDIF IF(DELTA>255)THEN WRITE "Incorrect DELTA. PS LIMIT/LEVEL unchanged" GOTO DONE ENDIF DELTA=%HEX(DELTA,2) WAIT ;NOTE VALUE OF FSMGWVEV /FBMLIMWE,$DELTA$LIMIT ;WAVE power supply delta/limit = DELTA,LIMIT WAIT ;VERIFY BUFFER CONTENTS /SEND WAIT ;VERIFY FSDTCOK HAS INCREASED BY 1. NOTE NEW VALUE. /FBMWE,$LEVEL ;set WAVE EQ to LEVEL WAIT ;VERIFY BUFFER CONTENTS /SEND GOTO GOOD ENDIF IF(PS=8)THEN ;HPS IF(H'$LIMIT'>H'C8')THEN ;C8=200(decimal) ASK "This is a very high voltage. Are you sure (Y/N)" ANSWER=%UPPER(ANSWER) IF(ANSWER="Y")THEN ELSE WRITE "Exiting without change" GOTO DONE ENDIF ENDIF WAIT ;NOTE VALUE OF FSMVHPSV /FBMLIMHV,01$LIMIT ;HPS delta/limit = 01,LIMIT WAIT ;VERIFY BUFFER CONTENTS /SEND WAIT ;VERIFY FSDTCOK HAS INCREASED BY 1. NOTE NEW VALUE. /FBMHV,$LEVEL ;set HV to LEVEL WAIT ;VERIFY BUFFER CONTENTS /SEND GOTO GOOD ENDIF IF(PS=4)THEN ;Vf PS IF(H'$LIMIT'>H'7F')THEN ;7F =127(decimal) WRITE "Incorrect LIMIT! Levels and limits have a different meaning" WRITE "for Vf. Exiting procedure without change." GOTO DONE ENDIF IF(H'$LIMIT'>H'64')THEN ;64=100(decimal) ASK "This is a very high voltage. Are you sure (Y/N)" ANSWER=%UPPER(ANSWER) IF(ANSWER="Y")THEN ELSE WRITE "Exiting without change" GOTO DONE ENDIF ENDIF WRITE "Input DELTA (0-255 decimal)? Suggested values are " ASK "10 in nominal mode, or 1 in any other mode:"DELTA IF(DELTA<0)THEN WRITE "Incorrect DELTA. PS LIMIT/LEVEL unchanged" GOTO DONE ENDIF IF(DELTA>255)THEN WRITE "Incorrect DELTA. PS LIMIT/LEVEL unchanged" GOTO DONE ENDIF DELTA=%HEX(DELTA,2) WAIT ;NOTE VALUE OF FSMGVFV /FBMLIMVF,$DELTA$LIMIT ;Vf power supply delta/limit = DELTA, LIMIT WAIT ;VERIFY BUFFER CONTENTS /SEND WAIT ;VERIFY FSDTCOK HAS INCREASED BY 1. NOTE NEW VALUE. /FBMVF,$LEVEL ;set Vf to LEVEL WAIT ;VERIFY BUFFER CONTENTS /SEND GOTO GOOD ENDIF WRITE "Invalid input. No Power Supply level changed." GOTO DONE GOOD: ;VERIFY FSDTCOK HAS INCREASED BY 1. WAIT ;NOTE VALUE OF Power Supply voltage GOTO DONE DONE: WAIT UNTIL(P@CMD_STATE#TELECOMMAND = "AVAILABLE") ;#*********************************************************************** ;# 5.0 Final Constraints ;# ;# CONTINUE MONITORING HV HK FOR SEVERAL MINUTES ;# ;# Power supply id number 1 means monitor FSMGPMMV ;# Power supply id number 2 means monitor FSMGPMEV ;# Power supply id number 3 means monitor FSMGWVEV ;# Power supply id number 4 means monitor FSMGVFV ;# Power supply id number 5 means monitor FSMVSMV ;# Power supply id number 6 means monitor FSMVNMV ;# Power supply id number 7 means monitor FSMVIMV ;# Power supply id number 8 means monitor FSMVHPSV ;# ;# KEEP COMMAND LINK AVAILABLE FOR AT LEAST AN HOUR ;# IN CASE OF HIGH VOLTAGE EMERGENCY CONTINGENCY. ;# ;#*********************************************************************** IF(P@NRT_STATE#TELECOMMAND = "PAUSE-ENAB")THEN /NRT TPUT RSUM /CMSMSG,CELIAS,'Procedure F_FL_M_PSGEN has completed' ELSE ENDIF ENDPROC