EPICS-for-Dummies

Glossary

Every acronym and term used in this guide. EPICS conversations are dense with these, and nobody expands them.

A–C

ADCore — The core of areaDetector; the plugin framework all detector drivers build on.

ai / ao — Analog input / analog output record types. The most common record types in existence.

Alarm — A record’s abnormal-state indication, expressed as severity and status. Not the same as an interlock.

Alias — A second PV name for the same record, declared with alias(). Useful during renaming campaigns.

ALH — Alarm Handler. The legacy Motif alarm GUI, superseded by the Phoebus alarm system.

AOI — Area of interest. A cropped region of a detector image, in areaDetector terms.

APS — Advanced Photon Source, Argonne National Laboratory. Co-birthplace of EPICS.

Archiver Appliance — The scalable EPICS archiver, originally from SLAC, now community-maintained.

AS / ASG / ACFAccess Security; Access Security Group; Access Configuration File. EPICS’s built-in write-permission mechanism.

asynThe universal I/O abstraction module. Serial, TCP, UDP, GPIB, USB, and the asynPortDriver C++ base class.

AutosaveModule that periodically writes PV values to disk and restores them at IOC boot.

BaseEPICS Base. The core: build system, libraries, protocol implementations, standard record types, softIoc.

BEAST — Best Ever Alarm System Toolkit. The CS-Studio-era alarm system; its successor is the Kafka-based Phoebus alarm system.

BlueskyExperiment orchestration framework from NSLS-II. Python; sits above EPICS.

BPM — Beam Position Monitor. In light sources, typically a four-button electrode assembly plus digitiser electronics.

BSA / BSAS — Beam Synchronous Acquisition (SLAC). Timestamp-correlated data capture across many IOCs.

bi / bo — Binary input / binary output record types. One bit, two states, named strings for each.

CAChannel Access. The original EPICS network protocol.

caget / caput / camonitor / cainfo — The Channel Access command-line tools. See the cheat sheet.

calc / calcout — Record types evaluating an arithmetic/logical expression over up to twelve inputs. calcout can also write an output and act on a delay.

caLab — LabVIEW Channel Access bindings.

caprotoPure-Python Channel Access implementation, client and server.

caPutLogModule that logs every Channel Access write: who, from where, old value, new value.

caQtDMQt-based display manager; reads MEDM .adl files. Popular at PSI and in Europe.

CATCA / CAJ — Java Channel Access implementations, now inside epicsCoreJava.

ChannelFinderDirectory service mapping PV names to properties and tags.

CS-Studio — Control System Studio. The Eclipse-based toolset; its modern, Eclipse-free successor is Phoebus.

CPMU — Cryogenic Permanent Magnet Undulator. An insertion device cooled to ~80 K for higher field.

D–I

DAQ — Data acquisition.

DBD — Database Definition file. Declares record types, device supports, drivers, and menus available to an IOC.

dbior / dbl / dbpr / dbtr — IOC shell commands: report driver state, list records, print a record, test-process a record.

DBWRDisplay Builder Web Runtime. Renders Phoebus displays in a browser.

DCCT — DC Current Transformer. Measures stored beam current non-destructively.

Device support — The layer adapting a record type to a device class, selected by the DTYP field.

DTYP — Device TYPe: the record field naming which device support to use.

e3ESS EPICS Environment. ESS’s module build and deployment framework.

EDM — Extensible Display Manager. Legacy Motif OPI tool; still in production at several labs.

EGU — Engineering UnitS. The record field holding the unit string.

ELOGElectronic logbook, PSI’s implementation.

Emittance — Beam phase-space area. Lower is better for a light source; the figure of merit for 4th-generation rings.

epicsdebDebian/Ubuntu packaging of EPICS Base and modules.

epics-containersContainer-based IOC deployment framework from Diamond Light Source; includes ibek and PVI.

ESS — European Spallation Source, Lund, Sweden.

ether_ipAllen-Bradley ControlLogix/CompactLogix driver speaking EtherNet/IP.

EVG / EVR — Event Generator / Event Receiver. Timing system hardware, typically Micro-Research Finland, driven by mrfioc2.

FLNK — Forward LiNK. The record field naming the next record to process after this one.

FOFB — Fast Orbit Feedback. kHz-rate closed loop holding the electron beam position stable. FPGA-based; EPICS configures and monitors it.

Front end — In a light source, the shielded assembly between the storage ring and a beamline: shutters, slits, masks, absorbers, valves.

Gateway — A process bridging two network segments at the CA or PVA level, usually adding access control and reducing server load.

ibekIOC Builder for EPICS and Kubernetes. Generates st.cmd from YAML.

ID — Insertion Device. An undulator or wiggler in a straight section; the light source for most beamlines.

INVALID — The alarm severity meaning “this value cannot be trusted”. Not a magnitude.

I/O Intr — A SCAN value: process when the driver says there’s new data, rather than on a clock.

