SPEAR Controls

IOC and Host Programs

Quick Links


IOC Applications

Name Brief Description Machine or Process Source
Orbit Interlock Interface IP module interface for orbit interlock reset and test and status of bypass, BPLD, beam current, RF enable, beamline open, and beamline stoppers. Summary Chassis Logic Block Diagram. Multi-Use IOC $EPICS/app/MultiUse/
Control Room Interface IP module interface for bucket and state display, kicker trigger enable, audio alarms, and bucket buttons, control and strobe. Multi-Use IOC $EPICS/app/MultiUse/
Beam Loss Monitor BLM scaler counters. Multi-Use IOC $EPICS/app/MultiUse/
BTS and LTB Toroids Toroid charge acquisition from CAEN QDCs. BTS Toroid Calibration Description. Multi-Use IOC,
$EPICS/app/MultiUse, $EPICS/app/BPM/transBpmApp, $EPICS/modules/spearUtils/spearUtils/devPsm
BPM RMS Calculation BPM orbit U and V RMS calculation Multi-Use IOC $EPICS/app/MultiUse/multiUseApp/src/BPMRMSCalc.st
Feedback Monitor Checks that either fast or slow feedback is running and BPM RMS is OK. Triggers a BPM orbit history dump and control room audible alarm when problems. Multi-Use IOC $EPICS/app/MultiUse/multiUseApp/src/fdbkMon.st
Beam Orbit Post-Mortem Dump Triggers a BPM orbit post-mortem dump on orbit interlock fault. Multi-Use IOC $EPICS/app/MultiUse/multiUseApp/src/beamDump.st
BuckoMat Automatic injection of booster beam into SPEAR buckets Multi-Use IOC $EPICS/app/MultiUse/multiUseApp/src/buckoMat.st
VME Crate Canbus Interface CANbus interface for monitor/control of all Wiener VME crates. Multi-Use IOC $EPICS/app/MultiUse/
VME Crate Ethernet Interface Ethernet interface for monitor/control of ethernet VME crates. Also, IOC monitoring. Shared with LCLS. soft-iocmgr $EPICS/app/IOCManager/
Alarm Handler (ALH) Support Records for alarms on operator displays and for the alarm handler. Shared with LCLS. soft-iocalh-* $EPICS/app/ALARMS/
Bucket Select SPEAR bucket pattern selection for use by BuckoMat. Sets the count of the number of shots each of 372 buckets gets during injection. Includes the active pattern and 9 pattern savesets. soft-iocbucket $EPICS/app/EtherIoc/etherIocApp/Db/bucket*
PicoHarp Interface Picoharp EPICS application from Diamond Light Source. soft-iocpicoharp $EPICS/app/PicoHarp
SPEAR Scraper Interface to motors used for the SPEAR scraper.
Scraper IOC
ID Interface Interface to motors used for beamline insertion devices. IVUN torque limiter. Multiple encoder tracking. BL12-2 IOC,
BL4,11,13 IOC,
BL7,9,10 IOC,
BL5,6,15 IOC
ID Remote Control ID remote control. soft-iocidctrl $EPICS/app/MotionControlSPEAR/
ID Interlocks BL5 Vertical Polarization soft-iocidintlk $EPICS/app/MotionControlSPEAR/
Beamline Parameters Beamline calculations including period, magnetic field, K, and power. soft-iocidctrl $EPICS/app/MotionControlSPEAR/
ID Trim and Quad Tracking Trim and quad tracking power supply control for insertion devices. BL5 Quad Tracking Operator Instructions. soft-iocmcortrim $EPICS/app/Mcor/trimMcorApp
PPS PLC Interface Interface to all PPS PLCs. ALARA injector lost charge (LTB stoppers) interlock. soft-iocpps $EPICS/app/EtherIoc/etherIocApp/Db/many files
MPS PLC Interface Interface to all MPS injection, spear, and beamline PLCs. ALARA spear lost charge (PR2 stopper) and chopper gamma dose (linac RF) interlocks. soft-iocmpsbl, soft-iocmpinj, soft-iocmpsspr $EPICS/app/EtherIoc/etherIocApp/Db/many files
ALARA Lost Charge and Gamma Dose Integration ALARA spear and injector lost charge integration and chopper gamma dose integration for running hour (updating every second) and running day (updating every hour).SAPE 273 has the interlock checkout procedure. soft-iocalara $EPICS/app/Alara/alaraApp
SRS DG535 Timing Monitor and control the SRS DG535 delay generators. soft-iocgpib $EPICS/app/EtherIoc/etherIocApp/Db/DG*, kicker_timing*
RF Frequency Read RF frequency in SPEAR, booster, and linac via Agilent Hp53181A frequency counters. Set SPEAR RF frequency and BPM test tone via PTS 500 frequency synthesizers. soft-iocgpib $EPICS/app/EtherIoc/etherIocApp/Db/gpib*
Linac RF Frequency Synchronization Synchronize linac frequency at the time of booster injection. Linac PAC IOC $EPICS/app/PAC/
Beam Current and Charge from DVMs Monitors Keithley 2002 multimeters to acquire DCCT and NPCT beam current readouts. Performs beam current calculations including average, lifetime, vacuum quality, and loss rate for 4 time intervals: Fast (1 sec), 10 sec, 60 sec, slow (180 sec). Calculates 1 second spear beam charge. Updates beam current for CURMON2 and the curmon web display. See the DCCT overview and DCCT data acquisition presentations. soft-iocgpib $EPICS/app/EtherIoc/
Beam Current and Charge from SCI Acquires DCCT and NPCT beam currents from the stored current interlock (SCI) chassis at 10Hz. Calculates ALARA 1 second spear beam charge. Scraper IOC $EPICS/app/Motor/
Matlab Interface PVs used by production matlab programs so that matlab calculations can be added to history plot (readbacks) and to allow operator input for matlab programs without GUIs in the control room (setpoints). Matlab programs must use the labCA interface to access PVs so that automatic reconnections are made after IOC restart. soft-iocmatlab $EPICS/app/EtherIoc/etherIocApp/Db/config*, pinhole*, injectionControl*, controller*, blds*
Camera Interface Interface to screen cameras. soft-ioccam-* $EPICS/app/Camera/
Camera Screen Control PLC Interface Camera screen control except BTS cameras. soft-ioccam-watcher $EPICS/app/Camera/cameraApp/Db/camera_request*
Camera Watcher Monitor cameras and power-cycle and restart camera IOCs when communication errors. soft-ioccam-watcher $EPICS/app/Camera/cameraApp/src/Watcher.st
HLS Interface Gets Hydrostatic Leveling System (HLS) water levels around the beamlines. soft-iochls $EPICS/app/EtherIoc/etherIocApp/Db/hls*
Teslameter Hall Probes Gets injector hall probe values from teslameters. soft-ioctesla $EPICS/app/EtherIoc/etherIocApp/Db/hall*
SRS SR630 Temperatures Gets booster RF and linac temperatures from SRS SR630 thermocouple monitors. soft-ioctesla $EPICS/app/EtherIoc/etherIocApp/Db/tempControlBOO-RF*
Beamline Mirror LCW Temperature Interface Get temperature readout from all beamline mirror LCW supply temperature controllers. soft-ioctemp $EPICS/app/EtherIoc/etherIocApp/Db/tempControl*
LCW Mettler-Toledo M800 Interface Get LCW dissolved O2, pH, and conductivity from M800 using RS485. soft-ioclcw $EPICS/app/EtherIoc/etherIocApp/Db/lcwProperties*
Beamline Mirror Pitch Feedback Interface Provide PVs for the LabView beamline mirror pitch feedbacks. soft-ioctemp $EPICS/app/EtherIoc/etherIocApp/Db/fdbk*
Alarm Monitor Interface Provides PVs for the ALARMSEQ process, alarm summaries, and annunciators. Shared with LCLS. soft-iocalh-al00 $EPICS/app/ALARMS/alhPVApp/Db/spear/monitor*, annunicator*
SPEAR and Injector CAMAC Interface Monitors SPEAR and Injector CA server PVs to add calculations and support the alarm handler. Provides slow feedback PVs. PVs for injector and SPEAR BSOICs. Calculate vacuum averages every second. List of vacuum gauges and vacuum ion pumps. soft-ioccamac $EPICS/app/EtherIoc/etherIocApp/Db/camac*, fdbk*, vacuum*
HPI 6030 Radiation Monitor Interface Interface to HPI 6030 (all beamlines and one in the linac) radiation monitors for topoff and monitoring (SAPE 234, SAPE 239, M595). Also, provides PVs for the non-BCS topoff software interlocks and summaries. Configuration control for limits. soft-iocrp $EPICS/app/EtherIoc/etherIocApp/Db/gamma*, rp*, config*
Power Supply (PS) Control SLAC Ethernet and Bitbus PS control. Also, injector PS interface for power supplies served by the injector CA server. SPEAR PS RTEMS IOC, soft-iocpsspr, soft-iocpsinj $EPICS/app/PowerSupply/
SPEAR Kicker, Booster Kicker, and MS1-BDBLK PLC Interface Interface to PLCs for SPEAR and booster kickers and the dipole bulk power supply. Also, interface to the PLC for SPEAR LCW. soft-iocpskick $EPICS/app/PowerSupply/bitPSCApp/Db/plc/many files
psControl Power supply standardization and ramp-off SPEAR PS RTEMS IOC, soft-iocpsspr, soft-iocpsinj $EPICS/app/PowerSupply/bitPSCApp/src/psControl.st
tspControl Power supply current control for TSP flashing and ramp-off soft-iocpsspr $EPICS/app/PowerSupply/bitPSCApp/src/tspControl.st
Pulse Signal Monitoring Digitizer waveform acquisition and processing. ALARA lost charge calculations. SPEAR PS, Linac PSM, Booster PSM IOCs $EPICS/app/PowerSupply/, $EPICS/modules/spearUtils/spearUtils/devPsm
BCS TopOff and SCI Interface Remote digital input and output for Beam Containment System.
SAPE 239 - TopOff Non-BCS Interlock Test.
SAPE 99 - SCI Calibration and Certification.
Stored Current Interlock (SCI) I/O Signals.
SPEAR PS,Motor,Booster PSM RTEMS IOCs $EPICS/app/PowerSupply/
MCOR 4kHz Control
Hardware interface. MCOR IOCs $EPICS/app/Mcor/mcorApp
SPEAR BPMs SPEAR Electron and Photon BPM aquisition SPEAR BPM IOCs $EPICS/app/BPM/bpmAdcApp
Transport Line BPMs (Bergoz) LTB/BTS Electron BPM aquisition using Bergoz instrumentation LTB/BTS BPM IOC $EPICS/app/BPM/transBpmApp
Transport Line BPMs (SLAC) BTS Electron BPM aquisition using SLAC uTCA instrumentation. Shared with LCLS. soft-iocbpminj $EPICS/app/Bpm-ICD
Chopper Control and Interlock On/off control of chopper timing delay generator and ALARA chopper interlock. LTB/BTS BPM IOC $EPICS/app/BPM/transBpmApp
SPEAR RF LLRF hardware interface and slow controls. SPEAR RF IOC $EPICS/app/RF-SPEAR/
Booster RF SSA Modbus control of the RandK solid-state amplifier (SSA) for booster RF. soft-iocssa-boo-rf $EPICS/app/PowerSupply/bitPSCApp/Db/ssa
Booster RF Tuner,MPS,LLRF Engineering Specification
Booster RF Project Docs
Booster RF PDR Docs
Booster RF ICD Docs
4kHz Controls
Fast corrector and BPM features / control
(PDF document here)
Bunch-By-Bunch Feedback
iGp12-372F Signal Processor User Manual, Operator Instructions BxB IOCs
Knob Box Interface Shared with LCLS:
Functional Overview,
Software Architecture,
Knob Hardware README,
Knob Controller README,
SNMP Crate Monitor Wiener Crate monitoring via SNMP protocol:
Note: SNMP should be enabled and set to port 161 on each crate that uses this app. If SNMP is disabled, it can be re-enabled via front-panel switches. See attached manual for instructions.
SNMP Management Support Module
Wiener Minicrate 195 Manual
Wiener 6000 Manual
CAMAC Upgrade VMS to CAMAC Upgrade application:
CAMAC Upgrade Project Docs in slacspace

