Add test startup scripts.
This commit is contained in:
9
iocsh/plc/plc_no_ec_fft_sin.plc
Normal file
9
iocsh/plc/plc_no_ec_fft_sin.plc
Normal file
@@ -0,0 +1,9 @@
|
||||
###############################################################################################
|
||||
# For help on syntax, variables and functions, please read the file: "plcSyntaxHelp.plc"
|
||||
#
|
||||
# PLC Functionality Demo:
|
||||
# No hardware related variables
|
||||
#
|
||||
|
||||
static.time:=ec_get_time()/1E9;
|
||||
static.sineval:=sin(2*pi*${FREQ=10}*static.time);
|
||||
83
iocsh/test_plugin_FFT.script
Normal file
83
iocsh/test_plugin_FFT.script
Normal file
@@ -0,0 +1,83 @@
|
||||
##############################################################################
|
||||
## Example: Configuraftion for running ecmc FFT plugin
|
||||
##############################################################################
|
||||
|
||||
## 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 master
|
||||
|
||||
##############################################################################
|
||||
###### Startup
|
||||
require ecmc "master"
|
||||
require stream "${stream_VER=2.8.10}"
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
#- define default PATH for scripts and database/templates
|
||||
epicsEnvSet("SCRIPTEXEC", "${SCRIPTEXEC=iocshLoad}")
|
||||
epicsEnvSet("ECMC_CONFIG_ROOT", "${ecmccfg_DIR}")
|
||||
epicsEnvSet("STREAM_PROTOCOL_PATH", "${STREAM_PROTOCOL_PATH=""}:${ECMC_CONFIG_ROOT}:${ecmccfg_DB}")
|
||||
|
||||
#-
|
||||
#-------------------------------------------------------------------------------
|
||||
#- define IOC Prefix
|
||||
epicsEnvSet("SM_PREFIX", "${IOC}:") # colon added since IOC is _not_ PREFIX
|
||||
#-
|
||||
#-------------------------------------------------------------------------------
|
||||
#- call init-script, defaults to 'initAll'
|
||||
ecmcFileExist("${ecmccfg_DIR}${INIT=initAll}.cmd",1)
|
||||
${SCRIPTEXEC} "${ecmccfg_DIR}${INIT=initAll}.cmd"
|
||||
#-
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
epicsEnvSet("ECMC_SAMPLE_RATE_MS" ,100) # Records update period
|
||||
epicsEnvSet("ECMC_EC_SAMPLE_RATE" ,100) # Realtime loop sample rate
|
||||
ecmcConfigOrDie "Cfg.SetSampleRate(${ECMC_EC_SAMPLE_RATE})"
|
||||
|
||||
##############################################################################
|
||||
## Configure hardware.
|
||||
# No EtherCAT hardware..
|
||||
|
||||
##############################################################################
|
||||
require ecmcPlugin_FFT master # te get access to db file..
|
||||
epicsEnvSet("FFT_NELM", 1024)
|
||||
|
||||
########################################################################s######
|
||||
## Load plugin: FFT
|
||||
epicsEnvSet(ECMC_PLUGIN_FILNAME,"/epics/base-7.0.3.1/require/3.1.2/siteMods/ecmcPlugin_FFT/master/lib/${EPICS_HOST_ARCH=linux-x86_64}/libecmcPlugin_FFT.so")
|
||||
epicsEnvSet(ECMC_PLUGIN_CONFIG,"SOURCE=plcs.plc0.static.sineval;DBG_PRINT=0;NFFT=1024;RATE=100;DC_REMOVE=1;APPLY_SCALE=1;MODE=CONT;")
|
||||
${SCRIPTEXEC} ${ecmccfg_DIR}loadPlugin.cmd, "PLUGIN_ID=0,FILE=${ECMC_PLUGIN_FILNAME},CONFIG='${ECMC_PLUGIN_CONFIG}', REPORT=1"
|
||||
# Note: INDEX is the index of FFT object in FFT plugin and not PLUGIN_ID. In this case the same
|
||||
dbLoadRecords(ecmcPluginFFT.template,"P=$(IOC):,PORT=MC_CPU1,INDEX=0, NELM=${FFT_NELM}")
|
||||
|
||||
########################################################################s######
|
||||
## Load plugin: FFT again (will create a new FFT object in the same namespace)
|
||||
epicsEnvSet(ECMC_PLUGIN_FILNAME,"/epics/base-7.0.3.1/require/3.1.2/siteMods/ecmcPlugin_FFT/master/lib/${EPICS_HOST_ARCH=linux-x86_64}/libecmcPlugin_FFT.so")
|
||||
epicsEnvSet(ECMC_PLUGIN_CONFIG,"SOURCE=ecmc.thread.latency.max;DBG_PRINT=0;NFFT=1024;")
|
||||
${SCRIPTEXEC} ${ecmccfg_DIR}loadPlugin.cmd, "PLUGIN_ID=1,FILE=${ECMC_PLUGIN_FILNAME},CONFIG='${ECMC_PLUGIN_CONFIG}', REPORT=1"
|
||||
# Note: INDEX is the index of FFT object in FFT plugin and not PLUGIN_ID. In this case the same
|
||||
dbLoadRecords(ecmcPluginFFT.template,"P=$(IOC):,PORT=MC_CPU1,INDEX=1, NELM=${FFT_NELM}")
|
||||
epicsEnvUnset(ECMC_PLUGIN_FILNAME)
|
||||
epicsEnvUnset(ECMC_PLUGIN_CONFIG)
|
||||
|
||||
##############################################################################
|
||||
## PLC 0: Generate a sine wave at 10Hz
|
||||
$(SCRIPTEXEC) $(ecmccfg_DIR)loadPLCFile.cmd, "PLC_ID=0, SAMPLE_RATE_MS=10,FILE=./plc/plc_no_ec_fft_sin.plc, PLC_MACROS='FREQ=5'")
|
||||
|
||||
##############################################################################
|
||||
############# Configure diagnostics:
|
||||
|
||||
# go active
|
||||
ecmcFileExist("${ecmccfg_DIR}generalDiagnostics.cmd",1)
|
||||
${SCRIPTEXEC} ${ecmccfg_DIR}generalDiagnostics.cmd ECMC_TSE=0
|
||||
ecmcFileExist("ecmcGeneral.db",1,1)
|
||||
dbLoadRecords("ecmcGeneral.db","P=${ECMC_PREFIX},PORT=${ECMC_ASYN_PORT},ADDR=0,TIMEOUT=1,T_SMP_MS=10,TSE=${ECMC_TSE=0}")
|
||||
# Nice commands for info ecmcReport <level> or asynReport <level>
|
||||
# ecmcReport 3
|
||||
|
||||
ecmcConfigOrDie "Cfg.SetAppMode(1)"
|
||||
|
||||
iocInit
|
||||
|
||||
Reference in New Issue
Block a user