WIP
This commit is contained in:
@@ -27,3 +27,4 @@ SOURCES += $(SRC_DIR)/ecmcDAQDataChannel.cpp
|
||||
SOURCES += $(SRC_DIR)/ecmcDAQWrap.cpp
|
||||
|
||||
TEMPLATES += $(wildcard $(DB_DIR)/*.template)
|
||||
SCRIPTS += ./startup.cmd
|
||||
67
iocsh/test.script
Normal file
67
iocsh/test.script
Normal file
@@ -0,0 +1,67 @@
|
||||
##############################################################################
|
||||
## test config for ecmc_plugin_daq
|
||||
##
|
||||
## In this config the interface to safety system is liked to simulated ethercat entries:
|
||||
## * To allow motion:
|
||||
## caput c6025a:m0s013-Zero 3
|
||||
## * To simulate interlock from safety system:
|
||||
## caput c6025a:m0s013-Zero 0
|
||||
##
|
||||
## Monitor status with:
|
||||
## camon c6025a:SS1-first-Err c6025a:SS1-first-RmpDwnCmdAct c6025a:SS1-first-AxsStndStllAct
|
||||
##
|
||||
|
||||
epicsEnvSet(IOC,c6025a)
|
||||
require ecmccfg "ENG_MODE=1"
|
||||
|
||||
##############################################################################
|
||||
## Load components lib
|
||||
#
|
||||
require ecmccomp
|
||||
|
||||
##############################################################################
|
||||
## Configure hardware
|
||||
|
||||
epicsEnvSet("DRV_SLAVE", "13")
|
||||
${SCRIPTEXEC} ${ecmccfg_DIR}addSlave.cmd, "SLAVE_ID=$(DRV_SLAVE), HW_DESC=EL7041-0052"
|
||||
${SCRIPTEXEC} ${ecmccomp_DIR}applyComponent.cmd "COMP=Motor-Generic-2Phase-Stepper,MACROS='I_STDBY_MA=200,I_MAX_MA=1000,R_COIL_MOHM=1700'"
|
||||
|
||||
epicsEnvSet("ENC_SLAVE", "14")
|
||||
${SCRIPTEXEC} ${ecmccfg_DIR}addSlave.cmd, "SLAVE_ID=$(ENC_SLAVE), HW_DESC=EL5042"
|
||||
${SCRIPTEXEC} ${ecmccomp_DIR}applyComponent.cmd "COMP=Encoder-RLS-LA11-24bit-BISS-C"
|
||||
|
||||
#Apply hardware configuration
|
||||
ecmcConfigOrDie "Cfg.EcApplyConfig(1)"
|
||||
|
||||
##############################################################################
|
||||
## AXIS 1
|
||||
#
|
||||
epicsEnvSet("DEV", "$(IOC)")
|
||||
epicsEnvSet("PLC_PATH", "/ioc/c6025a5a/ecmccfg/examples/test/ecmccomp/plc/")
|
||||
${SCRIPTEXEC} ${ECMC_CONFIG_ROOT}loadYamlAxis.cmd, "FILE=./cfg/axis.yaml,LIMIT=1000,TYPE=0"
|
||||
|
||||
##############################################################################
|
||||
## Load daq plugin
|
||||
#
|
||||
require ecmc_plugin_daq "PLUGIN_ID=0"
|
||||
|
||||
ecmcAddDAQArray("test",PLUGIN.DAQ.test)
|
||||
ecmcAddDAQChannel(123)
|
||||
ecmcAddDAQItem(ec0.s13.positionActual01,0)
|
||||
ecmcAddDAQItem(ax1.enc.posact,0)
|
||||
|
||||
|
||||
##############################################################################
|
||||
## Configure diagnostics:
|
||||
#
|
||||
ecmcConfigOrDie "Cfg.EcSetDiagnostics(1)"
|
||||
ecmcConfigOrDie "Cfg.EcEnablePrintouts(0)"
|
||||
ecmcConfigOrDie "Cfg.EcSetDomainFailedCyclesLimit(100)"
|
||||
ecmcConfigOrDie "Cfg.SetDiagAxisIndex(1)"
|
||||
ecmcConfigOrDie "Cfg.SetDiagAxisFreq(2)"
|
||||
ecmcConfigOrDie "Cfg.SetDiagAxisEnable(0)"
|
||||
|
||||
##############################################################################
|
||||
## go active
|
||||
#
|
||||
$(SCRIPTEXEC) ($(ecmccfg_DIR)setAppMode.cmd)
|
||||
@@ -1,63 +0,0 @@
|
||||
##############################################################################
|
||||
# Test to make a triggered scope
|
||||
|
||||
##############################################################################
|
||||
## Initiation:
|
||||
epicsEnvSet("IOC" ,"$(IOC="IOC_TEST")")
|
||||
epicsEnvSet("ECMCCFG_INIT" ,"") #Only run startup once (auto at PSI, need call at ESS), variable set to "#" in startup.cmd
|
||||
epicsEnvSet("SCRIPTEXEC" ,"$(SCRIPTEXEC="iocshLoad")")
|
||||
|
||||
require ecmccfg develop
|
||||
|
||||
# run module startup.cmd (only needed at ESS PSI auto call at require)
|
||||
$(ECMCCFG_INIT)$(SCRIPTEXEC) ${ecmccfg_DIR}startup.cmd, "IOC=$(IOC),ECMC_VER=develop,stream_VER=2.8.10, EC_RATE=1000"
|
||||
|
||||
##############################################################################
|
||||
## Config hardware:
|
||||
|
||||
## Sampel rate in milliseconds
|
||||
epicsEnvSet("ECMC_SAMPLE_RATE_MS", "${RATE="1"}")
|
||||
|
||||
# Choose sample rate (2, 10 or 100)
|
||||
epicsEnvSet("ECMC_OVER_SMP", "${OVERSAMP="100"}")
|
||||
|
||||
# EL1252: trigger on pos edge timestamp
|
||||
epicsEnvSet("SLAVE_NUM_TRIGG", "6")
|
||||
${SCRIPTEXEC} ${ecmccfg_DIR}addSlave.cmd, "SLAVE_ID=$(SLAVE_NUM_TRIGG), HW_DESC=EL1252"
|
||||
|
||||
# EL3702: Note: Set NELM to define oversampling rate
|
||||
epicsEnvSet("SLAVE_NUM_AI", "11")
|
||||
${SCRIPTEXEC} ${ecmccfg_DIR}addSlave.cmd, "SLAVE_ID=$(SLAVE_NUM_AI), HW_DESC=EL3702, NELM=${ECMC_OVER_SMP}"
|
||||
|
||||
#ecmcConfigOrDie "Cfg.EcSelectReferenceDC(0,$(SLAVE_NUM_TRIGG))"
|
||||
|
||||
#Apply hardware configuration
|
||||
ecmcConfigOrDie "Cfg.EcApplyConfig(1)"
|
||||
|
||||
########################################################################s######
|
||||
## Load plugin: Scope
|
||||
|
||||
require ecmc_plugin_scope master # to get access to db file..
|
||||
|
||||
epicsEnvSet(RESULT_NELM, 500)
|
||||
epicsEnvSet(ECMC_PLUGIN_FILNAME,"${HOME}/epics/base-7.0.4/require/3.3.0/siteMods/ecmc_plugin_scope/master/lib/${EPICS_HOST_ARCH=linux-x86_64}/libecmcPlugin_Scope.so")
|
||||
epicsEnvSet(ECMC_PLUGIN_CONFIG,"SOURCE=ec0.s${SLAVE_NUM_AI}.mm.CH1_ARRAY;DBG_PRINT=0;TRIGG=ec0.s${SLAVE_NUM_TRIGG}.CH1_LATCH_POS;SOURCE_NEXTTIME=ec0.s${SLAVE_NUM_AI}.NEXT_TIME;RESULT_ELEMENTS=${RESULT_NELM};")
|
||||
${SCRIPTEXEC} ${ecmccfg_DIR}loadPlugin.cmd, "PLUGIN_ID=1,FILE=${ECMC_PLUGIN_FILNAME},CONFIG='${ECMC_PLUGIN_CONFIG}', REPORT=1"
|
||||
epicsEnvUnset(ECMC_PLUGIN_FILNAME)
|
||||
epicsEnvUnset(ECMC_PLUGIN_CONFIG)
|
||||
|
||||
dbLoadRecords("ecmcPluginScope.template","P=$(IOC):,PORT=${ECMC_ASYN_PORT},INDEX=0,RESULT_NELM=${RESULT_NELM},RESULT_DTYP=asynInt16ArrayIn,RESULT_FTVL=SHORT")
|
||||
epicsEnvUnset(RESULT_NELM, 1024)
|
||||
|
||||
##############################################################################
|
||||
############# Configure diagnostics:
|
||||
|
||||
ecmcConfigOrDie "Cfg.EcSetDiagnostics(1)"
|
||||
ecmcConfigOrDie "Cfg.EcEnablePrintouts(0)"
|
||||
ecmcConfigOrDie "Cfg.EcSetDomainFailedCyclesLimit(100)"
|
||||
|
||||
# go active
|
||||
$(SCRIPTEXEC) ($(ecmccfg_DIR)setAppMode.cmd)
|
||||
|
||||
iocInit()
|
||||
dbl > pvs.log
|
||||
20
startup.cmd
Normal file
20
startup.cmd
Normal file
@@ -0,0 +1,20 @@
|
||||
|
||||
#==============================================================================
|
||||
# startup.cmd
|
||||
#-------------- Information:
|
||||
#- Description: ecmc_plugin_daq startup.cmd
|
||||
#-
|
||||
#- by Anders Sandström, Paul Scherrer Institute, 2023
|
||||
#- email: anders.sandstroem@psi.ch
|
||||
#-
|
||||
#-###############################################################################
|
||||
#-
|
||||
#- Arguments
|
||||
#- PLUGIN_ID : Id of plugin to load (mandatory)
|
||||
#-
|
||||
#################################################################################
|
||||
|
||||
#- Load plugin:
|
||||
epicsEnvSet(ECMC_PLUGIN_FILNAME,"$(ecmc_plugin_daq_DIR)/lib/${EPICS_HOST_ARCH=linux-x86_64}/libecmc_plugin_daq.so")
|
||||
epicsEnvSet(ECMC_PLUGIN_CONFIG,"DBG_PRINT=1;")
|
||||
ecmcConfigOrDie "Cfg.LoadPlugin(${PLUGIN_ID}${ECMC_PLUGIN_FILNAME},${ECMC_PLUGIN_CONFIG=""})"
|
||||
Reference in New Issue
Block a user