OpenVMS Host Programs

To restart a program running on SPEAR1, SPEAR3, or INJ02, a SPEAR system manager must log onto the machine running the program, get all privileges, and type the program name which will stop and restart the program. If the symbol for the program name is not available:
set def spear_root:[000000]
To rebuild a program:
set def <path to source code>
mms <program name>
mms production <program name>
Name Description Machine Source
ACM Integral Read linac and BTS ACM values (from local injector control system) and calculate different electron charge integrals. Use the reset mini-procedure to reset the integrals before a new run. INJ02 [INJECTOR.CMSLIB.KERNEL]ACM.C
ALARM_HANDLER Read and store alarm messages, generate notifications as required. SPEAR1,2,3,INJ02 spear_root:[monitoring]alarm_handler.c
ALARMSEQ Manages alarms. SPEAR1 spear_root:[alarms]alarmseq.c
BEAMINT Calculate SPEAR beam integrals every second. Use the reset mini-procedure to reset the integrals before a new run. SPEAR3 spear_root:[beamint]beamint.c
BL_INTRLK Calculate the integrated bremsstrahlung for each beamline (around the beamline source point). Calculate a 1 hour boxcar average and a 24 hour boxcar average. The interlock part of this program is disabled. SPEAR3 spear_root:[monitoring]bl_intrlk.c
BOOSTER_FDBK Booster Extraction Septum Feedback INJ02 user_disk:[wermelsk.injector]booster_fdbk.c
BPMRACKTEMP Turn B116 and B132 BPM rack fans on and off to control temperature. SPEAR3 spear_root:[monitoring]bpmracktemp.c
CALSERVER Return PV values to webserver applications. Steps for editing web pages with PV values. SPEAR1 spear_root:[epics.calserver]calserver.c
CONF_MANAGEMENT Topoff PS configuration control and resistance monitoring, certification SPEAR1 spear_root:[configuration_control]conf_management.c
CRATE_MONITOR Reboot MicroVax and generate an alarm message when a crash is detected. SPEAR3 spear_root:[monitoring]crate_monitor.c
CURMON2 Beam current monitor and interlocks. SPEAR1 spear_root:[curmon2]curmon.c
CURR_INTRLK Limit maximum SPEAR beam current and dump beam if beam current discrepancy SPEAR3 spear_root:[monitoring]curr_intrlk.c
HISTORYLOG_CA History Log Channel Access SPEAR1 spear_root:[history]historylog_ca.c
HISTORYLOG_RDB History Log RDB Update. Use PV Database web page to make changes to history. Changes can also be made using SQL commands. SPEAR1 spear_root:[history]historylog_rdb.c
HISTORYPLOT History Plot Viewer. When a new PV is added to history, historyplot needs to be restarted (or an old run accessed and then the new run). If 5 minutes has elapsed and historyplot still cannot access the new PV, a spear system manager must restart the SQL server and also restart historylog_rdb. Also, it may be necessary to restart historylog_ca if data for other PVs stop updating. SPEAR1,2,3,SSRL spear_root:[history]historyplot.c
INJECTOR_SERVER Channel access server for the injector control system.How to start INJECTOR_SERVER. INJ02 Unknown
IVUN_GAP_INTRLK Protect the BL12-2 and BL15 insertion device in vacuum magnets from radiation from uncontrolled beam. SAPE 178 - IVUN Gap Interlock Test. SPEAR3 spear_root:[monitoring]ivun_gap_intrlk.c
LINAC_FDBK Gun Heater, Linac RFDD, Gun Phase, Linac Klystron Phase and Power Feedbacks INJ02 user_disk:[wermelsk.injector]linac_fdbk.c
MSG_HANDLER Message handler. How to start MSG_HANDLER. SPEAR1,2 spear_root:[monitoring]msg_handler.c
MCC_POWER Get values from Motor Control Center Interfaces and update PVs on soft-iocpsspr. SPEAR1 spear_root:[mcc_power]mcc_power.c
PVSERVER Get record list from each IOC and reply with all corresponding PV setpoints SPEAR1,2 spear_root:[history]pvserver.c
SPEAR_SERVER The SPEAR Control System Upgrade SPEAR3 user_disk:[cox.epics2005.ssrl_servers]
TC_INTRLK Monitor all SPEAR thermocouple readouts. SPEAR3 spear_root:[monitoring]tc_intrlk.c
TSP TSP flashing. IG list per TSP. SPEAR3 spear_root:[tsp]tsp.c
WC_FDBK White Circuit Feedback INJ02 user_disk:[wermelsk.injector]wc_fdbk.c
XCAMAC XCAMAC, cnaf instructions. SPEAR3 spear_root:[xcamac]xcamac.for

