Difference between revisions of "EPICS for Dummies"
Jump to navigation
Jump to search
Line 32: | Line 32: | ||
== What is a record field? == | === 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*) | |||
**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) | |||
**SCAN - determines when a record processes | |||
**DISP - disable puts (ca & pva) 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 == | == More about records == |
Revision as of 16:46, 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*)
- 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)
- SCAN - determines when a record processes
- DISP - disable puts (ca & pva) 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.