############################################################################## ## Example: Demo of ecmc SocketCAN plugin ## https://github.com/anderssandstrom/e3-ecmc_plugin_socketcan ## ## The plugin exposes: ## ## 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 7.0.1 # run module startup.cmd (only needed at ESS PSI auto call at require) $(ECMCCFG_INIT)$(SCRIPTEXEC) ${ecmccfg_DIR}startup.cmd, "IOC=$(IOC),ECMC_VER=7.0.1,MASTER_ID=-1" ############################################################################## ## Configure hardware: # No EtherCAT hardware (in this example).. ############################################################################## ## Load plugin: epicsEnvSet("PLUGIN_VER" ,"develop") require ecmc_plugin_grbl $(PLUGIN_VER) epicsEnvSet(ECMC_PLUGIN_FILNAME,"/home/pi/epics/base-7.0.5/require/${E3_REQUIRE_VERSION}/siteMods/ecmc_plugin_grbl/$(PLUGIN_VER)/lib/${EPICS_HOST_ARCH=linux-x86_64}/libecmc_plugin_grbl.so") epicsEnvSet(ECMC_PLUGIN_CONFIG,"DBG_PRINT=1;X_AXIS=1;") # Only one option implemented in this plugin ${SCRIPTEXEC} ${ecmccfg_DIR}loadPlugin.cmd, "PLUGIN_ID=0,FILE=${ECMC_PLUGIN_FILNAME},CONFIG='${ECMC_PLUGIN_CONFIG}', REPORT=1" epicsEnvUnset(ECMC_PLUGIN_FILNAME) epicsEnvUnset(ECMC_PLUGIN_CONFIG) ecmcGrblAddCommand("G0X10Y100"); ecmcGrblAddCommand("$"); ecmcGrblAddCommand("G0X10Y100"); ecmcGrblAddCommand("$G"); ecmcGrblAddCommand("G4P4"); ecmcGrblAddCommand("G1X20Y200F20"); ecmcGrblAddCommand("G4P4"); ecmcGrblAddCommand("G2X40Y220R20"); ecmcGrblAddCommand("$"); ############################################################################## ## PLC 0 # $(SCRIPTEXEC) $(ecmccfg_DIR)loadPLCFile.cmd, "PLC_ID=0, SAMPLE_RATE_MS=1000,FILE=./plc/can.plc") $(SCRIPTEXEC) ($(ecmccfg_DIR)setAppMode.cmd) iocInit()