Linux Host and Console Programs

Most of the following programs run using the spear AFS account. When one machine (connie or beldar) is down, the other machine is used instead.
Name Description Machine Config Files and Scripts
iocLogMsgServer Receive messages from iocLog clients and send them to the RDB event log via msg_handler connie $EPICS/app/iocLog/
caRepeater Forward IOC beacons to CA clients on this host all N/A
alh Send PV alarms to iocLogMsgServer connie $EPICS/app/alh/
autoFill Compiled matlab script for automatic injection into SPEAR (ake, frequent fill, trickle-charge) connie $SPEAR_MATLAB/automatedFill/
blds Compiled matlab script for beam line dynamic steering connie $SPEAR_MATLAB/blds/
feedbackBooRF Compiled matlab script for booster RF phase stabilization feedback connie $SPEAR_MATLAB/feedbackBooRF/
Xvfb Virtual framebuffer X server required for alh and autoFill all $EPICS/app/alh/
channelWatcher Store PV setpoints and send setpoint changes to iocLogMsgServer connie $EPICS/app/cw/
gateway (public) Serve SPEAR PVs to clients outside the firewall beldar $EPICS/app/gtw/
gateway (SPEAR RF) Serve SPEAR RF (b132-iocrf) PVs to all SPEAR clients connie $EPICS/app/gtw/
Various Programs Soft IOCs all $IOC/soft-ioc*
iocConsole Processes IOC console access using screen all $IOC/screenrc and screeniocs
Extensible Display Manager (EDM) EPICS GUI displays. all SPEAR EDM Design Rules,
SPEAR EDM Presentation
StripTool EPICS GUI strip chart tool all N/A
Matlab Programs Accelerator Physics Matlab Programs all N/A

SPEAR EPICS | EPICS Home | SPEAR Home | SSRL Computing/Networking | SSRL Home | SLAC Computing | SLAC Networking | SLAC Home

Page Created by: Stephanie Allison

Contact: Shantha Condamoor
Last Modified: July 14, 2017