From f3b8a2a0592765ff2b838acb7713ec010d5171d9 Mon Sep 17 00:00:00 2001 From: Anders Sandstrom Date: Thu, 18 Mar 2021 10:23:41 +0100 Subject: [PATCH] Remove pmu905 related files (moved to pmu905 repo) --- .../Db/pmu905AnalogValues.template | 249 ------------------ .../Db/pmu905BasicConfig.old.template | 126 --------- .../Db/pmu905BasicConfig.template | 150 ----------- iocsh/pmu905.script | 95 ------- 4 files changed, 620 deletions(-) delete mode 100644 ecmc_plugin_socketcan/ecmc_plugin_socketcanApp/Db/pmu905AnalogValues.template delete mode 100644 ecmc_plugin_socketcan/ecmc_plugin_socketcanApp/Db/pmu905BasicConfig.old.template delete mode 100644 ecmc_plugin_socketcan/ecmc_plugin_socketcanApp/Db/pmu905BasicConfig.template delete mode 100644 iocsh/pmu905.script diff --git a/ecmc_plugin_socketcan/ecmc_plugin_socketcanApp/Db/pmu905AnalogValues.template b/ecmc_plugin_socketcan/ecmc_plugin_socketcanApp/Db/pmu905AnalogValues.template deleted file mode 100644 index 63a3b8f..0000000 --- a/ecmc_plugin_socketcan/ecmc_plugin_socketcanApp/Db/pmu905AnalogValues.template +++ /dev/null @@ -1,249 +0,0 @@ -# Not sure if this should be scaled as voltage or power. The manual states mV as unit but also descibes scalings of power -# 0..7500mV -record(ai,"$(P)CAN${CH_ID}-PWR_A") { - field(DESC, "Analog Values: PWR_A") - field(PINI, "1") - field(INP, "$(P)CAN03-SDO01-Array.[0] CP") - field(EGU, "mV") -} - -# Not sure if this should be scaled as voltage or power. The manual states mV as unit. -# 0..7500mV -record(ai,"$(P)CAN${CH_ID}-PWR_B") { - field(DESC, "Analog Values: PWR_B") - field(PINI, "1") - field(INP, "$(P)CAN03-SDO01-Array.[1] CP") - field(EGU, "mV") -} - -# Not sure if this should be scaled as voltage or power. The manual states mV as unit. -# 0..7500mV -record(ai,"$(P)CAN${CH_ID}-PWR_OUT") { - field(DESC, "Analog Values: PWR_OUT") - field(PINI, "1") - field(INP, "$(P)CAN03-SDO01-Array.[2] CP") - field(EGU, "mV") -} - -# Scaling? -# 0..7500mV -record(ai,"$(P)CAN${CH_ID}-REFL_OUT") { - field(DESC, "Analog Values: REFL_OUT") - field(PINI, "1") - field(INP, "$(P)CAN03-SDO01-Array.[3] CP") - field(EGU, "mV") -} - -# Scaling? -# 0..12500mV -record(ai,"$(P)CAN${CH_ID}-V_REG") { - field(DESC, "Analog Values: V_REG") - field(PINI, "1") - field(INP, "$(P)CAN03-SDO01-Array.[4] CP") - field(EGU, "mV") -} - -# 0..150 degC. NOTE: LINR=SLOPE will not work for soft devices.. -record(calc, "$(P)CAN${CH_ID}-V_TEMP_") { - field(DESC, "Analog Values: V_TEMP") - field(PINI, "1") - field(CALC, "A*0.1") - field(INPA, "$(P)CAN03-SDO01-Array.[5] CP") - field(FLNK, "$(P)CAN${CH_ID}-V_TEMP.PROC") -} - -record(ai,"$(P)CAN${CH_ID}-V_TEMP") { - field(DESC, "Analog Values: V_TEMP") - field(PINI, "1") - field(INP, "$(P)CAN${CH_ID}-V_TEMP_.VAL") - field(LINR, "SLOPE") - field(ESLO, "0.1") - field(EOFF, "0") - field(EGU, "degC") -} - -# Scaling? -# 0..33.3A -record(ai,"$(P)CAN${CH_ID}-I_DRV") { - field(DESC, "Analog Values: I_DRV") - field(PINI, "1") - field(INP, "$(P)CAN03-SDO01-Array.[6] CP") - field(EGU, "A") -} - -# Scaling? -# 0..5000mA -record(ai,"$(P)CAN${CH_ID}-I_PRE") { - field(DESC, "Analog Values: I_PRE") - field(PINI, "1") - field(INP, "$(P)CAN03-SDO01-Array.[7] CP") - field(EGU, "mA") -} - -# Scaling? -# 0..33.3A -record(ai,"$(P)CAN${CH_ID}-I_1A") { - field(DESC, "Analog Values: I_1A") - field(PINI, "1") - field(INP, "$(P)CAN03-SDO01-Array.[8] CP") - field(EGU, "A") -} - -# Scaling? -# 0..33.3A -record(ai,"$(P)CAN${CH_ID}-I_2A") { - field(DESC, "Analog Values: I_2A") - field(PINI, "1") - field(INP, "$(P)CAN03-SDO01-Array.[9] CP") - field(EGU, "A") -} - - -# Element 10 of analog values array is reserved. - - -# Scaling? -# 0..7500mV -record(ai,"$(P)CAN${CH_ID}-V_REFL_SAVE") { - field(DESC, "Analog Values: V_REFL_SAVE") - field(PINI, "1") - field(INP, "$(P)CAN03-SDO01-Array.[11] CP") - field(EGU, "mV") -} - - -# Element 12 of analog values array is reserved. - -# Scaling? -# 0..57.5V -record(ai,"$(P)CAN${CH_ID}-V_PLUSMON") { - field(DESC, "Analog Values: V_PLUSMON") - field(PINI, "1") - field(INP, "$(P)CAN03-SDO01-Array.[13] CP") - field(EGU, "V") -} - -# Scaling? -# 0..223.492A -record(ai,"$(P)CAN${CH_ID}-V_I_DC") { - field(DESC, "Analog Values: V_I_DC") - field(PINI, "1") - field(INP, "$(P)CAN03-SDO01-Array.[14] CP") - field(EGU, "A") -} - - -# Element 15 of analog values array is reserved. - - -# Scaling? -# 0..33.3A -record(ai,"$(P)CAN${CH_ID}-I_1B") { - field(DESC, "Analog Values: I_1B") - field(PINI, "1") - field(INP, "$(P)CAN03-SDO01-Array.[16] CP") - field(EGU, "A") -} - -# Scaling? -# 0..33.3A -record(ai,"$(P)CAN${CH_ID}-I_2B") { - field(DESC, "Analog Values: I_2B") - field(PINI, "1") - field(INP, "$(P)CAN03-SDO01-Array.[17] CP") - field(EGU, "A") -} - - -# Element 18 of analog values array is reserved. - - -# Scaling? -# 0..15000mv -record(ai,"$(P)CAN${CH_ID}-V_12V_MON") { - field(DESC, "Analog Values: V_12V_MON") - field(PINI, "1") - field(INP, "$(P)CAN03-SDO01-Array.[19] CP") - field(EGU, "mV") -} - -# Scaling? -# 0..5000mv -record(ai,"$(P)CAN${CH_ID}-VREF_PWR_OPV") { - field(DESC, "Analog Values: VREF_PWR_OPV") - field(PINI, "1") - field(INP, "$(P)CAN03-SDO01-Array.[20] CP") - field(EGU, "mV") -} - -# Scaling? -# 0..36.75V -record(ai,"$(P)CAN${CH_ID}-V_AUX_IN") { - field(DESC, "Analog Values: V_AUX_IN") - field(PINI, "1") - field(INP, "$(P)CAN03-SDO01-Array.[21] CP") - field(EGU, "V") -} - -# Scaling? -# 0..7500mv -record(ai,"$(P)CAN${CH_ID}-V_5V_ACB") { - field(DESC, "Analog Values: V_5V_ACB") - field(PINI, "1") - field(INP, "$(P)CAN03-SDO01-Array.[22] CP") - field(EGU, "mV") -} - -# Scaling? -# 0..5000mv -record(ai,"$(P)CAN${CH_ID}-V_3V5") { - field(DESC, "Analog Values: V_3V5") - field(PINI, "1") - field(INP, "$(P)CAN03-SDO01-Array.[23] CP") - field(EGU, "mV") -} - - -# Scaling? -# -30..120 degC -record(calc, "$(P)CAN${CH_ID}-AIR_INLET_") { - field(DESC, "Analog Values: AIR_INLET_") - field(PINI, "1") - field(CALC, "A*0.1") - field(INPA, "$(P)CAN03-SDO01-Array.[24] CP") - field(FLNK, "$(P)CAN${CH_ID}-AIR_INLET.PROC") -} - -record(ai,"$(P)CAN${CH_ID}-AIR_INLET") { - field(DESC, "Analog Values: V_TEMP") - field(PINI, "1") - field(INP, "$(P)CAN${CH_ID}-AIR_INLET_.VAL") - field(LINR, "SLOPE") - field(ESLO, "0.1") - field(EOFF, "0") - field(EGU, "degC") -} - -# Scaling? -# -30..120 degC -record(calc, "$(P)CAN${CH_ID}-AIR_OUTLET_") { - field(DESC, "Analog Values: AIR_OUTLET_") - field(PINI, "1") - field(CALC, "A*0.1") - field(INPA, "$(P)CAN03-SDO01-Array.[25] CP") - field(FLNK, "$(P)CAN${CH_ID}-AIR_OUTLET.PROC") -} - -record(ai,"$(P)CAN${CH_ID}-AIR_OUTLET") { - field(DESC, "Analog Values: V_TEMP") - field(PINI, "1") - field(INP, "$(P)CAN${CH_ID}-AIR_OUTLET_.VAL") - field(LINR, "SLOPE") - field(ESLO, "0.1") - field(EOFF, "0") - field(EGU, "degC") -} - -# Element 26 of analog values array is reserved. -# Element 27 of analog values array is reserved. - diff --git a/ecmc_plugin_socketcan/ecmc_plugin_socketcanApp/Db/pmu905BasicConfig.old.template b/ecmc_plugin_socketcan/ecmc_plugin_socketcanApp/Db/pmu905BasicConfig.old.template deleted file mode 100644 index d158290..0000000 --- a/ecmc_plugin_socketcan/ecmc_plugin_socketcanApp/Db/pmu905BasicConfig.old.template +++ /dev/null @@ -1,126 +0,0 @@ -########################################################################### -############## Byte 0 -record(bo,"$(P)CAN${CH_ID}-PowerOnCmd") { - field(DESC, "Power on") - field(VAL, "0") - field(ONAM, "On") - field(ZNAM, "Off") - field(OUT, "$(P)CAN${CH_ID}-BasicConfigB0_.B0") - field(FLNK, "$(P)CAN${CH_ID}-BasicConfigB0_.PROC") -} - -# Probably not valid for pmu905 (see note bottom in table) -#record(bo,"$(P)CAN${CH_ID}-PEAK_AV") { -# field(DESC, "PEAK/AV") -# field(VAL, "0") -# field(ONAM, "PEAK") -# field(ZNAM, "AV") -# field(OUT, "$(P)CAN${CH_ID}-BasicConfigB0_.B1") -# field(FLNK, "$(P)CAN${CH_ID}-BasicConfigB0_.PROC") -#} - -record(mbboDirect,"$(P)CAN${CH_ID}-BasicConfigB0_"){ - info(asyn:READBACK,"1") - field(DESC, "Basic Config B0") - field(PINI, "1") - field(VAL, "0") - field(OUT, "$(P)CAN${CH_ID}-SDO02-BasicConfig.[0] CA") - field(FLNK, "$(P)CAN${CH_ID}-SDO02-BasicConfig.PROC") -} - -########################################################################### -############## Byte 1..2 Vref 0..5000 - -record(ao,"$(P)CAN${CH_ID}-VrefPwrCmd") { - field(DESC, "Vref 0..5000") - field(VAL, "0") - field(OUT, "") - field(EGU, "mV") - field(PREC, "0") - field(FLNK, "$(P)CAN${CH_ID}-VrefPwrCmdCalcB1_.PROC") -} - -# first byte -record(calc, "$(P)CAN${CH_ID}-VrefPwrCmdCalcB1_") { - field(DESC, "Calc byte 1") - field(CALC, "A & 0xFF") - field(INPA, "$(P)CAN${CH_ID}-VrefPwrCmd.VAL") - field(FLNK, "$(P)CAN${CH_ID}-BasicConfigB1_.PROC") -} - -record(ao,"$(P)CAN${CH_ID}-BasicConfigB1_"){ - field(DESC, "Basic config B1") - field(VAL, "0") - field(PREC, "0") - field(OUT, "$(P)CAN${CH_ID}-SDO02-BasicConfig.[1] CA") - field(OMSL, "closed_loop") - field(DOL, "$(P)CAN${CH_ID}-VrefPwrCmdCalcB1_.VAL") - field(FLNK, "$(P)CAN${CH_ID}-VrefPwrCmdCalcB2_.PROC") -} - -# second byte -record(calc, "$(P)CAN${CH_ID}-VrefPwrCmdCalcB2_") { - field(DESC, "Calc byte 2") - field(CALC, "(A >> 8) & 0xFF") - field(INPA, "$(P)CAN${CH_ID}-VrefPwrCmd.VAL") - field(FLNK, "$(P)CAN${CH_ID}-BasicConfigB2_.PROC") -} - -record(ao,"$(P)CAN${CH_ID}-BasicConfigB2_"){ - field(DESC, "Basic config B2") - field(VAL, "0") - field(PREC, "0") - field(OUT, "$(P)CAN${CH_ID}-SDO02-BasicConfig.[2] CA") - field(OMSL, "closed_loop") - field(DOL, "$(P)CAN${CH_ID}-VrefPwrCmdCalcB2_.VAL") - field(FLNK, "$(P)CAN${CH_ID}-SDO02-BasicConfig.PROC") # Process now! -} - -########################################################################### -############## Byte 3..4 Vref 4800..10000 - -record(ao,"$(P)CAN${CH_ID}-VdcCtrlCmd") { - field(DESC, "Vref 4800..10000") - field(VAL, "0") - field(EGU, "mV") - field(PREC, "0") - field(FLNK, "$(P)CAN${CH_ID}-VdcCtrlCmdCalcB3_.PROC") -} - -# third byte -record(calc, "$(P)CAN${CH_ID}-VdcCtrlCmdCalcB3_") { - field(DESC, "Calc byte 3") - field(CALC, "A & 0xFF") - field(INPA, "$(P)CAN${CH_ID}-VdcCtrlCmd.VAL") - field(FLNK, "$(P)CAN${CH_ID}-BasicConfigB3_.PROC") -} - -record(ao,"$(P)CAN${CH_ID}-BasicConfigB3_"){ - field(DESC, "Basic config B3") - field(VAL, "0") - field(PREC, "0") - field(OUT, "$(P)CAN${CH_ID}-SDO02-BasicConfig.[3] CA") - field(OMSL, "closed_loop") - field(DOL, "$(P)CAN${CH_ID}-VdcCtrlCmdCalcB3_.VAL") - field(FLNK, "$(P)CAN${CH_ID}-SDO02-VrefPwrCmdCalcB4_.PROC") # Process next byte -} - -# fourth byte -record(calc, "$(P)CAN${CH_ID}-VrefPwrCmdCalcB4_") { - field(DESC, "Calc byte 4") - field(CALC, "(A >> 8) & 0xFF") - field(INPA, "$(P)CAN${CH_ID}-VdcCtrlCmd.VAL") - field(FLNK, "$(P)CAN${CH_ID}-BasicConfigB4_.PROC") -} - -record(ao,"$(P)CAN${CH_ID}-BasicConfigB4_"){ - field(DESC, "Basic config B4") - field(VAL, "0") - field(PREC, "0") - field(OUT, "$(P)CAN${CH_ID}-SDO02-BasicConfig.[4] CA") - field(OMSL, "closed_loop") - field(DOL, "$(P)CAN${CH_ID}-VdcCtrlCmdCalcB4_.VAL") - field(FLNK, "$(P)CAN${CH_ID}-SDO02-BasicConfig.PROC") # Process now! -} - -# Byte 5..7 0 diff --git a/ecmc_plugin_socketcan/ecmc_plugin_socketcanApp/Db/pmu905BasicConfig.template b/ecmc_plugin_socketcan/ecmc_plugin_socketcanApp/Db/pmu905BasicConfig.template deleted file mode 100644 index 4453ced..0000000 --- a/ecmc_plugin_socketcan/ecmc_plugin_socketcanApp/Db/pmu905BasicConfig.template +++ /dev/null @@ -1,150 +0,0 @@ -########################################################################### -############## Byte 0 -record(bo,"$(P)CAN${CH_ID}-PowerOnCmd") { - field(DESC, "Power on") - field(VAL, "0") - field(ONAM, "On") - field(ZNAM, "Off") - field(OUT, "$(P)CAN${CH_ID}-BasicConfigB0_.B0") - field(FLNK, "$(P)CAN${CH_ID}-BasicConfigB0_.PROC") -} - -# Probably not valid for pmu905 (see note bottom in table) -#record(bo,"$(P)CAN${CH_ID}-PEAK_AV") { -# field(DESC, "PEAK/AV") -# field(VAL, "0") -# field(ONAM, "PEAK") -# field(ZNAM, "AV") -# field(OUT, "$(P)CAN${CH_ID}-BasicConfigB0_.B1") -# field(FLNK, "$(P)CAN${CH_ID}-BasicConfigB0_.PROC") -#} - -record(mbboDirect,"$(P)CAN${CH_ID}-BasicConfigB0_"){ - info(asyn:READBACK,"1") - field(DESC, "Basic Config B0") - field(PINI, "1") - field(VAL, "0") - field(FLNK, "$(P)CAN${CH_ID}-BasicConfigPackArray_.PROC") -} - -########################################################################### -############## Byte 1..2 Vref 0..5000 - -record(ao,"$(P)CAN${CH_ID}-VrefPwrCmd") { - field(DESC, "Vref 0..5000") - field(VAL, "0") - field(OUT, "") - field(EGU, "mV") - field(PREC, "0") - field(FLNK, "$(P)CAN${CH_ID}-VrefPwrCmdCalcB1_.PROC") -} - -# first byte -record(calc, "$(P)CAN${CH_ID}-VrefPwrCmdCalcB1_") { - field(DESC, "Calc byte 1") - field(CALC, "A & 0xFF") - field(INPA, "$(P)CAN${CH_ID}-VrefPwrCmd.VAL") - field(FLNK, "$(P)CAN${CH_ID}-VrefPwrCmdCalcB2_.PROC") -} - -# second byte -record(calc, "$(P)CAN${CH_ID}-VrefPwrCmdCalcB2_") { - field(DESC, "Calc byte 2") - field(CALC, "(A >> 8) & 0xFF") - field(INPA, "$(P)CAN${CH_ID}-VrefPwrCmd.VAL") - field(FLNK, "$(P)CAN${CH_ID}-BasicConfigPackArray_.PROC") -} - -########################################################################### -############## Byte 3..4 Vref 4800..10000 - -record(ao,"$(P)CAN${CH_ID}-VdcCtrlCmd") { - field(DESC, "Vref 4800..10000") - field(VAL, "0") - field(EGU, "mV") - field(PREC, "0") - field(FLNK, "$(P)CAN${CH_ID}-VdcCtrlCmdCalcB3_.PROC") -} - -# third byte -record(calc, "$(P)CAN${CH_ID}-VdcCtrlCmdCalcB3_") { - field(DESC, "Calc byte 3") - field(CALC, "A & 0xFF") - field(INPA, "$(P)CAN${CH_ID}-VdcCtrlCmd.VAL") - field(FLNK, "$(P)CAN${CH_ID}-VdcCtrlCmdCalcB4_.PROC") -} - -# fourth byte -record(calc, "$(P)CAN${CH_ID}-VdcCtrlCmdCalcB4_") { - field(DESC, "Calc byte 4") - field(CALC, "(A >> 8) & 0xFF") - field(INPA, "$(P)CAN${CH_ID}-VdcCtrlCmd.VAL") - field(FLNK, "$(P)CAN${CH_ID}-BasicConfigPackArray_.PROC") -} -# -### COLLECT all bytes -#record(acalcout, "$(P)CAN${CH_ID}-BasicConfigCalc_") { -# field(DESC, "Calc to gather data from other records") -# field(NELM, "7") -# #field(CALC, "A>>0;B>>1;C>>2;D>>3;E>>4;0>>5;0>>6;") # Fill to 7 bytes -# #field(CALC, "AA+ARR([A,B,C,D,E,0,0]);") # Fill to 7 bytes -# #field(CALC, "AA:=ARR(A,B,C,D,E,0,0)") # Fill to 7 bytes -# #field(CALC, "CAT(AA[0,1],A);CAT(AA[0,2],B)") # Fill to 7 bytes -# #field(CALC, "AA+ARR(A,B,C,D,E,0,0)") # Fill to 7 bytes -# #field(CALC, "ARR(A,B,C,D,E,0,0);") # Fill to 7 bytes -# #field(CALC, "ARR([A,B,C,D,E,0,0]);") # Fill to 7 bytes -# #field(CALC, "AA[0]=A;AA[1]=B;AA[2]=C;AA[3]=D;AA[4]=E;AA[5]=0;AA[6]=0;AA*1;") # Fill to 7 bytes -# #field(CALC, "AA[0]:=A;AA[1]:=B;AA[2]:=C;AA[3]:=D;AA[4]:=E;AA[5]:=0;AA[6]:=0;AA;") # Fill to 7 bytes -# #field(CALC, "AA[0]:=A;AA[1]:=B;AA[2]:=C;AA[3]:=D;") # Fill to 7 bytes -# #field(CALC, "AA:=IX;AA;") # Fill to 7 bytes -# field(INPA, "$(P)CAN${CH_ID}-BasicConfigB0_.VAL") # Byte 0 -# field(INPB, "$(P)CAN${CH_ID}-VrefPwrCmdCalcB1_.VAL") # Byte 1 -# field(INPC, "$(P)CAN${CH_ID}-VrefPwrCmdCalcB2_.VAL") # Byte 2 -# field(INPD, "$(P)CAN${CH_ID}-VdcCtrlCmdCalcB3_.VAL") # Byte 3 -# field(INPE, "$(P)CAN${CH_ID}-VdcCtrlCmdCalcB4_.VAL") # Byte 4 -# #field(INAA, "$(P)CAN${CH_ID}-SDO02-BasicConfig") # Whole array -# field(OUT, "$(P)CAN${CH_ID}-SDO02-BasicConfig") # Send the data -# field(FLNK, "$(P)CAN${CH_ID}-SDO02-BasicConfig.PROC") # Send the data -#} -# -# Dummy 0 array -#record(waveform,"$(P)CAN${CH_ID}-BasicConfigDummy_"){ -# field(DESC, "DUMMY ARRAY") -# field(NELM, "7") -# field(PINI, "YES") -# field(VAL, "0") -#} -# - -record(aSub, "$(P)CAN${CH_ID}-BasicConfigPackArray_") { - field(INAM, "ecmcWriteArrayUint8ElementsInit") - field(SNAM, "ecmcWriteArrayUint8Elements") - field(FTA, "UCHAR") - field(NOA, "1") - field(INPA, "7") - field(FTB, "UCHAR") - field(NOB, "1") - field(INPB, "$(P)CAN${CH_ID}-BasicConfigB0_.VAL") # Byte 0 - field(FTC, "UCHAR") - field(NOC, "1") - field(INPC, "$(P)CAN${CH_ID}-VrefPwrCmdCalcB1_.VAL") # Byte 1 - field(FTD, "UCHAR") - field(NOD, "1") - field(INPD, "$(P)CAN${CH_ID}-VrefPwrCmdCalcB2_.VAL") # Byte 2 - field(FTE, "UCHAR") - field(NOE, "1") - field(INPE, "$(P)CAN${CH_ID}-VdcCtrlCmdCalcB3_.VAL") # Byte 3 - field(FTF, "UCHAR") - field(NOF, "1") - field(INPF, "$(P)CAN${CH_ID}-VdcCtrlCmdCalcB4_.VAL") # Byte 4 - field(FTG, "UCHAR") - field(NOG, "1") - field(INPG, "0") # Byte 5 - field(FTH, "UCHAR") - field(NOH, "1") - field(INPH, "0") # Byte 6 - field(FTVA, "UCHAR") - field(OUTA, "$(P)CAN${CH_ID}-SDO02-BasicConfig") - field(NOVA, "7") - field(FLNK, "$(P)CAN${CH_ID}-SDO02-BasicConfig.PROC") # Send the data -} diff --git a/iocsh/pmu905.script b/iocsh/pmu905.script deleted file mode 100644 index d8b6ea7..0000000 --- a/iocsh/pmu905.script +++ /dev/null @@ -1,95 +0,0 @@ -############################################################################## -## 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.0 -require calc 3.7.3 -# 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.0,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}/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,0x183,2,8,100000,0) # READ -dbLoadRecords(ecmcPluginSocketCAN_PDO_input.template, "P=${ECMC_PREFIX},PORT=${ECMC_ASYN_PORT},ADDR=0,TIMEOUT=1,T_SMP_MS=${ECMC_SAMPLE_RATE_MS},TSE=${ECMC_TSE},NELM=${NELM=1},CH_ID=03,DEV_ID=3,suffix=PDO01-Array,source=status,NELM=8") - - -# 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 -dbLoadRecords(ecmcPluginSocketCAN_SDO_input.template, "P=${ECMC_PREFIX},PORT=${ECMC_ASYN_PORT},ADDR=0,TIMEOUT=1,T_SMP_MS=${ECMC_SAMPLE_RATE_MS},TSE=${ECMC_TSE},NELM=${NELM=1},CH_ID=03,DEV_ID=3,suffix=SDO01-Array,source=analogValues,DTYP=asynInt16ArrayIn,FTVL=SHORT,NELM=28") -dbLoadRecords(pmu905AnalogValues.template, "P=${ECMC_PREFIX},CH_ID=03") - - -ecmcCANOpenAddSDO("basicConfig",3,0x583,0x603,1,0x2690,0x1,7,0) # WRITE -dbLoadRecords(ecmcPluginSocketCAN_SDO_output.template, "P=${ECMC_PREFIX},PORT=${ECMC_ASYN_PORT},ADDR=0,TIMEOUT=1,T_SMP_MS=${ECMC_SAMPLE_RATE_MS},TSE=${ECMC_TSE},NELM=${NELM=1},CH_ID=03,DEV_ID=3,suffix=SDO02-BasicConfig,source=basicConfig,DTYP=asynInt8ArrayOut,FTVL=UCHAR,NELM=7") -dbLoadRecords(pmu905BasicConfig.template, "P=${ECMC_PREFIX},CH_ID=03") - -############################################################################## -############# Go to realtime: - -ecmcConfigOrDie "Cfg.SetAppMode(1)" -iocInit -dbl > pvs.log