EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <20172018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <20172018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: the pv in sscan disconnect
From: "Mooney, Tim M." <[email protected]>
To: 梁雅翔 <[email protected]>, tech-talk <[email protected]>
Date: Wed, 31 May 2017 14:08:56 +0000

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



References:
the pv in sscan disconnect 梁雅翔

Navigate by Date:
Prev: the pv in sscan disconnect 梁雅翔
Next: Re: Use case for ao record HOPR != DRVH or LOPR != DRVL? Nicholas P. DiMonte
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <20172018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: the pv in sscan disconnect 梁雅翔
Next: Any issues with Base-3.16.1-rc1? Andrew Johnson
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <20172018  2019  2020  2021  2022  2023  2024 
ANJ, 21 Dec 2017 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·