Difference between revisions of "RRM 3-14 dbCommon"

From EPICSWIKI
m
 
(26 intermediate revisions by 4 users not shown)
Line 13: Line 13:


==== Field Summary ====
==== Field Summary ====


<TABLE BORDER="1">
<TABLE BORDER="1">
Line 23: Line 22:
<TD>PHAS<TD>SHORT<TD>Yes<TD>0<TD>Yes<TD>Yes<TD>No<TD>No<TR>
<TD>PHAS<TD>SHORT<TD>Yes<TD>0<TD>Yes<TD>Yes<TD>No<TD>No<TR>
<TD>EVNT<TD>SHORT<TD>Yes<TD>0<TD>Yes<TD>Yes<TD>No<TD>No<TR>
<TD>EVNT<TD>SHORT<TD>Yes<TD>0<TD>Yes<TD>Yes<TD>No<TD>No<TR>
<TD>TSE<TD>SHORT<TD>Yes<TD>0<TD>Yes<TD>Yes<TD>No<TD>No<TR>
<TD>TSEL<TD>INLINK<TD>Yes<TD>0<TD>No<TD>No<TD>N/A<TD>No<TR>
<TD>PRIO<TD>GBLCHOICE<TD>Yes<TD>Low<TD>Yes<TD>Yes<TD>No<TD>No<TR>
<TD>PRIO<TD>GBLCHOICE<TD>Yes<TD>Low<TD>Yes<TD>Yes<TD>No<TD>No<TR>
<TD>DISV<TD>SHORT<TD>Yes<TD>1<TD>Yes<TD>Yes<TD>No<TD>No<TR>
<TD>DISV<TD>SHORT<TD>Yes<TD>1<TD>Yes<TD>Yes<TD>No<TD>No<TR>
<TD>DISA<TD>SHORT<TD>No<TD>0<TD>Yes<TD>Yes<TD>No<TD>No<TR>
<TD>DISA<TD>SHORT<TD>No<TD>0<TD>Yes<TD>Yes<TD>No<TD>No<TR>
<TD>SDIS<TD>INLINK<TD>Yes<TD>0<TD>No<TD>No<TD>N/A<TD>No<TR>
<TD>SDIS<TD>INLINK<TD>Yes<TD>0<TD>Yes<TD>Yes<TD>No<TD>No<TR>
<TD>PROC<TD>UCHAR<TD>No<TD>0<TD>Yes<TD>Yes<TD>No<TD>Yes<TR>
<TD>PROC<TD>UCHAR<TD>No<TD>0<TD>Yes<TD>Yes<TD>No<TD>Yes<TR>
<TD>DISS<TD>GBLCHOICE<TD>Yes<TD>No Alarm<TD>Yes<TD>Yes<TD>No<TD>No<TR>
<TD>DISS<TD>GBLCHOICE<TD>Yes<TD>No Alarm<TD>Yes<TD>Yes<TD>No<TD>No<TR>
<TD>LCNT<TD>UCHAR<TD>No<TD>0<TD>Yes<TD>No<TD>No<TD>&nbsp;<TR>
<TD>LCNT<TD>UCHAR<TD>No<TD>0<TD>Yes<TD>No<TD>No<TD><TR>
<TD>PACT<TD>UCHAR<TD>No<TD>0<TD>Yes<TD>No<TD>No<TD>&nbsp;<TR>
<TD>PACT<TD>UCHAR<TD>No<TD>0<TD>Yes<TD>No<TD>No<TD><TR>
<TD>FLNK<TD>FWDLINK<TD>Yes<TD>Null<TD>No<TD>No<TD>N/A<TD>No</TABLE>
<TD>FLNK<TD>FWDLINK<TD>Yes<TD>Null<TD>Yes<TD>Yes<TD>No<TD>No<TR>
<TD>SPVT<TD>NOACCESS<TD>No<TD>4<TD>No<TD>No<TD>No<TD></TABLE>
 


==== Field Description ====
==== Field Description ====


