Difference between revisions of "EPICS for Dummies"

From Beam Line Controls
Jump to navigation Jump to search
Line 1: Line 1:
<br>
<br>
=== What is EPICS? ===
=== What is EPICS? ===


EPICS (Experimental Physics and Industrial Control System) is a distributed control system, which means that the IOC (software) can run on a different computer as the user interfaces.
EPICS (Experimental Physics and Industrial Control System) is a distributed control system, which means that the IOC (software) can run on a different computer as the user interfaces.
<br>
<br>
=== What is an IOC? ===
=== What is an IOC? ===


Line 10: Line 10:
* used to run on VMEs, but nowadays it runs on anything.  
* used to run on VMEs, but nowadays it runs on anything.  
* usually talks to hardware, but that isn’t a requirement.
* usually talks to hardware, but that isn’t a requirement.
<br>
<br>
=== What is a PV? ===
=== What is a PV? ===


Line 16: Line 16:


Most of the interactive parts of user displays have PVs associated with them.
Most of the interactive parts of user displays have PVs associated with them.
<br>
<br>
=== What is a record? ===
=== What is a record? ===


Line 31: Line 31:
** Flexible records allow custom functionality to be implemented
** Flexible records allow custom functionality to be implemented
*::;sub, aSub, luascript
*::;sub, aSub, luascript
(*) this is not an official classification, nor an exhaustive list of records. <br> <br>
(*) this is not an official classification, nor an exhaustive list of records.<br><br>
Note that:
Note that:
* It is rare for new records to be created, now that asyn device support exists.
* It is rare for new records to be created, now that asyn device support exists.
* areaDetector databases are composed of mostly simple record.
* areaDetector databases are composed of mostly simple record.
<br>
<br>





Revision as of 16:27, 10 February 2023


What is EPICS?

EPICS (Experimental Physics and Industrial Control System) is a distributed control system, which means that the IOC (software) can run on a different computer as the user interfaces.

What is an IOC?

IOC (Input/Output Controller) is a piece of software running on a computer:

  • serves something called process variables (PVs) that you can read and write to
  • used to run on VMEs, but nowadays it runs on anything.
  • usually talks to hardware, but that isn’t a requirement.


What is a PV?

PV (Process Variables) is a the field from a record: PV = record_name + . + field_name

Most of the interactive parts of user displays have PVs associated with them.

What is a record?

Records are the building blocks of EPICS

  • There is a lot of different types of record, and each type is designed to perform a specific function
  • Records are customizable via fields that allow users to configure how they behave and monitor their state.
  • Records vary significantly in complexity; one way to classify them would be (*):
    • Simple records are associated with individual data types
    bi, bo, mbbi, mbbo, longin, longout, ai, ao, stringin, stringout, waveform
    • Intermediate records often perform calculations or link multiple records
    calcout, scalcout, acalcout, swait, transform, fanout, dfanout
    • Complex records are associated with devices or higher-level functionality
    motor, scaler, mca, sscan, table, digitel, vs
    • Flexible records allow custom functionality to be implemented
    sub, aSub, luascript

(*) this is not an official classification, nor an exhaustive list of records.

Note that:

  • It is rare for new records to be created, now that asyn device support exists.
  • areaDetector databases are composed of mostly simple record.






Help: https://www.mediawiki.org/wiki/Help:Formatting