diff --git a/beamstop/sans_llb_beamstop.db b/beamstop/sans_llb_beamstop.db index 9b9b2d6..2751a81 100644 --- a/beamstop/sans_llb_beamstop.db +++ b/beamstop/sans_llb_beamstop.db @@ -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") } ################################################################################