Remove pmu905 related files (moved to pmu905 repo)
This commit is contained in:
@@ -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.
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
}
|
||||
@@ -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>, <node id>,....)
|
||||
# <name> : Name of master device.
|
||||
# <node id> : CANOpen node id of master.
|
||||
# <LSS sample time ms> : Sample time for LSS.
|
||||
# <Sync sample time ms> : Sample time for SYNC.
|
||||
# <Heartbeat sample time ms> : Sample time for Heartbeat.
|
||||
#
|
||||
ecmcCANOpenAddMaster("ecmcCANOpenMaster",0,1000,1000,1000)
|
||||
|
||||
# ecmcCANOpenAddDevice -h
|
||||
# Use ecmcCANOpenAddDevice(<name>, <node id>)
|
||||
# <name> : Name of device.
|
||||
# <node id> : CANOpen node id of device.
|
||||
#
|
||||
ecmcCANOpenAddDevice("pmu905",3)
|
||||
|
||||
# ecmcCANOpenAddPDO -h
|
||||
# Use "ecmcCANOpenAddPDO(<name>, <node id>
|
||||
# <name> : Name of master device.
|
||||
# <node id> : CANOpen node id of device/master.
|
||||
# <cob id> : CANOpen cob id of PDO.
|
||||
# <dir> : Direction 1=write and 2=read.
|
||||
# <ODSize> : Size of PDO (max 8 bytes).
|
||||
# <readTimeoutMs> : Readtimeout in ms.
|
||||
# <writeCycleMs> : 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>, <node id>,.....)
|
||||
# <name> : Name of master device.
|
||||
# <node id> : CANOpen node id of device/master.
|
||||
# <cob id tx> : CANOpen cob id of Tx of slave SDO.
|
||||
# <cob id rx> : CANOpen cob id of Rx of slave SDO.
|
||||
# <dir> : Direction 1=write and 2=read.
|
||||
# <ODIndex> : OD index of SDO.
|
||||
# <ODSubIndex> : OD sub index of SDO.
|
||||
# <ODSize> : OS Size.
|
||||
# <readTimeoutMs> : 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
|
||||
Reference in New Issue
Block a user