EPICS: generation of DBs and GUIs for HV

From CLONWiki
Jump to navigation Jump to search

NOTE: normally all environment variables are set, with one exception: cc_mf (counting house classc0) is using old EPICS; if you want to work with cc_mf execute $CLAS/epicsBold/.setup script; it will redefine environment; proceed as described below.

Example for test setup CAEN

Following procedure generates *.db and *.adl/*.alh files for High Voltage applications.

 cd $APP/hvca/db/

Create *.dat file with following format:

 clonpc1:db> more caen.dat
 CAEN_1_00           02 1  1 01 01 03 00 -1200.0   1.5   1.3   121.5   486.0  2550.0 -2500.0
 CAEN_1_01           02 1  1 01 01 03 01 -1200.0   1.5   1.3   121.5   486.0  2550.0 -2500.0
 CAEN_1_02           02 1  1 01 01 03 02 -1200.0   1.5   1.3   121.5   486.0  2550.0 -2500.0
 CAEN_1_03           02 1  1 01 01 03 03 -1200.0   1.5   1.3   121.5   486.0  2550.0 -2500.0
 .....................................

Columns have following meaning (NEED CHECK !):

  1 - group name (channel name, will be used as part of EPICS channel access variable names)
  2 - group number
  3 - allow (looks like not in use ?)
  4 - ioc number (that number goes to channel name, for example 'CAEN_<ioc number>_02'); that number
       must be unique for all CLAS IOCs (for example classc12 has ioc number 12 and that number should
       not be used for any other IOC)
  5 - mainframe address (for Lecroy by jumpers, for CAEN by IP, goes to channel name, for example
       'CAEN_99_<mainframe address>); output DB files will be splitted based on this number, for
       example all lines in file 'caen.dat' with this number equal to 4 will be placed to the file
       'caen_04.db'; this number have to be used as first parameter in 'sy1527Start()' and 'sy527Start()'
       calls, although in second case the same number must be in the end of second parameter as well
  6 - slot/card number
  7 - submodule: this is important code to specify what king of system we have; it must be equal to
       one of the predefined numbers, which is 2 for Lecroy HV and 3 for CAEN HV
  8 - channel number
  9 - voltage (demand, V)
 10 - mvdz (measured voltage dead-zone, V)
 11 - mcdz (measuerd current dead-zone, uA?)
 12 - rump up speed, V/s
 13 - rump down speed, V/s
 14 - tc (trip current, uA?)
 15 - maximum voltage (max, V)

Second input file is *.grp, for example caen.grp:

 clonpc1:db> more caen.grp
 1  CAEN_7
 2  CAEN_3
 3  CAEN_7
 4  CAEN_8
 5  CAEN_10

First column is group number and second one is group name. It will be first two columns on medm screen.

Makefile must be manually adjusted for every new *.dat file. It is possible to combine several *.dat file in one - see inside Makefile.

To generate all necessary file type 'make <filename without extension>', for example if file name is 'caen.dat', type:

 make caen

Following output fill shows up:

 clonpc1:db> make caen
 ./dat2db.pl caen
 echo caen | /usr/local/clas/devel/R3.14.8.2/EPICS/app/hvca/bin/hv_adl
 Input name of hv data file (omit the extension '.dat') :  
 WORKING ON GROUP #1
    Initializing variables to default values.
    Creating file: caen_CAEN_7_1.adl
    Initializing variables to default values.
    Creating file: caen_CAEN_7_param_1.adl
    Initializing variables to default values.
    Creating file: caen.adl
 ./dat2req.pl caen
 chmod +x caen*.csh
 test -d ../medm/adl || mkdir ../medm/adl
 test -d ../req || mkdir ../req
 mv caen*.adl ../medm/adl
 mv caen*.snap ../req
 mv caen*.csh ../medm/adl
 mv caen*.alarms ../medm/adl
 test -d ../medm/alh || mkdir ../medm/alh
 mv caen*.alhConfig* ../medm/alh

Following files will be produced:

 caen_01.db
 ../medm/adl/caen.adl
 .................adl
 ../medm/alh/caen_CAEN_7.alhConfig
 ../medm/alh/caen_mf_01_01.alhConfig_mf

For NEW EPICS ONLY copy generated *.db files into final destination where it will be picked up by IOC startup script, for example:

 cp caen_01.db $BASEB/src/CAEN_HV/IocShell/
 cp caen102_02.db $BASEB/src/CAEN_HV/IocShell/

Create appropriate links to our medm files from standard place:

 cd $APP/medm
 make

Create appropriate links to our alh files from standard place:

 cd $APP/alh
 make

Setting everything for LAC HV mainframes

LAC's two sectors equiped with four sy527 mainframes. First goto '$APP/hvca/db' and create two *.dat files: traditionally we keep different sectors in separate files. Fragments of those files:

lac1.dat:

LAC_S1_IN_LL_01    01 1 09 01 00 03 00 -1000.0   1.5   1.3   121.5   486.0  2550.0  2500.0
LAC_S1_IN_LL_02    01 1 09 01 00 03 01 -1000.0   1.5   1.3   121.5   486.0  2550.0  2500.0
LAC_S1_IN_LL_03    01 1 09 01 00 03 02 -1000.0   1.5   1.3   121.5   486.0  2550.0  2500.0
LAC_S1_IN_LL_04    01 1 09 01 00 03 03 -1000.0   1.5   1.3   121.5   486.0  2550.0  2500.0
LAC_S1_IN_LL_05    01 1 09 01 00 03 04 -1000.0   1.5   1.3   121.5   486.0  2550.0  2500.0
LAC_S1_IN_LL_06    01 1 09 01 00 03 05 -1000.0   1.5   1.3   121.5   486.0  2550.0  2500.0
LAC_S1_IN_LL_07    01 1 09 01 00 03 06 -1000.0   1.5   1.3   121.5   486.0  2550.0  2500.0
LAC_S1_IN_LL_08    01 1 09 01 00 03 07 -1000.0   1.5   1.3   121.5   486.0  2550.0  2500.0
LAC_S1_IN_LL_09    01 1 09 01 00 03 08 -1000.0   1.5   1.3   121.5   486.0  2550.0  2500.0
LAC_S1_IN_LL_10    01 1 09 01 00 03 09 -1000.0   1.5   1.3   121.5   486.0  2550.0  2500.0
LAC_S1_IN_LL_11    01 1 09 01 00 03 10 -1000.0   1.5   1.3   121.5   486.0  2550.0  2500.0
LAC_S1_IN_LL_12    01 1 09 01 00 03 11 -1000.0   1.5   1.3   121.5   486.0  2550.0  2500.0
LAC_S1_IN_LL_13    01 1 09 01 00 03 12 -1000.0   1.5   1.3   121.5   486.0  2550.0  2500.0
LAC_S1_IN_LL_14    01 1 09 01 00 03 13 -1000.0   1.5   1.3   121.5   486.0  2550.0  2500.0
LAC_S1_IN_LL_15    01 1 09 01 00 03 14 -1000.0   1.5   1.3   121.5   486.0  2550.0  2500.0
LAC_S1_IN_LL_16    01 1 09 01 00 03 15 -1000.0   1.5   1.3   121.5   486.0  2550.0  2500.0
LAC_S1_IN_LL_17    01 1 09 01 01 03 00 -1000.0   1.5   1.3   121.5   486.0  2550.0  2500.0
LAC_S1_IN_LL_18    01 1 09 01 01 03 01 -1000.0   1.5   1.3   121.5   486.0  2550.0  2500.0
LAC_S1_IN_LL_19    01 1 09 01 01 03 02 -1000.0   1.5   1.3   121.5   486.0  2550.0  2500.0
LAC_S1_IN_LL_20    01 1 09 01 01 03 03 -1000.0   1.5   1.3   121.5   486.0  2550.0  2500.0
LAC_S1_IN_LL_21    01 1 09 01 01 03 04 -1000.0   1.5   1.3   121.5   486.0  2550.0  2500.0
LAC_S1_IN_LL_22    01 1 09 01 01 03 05 -1000.0   1.5   1.3   121.5   486.0  2550.0  2500.0
LAC_S1_IN_LL_23    01 1 09 01 01 03 06 -1000.0   1.5   1.3   121.5   486.0  2550.0  2500.0
LAC_S1_IN_LL_24    01 1 09 01 01 03 07 -1000.0   1.5   1.3   121.5   486.0  2550.0  2500.0
LAC_S1_IN_LS_01    01 1 09 01 01 03 08 -1000.0   1.5   1.3   121.5   486.0  2550.0  2500.0
LAC_S1_IN_LS_02    01 1 09 01 01 03 09 -1000.0   1.5   1.3   121.5   486.0  2550.0  2500.0
LAC_S1_IN_LS_03    01 1 09 01 01 03 10 -1000.0   1.5   1.3   121.5   486.0  2550.0  2500.0
LAC_S1_IN_LS_04    01 1 09 01 01 03 11 -1000.0   1.5   1.3   121.5   486.0  2550.0  2500.0
LAC_S1_IN_LS_05    01 1 09 01 01 03 12 -1000.0   1.5   1.3   121.5   486.0  2550.0  2500.0
LAC_S1_IN_LS_06    01 1 09 01 01 03 13 -1000.0   1.5   1.3   121.5   486.0  2550.0  2500.0
..........................................................................................

lac2.dat:

LAC_S2_IN_LL_01    03 1 09 03 00 03 00 -1000.0   1.5   1.3   121.5   486.0  2550.0  2500.0
LAC_S2_IN_LL_02    03 1 09 03 00 03 01 -1000.0   1.5   1.3   121.5   486.0  2550.0  2500.0
LAC_S2_IN_LL_03    03 1 09 03 00 03 02 -1000.0   1.5   1.3   121.5   486.0  2550.0  2500.0
LAC_S2_IN_LL_04    03 1 09 03 00 03 03 -1000.0   1.5   1.3   121.5   486.0  2550.0  2500.0
LAC_S2_IN_LL_05    03 1 09 03 00 03 04 -1000.0   1.5   1.3   121.5   486.0  2550.0  2500.0
LAC_S2_IN_LL_06    03 1 09 03 00 03 05 -1000.0   1.5   1.3   121.5   486.0  2550.0  2500.0
LAC_S2_IN_LL_07    03 1 09 03 00 03 06 -1000.0   1.5   1.3   121.5   486.0  2550.0  2500.0
LAC_S2_IN_LL_08    03 1 09 03 00 03 07 -1000.0   1.5   1.3   121.5   486.0  2550.0  2500.0
LAC_S2_IN_LL_09    03 1 09 03 00 03 08 -1000.0   1.5   1.3   121.5   486.0  2550.0  2500.0
LAC_S2_IN_LL_10    03 1 09 03 00 03 09 -1000.0   1.5   1.3   121.5   486.0  2550.0  2500.0
LAC_S2_IN_LL_11    03 1 09 03 00 03 10 -1000.0   1.5   1.3   121.5   486.0  2550.0  2500.0
LAC_S2_IN_LL_12    03 1 09 03 00 03 11 -1000.0   1.5   1.3   121.5   486.0  2550.0  2500.0
LAC_S2_IN_LL_13    03 1 09 03 00 03 12 -1000.0   1.5   1.3   121.5   486.0  2550.0  2500.0
LAC_S2_IN_LL_14    03 1 09 03 00 03 13 -1000.0   1.5   1.3   121.5   486.0  2550.0  2500.0
LAC_S2_IN_LL_15    03 1 09 03 00 03 14 -1000.0   1.5   1.3   121.5   486.0  2550.0  2500.0
LAC_S2_IN_LL_16    03 1 09 03 00 03 15 -1000.0   1.5   1.3   121.5   486.0  2550.0  2500.0
LAC_S2_IN_LL_17    03 1 09 03 01 03 00 -1000.0   1.5   1.3   121.5   486.0  2550.0  2500.0
LAC_S2_IN_LL_18    03 1 09 03 01 03 01 -1000.0   1.5   1.3   121.5   486.0  2550.0  2500.0
LAC_S2_IN_LL_19    03 1 09 03 01 03 02 -1000.0   1.5   1.3   121.5   486.0  2550.0  2500.0
LAC_S2_IN_LL_20    03 1 09 03 01 03 03 -1000.0   1.5   1.3   121.5   486.0  2550.0  2500.0
LAC_S2_IN_LL_21    03 1 09 03 01 03 04 -1000.0   1.5   1.3   121.5   486.0  2550.0  2500.0
LAC_S2_IN_LL_22    03 1 09 03 01 03 05 -1000.0   1.5   1.3   121.5   486.0  2550.0  2500.0
LAC_S2_IN_LL_23    03 1 09 03 01 03 06 -1000.0   1.5   1.3   121.5   486.0  2550.0  2500.0
LAC_S2_IN_LL_24    03 1 09 03 01 03 07 -1000.0   1.5   1.3   121.5   486.0  2550.0  2500.0
LAC_S2_IN_LS_01    03 1 09 03 01 03 08 -1000.0   1.5   1.3   121.5   486.0  2550.0  2500.0
LAC_S2_IN_LS_02    03 1 09 03 01 03 09 -1000.0   1.5   1.3   121.5   486.0  2550.0  2500.0
LAC_S2_IN_LS_03    03 1 09 03 01 03 10 -1000.0   1.5   1.3   121.5   486.0  2550.0  2500.0
LAC_S2_IN_LS_04    03 1 09 03 01 03 11 -1000.0   1.5   1.3   121.5   486.0  2550.0  2500.0
LAC_S2_IN_LS_05    03 1 09 03 01 03 12 -1000.0   1.5   1.3   121.5   486.0  2550.0  2500.0
LAC_S2_IN_LS_06    03 1 09 03 01 03 13 -1000.0   1.5   1.3   121.5   486.0  2550.0  2500.0
..........................................................................................