############################################################### # Revised Structure of the High Voltage Control Area # # on PHONCS -- # # How to use the new Makefile and the new subsystem # # structure to handle various detector high voltage # # configurations on multiple ArcNet networks # ############################################################### Johann M. Heuser Stony Brook, March 10/2000 + later additions The High Voltage Control area on PHONCS was revised to account for the increased complexity of the PHENIX high voltage system in the year 2000. During the engineering run in 1999, only one High Voltage Arcnet network string with one VME controller was present to operate the subset of the PHENIX detector systems that existed then. The final High Voltage control network is more modular. Up to four High Voltage ArcNet networks with one VME controller each will be installed for the West_South, West_North, East_South, East_North quarters of PHENIX. Presently, two networks are controlling the West and the East Carriages. The new Makefile and directory structure falicitates the creation of EPICS database files separately for every crate controller. Different subsystem High Voltage configurations can be set up easily and the overall control interface (MEDM GUI) built accordingly. This manual describes what configuration files are required and how to use the revised Makefile. The code can be found on PHONCS in: development area: /home/phoncs/heuser/epicsB/app/hvca/db final area: /export/software/oncs/epics/R3.13.0.beta11/epicsB/app/hvca/db The following environment variables have to be defined: setenv EPICSB $EPICS/app/epicsB setenv MY_ADL $EPICSB/app/hvca/medm/adl setenv MVD_HANDLING $EPICSB/app/hvca/medm/adl/mvd_handling setenv BB_HANDLING $EPICSB/app/hvca/medm/adl/bb_handling setenv ZDC_HANDLING $EPICSB/app/hvca/medm/adl/zdc_handling setenv DC_HANDLING $EPICSB/app/hvca/medm/adl/dc_handling setenv PC_HANDLING $EPICSB/app/hvca/medm/adl/pc_handling setenv TEC_HANDLING $EPICSB/app/hvca/medm/adl/tec_handling setenv RICH_HANDLING $EPICSB/app/hvca/medm/adl/rich_handling setenv TOF_HANDLING $EPICSB/app/hvca/medm/adl/tof_handling setenv PBGL_HANDLING $EPICSB/app/hvca/medm/adl/pbgl_handling setenv PBSC_HANDLING $EPICSB/app/hvca/medm/adl/pbsc_handling setenv MVD_SETUP $EPICSB/app/hvca/medm/adl/mvd_setup setenv BB_SETUP $EPICSB/app/hvca/medm/adl/bb_setup setenv ZDC_SETUP $EPICSB/app/hvca/medm/adl/zdc_setup setenv DC_SETUP $EPICSB/app/hvca/medm/adl/dc_setup setenv PC_SETUP $EPICSB/app/hvca/medm/adl/pc_setup setenv TEC_SETUP $EPICSB/app/hvca/medm/adl/tec_setup setenv RICH_SETUP $EPICSB/app/hvca/medm/adl/rich_setup setenv TOF_SETUP $EPICSB/app/hvca/medm/adl/tof_setup setenv PBGL_SETUP $EPICSB/app/hvca/medm/adl/pbgl_setup setenv PBSC_SETUP $EPICSB/app/hvca/medm/adl/pbsc_setup The >>HANDLING<< directories contain the files which are required by MEDM to handle the sub-sytems: display panels, on-off shell scripts etc. which are run from the control panels. The content of those directories are created automatically upon creation of the control GUI. Old content may be deleted during this operation. The >>SETUP<< directories are never cleaned automatically. They are intended to contain permanent files as handy shell scripts that enable the sub-systems users to perform more advanced setup procedures than are (for savety reason) offered by the graphical user interface. 1. Required input from the subsystems: ====================================== Every subsystem needs to provide two configuration files that a) describe which HV module is in which slot in which mainframe --> e.g. dc_west_descfile # ########################################################################## # DC_W HV CRATE CONFIGURATION FILE J.M.HEUSER 01/27/2000 # ################################# # # format: # 1. ModName 2. ModSN 3. ModOwner 4. ModType 5. ModGranule 6. ModSlot # 7. MFName 8. CrateCntr 9. MFID 10. MFType 11. MFLocation # # ########################################################################## HV_DC_W_S_M15 DCWS15 DC_W 1469N DC_W 15 mf50 iocondev3 50 LeCroy1458 west_arm HV_DC_W_S_M14 DCWS14 DC_W 1469N DC_W 14 mf50 iocondev3 50 LeCroy1458 west_arm ... b) describe which channel is in which HV module --> e.g. dc_west_channel # ################################################################## # DC_W Channel Name file J.M.HEUSER 01/27/2000 # ###################### # # The positions and types of modules are defined separately in the # module description file! # # convention for channel names: SOUTH - X1,UV1 wires # NORTH - X2,UV2 wires # file format: # 1. ModuleSN 2. ChannelNumber 3. ChannelName 4. MainframeID # ################################################################## DCWS15 0 HV_DC_W_S_KS00_UV1_P 50 DCWS15 1 HV_DC_W_S_KS00_X1__P 50 DCWS15 2 HV_DC_W_S_KS01_UV1_P 50 ... This information is entered into the Objectivity Database (for the time being with the program >>test_stand<<). In a next step, the information on the subsystem configuration is read out again from the Objectivity Database (for the time being with program >>db_datextr<<) and written into a combined configuration file (--> e.g. dc_w.dat) that is used for building the EPICS database file and the MEDM User Inface. Note: 1) The drift chamber uses a drift chamber specific version of db_datextr that re-groups the channels in a required way !! The program is: /home/phoncs/heuser/HV/src/db_datextr /home/phoncs/heuser/HV/bin/SunOS.sparc.5.6 2) This *.dat file can be written also by hand (even though this is not recommended). The format is: ------------------------------------------------------------------------------------ column 1. 2. 3. 4. 5. 6. 7. 8. 9.10.11 12 13 14 15 16 17 18 ------------------------------------------------------------------------------------ HV_DC_W_S_KS00_X1__C 05 01 01 02 01 02 01 +0 3 2 25 75 +100 -4800 1 100 1471N -- HV_DC_W_S_KS00_X1__P 05 01 01 02 03 01 01 +0 3 2 25 75 +100 -2700 0 0 1469N | HV_DC_W_S_KS00_X1__G 05 01 01 02 03 01 09 +0 3 2 25 75 +100 -1700 0 0 1469N | HV_DC_W_S_KS00_X1__B 05 01 01 02 03 01 017 +0 3 2 25 75 +100 -1000 0 0 1469N | normal HV_DC_W_S_KS00_UV1_C 05 01 01 02 01 02 00 +0 3 2 25 75 +100 -4800 1 100 1471N | channels HV_DC_W_S_KS00_UV1_P 05 01 01 02 03 01 00 +0 3 2 25 75 +100 -2700 0 0 1469N | HV_DC_W_S_KS00_UV1_G 05 01 01 02 03 01 08 +0 3 2 25 75 +100 -1700 0 0 1469N | HV_DC_W_S_KS00_UV1_B 05 01 01 02 03 01 016 +0 3 2 25 75 +100 -1000 0 0 1469N -- ... HV_DC_W_S_KS00-03_PBS 05 01 01 02 03 00 000 +0 3 2 25 75 +100 +2700 0 0 1469N -- bulk HV_DC_W_S_KS00-03_GBS 05 01 01 02 03 00 001 +0 3 2 25 75 +100 +1700 0 0 1469N | supplies HV_DC_W_S_KS00-03_BBS 05 01 01 02 03 00 002 +0 3 2 25 75 +100 +1000 0 0 1469N -- ^ | !!! ... ----------------------------------------------- column description ----------------------------------------------- 1. channel name 2. HV group number: 3. 1-channel enabled, 0-channel disabled 4. arcnet id of crate controller; always 1 5. mainframe arcnet id (decimal) 6. mainframe slot number 7. 1-normal 1469-channel 2-normal 1471-channel 0-1469-bulk supply channel 8. channel number in module 9. default voltage setpoint 10. voltage dead zone 11. current dead zone 12. ramp up V/s 13. ramp down V/s 14. trip current uA 15. voltage limit 16. 1=ramp trip enabled 0=ramp trip disabled 17. 0=ramp trip zero 18. module type 2. Group files for the Makefile =============================== One group file for every VME crate controller is required as well as one group file for the graphical user interface. The lines contain the High Voltage granule number and the granule name. For every granule listed in the group files, a subsystem High Voltage setup file >>*.dat<< has to exist. The naming conventions are the the following: HV granule HV setup file ========== ============= 1 MVD mvd.dat 2 BB bb.dat 3 ZDC zdc.dat 4 DC_E dc_e.dat 5 DC_W dc_w.dat 6 PC_E pc_e.dat 7 PC_W pc_w.dat 8 TEC_E tec_e.dat 9 RICH_E rich_e.dat 10 RICH_W rich_w.dat 11 TOF_E tof_e.dat 12 PBGL_E pbgl_e.dat 13 PBSC_E pbsc_e.dat 14 PBSC_W pbsc_w.dat Examples for group files: ~~~~~~~~~~~~~~~~~~~~~~~~~~ iocondev3.grp ============= 5 DC_W 14 PBSC_W iocondev5.grp ============= 4 DC_E 8 TEC_E gui.grp: ======== 4 DC_E 5 DC_W 8 TEC_E 14 PBSC_W 3. How to run the Make file to build EPICS databases and the MEDM GUI: ====================================================================== a) build the EPICS database files for the crate controllers: ------------------------------------------------------------ --> the subsystems' *.dat files are copied into one combined *.dat file. It is interpreted by a perl script >>hv2db<< then that actually creates the ASCII database file *.db for a given crate controller. a1) crate controller iocondev3 (HV Arcnet network West_Arm) ----------------------------------------------------------- phoncs0:db> make -s iocondev3 BUILDING THE EPICS DATABASE FILE FOR IOCONDEV3 ============================================== OK: Group file >>iocondev3.grp<< found OK: Intermediate group file >>phhv.grp<< created REQUESTED SUBSYSTEMS: ============================: 5 DC_W 14 PBSC_W * DC_W listed in group file --> OK: dc_w.dat file found * PBSC_W listed in group file --> OK: pbsc_w.dat file found Intermediate input file >>phhv.dat<< created CREATING THE DATABASE ... Configuration file ready: iocondev3.config EPICS database file ready: iocondev3.db READY !! a2) crate controller iocondev5 (HV Arcnet network East_Arm) ----------------------------------------------------------- phoncs0:db> make -s iocondev5 BUILDING THE EPICS DATABASE FILE FOR IOCONDEV5 ============================================== OK: Group file >>iocondev5.grp<< found OK: Intermediate group file >>phhv.grp<< created REQUESTED SUBSYSTEMS: ============================: 4 DC_E 8 TEC_E * DC_E listed in group file --> OK: dc_e.dat file found * TEC_E listed in group file --> OK: tec_e.dat file found Intermediate input file >>phhv.dat<< created CREATING THE DATABASE ... Configuration file ready: iocondev5.config EPICS database file ready: iocondev5.db READY !! b) Build the MEDM High Voltage Control GUI ------------------------------------------ --> the subsystems' *.dat files are copied into one combined *.dat file. It is interpreted by a C program >>hv_adl<< then that actually creates the MEDM gui. There is a special treatment of the Drift Chamber in >>hv_adl<< to realize the Drift Chamber specific appearance of its related control panels. Created files: - adl-files *.adl (description of control panels in ADL language) - shell scripts to issue actions: switch on/off high voltage channels etc. - request files (channel lists) which are needed by the shell scripts - the Alarm Handler configuration file b0) list of channels which are disabled in the Alarm Handler ------------------------------------------------------------ Prior to building the High Coltage Control GUI you might want to enter certain channels into the following file (by using a text exitor): ../hvca/medm/alh/phhv.alhDisabledChannels Those channels are interpreted as to be masked in the Alarm Handler configuration file so that alarms on those channels are not reported any more. b1) clean the MEDM related sub-system directories ------------------------------------------------- phoncs0:db> make -s clean CLEANING UP ... - >>phhv.dat<< deleted - >>default.sdrSum<< deleted - >>../medm/alh/phhv.alhConfig<< deleted - >>../medm/alh/phhv.adl<< deleted - >>../medm/adl/mvd_handling/* deleted - >>../medm/adl/bb_handling/* deleted - >>../medm/adl/zdc_handling/* deleted - >>../medm/adl/dc_handling/* deleted - >>../medm/adl/pc_handling/* deleted - >>../medm/adl/tec_handling/* deleted - >>../medm/adl/rich_handling/* deleted - >>../medm/adl/tof_handling/* deleted - >>../medm/adl/pbgl_handling/* deleted - >>../medm/adl/pbsc_handling/* deleted READY !! b2) Build the GUI: ------------------ phoncs0:db> make -s gui BUILDING THE MEDM HV-CONTROL GUI ================================ OK: Group file >>gui.grp<< found OK: Intermediate group file >>phhv.grp<< created REQUESTED SUBSYSTEMS: ============================: 4 DC_E 5 DC_W 8 TEC_E 14 PBSC_W * DC_E listed in group file --> OK: dc_e.dat file found * DC_W listed in group file --> OK: dc_w.dat file found * TEC_E listed in group file --> OK: tec_e.dat file found * PBSC_W listed in group file --> OK: pbsc_w.dat file found Intermediate input file >>phhv.dat<< created BUILDING MEDM GUI ... Using datafile phhv.dat crateinfo OK crateinfo OK crateinfo OK crateinfo OK crateinfo OK crateinfo OK crateinfo OK crateinfo OK There is a crate# 34 There is a crate# 50 There is a crate# 51 There is a crate# 52 There is a crate# 53 There is a crate# 65 There is a crate# 81 There is a crate# 85 WORKING ON GROUP #4 Initializing variables to default values. Creating file: phhv_DC_E_1.adl Initializing variables to default values. Creating file: phhv_DC_E_param_1.adl Initializing variables to default values. Creating file: phhv_DC_E_2.adl Initializing variables to default values. Creating file: phhv_DC_E_param_2.adl Initializing variables to default values. Creating file: phhv_DC_E_3.adl Initializing variables to default values. Creating file: phhv_DC_E_param_3.adl Initializing variables to default values. Creating file: phhv_DC_E_4.adl Initializing variables to default values. Creating file: phhv_DC_E_param_4.adl Initializing variables to default values. Creating file: phhv_DC_E_5.adl Initializing variables to default values. Creating file: phhv_DC_E_param_5.adl Initializing variables to default values. Creating file: phhv_DC_E_6.adl Initializing variables to default values. Creating file: phhv_DC_E_param_6.adl Initializing variables to default values. Creating file: phhv_DC_E_7.adl Initializing variables to default values. Creating file: phhv_DC_E_param_7.adl Initializing variables to default values. Creating file: phhv_DC_E_8.adl Initializing variables to default values. Creating file: phhv_DC_E_param_8.adl Initializing variables to default values. Creating file: phhv_DC_E_9.adl Initializing variables to default values. Creating file: phhv_DC_E_param_9.adl Initializing variables to default values. Creating file: phhv_DC_E_10.adl Initializing variables to default values. Creating file: phhv_DC_E_param_10.adl WORKING ON GROUP #5 Initializing variables to default values. Creating file: phhv_DC_W_1.adl Initializing variables to default values. Creating file: phhv_DC_W_param_1.adl Initializing variables to default values. Creating file: phhv_DC_W_2.adl Initializing variables to default values. Creating file: phhv_DC_W_param_2.adl Initializing variables to default values. Creating file: phhv_DC_W_3.adl Initializing variables to default values. Creating file: phhv_DC_W_param_3.adl Initializing variables to default values. Creating file: phhv_DC_W_4.adl Initializing variables to default values. Creating file: phhv_DC_W_param_4.adl Initializing variables to default values. Creating file: phhv_DC_W_5.adl Initializing variables to default values. Creating file: phhv_DC_W_param_5.adl Initializing variables to default values. Creating file: phhv_DC_W_6.adl Initializing variables to default values. Creating file: phhv_DC_W_param_6.adl Initializing variables to default values. Creating file: phhv_DC_W_7.adl Initializing variables to default values. Creating file: phhv_DC_W_param_7.adl Initializing variables to default values. Creating file: phhv_DC_W_8.adl Initializing variables to default values. Creating file: phhv_DC_W_param_8.adl Initializing variables to default values. Creating file: phhv_DC_W_9.adl Initializing variables to default values. Creating file: phhv_DC_W_param_9.adl Initializing variables to default values. Creating file: phhv_DC_W_10.adl Initializing variables to default values. Creating file: phhv_DC_W_param_10.adl WORKING ON GROUP #8 Initializing variables to default values. Creating file: phhv_TEC_E_1.adl Initializing variables to default values. Creating file: phhv_TEC_E_param_1.adl Initializing variables to default values. Creating file: phhv_TEC_E_2.adl Initializing variables to default values. Creating file: phhv_TEC_E_param_2.adl Initializing variables to default values. Creating file: phhv_TEC_E_3.adl Initializing variables to default values. Creating file: phhv_TEC_E_param_3.adl Initializing variables to default values. Creating file: phhv_TEC_E_4.adl Initializing variables to default values. Creating file: phhv_TEC_E_param_4.adl Initializing variables to default values. Creating file: phhv_TEC_E_5.adl Initializing variables to default values. Creating file: phhv_TEC_E_param_5.adl Initializing variables to default values. Creating file: phhv_TEC_E_6.adl Initializing variables to default values. Creating file: phhv_TEC_E_param_6.adl WORKING ON GROUP #14 Initializing variables to default values. Creating file: phhv_PBSC_W_1.adl Initializing variables to default values. Creating file: phhv_PBSC_W_param_1.adl Initializing variables to default values. Creating file: phhv_PBSC_W_2.adl Initializing variables to default values. Creating file: phhv_PBSC_W_param_2.adl Initializing variables to default values. Creating file: phhv_PBSC_W_3.adl Initializing variables to default values. Creating file: phhv_PBSC_W_param_3.adl Initializing variables to default values. Creating file: phhv_PBSC_W_4.adl Initializing variables to default values. Creating file: phhv_PBSC_W_param_4.adl Initializing variables to default values. Creating file: phhv.adl On button channel is B/HVON_set_01_34 On button channel is B/HVON_set_01_50 On button channel is B/HVON_set_01_51 On button channel is B/HVON_set_01_52 On button channel is B/HVON_set_01_53 On button channel is B/HVON_set_01_65 On button channel is B/HVON_set_01_81 On button channel is B/HVON_set_01_85 MOVING FILES TO FINAL FOLDERS: - main panel file >>phhv.adl<< to ../medm/adl - alarm handler file >>phhv.alhConfig<< to ../medm/alh - DC specific files to ../medm/adl/dc_handling - TEC specific files to ../medm/adl/tec_handling - PBSC specific files to ../medm/adl/pbsc_handling READY !! b3) !!! optional !!! Build only the Alarm Handler Configuration file: ----------------------------------------------------------------------- phoncs0:db> make -s alarm Only the alarm handler configuration file is created. The other MEDM GUI files are only created temporarily during the construction of the Alarm Handler Configuration file. In order to use the new configuration file, the Alarm Handler has to be restarted. c) Start MEDM and Alarm Handler: ------------------------------------ c1) medm -x /home/phoncs/heuser/epicsB/app/hvca/medm/adl/phhv.adl & or finally: medm -x /export/software/oncs/epics/R3.13.0.beta11/epicsB/app/hvca/medm/adl/phhv.adl & c2) alh /home/phoncs/heuser/epicsB/app/hvca/medm/alh/phhv.alhConfig & or finally: alh /export/software/oncs/epics/R3.13.0.beta11/epicsB/app/hvca/medm/alh/phhv.alhConfig &