disables the bsx and bsy motors when the beamstop isn't in an okay state

This commit is contained in:
2026-04-10 08:22:47 +02:00
parent 0d20534dcf
commit 611b9f5416
2 changed files with 25 additions and 5 deletions
+22 -4
View File
@@ -22,7 +22,7 @@ record(seq, "$(INSTR)$(SPS_REGISTER_NAME):TRIGGER-DELAY")
{
field(DESC, "Delays Internal Trigger as SPS too slow")
field(DOL0, 1)
field(LNK0, "$(INSTR)$(SPS_REGISTER_NAME):SET-BUSY.PROC PP")
field(LNK0, "$(INSTR)$(SPS_REGISTER_NAME):SET-BUSY.PROC PP")
field(DLY0, 0.5)
field(SELM, "All")
field(PINI, "NO")
@@ -32,8 +32,8 @@ record(longout, "$(INSTR)$(SPS_REGISTER_NAME):SET-BUSY")
{
field(DESC, "Trigger Internal Busy Status")
# This determines the number of max retry ticks
field(VAL, 5)
field(OUT, "$(INSTR)$(SPS_REGISTER_NAME):BUSY PP")
field(VAL, 5)
field(OUT, "$(INSTR)$(SPS_REGISTER_NAME):BUSY PP")
field(FLNK, "$(INSTR)$(SPS_REGISTER_NAME):TRIGGER")
}
@@ -103,7 +103,7 @@ record(seq, "$(INSTR)$(SPS_REGISTER_NAME):DELAY-RETRY-ERROR")
{
field(DESC, "Delays checking if retry error occurred")
field(DOL0, 1)
field(LNK0, "$(INSTR)$(SPS_REGISTER_NAME):RETRY-ERROR.PROC PP")
field(LNK0, "$(INSTR)$(SPS_REGISTER_NAME):RETRY-ERROR.PROC PP")
field(DLY0, 0.5)
field(SELM, "All")
}
@@ -176,5 +176,23 @@ record(calcout, "$(INSTR)$(SPS_REGISTER_NAME):SET-READY")
field(DOPT, "Use OCAL")
field(OCAL, "0")
field(OUT, "$(INSTR)$(SPS_REGISTER_NAME):BUSY PP")
field(FLNK, "$(INSTR)$(SPS_REGISTER_NAME):SHOULD-BLOCK-MOTORS")
}
record(calc, "$(INSTR)$(SPS_REGISTER_NAME):SHOULD-BLOCK-MOTORS")
{
field(DESC, "Whether to block bsx and bsy")
field(INPA, "$(INSTR)$(SPS_REGISTER_NAME):STATUS NPP")
field(CALC, "A=0?0:1")
field(FLNK, "$(INSTR)$(SPS_REGISTER_NAME):BEAMSTOP-MOTOR-BLOCK PP")
}
record(seq, "$(INSTR)$(SPS_REGISTER_NAME):BEAMSTOP-MOTOR-BLOCK")
{
field(DESC, "Block moving bsx and bsy")
field(DOL0, "$(INSTR)$(SPS_REGISTER_NAME):SHOULD-BLOCK-MOTORS NPP")
field(LNK0, "$(BSX_MOT).DISV PP")
field(DOL1, "$(INSTR)$(SPS_REGISTER_NAME):SHOULD-BLOCK-MOTORS NPP")
field(LNK1, "$(BSY_MOT).DISV PP")
field(SELM, "All")
}
+3 -1
View File
@@ -9,6 +9,8 @@
# # out IO Interrupt Delay (if 0 then only reacts on a change)
# )
# Expects as an argument, the PV's for the motors bsx and bsy.
epicsEnvSet("SPS_REGISTER_NAME", "SPS-BEAMSTOP")
epicsEnvSet("SPS_FETCH_SIZE", "40")
epicsEnvSet("SPS_WRITE_SIZE", "2")
@@ -22,4 +24,4 @@ dbLoadRecords("$(sinqSPS_DB)/sps_status.db", "INSTR=$(INSTR), SPS_REGISTER_NAME=
dbLoadTemplate("$(sinqSPS_DB)/sans_llb_beamstop.substitutions", "INSTR=$(INSTR), SPS_REGISTER_NAME=$(SPS_REGISTER_NAME), STATUS_FLNK=$(INSTR)$(SPS_REGISTER_NAME):MAP-STATUS")
# Additional Mapping PVs
dbLoadRecords("$(sinqSPS_DB)/sans_llb_beamstop.db", "INSTR=$(INSTR), SPS_REGISTER_NAME=$(SPS_REGISTER_NAME)")
dbLoadRecords("$(sinqSPS_DB)/sans_llb_beamstop.db", "INSTR=$(INSTR), SPS_REGISTER_NAME=$(SPS_REGISTER_NAME), BSX_MOT=$(BSX_MOT), BSY_MOT=$(BSY_MOT)")