Difference between revisions of "EPICS for Dummies"
Jump to navigation
Jump to search
Line 36: | Line 36: | ||
* Noteworthy fields: | * Noteworthy fields: | ||
**'''VAL''' - the default field (used if no field is specified*) | **'''VAL''' - the default field (used if no field is specified*) | ||
**'''SCAN''' - determines when a record processes | |||
**'''NAME''' - the record name (helpful if records are aliased) | **'''NAME''' - the record name (helpful if records are aliased) | ||
**'''DESC''' - record description | **'''DESC''' - record description | ||
**'''RTYP''' - the record type | **'''RTYP''' - the record type | ||
**'''DTYP''' - the device support type (not meaningful for all record types) | **'''DTYP''' - the device support type (not meaningful for all record types) | ||
**'''DISP''' - disable puts (ca = channel access & pva = pv access) from outside the IOC (when non-zero) | |||
**'''DISP''' - disable puts (ca & pva) from outside the IOC (when non-zero) | |||
**'''DISV/DISA/SDIS''' - disable record processing | **'''DISV/DISA/SDIS''' - disable record processing | ||
***Record processing is disabled when '''DISA''' equals '''DISV''' | ***Record processing is disabled when '''DISA''' equals '''DISV''' |
Revision as of 16:51, 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)
What is a record field?
- A controllable or informative property of a record
- Noteworthy fields:
- VAL - the default field (used if no field is specified*)
- SCAN - determines when a record processes
- NAME - the record name (helpful if records are aliased)
- DESC - record description
- RTYP - the record type
- DTYP - the device support type (not meaningful for all record types)
- DISP - disable puts (ca = channel access & pva = pv access) from outside the IOC (when non-zero)
- DISV/DISA/SDIS - disable record processing
- Record processing is disabled when DISA equals DISV
- DISA is set to the value of the PV in the SDIS field, if it isn't empty
- TPRO - trace processing
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.