RRM 3-14 dbCommon

From EPICSWIKI
Revision as of 16:17, 25 April 2009 by AndrewJohnson (talk | contribs) (Modify UDF description to cover NAN values)

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
SDISINLINKYes0YesYesN/ANo
PROCUCHARNo0YesYesNoYes
DISSGBLCHOICEYesNo AlarmYesYesNoNo
LCNTUCHARNo0YesNoNo 
PACTUCHARNo0YesNoNo 
FLNKFWDLINKYesNullYesYesN/ANo 
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 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
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 [60]Yes0YesNoNo 
DESCSTRING [29]YesNullYesYesNoNo
ASGSTRING [29]YesNullYesYesNo 
TSESHORTNo0YesYesNo 
TSELINLINKYesNullYesYes?No
DTYPDEVCHOICEYesSoft Record SupportYesNoNo 
MLOKNOACCESSNo0NoNoNo 
MLISNOACCESSNo0NoNoNo 
DISPUCHARNo0YesYesYesNo
PUTFUCHARNo0YesNoNo 
RPROUCHARNo0YesNoNo 
ASPNOACCESSNo4NoNoNo 
PPNNOACCESSNo4NoNoNo 
PPNRNOACCESSNo4NoNoNo 
RDESNO_ACCESS      
TIMENOACCESSNo8OptionNoNoNo

Field Description

NameSummaryDescription
NAMERecord NameAn 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.
DESCDescriptionAn arbitrary 28 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.
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.
TSELTime Stamp Event LinkAn input link for obtaining the time stamp. If this link is defined the time stamp of the referenced record becomes the time stamp for this record as well. This mechanism allows things like calculation records to use the time stamp from a device support routine that has an event time stamp for instance.
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 - 19 MAY 1998