From d23b8fc5f7ad8332774de470efb4e1002ff651f6 Mon Sep 17 00:00:00 2001 From: timmmooney <mooney@aps.anl.gov> Date: Fri, 26 Aug 2011 21:43:09 +0000 Subject: [PATCH] R5-6 --- iocBoot/iocvxWorks/st.cmd | 130 ++++++++++++++++++++++---------------- 1 file changed, 77 insertions(+), 53 deletions(-) diff --git a/iocBoot/iocvxWorks/st.cmd b/iocBoot/iocvxWorks/st.cmd index 8638ed4..9782ceb 100644 --- a/iocBoot/iocvxWorks/st.cmd +++ b/iocBoot/iocvxWorks/st.cmd @@ -2,17 +2,17 @@ sysVmeMapShow -# for vxStats -#putenv "engineer=not me" -#putenv "location=Earth" -engineer="not me" -location="Earth" +# For devIocStats +#epicsEnvSet("ENGINEER", "engineer") +#epicsEnvSet("LOCATION", "location") +putenv("ENGINEER=engineer") +putenv("LOCATION=location") cd "" < ../nfsCommands < cdCommands -# How to set and get the clock rate +# How to set and get the clock rate (in Hz. Default is 60 Hz) #sysClkRateSet(100) #sysClkRateGet() @@ -29,7 +29,7 @@ sysCplusEnable=1 ### Load synApps EPICS software ### doesn't work for tornado 2.2.2 ### ld < xxx.munch -load("xxx.munch") +ld(0,0,"xxx.munch") cd startup # Increase size of buffer for error logging from default 1256 @@ -47,7 +47,7 @@ recDynLinkQsize = 1024 putenv "EPICS_CA_MAX_ARRAY_BYTES=64008" # set the protocol path for streamDevice -#epicsEnvSet("STREAM_PROTOCOL_PATH", ".") +epicsEnvSet("STREAM_PROTOCOL_PATH", ".") ################################################################################ # Tell EPICS all about the record types, device-support modules, drivers, @@ -55,11 +55,16 @@ putenv "EPICS_CA_MAX_ARRAY_BYTES=64008" dbLoadDatabase("$(TOP)/dbd/iocxxxVX.dbd") iocxxxVX_registerRecordDeviceDriver(pdbbase) +#dbLoadTemplate("octupole.substitutions") + +# Autosave info node example +dbLoadRecords("$(AUTOSAVE)/asApp/Db/infoExample.db","P=xxx:") + # Soft function generator -dbLoadRecords("$(CALC)/calcApp/Db/FuncGen.db","P=xxx:,Q=fgen,OUT=xxx:m7.VAL") +#dbLoadRecords("$(CALC)/calcApp/Db/FuncGen.db","P=xxx:,Q=fgen,OUT=xxx:m7.VAL") # user-assignable ramp/tweak -dbLoadRecords("$(STD)/stdApp/Db/ramp_tweak.db","P=xxx:,Q=rt1") +#dbLoadRecords("$(STD)/stdApp/Db/ramp_tweak.db","P=xxx:,Q=rt1") ### save_restore setup # We presume a suitable initHook routine was compiled into xxx.munch. @@ -69,8 +74,6 @@ dbLoadRecords("$(STD)/stdApp/Db/ramp_tweak.db","P=xxx:,Q=rt1") # Industry Pack support < industryPack.cmd -# serial support -< serial.cmd # gpib support #< gpib.cmd @@ -86,7 +89,7 @@ dbLoadRecords("$(STD)/stdApp/Db/ramp_tweak.db","P=xxx:,Q=rt1") # Motors #dbLoadTemplate("basic_motor.substitutions") dbLoadTemplate("motor.substitutions") -dbLoadTemplate("softMotor.substitutions") +#dbLoadTemplate("softMotor.substitutions") #dbLoadTemplate("pseudoMotor.substitutions") ### Allstop, alldone @@ -101,7 +104,8 @@ dbLoadRecords("$(MOTOR)/db/motorUtil.db", "P=xxx:") ### 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.) -dbLoadTemplate("standardScans.substitutions") +putenv "SDB=$(SSCAN)/sscanApp/Db/standardScans.db" +dbLoadRecords("$(SDB)","P=xxx:,MAXPTS1=1000,MAXPTS2=1000,MAXPTS3=1000,MAXPTS4=1000,MAXPTSH=1000") dbLoadRecords("$(SSCAN)/sscanApp/Db/saveData.db","P=xxx:") # A set of scan parameters for each positioner. This is a convenience @@ -109,9 +113,11 @@ dbLoadRecords("$(SSCAN)/sscanApp/Db/saveData.db","P=xxx:") # crate. dbLoadTemplate("scanParms.substitutions") -### Slits -dbLoadRecords("$(OPTICS)/opticsApp/Db/2slit.db","P=xxx:,SLIT=Slit1V,mXp=m3,mXn=m4") -dbLoadRecords("$(OPTICS)/opticsApp/Db/2slit.db","P=xxx:,SLIT=Slit1H,mXp=m5,mXn=m6") +### Slits (If not supplied, RELTOCENTER defaults to zero) +dbLoadRecords("$(OPTICS)/opticsApp/Db/2slit.db","P=xxx:,SLIT=Slit1V,mXp=m3,mXn=m4,RELTOCENTER=0") +dbLoadRecords("$(OPTICS)/opticsApp/Db/2slit.db","P=xxx:,SLIT=Slit1H,mXp=m5,mXn=m6,RELTOCENTER=0") +#dbLoadRecords("$(OPTICS)/opticsApp/Db/2slit_soft.db","P=xxx:,SLIT=Slit2V,mXp=m3,mXn=m4") +#dbLoadRecords("$(OPTICS)/opticsApp/Db/2slit_soft.db","P=xxx:,SLIT=Slit2H,mXp=m5,mXn=m6") # X-ray Instrumentation Associates Huber Slit Controller # supported by a customized version of the SNL program written by Pete Jemian @@ -120,7 +126,7 @@ dbLoadRecords("$(OPTICS)/opticsApp/Db/2slit.db","P=xxx:,SLIT=Slit1H,mXp=m5,mXn=m #dbLoadRecords("$(OPTICS)/opticsApp/Db/xia_slit.db", "P=xxx:, HSC=hsc2:") ### 2-post mirror -dbLoadRecords("$(OPTICS)/opticsApp/Db/2postMirror.db","P=xxx:,Q=M1,mDn=m8,mUp=m7,LENGTH=0.3") +#dbLoadRecords("$(OPTICS)/opticsApp/Db/2postMirror.db","P=xxx:,Q=M1,mDn=m1,mUp=m2,LENGTH=0.3") ### User filters #dbLoadRecords("$(OPTICS)/opticsApp/Db/filterMotor.db","P=xxx:,Q=fltr1:,MOTOR=m1,LOCK=fltr_1_2:") @@ -130,15 +136,15 @@ dbLoadRecords("$(OPTICS)/opticsApp/Db/2postMirror.db","P=xxx:,Q=M1,mDn=m8,mUp=m7 ### Optical tables #tableRecordDebug=1 putenv "DIR=$(OPTICS)/opticsApp/Db" -dbLoadRecords("$(DIR)/table.db","P=xxx:,Q=Table1,T=table1,M0X=m1,M0Y=m2,M1Y=m3,M2X=m4,M2Y=m5,M2Z=m6,GEOM=SRI") +dbLoadRecords("$(DIR)/table.db","P=xxx:,Q=Table1,T=table1,M0X=m9,M0Y=m10,M1Y=m11,M2X=m12,M2Y=m13,M2Z=m14,GEOM=SRI") # Io calculation -dbLoadRecords("$(OPTICS)/opticsApp/Db/Io.db","P=xxx:Io:") +#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=m9,M_Y=m10,M_Z=m11,yOffLo=17.4999,yOffHi=17.5001") +#dbLoadRecords("$(OPTICS)/opticsApp/Db/kohzuSeq.db","P=xxx:,M_THETA=m1,M_Y=m2,M_Z=m3,yOffLo=17.4999,yOffHi=17.5001") # modified geometry (geometry 2) #dbLoadRecords("$(OPTICS)/opticsApp/Db/kohzuSeq.db","P=xxx:,M_THETA=m9,M_Y=m10,M_Z=m11,yOffLo=4,yOffHi=36") @@ -150,14 +156,14 @@ dbLoadRecords("$(OPTICS)/opticsApp/Db/kohzuSeq.db","P=xxx:,M_THETA=m9,M_Y=m10,M_ #dbLoadRecords("$(OPTICS)/opticsApp/Db/hrSeq.db","P=xxx:,N=2,M_PHI1=m11,M_PHI2=m12") # multilayer monochromator: Bragg and theta/Y/Z motors -dbLoadRecords("$(OPTICS)/opticsApp/Db/ml_monoSeq.db","P=xxx:") +#dbLoadRecords("$(OPTICS)/opticsApp/Db/ml_monoSeq.db","P=xxx:") ### Orientation matrix, four-circle diffractometer (see seq program 'orient' below) #dbLoadRecords("$(OPTICS)/opticsApp/Db/orient.db", "P=xxx:,O=1,PREC=6") #dbLoadTemplate("orient_xtals.substitutions") # Coarse/Fine stage -#dbLoadRecords("$(OPTICS)/opticsApp/Db/CoarseFineMotor.db","P=xxx:cf1:,PM=xxx:,CM=m7,FM=m8") +dbLoadRecords("$(OPTICS)/opticsApp/Db/CoarseFineMotor.db","P=xxx:cf1:,PM=xxx:,CM=m7,FM=m8") # Load single element Canberra AIM MCA and ICB modules #< canberra_1.cmd @@ -172,39 +178,41 @@ dbLoadRecords("$(OPTICS)/opticsApp/Db/ml_monoSeq.db","P=xxx:") dbLoadRecords("$(CALC)/calcApp/Db/userCalcs10.db","P=xxx:") dbLoadRecords("$(CALC)/calcApp/Db/userCalcOuts10.db","P=xxx:") dbLoadRecords("$(CALC)/calcApp/Db/userStringCalcs10.db","P=xxx:") -aCalcArraySize=2000 +aCalcArraySize=1000 dbLoadRecords("$(CALC)/calcApp/Db/userArrayCalcs10.db","P=xxx:,N=2000") dbLoadRecords("$(CALC)/calcApp/Db/userTransforms10.db","P=xxx:") dbLoadRecords("$(CALC)/calcApp/Db/userAve10.db","P=xxx:") # string sequence (sseq) records dbLoadRecords("$(STD)/stdApp/Db/userStringSeqs10.db","P=xxx:") + # 4-step measurement -dbLoadRecords("$(STD)/stdApp/Db/4step.db", "P=xxx:") +#dbLoadRecords("$(STD)/stdApp/Db/4step.db", "P=xxx:") + # interpolation #dbLoadRecords("$(CALC)/calcApp/Db/interp.db", "P=xxx:,N=2000") -dbLoadRecords("$(TOP)/xxxApp/Db/interpNew.db", "P=xxx:,Q=1,N=100") +#dbLoadRecords("$(TOP)/xxxApp/Db/interpNew.db", "P=xxx:,Q=1,N=100") # array test -dbLoadRecords("$(CALC)/calcApp/Db/arrayTest.db", "P=xxx:,N=2000") +#dbLoadRecords("$(CALC)/calcApp/Db/arrayTest.db", "P=xxx:,N=2000") # pvHistory (in-crate archive of up to three PV's) -dbLoadRecords("$(STD)/stdApp/Db/pvHistory.db","P=xxx:,N=1,MAXSAMPLES=1440") +#dbLoadRecords("$(STD)/stdApp/Db/pvHistory.db","P=xxx:,N=1,MAXSAMPLES=1440") # software timer -dbLoadRecords("$(STD)/stdApp/Db/timer.db","P=xxx:,N=1") +#dbLoadRecords("$(STD)/stdApp/Db/timer.db","P=xxx:,N=1") # busy record dbLoadRecords("$(BUSY)/busyApp/Db/busyRecord.db","P=xxx:,R=mybusy") # Slow feedback -dbLoadTemplate "pid_slow.substitutions" +#dbLoadTemplate "pid_slow.substitutions" # Miscellaneous PV's, such as burtResult dbLoadRecords("$(STD)/stdApp/Db/misc.db","P=xxx:") -#dbLoadRecords("$(STD)/stdApp/Db/VXstats.db","P=xxx:") -# vxStats -dbLoadTemplate("vxStats.substitutions") + +# devIocStats +dbLoadRecords("$(DEVIOCSTATS)/db/iocAdminVxWorks.db","IOC=xxx") ### Queensgate piezo driver #dbLoadRecords("$(IP)/ipApp/Db/pzt_3id.db","P=xxx:") @@ -213,16 +221,16 @@ dbLoadTemplate("vxStats.substitutions") ### Queensgate Nano2k piezo controller #dbLoadRecords("$(STD)/stdApp/Db/Nano2k.db","P=xxx:,S=s1") -### Load database records for sequence support for Femto DLPCA-200 amplifiers +### Load database records for Femto amplifiers #dbLoadRecords("$(STD)/stdApp/Db/femto.db","P=xxx:,H=fem01:,F=seq01:") -### Load database records for transform record support for Femto amplifiers -#dbLoadTemplate("femto_DxPCA_x00.substitutions") - ### 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") +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") + +# trajectory scan +dbLoadRecords("$(MOTOR)/motorApp/Db/trajectoryScan.db","P=xxx:,R=traj1:,NAXES=8,NELM=100,NPULSE=1000") ############################################################################### # Set shell prompt (otherwise it is left at mv167 or mv162) @@ -233,14 +241,16 @@ iocInit ### Startup State Notation Language (SNL) programs # NOTE: Command line limited to 128 characters -seq &kohzuCtl, "P=xxx:, M_THETA=m9, M_Y=m10, M_Z=m11, GEOM=2, logfile=kohzuCtl.log" +#seq &kohzuCtl, "P=xxx:, M_THETA=m1, M_Y=m2, M_Z=m3, GEOM=2, logfile=kohzuCtl.log" ### Example of specifying offset limits ##taskDelay(300) ##dbpf xxx:kohzu_yOffsetAO.DRVH 17.51 ##dbpf xxx:kohzu_yOffsetAO.DRVL 17.49 -#seq &ml_monoCtl, "P=xxx:, M_THETA=m7, M_THETA2=m10, M_Y=m9, M_Z=m8, Y_OFF=35., GEOM=1" +# multilayer monochromator +#seq &ml_monoCtl, "P=xxx:, M_THETA=m1, M_THETA2=m2, M_Y=m3, M_Z=m4, Y_OFF=35., GEOM=1" +# 4-bounce high-resolution monochromator #seq &hrCtl, "P=xxx:, N=1, M_PHI1=m9, M_PHI2=m10, logfile=hrCtl1.log" # Keithley 2000 series DMM @@ -260,7 +270,7 @@ seq &kohzuCtl, "P=xxx:, M_THETA=m9, M_Y=m10, M_Z=m11, GEOM=2, logfile=kohzuCtl.l #seq &orient, "P=xxx:orient1:,PM=xxx:,mTTH=m13,mTH=m14,mCHI=m15,mPHI=m16" # Io calculation -seq &Io, "P=xxx:Io:,MONO=xxx:BraggEAO,VSC=xxx:scaler1" +#seq &Io, "P=xxx:Io:,MONO=xxx:BraggEAO,VSC=xxx:scaler1" # Start Femto amplifier sequence programs putenv "FBO=xxx:Unidig1Bo" @@ -272,13 +282,21 @@ putenv "FBO=xxx:Unidig1Bo" # H = hardware (i.e. pf4) # B = bank indicator (i.e. A,B) # M = Monochromatic-beam energy PV -# B1 = Filter control bit 0 PV -# B2 = Filter control bit 1 PV -# B3 = Filter control bit 2 PV -# B4 = Fitler control bit 3 PV -putenv "BO=xxx:Unidig1Bo" -#seq &pf4,"name=pf1,P=xxx:,H=pf4:,B=A,M=xxx:BraggEAO,B1=$(BO)3,B2=$(BO)4,B3=$(BO)5,B4=$(BO)6" -#seq &pf4,"name=pf2,P=xxx:,H=pf4:,B=B,M=xxx:BraggEAO,B1=$(BO)7,B2=$(BO)8,B3=$(BO)9,B4=$(BO)10" +# BP = Filter control bit PV prefix +# B1 = Filter control bit 0 number +# B2 = Filter control bit 1 number +# B3 = Filter control bit 2 number +# B4 = Fitler control bit 3 number +#seq &pf4,"name=pf1,P=xxx:,H=pf4:,B=A,M=xxx:BraggEAO,BP=xxx:Unidig1Bo,B1=3,B2=4,B3=5,B4=6" +#seq &pf4,"name=pf2,P=xxx:,H=pf4:,B=B,M=xxx:BraggEAO,BP=xxx:Unidig1Bo,B1=7,B2=8,B3=9,B4=10" +seq(&pf4,"name=pf1,P=xxx:,H=pf4:,B=A,M=xxx:userCalc1,BP=xxx:Unidig1Bo,B1=3,B2=4,B3=5,B4=6") +seq(&pf4,"name=pf2,P=xxx:,H=pf4:,B=B,M=xxx:userCalc1,BP=xxx:Unidig1Bo,B1=7,B2=8,B3=9,B4=10") + +### Octupole power-supply +#seq &octupole, "P=xxx:, Q=octupole:, S=softGlue:" + +# MAXV trajectory scan +seq &MAX_trajectoryScan, "P=xxx:,R=traj1:,M1=m1,M2=m2,M3=m3,M4=m4,M5=m5,M6=m6,M7=m7,M8=m8,PORT=none" ### Start up the autosave task and tell it what to do. # The task is actually named "save_restore". @@ -293,9 +311,15 @@ putenv "BO=xxx:Unidig1Bo" create_monitor_set("auto_positions.req",5,"P=xxx:") # save other things every thirty seconds create_monitor_set("auto_settings.req",30,"P=xxx:") -# You can have a save set triggered by a PV, and specify the name of the file it will write to with a PV -#create_triggered_set(<request file>,<trigger PV>,<PV from which file name should be read>) -#create_triggered_set("trigSet.req","xxx:userStringCalc1.SVAL","P=xxx:,SAVENAMEPV=xxx:userStringCalc1.SVAL") + +# You can have a save set triggered by a PV, and specify the path and/or name of the file it +# will write to via PVs. If you specify a path PV, the path must already exist; autosave won't +# create a directory. If the path begins with '/', autosave will use it exactly as read. +# If the path does not begin with '/', autosave will prepend the path that was specified in a +# call to set_savefile_path(). +#create_triggered_set(<request file>,<trigger PV>,<macrostring>) +macro="P=xxx:,SAVENAMEPV=xxx:userStringCalc1.SVAL,SAVEPATHPV=xxx:userStringCalc2.SVAL" +create_triggered_set("trigSet.req","xxx:userStringCalc1.A",macro) ### Start the saveData task. If you start this task, scan records mentioned # in saveData.req will *always* write data files. There is no programmable -- GitLab