don't trust sps
Test And Build / Build (push) Successful in 3s

This commit is contained in:
2026-05-18 16:39:55 +02:00
parent ef54f7d7be
commit 42d8332ece
+61 -41
View File
@@ -56,7 +56,7 @@ record(longout, "$(INSTR)$(SPS_REGISTER_NAME):BEAMSTOP-OUT")
field(DOL, "$(INSTR)$(SPS_REGISTER_NAME):BEAMSTOP NPP")
field(OUT, "$(INSTR)$(SPS_REGISTER_NAME):BEAMSTOP-RAW PP")
field(OMSL, "closed_loop")
field(DRVL, 1)
field(DRVL, 0)
field(DRVH, 3)
field(PINI, "NO")
field(FLNK, "$(INSTR)$(SPS_REGISTER_NAME):TRIGGER-DELAY")
@@ -87,17 +87,38 @@ record(longout, "$(INSTR)$(SPS_REGISTER_NAME):TRIGGER")
#
record(calcout, "$(INSTR)$(SPS_REGISTER_NAME):RETRY")
{
field(INPA, "$(INSTR)$(SPS_REGISTER_NAME):BEAMSTOP")
field(INPB, "$(INSTR)$(SPS_REGISTER_NAME):BEAMSTOP_RBV")
field(INPA, "$(INSTR)$(SPS_REGISTER_NAME):BEAMSTOP NPP")
field(INPB, "$(INSTR)$(SPS_REGISTER_NAME):BEAMSTOP_RBV NPP")
field(INPC, "$(INSTR)$(SPS_REGISTER_NAME):BUSY")
field(INPD, "$(INSTR)$(SPS_REGISTER_NAME):MOVES")
field(INPE, "$(INSTR)$(SPS_REGISTER_NAME):STATUS")
field(CALC, "A#B&&C#0&&D=0&&E=0?1:0")
# Can't trust the SPS
field(INPD, "$(BS_MCU):BS:TARGET_RANGE NPP")
field(CALC, "A#B&&C#0&&D=0?1:0")
# field(INPC, "$(INSTR)$(SPS_REGISTER_NAME):BUSY")
# field(INPD, "$(INSTR)$(SPS_REGISTER_NAME):MOVES")
# field(INPE, "$(INSTR)$(SPS_REGISTER_NAME):STATUS")
# field(INPF, "$(INSTR)$(SPS_REGISTER_NAME):IN-POSITION NPP")
# field(CALC, "A#B&&C#0&&D=0&&F=1&&E=0?1:0")
field(DOPT, "Use CALC")
field(OOPT, "When Non-zero")
field(OUT, "$(INSTR)$(SPS_REGISTER_NAME):BEAMSTOP-OUT.PROC PP")
field(SCAN, "2 second")
field(FLNK, "$(INSTR)$(SPS_REGISTER_NAME):DECREASE-BUSY-TICK")
field(FLNK, "$(INSTR)$(SPS_REGISTER_NAME):SPS-CHANGING")
}
record(calc, "$(INSTR)$(SPS_REGISTER_NAME):SPS-CHANGING")
{
field(INPA, "$(INSTR)$(SPS_REGISTER_NAME):MOVES NPP")
field(INPB, "$(INSTR)$(SPS_REGISTER_NAME):IN-POSITION NPP")
field(CALC, "A=1||B=0")
field(FLNK, "$(INSTR)$(SPS_REGISTER_NAME):MCU-CHANGING")
}
# Can't trust the SPS
record(calc, "$(INSTR)$(SPS_REGISTER_NAME):MCU-CHANGING")
{
field(INPA, "$(BS_MCU):BS:TARGET_RANGE NPP")
field(CALC, "A#0")
field(FLNK, "$(INSTR)$(SPS_REGISTER_NAME):DECREASE-BUSY-TICK")
}
record(calcout, "$(INSTR)$(SPS_REGISTER_NAME):DECREASE-BUSY-TICK")
@@ -122,24 +143,22 @@ record(seq, "$(INSTR)$(SPS_REGISTER_NAME):DELAY-RETRY-ERROR")
field(SELM, "All")
}
record(calcout, "$(INSTR)$(SPS_REGISTER_NAME):RETRY-ERROR")
record(calc, "$(INSTR)$(SPS_REGISTER_NAME):RETRY-ERROR")
{
field(INPA, "$(INSTR)$(SPS_REGISTER_NAME):BEAMSTOP")
field(INPB, "$(INSTR)$(SPS_REGISTER_NAME):BEAMSTOP_RBV")
field(INPC, "$(INSTR)$(SPS_REGISTER_NAME):BUSY")
field(INPD, "$(INSTR)$(SPS_REGISTER_NAME):MOVES")
field(INPE, "$(INSTR)$(SPS_REGISTER_NAME):IN-POSITION NPP")
field(CALC, "A#B&&C=0&&D=0&&E=1?1:0")
field(OOPT, "When Non-zero")
field(OUT, "$(INSTR)$(SPS_REGISTER_NAME):MAP-STATUS PP")
field(INPD, "$(INSTR)$(SPS_REGISTER_NAME):SPS-CHANGING NPP")
field(CALC, "A#B&&C=0&&D=0?1:0")
#field(OOPT, "When Non-zero")
field(FLNK, "$(INSTR)$(SPS_REGISTER_NAME):MAP-STATUS")
}
record(calc, "$(INSTR)$(SPS_REGISTER_NAME):MAP-STATUS")
{
field(DESC, "Maps Status Variables to singular status")
field(INPA, "$(INSTR)$(SPS_REGISTER_NAME):SERVICE-MODE NPP")
field(INPB, "$(INSTR)$(SPS_REGISTER_NAME):IN-POSITION NPP")
field(INPC, "$(INSTR)$(SPS_REGISTER_NAME):MOVES NPP")
field(INPB, "$(INSTR)$(SPS_REGISTER_NAME):SPS-CHANGING NPP")
field(INPD, "$(INSTR)$(SPS_REGISTER_NAME):ERROR NPP")
field(INPE, "$(INSTR)$(SPS_REGISTER_NAME):EXECUTE-POSSIBLE NPP")
field(INPF, "$(INSTR)$(SPS_REGISTER_NAME):ConnStatusFetch NPP")
@@ -147,10 +166,33 @@ record(calc, "$(INSTR)$(SPS_REGISTER_NAME):MAP-STATUS")
field(INPH, "$(INSTR)$(SPS_REGISTER_NAME):BEAMSTOP NPP")
field(INPI, "$(INSTR)$(SPS_REGISTER_NAME):BEAMSTOP_RBV NPP")
field(INPK, "$(INSTR)$(SPS_REGISTER_NAME):RETRY-ERROR NPP")
field(CALC, "(F=0||G=0||D=1||K=1)?3:(A=1)?2:(B=0||C=1||H#I)?1:0")
field(CALC, "(F=0||G=0||D=1||K=1)?3:(A=1)?2:(B=1||H#I)?1:0")
field(FLNK, "$(INSTR)$(SPS_REGISTER_NAME):BLOCK-BSX")
}
record(calcout, "$(INSTR)$(SPS_REGISTER_NAME):BLOCK-BSX")
{
field(DESC, "Disable BSX during change")
field(INPA, "$(INSTR)$(SPS_REGISTER_NAME):STATUS NPP")
field(INPB, "$(BS_MCU):bsx.DISA NPP")
field(CALC, "A=0?!B:B")
field(DOPT, "Use CALC")
field(OUT, "$(BS_MCU):bsx.DISV PP")
field(FLNK, "$(INSTR)$(SPS_REGISTER_NAME):BLOCK-BSY")
}
record(calcout, "$(INSTR)$(SPS_REGISTER_NAME):BLOCK-BSY")
{
field(DESC, "Disable BSY during change")
field(INPA, "$(INSTR)$(SPS_REGISTER_NAME):STATUS NPP")
field(INPB, "$(BS_MCU):bsy.DISA NPP")
field(CALC, "A=0?!B:B")
field(DOPT, "Use CALC")
field(OUT, "$(BS_MCU):bsy.DISV PP")
field(FLNK, "$(INSTR)$(SPS_REGISTER_NAME):STATUS PP")
}
record(mbbi, "$(INSTR)$(SPS_REGISTER_NAME):STATUS")
{
field(DESC, "Status of Shutter")
@@ -186,35 +228,13 @@ record(scalcout, "$(INSTR)$(SPS_REGISTER_NAME):STATUS-Msg")
record(calcout, "$(INSTR)$(SPS_REGISTER_NAME):SET-READY")
{
field(INPA, "$(INSTR)$(SPS_REGISTER_NAME):MOVES")
field(INPB, "$(INSTR)$(SPS_REGISTER_NAME):BUSY")
field(CALC, "B?A:0")
field(INPA, "$(INSTR)$(SPS_REGISTER_NAME):BUSY")
field(INPB, "$(INSTR)$(SPS_REGISTER_NAME):MCU-CHANGING NPP")
field(CALC, "A?B:0")
field(OOPT, "Transition To Non-zero")
field(DOPT, "Use OCAL")
field(OCAL, "0")
field(OUT, "$(INSTR)$(SPS_REGISTER_NAME):BUSY PP")
field(FLNK, "$(INSTR)$(SPS_REGISTER_NAME):BLOCK-BSX")
}
record(calcout, "$(INSTR)$(SPS_REGISTER_NAME):BLOCK-BSX")
{
field(DESC, "Disable BSX during change")
field(INPA, "$(INSTR)$(SPS_REGISTER_NAME):STATUS NPP")
field(INPB, "$(BS_MCU):bsx.DISA NPP")
field(CALC, "A=0?!B:B")
field(DOPT, "Use CALC")
field(OUT, "$(BS_MCU):bsx.DISV PP")
field(FLNK, "$(INSTR)$(SPS_REGISTER_NAME):BLOCK-BSY")
}
record(calcout, "$(INSTR)$(SPS_REGISTER_NAME):BLOCK-BSY")
{
field(DESC, "Disable BSY during change")
field(INPA, "$(INSTR)$(SPS_REGISTER_NAME):STATUS NPP")
field(INPB, "$(BS_MCU):bsy.DISA NPP")
field(CALC, "A=0?!B:B")
field(DOPT, "Use CALC")
field(OUT, "$(BS_MCU):bsy.DISV PP")
}
################################################################################