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  <20152016  2017  2018  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  <20152016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: RE: Scan1 already defined?
From: Mark Rivers <[email protected]>
To: l123173 <[email protected]>, "[email protected]" <[email protected]>
Date: Tue, 28 Apr 2015 03:49:38 +0000
> The detail is: I use the macro value P=xxx:,S=scan1,N=1 for both sscan module(scan.db) and
>  std module(scaler 974). So the st.cmd said  :"Record xxx:scan1 already defined with different type sscan".

You should use P=xxx:,S=scan1 for the sscan, but use P=xxx:,S=scaler1 for the scaler 974.

Mark

________________________________
From: [email protected] [[email protected]] on behalf of l123173 [[email protected]]
Sent: Monday, April 27, 2015 10:01 PM
To: [email protected]
Subject: Scan1 already defined?

Hi tech-talk,

    Could you please do me an offer again. I just want to move a motor then triger a detector, on and on.
    I successfully controled the motor and scaler 974 respectively with xxx/iocBoot/iocLinux st.cmd.
    But when I put the motor and scaler 974 together, something wrong.

I added the motor and std part of xxx/iocBoot/iocLinux st.cmd  myself, others not changed.
After reading the information of st.cmd,  I think the &(P)$(S) of record is the question. The detail is: I use the macro value P=xxx:,S=scan1,N=1 for both sscan module(scan.db) and std module(scaler 974).
So the st.cmd said  :"Record xxx:scan1 already defined with different type sscan".

Could you tell me how should I do it?

Thanks,
Li Xing

the following is st.cmd information and scan.db. (between "####" and "#####" is what I changed )

