#!../../bin/linux-x86_64/voltage ## You may have to change voltage to something else ## everywhere it appears in this file # scanOnce requests are placed in a ring buffer. # This command can be used to set the size for the ring buffer. # The default is 1000. It should rarely be necessary to override this default. # Normally the ring buffer overflow messages appear when the scanOnce task fails. scanOnceSetQueueSize 20000 dbPvdTableSize 65536 < envPaths # The name of the IOC, also prefix that will be used in front of hardware-based records epicsEnvSet("IOCNAME","ECALVLT") # Prefix that will be used in front of the detector-based records epicsEnvSet("PREFIX","") # Macros for Wiener MPOD driver epicsEnvSet("MIB","WIENER-CRATE-MIB::") epicsEnvSet("WO", "WIENER-CRATE-MIB::output") # Error Log To Console 0 or 1 eltc 1 cd ${TOP} ## Register all support components dbLoadDatabase "dbd/voltage.dbd" voltage_registerRecordDeviceDriver pdbbase #Requests for the general putpose callback tasks are placed in a ring buffer. This command can be used to set the #size for the ring buffers. The default is 2000. A message is issued when a ring buffer overflows. It should rarely be #necessary to override this default. Normally the ring buffer overflow messages appear when a callback task fails. callbackSetQueueSize 320000 # scanOnce requests are placed in a ring buffer. # This command can be used to set the size for the ring buffer. # The default is 1000. It should rarely be necessary to override this default. # Normally the ring buffer overflow messages appear when the scanOnce task fails. scanOnceSetQueueSize 80000 dbPvdTableSize 65536 # This prefix will show up in front of the detector-based names. detUsePrefix ${PREFIX} # Debug level for SNMP devSnmpSetParam(DebugLevel, 0) # Configure detector using SQLite database file configureDetector "ECAL", "sqlite://${TOP}/iocBoot/iocvoltage/ecalVoltages.db" # Automatically generate EPICS DB for detectors. Always use three arguments even if blank. # detDbLoadRecords( CRATE, SLOT, IOCPREFIX ) # First argument is the crate name. # Second argument is the slot number. # Third argument is the prefix that is normally is the IOC name followed by ":" and is used as prefix for hardware records detDbLoadRecords( "", "-1", "$(IOCNAME):" ) # Load EPICS DB for group operations on HV parameters dbLoadRecords( "db/setGroupVoltageParametersSNC.db", "C=ECAL:hv:pwonoff:" ) dbLoadRecords( "db/setGroupVoltageParametersSNC.db", "C=ECAL:hv:v0set:" ) dbLoadRecords( "db/setGroupVoltageParametersSNC.db", "C=ECAL:hv:i0set:" ) dbLoadRecords( "db/setGroupVoltageParametersSNC.db", "C=ECAL:hv:trip:" ) dbLoadRecords( "db/setGroupVoltageParametersSNC.db", "C=ECAL:hv:svmax:" ) dbLoadRecords( "db/setGroupVoltageParametersSNC.db", "C=ECAL:hv:rampup:" ) dbLoadRecords( "db/setGroupVoltageParametersSNC.db", "C=ECAL:hv:rampdn:" ) dbLoadRecords( "db/setGroupVoltageParametersSNC.db", "C=ECAL:hv:ilock:thresh:" ) # Load PVs for group status of high voltages dbLoadRecords( "db/getGroupVoltageStatusSNC.db", "C=ECAL:hv:all:" ) # Load EPICS DB for group operations on LV parameters dbLoadRecords( "db/setGroupVoltageParametersSNC.db", "C=ECAL:lv:switch:" ) dbLoadRecords( "db/setGroupVoltageParametersSNC.db", "C=ECAL:lv:v_set:" ) dbLoadRecords( "db/setGroupVoltageParametersSNC.db", "C=ECAL:lv:v_max_sens_sup:" ) dbLoadRecords( "db/setGroupVoltageParametersSNC.db", "C=ECAL:lv:v_max_term_sup:" ) dbLoadRecords( "db/setGroupVoltageParametersSNC.db", "C=ECAL:lv:i_set:" ) dbLoadRecords( "db/setGroupVoltageParametersSNC.db", "C=ECAL:lv:i_max_sup:" ) dbLoadRecords( "db/setGroupVoltageParametersSNC.db", "C=ECAL:lv:ilock:thresh:" ) dbLoadRecords( "db/setGroupVoltageParametersSNC.db", "C=ECAL:lv:vrise:" ) dbLoadRecords( "db/setGroupVoltageParametersSNC.db", "C=ECAL:lv:vfall:" ) # Load PVs for group status of low voltages dbLoadRecords( "db/getGroupVoltageStatusSNC.db", "C=ECAL:lv:all:,S=parsed:status" ) dbLoadRecords( "db/getGroupVoltageStatusSNC.db", "C=ECAL:lv:pcb1:,S=parsed:status" ) dbLoadRecords( "db/getGroupVoltageStatusSNC.db", "C=ECAL:lv:pcb2:,S=parsed:status" ) dbLoadRecords( "db/getGroupVoltageStatusSNC.db", "C=ECAL:lv:pcb3:,S=parsed:status" ) dbLoadRecords( "db/getGroupVoltageStatusSNC.db", "C=ECAL:lv:pcb4:,S=parsed:status" ) # Load PVs for high voltage waveforms dbLoadRecords( "db/voltageWaveformSNC.db", "C=ECAL:hv:vmon:,NELM=1600" ) dbLoadRecords( "db/voltageWaveformSNC.db", "C=ECAL:hv:imon:,NELM=1600" ) # Load PVs for low voltage waveforms dbLoadRecords( "db/voltageWaveformSNC.db", "C=ECAL:lv:v_sens:,NELM=16" ) dbLoadRecords( "db/voltageWaveformSNC.db", "C=ECAL:lv:i_rd:,NELM=16" ) # Load IOC status records dbLoadRecords("db/iocAdminSoft.db","IOC=$(PREFIX)ECALVLT") cd ${TOP}/iocBoot/${IOC} asSetFilename("${TOP}/iocBoot/common/ca_security.acf") iocInit # Start sequencers for group operations on HV paramaters seq sncSetGroupVoltageParameters, "P=none,D=ECAL,V=hv,S=pwonoff" seq sncSetGroupVoltageParameters, "P=none,D=ECAL,V=hv,S=v0set" seq sncSetGroupVoltageParameters, "P=none,D=ECAL,V=hv,S=i0set" seq sncSetGroupVoltageParameters, "P=none,D=ECAL,V=hv,S=trip" seq sncSetGroupVoltageParameters, "P=none,D=ECAL,V=hv,S=svmax" seq sncSetGroupVoltageParameters, "P=none,D=ECAL,V=hv,S=rampup" seq sncSetGroupVoltageParameters, "P=none,D=ECAL,V=hv,S=rampdn" seq sncSetGroupVoltageParameters, "P=none,D=ECAL,V=hv,S=ilock:thresh" # Start sequencer for high voltage group status seq sncGetGroupVoltageStatus, "P=none,D=ECAL,V=hv,G=:all:,S=status,R=^ECAL:hv:.*:status$" # Start sequencers for group operations on LV paramaters seq sncSetGroupVoltageParameters, "P=none,D=ECAL,V=lv,S=switch" seq sncSetGroupVoltageParameters, "P=none,D=ECAL,V=lv,S=v_set" seq sncSetGroupVoltageParameters, "P=none,D=ECAL,V=lv,S=v_max_sens_sup" seq sncSetGroupVoltageParameters, "P=none,D=ECAL,V=lv,S=v_max_term_sup" seq sncSetGroupVoltageParameters, "P=none,D=ECAL,V=lv,S=i_set" seq sncSetGroupVoltageParameters, "P=none,D=ECAL,V=lv,S=i_max_sup" seq sncSetGroupVoltageParameters, "P=none,D=ECAL,V=lv,S=ilock:thresh" seq sncSetGroupVoltageParameters, "P=none,D=ECAL,V=lv,S=vrise" seq sncSetGroupVoltageParameters, "P=none,D=ECAL,V=lv,S=vfall" # Start sequencer for low voltage group status seq sncGetGroupVoltageStatus, "P=none,D=ECAL,V=lv,G=:all:,S=parsed:status,R=^ECAL:lv:.*:parsed:status" seq sncGetGroupVoltageStatus, "P=none,D=ECAL,V=lv,G=:all:,S=parsed:status,R=^ECAL:lv:pcb1:.*:parsed:status" seq sncGetGroupVoltageStatus, "P=none,D=ECAL,V=lv,G=:all:,S=parsed:status,R=^ECAL:lv:pcb2:.*:parsed:status" seq sncGetGroupVoltageStatus, "P=none,D=ECAL,V=lv,G=:all:,S=parsed:status,R=^ECAL:lv:pcb3:.*:parsed:status" seq sncGetGroupVoltageStatus, "P=none,D=ECAL,V=lv,G=:all:,S=parsed:status,R=^ECAL:lv:pcb4:.*:parsed:status" # Start sequencer for High Voltage waveforms seq sncFillVoltageWaveformECAL, "V=hv,P=none,S=vmon" seq sncFillVoltageWaveformECAL, "V=hv,P=none,S=imon" # Start sequencer for Low Voltage waveforms seq sncFillVoltageWaveform, "D=ECAL,V=lv,P=none,S=v_sens,NELM=16" seq sncFillVoltageWaveform, "D=ECAL,V=lv,P=none,S=i_rd,NELM=16"