Add test startup script
This commit is contained in:
92
iocsh/plc/can.plc
Normal file
92
iocsh/plc/can.plc
Normal file
@@ -0,0 +1,92 @@
|
||||
###############################################################################################
|
||||
# For help on syntax, variables and functions, please read the file: "plcSyntaxHelp.plc"
|
||||
#
|
||||
#
|
||||
|
||||
static.time:=ec_get_time();
|
||||
|
||||
# Test heartbeat signal
|
||||
# can0 0x701 [1] 05
|
||||
#can_add_write(1793,1,5,0,0,0,0,0,0,0);
|
||||
|
||||
# Test sync signal
|
||||
# can0 0x80 [0]
|
||||
|
||||
#can_add_write(128,0,0,0,0,0,0,0,0,0);
|
||||
|
||||
# Test LSS heartbeat "master" signal. This makes the led on pmu905 to go to "Normal Communication"
|
||||
# can0 0x7E5 [0]
|
||||
# can_add_write(2021,0,0,0,0,0,0,0,0,0);
|
||||
|
||||
#can_trigg_writes();
|
||||
if(can_last_writes_error()) {
|
||||
println('Error during writes : ', can_last_writes_error());
|
||||
};
|
||||
#println('Total time for one plcscan [ms]: ', (ec_get_time()-static.time)/1E6);
|
||||
|
||||
|
||||
return [];
|
||||
|
||||
var byte0:=0;
|
||||
## WRONG BIT ORDER OTHER WAY AROUND!
|
||||
## bit 0..2: ccs 1 for
|
||||
#
|
||||
#byte0:= ec_wrt_bits(byte0,1,0,2);
|
||||
## bit 3: reserved = 0
|
||||
#byte0:= ec_clr_bit(byte0,3);
|
||||
## bit 4..5: n = 0
|
||||
#byte0:= ec_wrt_bits(byte0,0,4,5);
|
||||
## bit 6: e = 0
|
||||
#byte0:= ec_clr_bit(byte0,6);
|
||||
## bit 7: e = 0
|
||||
#byte0:= ec_clr_bit(byte0,7);
|
||||
|
||||
# Read dictionary command 0x40 = 64
|
||||
byte0 := 65
|
||||
|
||||
# byte 1..2: SDO id: 0x2690 = 9792 dec
|
||||
var byte1:= ec_chk_bits(9792,0,7);
|
||||
var byte2:= ec_chk_bits(9792,8,15);
|
||||
|
||||
# byte 3: SDO subindex = 0x0
|
||||
var byte3:=0;
|
||||
|
||||
# byte 4:7: data length = 56 bytes
|
||||
#var dataLen:=56;
|
||||
#var byte4:= ec_chk_bits(dataLen,0,7);
|
||||
#var byte5:= ec_chk_bits(dataLen,8,15);
|
||||
#var byte6:= ec_chk_bits(dataLen,16,23);
|
||||
#var byte7:= ec_chk_bits(dataLen,24,31);
|
||||
#can_add_write(1539,8,byte0,byte1,byte2,byte3,byte4,byte5,byte6,byte7);
|
||||
|
||||
#can_add_write(1539,8,byte0,byte1,byte2,byte3,0,0,0,0);
|
||||
can_add_write(1539,8,64,byte1,byte2,byte3,0,0,0,0);
|
||||
|
||||
# Acknowledge 1 toggle 0
|
||||
can_add_write(1539,8,97,byte1,byte2,byte3,0,0,0,0);
|
||||
|
||||
# Acknowledge 2 toggle 1
|
||||
can_add_write(1539,8,113,byte1,byte2,byte3,0,0,0,0);
|
||||
|
||||
# Acknowledge 3 toggle 0
|
||||
can_add_write(1539,8,97,byte1,byte2,byte3,0,0,0,0);
|
||||
|
||||
# Acknowledge 4 toggle 1
|
||||
can_add_write(1539,8,113,byte1,byte2,byte3,0,0,0,0);
|
||||
|
||||
# Acknowledge 5 toggle 0
|
||||
can_add_write(1539,8,97,byte1,byte2,byte3,0,0,0,0);
|
||||
|
||||
# Acknowledge 6 toggle 1
|
||||
can_add_write(1539,8,113,byte1,byte2,byte3,0,0,0,0);
|
||||
|
||||
# Acknowledge 7 toggle 0 LAST
|
||||
can_add_write(1539,8,97,byte1,byte2,byte3,0,0,0,0);
|
||||
|
||||
# Acknowledge 6 toggle 1 Test one to much.. just resulted in one more row of unique data?!
|
||||
# can_add_write(1539,8,113,byte1,byte2,byte3,0,0,0,0);
|
||||
|
||||
println('Total time for one plcscan [ms]: ', (ec_get_time()-static.time)/1E6);
|
||||
return [];
|
||||
|
||||
println('NEVER HERE');
|
||||
14
iocsh/pvs.log
Normal file
14
iocsh/pvs.log
Normal file
@@ -0,0 +1,14 @@
|
||||
IOC_TEST:PLC-0-enable
|
||||
REQMOD:mcag-trgt-muts--15408:MODULES
|
||||
REQMOD:mcag-trgt-muts--15408:VERSIONS
|
||||
REQMOD:mcag-trgt-muts--15408:MOD_VER
|
||||
REQMOD:mcag-trgt-muts--15408:exit
|
||||
REQMOD:mcag-trgt-muts--15408:BaseVersion
|
||||
REQMOD:mcag-trgt-muts--15408:require_VER
|
||||
REQMOD:mcag-trgt-muts--15408:ecmccfg_VER
|
||||
REQMOD:mcag-trgt-muts--15408:asyn_VER
|
||||
REQMOD:mcag-trgt-muts--15408:exprtk_VER
|
||||
REQMOD:mcag-trgt-muts--15408:motor_VER
|
||||
REQMOD:mcag-trgt-muts--15408:ecmc_VER
|
||||
IOC_TEST:PLC-0-scantime
|
||||
IOC_TEST:PLC-0-error
|
||||
41
iocsh/test.script
Normal file
41
iocsh/test.script
Normal file
@@ -0,0 +1,41 @@
|
||||
##############################################################################
|
||||
## 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_advanced 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")
|
||||
|
||||
##############################################################################
|
||||
############# Go to realtime:
|
||||
|
||||
ecmcConfigOrDie "Cfg.SetAppMode(1)"
|
||||
iocInit
|
||||
dbl > pvs.log
|
||||
Reference in New Issue
Block a user