Experimental Physics and
| |||||||||||||||
|
Hi Liang,
You're right that it's a macro problem. You need to change "xxx:" to "hrm:" in the "seq &scanProgress" command.
dbLoadRecords("$(SSCAN)/sscanApp/Db/scanProgress.db","P=hrm:scanProgress:") ... iocInit ... seq &scanProgress, 'S=hrm:, P=xxx:scanProgress:'
Tim Mooney ([email protected]) (630)252-5417
Beamline Controls Group (www.aps.anl.gov) Advanced Photon Source, Argonne National Lab From: [email protected] <[email protected]> on behalf of 梁雅翔 <[email protected]>
Sent: Wednesday, May 31, 2017 6:47:47 AM To: tech-talk Subject: the pv in sscan disconnect Hi all,
I am using synapps and I want to use three modules: optics, motor and sscan. I have already passed through optics and motor with xxx module. Only sscan left( all pv disconnect.) The optics and motor worked well, but all the pv in sscan was disconnect. I think it was macro question. I have modified the marco P from xxx: to hrm:. I didn't know how to fix it with sscan, optics and motor together. Could someone give me some advice. I used base 3.15.2, synapps_5_8, centos 7. Thank you, Liang yx ********************************************************************* *************my scanParms.substitutions file (I modified the xxx: to hrm: )************* ********************************************************************* file "$(SSCAN)/sscanApp/Db/scanParms.db" { {P=hrm:,SCANREC=hrm:scan1,Q=m1,POS="$(Q).VAL",RDBK="$(Q).RBV"} {P=hrm:,SCANREC=hrm:scan1,Q=m2,POS="$(Q).VAL",RDBK="$(Q).RBV"} {P=hrm:,SCANREC=hrm:scan1,Q=m3,POS="$(Q).VAL",RDBK="$(Q).RBV"} {P=hrm:,SCANREC=hrm:scan1,Q=m4,POS="$(Q).VAL",RDBK="$(Q).RBV"} {P=hrm:,SCANREC=hrm:scan1,Q=m5,POS="$(Q).VAL",RDBK="$(Q).RBV"} {P=hrm:,SCANREC=hrm:scan1,Q=m6,POS="$(Q).VAL",RDBK="$(Q).RBV"} {P=hrm:,SCANREC=hrm:scan1,Q=m7,POS="$(Q).VAL",RDBK="$(Q).RBV"} {P=hrm:,SCANREC=hrm:scan1,Q=m8,POS="$(Q).VAL",RDBK="$(Q).RBV"} {P=hrm:,SCANREC=hrm:scan1,Q=Table1X,POS=table1.X,RDBK=table1.XRB} {P=hrm:,SCANREC=hrm:scan1,Q=Table1Y,POS=table1.Y,RDBK=table1.YRB} {P=hrm:,SCANREC=hrm:scan1,Q=Table1Z,POS=table1.Z,RDBK=table1.ZRB} {P=hrm:,SCANREC=hrm:scan1,Q=Table1AX,POS=table1.AX,RDBK=table1.AXRB} {P=hrm:,SCANREC=hrm:scan1,Q=Table1AY,POS=table1.AY,RDBK=table1.AYRB} {P=hrm:,SCANREC=hrm:scan1,Q=Table1AZ,POS=table1.AZ,RDBK=table1.AZRB} {P=hrm:,SCANREC=hrm:scan1,Q=BraggE,POS=BraggEAO.VAL,RDBK=BraggERdbkAO.VAL} {P=hrm:,SCANREC=hrm:scan1,Q=BraggLambda,POS=BraggLambdaAO.VAL,RDBK=BraggLambdaRdbkAO.VAL} {P=hrm:,SCANREC=hrm:scan1,Q=BraggTheta,POS=BraggThetaAO.VAL,RDBK=BraggThetaRdbkAO.VAL} {P=hrm:,SCANREC=hrm:scan1,Q=HR1_E,POS=HR1_EAO.VAL,RDBK=HR1_ERdbkAO} {P=hrm:,SCANREC=hrm:scan1,Q=HR1_A,POS=HR1_worldOffAO.VAL,RDBK=HR1_worldOffAO.VAL} # slit #{P=hrm:,SCANREC=hrm:scan1,Q=Slit1Hp,POS=Slit1Hxp.VAL,RDBK=Slit1Ht2.A} #{P=hrm:,SCANREC=hrm:scan1,Q=Slit1Hn,POS=Slit1Hxn.VAL,RDBK=Slit1Ht2.B} #{P=hrm:,SCANREC=hrm:scan1,Q=Slit1Hsize,POS=Slit1Hsize.VAL,RDBK=Slit1Ht2.C} #{P=hrm:,SCANREC=hrm:scan1,Q=Slit1Hcenter,POS=Slit1Hcenter.VAL,RDBK=Slit1Ht2.D} #{P=hrm:,SCANREC=hrm:scan1,Q=Slit1Vp,POS=Slit1Vxp.VAL,RDBK=Slit1Vt2.A} #{P=hrm:,SCANREC=hrm:scan1,Q=Slit1Vn,POS=Slit1Vxn.VAL,RDBK=Slit1Vt2.B} #{P=hrm:,SCANREC=hrm:scan1,Q=Slit1Vsize,POS=Slit1Vsize.VAL,RDBK=Slit1Vt2.C} #{P=hrm:,SCANREC=hrm:scan1,Q=Slit1Vcenter,POS=Slit1Vcenter.VAL,RDBK=Slit1Vt2.D} } ********************************************** *************my 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=hrm:") 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=hrm:,MAXPTS1=1000,MAXPTS2=1000,MAXPTS3=1000,MAXPTS4=1000,MAXPTSH=1000") dbLoadRecords("$(SSCAN)/sscanApp/Db/saveData.db","P=hrm:") # Run this after iocInit: #doAfterIocInit("saveData_Init(saveData.req, 'P=xxx:')") dbLoadRecords("$(SSCAN)/sscanApp/Db/scanProgress.db","P=hrm:scanProgress:") #dbLoadRecords("$(SSCAN)/sscanApp/Db/scanProgress.db","P=hrm:") # Run this after iocInit: #doAfterIocInit("seq &scanProgress, 'S=xxx:, P=xxx:scanProgress:'") # configMenu example. dbLoadRecords("$(AUTOSAVE)/asApp/Db/configMenu.db","P=hrm:,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("$(OPTICS)/opticsApp/Db/table.db","P=hrm:,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=hrm:,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=hrm:,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=hrm:Io:") ### Monochromator support ### # Kohzu and PSL monochromators: Bragg and theta/Y/Z motors # standard geometry (geometry 1) dbLoadRecords("$(OPTICS)/opticsApp/Db/kohzuSeq.db","P=hrm:,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 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=hrm:,N=1,M_PHI1=m2,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.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('hrm:') saveData_Init(saveData.req, 'P=hrm:') seq &scanProgress, 'S=hrm:, P=xxx:scanProgress:' seq &hrCtl, 'P=hrm:, N=1, M_PHI1=m2, M_PHI2=m5, logfile=hrCtl.log' create_manual_set('scan1Menu.req','P=hrm:,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 ~ ********************************************** *************my output ************************* ********************************************** [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/support/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") epicsEnvSet("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 # BEGIN save_restore.cmd ------------------------------------------------------ ### save_restore setup # status PVs #save_restoreSet_UseStatusPVs(1) save_restoreSet_status_prefix("xxx:") dbLoadRecords("/opt/synApps_5_8/support/autosave-5-6-1/asApp/Db/save_restoreStatus.db", "P=xxx:, DEAD_SECONDS=5") # Ok to save/restore save sets with missing values (no CA connection to PV)? save_restoreSet_IncompleteSetsOk(1) # Save dated backup files? save_restoreSet_DatedBackupFiles(1) # Number of sequenced backup files to write save_restoreSet_NumSeqFiles(3) # Time interval between sequenced backups save_restoreSet_SeqPeriodInSeconds(300) # Ok to retry connecting to PVs whose initial connection attempt failed? save_restoreSet_CAReconnect(1) # Time interval in seconds between forced save-file writes. (-1 means forever). # This is intended to get save files written even if the normal trigger mechanism is broken. save_restoreSet_CallbackTimeout(-1) # specify where save files should be set_savefile_path("/opt/synApps_5_8/support/xxx-5-8-3/iocBoot/iocLinux", "autosave") ### # specify what save files should be restored. Note these files must be # in the directory specified in set_savefile_path(), or, if that function # has not been called, from the directory current when iocInit is invoked set_pass0_restoreFile("auto_positions.sav", "P=xxx:") # Save positions every five seconds doAfterIocInit("create_monitor_set('auto_positions.req',5,'P=xxx:')") set_pass0_restoreFile("auto_settings.sav", "P=xxx:") set_pass1_restoreFile("auto_settings.sav", "P=xxx:") # save settings every thirty seconds doAfterIocInit("create_monitor_set('auto_settings.req',30,'P=xxx:')") # Note that you can reload these sets after creating them: e.g., # reload_monitor_set("auto_settings.req",30,"P=xxx:") # Note that you can restore a .sav file without also autosaving to it. #set_pass0_restoreFile("myInitData.sav") #set_pass1_restoreFile("myInitData.sav") # Also, you can restore a .sav file that contains macros. (autosave R5-4-2) #set_pass0_restoreFile("myGenericData.sav", "P=xxx:") #set_pass1_restoreFile("myGenericData.sav", "P=xxx:") ### # specify directories in which to to search for included request files set_requestfile_path("/opt/synApps_5_8/support/xxx-5-8-3/iocBoot/iocLinux", "") set_requestfile_path("/opt/synApps_5_8/support/xxx-5-8-3/iocBoot/iocLinux", "autosave") set_requestfile_path("/opt/synApps_5_8/support/areaDetector-R2-0", "ADApp/Db") set_requestfile_path("/opt/synApps_5_8/support/areaDetector-R2-0/ADCore-R2-2", "ADApp/Db") set_requestfile_path("/opt/synApps_5_8/support/autosave-5-6-1", "asApp/Db") set_requestfile_path("/opt/synApps_5_8/support/busy-1-6-1", "busyApp/Db") set_requestfile_path("/opt/synApps_5_8/support/calc-3-4-2-1", "calcApp/Db") set_requestfile_path("/opt/synApps_5_8/support/camac-2-7", "camacApp/Db") set_requestfile_path("/opt/synApps_5_8/support/caputRecorder-1-6", "caputRecorderApp/Db") set_requestfile_path("/opt/synApps_5_8/support/dac128V-2-8", "dac128VApp/Db") set_requestfile_path("/opt/synApps_5_8/support/delaygen-1-1-1", "delaygenApp/Db") set_requestfile_path("/opt/synApps_5_8/support/dxp-3-4", "dxpApp/Db") set_requestfile_path("/opt/synApps_5_8/support/ip-2-17", "ipApp/Db") set_requestfile_path("/opt/synApps_5_8/support/ip330-2-8", "ip330App/Db") set_requestfile_path("/opt/synApps_5_8/support/ipUnidig-2-10", "ipUnidigApp/Db") set_requestfile_path("/opt/synApps_5_8/support/love-3-2-5", "loveApp/Db") set_requestfile_path("/opt/synApps_5_8/support/mca-7-6", "mcaApp/Db") set_requestfile_path("/opt/synApps_5_8/support/measComp-1-1", "measCompApp/Db") set_requestfile_path("/opt/synApps_5_8/support/modbus-2-7", "modbusApp/Db") set_requestfile_path("/opt/synApps_5_8/support/motor-6-9", "motorApp/Db") set_requestfile_path("/opt/synApps_5_8/support/optics-2-9-3", "opticsApp/Db") set_requestfile_path("/opt/synApps_5_8/support/quadEM-5-0", "quadEMApp/Db") set_requestfile_path("/opt/synApps_5_8/support/sscan-2-10-1", "sscanApp/Db") set_requestfile_path("/opt/synApps_5_8/support/softGlue-2-4-3", "softGlueApp/Db") set_requestfile_path("/opt/synApps_5_8/support/std-3-4", "stdApp/Db") set_requestfile_path("/opt/synApps_5_8/support/vac-1-5-1", "vacApp/Db") set_requestfile_path("/opt/synApps_5_8/support/vme-2-8-2", "vmeApp/Db") set_requestfile_path("/opt/synApps_5_8/support/xxx-5-8-3", "xxxApp/Db") # Debug-output level save_restoreSet_Debug(0) # Tell autosave to automatically build built_settings.req and # built_positions.req from databases and macros supplied to dbLoadRecords() # (and dbLoadTemplate(), which calls dbLoadRecords()). epicsEnvSet("BUILT_SETTINGS", "built_settings.req") epicsEnvSet("BUILT_POSITIONS", "built_positions.req") autosaveBuild("built_settings.req", "_settings.req", 1) pretending to register a dbLoadRecords hook autosaveBuild("built_positions.req", "_positions.req", 1) # END 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("/opt/synApps_5_8/support/motor-6-9/db/motorUtil.db", "P=hrm:") 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("/opt/synApps_5_8/support/sscan-2-10-1/sscanApp/Db/standardScans.db","P=hrm:,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=hrm:") # 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=hrm:scanProgress:") #dbLoadRecords("$(SSCAN)/sscanApp/Db/scanProgress.db","P=hrm:") # 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=hrm:,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("$(OPTICS)/opticsApp/Db/table.db","P=hrm:,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=hrm:,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=hrm:,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=hrm: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=hrm:,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 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("/opt/synApps_5_8/support/optics-2-9-3/opticsApp/Db/hrSeq.db","P=hrm:,N=1,M_PHI1=m2,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.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 Starting iocInit ############################################################################ ## EPICS R3.15.2 $Date: Thu 2015-05-14 14:09:28 +0200$ ## EPICS Base built Oct 16 2016 ############################################################################ reboot_restore: entry for file 'auto_positions.sav' reboot_restore: Found filename 'auto_positions.sav' in restoreFileList. *** restoring from '/opt/synApps_5_8/support/xxx-5-8-3/iocBoot/iocLinux/autosave/auto_positions.sav' at initHookState 6 (before record/device init) *** reboot_restore: done with file 'auto_positions.sav' reboot_restore: entry for file 'auto_settings.sav' reboot_restore: Found filename 'auto_settings.sav' in restoreFileList. *** restoring from '/opt/synApps_5_8/support/xxx-5-8-3/iocBoot/iocLinux/autosave/auto_settings.sav' at initHookState 6 (before record/device init) *** reboot_restore: done with file 'auto_settings.sav' reboot_restore: entry for file 'auto_settings.sav' reboot_restore: Found filename 'auto_settings.sav' in restoreFileList. *** restoring from '/opt/synApps_5_8/support/xxx-5-8-3/iocBoot/iocLinux/autosave/auto_settings.sav' at initHookState 7 (after record/device init) *** reboot_restore: done with file 'auto_settings.sav' iocRun: All initialization complete create_monitor_set('auto_positions.req',5,'P=xxx:') auto_positions.sav: 0 of 0 PV's connected create_monitor_set('auto_settings.req',30,'P=xxx:') ############################################################################### asynSetTraceIOMask("L0",-1,0x9) motorUtilInit('hrm:') saveData_Init(saveData.req, 'P=hrm:') saveData: message queue created saveData:maxAllowedRetries = 10 saveData:retryWaitInSecs = 15 seq &scanProgress, 'S=hrm:, P=xxx:scanProgress:' sevr=info Sequencer release 2.2.3, compiled Wed Nov 30 16:54:39 2016 sevr=info Spawning sequencer program "scanProgress", thread 0x19a8220: "scanProgress" seq &hrCtl, 'P=hrm:, N=1, M_PHI1=m2, 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 0x19b1bd0: "hrCtl" create_manual_set('scan1Menu.req','P=hrm:,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 2017/05/31 19:40:49.525623 sevr=info hrCtl[0]: all channels connected & received 1st monitor epics> scan1Menu.sav: 365 of 365 PV's connected auto_settings.sav: 0 of 0 PV's connected sevr=minor scanProgress[0](after 0 sec): assigned=33, connected=16, monitored=9, got monitor=8 epics> sevr=minor scanProgress[0](after 0 sec): assigned=33, connected=16, monitored=9, got monitor=8 sevr=minor scanProgress[0](after 0 sec): assigned=33, connected=16, monitored=9, got monitor=8 sevr=minor scanProgress[0](after 0 sec): assigned=33, connected=16, monitored=9, got monitor=8
| ||||||||||||||
ANJ, 21 Dec 2017 |
·
Home
·
News
·
About
·
Base
·
Modules
·
Extensions
·
Distributions
·
Download
·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing · |