Files
hla_framework_bd/services/injectionguard/current/ioc/INJECTIONGUARD_individual.template
T

305 lines
10 KiB
Plaintext

# HLA Service Control Parameters
record(mbbo, "$(DEVICE):CONTROL-MODE") {
field(DESC, "Mode of Injection Guard")
field(ASG, "PROTECTED")
field(FLNK, "$(DEVICE):CHECK-SUM")
field(ZRST, "User Operation")
field(ZRVL, "0")
field(ONST, "Machine Development")
field(ONVL, "1")
field(PINI, "YES")
}
# Local events on this IOC
# 1 - secret master trigger inhibited
# 2 - gun trigger inhibited
# 3 - booster extraction trigger inhibited
# 4 - rearm of master trigger if sum signal ok again
# 5 - request to reset latches
record(waveform,"$(DEVICE):LOG") {
field(DESC, "Last failed checks")
field(ASG, "PROTECTED")
field(FTVL, "CHAR")
field(NELM, "$(SIZE=60000)")
field(PINI, "YES")
}
record(bo, "$(DEVICE):LOG-PAUSE") {
field(DESC, "pause/start logging")
field(ASG, "PROTECTED")
field(ZNAM, "Start")
field(ONAM, "Pause")
field(VAL, "1")
field(PINI, "YES")
field(HIGH, "60") # Seconds until automatic switch back to run
}
record(bo,"$(DEVICE):LOG-CLEAR") {
field(DESC, "Clear log of last failed checks")
field(ASG, "PROTECTED")
field(VAL, "0")
field(PINI, "YES")
}
record(bi,"$(DEVICE):STATUS-SECRET-MASTER") {
field(DESC, "Status of secret master trigger")
field(ASG, "READONLY")
field(ZSV, "MAJOR" )
field(INP, "$(DEVICE):NOACCESS-SECRETMASTER CP")
field(PINI, "YES")
}
record(bi,"$(DEVICE):NOACCESS-SECRETMASTER") {
field(DESC, "Status of secret master trigger")
field(ASG, "NOACCESS")
field(INP, "AGETI-CVME-MASTER-TMA:SR-Inj-Status-Sel-I CP")
field(PINI, "YES")
}
record(calcout, "$(DEVICE):AUTO-REARM-MASTER-CALCOUT") {
field(DESC, "Automatic rearming of master trigger")
field(ASG, "READONLY")
field(SCAN, "Event")
field(EVNT, "4")
field(CALC, "(A > 0) ? 1 : 0")
field(INPA, "$(DEVICE):CHECK-SUM")
field(OOPT, "When Non-zero")
field(DOPT, "Use CALC")
field(OUT, "AGETI-CVME-MASTER-TMA:SR-Inj-Status-Sel")
}
record(calcout, "$(DEVICE):OUTLINK-2-ONBEAM-FORWARD") {
field(DESC, "activate secret trigger if checks ok")
field(ASG, "READONLY")
field(CALC, "(A > 0) ? 0 : 1")
field(INPA, "$(DEVICE):CHECK-SUM")
field(OOPT, "Transition To Zero")
field(ODLY, "0")
field(DOPT, "Use OCAL")
field(OCAL, "1")
field(OUT, "AGETI-CVME-MASTER-TMA:SR-Inj-Status-Sel-I")
}
record(calcout, "$(DEVICE):OUTLINK-2-ONBEAM-INHIBIT") {
field(DESC, "disable secret trigger if checks nok")
field(ASG, "READONLY")
field(CALC, "!A && B ? 0 : 1")
field(INPA, "$(DEVICE):CHECK-SUM")
field(INPB, "AGETI-CVME-MASTER-TMA:SR-Inj-Status-Sel-I CP")
field(OOPT, "When Zero")
field(OEVT, "1")
field(ODLY, "0")
field(DOPT, "Use CALC")
field(OUT, "AGETI-CVME-MASTER-TMA:SR-Inj-Status-Sel-I")
}
# record(calcout, "$(DEVICE):OUTLINK-2-GUNTRI") {
# field(DESC, "disable gun if checks nok")
# field(ASG, "READONLY")
# field(CALC, "!A && B ? 0 : 1")
# field(INPA, "$(DEVICE):CHECK-SUM")
# field(INPB, "ALIRF-VME-A-GUN:CH1-MODE CP")
# field(OOPT, "Transition To Zero")
# field(OEVT, "2")
# field(ODLY, "0")
# field(DOPT, "Use CALC")
# field(OUT, "ALIRF-VME-A-GUN:CH1-MODE")
# }
# record(calcout, "$(DEVICE):OUTLINK-2-BOOEXT") {
# field(DESC, "disable booster extraction if checks nok")
# field(ASG, "READONLY")
# field(CALC, "!A && B ? 0 : 1")
# field(INPA, "$(DEVICE):CHECK-SUM")
# field(INPB, "AGETI-CVME-MASTER-TMA:Evt-10-Ena-Sel CP")
# field(OOPT, "Transition To Zero")
# field(OEVT, "3")
# field(ODLY, "0")
# field(DOPT, "Use CALC")
# field(OUT, "AGETI-CVME-MASTER-TMA:Evt-10-Ena-Sel")
# }
# Overall Check SUM
record(fanout, "$(DEVICE):CHECK-SUM-FANOUT") {
field(DESC, "FANOUT for checksum changes")
field(ASG, "READONLY")
field(SELM, "All")
field(LNK1, "$(DEVICE):OUTLINK-2-ONBEAM-FORWARD")
field(LNK2, "$(DEVICE):OUTLINK-2-ONBEAM-INHIBIT")
# field(LNK3, "$(DEVICE):OUTLINK-2-GUNTRI")
# field(LNK4, "$(DEVICE):OUTLINK-2-BOOEXT")
}
record(mbbi, "$(DEVICE):CHECK-SUM") {
field(DESC, "Check SUM overall, written by IOC")
field(FLNK, "$(DEVICE):CHECK-SUM-FANOUT")
field(ASG, "READONLY")
field(ZRST, "Injection Inhibit")
field(ZRVL, "0")
field(ZRSV, "MAJOR")
field(ONST, "Injection Enabled")
field(ONVL, "1")
field(ONSV, "NO_ALARM")
field(TWST, "Linac Mode")
field(TWVL, "2")
field(TWSV, "MINOR")
}
record(calcout, "$(DEVICE):CHECK-SUM-CALC") {
field(DESC, "Check SUM overall, written by IOC")
field(FLNK, "$(DEVICE):CHECK-SUM")
field(ASG, "READONLY")
field(CALC, "!E & !F ? 2 : (A ? B & D : C & D)")
field(INPA, "$(DEVICE):CONTROL-MODE")
field(INPB, "$(DEVICE):CHECK-SUM-MD")
field(INPC, "$(DEVICE):CHECK-SUM-OP")
field(INPD, "$(DEVICE):CHECK-SUM-LATCH")
field(INPE, "ALI00-SGEN-PSYS:ALBSA-BB-OPEN") # Linac Mode, (0 closed, 1 opened)
field(INPF, "ALI00-SGEN-PSYS:ALBSA-KV-OPEN") # Linac Mode, (0 closed, 1 opened)
field(DOPT, "Use CALC")
field(OUT, "$(DEVICE):CHECK-SUM")
}
# Check SUMs OP/MD
record(calc, "$(DEVICE):CHECK-SUM-OP-A") {
field(DESC, "Check SUM OP Mode, written by IOC")
field(FLNK, "$(DEVICE):CHECK-SUM-OP")
field(ASG, "READONLY")
field(CALC, "A & B & C & D & E & F & G & H & I & J & K & L")
field(INPA, "$(DEVICE):CHECK-12")
field(INPB, "$(DEVICE):CHECK-13")
field(INPC, "$(DEVICE):CHECK-14")
field(INPD, "$(DEVICE):CHECK-15")
field(INPE, "$(DEVICE):CHECK-16")
field(INPF, "$(DEVICE):CHECK-17")
field(INPG, "$(DEVICE):CHECK-18")
field(INPH, "$(DEVICE):CHECK-19")
field(INPI, "$(DEVICE):CHECK-20")
field(INPJ, "$(DEVICE):CHECK-21")
field(INPK, "$(DEVICE):CHECK-22")
field(INPL, "$(DEVICE):CHECK-23")
}
record(calc, "$(DEVICE):CHECK-SUM-OP") {
field(DESC, "Check SUM OP Mode, written by IOC")
field(FLNK, "$(DEVICE):CHECK-SUM-MD-A")
field(ASG, "READONLY")
field(LOLO, "0.1")
field(LLSV, "MAJOR")
field(CALC, "A & B & C & D & E & F & G & H & I & J & K & L")
field(INPA, "$(DEVICE):CHECK-01")
field(INPB, "$(DEVICE):CHECK-02")
field(INPC, "$(DEVICE):CHECK-03")
field(INPD, "$(DEVICE):CHECK-04")
field(INPE, "$(DEVICE):CHECK-05")
field(INPF, "$(DEVICE):CHECK-06")
field(INPG, "$(DEVICE):CHECK-07")
field(INPH, "$(DEVICE):CHECK-08")
field(INPI, "$(DEVICE):CHECK-09")
field(INPJ, "$(DEVICE):CHECK-10")
field(INPK, "$(DEVICE):CHECK-11")
field(INPL, "$(DEVICE):CHECK-SUM-OP-A")
}
record(calc, "$(DEVICE):CHECK-SUM-MD-A") {
field(DESC, "Check SUM MD Mode, written by IOC")
field(FLNK, "$(DEVICE):CHECK-SUM-MD")
field(ASG, "READONLY")
field(CALC, "A & B & C & D & E & F & G & H & I & J & K & L")
field(INPA, "$(DEVICE):CHECK-12-MD")
field(INPB, "$(DEVICE):CHECK-13-MD")
field(INPC, "$(DEVICE):CHECK-14-MD")
field(INPD, "$(DEVICE):CHECK-15-MD")
field(INPE, "$(DEVICE):CHECK-16-MD")
field(INPF, "$(DEVICE):CHECK-17-MD")
field(INPG, "$(DEVICE):CHECK-18-MD")
field(INPH, "$(DEVICE):CHECK-19-MD")
field(INPI, "$(DEVICE):CHECK-20-MD")
field(INPJ, "$(DEVICE):CHECK-21-MD")
field(INPK, "$(DEVICE):CHECK-22-MD")
field(INPL, "$(DEVICE):CHECK-23-MD")
}
record(calc, "$(DEVICE):CHECK-SUM-MD") {
field(DESC, "Check SUM MD Mode, written by IOC")
field(FLNK, "$(DEVICE):CHECK-SUM-LATCH-A")
field(ASG, "READONLY")
field(LOLO, "0.1")
field(LLSV, "MAJOR")
field(CALC, "A & B & C & D & E & F & G & H & I & J & K & L")
field(INPA, "$(DEVICE):CHECK-01-MD")
field(INPB, "$(DEVICE):CHECK-02-MD")
field(INPC, "$(DEVICE):CHECK-03-MD")
field(INPD, "$(DEVICE):CHECK-04-MD")
field(INPE, "$(DEVICE):CHECK-05-MD")
field(INPF, "$(DEVICE):CHECK-06-MD")
field(INPG, "$(DEVICE):CHECK-07-MD")
field(INPH, "$(DEVICE):CHECK-08-MD")
field(INPI, "$(DEVICE):CHECK-09-MD")
field(INPJ, "$(DEVICE):CHECK-10-MD")
field(INPK, "$(DEVICE):CHECK-11-MD")
field(INPL, "$(DEVICE):CHECK-SUM-MD-A")
}
record(calc, "$(DEVICE):CHECK-SUM-LATCH-A") {
field(DESC, "Check SUM LATCH Mode, written by IOC")
field(FLNK, "$(DEVICE):CHECK-SUM-LATCH")
field(ASG, "READONLY")
field(CALC, "A & B & C & D & E & F & G & H & I & J & K & L")
field(INPA, "$(DEVICE):CHECK-12-LATCH")
field(INPB, "$(DEVICE):CHECK-13-LATCH")
field(INPC, "$(DEVICE):CHECK-14-LATCH")
field(INPD, "$(DEVICE):CHECK-15-LATCH")
field(INPE, "$(DEVICE):CHECK-16-LATCH")
field(INPF, "$(DEVICE):CHECK-17-LATCH")
field(INPG, "$(DEVICE):CHECK-18-LATCH")
field(INPH, "$(DEVICE):CHECK-19-LATCH")
field(INPI, "$(DEVICE):CHECK-20-LATCH")
field(INPJ, "$(DEVICE):CHECK-21-LATCH")
field(INPK, "$(DEVICE):CHECK-22-LATCH")
field(INPL, "$(DEVICE):CHECK-23-LATCH")
}
record(calc, "$(DEVICE):CHECK-SUM-LATCH") {
field(DESC, "Check SUM LATCH Mode, written by IOC")
field(FLNK, "$(DEVICE):CHECK-SUM-CALC")
field(ASG, "READONLY")
field(LOLO, "0.1")
field(LLSV, "MINOR")
field(CALC, "A & B & C & D & E & F & G & H & I & J & K & L")
field(INPA, "$(DEVICE):CHECK-01-LATCH")
field(INPB, "$(DEVICE):CHECK-02-LATCH")
field(INPC, "$(DEVICE):CHECK-03-LATCH")
field(INPD, "$(DEVICE):CHECK-04-LATCH")
field(INPE, "$(DEVICE):CHECK-05-LATCH")
field(INPF, "$(DEVICE):CHECK-06-LATCH")
field(INPG, "$(DEVICE):CHECK-07-LATCH")
field(INPH, "$(DEVICE):CHECK-08-LATCH")
field(INPI, "$(DEVICE):CHECK-09-LATCH")
field(INPJ, "$(DEVICE):CHECK-10-LATCH")
field(INPK, "$(DEVICE):CHECK-11-LATCH")
field(INPL, "$(DEVICE):CHECK-SUM-LATCH-A")
}
record(bo, "$(DEVICE):RESET-LATCHES") {
field(DESC, "Reset all Latches")
field(ASG, "PROTECTED")
field(FLNK, "$(DEVICE):RESET-LATCHES-CALCOUT")
field(VAL, "0")
field(PINI, "YES")
field(HIGH, "1") # Seconds until automatic switch to 0
}
record(calcout, "$(DEVICE):RESET-LATCHES-CALCOUT") {
field(DESC, "Reset all Latches")
field(ASG, "PROTECTED")
field(VAL, "0")
field(PINI, "YES")
field(CALC, "A")
field(INPA, "$(DEVICE):RESET-LATCHES")
field(OOPT, "Transition To Non-zero")
field(OEVT, "5")
}