st.cmd  information
###############################################################################
# Linux startup script
# For devIocStats
epicsEnvSet("ENGINEER","engineer")
epicsEnvSet("LOCATION","location")
# add myself
epicsEnvSet "STREAM_PROTOCOL_PATH" "/home/bsrf-non/Documents/KohzuAries/db"
< envPaths
epicsEnvSet("ARCH","linux-x86")
epicsEnvSet("IOC","iocLinux")
epicsEnvSet("TOP","/home/bsrf-non/Documents/synApps_5_6/support/xxx-5-6")
epicsEnvSet("SUPPORT","/home/bsrf-non/Documents/synApps_5_6/support")
epicsEnvSet("ALLEN_BRADLEY","/home/bsrf-non/Documents/synApps_5_6/support/allenBradley-2-2")
epicsEnvSet("AREA_DETECTOR","/home/bsrf-non/Documents/synApps_5_6/support/areaDetector-1-8beta1")
epicsEnvSet("ASYN","/home/bsrf-non/Documents/synApps_5_6/support/asyn-4-18")
epicsEnvSet("AUTOSAVE","/home/bsrf-non/Documents/synApps_5_6/support/autosave-4-8")
epicsEnvSet("BUSY","/home/bsrf-non/Documents/synApps_5_6/support/busy-1-4")
epicsEnvSet("CALC","/home/bsrf-non/Documents/synApps_5_6/support/calc-2-9")
epicsEnvSet("CAMAC","/home/bsrf-non/Documents/synApps_5_6/support/camac-2-7")
epicsEnvSet("DAC128V","/home/bsrf-non/Documents/synApps_5_6/support/dac128V-2-7")
epicsEnvSet("DELAYGEN","/home/bsrf-non/Documents/synApps_5_6/support/delaygen-1-0-7")
epicsEnvSet("DEVIOCSTATS","/home/bsrf-non/Documents/synApps_5_6/support/devIocStats-3-1-7")
epicsEnvSet("DXP","/home/bsrf-non/Documents/synApps_5_6/support/dxp-3-1")
epicsEnvSet("IP","/home/bsrf-non/Documents/synApps_5_6/support/ip-2-13")
epicsEnvSet("IP330","/home/bsrf-non/Documents/synApps_5_6/support/ip330-2-7")
epicsEnvSet("IPAC","/home/bsrf-non/Documents/synApps_5_6/support/ipac-2-11")
epicsEnvSet("IPUNIDIG","/home/bsrf-non/Documents/synApps_5_6/support/ipUnidig-2-9")
epicsEnvSet("LOVE","/home/bsrf-non/Documents/synApps_5_6/support/love-3-2-5")
epicsEnvSet("MCA","/home/bsrf-non/Documents/synApps_5_6/support/mca-7-1")
epicsEnvSet("MODBUS","/home/bsrf-non/Documents/synApps_5_6/support/modbus-2-3")
epicsEnvSet("MOTOR","/home/bsrf-non/Documents/synApps_5_6/support/motor-6-7")
epicsEnvSet("OPTICS","/home/bsrf-non/Documents/synApps_5_6/support/optics-2-8-1")
epicsEnvSet("QUADEM","/home/bsrf-non/Documents/synApps_5_6/support/quadEM-2-6")
epicsEnvSet("SNCSEQ","/home/bsrf-non/Documents/synApps_5_6/support/seq-2-1-3")
epicsEnvSet("SOFTGLUE","/home/bsrf-non/Documents/synApps_5_6/support/softGlue-2-2")
epicsEnvSet("SSCAN","/home/bsrf-non/Documents/synApps_5_6/support/sscan-2-7")
epicsEnvSet("STD","/home/bsrf-non/Documents/synApps_5_6/support/std-3-1")
epicsEnvSet("STREAM","/home/bsrf-non/Documents/synApps_5_6/support/stream-2-5-1")
epicsEnvSet("VAC","/home/bsrf-non/Documents/synApps_5_6/support/vac-1-4")
epicsEnvSet("VME","/home/bsrf-non/Documents/synApps_5_6/support/vme-2-8")
epicsEnvSet("XXX","/home/bsrf-non/Documents/synApps_5_6/support/xxx-5-6")
epicsEnvSet("EPICS_BASE","/opt/base-3.14.12.1/")
# save_restore.cmd needs the full path to the startup directory, which
# envPaths currently does not provide
epicsEnvSet(STARTUP,/home/bsrf-non/Documents/synApps_5_6/support/xxx-5-6/iocBoot/iocLinux)
# Increase size of buffer for error logging from default 1256
errlogInit(20000)
# Specify largest array CA will transport
# Note for N sscanRecord data points, need (N+1)*8 bytes, else MEDM
# plot doesn't display
epicsEnvSet EPICS_CA_MAX_ARRAY_BYTES 64008
###############################################################################
# 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)
drvAsynSerialPortConfigure("L0","/dev/ttyS2",0,0,0)
asynSetOption("L0",-1,"baud","115200")
asynSetOption("L0",-1,"bits","8")
asynSetOption("L0",-1,"parity","none")
asynSetOption("L0",-1,"stop","1")
asynSetOption("L0",-1,"clocal","Y")
asynSetOption("L0",-1,"crtscts","N")
asynOctetSetInputEos("L0",-1,"\r\n")
asynOctetSetOutputEos("L0",-1,"\r\n")
asynSetTraceIOMask("L0",-1,0x2)
#asynSetTraceMask("L0",-1,0x9)
asynSetTraceMask("L0",0,255)
################  974  #####################
############################################
drvAsynSerialPortConfigure("serial_974","/dev/ttyS0",3,0,0)
asynSetOption("serial_974",0,"baud","9600")
asynSetOption("serial_974",0,"bits","8")
asynSetOption("serial_974",0,"parity","none")
asynSetOption("serial_974",0,"stop","2")
#asynSetOption("serial_974",0,"clocal","Y")
#asynSetOption("serial_974",0,"crtscts","N")
asynOctetSetInputEos("serial_974",0,"\r\n")
asynOctetSetOutputEos("serial_974",0,"\r\n")
asynSetTraceIOMask("serial_974",0,0x2)
asynSetTraceMask("serial_974",0,255)
asynOctetConnect("serial_974","serial_974")
asynOctetWriteRead("serial_974","INIT")
2015/04/28 10:37:30.793 serial_974 asynManager::lockPort locking port
2015/04/28 10:37:30.793 serial_974 asynManager::lockPort created lockPortPvt=0x91f2600
2015/04/28 10:37:30.793 serial_974 asynManager::lockPort created lockPortPvt=0x91f2600, event=0x91f2610, mutex=0x91f2680
2015/04/28 10:37:30.793 serial_974 asynManager::lockPort taking mutex 0x91f2680
2015/04/28 10:37:30.793 serial_974 asynManager::lockPort queueing request
2015/04/28 10:37:30.793 serial_974 addr -1 queueRequest priority 0 not lockHolder
2015/04/28 10:37:30.793 serial_974 asynManager::lockPort waiting for event
2015/04/28 10:37:30.793 asynManager::portThread port=serial_974 callback
2015/04/28 10:37:30.793 serial_974 asynManager::lockPortCallback signaling begin event
2015/04/28 10:37:30.793 serial_974 asynManager::lockPortCallback waiting for mutex from unlockPort
2015/04/28 10:37:30.793 serial_974 asynManager::lockPort got event from callback
2015/04/28 10:37:30.793 serial_974 flush
2015/04/28 10:37:30.793 /dev/ttyS0 flush
2015/04/28 10:37:30.793 /dev/ttyS0 write.
2015/04/28 10:37:30.793 /dev/ttyS0 write 6
INIT\r\n
2015/04/28 10:37:30.793 wrote 6 to /dev/ttyS0, return asynSuccess
2015/04/28 10:37:30.793 serial_974 wrote
INIT\r\n
2015/04/28 10:37:30.793 asynOctetSyncIO wrote:
INIT
2015/04/28 10:37:30.793 /dev/ttyS0 read.
2015/04/28 10:37:31.117 /dev/ttyS0 read 8
%0000000
2015/04/28 10:37:31.117 /dev/ttyS0 read 8, return 0
2015/04/28 10:37:31.117 serial_974 read
%0000000
2015/04/28 10:37:31.117 /dev/ttyS0 read.
2015/04/28 10:37:31.125 /dev/ttyS0 read 3
69\r
2015/04/28 10:37:31.125 /dev/ttyS0 read 3, return 0
2015/04/28 10:37:31.125 serial_974 read
69\r
2015/04/28 10:37:31.125 /dev/ttyS0 read.
2015/04/28 10:37:32.120 /dev/ttyS0 timeout handler.
2015/04/28 10:37:32.225 /dev/ttyS0 read 0, return 1
2015/04/28 10:37:32.225 serial_974 unlockPort
2015/04/28 10:37:32.225 serial_974 asynManager::unlockPort waiting for event
2015/04/28 10:37:32.225 serial_974 unlockPort unlock mutex 0x91f2680 complete.
2015/04/28 10:37:32.225 Error in WriteRead, nout 4 ninp=11 error
###################### setup 974 #############################
initScaler974("serial974","serial_974",0,100)
########################################################
#< areaDetector.cmd
# Autosave info node example
dbLoadRecords("/home/bsrf-non/Documents/synApps_5_6/support/autosave-4-8/asApp/Db/infoExample.db","P=xxx:")
# Soft function generator
dbLoadRecords("/home/bsrf-non/Documents/synApps_5_6/support/calc-2-9/calcApp/Db/FuncGen.db","P=xxx:,Q=fgen,OUT=xxx:m7.VAL")
# user-assignable ramp/tweak
dbLoadRecords("/home/bsrf-non/Documents/synApps_5_6/support/std-3-1/stdApp/Db/ramp_tweak.db","P=xxx:,Q=rt1")
### save_restore setup
# We presume a suitable initHook routine was compiled into xxx.munch.
# See also create_monitor_set(), after iocInit() .
#< save_restore.cmd
# serial support
#< serial.cmd
# Motors
#dbLoadTemplate("basic_motor.substitutions")
#dbLoadTemplate("motor.substitutions")
#dbLoadTemplate("softMotor.substitutions")
#dbLoadTemplate("pseudoMotor.substitutions")
dbLoadRecords("/home/bsrf-non/Documents/KohzuAries/KohzuAriesSup/devKohzuAries.db","P=xxx:,R=,PORT=L0,A=0")
#< motorSim.cmd
< areaDetector.cmd
epicsEnvSet EPICS_CA_MAX_ARRAY_BYTES 2000100
# Create a simDetector driver
simDetectorConfig("SIM1", 640, 480, 1, 50, 50000000)
dbLoadRecords("/home/bsrf-non/Documents/synApps_5_6/support/areaDetector-1-8beta1/ADApp/Db/ADBase.template",     "P=xxx:,R=SIM1:cam1:,PORT=SIM1,ADDR=0,TIMEOUT=1")
dbLoadRecords("/home/bsrf-non/Documents/synApps_5_6/support/areaDetector-1-8beta1/ADApp/Db/simDetector.template","P=xxx:,R=SIM1:cam1:,PORT=SIM1,ADDR=0,TIMEOUT=1")
# Create a second simDetector driver
simDetectorConfig("SIM2", 300, 200, 1, 50, 50000000)
dbLoadRecords("/home/bsrf-non/Documents/synApps_5_6/support/areaDetector-1-8beta1/ADApp/Db/ADBase.template",     "P=xxx:,R=SIM1:cam2:,PORT=SIM2,ADDR=0,TIMEOUT=1")
dbLoadRecords("/home/bsrf-non/Documents/synApps_5_6/support/areaDetector-1-8beta1/ADApp/Db/simDetector.template","P=xxx:,R=SIM1:cam2:,PORT=SIM2,ADDR=0,TIMEOUT=1")
# Create a standard arrays plugin, set it to get data from first simDetector driver.
NDStdArraysConfigure("SIM1Image", 3, 0, "SIM1", 0, 2000000)
dbLoadRecords("/home/bsrf-non/Documents/synApps_5_6/support/areaDetector-1-8beta1/ADApp/Db/NDPluginBase.template", "P=xxx:,R=image1:,PORT=SIM1Image,ADDR=0,TIMEOUT=1,NDARRAY_PORT=SIM1,NDARRAY_ADDR=0")
dbLoadRecords("/home/bsrf-non/Documents/synApps_5_6/support/areaDetector-1-8beta1/ADApp/Db/NDStdArrays.template", "P=xxx:,R=image1:,PORT=SIM1Image,ADDR=0,TIMEOUT=1,TYPE=Int8,FTVL=UCHAR,NELEMENTS=1392640")
# Create a standard arrays plugin, set it to get data from second simDetector driver.
NDStdArraysConfigure("SIM2Image", 1, 0, "SIM2", 0, 2000000)
dbLoadRecords("/home/bsrf-non/Documents/synApps_5_6/support/areaDetector-1-8beta1/ADApp/Db/NDPluginBase.template", "P=xxx:,R=image2:,PORT=SIM2Image,ADDR=0,TIMEOUT=1,NDARRAY_PORT=SIM1,NDARRAY_ADDR=0")
dbLoadRecords("/home/bsrf-non/Documents/synApps_5_6/support/areaDetector-1-8beta1/ADApp/Db/NDStdArrays.template", "P=xxx:,R=image2:,PORT=SIM2Image,ADDR=0,TIMEOUT=1,TYPE=Int8,FTVL=UCHAR,NELEMENTS=1392640")
# Load the database to use with Stephen Mudie's IDL code
#dbLoadRecords("$(AREA_DETECTOR)/ADApp/Db/EPICS_AD_Viewer.template", "P=xxx:, R=image1:")
# Create a file saving plugin
NDFileNetCDFConfigure("SIM1File", 20, 0, "SIM1", 0)
dbLoadRecords("/home/bsrf-non/Documents/synApps_5_6/support/areaDetector-1-8beta1/ADApp/Db/NDPluginBase.template", "P=xxx:,R=netCDF1:,PORT=SIM1File,ADDR=0,TIMEOUT=1,NDARRAY_PORT=SIM1,NDARRAY_ADDR=0")
dbLoadRecords("/home/bsrf-non/Documents/synApps_5_6/support/areaDetector-1-8beta1/ADApp/Db/NDFile.template",      "P=xxx:,R=netCDF1:,PORT=SIM1File,ADDR=0,TIMEOUT=1")
# Create an ROI plugin
NDROIConfigure("SIM1ROI", 20, 0, "SIM1", 0, 8, 20, 20000000)
dbLoadRecords("/home/bsrf-non/Documents/synApps_5_6/support/areaDetector-1-8beta1/ADApp/Db/NDPluginBase.template", "P=xxx:,R=ROI1:,  PORT=SIM1ROI,ADDR=0,TIMEOUT=1,NDARRAY_PORT=SIM1,NDARRAY_ADDR=0")
dbLoadRecords("/home/bsrf-non/Documents/synApps_5_6/support/areaDetector-1-8beta1/ADApp/Db/NDROI.template",  "P=xxx:,R=ROI1:,  PORT=SIM1ROI,ADDR=0,TIMEOUT=1")
### Allstop, alldone
#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.)
dbLoadRecords("/home/bsrf-non/Documents/synApps_5_6/support/sscan-2-7/sscanApp/Db/scan.db","P=xxx:,MAXPTS1=8000,MAXPTS2=1000,MAXPTS3=100,MAXPTS4=100,MAXPTSH=8000")
# 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")
### Stuff for user programming ###
dbLoadRecords("/home/bsrf-non/Documents/synApps_5_6/support/calc-2-9/calcApp/Db/userCalcs10.db","P=xxx:")
dbLoadRecords("/home/bsrf-non/Documents/synApps_5_6/support/calc-2-9/calcApp/Db/userCalcOuts10.db","P=xxx:")
dbLoadRecords("/home/bsrf-non/Documents/synApps_5_6/support/calc-2-9/calcApp/Db/userStringCalcs10.db","P=xxx:")
var aCalcArraySize, 2000
dbLoadRecords("/home/bsrf-non/Documents/synApps_5_6/support/calc-2-9/calcApp/Db/userArrayCalcs10.db","P=xxx:,N=2000")
dbLoadRecords("/home/bsrf-non/Documents/synApps_5_6/support/calc-2-9/calcApp/Db/userTransforms10.db","P=xxx:")
dbLoadRecords("/home/bsrf-non/Documents/synApps_5_6/support/calc-2-9/calcApp/Db/userAve10.db","P=xxx:")
# string sequence (sseq) records
#dbLoadRecords("$(STD)/stdApp/Db/userStringSeqs10.db","P=xxx:")
############  add myself ##################
dbLoadRecords("/home/bsrf-non/Documents/synApps_5_6/support/std-3-1/stdApp/Db/scaler.db","P=xxx:,S=scan1,OUT=@asyn(serial974 0 2),DTYP=Asyn Scaler,FREQ=10,TP=1,TP1=0.5,PR1=1,CONT=1")
Record xxx:scan1 already defined with different type sscan
Error at or before ")" in file "/home/bsrf-non/Documents/synApps_5_6/support/std-3-1/stdApp/Db/scaler.db" line 123
Error: dbRecordHead: tempList not empty
    at or before ")" in file "/home/bsrf-non/Documents/synApps_5_6/support/std-3-1/stdApp/Db/scaler.db" line 131
