Hello Tim, It is much better I do as you said. I changed the SW1, X1,theta1,.... to m1,m2,m3,.... in motor.substitutions.ARIES.test.xxx. St.cmd no change. Much was good, but the hrSeqCt_ALL has some pv invalid, the invalid pv name was: xxx:HR1_ETweakAl , xxx:HR1_ETweakAl.EGU, xxx:HR1_LambdaTweakAl , xxx:HR1_LambdaTweakAl.EGU, xxx:HR1_phi1OffA0 , xxx:HR1_phi1OffA0.EGU, xxx:HR1_phi2OffA0 , xxx:HR1_phi2SetA0 (I wo
nder that xxx:HR1_phi1SetA0 was valid only one time and I don't think I changed something, xxx:HR1_phi2SetA0 was invalid always.), xxx:HR1_worldOffA0.EGU.
P.S. The attachment named "hrSeqCt_ALL(some pv invalid).png" was my screen snapshot of CSS GUI, maybe it is clear. I tried something to solve the question, but I do not understand the setting and I had a little time left, please give me some instruction. Thank you so much.
the file, st.cmd, output and *.substitutions was below.
Regards, Liang
my macro P xxx:
M1 m1
M2 m2
M3 m3
M4 m4
M5 m5
M6 m6
M7 m7
N 1
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////// st.cmd ///////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
# Linux startup script < envPaths # For devIocStats #epicsEnvSet("ENGINEER","engineer") #epicsEnvSet("LOCATION","location") epicsEnvSet("GROUP","group") epicsEnvSet("STREAM_PROTOCOL_PATH","$(TOP)")
# save_restore.cmd needs the full path to the startup directory, which # envPaths currently does not provide epicsEnvSet(STARTUP,$(TOP)/iocBoot/$(IOC))
# Increase size of buffer for error logging from default 1256 errlogInit(20000)
# Specify largest array CA will transport # Note for N doubles, need N*8 bytes+some overhead epicsEnvSet EPICS_CA_MAX_ARRAY_BYTES 64010
################################################################################ # Tell EPICS all about the record types, device-support modules, drivers, # etc. in the software we just loaded (xxx.munch) dbLoadDatabase("../../dbd/iocxxxLinux.dbd") iocxxxLinux_registerRecordDeviceDriver(pdbbase)
### save_restore setup #< save_restore
.cmd
# Access Security #dbLoadRecords("$(TOP)/xxxApp/Db/Security_Control.db","P=xxx:") #asSetFilename("$(TOP)/iocBoot/accessSecurity.acf") #asSetSubstitutions("P=xxx:")
### caputRecorder
# trap listener #dbLoadRecords("$(CAPUTRECORDER)/caputRecorderApp/Db/caputPoster.db","P=xxx:,N=300") #doAfterIocInit("registerCaputRecorderTrapListener('xxx:caputRecorderCommand')")
# GUI database #dbLoadRecords("$(CAPUTRECORDER)/caputRecorderApp/Db/caputRecorder.db","P=xxx:,N=300")
# second copy of GUI database #dbLoadRecords("$(CAPUTRECORDER)/caputRecorderApp/Db/caputRecorder.db","P=xxxA:,N=300")
# if you have hdf5 and szip, you can use this #< areaDetector.cmd
# soft scaler for testing #< softScaler.cmd
# user-assignable ramp/tweak #dbLoadRecords("$(STD)/stdApp/Db/ramp_tweak.db","P=xxx:,Q=rt1")
# serial support #< serial.cmd
# Motors dbLoadTemplate("motor.substitutions.ARIES.
test.xxx") drvAsynIPPortConfigure("L0","192.168.1.120:12321",0,0,0)
#< motorSim.cmd dbLoadRecords("$(MOTOR)/db/motorUtil.db", "P=xxx:") ARIESSetup(4, 5) ARIESConfig(0, "L0", 0) var drvARIESdebug 4
#asynSetTraceIOMask("L0",-1,0x9)
### Scan-support software # crate-resident scan. This executes 1D, 2D, 3D, and 4D scans, and caches # 1D data, but it doesn't store anything to disk. (See 'saveData' below for that.) dbLoadRecords("$(SSCAN)/sscanApp/Db/standardScans.db","P=xxx:,MAXPTS1=1000,MAXPTS2=1000,MAXPTS3=1000,MAXPTS4=1000,MAXPTSH=1000") dbLoadRecords("$(SSCAN)/sscanApp/Db/saveData.db","P=xxx:") # Run this after iocInit: #doAfterIocInit("saveData_Init(saveData.req, 'P=xxx:')") dbLoadRecords("$(SSCAN)/sscanApp/Db/scanProgress.db","P=xxx:scanProgress:") # Run this after iocInit: #doAfterIocInit("seq &scanProgress, 'S=xxx:, P=xxx:scanProgress:'")
# configMenu example. dbLoadRecords("$(AUTO
SAVE)/asApp/Db/configMenu.db","P=xxx:,CONFIG=scan1") # Note that the request file MUST be named $(CONFIG)Menu.req # If the macro CONFIGMENU is defined with any value, backup (".savB") and # sequence files (".savN") will not be written. We don't want these for configMenu. # Run this after iocInit: #doAfterIocInit("create_manual_set('scan1Menu.req','P=xxx:,CONFIG=scan1,CONFIGMENU=1')") # You could make scan configurations read-only: #dbLoadRecords("$(AUTOSAVE)/asApp/Db/configMenu.db","P=xxx:,CONFIG=scan1,ENABLE_SAVE=0")
# read-only configMenu example. (Read-only, because we're not calling create_manual_set().) #dbLoadRecords("$(AUTOSAVE)/asApp/Db/configMenu.db","P=xxx:,CONFIG=scan2")
# A set of scan parameters for each positioner. This is a convenience # for the user. It can contain an entry for each scannable thing in the # crate. dbLoadTemplate("scanParms.substitutions")
### Optical tables dbLoa
dRecords("$(OPTICS)/opticsApp/Db/table.db","P=xxx:,Q=Table1,T=table1,M0X=m1,M0Y=m2,M1Y=m3,M2X=m4,M2Y=m5,M2Z=m6,GEOM=SRI") dbLoadRecords("$(OPTICS)/opticsApp/Db/table.db","P=xxx:,Q=Table1,T=table1,M0X=m1,M0Y=m2,M1Y=m3,M2X=m4,M2Y=m5,M2Z=m6,GEOM=NEWPORT") dbLoadRecords("$(OPTICS)/opticsApp/Db/table.db","P=xxx:,Q=Table2,T=table2,M0X=m1,M0Y=m2,M1Y=m3,M2X=m4,M2Y=m5,M2Z=m6,GEOM=SRI")
# Io calculation dbLoadRecords("$(OPTICS)/opticsApp/Db/Io.db","P=xxx:Io:")
### Monochromator support ### # Kohzu and PSL monochromators: Bragg and theta/Y/Z motors # standard geometry (geometry 1) dbLoadRecords("$(OPTICS)/opticsApp/Db/kohzuSeq.db","P=xxx:,M_THETA=m1,M_Y=m2,M_Z=m3,yOffLo=17.4999,yOffHi=17.5001") # Run this after iocInit: #doAfterIocInit("seq &kohzuCtl, 'P=xxx:, M_THETA=m1, M_Y=m2, M_Z=m3, GEOM=1, logfile=kohzuCtl.log'") # modified geometry (geometry 2) #dbLoadRecords("$(OPTICS)/opticsApp/Db/kohzuSeq.db","P=xxx:,M_THETA=m1,M_Y=m2,M_Z=m2,yOf
fLo=4,yOffHi=36") # Run this after iocInit: #doAfterIocInit("seq &kohzuCtl, 'P=xxx:, M_THETA=m1, M_Y=m2, M_Z=m3, GEOM=2, logfile=kohzuCtl.log'")
# Spherical grating monochromator #dbLoadRecords("$(OPTICS)/opticsApp/Db/SGM.db","P=xxx:,N=1,M_x=m7,M_rIn=m6,M_rOut=m8,M_g=m9")
# 4-bounce high-resolution monochromator dbLoadRecords("$(OPTICS)/opticsApp/Db/hrSeq.db","P=xxx:,N=1,M_PHI1=m4,M_PHI2=m5") # Run this after iocInit: #doAfterIocInit("seq &hrCtl, 'P=xxx:, N=1, M_PHI1=m4, M_PHI2=m5, logfile=hrCtl.log'") ### Orientation matrix, four-circle diffractometer (see seq program 'orient' below) #dbLoadRecords("$(OPTICS)/opticsApp/Db/orient.db", "P=xxx:,O=1,PREC=4") #dbLoadTemplate("orient_xtals.substitutions") # Run this after iocInit: #doAfterIocInit("seq &orient, 'P=xxx:orient1:,PM=xxx:,mTTH=m9,mTH=m10,mCHI=m11,mPHI=m12'")
### Stuff for user programming ### #< calc.cmd
# 4-step measurement #dbLoadRecor
ds("$(STD)/stdApp/Db/4step.db", "P=xxx:,Q=4step:")
# Slow feedback #dbLoadTemplate "pid_slow.substitutions" #dbLoadTemplate "async_pid_slow.substitutions" #dbLoadTemplate "fb_epid.substitutions"
# Miscellaneous PV's, such as burtResult #dbLoadRecords("$(STD)/stdApp/Db/misc.db","P=xxx:")
### Load database records for Femto amplifiers #dbLoadRecords("$(STD)/stdApp/Db/femto.db","P=xxx:,H=fem01:,F=seq01:") # Run this after iocInit: #doAfterIocInit("seq femto,'name=fem1,P=xxx:,H=fem01:,F=seq01:,G1=xxx:Unidig1Bo6,G2=xxx:Unidig1Bo7,G3=xxx:Unidig1Bo8,NO=xxx:Unidig1Bo10'")
### Load database records for dual PF4 filters #dbLoadRecords("$(OPTICS)/opticsApp/Db/pf4common.db","P=xxx:,H=pf4:,A=A,B=B") #dbLoadRecords("$(OPTICS)/opticsApp/Db/pf4bank.db","P=xxx:,H=pf4:,B=A") #dbLoadRecords("$(OPTICS)/opticsApp/Db/pf4bank.db","P=xxx:,H=pf4:,B=B") # Run this after iocInit: #doAfterIocInit("seq pf4,'name=pf1,P=xxx:,H=pf4:,B=A,M=xxx:
userTran10.I,B1=xxx:userTran10.A,B2=xxx:userTran10.B,B3=xxx:userTran10.C,B4=xxx:userTran10.D'") #doAfterIocInit("seq pf4,'name=pf2,P=xxx:,H=pf4:,B=B,M=xxx:userTran10.I,B1=xxx:userTran10.E,B2=xxx:userTran10.F,B3=xxx:userTran10.G,B4=xxx:userTran10.H'") ############################################################################### iocInit ###############################################################################
asynSetTraceIOMask("L0",-1,0x9)
motorUtilInit('xxx:') saveData_Init(saveData.req, 'P=xxx:') seq &scanProgress, 'S=xxx:, P=xxx:scanProgress:' seq &hrCtl, 'P=xxx:, N=1, M_PHI1=m4, M_PHI2=m5, logfile=hrCtl.log' create_manual_set('scan1Menu.req','P=xxx:,CONFIG=scan1,CONFIGMENU=1')
# write all the PV names to a local file dbl > dbl-all.txt
# Report states of database CA links #dbcar(*,1)
# print the time our boot was finished date
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////// Output of st.cmd ////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
[root@localhost iocLinux]# ../../bin/linux-x86_64/xxx st.cmd Successfully locked memory using mlockAll # Linux startup script < envPaths epicsEnvSet("ARCH","linux-x86_64") epicsEnvSet("IOC","iocLinux") epicsEnvSet("TOP","/opt/synApps_5_8/support/xxx-5-8-3") epicsEnvSet("SUPPORT","/opt/synApps_5_8/support") epicsEnvSet("EPICS_BASE","/opt/base") epicsEnvSet("ALIVE","/opt/synApps_5_8/support/alive-1-0") epicsEnvSet("ALLEN_BRADLEY","/opt/synApps_5_8/support/allenBradley-2-3") epicsEnvSet("AREA_DETECTOR","/opt/synApps_5_8/support/areaDetector-R2-0") epicsEnvSet("ADCORE","/opt/synApps_5_8/support/areaDetector-R2-0/ADCore-R2-2") epicsEnvSet("ADBINARIES","/opt/synApps_5_8/support/areaDetector-R2-0/ADBinaries-R2-2") epicsEnvSet("ASYN","/opt/synApps_5_8/support/asyn-4-26") epicsEnvSet("AUTOSAVE","/opt/synApps_5_8/support/autosave-5-6-1") epicsEnvSet("BUSY","/opt/synApps_5_8/support/busy-1-6-1") epicsEnvSet("CALC","/opt/synApps_5_8/s
upport/calc-3-4-2-1") epicsEnvSet("CAMAC","/opt/synApps_5_8/support/camac-2-7") epicsEnvSet("CAPUTRECORDER","/opt/synApps_5_8/support/caputRecorder-1-6") epicsEnvSet("DAC128V","/opt/synApps_5_8/support/dac128V-2-8") epicsEnvSet("DELAYGEN","/opt/synApps_5_8/support/delaygen-1-1-1") epicsEnvSet("DEVIOCSTATS","/opt/synApps_5_8/support/devIocStats-3-1-13") epicsEnvSet("DXP","/opt/synApps_5_8/support/dxp-3-4") epicsEnvSet("IP","/opt/synApps_5_8/support/ip-2-17") epicsEnvSet("IP330","/opt/synApps_5_8/support/ip330-2-8") epicsEnvSet("IPAC","/opt/synApps_5_8/support/ipac-2-13") epicsEnvSet("IPUNIDIG","/opt/synApps_5_8/support/ipUnidig-2-10") epicsEnvSet("LOVE","/opt/synApps_5_8/support/love-3-2-5") epicsEnvSet("MCA","/opt/synApps_5_8/support/mca-7-6") epicsEnvSet("MEASCOMP","/opt/synApps_5_8/support/measComp-1-1") epicsEnvSet("MODBUS","/opt/synApps_5_8/support/modbus-2-7") epicsEnvSet("MOTOR","/opt/synApps_5_8/support/motor-6-9") epics
EnvSet("OPTICS","/opt/synApps_5_8/support/optics-2-9-3") epicsEnvSet("QUADEM","/opt/synApps_5_8/support/quadEM-5-0") epicsEnvSet("SNCSEQ","/opt/synApps_5_8/support/seq-2-2-3") epicsEnvSet("SOFTGLUE","/opt/synApps_5_8/support/softGlue-2-4-3") epicsEnvSet("SSCAN","/opt/synApps_5_8/support/sscan-2-10-1") epicsEnvSet("STD","/opt/synApps_5_8/support/std-3-4") epicsEnvSet("STREAM","/opt/synApps_5_8/support/stream-2-6a") epicsEnvSet("VAC","/opt/synApps_5_8/support/vac-1-5-1") epicsEnvSet("VME","/opt/synApps_5_8/support/vme-2-8-2") epicsEnvSet("XXX","/opt/synApps_5_8/support/xxx-5-8-3") # For devIocStats #epicsEnvSet("ENGINEER","engineer") #epicsEnvSet("LOCATION","location") epicsEnvSet("GROUP","group") epicsEnvSet("STREAM_PROTOCOL_PATH","/opt/synApps_5_8/support/xxx-5-8-3") # save_restore.cmd needs the full path to the startup directory, which # envPaths currently does not provide epicsEnvSet(STARTUP,/opt/synApps_5_8/support/xxx-5-
8-3/iocBoot/iocLinux) # Increase size of buffer for error logging from default 1256 errlogInit(20000) # Specify largest array CA will transport # Note for N doubles, need N*8 bytes+some overhead epicsEnvSet EPICS_CA_MAX_ARRAY_BYTES 64010 ################################################################################ # Tell EPICS all about the record types, device-support modules, drivers, # etc. in the software we just loaded (xxx.munch) dbLoadDatabase("../../dbd/iocxxxLinux.dbd") iocxxxLinux_registerRecordDeviceDriver(pdbbase) ### save_restore setup #< save_restore.cmd # Access Security #dbLoadRecords("$(TOP)/xxxApp/Db/Security_Control.db","P=xxx:") #asSetFilename("$(TOP)/iocBoot/accessSecurity.acf") #asSetSubstitutions("P=xxx:") ### caputRecorder # trap listener #dbLoadRecords("$(CAPUTRECORDER)/caputRecorderApp/Db/caputPoster.db","P=xxx:,N=300") #doAfterIocInit("registerCaputRecorderTrapListener('xxx:caputReco
rderCommand')") # GUI database #dbLoadRecords("$(CAPUTRECORDER)/caputRecorderApp/Db/caputRecorder.db","P=xxx:,N=300") # second copy of GUI database #dbLoadRecords("$(CAPUTRECORDER)/caputRecorderApp/Db/caputRecorder.db","P=xxxA:,N=300") # if you have hdf5 and szip, you can use this #< areaDetector.cmd # soft scaler for testing #< softScaler.cmd # user-assignable ramp/tweak #dbLoadRecords("$(STD)/stdApp/Db/ramp_tweak.db","P=xxx:,Q=rt1") # serial support #< serial.cmd # Motors dbLoadTemplate("motor.substitutions.ARIES.test.xxx") drvAsynIPPortConfigure("L0","192.168.1.120:12321",0,0,0) #< motorSim.cmd dbLoadRecords("/opt/synApps_5_8/support/motor-6-9/db/motorUtil.db", "P=xxx:") ARIESSetup(4, 5) ARIESConfig(0, "L0", 0) var drvARIESdebug 4 #asynSetTraceIOMask("L0",-1,0x9) ### Scan-support software # crate-resident scan. This executes 1D, 2D, 3D, and 4D scans, and caches # 1D data, but it does
n't store anything to disk. (See 'saveData' below for that.) dbLoadRecords("/opt/synApps_5_8/support/sscan-2-10-1/sscanApp/Db/standardScans.db","P=xxx:,MAXPTS1=1000,MAXPTS2=1000,MAXPTS3=1000,MAXPTS4=1000,MAXPTSH=1000") dbLoadRecords("/opt/synApps_5_8/support/sscan-2-10-1/sscanApp/Db/saveData.db","P=xxx:") # Run this after iocInit: #doAfterIocInit("saveData_Init(saveData.req, 'P=xxx:')") dbLoadRecords("/opt/synApps_5_8/support/sscan-2-10-1/sscanApp/Db/scanProgress.db","P=xxx:scanProgress:") # Run this after iocInit: #doAfterIocInit("seq &scanProgress, 'S=xxx:, P=xxx:scanProgress:'") # configMenu example. dbLoadRecords("/opt/synApps_5_8/support/autosave-5-6-1/asApp/Db/configMenu.db","P=xxx:,CONFIG=scan1") # Note that the request file MUST be named $(CONFIG)Menu.req # If the macro CONFIGMENU is defined with any value, backup (".savB") and # sequence files (".savN") will not be written. We don't want these for configMenu. #
Run this after iocInit: #doAfterIocInit("create_manual_set('scan1Menu.req','P=xxx:,CONFIG=scan1,CONFIGMENU=1')") # You could make scan configurations read-only: #dbLoadRecords("$(AUTOSAVE)/asApp/Db/configMenu.db","P=xxx:,CONFIG=scan1,ENABLE_SAVE=0") # read-only configMenu example. (Read-only, because we're not calling create_manual_set().) #dbLoadRecords("$(AUTOSAVE)/asApp/Db/configMenu.db","P=xxx:,CONFIG=scan2") # A set of scan parameters for each positioner. This is a convenience # for the user. It can contain an entry for each scannable thing in the # crate. dbLoadTemplate("scanParms.substitutions") ### Optical tables dbLoadRecords("/opt/synApps_5_8/support/optics-2-9-3/opticsApp/Db/table.db","P=xxx:,Q=Table1,T=table1,M0X=m1,M0Y=m2,M1Y=m3,M2X=m4,M2Y=m5,M2Z=m6,GEOM=SRI") dbLoadRecords("/opt/synApps_5_8/support/optics-2-9-3/opticsApp/Db/table.db","P=xxx:,Q=Table1,T=table1,M0X=m1,M0Y=m2,M1Y=m3,M2X=m4,M2Y=m5,M2Z=m6,GEOM=NE
WPORT") dbLoadRecords("/opt/synApps_5_8/support/optics-2-9-3/opticsApp/Db/table.db","P=xxx:,Q=Table2,T=table2,M0X=m1,M0Y=m2,M1Y=m3,M2X=m4,M2Y=m5,M2Z=m6,GEOM=SRI") # Io calculation dbLoadRecords("/opt/synApps_5_8/support/optics-2-9-3/opticsApp/Db/Io.db","P=xxx:Io:") ### Monochromator support ### # Kohzu and PSL monochromators: Bragg and theta/Y/Z motors # standard geometry (geometry 1) dbLoadRecords("/opt/synApps_5_8/support/optics-2-9-3/opticsApp/Db/kohzuSeq.db","P=xxx:,M_THETA=m1,M_Y=m2,M_Z=m3,yOffLo=17.4999,yOffHi=17.5001") # Run this after iocInit: #doAfterIocInit("seq &kohzuCtl, 'P=xxx:, M_THETA=m1, M_Y=m2, M_Z=m3, GEOM=1, logfile=kohzuCtl.log'") # modified geometry (geometry 2) #dbLoadRecords("$(OPTICS)/opticsApp/Db/kohzuSeq.db","P=xxx:,M_THETA=m1,M_Y=m2,M_Z=m2,yOffLo=4,yOffHi=36") # Run this after iocInit: #doAfterIocInit("seq &kohzuCtl, 'P=xxx:, M_THETA=m1, M_Y=m2, M_Z=m3, GEOM=2, logfile=kohzuCtl.log'") # Spherical gr
ating monochromator #dbLoadRecords("$(OPTICS)/opticsApp/Db/SGM.db","P=xxx:,N=1,M_x=m7,M_rIn=m6,M_rOut=m8,M_g=m9") # 4-bounce high-resolution monochromator dbLoadRecords("/opt/synApps_5_8/support/optics-2-9-3/opticsApp/Db/hrSeq.db","P=xxx:,N=1,M_PHI1=m4,M_PHI2=m5") # Run this after iocInit: #doAfterIocInit("seq &hrCtl, 'P=xxx:, N=1, M_PHI1=m4, M_PHI2=m5, logfile=hrCtl.log'") ### Orientation matrix, four-circle diffractometer (see seq program 'orient' below) #dbLoadRecords("$(OPTICS)/opticsApp/Db/orient.db", "P=xxx:,O=1,PREC=4") #dbLoadTemplate("orient_xtals.substitutions") # Run this after iocInit: #doAfterIocInit("seq &orient, 'P=xxx:orient1:,PM=xxx:,mTTH=m9,mTH=m10,mCHI=m11,mPHI=m12'") ### Stuff for user programming ### #< calc.cmd # 4-step measurement #dbLoadRecords("$(STD)/stdApp/Db/4step.db", "P=xxx:,Q=4step:") # Slow feedback #dbLoadTemplate "pid_slow.substitutions" #dbLoadTemplate "async_pid_slow.substitutio
ns" #dbLoadTemplate "fb_epid.substitutions" # Miscellaneous PV's, such as burtResult #dbLoadRecords("$(STD)/stdApp/Db/misc.db","P=xxx:") ### Load database records for Femto amplifiers #dbLoadRecords("$(STD)/stdApp/Db/femto.db","P=xxx:,H=fem01:,F=seq01:") # Run this after iocInit: #doAfterIocInit("seq femto,'name=fem1,P=xxx:,H=fem01:,F=seq01:,G1=xxx:Unidig1Bo6,G2=xxx:Unidig1Bo7,G3=xxx:Unidig1Bo8,NO=xxx:Unidig1Bo10'") ### Load database records for dual PF4 filters #dbLoadRecords("$(OPTICS)/opticsApp/Db/pf4common.db","P=xxx:,H=pf4:,A=A,B=B") #dbLoadRecords("$(OPTICS)/opticsApp/Db/pf4bank.db","P=xxx:,H=pf4:,B=A") #dbLoadRecords("$(OPTICS)/opticsApp/Db/pf4bank.db","P=xxx:,H=pf4:,B=B") # Run this after iocInit: #doAfterIocInit("seq pf4,'name=pf1,P=xxx:,H=pf4:,B=A,M=xxx:userTran10.I,B1=xxx:userTran10.A,B2=xxx:userTran10.B,B3=xxx:userTran10.C,B4=xxx:userTran10.D'") #doAfterIocInit("seq pf4,'name=pf2,P=xxx:,H=pf4:,B=B,M=xxx:userTran10.I,B1=xx
x:userTran10.E,B2=xxx:userTran10.F,B3=xxx:userTran10.G,B4=xxx:userTran10.H'") ############################################################################### iocInit Starting iocInit ############################################################################ ## EPICS R3.15.2 $Date: Thu 2015-05-14 14:09:28 +0200$ ## EPICS Base built Oct 16 2016 ############################################################################ recDynLinkOut: waiting for CA context recDynLinkOut: got CA context iocRun: All initialization complete ############################################################################### asynSetTraceIOMask("L0",-1,0x9) motorUtilInit('xxx:') saveData_Init(saveData.req, 'P=xxx:') saveData: message queue created saveData:maxAllowedRetries = 10 saveData:retryWaitInSecs = 15 seq &scanProgress, 'S=xxx:, P=xxx:scanProgress:' sevr=info Sequencer release 2.2.3, compiled Wed Nov 30 16:54:39 2016 sevr=info Spa
wning sequencer program "scanProgress", thread 0x1f75820: "scanProgress" seq &hrCtl, 'P=xxx:, N=1, M_PHI1=m4, M_PHI2=m5, logfile=hrCtl.log' sevr=info Sequencer release 2.2.3, compiled Wed Nov 30 16:54:39 2016 sevr=info Spawning sequencer program "hrCtl", thread 0x1f7f1d0: "hrCtl" create_manual_set('scan1Menu.req','P=xxx:,CONFIG=scan1,CONFIGMENU=1') save_restore:readReqFile: unable to open file configMenu.req. Exiting. save_restore:readReqFile: unable to open file scan_settings.req. Exiting. save_restore:readReqFile: unable to open file scan_settings.req. Exiting. sevr=info scanProgress[0]: all channels connected & received 1st monitor save_restore:readReqFile: unable to open file scan_settings.req. Exiting. sevr=info hrCtl[0]: all channels connected & received 1st monitor # write all the PV names to a local file dbl > dbl-all.txt # Report states of database CA links #dbcar(*,1) # print the time our boot was fi
nished date 2016/12/02 11:04:28.243224 epics> scan1Menu.sav: 0 of 0 PV's connected
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////// scanParm.substitutions /////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
file "$(SSCAN)/sscanApp/Db/scanParms.db"
{
{P=xxx:,SCANREC=xxx:scan1,Q=m1,POS="$(Q).VAL",RDBK="$(Q).RBV"}
{P=xxx:,SCANREC=xxx:scan1,Q=m2,POS="$(Q).VAL",RDBK="$(Q).RBV"}
{P=xxx:,SCANREC=xxx:scan1,Q=m3,POS="$(Q).VAL",RDBK="$(Q).RBV"}
{P=xxx:,SCANREC=xxx:scan1,Q=m4,POS="$(Q).VAL",RDBK="$(Q).RBV"}
{P=xxx:,SCANREC=xxx:scan1,Q=m5,POS="$(Q).VAL",RDBK="$(Q).RBV"}
{P=xxx:,SCANREC=xxx:scan1,Q=m6,POS="$(Q).VAL",RDBK="$(Q).RBV"}
{P=xxx:,SCANREC=xxx:scan1,Q=m7,POS="$(Q).VAL",RDBK="$(Q).RBV"}
{P=xxx:,SCANREC=xxx:scan1,Q=m8,POS="$(Q).VAL",RDBK="$(Q).RBV"}
{P=xxx:,SCANREC=xxx:scan1,Q=Table1X,POS=table1.X,RDBK=table1.XRB}
{P=xxx:,SCANREC=xxx:scan1,Q=Table1Y,POS=table1.Y,RDBK=table1.YRB}
{P=xxx:,SCANREC=xxx:scan1,Q=Table1Z,POS=table1.Z,RDBK=table1.ZRB}
{P=xxx:,SCANREC=xxx:scan1,Q=Table1AX,POS=table1.AX,RDBK=table1.AXRB}
{P=xxx:,SCANREC=xxx:scan1,Q=Table1AY,POS=table1.AY,RDBK=table1.AYRB}
{P=xxx:,SCANREC=xxx:scan1,Q=Table1AZ,POS=table1.AZ,RDBK=table1.AZRB}
{P=xxx:,SCANREC=xxx:scan1,Q=BraggE,POS=BraggEAO.VAL,RDBK=BraggERdbkAO.VAL}
{P=xxx:,SCANREC=xxx:scan1,Q=BraggLambda,POS=BraggLambdaAO.VAL,RDBK=BraggLambdaRdbkAO.VAL}
{P=xxx:,SCANREC=xxx:scan1,Q=BraggTheta,POS=BraggThetaAO.VAL,RDBK=BraggThetaRdbkAO.VAL}
{P=xxx:,SCANREC=xxx:scan1,Q=HR1_E,POS=HR1_EAO.VAL,RDBK=HR1_ERdbkAO}
{P=xxx:,SCANREC=xxx:scan1,Q=HR1_A,POS=HR1_worldOffAO.VAL,RDBK=HR1_worldOffAO.VAL}
# slit
#{P=xxx:,SCANREC=xxx:scan1,Q=Slit1Hp,POS=Slit1Hxp.VAL,RDBK=Slit1Ht2.A}
#{P=xxx:,SCANREC=xxx:scan1,Q=Slit1Hn,POS=Slit1Hxn.VAL,RDBK=Slit1Ht2.B}
#{P=xxx:,SCANREC=xxx:scan1,Q=Slit1Hsize,POS=Slit1Hsize.VAL,RDBK=Slit1Ht2.C}
#{P=xxx:,SCANREC=xxx:scan1,Q=Slit1Hcenter,POS=Slit1Hcenter.VAL,RDBK=Slit1Ht2.D}
#{P=xxx:,SCANREC=xxx:scan1,Q=Slit1Vp,POS=Slit1Vxp.VAL,RDBK=Slit1Vt2.A}
#{P=xxx:,SCANREC=xxx:scan1,Q=Slit1Vn,POS=Slit1Vxn.VAL,RDBK=Slit1Vt2.B}
#{P=xxx:,SCANREC=xxx:scan1,Q=Slit1Vsize,POS=Slit1Vsize.VAL,RDBK=Slit1Vt2.C}
#{P=xxx:,SCANREC=xxx:scan1,Q=Slit1Vcenter,POS=Slit1Vcenter.VAL,RDBK=Slit1Vt2.D}
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////// motor.substitutions.ARIES.test.xxx //////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
file "$(MOTOR)/db/basic_motor.db"
{
pattern
{P, N, M, DTYP, C, S, DESC, EGU, DIR, VELO, VBAS, ACCL, BDST, BVEL, BACC, MRES, PREC, DHLM, DLLM, INIT}
{xxx:, m1, "$(N)", "ARIES", 0, 0, "motor $(N)", rad, Pos, 2000, 400, .1, 1, 400, .1, 2, 5, 5001, -5001, ""}
{xxx:, m2, "$(N)", "ARIES", 0, 1, "motor $(N)", arcsec, Pos, 2000, 400, .1, 1, 400, .1, 0.0225, 5, 50000001, -5000000001, ""}
{xxx:, m3, "$(N)", "ARIES", 0, 2, "motor $(N)", um, Pos, 10, .1, .2, 0, 1, .2, 0.5, 5, 360, -360, ""}
{xxx:, m4, "$(N)", "ARIES", 0, 3, "motor $(N)", um, Pos, 1000, 200, .1, 1, 200, .1, 0.05, 5, 15001, -15001, ""}
{xxx:, m5, "$(N)", "ARIES", 0, 4, "motor $(N)", arcsec, Pos, 1000, 200, .1, 1, 200, .1, 0.00225, 5, 15001, -15001, ""}
{xxx:, m6, "$(N)", "ARIES", 0, 5, "motor $(N)", um, Pos, 1000, 200, .1, 1, 200, .1, 0.05, 5, 15001, -15001, ""}
{xxx:, m7, "$(N)", "ARIES", 0, 6, "motor $(N)", um, Pos, 1000, 200, .1, 1, 200, .1, 0.05, 5, 15001, -15001, ""}
}
Attachment:
hrSeqCtl_ALL(some pv invalid).png
Description: PNG image
- Replies:
- RE: hrSeqCt_ALL pv question Mooney, Tim M.
- Navigate by Date:
- Prev:
Re: SNL sequencer apparently losing connection to underlying network Matt Newville
- Next:
RE: hrSeqCt_ALL pv question Mooney, Tim M.
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
<2016>
2017
2018
2019
2020
2021
2022
2023
2024
- Navigate by Thread:
- Prev:
Automatic flat db generation Luca Cavalli
- Next:
RE: hrSeqCt_ALL pv question Mooney, Tim M.
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
<2016>
2017
2018
2019
2020
2021
2022
2023
2024
|