Difference between revisions of "EPICS for Dummies"
Jump to navigation
Jump to search
Line 1: | Line 1: | ||
<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> | |||
=== What is an IOC? === | === What is an IOC? === | ||
Line 9: | 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> | |||
=== What is a PV? === | === What is a PV? === | ||
Line 15: | 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> | |||
=== What is a record? === | === What is a record? === | ||
Line 34: | Line 35: | ||
* 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> | |||
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.