Convention for Signal Names
Starting with the preparations for the MLS control system (Willy-Wien-Lab) we have agreed on a soft convention about signal names, i.e. the part of EPICS record names that follow the last colon. The naming convention for the first part of a record name (Device Name) is described in BESSY's
Device Naming Convention document.
The status of this convention is a
strong suggestion. Creating signal names that do not follow these rules has to be well-justified (and the reasons documented).
Signal Names will have multiple parts. This convention will give guidelines for the first parts of a signal name, defining the follwing (end) part of the name will always be left freely to the database designer.
General Style Rules
Separation between parts of the Signal Name should be done by using upper case characters in the middle of the name. Do not use underscores ("_") or dashes ("-") to separate name parts. For the first name parts under this convention upper case separation is mandatory, for the free part it is strongly advised.
For some signals (e.g. single bit status channels) the second part (Signal Item) is not mandatory. Nevertheless - in all cases the database designer should use both defined parts if possible, as this makes name parsing, finding channels in the archiver, and similar tasks much easier.
First Part: Signal Type
The Signal Type specifies the type of signal in terms of function, direction of data flow, and value type (analog/digital). The first table contains types for channels that are part of a devices' public interface, the second table applies to channels that are internal to complex databases.
Public Channels
Tag | Name | Attributes |
set | set point | analog, to device |
rdbk | readback | analog, from device |
cmd | command | command executed by device, to device |
sel | mode select | select one-of-many mode, to device |
stat | status | binary (single or one-of-many), from device |
Private Channels
Tag | Name | Attributes |
var | variable | passive record to just store stuff |
mbox | mailbox | similar |
buf | buffer | similar, for arrays |
calc | calculation | calculation of values |
cnt | counter | counting time or events |
fwd | forward | forward values between records |
sel | select | select a mode or position |
in | input | raw value, from device |
out | output | raw value, to device |
raw | raw value | raw value, bidirectional |
bits | bitfield | raw value, multibit (mbbiDirect, mbboDirect) |
map | mapping | bit mapping |
Second Part: Signal Item
The Signal Item specifies the kind of item or value that the signal consists of. While the Signal Type describes the signal in term of control system features, the Signal Item gives a hint to the physical (or physicist) meaning of the value. The first table contains Signal Items for digital signals, while the second table is meant to describe analog kinds.
Digital Channels
Tag | Name | Attributes |
Pwr | | device mains power |
Access | | access mode (local/remote) |
Reset | | reset command |
Trig | Trigger | triggered devices |
Gate | | gated devices |
Switch | Switch | read a hardware switch |
Door | | door status |
Ilock | Interlock | interlock signal |
Relay | | relay state |
Watchdog | | watchdog status |
Detect | | detector status |
One-of-Many Signals |
Outp | Output | output selector |
Pos | Position | position selector |
Runmode | | run mode |
Single "Error" Bits |
Over | | exceeding an upper limit |
Under | | exceeding a lower limit |
Range | | out of range |
Tol | Tolerance | out of tolerance |
Valid | Validity | signal is valid |
Ground | | ground fault |
Fail | Failure | failure |
Break | Circuit Breaker | circuit breaker status |
Leak | Leak Detector | leak detector status |
Replace | | notification to replace something |
Analog Channels
Tag | Name | Attributes |
Angle | | angular sensors |
Curr | Current | all kinds of electrical currents |
Ampl | Amplitude | signal amplitude |
Field | | magnetic and electric field strength |
Flow | | mechnical currents: air or water flow |
Freq | Frequency | generators |
Delay | | pulse delay |
Width | | pulse width |
Gap | | undulators |
Level | | all kinds of levels and thresholds |
Press | Pressure | pressure sensors |
Shift | | undulators |
Temp | Temperature | temperature sensors |
Time | | time (absolute and relative) |
Timeout | | timeout |
Count | | counter value |
Volt | Voltage | electrical voltage |
Power | | electrical Power |
Strings
Examples
Just some examples to give an idea of the intentions...
Name | Description |
cmdPowerOff | command to switch device OFF |
cmdPowerStandby | command to switch device STANDBY |
cmdPowerOn | command to switch device ON |
selRunMode | select run mode |
statRunMode | run mode status |
statReplaceBottle | "Replace Bottle" indicator |
calcCmdWord0 | internal calc to combine command bits |
outCmdWord0 | output rec connected to HW that writes the command word |
inStatWord2 | input rec connected to HW for status word |
statPower | power status: ON/STANDBY/OFF |
setVolt | ps: voltage setpoint |
rdbkVolt | ps: voltage readback |
rdbkCurr | ps: current readback |
rdbkTemp01 | temperature readback |
rdbkTemp02 | dito |
setLevelOverflowAlarm | sets the threshold for signalling overflow |
setTimeout | sets a timeout (start) value |
cntTimeout | timeout counter |
varSelectionMask | selection mask buffer (seq.SELL points to this) |
Additions
This convention is not fixed nor finished!
If you find you have to name a channel and you don't see a way to generate a name with the existing tags, feel free to suggest extensions to these tables. We should discuss suggestions at one of the regular group meetings and collaborate to make these naming conventions work for everyone.
--
RalphLange - 13 Apr 2006