|Developer(s)||Free software community|
|Initial release||January 19, 1994|
3.15.6 / October 11, 2018
22.214.171.124 / November 1, 2019
|License||EPICS Open License|
The Experimental Physics and Industrial Control System (EPICS) is a set of software tools and applications used to develop and implement distributed control systems to operate devices such as particle accelerators, telescopes and other large experiments. The tools are designed to help develop systems which often feature large numbers of networked computers delivering control and feedback. They also provide SCADA capabilities.
EPICS was initially developed as the Ground Test Accelerator Controls System (GTACS) at Los Alamos National Laboratory (LANL) in 1988 by Bob Dalesio, Jeff Hill et al. In 1989, Marty Kraimer from Argonne National Laboratory (ANL) came to work alongside the GTA controls team for 6 months, bringing his experience from his work on the Advanced Photon Source (APS) Control System to the project. The resulting software was renamed EPICS and was presented at the International Conference on Accelerator and Large Experimental Physics Control Systems (ICALEPCS) in 1991.
EPICS was originally available under a commercial license, with enhanced versions sold by Tate & Kinetic Systems. Licenses for collaborators were free but required a legal agreement with LANL and APS. An EPICS community was established and development grew, as more facilities joined in with the collaboration. In February 2004, EPICS became freely distributable after its release under the EPICS Open License.
It is now used and developed by over 50 large science institutions worldwide, as well as by several commercial companies.
EPICS uses client/server and publish/subscribe techniques to communicate between computers. Servers, the “input/output controllers” (IOCs), collect experiment and control data in real-time using the measurement instruments attached to them. This information is then provided to clients using the high bandwidth Channel Access (CA), or the recently added pvAccess networking protocol, which are designed to suit real-time applications such as scientific experiments.
IOCs hold and run a database of 'records' which represent either devices or aspects of the devices to be controlled. They can be hosted by either stock-standard servers or PCs, or VME, or MicroTCA standard embedded system processors. For ‘hard real-time’ applications the RTEMS or VxWorks operating systems are normally used, whereas ‘soft real-time’ applications run on Linux or Microsoft Windows.
Data held in the database of records are represented by unique identifiers, known as Process Variables (PVs). These PVs are accessible over the channels provided by the Channel Access network protocol.
Database records are available for different types of input and output (eg analog or binary) or to provide different functional behaviour such as a calculation record. It is also possible to create custom record types. Each record consists of a set of fields which hold its data, and specify its behaviour. Most record types are listed in the EPICS record reference manual.
Graphical user interface packages are available, allowing users to view and interact with PV data via typical display widgets such as dials and text boxes. Examples include EDM (Extensible Display Manager), MEDM (Motif/EDM), and CSS.
Any software which implements the CA/pvAccess protocol can read and write PV values. Extension packages are available to provide support for MATLAB, LabVIEW, Perl, Python, Tcl, ActiveX, etc. These can be used to write scripts to interact with EPICS controlled equipment.
Facilities using EPICS
- BiRa Systems
- Observatory Sciences
- Osprey Distributed Control Systems
- Varian Medical Systems
- Kozubal, A.J.; Kerstiens, D.M.; Hill, J.O.; Dalesio, L.R. (1990). "Run-time environment and application tools for the ground test accelerator control system". Nuclear Instruments and Methods in Physics Research Section A: Accelerators, Spectrometers, Detectors and Associated Equipment. 293 (1–2): 288–291. doi:10.1016/0168-9002(90)91446-I.
- "EPICS Architecture" (PDF). EPICS - Experimental Physics and Industrial Control System.
- "EPICS Open License". EPICS - Experimental Physics and Industrial Control System.