diff --git a/iocsh/pmu905.script b/iocsh/pmu905.script new file mode 100644 index 0000000..c7de6b2 --- /dev/null +++ b/iocsh/pmu905.script @@ -0,0 +1,87 @@ +############################################################################## +## 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 6.3.2 + +# run module startup.cmd (only needed at ESS PSI auto call at require) +$(ECMCCFG_INIT)$(SCRIPTEXEC) ${ecmccfg_DIR}startup.cmd, "IOC=$(IOC),ECMC_VER=6.3.2,MASTER_ID=-1" + +############################################################################## +## Configure hardware: +# No EtherCAT hardware (in this example).. + +############################################################################## +## Load plugin: +require ecmc_plugin_socketcan master # do not require then loaded twice.. + +epicsEnvSet(ECMC_PLUGIN_FILNAME,"/home/dev/epics/base-7.0.4/require/${E3_REQUIRE_VERSION}/siteMods/ecmc_plugin_socketcan/master/lib/${EPICS_HOST_ARCH=linux-x86_64}/libecmc_plugin_socketcan.so") +epicsEnvSet(ECMC_PLUGIN_CONFIG,"IF=can0;DBG_PRINT=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) + +############################################################################## +## PLC 0 +$(SCRIPTEXEC) $(ecmccfg_DIR)loadPLCFile.cmd, "PLC_ID=0, SAMPLE_RATE_MS=1000,FILE=./plc/can.plc") + +############################################################################## +############# Configure CAN plugin: +# Commands: +# ecmcCANOpenAddMaster -h +# Use ecmcCANOpenAddMaster(, ,....) +# : Name of master device. +# : CANOpen node id of master. +# : Sample time for LSS. +# : Sample time for SYNC. +# : Sample time for Heartbeat. +# +ecmcCANOpenAddMaster("ecmcCANOpenMaster",0,1000,1000,1000) + +# ecmcCANOpenAddDevice -h +# Use ecmcCANOpenAddDevice(, ) +# : Name of device. +# : CANOpen node id of device. +# +ecmcCANOpenAddDevice("pmu905",3) + +# ecmcCANOpenAddPDO -h +# Use "ecmcCANOpenAddPDO(, +# : Name of master device. +# : CANOpen node id of device/master. +# : CANOpen cob id of PDO. +# : Direction 1=write and 2=read. +# : Size of PDO (max 8 bytes). +# : Readtimeout in ms. +# : Cycle time for write (if <= 0 then only write on change). +ecmcCANOpenAddPDO("status",3,2,8,10000,0) # READ + +# ecmcCANOpenAddSDO -h +# Use ecmcCANOpenAddSDO(, ,.....) +# : Name of master device. +# : CANOpen node id of device/master. +# : CANOpen cob id of Tx of slave SDO. +# : CANOpen cob id of Rx of slave SDO. +# : Direction 1=write and 2=read. +# : OD index of SDO. +# : OD sub index of SDO. +# : OS Size. +# : Readtimeout in ms. +# +ecmcCANOpenAddSDO("analogValues",3,0x583,0x603,2,0x2640,0x0,56,7000) # READ +ecmcCANOpenAddSDO("basicConfig",3,0x583,0x603,1,0x2690,0x1,7,0) # WRITE + +############################################################################## +############# Go to realtime: + +ecmcConfigOrDie "Cfg.SetAppMode(1)" +iocInit +dbl > pvs.log diff --git a/iocsh/pvs.log b/iocsh/pvs.log index bdd7c9f..679ff3b 100644 --- a/iocsh/pvs.log +++ b/iocsh/pvs.log @@ -1,15 +1,15 @@ IOC_TEST:PLC-0-enable -REQMOD:mcag-trgt-muts--914:MODULES -REQMOD:mcag-trgt-muts--914:VERSIONS -REQMOD:mcag-trgt-muts--914:MOD_VER -REQMOD:mcag-trgt-muts--914:exit -REQMOD:mcag-trgt-muts--914:BaseVersion -REQMOD:mcag-trgt-muts--914:require_VER -REQMOD:mcag-trgt-muts--914:ecmccfg_VER -REQMOD:mcag-trgt-muts--914:asyn_VER -REQMOD:mcag-trgt-muts--914:exprtk_VER -REQMOD:mcag-trgt-muts--914:motor_VER -REQMOD:mcag-trgt-muts--914:ecmc_VER -REQMOD:mcag-trgt-muts--914:ecmc_plugin_socketcan_VER +REQMOD:mcag-trgt-muts--4869:MODULES +REQMOD:mcag-trgt-muts--4869:VERSIONS +REQMOD:mcag-trgt-muts--4869:MOD_VER +REQMOD:mcag-trgt-muts--4869:exit +REQMOD:mcag-trgt-muts--4869:BaseVersion +REQMOD:mcag-trgt-muts--4869:require_VER +REQMOD:mcag-trgt-muts--4869:ecmccfg_VER +REQMOD:mcag-trgt-muts--4869:asyn_VER +REQMOD:mcag-trgt-muts--4869:exprtk_VER +REQMOD:mcag-trgt-muts--4869:motor_VER +REQMOD:mcag-trgt-muts--4869:ecmc_VER +REQMOD:mcag-trgt-muts--4869:ecmc_plugin_socketcan_VER IOC_TEST:PLC-0-scantime IOC_TEST:PLC-0-error