Difference between revisions of "EPICS for Dummies"
Jump to navigation
Jump to search
Line 1: | Line 1: | ||
<br> | <br> | ||
<br> | <br> | ||
== 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. | ||
Line 7: | Line 7: | ||
<br> | <br> | ||
== What is an IOC? == | |||
IOC (Input/Output Controller) is a piece of software running on a computer: | IOC (Input/Output Controller) is a piece of software running on a computer: | ||
Line 15: | Line 15: | ||
<br> | <br> | ||
== What is a PV? == | |||
PV (Process Variables) is a the field from a record: PV = record_name + . + field_name | PV (Process Variables) is a the field from a record: PV = record_name + . + field_name | ||
Line 23: | Line 23: | ||
<br> | <br> | ||
== What is a record? == | |||
Records are the building blocks of EPICS | Records are the building blocks of EPICS | ||
Line 30: | Line 30: | ||
* Records vary significantly in complexity (see #More about records) | * Records vary significantly in complexity (see #More about records) | ||
== More about records == | |||
* Records vary significantly in complexity; one way to classify them would be (*): | * Records vary significantly in complexity; one way to classify them would be (*): |
Revision as of 16:40, 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 (see #More about records)
More about records
- 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. add link to asyn?
- areaDetector databases are composed of mostly simple record.