Error: syntax error
    at or before "c�" in file "/home/bsrf-non/Documents/synApps_5_6/support/std-3-1/stdApp/Db/scaler.db" line 131
###########################################
# 4-step measurement
dbLoadRecords("/home/bsrf-non/Documents/synApps_5_6/support/std-3-1/stdApp/Db/4step.db", "P=xxx:")
Error: dbRecordHead: tempList not empty
    at or before ")" in file "/home/bsrf-non/Documents/synApps_5_6/support/std-3-1/stdApp/Db/4step.db" line 1
Error: syntax error
    at or before "@,    �c�" in file "/home/bsrf-non/Documents/synApps_5_6/support/std-3-1/stdApp/Db/4step.db" line 1
# interpolation
dbLoadRecords("/home/bsrf-non/Documents/synApps_5_6/support/calc-2-9/calcApp/Db/interp.db", "P=xxx:,N=2000")
Error: dbRecordHead: tempList not empty
    at or before ")" in file "/home/bsrf-non/Documents/synApps_5_6/support/calc-2-9/calcApp/Db/interp.db" line 7
Error: syntax error
    at or before "A,    �c�" in file "/home/bsrf-non/Documents/synApps_5_6/support/calc-2-9/calcApp/Db/interp.db" line 7
dbLoadRecords("/home/bsrf-non/Documents/synApps_5_6/support/calc-2-9/calcApp/Db/interpNew.db", "P=xxx:,Q=1,N=2000")
Error: dbRecordHead: tempList not empty
    at or before ")" in file "/home/bsrf-non/Documents/synApps_5_6/support/calc-2-9/calcApp/Db/interpNew.db" line 7
