Difference between revisions of "Common Database patterns"
From EPICSWIKI
(add pull alarm status w/ SDIS) |
|||
Line 1: | Line 1: | ||
== Pull Alarm Status w/o Data == | |||
This is useful to bring alarm status in without affecting the value | |||
stored in a record. In the following example the alarm status of '''$(P):set''' | |||
is fetched by '''$(P):rbv''' when it is processed, but the value is read from | |||
a different record. | |||
record(bo, "$(P):set") { | |||
field(OSEV, "MAJOR") | |||
field(FLNK, "$(P):rbv") | |||
} | |||
record(bi, "$(P):rbv") { | |||
field(SDIS, "$(P):set NPP MS") | |||
field(DISV, "-1") | |||
field(INP , "$(P):some:other:record") | |||
} | |||
== Combined Setting and Readback == | == Combined Setting and Readback == | ||
Latest revision as of 17:59, 23 April 2010
Pull Alarm Status w/o Data
This is useful to bring alarm status in without affecting the value stored in a record. In the following example the alarm status of $(P):set is fetched by $(P):rbv when it is processed, but the value is read from a different record.
record(bo, "$(P):set") { field(OSEV, "MAJOR") field(FLNK, "$(P):rbv") }
record(bi, "$(P):rbv") { field(SDIS, "$(P):set NPP MS") field(DISV, "-1") field(INP , "$(P):some:other:record") }
Combined Setting and Readback
Use when a single PV is desired. Could be used to show the results of rounding in a float to fixed precision conversion.
In the following example the value read from a 'bi' is inverted so that the associated 'bo' acts as a toggle.
record(bi, "$(P):rbv") { field(DTYP, "...") field(INP , "...") field(PINI, "YES") field(FLNK, "$(P):inv") }
record(calcout, "$(P):inv") field(CALC, "!A") field(INPA, "$(P):rbv") field(OUT , "$(P) NPP") }
record(bo, "$(P)") { field(DTYP, "...") field(OUT , "...") field(FLNK, "$(P):rbv") }
The important point is the NPP modifier on output link of the 'calcout' record. This updates the VAL field of the 'bo' record (and posts monitors) without processing it.