<TABLE BORDER="1"><TH>Name<TH>Summary<TH>Description<TR>
<TABLE BORDER="1"><TH>Name<TH>Summary<TH>Description<TR>
<TD>SCAN<TD>Scanning Algorithm<TD>This can be one of the periodic intervals (<CODE>.1 second</CODE>, <CODE>.2 second</CODE>, <CODE>.5 second</CODE>, <CODE>1 second</CODE>, <CODE>2 second</CODE>, <CODE>5 second</CODE>, <CODE>10 second</CODE>, <CODE>I/O Intr</CODE>, <CODE>Event</CODE>, or <CODE>Passive</CODE>.<TR>
<TD>SCAN<TD>Scanning Rate<TD>This can be one of the periodic intervals (<CODE>.1 second</CODE>, <CODE>.2 second</CODE>, <CODE>.5 second</CODE>, <CODE>1 second</CODE>, <CODE>2 second</CODE>, <CODE>5 second</CODE>, <CODE>10 second</CODE>, <CODE>I/O Intr</CODE>, <CODE>Event</CODE>, or <CODE>Passive</CODE>.<TR>
<TD>PINI<TD>Process at Initialization<TD>If this field is set to YES during database configuration, then the record is processed once at IOC initialization (before the normal scan tasks are started).<TR>
<TD>PINI<TD>Process at Initialization<TD>If this field is set to YES during database configuration, then the record is processed once at IOC initialization (before the normal scan tasks are started).<TR>
<TD>PHAS<TD>Scan Phase Number<TD>This field orders the records within a specific SCAN group. This is not meaningful for passive records. All records of a specified phase are processed before those with higher phase number. Whenever possible it is better to use linked passive records to enforce the order of processing rather than phase number.<TR>
<TD>PHAS<TD>Scan Phase Number<TD>This field orders the records within a specific SCAN group. This is not meaningful for passive records. All records of a specified phase are processed before those with higher phase number. Whenever possible it is better to use linked passive records to enforce the order of processing rather than phase number.<TR>
Line 52: Line 50:
<TD>LCNT<TD>Lock Count<TD>The number of times in succession dbProcess finds the record active, i.e. PACT is TRUE. If dbProcess finds the record active MAX_LOCK (currently set to 10) times in succession, it raises a SCAN_ALARM.<TR>
<TD>LCNT<TD>Lock Count<TD>The number of times in succession dbProcess finds the record active, i.e. PACT is TRUE. If dbProcess finds the record active MAX_LOCK (currently set to 10) times in succession, it raises a SCAN_ALARM.<TR>
<TD>PACT<TD>Processing Active<TD>See Application Developers Guide for details on usage. PACT is TRUE while the record is being processed. For asynchronous records PACT can be TRUE from the time record processing is started until the asynchronous completion occurs. As long as PACT is TRUE, dbProcess will not call the record processing routine.<TR>
<TD>PACT<TD>Processing Active<TD>See Application Developers Guide for details on usage. PACT is TRUE while the record is being processed. For asynchronous records PACT can be TRUE from the time record processing is started until the asynchronous completion occurs. As long as PACT is TRUE, dbProcess will not call the record processing routine.<TR>
<TD>FLNK<TD>Forward Link<TD>This field is a database link. If FLNK is specified, processing this record will force a processing of the scan passive forward link record.</TABLE>
<TD>FLNK<TD>Forward Link<TD>This field is a database link. If FLNK is specified, processing this record will force a processing of the scan passive forward link record.<TR>
<TD>SPVT<TD>Scan Private<TD>This field is for private use of the scanning system.</TABLE>


=== Alarm Fields ===
=== Alarm Fields ===
Line 62: Line 61:


<TABLE BORDER="1"><TH>Field<TH>Type<TH>DCT<TH>Initial<TH>Access<TH>Modify<TH>Rec Proc Monitor<TH>PP<TR>
<TABLE BORDER="1"><TH>Field<TH>Type<TH>DCT<TH>Initial<TH>Access<TH>Modify<TH>Rec Proc Monitor<TH>PP<TR>
<TD>STAT<TD>GBLCHOICE<TD>No<TD>UDF_ALARM<TD>Yes<TD>No<TD>Yes<TD>No<TR>
<TD>STAT<TD>GBLCHOICE<TD>No<TD>UDF_ALARM<TD>Yes<TD>No<TD>Yes<TD><TR>
<TD>SEVR<TD>GBLCHOICE<TD>No<TD>INVALID_ALARM<TD>Yes<TD>No<TD>Yes<TD>No<TR>
<TD>SEVR<TD>GBLCHOICE<TD>No<TD>INVALID_ALARM<TD>Yes<TD>No<TD>Yes<TD><TR>
<TD>NSTA<TD>GBLCHOICE<TD>No<TD>0<TD>Yes<TD>No<TD>No<TD>No<TR>
<TD>NSTA<TD>GBLCHOICE<TD>No<TD>No Alarm<TD>Yes<TD>No<TD>No<TD><TR>
<TD>NSEV<TD>GBLCHOICE<TD>No<TD>0<TD>Yes<TD>No<TD>No<TD>No<TR>
<TD>NSEV<TD>GBLCHOICE<TD>No<TD>No Alarm<TD>Yes<TD>No<TD>No<TD><TR>
<TD>ACKS<TD>GBLCHOICE<TD>No<TD>0<TD>Yes<TD>No<TD>No<TD>&nbsp;<TR>
<TD>ACKS<TD>GBLCHOICE<TD>No<TD>No Alarm<TD>Yes<TD>No<TD><TD>&nbsp;<TR>
<TD>ACKT<TD>GBLCHOICE<TD>No<TD>11<TD>Yes<TD>No<TD>No<TD>&nbsp;<TR>
<TD>ACKT<TD>GBLCHOICE<TD>No<TD>Yes<TD>Yes<TD>No<TD><TD>&nbsp;<TR>
<TD>UDF<TD>UCHAR<TD>No<TD>1<TD>Yes<TD>Yes<TD>No<TD>Yes</TABLE>
<TD>UDF<TD>UCHAR<TD>No<TD>1<TD>Yes<TD>Yes<TD>No<TD>Yes</TABLE>


==== Field Description ====
==== Field Description ====
Line 81: Line 79:
<TD>ACKS<TD>Alarm Acknowledge Severity<TD>Highest severity unacknowledged alarm<TR>
<TD>ACKS<TD>Alarm Acknowledge Severity<TD>Highest severity unacknowledged alarm<TR>
<TD>ACKT<TD>Alarm Acknowledge Transient<TD>Is it necessary to acknowledge transient alarms?<TR>
<TD>ACKT<TD>Alarm Acknowledge Transient<TD>Is it necessary to acknowledge transient alarms?<TR>
<TD>UDF<TD>VAL Undefined<TD>UDF is initialized to TRUE at IOC initialization. Record and device support routines which write to the VAL field are responsible for setting UDF to FALSE.</TABLE>
<TD>UDF<TD>VAL Undefined<TD>This indicates that the record has never been processed or its value is UnDeFined. Typically this is caused by a failure in device support, a record that has never been processed, or where the VAL field currently contains a NaN (not a number). UDF is initialized to TRUE at IOC initialization. Record and device support routines which write to the VAL field are responsible for setting UDF.</TABLE>
 


=== Device Fields ===
=== Device Fields ===
Line 92: Line 89:


<TABLE BORDER="1"><TH>Field<TH>Type<TH>DCT<TH>Initial<TH>Access<TH>Modify<TH>Rec Proc Monitor<TH>PP<TR>
<TABLE BORDER="1"><TH>Field<TH>Type<TH>DCT<TH>Initial<TH>Access<TH>Modify<TH>Rec Proc Monitor<TH>PP<TR>
<TD>SPVT<TD>NOACCESS<TD>No<TD>4<TD>No<TD>No<TD>No<TD>&nbsp;<TR>
<TD>RSET<TD>NOACCESS<TD>No<TD>4<TD>No<TD>No<TD>No<TD>&nbsp;<TR>
<TD>RSET<TD>NOACCESS<TD>No<TD>4<TD>No<TD>No<TD>No<TD>&nbsp;<TR>
<TD>DSET<TD>NOACCESS<TD>No<TD>4<TD>No<TD>No<TD>No<TD>&nbsp;<TR>
<TD>DSET<TD>NOACCESS<TD>No<TD>4<TD>No<TD>No<TD>No<TD>&nbsp;<TR>
Line 102: Line 98:


<TABLE BORDER="1"><TH>Name<TH>Summary<TH>Description<TR>
<TABLE BORDER="1"><TH>Name<TH>Summary<TH>Description<TR>
<TD>SPVT<TD>Scan Private<TD>This field is for private use of the scanning system.<TR>
<TD>RSET<TD>Address of Record Support Entry Table<TD>See Application Developers Guide for details on usage.<TR>
<TD>RSET<TD>Address of Record Support Entry Table<TD>See Application Developers Guide for details on usage.<TR>
<TD>DSET<TD>Address of Device Support Entry Table<TD>This address of the device support entry table for this record. The value of this field is determined at IOC initialization time. Record support routines use this field to locate their device support routines.<TR>
<TD>DSET<TD>Address of Device Support Entry Table<TD>This address of the device support entry table for this record. The value of this field is determined at IOC initialization time. Record support routines use this field to locate their device support routines.<TR>
Line 116: Line 111:
<TABLE BORDER="1"><TH>Field<TH>Type<TH>DCT<TH>Initial<TH>Access<TH>Modify<TH>Rec Proc Monitor<TH>PP<TR>
<TABLE BORDER="1"><TH>Field<TH>Type<TH>DCT<TH>Initial<TH>Access<TH>Modify<TH>Rec Proc Monitor<TH>PP<TR>
<TD>TPRO<TD>UCHAR<TD>No<TD>0<TD>Yes<TD>Yes<TD>No<TD>No<TR>
<TD>TPRO<TD>UCHAR<TD>No<TD>0<TD>Yes<TD>Yes<TD>No<TD>No<TR>
<TD>BKPT<TD>NOACCESS<TD>No<TD>1<TD>No<TD>No<TD>No<TD>&nbsp;</TABLE>
<TD>BKPT<TD>NOACCESS<TD>No<TD>0<TD>No<TD>No<TD>No<TD>&nbsp;</TABLE>
 


==== Field Description ====
==== Field Description ====
Line 123: Line 117:


<TABLE BORDER="1"><TH>Name<TH>Summary<TH>Description<TR>
<TABLE BORDER="1"><TH>Name<TH>Summary<TH>Description<TR>
<TD>TPRO<TD>Trace Processing<TD>If this field is set 1, a message is printed each time this record is processed and a message is printed for each record processed as a result of this record being processed<TR>
<TD>TPRO<TD>Trace Processing<TD>If this field is non-zero a message is printed whenever this record is processed, and when any other record in the same lock-set is processed by a database link from this record.<TR>
<TD>BKPT<TD>BreakPoint<TD>Holds a pointer to the breakpoint table specified in LINR, if any.</TABLE>
<TD>BKPT<TD>BreakPoint<TD>Indicates if there is a breakpoint set at this record.  This supports setting a debug breakpoint in the record processing. STEP through database processing can be supported using this.</TABLE>


=== Miscellaneous Fields ===
=== Miscellaneous Fields ===
Line 134: Line 128:


<TABLE BORDER="1"><TH>Field<TH>Type<TH>DCT<TH>Initial<TH>Access<TH>Modify<TH>Rec Proc Monitor<TH>PP<TR>
<TABLE BORDER="1"><TH>Field<TH>Type<TH>DCT<TH>Initial<TH>Access<TH>Modify<TH>Rec Proc Monitor<TH>PP<TR>
<TD>NAME<TD>STRING [29]<TD>Yes<TD>0<TD>Yes<TD>No<TD>No<TD>&nbsp;<TR>
<TD>NAME<TD>STRING [61]<TD>Yes<TD>0<TD>Yes<TD>No<TD>No<TD>&nbsp;<TR>
<TD>DESC<TD>STRING [29]<TD>Yes<TD>Null<TD>Yes<TD>Yes<TD>No<TD>No<TR>
<TD>DESC<TD>STRING [41]<TD>Yes<TD>Null<TD>Yes<TD>Yes<TD>No<TD>No<TR>
<TD>ASG<TD>STRING [29]<TD>Yes<TD>Null<TD>Yes<TD>Yes<TD>No<TD>&nbsp;<TR>
<TD>ASG<TD>STRING [29]<TD>Yes<TD>Null<TD>Yes<TD>Yes<TD>No<TD>&nbsp;<TR>
<TD>TSE<TD>SHORT<TD>No<TD>0<TD>Yes<TD>Yes<TD>No<TD>&nbsp;<TR>
<TD>TSE<TD>SHORT<TD>Yes<TD>0<TD>Yes<TD>Yes<TD>No<TD>&nbsp;<TR>
<TD>TSEL<TD>INLINK<TD>Yes<TD>Null<TD>No<TD>No<TD>N/A<TD>No<TR>
<TD>TSEL<TD>INLINK<TD>Yes<TD>Null<TD>Yes<TD>Yes<TD>?<TD>No<TR>
<TD>DTYP<TD>DEVCHOICE<TD>Yes<TD>0<TD>Yes<TD>No<TD>No<TD>&nbsp;<TR>
<TD>DTYP<TD>DEVCHOICE<TD>Yes<TD>Soft Record Support<TD>Yes<TD>No<TD>No<TD>&nbsp;<TR>
<TD>MLOK<TD>NOACCESS<TD>No<TD>8<TD>No<TD>No<TD>No<TD>&nbsp;<TR>
<TD>MLOK<TD>NOACCESS<TD>No<TD>0<TD>No<TD>No<TD>No<TD>&nbsp;<TR>
<TD>MLIS<TD>NOACCESS<TD>No<TD>12<TD>No<TD>No<TD>No<TD>&nbsp;<TR>
<TD>MLIS<TD>NOACCESS<TD>No<TD>0<TD>No<TD>No<TD>No<TD>&nbsp;<TR>
<TD>DISP<TD>UCHAR<TD>No<TD>0<TD>Yes<TD>Yes<TD>Yes<TD>No<TR>
<TD>DISP<TD>UCHAR<TD>No<TD>0<TD>Yes<TD>Yes<TD>Yes<TD>No<TR>
<TD>PUTF<TD>UCHAR<TD>No<TD>0<TD>Yes<TD>No<TD>No<TD>&nbsp;<TR>
<TD>PUTF<TD>UCHAR<TD>No<TD>0<TD>Yes<TD>No<TD>No<TD>&nbsp;<TR>
Line 155: Line 149:


<TABLE BORDER="1"><TH>Name<TH>Summary<TH>Description<TR>
<TABLE BORDER="1"><TH>Name<TH>Summary<TH>Description<TR>
<TD>NAME<TD>Record Name<TD>An arbitrary 28 character record name supplied by the application developer.  This name is the means of identifying a specific record. It must have a unique value across all IOCs attached to the same local area subnet.<TR>
<TD>NAME<TD>Record Name<TD>A 60 character record name supplied by the application developer.  This name is the means of identifying a specific record. It must have a unique value across all IOCs attached to the same local area subnet, and should use only this limited set of characters: <tt>a-z A-Z 0-9 _ - : [ ] &lt; &gt; ;</tt><TR>
<TD>DESC<TD>Description<TD>An arbitrary 28 character record description supplied by the application developer.<TR>
<TD>DESC<TD>Description<TD>An arbitrary 40 character record description supplied by the application developer.<TR>
<TD>ASG<TD>Access Security Group<TD>A character string value defining the access security group for this record.  If left NULL, the record is placed in group DEFAULT.<TR>
<TD>ASG<TD>Access Security Group<TD>A character string value defining the access security group for this record.  If left NULL, the record is placed in group DEFAULT.<TR>
<TD>TSE<TD>Time Stamp Event<TD>The event number for time stamp.  This is only meaningful if the IOC has an associated hardware event receiverSee 'er' record for details.<TR>
<TD>TSEL<TD>Time Stamp Event Link<TD>An input link for obtaining the time stamp.  If this link references the .TIME field of a record then the time stamp of the referenced record becomes the time stamp for this record as well.  In this case, an internal flag is set and ".TIME" is then overwritten by ".VAL"If any other field is referenced, the field value is read and stored in the .TSE field which is then used to acquire a timestamp.<TR>
<TD>TSEL<TD>Time Stamp Event Link<TD>An input link for obtaining the time stamp event number.<TR>
<TD>TSE<TD>Time Stamp Event<TD>This indicates the mechanism to use to get the time stamp. '0' - call get time as before '-1' - call the time stamp driver and use the best source available. '-2' - the device support provides the time stamp from the hardware.  Values between 1-255 request the time of the last occurance of a generalTime event.<TR>
<TD>DTYP<TD>Device Type<TD>This field specifies the device type for the record. Each record type has its own set of device support routines which are specified in devSup.ASCII. If a record type does not have any associated device support, DTYP and DSET are meaningless.<TR>
<TD>DTYP<TD>Device Type<TD>This field specifies the device type for the record. Each record type has its own set of device support routines which are specified in devSup.ASCII. If a record type does not have any associated device support, DTYP and DSET are meaningless.<TR>
<TD>MLOK<TD>Monitor Lock<TD>The lock used by the monitor routines when the monitor list is being used. The list is locked whenever monitors are being scheduled, invoked, or when monitors are being added to or removed from the list. This field is accessed only by the dbEvent routines.<TR>
<TD>MLOK<TD>Monitor Lock<TD>The lock used by the monitor routines when the monitor list is being used. The list is locked whenever monitors are being scheduled, invoked, or when monitors are being added to or removed from the list. This field is accessed only by the dbEvent routines.<TR>
Line 176: Line 170:




EPICS Record Reference Manual - 19 MAY 1998
EPICS Record Reference Manual

Latest revision as of 19:20, 22 March 2016

EPICS Record Reference Manual


Fields Common to All Record Types

Introduction

This chapter contains a description of fields that are common to all records. These fields are defined in dbcommon.dbd.

Scan Fields

These fields contain information related to how and when a record processes. For a further explanation of these record processing and these fields, see Scanning Specification, Chapter 1, 1. A few records have unique fields that also affect how they process. These fields, if any, will be listed and explained in the chapter for each record.

Field Summary

FieldTypeDCTInitialAccessModifyRec Proc Monitor PP
SCANGBLCHOICEYesPassiveYesYesNoNo
PINIGBLCHOICEYesNoYesYesNoNo
PHASSHORTYes0YesYesNoNo
EVNTSHORTYes0YesYesNoNo
PRIOGBLCHOICEYesLowYesYesNoNo
DISVSHORTYes1YesYesNoNo
DISASHORTNo0YesYesNoNo
SDISINLINKYes0YesYesNoNo
PROCUCHARNo0YesYesNoYes
DISSGBLCHOICEYesNo AlarmYesYesNoNo
LCNTUCHARNo0YesNoNo
PACTUCHARNo0YesNoNo
FLNKFWDLINKYesNullYesYesNoNo
SPVTNOACCESSNo4NoNoNo


Field Description

NameSummaryDescription
SCANScanning RateThis can be one of the periodic intervals (.1 second, .2 second, .5 second, 1 second, 2 second, 5 second, 10 second, I/O Intr, Event, or Passive.
PINIProcess at InitializationIf this field is set to YES during database configuration, then the record is processed once at IOC initialization (before the normal scan tasks are started).
PHASScan Phase NumberThis field orders the records within a specific SCAN group. This is not meaningful for passive records. All records of a specified phase are processed before those with higher phase number. Whenever possible it is better to use linked passive records to enforce the order of processing rather than phase number.
EVNTEvent NumberEvent number for scan type SCAN_EVENT. All records with scan type event and the same EVNT value will be processed when a call to post_event for EVNT is made. The call to post_event is: post_event(short event_number)
PRIOPriorityScheduling priority for processing I/O Event scanned records and asynchronous record completion tasks.
DISVDisable ValueIf DISV=DISA, then the record will be disabled, i.e. dbProcess will not process the record.
DISAScan Disable Input Link ValueThis is the value that is compared with DISV to determine if the record is disabled. Its value is obtained via SDIS if SDIS is a database or channel access link. If SDIS is not a database or channel access link, then DISA can be set via dbPutField or dbPutLink.
SDISScan Disable Input LinkAn input link from which to obtain a value for DISA. This field is ignored unless it is a database link or a channel access link. If it is a database or a channel access link, dbProcess calls dbGetLink to obtain a value for DISA before deciding to call the processing routine.
PROCProcess RecordA record will be processed whenever a dbPutField is directed to this field.
DISSDisable Alarm SeverityWhen this record is disabled, it will be put into alarm with this severity and a status of DISABLE_ALARM.
LSETLock SetThe lock set to which this record belongs. All records linked in any way via input, output, or forward database links belong to the same lock set. Lock sets are determined at IOC initialization time, and are updated whenever a database link is added, removed or altered.
LCNTLock CountThe number of times in succession dbProcess finds the record active, i.e. PACT is TRUE. If dbProcess finds the record active MAX_LOCK (currently set to 10) times in succession, it raises a SCAN_ALARM.
PACTProcessing ActiveSee Application Developers Guide for details on usage. PACT is TRUE while the record is being processed. For asynchronous records PACT can be TRUE from the time record processing is started until the asynchronous completion occurs. As long as PACT is TRUE, dbProcess will not call the record processing routine.
FLNKForward LinkThis field is a database link. If FLNK is specified, processing this record will force a processing of the scan passive forward link record.
SPVTScan PrivateThis field is for private use of the scanning system.

Alarm Fields

These fields indicate the status and severity of alarms, or else determine the how and when alarms are triggered. For a further explanation of database alarms, see Alarm Specification, Chapter 1, 4. Of course, many records have alarm-related fields not common to all records. These fields are listed and explained in the appropriate chapter on each record.

Field Summary

FieldTypeDCTInitialAccessModifyRec Proc MonitorPP
STATGBLCHOICENoUDF_ALARMYesNoYes
SEVRGBLCHOICENoINVALID_ALARMYesNoYes
NSTAGBLCHOICENoNo AlarmYesNoNo
NSEVGBLCHOICENoNo AlarmYesNoNo
ACKSGBLCHOICENoNo AlarmYesNo 
ACKTGBLCHOICENoYesYesNo 
UDFUCHARNo1YesYesNoYes

Field Description

NameSummaryDescription
STATCurrent Alarm StatusThese four fields are the alarm status and severity fields. STAT and SEVR are the values seen outside database access. NSTA and NSEV are the fields the database access, record support, and device support use to set new alarm status and severity values. Whenever any software component discovers an alarm condition, it uses the following macro function: recGblSetSevr(precord,new_status,new_severity) This ensures that the current alarm severity is set equal to the highest outstanding alarm. The file alarm.h defines all allowed alarm status and severity values.
SEVRCurrent Alarm Severity
NSTANew Alarm Status
NSEVNew Alarm Severity
ACKSAlarm Acknowledge SeverityHighest severity unacknowledged alarm
ACKTAlarm Acknowledge TransientIs it necessary to acknowledge transient alarms?
UDFVAL UndefinedThis indicates that the record has never been processed or its value is UnDeFined. Typically this is caused by a failure in device support, a record that has never been processed, or where the VAL field currently contains a NaN (not a number). UDF is initialized to TRUE at IOC initialization. Record and device support routines which write to the VAL field are responsible for setting UDF.

Device Fields

These fields contain information about the device and record support used by a record.

Field Summary

FieldTypeDCTInitialAccessModifyRec Proc MonitorPP
RSETNOACCESSNo4NoNoNo 
DSETNOACCESSNo4NoNoNo 
DPVTNOACCESSNo4NoNoNo 


Field Description

NameSummaryDescription
RSETAddress of Record Support Entry TableSee Application Developers Guide for details on usage.
DSETAddress of Device Support Entry TableThis address of the device support entry table for this record. The value of this field is determined at IOC initialization time. Record support routines use this field to locate their device support routines.
DPVTDevice PrivateThis field is for private use of the device support modules.

Debugging Fields

These fields can aid in the debugging process.

Field Summary

FieldTypeDCTInitialAccessModifyRec Proc MonitorPP
TPROUCHARNo0YesYesNoNo
BKPTNOACCESSNo0NoNoNo 

Field Description

NameSummaryDescription
TPROTrace ProcessingIf this field is non-zero a message is printed whenever this record is processed, and when any other record in the same lock-set is processed by a database link from this record.
BKPTBreakPointIndicates if there is a breakpoint set at this record. This supports setting a debug breakpoint in the record processing. STEP through database processing can be supported using this.

Miscellaneous Fields

These are miscellaneous fields common to all record types.

Field Summary

FieldTypeDCTInitialAccessModifyRec Proc MonitorPP
NAMESTRING [61]Yes0YesNoNo 
DESCSTRING [41]YesNullYesYesNoNo
ASGSTRING [29]YesNullYesYesNo 
TSESHORTYes0YesYesNo 
TSELINLINKYesNullYesYes?No
DTYPDEVCHOICEYesSoft Record SupportYesNoNo 
MLOKNOACCESSNo0NoNoNo 
MLISNOACCESSNo0NoNoNo 
DISPUCHARNo0YesYesYesNo
PUTFUCHARNo0YesNoNo 
RPROUCHARNo0YesNoNo 
ASPNOACCESSNo4NoNoNo 
PPNNOACCESSNo4NoNoNo 
PPNRNOACCESSNo4NoNoNo 
RDESNO_ACCESS      
TIMENOACCESSNo8OptionNoNoNo

Field Description

NameSummaryDescription
NAMERecord NameA 60 character record name supplied by the application developer. This name is the means of identifying a specific record. It must have a unique value across all IOCs attached to the same local area subnet, and should use only this limited set of characters: a-z A-Z 0-9 _ - : [ ] < > ;
DESCDescriptionAn arbitrary 40 character record description supplied by the application developer.
ASGAccess Security GroupA character string value defining the access security group for this record. If left NULL, the record is placed in group DEFAULT.
TSELTime Stamp Event LinkAn input link for obtaining the time stamp. If this link references the .TIME field of a record then the time stamp of the referenced record becomes the time stamp for this record as well. In this case, an internal flag is set and ".TIME" is then overwritten by ".VAL". If any other field is referenced, the field value is read and stored in the .TSE field which is then used to acquire a timestamp.
TSETime Stamp EventThis indicates the mechanism to use to get the time stamp. '0' - call get time as before '-1' - call the time stamp driver and use the best source available. '-2' - the device support provides the time stamp from the hardware. Values between 1-255 request the time of the last occurance of a generalTime event.
DTYPDevice TypeThis field specifies the device type for the record. Each record type has its own set of device support routines which are specified in devSup.ASCII. If a record type does not have any associated device support, DTYP and DSET are meaningless.
MLOKMonitor LockThe lock used by the monitor routines when the monitor list is being used. The list is locked whenever monitors are being scheduled, invoked, or when monitors are being added to or removed from the list. This field is accessed only by the dbEvent routines.
MLISMonitor ListThis is the head of the list of monitors connected to this record. Each record support module is responsible for triggering monitors for any fields that change as a result of record processing. Monitors are present if mlis count is greater than zero. The call to trigger monitors is: db_post_event(precord,&data,mask), where "mask" is some combination of DBE_ALARM, DBE_VALUE, and DBE_LOG.
DISPDisable putFieldsIf this field is set to TRUE, then all dbPutFields (normally issued by channel access) directed to this record are ignored except to the field DISP itself.
PUTFdbPutField ProcessDid dbPutField cause the current record processing?
RPROReprocessReprocess record when current processing completes.
ASPAccess Security Private 
PPNAddress of putNotifyAddress of putNotify callback.
PPNRNext Record for putNotifyNext record for PutNotify.
RDESAddress of dbRecordType 
TIMETimeThe time when this record was last processed, in standard format.




EPICS Record Reference Manual