Segmentation fault





*****************************************************************************************************
my scan.db (add P1TV , T1PV did not know )

#! Generated by VisualDCT v2.5
#! DBDSTART
#! DBDEND
record(bi, "$(P)scanActive") {
  field(DTYP, "Soft Channel")
  field(INP, "0")
  field(ZNAM, "Done")
  field(ONAM, "Scanning")
}

record(bo, "$(P)AbortScan1") {
  field(DTYP, "Soft Channel")
  field(DISV, "0")
  field(SDIS, "$(P)scan1.FAZE  NPP NMS")
  field(OUT, "$(P)scan1.EXSC  CA NMS")
}

record(bo, "$(P)AbortScan2") {
  field(DTYP, "Soft Channel")
  field(DISV, "0")
  field(SDIS, "$(P)scan2.FAZE  NPP NMS")
  field(OUT, "$(P)scan2.EXSC  CA NMS")
}

record(bo, "$(P)AbortScan3") {
  field(DTYP, "Soft Channel")
  field(DISV, "0")
  field(SDIS, "$(P)scan3.FAZE  NPP NMS")
  field(OUT, "$(P)scan3.EXSC  CA NMS")
}

record(bo, "$(P)AbortScan4") {
  field(DTYP, "Soft Channel")
  field(DISV, "0")
  field(SDIS, "$(P)scan4.FAZE  NPP NMS")
  field(OUT, "$(P)scan4.EXSC  CA NMS")
}

