Continued work

This commit is contained in:
2026-01-16 08:30:41 +01:00
committed by soederqvist_a
parent 1d47b02833
commit 2aa6bd4405
2 changed files with 160 additions and 109 deletions

View File

@@ -33,7 +33,7 @@ record(mbbi, "$(INSTR)$(NAME):STATUS")
record(longin, "$(INSTR)$(NAME):CHANNELS")
{
field(DESC, "Total Supported Channels")
field(VAL, $(CHANNELS=1))
field(VAL, 1)
field(DISP, 1)
}
@@ -41,6 +41,13 @@ record(stringin, "$(INSTR)$(NAME):MsgTxt")
{
field(DESC, "Miscellanous messages")
}
record(bi, "$(INSTR)$(NAME):IS_LOWRATE")
{
field(ZNAM, "LOW RATE")
field(ONAM, "GOOD RATE")
}
################################################################################
# Commands
################################################################################
@@ -150,8 +157,7 @@ record(longout,"$(INSTR)$(NAME):THRESHOLD-MONITOR")
field(DESC, "Channel monitored for minimum rate")
field(VAL, "1") # Monitor
field(DRVL, "0") # Smallest Threshold Channel (0 is off)
field(DRVH, "$(CHANNELS=1)") # Largest Threshold Channel
field(DTYP, "stream")
field(DRVH, "1") # Largest Threshold Channel
}
record(ao,"$(INSTR)$(NAME):THRESHOLD")
@@ -160,19 +166,15 @@ record(ao,"$(INSTR)$(NAME):THRESHOLD")
alias("$(INSTR)$(NAME):THRESHOLD_RBV")
field(DESC, "Minimum rate for counting to proceed")
field(VAL, "1") # Default Rate
# Could perhaps still be improved.
# It seems to only accept whole counts?
field(DRVL, "1") # Minimum Rate
field(DRVH, "100000") # Maximum Rate
field(OMSL, "supervisory")
field(OROC, "0")
}
record(ai,"$(INSTR)$(NAME):ELAPSED-TIME")
{
field(DESC, "DAQ Measured Time")
field(EGU, "sec")
field(FLNK, "$(INSTR)$(NAME):ETO")
}
# Array Subroutine record which emulates the counterbox functionality
@@ -182,7 +184,6 @@ record(aSub, "$(INSTR)$(NAME):EMULATION")
# Scan rate determines how often we sample the rate
# and how often the counter value updates.
field(SCAN, "0.1 seconds"
field(INAM, "initEmulatedCounter")
field(SNAM, "processEmulatedCounter"
# The first 4 inputs are also mapped as the first 4 outputs
@@ -219,8 +220,12 @@ record(aSub, "$(INSTR)$(NAME):EMULATION")
field(FTVC, "DOUBLE")
field(OUTD, "$(INSTR)$(NAME):COMMAND-TRIG PP")
field(FTVD, "ULONG")
field(INPE, "$(INSTR)$(NAME):R0-PREV PP")
field(FTE, "DOUBLE")
field(OUTE, "$(INSTR)$(NAME):R0-PREV PP")
field(FTVE, "DOUBLE")
field(OUTF, "$(INSTR)$(NAME):IS_LOWRATE PP")
field(FTVF, "ULONG")
field(OUTF, "$(INSTR)$(NAME):MSG_TXT PP")
field(FTVF, "CHAR")
}
#######################
@@ -237,9 +242,10 @@ record(int64in, "$(INSTR)$(NAME):M0")
record(calc, "$(INSTR)$(NAME):R0")
{
field(DESC, "Rate of DAQ CH0 proton current")
field(INPA, "$(REMOTE_RATE_PV) CA"
#field(INPA, "$(REMOTE_RATE_PV) CA")
field(INPA, "$(INSTR)$(NAME):PROTON_CURR)"
field(INPB, "$(SHUTTER1_PV=0)")
field(INPC, "$(SHUTTER1_CLOSED_VAL=1)"
field(INPC, "$(SHUTTER1_CLOSED_VAL=1)")
field(INPD, "$(SHUTTER2_PV=0)")
field(INPE, "$(SHUTTER2_CLOSED_VAL=1)")
# If either shutter is closed we have no rate
@@ -273,3 +279,12 @@ record(bi, "$(INSTR)$(NAME):S0")
field(ONAM, "CLEARING")
}
record(calc, "$(INSTR)$(NAME):PROTON_CURR") {
field(SCAN, "0.05 seconds")
field(CALC, "1500 * 101 * SIN(A)")
field(INPA, "$(INSTR)$(NAME):PROTON_CURR_VAR PP")
}
record(calc, "$(INSTR)$(NAME):PROTON_CURR_VAR") {
field(CALC, "VAL + 0.001")
}