feat: add params ioc

This commit is contained in:
Benjamin Labrecque
2026-07-30 13:45:12 +02:00
parent ab5534f974
commit 4aa9aec4b8
6 changed files with 97 additions and 18 deletions
-1
View File
@@ -1 +0,0 @@
# TODO: dev/prod templating
@@ -1,17 +0,0 @@
[Unit]
Description=AGEBD-SERVICE-ORBITBUMP
After=network.target
[Service]
Environment=AGEBD_ENV={{ agebd_env }}
Environment=PYTHONUNBUFFERED=1
ExecStart=/sls/bd/hla/{{ agebd_env }}/bin/start_service.sh ORBITBUMP
Restart=no
[Install]
WantedBy=default.target
# https://www.freedesktop.org/software/systemd/man/latest/systemd.service.html
# systemctl --user daemon-reload
# systemctl --user enable /sls/bd/bin/systemd/AGEBD-SERVICE-ORBITBUMP.service
# systemctl --user start AGEBD-SERVICE-ORBITBUMP
@@ -0,0 +1,4 @@
file PARAMS.template {
pattern { DEVICE }
{ AGEBD-PARAMS{{ agebd_env_suffix }} }
}
@@ -0,0 +1,6 @@
cpu_architecture: x86_64
epics_version: 7.0.8
ioc_host: sls-vserv-bd-01{{ agebd_env_suffix }}
ioc_port: {{ ioc_port }}
os: RHEL8
os_id: rhel
@@ -0,0 +1,83 @@
record(calcout, "$(DEVICE):CURRENTLIMIT"){
field(DESC, "Current Limit")
field(ASG, "READONLY")
field(PREC, "3")
field(EGU, "mA")
field(VAL, "25")
field(CALC, "A ? 25 : 410 ")
field(SCAN, "Passive")
field(INPA, "AGEBD-INJECTIONGUARD:CONTROL-BRIDGE-CHECK-01 CPP")
}
record(calcout, "$(DEVICE):CURRENT"){
field(DESC, "Current reading")
field(PREC, "3")
field(EGU, "mA")
field(VAL, "0")
field(CALC, "A > 300 ? A : B ")
field(SCAN, "Passive")
field(INPA, "ARS07-DPCT-0000:CURR CPP")
field(INPB, "AGEBD-DBPM3CURR:CURRENT-AVG")
}
record(calcout, "$(DEVICE):INJECTION-RATE"){
field(DESC, "Rate der Akkumulation im Speicherring")
field(FLNK, "$(DEVICE):TRANSMISSION")
field(PREC, "4")
field(EGU, "mA/min")
field(VAL, "0")
field(CALC, "A > 300 ? C : B ")
field(SCAN, "Passive")
field(INPA, "ARS07-DPCT-0000:CURR CPP")
field(INPB, "AGEBD-TAUBPM:INJRATE CPP")
field(INPC, "AGEBD-TAUPCT:INJRATE CPP")
}
record(calcout, "$(DEVICE):TRANSMISSION"){
field(DESC, "Transmission Booster PCT to Ring")
field(PREC, "3")
field(EGU, "%")
field(VAL, "0")
# mA/min / 60 = mA/s
# mA/s / 3.125 = mA/shot
# A = C/s --> mA/shot = (mC/s)/shot = (nC/us)/shot
# 288 m / c = 0.96 us
# mA/shot * 0.96 us = nC / shot
# ABODI-DPCT:EXT-CURR.EGU "nC"
field(CALC, "A ? (B/60/3.125*0.96 / C * 100) : D")
field(SCAN, "Passive")
field(INPA, "$(DEVICE):INJECTION-ACTIVE")
field(INPB, "$(DEVICE):INJECTION-RATE")
field(INPC, "ABODI-DPCT:EXT-CURR")
field(INPD, "$(DEVICE):TRANSMISSION.LD")
}
record(calcout, "$(DEVICE):LIFETIME"){
field(DESC, "Lifetime calculation")
field(PREC, "3")
field(EGU, "hours")
field(VAL, "0")
field(CALC, "A > 300 ? C : B")
field(SCAN, "Passive")
field(INPA, "ARS07-DPCT-0000:CURR CPP")
field(INPB, "AGEBD-TAUBPM:TAU CPP")
field(INPC, "AGEBD-TAUPCT:TAU CPP")
}
record(calcout, "$(DEVICE):INJECTION-ACTIVE"){
field(DESC, "Injection active")
field(VAL, "0")
field(CALC, "A & B & !!C & D & E & F & G & H & I & !J & K & L")
field(INPA, "AGETI-CVME-MASTER-TMA:SR-Inj-Guard-Status-I CP")
field(INPB, "AGETI-CVME-MASTER-TMA:SR-Inj-Status-Sel CP")
field(INPC, "ALIRF-VME-A-GUN:CH1-MODE CP")
field(INPD, "AGETI-CVME-MASTER-TMA:Evt-LI-Gun-Ena-Sel CP")
field(INPE, "AGETI-CVME-MASTER-TMA:Evt-BO-Inj-Ena-Sel CP")
field(INPF, "AGETI-CVME-MASTER-TMA:Evt-BO-MA-B-Ena-Sel CP")
field(INPG, "AGETI-CVME-MASTER-TMA:Evt-BO-Ramp-Ena-Sel CP")
field(INPH, "AGETI-CVME-MASTER-TMA:Evt-BO-Ext-Ena-Sel CP")
field(INPI, "AGETI-CVME-MASTER-TMA:Evt-SR-Inj-Ena-Sel CP")
field(INPJ, "AGESA-SBDC-0000:SUM_INPUT_NOT_OK_LATCHED CP")
field(INPK, "AGETI-CVME-MASTER-TMA:SR-Inj-Trigger-I CP")
field(INPL, "AGEBD-TIMING:GO CP")
}
@@ -0,0 +1,4 @@
epicsEnvSet("ENGINEER", "armborst")
require array
require SynApps
addScan 300