record(bo, "$(P)AbortScanH") {
  field(DTYP, "Soft Channel")
  field(DISV, "0")
  field(SDIS, "$(P)scanH.FAZE  NPP NMS")
  field(OUT, "$(P)scanH.EXSC  CA NMS")
}

record(bo, "$(P)saveData_realTime1D") {
  field(DTYP, "Soft Channel")
  field(ZNAM, "No")
  field(ONAM, "Yes")
}

record(bo, "$(P)scanPause") {
  field(DTYP, "Soft Channel")
  field(FLNK, "$(P)scanResumeSEQ.VAL  PP MS")
  field(OUT, "$(P)scanPauseSEQ.VAL  PP MS")
  field(ZNAM, "GO")
  field(ONAM, "PAUSE")
}

record(calcout, "$(P)ScanDim") {
  field(CALC, "a?a+(b|c|d|e):f")
  field(INPA, "$(P)ScanDim1.VAL  CP MS")
  field(INPB, "$(P)ScanDimH1.VAL  CP MS")
  field(INPC, "$(P)ScanDimH2.VAL  CP MS")
  field(INPD, "$(P)ScanDimH3.VAL  CP MS")
  field(INPE, "$(P)ScanDimH4.VAL  CP MS")
  field(INPF, "$(P)scanH.BUSY  CP MS")
  field(INPG, "0")
  field(INPH, "0")
  field(OUT, "$(P)calcScanActive.A  PP MS")
}

