EPICS-for-Dummies

Your First Week at a Facility

This guide says “this is site-specific and not in this guide” on about eight different pages. That’s honest, and on its own it’s useless. This page turns it into a list of questions to ask.

Why this matters: the most important knowledge at any facility is the part that was never written down. How IOCs get deployed, where the environment comes from, who owns the naming convention, what happens if you restart something during a user run — none of it is on the internet, all of it is in your colleagues’ heads, and most of them have forgotten that they ever had to learn it.

Asking these questions in week one is normal and expected. Asking them in month six, after you’ve broken something, is worse.

!!! tip “Write the answers down” Not for you — for the next person. A page in your team’s wiki called “how our controls system actually works” is one of the more valuable things a new starter can produce, precisely because you can still see what isn’t obvious. Six months from now you won’t be able to.

The environment

Everything else depends on getting this right.

The last question is the one to ask hardest. If the answer is “we develop against production”, that’s important to know on day one rather than day thirty.

Deployment

The most site-specific area in all of EPICS, and the one where guessing causes the most damage.

Conventions

The services

For each of these: does it exist, where is it, and who owns it?

Service What to ask
Archiver Which one? How do I check whether a PV is archived? How do I get one added?
Alarms How do I add an alarm? Who reviews the alarm list? Am I on an on-call rota?
Directory service Is there ChannelFinder? Can I query “which IOC serves this PV?”
Save & restore What are the golden configurations, and who may restore them?
Logbook Which one, and what’s the expectation for logging your own work?
caPutLog Is every write logged? Where can I read it?
Gateways What crosses which boundary, and who maintains the rule files?
Monitoring Is there a control-system health dashboard? Do IOCs have heartbeats?

Safety, and the boundary

Ask these early, explicitly, and don’t infer the answers.

!!! danger “If anyone tells you an interlock is implemented in EPICS” That’s worth escalating rather than accepting. EPICS has no safety certification, and a protection function implemented in a calc record is a serious finding — not a quirk of local practice to work around.

The machine itself

You’re supporting a physics instrument, and the physics is not optional context.

The people

History

The questions that explain why things are strange.

What to do in week one

A concrete plan, if you’d like one:

  1. Get the environment working, and successfully caget a real PV. If this takes two days, that’s normal and it’s information about the facility.
  2. Read your facility’s naming convention document end to end.
  3. Find one IOC’s source, read its st.cmd and its databases, and work out what every line does. Ask about the parts you can’t.
  4. Sit with the operators for a shift.
  5. Deploy something trivial — with supervision — through the full local process, so you learn the pipeline before you need it under pressure.
  6. Write down what you learned, including the questions nobody could answer. Those are the interesting ones.

And a word on the questions nobody can answer

You will ask some of the above and get “hmm, nobody really knows” or “that’s just how it’s always been”. Those answers are findings, not dead ends. Write them down. A newcomer’s list of unanswerable questions is often the most accurate available survey of a facility’s technical debt — and being the person who documented it is a much better first contribution than being the person who quietly worked around it.

Next

The Toolbox to put names to what you find, or the Example Facility to see one set of answers written out in full.