IOCInput/Output Controller. A process that owns PVs and serves them on the network.

iocStats / devIocStatsModule exposing IOC health as PVs: CPU, memory, uptime, CA client count.

ipac — IndustryPack carrier support for VME. Legacy but alive.

J–P

JCA — Java Channel Access.

LLRF — Low-Level RF. The control loops regulating cavity amplitude and phase. FPGA-based; EPICS sets points and reads diagnostics.

LewisDevice simulation framework — pretends to be an instrument on a TCP or serial port.

MASAR — MAchine Snapshot, Archiving, and Retrieval. An earlier save/restore service.

MBA — Multi-Bend Achromat. The lattice design that defines 4th-generation storage rings.

mbbi / mbbo — Multi-Bit Binary In / Out. Enumerated record types: up to sixteen named states.

MEDM — Motif Editor and Display Manager. The original EPICS OPI tool; .adl files. Largely superseded, widely still installed.

ModbusIndustrial protocol (TCP and serial) with an EPICS module of the same name.

motorThe motion control module. Provides the motor record and dozens of controller drivers.

MPS — Machine Protection System. Protects equipment from beam. Not EPICS. See machine protection.

mrfioc2Driver for Micro-Research Finland timing hardware.

NDArray / NDPlugin — areaDetector’s image buffer type and its plugin base class.

NeXusHDF5-based scientific data format standard for neutron, X-ray and muon science.

Normative types — The standard PV Access structure definitions (NTScalar, NTNDArray, NTTable, …) that make structured data interoperable.

NSLS-II — National Synchrotron Light Source II, Brookhaven.

OlogElectronic logbook integrated with Phoebus.

ophyd / ophyd-asyncBluesky’s device abstraction layer; wraps EPICS PVs as Python objects with a uniform interface.

OPI — Operator Interface. A screen; also the file format thereof (Phoebus .bob, older .opi).

OPC UA — Industrial interoperability standard; the EPICS opcua module is a client for it.

p4pPython bindings to PVA, built on PVXS. Includes a PVA gateway and server.

pcaspyPython Channel Access server framework. Quick fake IOCs.

PPS — Personnel Protection System. Life safety. Certified PLCs and hard-wired logic. Absolutely not EPICS.

procServProcess supervisor giving an IOC a telnet-accessible console and automatic restart.

PVProcess Variable.

pvAccess / PVAThe EPICS 7 network protocol.

pvaPy — Python bindings to the C++ pvAccess implementation.

pva2pva — The original PVA-to-PVA gateway; superseded in practice by the p4p gateway.

PVIProcess Variable Interface. Generates screens and device docs from one device description.

pvinfoWeb front end to ChannelFinder.

PVWSPV Web Socket. WebSocket bridge exposing PVs to browsers.

PVXSThe modern C++ PVA library. Replaces pvAccessCPP for new work.

pyDeviceModule letting record processing call Python inside the IOC.

PyDMPython Display Manager from SLAC. PyQt-based OPI toolkit.

PyEpicsThe most widely used Python CA client library.

pythonSoftIOCDiamond’s library for writing a real IOC in Python.

R–Z

RDB archiver — The Phoebus archive engine writing to a relational database.

RecordThe implementation of a PV inside an IOC.

recsync / RecCaster / RecCeiverThe module by which IOCs self-report their record lists into ChannelFinder.

RTOS — Real-Time Operating System. RTEMS and VxWorks are the EPICS-supported ones.

Save & restore — Capturing and reapplying sets of PV values. Phoebus service at facility level; autosave inside an IOC.

SCAN — The record field controlling when a record processes.

Scan serverPhoebus service executing experiment scan sequences.

SEVR / STAT — The record fields holding current alarm severity and status.

SNL / seq — State Notation Language and the Sequencer. A C-like language for finite state machines running inside an IOC.

SNS — Spallation Neutron Source, Oak Ridge. Source of much EPICS training material and many services.

Soft IOC — An IOC with no local hardware I/O.

sscanModule implementing multi-dimensional scans entirely inside the IOC.

SSA — Solid State Amplifier. Modern replacement for klystrons in storage ring RF.

StreamDeviceProtocol-description-driven device support. Talk to an ASCII instrument without writing C.

st.cmd — An IOC’s startup script.

Substitutions / template — The macro-expansion mechanism for instantiating many similar records.

synAppsCurated collection of EPICS modules from APS/BCDA, released as a tested set.

TiledData access service from the Bluesky project.

Top-up — Injecting electrons into a storage ring every few minutes to hold current constant, rather than refilling from empty.

VDCTVisual Database Configuration Tool. Graphical .db editor; Java, legacy, still used.

VME / VXI / MTCA — Crate standards for control and diagnostics electronics. MicroTCA is the modern choice for fast diagnostics.

waveform — The record type holding an array.

Xopt / Badger / OcelotOptimisation and online-tuning frameworks that drive accelerators through EPICS.