record(calcout, "$(P)ScanDim1") {
  field(CALC, "d?4:c?3:b?2:a?1:0")
  field(INPA, "$(P)scan1.BUSY  CP MS")
  field(INPB, "$(P)scan2.BUSY  CP MS")
  field(INPC, "$(P)scan3.BUSY  CP MS")
  field(INPD, "$(P)scan4.BUSY  CP MS")
  field(INPE, "0")
  field(INPF, "0")
  field(INPG, "0")
  field(INPH, "0")
  field(OUT, "0")
}

record(calcout, "$(P)calcScanActive") {
  field(CALC, "a>0?1:0")
  field(OUT, "$(P)scanActive.VAL  PP MS")
}

record(fanout, "$(P)AbortScans") {
  field(LNK1, "$(P)AbortScanH.VAL  PP MS")
  field(LNK2, "$(P)AbortScan1.VAL  PP MS")
  field(LNK3, "$(P)AbortScan2.VAL  PP MS")
  field(LNK4, "$(P)AbortScan3.VAL  PP MS")
  field(LNK5, "$(P)AbortScan4.VAL  PP MS")
}

record(longout, "$(P)saveData_scanNumber") {
  field(DTYP, "Soft Channel")
  field(HOPR, "9999")
}

record(mbbi, "$(P)saveData_status") {
  field(DTYP, "Soft Channel")
  field(ZRST, "Inactive")
  field(ONST, "Active")
  field(TWST, "Mount err")
  field(THST, "I/O err")
}

record(seq, "$(P)scanPauseSEQ") {
  field(DISV, "0")
  field(SDIS, "$(P)scanPause.VAL  NPP MS")
  field(DOL1, "1")
  field(LNK1, "$(P)scanH.PAUS  NPP MS")
  field(DOL2, "1")
  field(LNK2, "$(P)scan1.PAUS  NPP MS")
  field(DOL3, "1")
  field(LNK3, "$(P)scan2.PAUS  NPP MS")
  field(DOL4, "1")
  field(LNK4, "$(P)scan3.PAUS  NPP MS")
  field(DOL5, "1")
  field(LNK5, "$(P)scan4.PAUS  NPP MS")
}

