The lower level of GM/CA control system is constituted by EPICS. EPICS is an abbreviation for "Experimental Physics and Industrial Control System", a distributed hardware control system widely deployed at the APS and other synchrotron radiation facilities. In EPICS each hardware component is interfaced via a database server called input-output controller (IOC).
GM/CA runs multiple IOC for each beamline:
EPICS allows multiple client programs to access the IOC
and control hardware in parallel. While our main user interface software
is JBluIce/PyBluIce, manual and semi-automated
procedures, for example interfacing beamline intensity feedback, can be
performed with other EPICS tools such as MEDM and
CaQtDMscreens, StripTool (time plots)
and various automation scripts. Most of relevant EPICS
tools are available via the Beamline Controls Toolbar,
which can be accessed either from the JBluIce/PyBluIce Tools menu,
or by opening a terminal window and typing 23i, 23o, or 23b for the 23ID-D,
23ID-B or 23BM beamline respectively, or by pressing the
icon on the computer desktop (the color may vary per beamline).
Our main EPICS development platform is Linux Mint, a clone of Ubuntu LTS Linux operating system. In 2024 during the APS-U upgrade the beamline control system was fully redesigned. Before APS-U most of beamline controls was utilizing VME-type electronics residing in VME crates operating under the VxWorks operating system. It also included the previous generation of PMAC motion controllers, Turbo PMAC2 VME Ultralite. The VME standard developed around 1980 and VxWorks first released in 1987 became largely outdated. Therefore in 2024 we utilized the users operations pause related to the APS-U construction and fully eliminated VxWorks from the GMCA beamline controls.
The core of the whole control system are PowerPMAC motion controllers that we made available in EPICS. The advantages of these controllers are (see the picture below):
Using these controllers we implemented on-the-fly scans for beamline
alignment. The scans are partially based on an open-source FastScans
project formerly carried by Elena Kondrashkina and Sergey Stepanov
while they were employed at BioCAT.
The package consists of a number of programs written in C language with
user-friendly GUI frontend developed in Java.
As illustrated by the scan plot, the actual motion time of the shutter is about 12.5 ms and the beam blocking occurs within 2.5 ms.
> JBluIce/PyBluIce - EPICS source distribution