chore: copy missing ioc templates
This commit is contained in:
@@ -1,37 +0,0 @@
|
||||
# This is a template for preaparing an IOC providing BD Service specific PVs
|
||||
# Access Security Groups:
|
||||
# DEFAULT - logt wenn EGU oder so veraendert werden
|
||||
# LOG - logt wenn neuer wert geschrieben wird
|
||||
# PROTECTED - verhindert versuchte caputs auf alle fields ausser VAL
|
||||
# READONLY - verhindert versuchte caputs und aktiviert caputlog
|
||||
# Input links can specify CA, CP, or CPP.
|
||||
# If the input link specifies CA, it will be forced to be a Channel Access link.
|
||||
# If the input link specifies CP, it will also be forced to be a Channel Access link; in addition, it will cause the record containing the input link to process whenever a monitor is posted, no matter what the record's SCAN field specifies.
|
||||
# If the input link specifies CPP, it means the same thing as CP, except that the record will be processed if and only if the record itself specifies passive in its SCAN field. Output links can specify CA, which will simply cause them to be Channel Access links.
|
||||
#
|
||||
|
||||
record(ao, "$(DEVICE):AO") {
|
||||
field(DESC, "Analog Output Record (ao)")
|
||||
field(ASG, "PROTECTED")
|
||||
field(VAL, "0")
|
||||
field(PINI, "YES")
|
||||
}
|
||||
|
||||
record(bo, "$(DEVICE):BO") {
|
||||
field(DESC, "Binary Output Record (bo)")
|
||||
field(ASG, "READONLY")
|
||||
field(ZSV, "MINOR")
|
||||
field(OSV, "NO_ALARM")
|
||||
field(VAL, "1")
|
||||
field(PINI, "YES")
|
||||
}
|
||||
|
||||
# TODO: ok?
|
||||
record(bo, "$(DEVICE):CALLBACK") {
|
||||
field(DESC, "Callback PV to listen to for changes")
|
||||
field(ASG, "READONLY")
|
||||
field(ZSV, "MINOR")
|
||||
field(OSV, "NO_ALARM")
|
||||
field(VAL, "1")
|
||||
field(PINI, "YES")
|
||||
}
|
||||
@@ -0,0 +1,89 @@
|
||||
record(bo, "AGEBD-INJECTIONGUARD:CONTROL-BRIDGE-CHECK-$(NR)") {
|
||||
field(DESC, "Only in MD mode: bridge check $(NR)")
|
||||
field(ASG, "PROTECTED")
|
||||
field(FLNK, "AGEBD-INJECTIONGUARD:CHECK-$(NR)-MD")
|
||||
field(VAL, "0")
|
||||
field(ZSV, "NO_ALARM")
|
||||
field(OSV, "MINOR")
|
||||
field(PINI, "YES")
|
||||
}
|
||||
|
||||
record(bo, "AGEBD-INJECTIONGUARD:CHECK-$(NR)") {
|
||||
field(DESC, "$(Description)")
|
||||
field(ASG, "PROTECTED")
|
||||
field(FLNK, "AGEBD-INJECTIONGUARD:CHECK-$(NR)-MD")
|
||||
field(ZSV, "MAJOR")
|
||||
field(OSV, "NO_ALARM")
|
||||
field(VAL, "1")
|
||||
field(PINI, "YES")
|
||||
field(HIGH, "1") # Seconds until automatic switch to Alarm
|
||||
}
|
||||
|
||||
record(calc, "AGEBD-INJECTIONGUARD:CHECK-$(NR)-MD") {
|
||||
field(DESC, "Check $(NR) MD, written by IOC")
|
||||
field(ASG, "READONLY")
|
||||
field(FLNK, "AGEBD-INJECTIONGUARD:CHECK-$(NR)-LATCHFWD")
|
||||
field(LOLO, "0.1")
|
||||
field(LLSV, "MAJOR")
|
||||
field(CALC, "A ? 1 : B")
|
||||
field(INPA, "AGEBD-INJECTIONGUARD:CONTROL-BRIDGE-CHECK-$(NR)")
|
||||
field(INPB, "AGEBD-INJECTIONGUARD:CHECK-$(NR)")
|
||||
}
|
||||
|
||||
# forward only alarm states to latch bo
|
||||
record(calcout, "AGEBD-INJECTIONGUARD:CHECK-$(NR)-LATCHFWD") {
|
||||
field(DESC, "Latchfwd for check $(NR)")
|
||||
field(ASG, "READONLY")
|
||||
field(FLNK, "AGEBD-INJECTIONGUARD:CHECK-$(NR)-LATCH")
|
||||
field(CALC, "$(Latch)? ( A? C : B ) : 1")
|
||||
field(PINI, "YES")
|
||||
field(INPA, "AGEBD-INJECTIONGUARD:CONTROL-MODE CP")
|
||||
field(INPB, "AGEBD-INJECTIONGUARD:CHECK-$(NR) CP")
|
||||
field(INPC, "AGEBD-INJECTIONGUARD:CHECK-$(NR)-MD CP")
|
||||
field(OOPT, "When Zero")
|
||||
field(DOPT, "Use CALC")
|
||||
field(OUT, "AGEBD-INJECTIONGUARD:CHECK-$(NR)-LATCH.VAL")
|
||||
}
|
||||
|
||||
# forward current state to latch bo on reset event
|
||||
record(calcout, "AGEBD-INJECTIONGUARD:CHECK-$(NR)-LATCHRST") {
|
||||
field(DESC, "Latchfwd for check $(NR)")
|
||||
field(ASG, "READONLY")
|
||||
field(FLNK, "AGEBD-INJECTIONGUARD:CHECK-$(NR)-LATCH")
|
||||
field(SCAN, "Event")
|
||||
field(EVNT, "5")
|
||||
field(CALC, "$(Latch)? ( A? C : B ) : 1")
|
||||
field(PINI, "YES")
|
||||
field(INPA, "AGEBD-INJECTIONGUARD:CONTROL-MODE")
|
||||
field(INPB, "AGEBD-INJECTIONGUARD:CHECK-$(NR)")
|
||||
field(INPC, "AGEBD-INJECTIONGUARD:CHECK-$(NR)-MD")
|
||||
field(OOPT, "Every Time")
|
||||
field(DOPT, "Use CALC")
|
||||
field(OUT, "AGEBD-INJECTIONGUARD:CHECK-$(NR)-LATCH.VAL")
|
||||
}
|
||||
|
||||
record(bo, "AGEBD-INJECTIONGUARD:CHECK-$(NR)-LATCH") {
|
||||
field(DESC, "$(Description)")
|
||||
field(ASG, "READONLY")
|
||||
field(FLNK, "AGEBD-INJECTIONGUARD:CHECK-SUM-OP-A")
|
||||
field(ZSV, "MINOR")
|
||||
field(OSV, "NO_ALARM")
|
||||
field(VAL, "1")
|
||||
field(PINI, "YES")
|
||||
}
|
||||
|
||||
# emit event for master rearm when alarm state is left and non latched
|
||||
record(calcout, "AGEBD-INJECTIONGUARD:CHECK-$(NR)-REARM-MASTER") {
|
||||
field(DESC, "Rearm Master for non latched checks")
|
||||
field(ASG, "NOACCESS")
|
||||
field(CALC, "!$(Latch)? ( A? C : B ) : 1")
|
||||
field(PINI, "YES")
|
||||
field(INPA, "AGEBD-INJECTIONGUARD:CONTROL-MODE CP")
|
||||
field(INPB, "AGEBD-INJECTIONGUARD:CHECK-$(NR) CP")
|
||||
field(INPC, "AGEBD-INJECTIONGUARD:CHECK-$(NR)-MD CP")
|
||||
field(OOPT, "Transition To Non-zero")
|
||||
field(OEVT, "4")
|
||||
field(ODLY, "0.1")
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,304 @@
|
||||
# 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, "AGEBD-INJECTIONGUARD:RESET-LATCHES") {
|
||||
field(DESC, "Reset all Latches")
|
||||
field(ASG, "PROTECTED")
|
||||
field(FLNK, "AGEBD-INJECTIONGUARD:RESET-LATCHES-CALCOUT")
|
||||
field(VAL, "0")
|
||||
field(PINI, "YES")
|
||||
field(HIGH, "1") # Seconds until automatic switch to 0
|
||||
}
|
||||
|
||||
record(calcout, "AGEBD-INJECTIONGUARD:RESET-LATCHES-CALCOUT") {
|
||||
field(DESC, "Reset all Latches")
|
||||
field(ASG, "PROTECTED")
|
||||
field(VAL, "0")
|
||||
field(PINI, "YES")
|
||||
field(CALC, "A")
|
||||
field(INPA, "AGEBD-INJECTIONGUARD:RESET-LATCHES")
|
||||
field(OOPT, "Transition To Non-zero")
|
||||
field(OEVT, "5")
|
||||
}
|
||||
@@ -1,37 +0,0 @@
|
||||
# This is a template for preaparing an IOC providing BD Service specific PVs
|
||||
# Access Security Groups:
|
||||
# DEFAULT - logt wenn EGU oder so veraendert werden
|
||||
# LOG - logt wenn neuer wert geschrieben wird
|
||||
# PROTECTED - verhindert versuchte caputs auf alle fields ausser VAL
|
||||
# READONLY - verhindert versuchte caputs und aktiviert caputlog
|
||||
# Input links can specify CA, CP, or CPP.
|
||||
# If the input link specifies CA, it will be forced to be a Channel Access link.
|
||||
# If the input link specifies CP, it will also be forced to be a Channel Access link; in addition, it will cause the record containing the input link to process whenever a monitor is posted, no matter what the record's SCAN field specifies.
|
||||
# If the input link specifies CPP, it means the same thing as CP, except that the record will be processed if and only if the record itself specifies passive in its SCAN field. Output links can specify CA, which will simply cause them to be Channel Access links.
|
||||
#
|
||||
|
||||
record(ao, "$(DEVICE):AO") {
|
||||
field(DESC, "Analog Output Record (ao)")
|
||||
field(ASG, "PROTECTED")
|
||||
field(VAL, "0")
|
||||
field(PINI, "YES")
|
||||
}
|
||||
|
||||
record(bo, "$(DEVICE):BO") {
|
||||
field(DESC, "Binary Output Record (bo)")
|
||||
field(ASG, "READONLY")
|
||||
field(ZSV, "MINOR")
|
||||
field(OSV, "NO_ALARM")
|
||||
field(VAL, "1")
|
||||
field(PINI, "YES")
|
||||
}
|
||||
|
||||
# TODO: ok?
|
||||
record(bo, "$(DEVICE):CALLBACK") {
|
||||
field(DESC, "Callback PV to listen to for changes")
|
||||
field(ASG, "READONLY")
|
||||
field(ZSV, "MINOR")
|
||||
field(OSV, "NO_ALARM")
|
||||
field(VAL, "1")
|
||||
field(PINI, "YES")
|
||||
}
|
||||
@@ -0,0 +1,87 @@
|
||||
record(ao, "$(sourcepoint)-ORBITBUMP:OFFSET-X") {
|
||||
field(DESC, "Beamline x offset for $(beamline)")
|
||||
field(ASG, "PROTECTED")
|
||||
field(EGU, "um")
|
||||
field(PREC, "0")
|
||||
field(VAL, "$(X)")
|
||||
field(PINI, "YES")
|
||||
field(FLNK, "AGEBD-ORBITBUMP:$(sourcepoint)-OFFSET-X-TOTAL")
|
||||
field(DRVH, "$(DRVH)")
|
||||
field(DRVL, "$(DRVL)")
|
||||
field(HOPR, "$(DRVH)")
|
||||
field(LOPR, "$(DRVL)")
|
||||
field(HIHI, "10")
|
||||
field(HHSV, "MAJOR")
|
||||
field(HIGH, "1")
|
||||
field(HSV, "MINOR")
|
||||
field(LOW, "-1")
|
||||
field(LSV, "MINOR")
|
||||
field(LOLO, "-10")
|
||||
field(LLSV, "MAJOR")
|
||||
}
|
||||
|
||||
record(ao, "$(sourcepoint)-ORBITBUMP:OFFSET-XP") {
|
||||
field(DESC, "Beamline xp offset for $(beamline)")
|
||||
field(ASG, "PROTECTED")
|
||||
field(EGU, "urad")
|
||||
field(PREC, "0")
|
||||
field(VAL, "$(XP)")
|
||||
field(PINI, "YES")
|
||||
field(FLNK, "AGEBD-ORBITBUMP:$(sourcepoint)-OFFSET-XP-TOTAL")
|
||||
field(DRVH, "$(DRVH)")
|
||||
field(DRVL, "$(DRVL)")
|
||||
field(HOPR, "$(DRVH)")
|
||||
field(LOPR, "$(DRVL)")
|
||||
field(HIHI, "10")
|
||||
field(HHSV, "MAJOR")
|
||||
field(HIGH, "1")
|
||||
field(HSV, "MINOR")
|
||||
field(LOW, "-1")
|
||||
field(LSV, "MINOR")
|
||||
field(LOLO, "-10")
|
||||
field(LLSV, "MAJOR")
|
||||
}
|
||||
|
||||
record(ao, "$(sourcepoint)-ORBITBUMP:OFFSET-Y") {
|
||||
field(DESC, "Beamline y offset for $(beamline)")
|
||||
field(ASG, "PROTECTED")
|
||||
field(EGU, "um")
|
||||
field(PREC, "0")
|
||||
field(VAL, "$(Y)")
|
||||
field(PINI, "YES")
|
||||
field(FLNK, "AGEBD-ORBITBUMP:$(sourcepoint)-OFFSET-Y-TOTAL")
|
||||
field(DRVH, "$(DRVH)")
|
||||
field(DRVL, "$(DRVL)")
|
||||
field(HOPR, "$(DRVH)")
|
||||
field(LOPR, "$(DRVL)")
|
||||
field(HIHI, "10")
|
||||
field(HHSV, "MAJOR")
|
||||
field(HIGH, "1")
|
||||
field(HSV, "MINOR")
|
||||
field(LOW, "-1")
|
||||
field(LSV, "MINOR")
|
||||
field(LOLO, "-10")
|
||||
field(LLSV, "MAJOR")
|
||||
}
|
||||
|
||||
record(ao, "$(sourcepoint)-ORBITBUMP:OFFSET-YP") {
|
||||
field(DESC, "Beamline yp offset for $(beamline)")
|
||||
field(ASG, "PROTECTED")
|
||||
field(EGU, "urad")
|
||||
field(PREC, "0")
|
||||
field(VAL, "$(YP)")
|
||||
field(PINI, "YES")
|
||||
field(FLNK, "AGEBD-ORBITBUMP:$(sourcepoint)-OFFSET-YP-TOTAL")
|
||||
field(DRVH, "$(DRVH)")
|
||||
field(DRVL, "$(DRVL)")
|
||||
field(HOPR, "$(DRVH)")
|
||||
field(LOPR, "$(DRVL)")
|
||||
field(HIHI, "10")
|
||||
field(HHSV, "MAJOR")
|
||||
field(HIGH, "1")
|
||||
field(HSV, "MINOR")
|
||||
field(LOW, "-1")
|
||||
field(LSV, "MINOR")
|
||||
field(LOLO, "-10")
|
||||
field(LLSV, "MAJOR")
|
||||
}
|
||||
@@ -0,0 +1,504 @@
|
||||
# # on request writing total bump values to machine bumps and zero beamline bumps
|
||||
# record(bo, "AGEBD-ORBITBUMP:$(sourcepoint)-COPYOVER") {
|
||||
# field(DESC, "Request zeroing of beamline offsets")
|
||||
# field(ASG, "PROTECTED")
|
||||
# field(PINI, "YES")
|
||||
# field(ZNAM, "Idle")
|
||||
# field(ONAM, "Trigger")
|
||||
# field(OUT, "myDevice:addAndZero.PROC PP")
|
||||
# }
|
||||
|
||||
# record(seq, "AGEBD-ORBITBUMP:$(sourcepoint)-COPYOVER") {
|
||||
# field(DESC, "On trigger: add PV_A to PV_B, zero PV_A")
|
||||
|
||||
# field(DOL1, "myDevice:add_calc NPP NMS") # Value = A + B
|
||||
# field(LNK1, "myDevice:PV_B PP MS") # Step 1: write sum to PV_B
|
||||
|
||||
# field(DLY1, "0.1") # Wait 0.1s before next step
|
||||
|
||||
# field(DOL2, "0") # Value = 0
|
||||
# field(LNK2, "myDevice:PV_A PP MS") # Step 2: zero PV_A
|
||||
# }
|
||||
|
||||
|
||||
|
||||
record(ao, "AGEBD-ORBITBUMP:$(sourcepoint)-OFFSET-X") {
|
||||
field(DESC, "Machine x offset for $(beamline)")
|
||||
field(ASG, "PROTECTED")
|
||||
field(EGU, "um")
|
||||
field(PREC, "0")
|
||||
field(VAL, "$(X)")
|
||||
field(PINI, "YES")
|
||||
field(FLNK, "AGEBD-ORBITBUMP:$(sourcepoint)-OFFSET-X-TOTAL")
|
||||
field(DRVH, "$(HIX)")
|
||||
field(DRVL, "$(LOX)")
|
||||
field(HOPR, "$(HIX)")
|
||||
field(LOPR, "$(LOX)")
|
||||
field(HIHI, "100")
|
||||
field(HHSV, "MAJOR")
|
||||
field(HIGH, "1")
|
||||
field(HSV, "MINOR")
|
||||
field(LOW, "-1")
|
||||
field(LSV, "MINOR")
|
||||
field(LOLO, "-100")
|
||||
field(LLSV, "MAJOR")
|
||||
}
|
||||
|
||||
record(ao, "AGEBD-ORBITBUMP:$(sourcepoint)-OFFSET-XP") {
|
||||
field(DESC, "Machine xp offset for $(beamline)")
|
||||
field(ASG, "PROTECTED")
|
||||
field(EGU, "urad")
|
||||
field(PREC, "0")
|
||||
field(VAL, "$(XP)")
|
||||
field(PINI, "YES")
|
||||
field(FLNK, "AGEBD-ORBITBUMP:$(sourcepoint)-OFFSET-XP-TOTAL")
|
||||
field(DRVH, "$(HIXP)")
|
||||
field(DRVL, "$(LOXP)")
|
||||
field(HOPR, "$(HIXP)")
|
||||
field(LOPR, "$(LOXP)")
|
||||
field(HIHI, "100")
|
||||
field(HHSV, "MAJOR")
|
||||
field(HIGH, "1")
|
||||
field(HSV, "MINOR")
|
||||
field(LOW, "-1")
|
||||
field(LSV, "MINOR")
|
||||
field(LOLO, "-100")
|
||||
field(LLSV, "MAJOR")
|
||||
}
|
||||
|
||||
record(ao, "AGEBD-ORBITBUMP:$(sourcepoint)-OFFSET-Y") {
|
||||
field(DESC, "Machine y offset for $(beamline)")
|
||||
field(ASG, "PROTECTED")
|
||||
field(EGU, "um")
|
||||
field(PREC, "0")
|
||||
field(VAL, "$(Y)")
|
||||
field(PINI, "YES")
|
||||
field(FLNK, "AGEBD-ORBITBUMP:$(sourcepoint)-OFFSET-Y-TOTAL")
|
||||
field(DRVH, "$(HIY)")
|
||||
field(DRVL, "$(LOY)")
|
||||
field(HOPR, "$(HIY)")
|
||||
field(LOPR, "$(LOY)")
|
||||
field(HIHI, "100")
|
||||
field(HHSV, "MAJOR")
|
||||
field(HIGH, "1")
|
||||
field(HSV, "MINOR")
|
||||
field(LOW, "-1")
|
||||
field(LSV, "MINOR")
|
||||
field(LOLO, "-100")
|
||||
field(LLSV, "MAJOR")
|
||||
}
|
||||
|
||||
record(ao, "AGEBD-ORBITBUMP:$(sourcepoint)-OFFSET-YP") {
|
||||
field(DESC, "Machine yp offset for $(beamline)")
|
||||
field(ASG, "PROTECTED")
|
||||
field(EGU, "urad")
|
||||
field(PREC, "0")
|
||||
field(VAL, "$(YP)")
|
||||
field(PINI, "YES")
|
||||
field(FLNK, "AGEBD-ORBITBUMP:$(sourcepoint)-OFFSET-YP-TOTAL")
|
||||
field(DRVH, "$(HIYP)")
|
||||
field(DRVL, "$(LOYP)")
|
||||
field(HOPR, "$(HIYP)")
|
||||
field(LOPR, "$(LOYP)")
|
||||
field(HIHI, "100")
|
||||
field(HHSV, "MAJOR")
|
||||
field(HIGH, "1")
|
||||
field(HSV, "MINOR")
|
||||
field(LOW, "-1")
|
||||
field(LSV, "MINOR")
|
||||
field(LOLO, "-100")
|
||||
field(LLSV, "MAJOR")
|
||||
}
|
||||
|
||||
# Sum PVs for total desired orbit bumps, i.e., sum of machine and beamline
|
||||
record(calcout, "AGEBD-ORBITBUMP:$(sourcepoint)-OFFSET-X-TOTAL") {
|
||||
field(DESC, "Total x offset for $(beamline)")
|
||||
field(ASG, "READONLY")
|
||||
field(SCAN, "Passive")
|
||||
field(PREC, "0")
|
||||
field(CALC, "A + B")
|
||||
field(INPA, "AGEBD-ORBITBUMP:$(sourcepoint)-OFFSET-X")
|
||||
field(INPB, "$(sourcepoint)-ORBITBUMP:OFFSET-X")
|
||||
field(OOPT, "On Change")
|
||||
field(DOPT, "Use CALC")
|
||||
field(FLNK, "AGEBD-ORBITBUMP:$(sourcepoint)-DELTAX-BPM1")
|
||||
field(HIHI, "100")
|
||||
field(HHSV, "MAJOR")
|
||||
field(HIGH, "1")
|
||||
field(HSV, "MINOR")
|
||||
field(LOW, "-1")
|
||||
field(LSV, "MINOR")
|
||||
field(LOLO, "-100")
|
||||
field(LLSV, "MAJOR")
|
||||
}
|
||||
|
||||
record(calcout, "AGEBD-ORBITBUMP:$(sourcepoint)-OFFSET-XP-TOTAL") {
|
||||
field(DESC, "Total xp offset for $(beamline)")
|
||||
field(ASG, "READONLY")
|
||||
field(SCAN, "Passive")
|
||||
field(PREC, "0")
|
||||
field(CALC, "A + B")
|
||||
field(INPA, "AGEBD-ORBITBUMP:$(sourcepoint)-OFFSET-XP")
|
||||
field(INPB, "$(sourcepoint)-ORBITBUMP:OFFSET-XP")
|
||||
field(OOPT, "On Change")
|
||||
field(DOPT, "Use CALC")
|
||||
field(FLNK, "AGEBD-ORBITBUMP:$(sourcepoint)-DELTAX-BPM1")
|
||||
field(HIHI, "100")
|
||||
field(HHSV, "MAJOR")
|
||||
field(HIGH, "1")
|
||||
field(HSV, "MINOR")
|
||||
field(LOW, "-1")
|
||||
field(LSV, "MINOR")
|
||||
field(LOLO, "-100")
|
||||
field(LLSV, "MAJOR")
|
||||
}
|
||||
|
||||
record(calcout, "AGEBD-ORBITBUMP:$(sourcepoint)-OFFSET-Y-TOTAL") {
|
||||
field(DESC, "Total y offset for $(beamline)")
|
||||
field(ASG, "READONLY")
|
||||
field(SCAN, "Passive")
|
||||
field(PREC, "0")
|
||||
field(CALC, "A + B")
|
||||
field(INPA, "AGEBD-ORBITBUMP:$(sourcepoint)-OFFSET-Y")
|
||||
field(INPB, "$(sourcepoint)-ORBITBUMP:OFFSET-Y")
|
||||
field(OOPT, "On Change")
|
||||
field(DOPT, "Use CALC")
|
||||
field(FLNK, "AGEBD-ORBITBUMP:$(sourcepoint)-DELTAY-BPM1")
|
||||
field(HIHI, "100")
|
||||
field(HHSV, "MAJOR")
|
||||
field(HIGH, "1")
|
||||
field(HSV, "MINOR")
|
||||
field(LOW, "-1")
|
||||
field(LSV, "MINOR")
|
||||
field(LOLO, "-100")
|
||||
field(LLSV, "MAJOR")
|
||||
}
|
||||
|
||||
record(calcout, "AGEBD-ORBITBUMP:$(sourcepoint)-OFFSET-YP-TOTAL") {
|
||||
field(DESC, "Total y offset for $(beamline)")
|
||||
field(ASG, "READONLY")
|
||||
field(SCAN, "Passive")
|
||||
field(PREC, "0")
|
||||
field(CALC, "A + B")
|
||||
field(INPA, "AGEBD-ORBITBUMP:$(sourcepoint)-OFFSET-YP")
|
||||
field(INPB, "$(sourcepoint)-ORBITBUMP:OFFSET-YP")
|
||||
field(OOPT, "On Change")
|
||||
field(DOPT, "Use CALC")
|
||||
field(FLNK, "AGEBD-ORBITBUMP:$(sourcepoint)-DELTAY-BPM1")
|
||||
field(HIHI, "100")
|
||||
field(HHSV, "MAJOR")
|
||||
field(HIGH, "1")
|
||||
field(HSV, "MINOR")
|
||||
field(LOW, "-1")
|
||||
field(LSV, "MINOR")
|
||||
field(LOLO, "-100")
|
||||
field(LLSV, "MAJOR")
|
||||
}
|
||||
|
||||
# BPM1, C1xx, C1xpx, C1yy, C1ypy,
|
||||
|
||||
record(stringout, "AGEBD-ORBITBUMP:$(sourcepoint)-BPM1") {
|
||||
field(DESC, "$(BPM1)")
|
||||
field(ASG, "READONLY")
|
||||
field(VAL, "$(BPM1)")
|
||||
field(PINI, "YES")
|
||||
}
|
||||
|
||||
record(ao, "AGEBD-ORBITBUMP:$(sourcepoint)-C1xx") {
|
||||
field(DESC, "Coefficient dx2dx at $(BPM1)")
|
||||
field(ASG, "READONLY")
|
||||
field(EGU, "mm/mm")
|
||||
field(PREC, "3")
|
||||
field(VAL, "$(C1xx)")
|
||||
field(PINI, "YES")
|
||||
}
|
||||
|
||||
record(ao, "AGEBD-ORBITBUMP:$(sourcepoint)-C1xpx") {
|
||||
field(DESC, "Coefficient dxp2dx at $(BPM1)")
|
||||
field(ASG, "READONLY")
|
||||
field(EGU, "mm/mrad")
|
||||
field(PREC, "3")
|
||||
field(VAL, "$(C1xpx)")
|
||||
field(PINI, "YES")
|
||||
}
|
||||
|
||||
record(ao, "AGEBD-ORBITBUMP:$(sourcepoint)-C1yy") {
|
||||
field(DESC, "Coefficient dy2dy at $(BPM1)")
|
||||
field(ASG, "READONLY")
|
||||
field(EGU, "mm/mm")
|
||||
field(PREC, "3")
|
||||
field(VAL, "$(C1yy)")
|
||||
field(PINI, "YES")
|
||||
}
|
||||
|
||||
record(ao, "AGEBD-ORBITBUMP:$(sourcepoint)-C1ypy") {
|
||||
field(DESC, "Coefficient dyp2dy at $(BPM1)")
|
||||
field(ASG, "READONLY")
|
||||
field(EGU, "mm/mrad")
|
||||
field(PREC, "3")
|
||||
field(VAL, "$(C1ypy)")
|
||||
field(PINI, "YES")
|
||||
}
|
||||
|
||||
record(calcout, "AGEBD-ORBITBUMP:$(sourcepoint)-DELTAX-BPM1") {
|
||||
field(DESC, "Hor. change for $(BPM1)")
|
||||
field(ASG, "READONLY")
|
||||
field(SCAN, "Passive")
|
||||
field(PREC, "3")
|
||||
field(CALC, "A*B/1000 + C*D/1000")
|
||||
field(INPA, "AGEBD-ORBITBUMP:$(sourcepoint)-C1xx")
|
||||
field(INPB, "AGEBD-ORBITBUMP:$(sourcepoint)-OFFSET-X-TOTAL")
|
||||
field(INPC, "AGEBD-ORBITBUMP:$(sourcepoint)-C1xpx")
|
||||
field(INPD, "AGEBD-ORBITBUMP:$(sourcepoint)-OFFSET-XP-TOTAL")
|
||||
field(OOPT, "On Change")
|
||||
field(DOPT, "Use CALC")
|
||||
field(OUT, "$(BPM1):X-B-REF-OP")
|
||||
field(FLNK, "AGEBD-ORBITBUMP:$(sourcepoint)-DELTAX-BPM2")
|
||||
}
|
||||
|
||||
record(calcout, "AGEBD-ORBITBUMP:$(sourcepoint)-DELTAY-BPM1") {
|
||||
field(DESC, "Hor. change for $(BPM1)")
|
||||
field(ASG, "READONLY")
|
||||
field(SCAN, "Passive")
|
||||
field(PREC, "3")
|
||||
field(CALC, "A*B/1000 + C*D/1000")
|
||||
field(INPA, "AGEBD-ORBITBUMP:$(sourcepoint)-C1yy")
|
||||
field(INPB, "AGEBD-ORBITBUMP:$(sourcepoint)-OFFSET-Y-TOTAL")
|
||||
field(INPC, "AGEBD-ORBITBUMP:$(sourcepoint)-C1ypy")
|
||||
field(INPD, "AGEBD-ORBITBUMP:$(sourcepoint)-OFFSET-YP-TOTAL")
|
||||
field(OOPT, "On Change")
|
||||
field(DOPT, "Use CALC")
|
||||
field(OUT, "$(BPM1):Y-B-REF-OP")
|
||||
field(FLNK, "AGEBD-ORBITBUMP:$(sourcepoint)-DELTAY-BPM2")
|
||||
}
|
||||
|
||||
# BPM2, C2xx, C2xpx, C2yy, C2ypy,
|
||||
|
||||
record(stringout, "AGEBD-ORBITBUMP:$(sourcepoint)-BPM2") {
|
||||
field(DESC, "$(BPM2)")
|
||||
field(ASG, "READONLY")
|
||||
field(VAL, "$(BPM2)")
|
||||
field(PINI, "YES")
|
||||
}
|
||||
|
||||
record(ao, "AGEBD-ORBITBUMP:$(sourcepoint)-C2xx") {
|
||||
field(DESC, "Coefficient dx2dx at $(BPM2)")
|
||||
field(ASG, "READONLY")
|
||||
field(EGU, "mm/mm")
|
||||
field(PREC, "3")
|
||||
field(VAL, "$(C2xx)")
|
||||
field(PINI, "YES")
|
||||
}
|
||||
|
||||
record(ao, "AGEBD-ORBITBUMP:$(sourcepoint)-C2xpx") {
|
||||
field(DESC, "Coefficient dxp2dx at $(BPM2)")
|
||||
field(ASG, "READONLY")
|
||||
field(EGU, "mm/mrad")
|
||||
field(PREC, "3")
|
||||
field(VAL, "$(C2xpx)")
|
||||
field(PINI, "YES")
|
||||
}
|
||||
|
||||
record(ao, "AGEBD-ORBITBUMP:$(sourcepoint)-C2yy") {
|
||||
field(DESC, "Coefficient dy2dy at $(BPM2)")
|
||||
field(ASG, "READONLY")
|
||||
field(EGU, "mm/mm")
|
||||
field(PREC, "3")
|
||||
field(VAL, "$(C2yy)")
|
||||
field(PINI, "YES")
|
||||
}
|
||||
|
||||
record(ao, "AGEBD-ORBITBUMP:$(sourcepoint)-C2ypy") {
|
||||
field(DESC, "Coefficient dyp2dy at $(BPM2)")
|
||||
field(ASG, "READONLY")
|
||||
field(EGU, "mm/mrad")
|
||||
field(PREC, "3")
|
||||
field(VAL, "$(C2ypy)")
|
||||
field(PINI, "YES")
|
||||
}
|
||||
|
||||
record(calcout, "AGEBD-ORBITBUMP:$(sourcepoint)-DELTAX-BPM2") {
|
||||
field(DESC, "Hor. change for $(BPM2)")
|
||||
field(ASG, "READONLY")
|
||||
field(SCAN, "Passive")
|
||||
field(PREC, "3")
|
||||
field(CALC, "A*B/1000 + C*D/1000")
|
||||
field(INPA, "AGEBD-ORBITBUMP:$(sourcepoint)-C2xx")
|
||||
field(INPB, "AGEBD-ORBITBUMP:$(sourcepoint)-OFFSET-X-TOTAL")
|
||||
field(INPC, "AGEBD-ORBITBUMP:$(sourcepoint)-C2xpx")
|
||||
field(INPD, "AGEBD-ORBITBUMP:$(sourcepoint)-OFFSET-XP-TOTAL")
|
||||
field(INPE, "$(sourcepoint)-ORBITBUMP:OFFSET-X")
|
||||
field(INPF, "$(sourcepoint)-ORBITBUMP:OFFSET-XP")
|
||||
field(OOPT, "On Change")
|
||||
field(DOPT, "Use CALC")
|
||||
field(OUT, "$(BPM2):X-B-REF-OP")
|
||||
field(FLNK, "AGEBD-ORBITBUMP:$(sourcepoint)-DELTAX-BPM3")
|
||||
}
|
||||
|
||||
record(calcout, "AGEBD-ORBITBUMP:$(sourcepoint)-DELTAY-BPM2") {
|
||||
field(DESC, "Hor. change for $(BPM2)")
|
||||
field(ASG, "READONLY")
|
||||
field(SCAN, "Passive")
|
||||
field(PREC, "3")
|
||||
field(CALC, "A*B/1000 + C*D/1000")
|
||||
field(INPA, "AGEBD-ORBITBUMP:$(sourcepoint)-C2yy")
|
||||
field(INPB, "AGEBD-ORBITBUMP:$(sourcepoint)-OFFSET-Y-TOTAL")
|
||||
field(INPC, "AGEBD-ORBITBUMP:$(sourcepoint)-C2ypy")
|
||||
field(INPD, "AGEBD-ORBITBUMP:$(sourcepoint)-OFFSET-YP-TOTAL")
|
||||
field(OOPT, "On Change")
|
||||
field(DOPT, "Use CALC")
|
||||
field(OUT, "$(BPM2):Y-B-REF-OP")
|
||||
field(FLNK, "AGEBD-ORBITBUMP:$(sourcepoint)-DELTAY-BPM3")
|
||||
}
|
||||
|
||||
# BPM3, C3xx, C3xpx, C3yy, C3ypy,
|
||||
|
||||
record(stringout, "AGEBD-ORBITBUMP:$(sourcepoint)-BPM3") {
|
||||
field(DESC, "$(BPM3)")
|
||||
field(VAL, "$(BPM3)")
|
||||
field(ASG, "READONLY")
|
||||
field(PINI, "YES")
|
||||
}
|
||||
|
||||
record(ao, "AGEBD-ORBITBUMP:$(sourcepoint)-C3xx") {
|
||||
field(DESC, "Coefficient dx2dx at $(BPM3)")
|
||||
field(EGU, "mm/mm")
|
||||
field(PREC, "3")
|
||||
field(VAL, "$(C3xx)")
|
||||
field(PINI, "YES")
|
||||
}
|
||||
|
||||
record(ao, "AGEBD-ORBITBUMP:$(sourcepoint)-C3xpx") {
|
||||
field(DESC, "Coefficient dxp2dx at $(BPM3)")
|
||||
field(EGU, "mm/mrad")
|
||||
field(PREC, "3")
|
||||
field(VAL, "$(C3xpx)")
|
||||
field(PINI, "YES")
|
||||
}
|
||||
|
||||
record(ao, "AGEBD-ORBITBUMP:$(sourcepoint)-C3yy") {
|
||||
field(DESC, "Coefficient dy2dy at $(BPM3)")
|
||||
field(EGU, "mm/mm")
|
||||
field(PREC, "3")
|
||||
field(VAL, "$(C3yy)")
|
||||
field(PINI, "YES")
|
||||
}
|
||||
|
||||
record(ao, "AGEBD-ORBITBUMP:$(sourcepoint)-C3ypy") {
|
||||
field(DESC, "Coefficient dyp2dy at $(BPM3)")
|
||||
field(EGU, "mm/mrad")
|
||||
field(PREC, "3")
|
||||
field(VAL, "$(C3ypy)")
|
||||
field(PINI, "YES")
|
||||
}
|
||||
|
||||
record(calcout, "AGEBD-ORBITBUMP:$(sourcepoint)-DELTAX-BPM3") {
|
||||
field(DESC, "Hor. change for $(BPM3)")
|
||||
field(ASG, "READONLY")
|
||||
field(SCAN, "Passive")
|
||||
field(PREC, "3")
|
||||
field(CALC, "A*B/1000 + C*D/1000")
|
||||
field(INPA, "AGEBD-ORBITBUMP:$(sourcepoint)-C3xx")
|
||||
field(INPB, "AGEBD-ORBITBUMP:$(sourcepoint)-OFFSET-X-TOTAL")
|
||||
field(INPC, "AGEBD-ORBITBUMP:$(sourcepoint)-C3xpx")
|
||||
field(INPD, "AGEBD-ORBITBUMP:$(sourcepoint)-OFFSET-XP-TOTAL")
|
||||
field(INPE, "$(sourcepoint)-ORBITBUMP:OFFSET-X")
|
||||
field(INPF, "$(sourcepoint)-ORBITBUMP:OFFSET-XP")
|
||||
field(OOPT, "On Change")
|
||||
field(DOPT, "Use CALC")
|
||||
field(OUT, "$(BPM3):X-B-REF-OP")
|
||||
field(FLNK, "AGEBD-ORBITBUMP:$(sourcepoint)-DELTAX-BPM4")
|
||||
}
|
||||
|
||||
record(calcout, "AGEBD-ORBITBUMP:$(sourcepoint)-DELTAY-BPM3") {
|
||||
field(DESC, "Hor. change for $(BPM3)")
|
||||
field(ASG, "READONLY")
|
||||
field(SCAN, "Passive")
|
||||
field(PREC, "3")
|
||||
field(CALC, "A*B/1000 + C*D/1000")
|
||||
field(INPA, "AGEBD-ORBITBUMP:$(sourcepoint)-C3yy")
|
||||
field(INPB, "AGEBD-ORBITBUMP:$(sourcepoint)-OFFSET-Y-TOTAL")
|
||||
field(INPC, "AGEBD-ORBITBUMP:$(sourcepoint)-C3ypy")
|
||||
field(INPD, "AGEBD-ORBITBUMP:$(sourcepoint)-OFFSET-YP-TOTAL")
|
||||
field(OOPT, "On Change")
|
||||
field(DOPT, "Use CALC")
|
||||
field(OUT, "$(BPM3):Y-B-REF-OP")
|
||||
field(FLNK, "AGEBD-ORBITBUMP:$(sourcepoint)-DELTAY-BPM4")
|
||||
}
|
||||
|
||||
# BPM4, C4xx, C4xpx, C4yy, C4ypy,
|
||||
|
||||
record(stringout, "AGEBD-ORBITBUMP:$(sourcepoint)-BPM4") {
|
||||
field(DESC, "$(BPM4)")
|
||||
field(ASG, "READONLY")
|
||||
field(VAL, "$(BPM4)")
|
||||
field(PINI, "YES")
|
||||
}
|
||||
|
||||
record(ao, "AGEBD-ORBITBUMP:$(sourcepoint)-C4xx") {
|
||||
field(DESC, "Coefficient dx2dx at $(BPM4)")
|
||||
field(ASG, "READONLY")
|
||||
field(EGU, "mm/mm")
|
||||
field(PREC, "3")
|
||||
field(VAL, "$(C4xx)")
|
||||
field(PINI, "YES")
|
||||
}
|
||||
|
||||
record(ao, "AGEBD-ORBITBUMP:$(sourcepoint)-C4xpx") {
|
||||
field(DESC, "Coefficient dxp2dx at $(BPM4)")
|
||||
field(ASG, "READONLY")
|
||||
field(EGU, "mm/mrad")
|
||||
field(PREC, "3")
|
||||
field(VAL, "$(C4xpx)")
|
||||
field(PINI, "YES")
|
||||
}
|
||||
|
||||
record(ao, "AGEBD-ORBITBUMP:$(sourcepoint)-C4yy") {
|
||||
field(DESC, "Coefficient dy2dy at $(BPM4)")
|
||||
field(ASG, "READONLY")
|
||||
field(EGU, "mm/mm")
|
||||
field(PREC, "3")
|
||||
field(VAL, "$(C4yy)")
|
||||
field(PINI, "YES")
|
||||
}
|
||||
|
||||
record(ao, "AGEBD-ORBITBUMP:$(sourcepoint)-C4ypy") {
|
||||
field(DESC, "Coefficient dyp2dy at $(BPM4)")
|
||||
field(ASG, "READONLY")
|
||||
field(EGU, "mm/mrad")
|
||||
field(PREC, "3")
|
||||
field(VAL, "$(C4ypy)")
|
||||
field(PINI, "YES")
|
||||
}
|
||||
|
||||
record(calcout, "AGEBD-ORBITBUMP:$(sourcepoint)-DELTAX-BPM4") {
|
||||
field(DESC, "Hor. change for $(BPM4)")
|
||||
field(ASG, "READONLY")
|
||||
field(SCAN, "Passive")
|
||||
field(PREC, "3")
|
||||
field(CALC, "A*B/1000 + C*D/1000")
|
||||
field(INPA, "AGEBD-ORBITBUMP:$(sourcepoint)-C4xx")
|
||||
field(INPB, "AGEBD-ORBITBUMP:$(sourcepoint)-OFFSET-X-TOTAL")
|
||||
field(INPC, "AGEBD-ORBITBUMP:$(sourcepoint)-C4xpx")
|
||||
field(INPD, "AGEBD-ORBITBUMP:$(sourcepoint)-OFFSET-XP-TOTAL")
|
||||
field(INPE, "$(sourcepoint)-ORBITBUMP:OFFSET-X")
|
||||
field(INPF, "$(sourcepoint)-ORBITBUMP:OFFSET-XP")
|
||||
field(OOPT, "On Change")
|
||||
field(DOPT, "Use CALC")
|
||||
field(OUT, "$(BPM4):X-B-REF-OP")
|
||||
}
|
||||
|
||||
record(calcout, "AGEBD-ORBITBUMP:$(sourcepoint)-DELTAY-BPM4") {
|
||||
field(DESC, "Hor. change for $(BPM4)")
|
||||
field(ASG, "READONLY")
|
||||
field(SCAN, "Passive")
|
||||
field(PREC, "3")
|
||||
field(CALC, "A*B/1000 + C*D/1000")
|
||||
field(INPA, "AGEBD-ORBITBUMP:$(sourcepoint)-C4yy")
|
||||
field(INPB, "AGEBD-ORBITBUMP:$(sourcepoint)-OFFSET-Y-TOTAL")
|
||||
field(INPC, "AGEBD-ORBITBUMP:$(sourcepoint)-C4ypy")
|
||||
field(INPD, "AGEBD-ORBITBUMP:$(sourcepoint)-OFFSET-YP-TOTAL")
|
||||
field(OOPT, "On Change")
|
||||
field(DOPT, "Use CALC")
|
||||
field(OUT, "$(BPM4):Y-B-REF-OP")
|
||||
}
|
||||
@@ -1,37 +0,0 @@
|
||||
# This is a template for preaparing an IOC providing BD Service specific PVs
|
||||
# Access Security Groups:
|
||||
# DEFAULT - logt wenn EGU oder so veraendert werden
|
||||
# LOG - logt wenn neuer wert geschrieben wird
|
||||
# PROTECTED - verhindert versuchte caputs auf alle fields ausser VAL
|
||||
# READONLY - verhindert versuchte caputs und aktiviert caputlog
|
||||
# Input links can specify CA, CP, or CPP.
|
||||
# If the input link specifies CA, it will be forced to be a Channel Access link.
|
||||
# If the input link specifies CP, it will also be forced to be a Channel Access link; in addition, it will cause the record containing the input link to process whenever a monitor is posted, no matter what the record's SCAN field specifies.
|
||||
# If the input link specifies CPP, it means the same thing as CP, except that the record will be processed if and only if the record itself specifies passive in its SCAN field. Output links can specify CA, which will simply cause them to be Channel Access links.
|
||||
#
|
||||
|
||||
record(ao, "$(DEVICE):AO") {
|
||||
field(DESC, "Analog Output Record (ao)")
|
||||
field(ASG, "PROTECTED")
|
||||
field(VAL, "0")
|
||||
field(PINI, "YES")
|
||||
}
|
||||
|
||||
record(bo, "$(DEVICE):BO") {
|
||||
field(DESC, "Binary Output Record (bo)")
|
||||
field(ASG, "READONLY")
|
||||
field(ZSV, "MINOR")
|
||||
field(OSV, "NO_ALARM")
|
||||
field(VAL, "1")
|
||||
field(PINI, "YES")
|
||||
}
|
||||
|
||||
# TODO: ok?
|
||||
record(bo, "$(DEVICE):CALLBACK") {
|
||||
field(DESC, "Callback PV to listen to for changes")
|
||||
field(ASG, "READONLY")
|
||||
field(ZSV, "MINOR")
|
||||
field(OSV, "NO_ALARM")
|
||||
field(VAL, "1")
|
||||
field(PINI, "YES")
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
## 9 Hour Plots
|
||||
record(compress, "AGEBD-PLOTS:$(NAME)-9h-BUFFER") {
|
||||
field(DESC, "9h Buffer for SLS Status Panel")
|
||||
field(SCAN, "1 second")
|
||||
field(INP, "$(INP)")
|
||||
field(ALG, "Circular Buffer")
|
||||
field(NSAM, "32400")
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
# 9 Hour Plots
|
||||
record(waveform, "$(DEVICE):PAST-9-HOURS") {
|
||||
field(DESC, "Time axis for 9h buffer")
|
||||
field(EGU, "h")
|
||||
field(FTVL, "FLOAT")
|
||||
field(DTYP, "sequence")
|
||||
field(NELM, "32400")
|
||||
field(LOPR, "-9.0")
|
||||
field(HOPR, "0.0")
|
||||
field(PINI, "YES")
|
||||
}
|
||||
|
||||
# 1 Week Plot
|
||||
record(waveform, "$(DEVICE):PAST-168-HOURS") {
|
||||
field(DESC, "Time axis for 1 week buffer")
|
||||
field(EGU, "h")
|
||||
field(FTVL, "FLOAT")
|
||||
field(DTYP, "sequence")
|
||||
field(NELM, "604800")
|
||||
field(LOPR, "-168.0")
|
||||
field(HOPR, "0.0")
|
||||
field(PINI, "YES")
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
## 1 Week Plot
|
||||
record(compress, "AGEBD-PLOTS:$(NAME)-168h-BUFFER") {
|
||||
field(DESC, "1 Week Buffer for SLS Status Panel")
|
||||
field(SCAN, "1 second")
|
||||
field(INP, "$(INP)")
|
||||
field(ALG, "Circular Buffer")
|
||||
field(NSAM, "604800")
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
# Circular Buffer Record for Live Copy of desired PVs
|
||||
record (compress, "AGEBD-POSTMORTEMLOG:BUFFER-$(NAME)") {
|
||||
field(DESC, "15min 10Hz buffer for post mortem")
|
||||
field(ASG, "READONLY")
|
||||
field(SCAN, ".1 second")
|
||||
field(INP, "$(INP)")
|
||||
field(ALG, "Circular Buffer")
|
||||
field(NSAM, "9000")
|
||||
}
|
||||
|
||||
# Records for automatically copying EPICS circular buffer Records after beam abort
|
||||
record (waveform, "AGEBD-POSTMORTEMLOG:BUFFER-$(NAME)-LAST"){
|
||||
field(DESC, "Copy of post mortem buffer")
|
||||
field(ASG, "READONLY")
|
||||
field(FTVL, "FLOAT")
|
||||
field(NELM, "9000")
|
||||
field(INP, "AGEBD-POSTMORTEMLOG:BUFFER-$(NAME) VAL")
|
||||
field(SCAN, "Event") # Process on event
|
||||
field(EVNT, "1") # Event number to trigger
|
||||
}
|
||||
|
||||
# Records for writing to from HLA when viewing beam abort data history
|
||||
record (waveform, "AGEBD-POSTMORTEMLOG:BUFFER-$(NAME)-HLA"){
|
||||
field(DESC, "Post mortem buffer filled by HLA")
|
||||
field(ASG, "PROTECTED")
|
||||
field(FTVL, "FLOAT")
|
||||
field(NELM, "9000")
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user