record(seq, "$(P)scanResumeSEQ") {
  field(SDIS, "$(P)scanPause.VAL  NPP MS")
  field(PREC, "3")
  field(DLY1, "1.")
  field(LNK1, "$(P)scanH.PAUS  NPP MS")
  field(LNK2, "$(P)scan1.PAUS  NPP MS")
  field(LNK3, "$(P)scan2.PAUS  NPP MS")
  field(LNK4, "$(P)scan3.PAUS  NPP MS")
  field(LNK5, "$(P)scan4.PAUS  NPP MS")
}

record(stringout, "$(P)saveData_comment1") {
  field(DTYP, "Soft Channel")
}

record(stringout, "$(P)saveData_comment2") {
  field(DTYP, "Soft Channel")
}

record(stringout, "$(P)saveData_fileName") {
  field(DTYP, "Soft Channel")
}

record(stringout, "$(P)saveData_fileSystem") {
  field(DTYP, "Soft Channel")
}

record(stringout, "$(P)saveData_message") {
  field(DTYP, "Soft Channel")
}

record(stringout, "$(P)saveData_subDir") {
  field(DTYP, "Soft Channel")
}

record(stringout, "$(P)saveData_baseName") {
  field(DTYP, "Soft Channel")
}

record(waveform, "$(P)saveData_config") {
  field(DTYP, "Soft Channel")
  field(NELM, "1000")
  field(FTVL, "CHAR")
}

record(waveform, "$(P)saveData_fullPathName") {
  field(DTYP, "Soft Channel")
  field(NELM, "100")
  field(FTVL, "CHAR")
}

record(sscan, "$(P)scan1") {
  field(DESC, "Scan 1")
  field(PINI, "YES")
  field(PRIO, "HIGH")
  field(MPTS, "$(MAXPTS1)")
  field(NPTS, "10")
  field(FPTS, "NO")
  field(FFO, "OVERRIDE")
###
  field(P1PV,"RPS1.VAL")
###
  field(P1HR, "1")
  field(P1PR, "5")
  field(P2HR, "1")
  field(P2PR, "5")
  field(P3HR, "1")
  field(P3PR, "5")
  field(P4HR, "1")
  field(P4PR, "5")
}

record(sscan, "$(P)scan2") {
  field(DESC, "Scan 2")
  field(PINI, "YES")
  field(PRIO, "HIGH")
  field(MPTS, "$(MAXPTS2)")
  field(NPTS, "10")
  field(FPTS, "NO")
  field(FFO, "OVERRIDE")
  field(T1PV, "$(P)scan1.EXSC")
###
  field(P1PV,"RPS1.VAL")
###
  field(P1HR, "1")
  field(P1PR, "5")
  field(P2HR, "1")
  field(P2PR, "5")
  field(P3HR, "1")
  field(P3PR, "5")
  field(P4HR, "1")
  field(P4PR, "5")
}

record(sscan, "$(P)scan3") {
  field(DESC, "Scan 3")
  field(PINI, "YES")
  field(PRIO, "HIGH")
  field(MPTS, "$(MAXPTS3)")
  field(NPTS, "10")
  field(FPTS, "NO")
  field(FFO, "OVERRIDE")
  field(T1PV, "$(P)scan2.EXSC")
###
  field(P1PV,"RPS1.VAL")
###
  field(P1HR, "1")
  field(P1PR, "5")
  field(P2HR, "1")
  field(P2PR, "5")
  field(P3HR, "1")
  field(P3PR, "5")
  field(P4HR, "1")
  field(P4PR, "5")
}

record(sscan, "$(P)scan4") {
  field(DESC, "Scan 4")
  field(PINI, "YES")
  field(PRIO, "HIGH")
  field(MPTS, "$(MAXPTS4)")
  field(NPTS, "10")
  field(FPTS, "NO")
  field(FFO, "OVERRIDE")
  field(T1PV, "$(P)scan3.EXSC")
###
  field(P1PV,"RPS1.VAL")
###
  field(P1HR, "1")
  field(P1PR, "5")
  field(P2HR, "1")
  field(P2PR, "5")
  field(P3HR, "1")
  field(P3PR, "5")
  field(P4HR, "1")
  field(P4PR, "5")
}

