Table of Contents
Previous Chapter The wait record is a powerful record type that can be used to do "conditional" processing within the database. Its name is derived from the original requirement that initiated its development, i.e. "I want to wait until all the motors have stopped and then trigger the detector". The sections below describe the capabilities of the record.
A consequence of reassignable links is that one cannot force the processing of an input record prior to retrieving the data (i.e. there is no .PP flag). This should be considered when designing a database using the wait record.
In this initial version, the "reassignable" PV links do not support channel access connections external to the IOC. Until this feature is added, the specified Process Variables must reside on the same IOC.
As a result of the "reassignable links", there is no application specific control over whether the record specified as the output link will be processed when the data is "put" (i.e. there is no .PP flag associated with the link.) The processing of the destination record will depend on its scan mechanism and ASCII record definition file Process Passive values.
The other "output" of a wait record is an event. If a non-zero value is entered into the OEVT (Output Event) field, the record will "post an event" (using the entered number as the event number) whenever the output link is executed. This is a way of initiating several other records to process as a result of a calculation.
For this release, an additional module, caMonitor.o, must be compiled and loaded with the wait record support to provide this feature.
A word of caution is in order. Because of the event driven nature of this feature, it is quite easy to configure a database that results in an infinite loop that uses all available CPU time. If the wait record is set to process as a result of a channel changing and the processing of the wait record causes the channel to change again, an infinite loop will result. The symptom will be a loss of all channel access connections (lower priority tasks) even though the shell responds normally. Using the vxWorks utility "spy" will confirm the predicament by showing 0% free CPU time.
--------------------------------------------------------------
Field Type DCT Initial Access Modify Rec Proc PP
Monitor
--------------------------------------------------------------
HOPR FLOAT Yes 0 Yes Yes No No
LOPR FLOAT Yes 0 Yes Yes No No
INIT SHORT No 0 Yes No No No
CBST NOACCESS No Null No No No No
INAN STRING Yes Null Yes Yes No No
INBN STRING Yes Null Yes Yes No No
INCN STRING Yes Null Yes Yes No No
INDN STRING Yes Null Yes Yes No No
INEN STRING Yes Null Yes Yes No No
INFN STRING Yes Null Yes Yes No No
INGN STRING Yes Null Yes Yes No No
INHN STRING Yes Null Yes Yes No No
ININ STRING Yes Null Yes Yes No No
INJN STRING Yes Null Yes Yes No No
INKN STRING Yes Null Yes Yes No No
INLN STRING Yes Null Yes Yes No No
INAA NOACCESS No Null No No No No
INBA NOACCESS No Null No No No No
INCA NOACCESS No Null No No No No
INDA NOACCESS No Null No No No No
INEA NOACCESS No Null No No No No
INFA NOACCESS No Null No No No No
INGA NOACCESS No Null No No No No
INHA NOACCESS No Null No No No No
INIA NOACCESS No Null No No No No
INJA NOACCESS No Null No No No No
INKA NOACCESS No Null No No No No
INLA NOACCESS No Null No No No No
INAV LONG No 0 Yes Yes Yes No
INBV LONG No 0 Yes Yes Yes No
INCV LONG No 0 Yes Yes Yes No
INDV LONG No 0 Yes Yes Yes No
INEV LONG No 0 Yes Yes Yes No
INFV LONG No 0 Yes Yes Yes No
INGV LONG No 0 Yes Yes Yes No
INHV LONG No 0 Yes Yes Yes No
INIV LONG No 0 Yes Yes Yes No
INJV LONG No 0 Yes Yes Yes No
INKV LONG No 0 Yes Yes Yes No
INLV LONG No 0 Yes Yes Yes No
A DOUBLE No 0 Yes Yes Yes Yes
B DOUBLE No 0 Yes Yes Yes Yes
C DOUBLE No 0 Yes Yes Yes Yes
D DOUBLE No 0 Yes Yes Yes Yes
E DOUBLE No 0 Yes Yes Yes Yes
F DOUBLE No 0 Yes Yes Yes Yes
G DOUBLE No 0 Yes Yes Yes Yes
H DOUBLE No 0 Yes Yes Yes Yes
I DOUBLE No 0 Yes Yes Yes Yes
J DOUBLE No 0 Yes Yes Yes Yes
K DOUBLE No 0 Yes Yes Yes Yes
L DOUBLE No 0 Yes Yes Yes Yes
LA DOUBLE No 0 Yes Yes No No
LB DOUBLE No 0 Yes Yes No No
LC DOUBLE No 0 Yes Yes No No
LD DOUBLE No 0 Yes Yes No No
LE DOUBLE No 0 Yes Yes No No
LF DOUBLE No 0 Yes Yes No No
LG DOUBLE No 0 Yes Yes No No
LH DOUBLE No 0 Yes Yes No No
LI DOUBLE No 0 Yes Yes No No
LJ DOUBLE No 0 Yes Yes No No
LK DOUBLE No 0 Yes Yes No No
LL DOUBLE No 0 Yes Yes No No
CALC STRING Yes 36 Yes Yes No No
RPCL NOACCESS No 184 No No No No
CLCV LONG No 0 Yes Yes Yes No
VAL DOUBLE No 0 Yes Yes Yes No
OVAL DOUBLE No 0 Yes Yes No No
PREC SHORT Yes 0 Yes Yes No No
OOPT RECCHOICE Yes 0 Yes Yes No No
OUTN STRING Yes Null Yes Yes No No
OUTA NOACCESS No Null No No No No
OUTV LONG No 0 Yes Yes Yes No
DOPT RECCHOICE Yes 0 Yes Yes No No
DOLN STRING Yes Null Yes Yes No No
DOLA NOACCESS No Null No No No No
DOLV LONG No 0 Yes Yes Yes No
DOLD DOUBLE Yes 0 Yes Yes Yes No
OEVT USHORT Yes 0 Yes Yes No No
ADEL DOUBLE Yes 0 Yes Yes No No
MDEL DOUBLE Yes 0 Yes Yes No No
ALST DOUBLE No 0 Yes No No No
MLST DOUBLE No 0 Yes No No No
SIOL INLINK No Null Yes No No No
SVAL DOUBLE No 0 Yes Yes No No
SIML INLINK No Null Yes No No No
SIMM GBLCHOICE No 0 Yes Yes No No
SIMS GBLCHOICE Yes 0 Yes Yes No No
--------------------------------------------------------------
---------------------------------------------------------------------------------------------
Name Summary Description
---------------------------------------------------------------------------------------------
HOPR High Operating These fields determine the upper and lower display limits
Range for graphics displays and the upper and lower control
limits for control displays. The fields are used by record
support to honor calls to get_graphic_double or
get_control_double.
LOPR Low Operating
Range
CBST Callback Structure Pointer to a record private structure.
INnN Input n Process (n=A thru L): These fields contain the Process Variable
Variable Name names of the inputs that will be used for the calculation.
INnV Input n Valid (n=A thru L): These flags indicate if the ASCII string
entered in INnN was found to be a valid (existing) Process
Variable.
A,...,L Input Values If the corresponding INP field is a constant, this field is
initialized with the constant value but can be changed via
dbPuts.
LA,...,LL Previous Input These fields are used to decide when to trigger monitors
Values on A,...,L.
CALC Calculation String Expression to be calculated when the record is processed.
Identical to the CALC field in the calc record.
RPCL Reverse Polish Calc String used for interpreting CALC string.
String
CLCV Calculation String This flag is set when the CALC string is valid.
Valid
VAL Value Field This field is calculated, via the CALC expression, each
time the record is processed.
OVAL Old Value
PREC Display Precision Precision with which to display VAL. This field is used by
record support to supply a value when get_precision
is called.
OOPT Output Option This menu specifies when to execute the output link and
post the output event. Choices are "Every Time", "On
Change", "When Zero", "When Non-zero", "Transition
To Zero", "Transition To Non-zero"
OUTN Output Link This field contains the Process Variable name of the
Process Variable output link.
Name
OUTA Output Address Pointer to the dbAddr structure of the PV in OUTN.
OUTV Output Link Valid This flag indicates if the ASCII string entered in OUTN
was found to be a valid (existing) Process Variable.
DOLN Desired Output This field contains the name of the Process Variable from
Location Process which the desired output data will be retrieved (if DOPT so
Variable Name indicates).
DOLA Desired Output Pointer to the dbAddr Structure of the PV in DOLN.
Location Address
DOLV Desired Output This flag indicates if the ASCII string entered in DOLN
Location Valid was found to be a valid (existing) Process Variable.
DOLD Desired Output This field contains the data fetched from the PV specified
Location Data in DOLN (if valid) or a user entered value (if DOLN is not
valid).
DOPT Data Option This menu specifies whether to use the DOLD field or the
VAL field as output data.
OEVT Output Event If non-zero, the specified event number will be "posted"
when the output link is executed.
ADEL Archive Deadband These parameters specify hysteresis factors for triggering
monitor callbacks, i.e. monitors specified by calls to
caAddEvent or dbAddEvent. A monitor will not be
triggered until VAL changes by more than the specified
amount.
MDEL Monitor, i.e. value
change, Deadband
ALST Archive Last Value These fields are used to implement the hysteresis factors
for monitors.
MLST Monitor Last Value
SIMM Simulation Mode Simulation mode process variables. Refer to Chapter 3,
Section "Simulation Mode" on page 11 for more
information.
SIML Simulation Mode
Location
SVAL Simulation Value
SIOL Simulation Value
Location
SIMS Simulation Mode
Alarm Severity
---------------------------------------------------------------------------------------------
Table of Contents
Next Chapter