It's based on a hierarchical structure using colons (:) as separators. Inspired by experience and seeing the previous naming conventions.
Often in OPI and in configuration you'll find a iocprefix that normally maps to a P macro and a iocroot that maps to a R macro.
This logic separation between P and R (not always present) is similar to directory and file and often helps in OPIs visualisation that often wants to deal just with the root of the element name and now with the full path of a PV.
RECORDS must be unique.
The general structure is:
<---------------------------------------PV----------------------------------------------------------------------------->
<---------------------------------------RECORD-------------------------------------------------------------->
<------------------------P--------------><------------------------------R---------------------><beamline>:<domain>[:<location>]|[:<subsystem>]:<device/component/softioc>:<attribute>[.<field>] (VAL is default)
location and subsystem should be mutually exclusive. If make really sense explicit both information in PV can be done true '-'.
If the beam layout defines Sections and Subsections location should be in the form <sec>-<subsec>
Devices that dont belongs a bigger system should be associated to a location on the layout. Some other belongs to a subsystem like camera,motors that are part of a Screen/Flag. Others cannot be associated to physical location (es. software IOC that performs algorithms).
Records ending in _RB are intended readbacks and are ReadOnly.Records ending in _SP are intended setpoint and are Read&Write.Examples:
| Beamline | Domain | Location | Subsystem | device/element | Attribute |
|---|---|---|---|---|
| SPARC | VAC | LINAC (location) | VGA01 | PRES |
| BTF | VAC | BTFH2 (location) | SIP01 | PRES |
| EUAPS | COL | LINAC (location) | SMC01 | TEMP |
| LEL | MAG | M1(location) | QUA01 | CURRENT |
| LEL | DIAG | M1 (location) | BPM01 | X |
| SPARC | DIAG | GUNFLG (Subsystem) | CAM01 | array |
| SPARC | DIAG | GUNFLG (Subsystem) | MOT01 | POS |
| SPARC | DIAG | GUNFLG (Subsystem) | ILLM01 | STATE |
| LEL | DIAG | SCN01 | CAM01 | array |
| LEL | DIAG | SCN01 | MOT01 | POS |
| LEL | DIAG | SCN01 | ILLM01 | ON/OFF |
| LEL | DIAG | M1-SCN02 (Location & Subsystem) | CAM01 | ,,, |
| SPARC | TIM | MRF01 (Subsystem) | EVG01 | ... |
| SPARC | TIM | MRF01 (Subsystem) | EVR01 | .. |
| SPARC | RF | KLY01 (Subsystem) | KLYLOOP_S1 | ... |