record(sscan, "$(P)scanH") {
  field(DESC, "Scan H")
  field(PINI, "YES")
  field(PRIO, "HIGH")
  field(MPTS, "$(MAXPTSH)")
  field(NPTS, "10")
  field(FPTS, "NO")
  field(FFO, "OVERRIDE")
  field(P1HR, "0")
  field(P1PR, "5")
  field(P2HR, "0")
  field(P2PR, "5")
  field(P3HR, "0")
  field(P3PR, "5")
  field(P4HR, "1")
  field(P4PR, "5")
  field(ACQT, "1D ARRAY")
}

record(scalcout, "$(P)ScanDimH1") {
  field(PINI, "YES")
  field(CALC, "(aa['.',-1]=='EXSC') && a")
  field(INPA, "$(P)scan1.T1CD  CP MS")
  field(INAA, "$(P)scan1.T1PV  CP MS")
  field(OUT, "0")
}

record(scalcout, "$(P)ScanDimH2") {
  field(PINI, "YES")
  field(CALC, "(aa['.',-1]=='EXSC') && a")
  field(INPA, "$(P)scan1.T2CD  CP MS")
  field(INAA, "$(P)scan1.T2PV  CP MS")
  field(OUT, "0")
}

record(scalcout, "$(P)ScanDimH3") {
  field(PINI, "YES")
  field(CALC, "(aa['.',-1]=='EXSC') && a")
  field(INPA, "$(P)scan1.T3CD  CP MS")
  field(INAA, "$(P)scan1.T3PV  CP MS")
  field(OUT, "0")
}

record(scalcout, "$(P)ScanDimH4") {
  field(PINI, "YES")
  field(CALC, "(aa['.',-1]=='EXSC') && a")
  field(INPA, "$(P)scan1.T4CD  CP MS")
  field(INAA, "$(P)scan1.T4PV  CP MS")
  field(OUT, "0")
}

record(longout, "$(P)saveData_maxAllowedRetries") {
  field(DTYP, "Soft Channel")
  field(HOPR, "9999")
  field(DOL, "10")
  field(DRVH, "1000000")
}

record(longout, "$(P)saveData_currRetries") {
  field(DTYP, "Soft Channel")
  field(HOPR, "9999")
}

record(longout, "$(P)saveData_retryWaitInSecs") {
  field(DTYP, "Soft Channel")
  field(HOPR, "9999")
  field(DOL, "15")
  field(DRVH, "1000000")
}

record(longout, "$(P)saveData_abandonedWrites") {
  field(DTYP, "Soft Channel")
  field(HOPR, "9999")
}

record(longout, "$(P)saveData_totalRetries") {
  field(DTYP, "Soft Channel")
  field(HOPR, "9999")
}






At 2015-04-21 01:36:58, "Goetze, Kurt A." <[email protected]<mailto:[email protected]>> wrote:
Hi Xing Li,

You will know what your macro values should be based on the line that loads the scaler database into your ioc, usually in a startup command file called “st.cmd”.  In our case st.cmd loads “vme.cmd”, which contains a line like this:

dbLoadRecords(“$(STD)/stdApp/Db/scaler.db”,”P=xyz:,S=scaler1,OUT=#C0 S0 @,DTYP=Joerger VSC8/16,FREQ=10000000”)

“P=xyz:” and “S=scaler1” are the macro values you care about in this case because they are used in the PV name, and that’s what you’re connecting to with medm.

Hope this helps,
Kurt

From: [email protected]<mailto:[email protected]> [mailto:[email protected]<mailto:[email protected]>] On Behalf Of l123173
Sent: Monday, April 20, 2015 10:18 AM
To: [email protected]<mailto:[email protected]>
Subject: macro value

Hi tech-talk,

computer :  linux redhat6.0     3.14.12.1     synApp5.6

I startup the medm with "medm -x -macro "P=xxx:,S=scaler974" /home/bsrf-non/Documents/synApps_5_6/support/all_adl/scaler.adl", but it could connect.
I think it is the macro value, because I copy it from others( I could not contact him )and it worked well before. Recently, I delete the synApp by careless, it did not work evenif I rebuilt the synApp.

I know nothing about how to set the macro value , could you teach me how to know  your macro value.
Thanks for you advice!

Thank you,
Xing Li







References:
Scan1 already defined? l123173

Navigate by Date:
Prev: Scan1 already defined? l123173
Next: RE: Scan1 already defined? 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  <20152016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Scan1 already defined? l123173
Next: RE: Scan1 already defined? 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  <20152016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 16 Dec 2015 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·