Difference between revisions of "RRM 3-13 dbCommon"
(Experiment looks good...) |
BenFranksen (talk | contribs) |
||
(5 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
[[RRM 3-13 | [[RRM 3-13|EPICS Record Reference Manual]] | ||
== Fields Common to All Record Types == | == Fields Common to All Record Types == | ||
Line 14: | Line 13: | ||
==== Field Summary ==== | ==== Field Summary ==== | ||
<TABLE BORDER="1"> | <TABLE BORDER="1"> | ||
Line 23: | Line 23: | ||
<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>PRIO<TD>GBLCHOICE | <TD>PRIO<TD>GBLCHOICE<TD>Yes<TD>0<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> | ||
Line 35: | Line 35: | ||
==== 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 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>PINI<TD>Process at Initialization<TD>If this field is set to | <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> | ||
<TD>EVNT<TD>Event Number<TD>Event 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)<TR> | <TD>EVNT<TD>Event Number<TD>Event 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)<TR> | ||
Line 51: | Line 52: | ||
<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.</TABLE> | ||
=== Alarm Fields === | === Alarm Fields === | ||
Line 58: | Line 58: | ||
==== Field Summary ==== | ==== Field Summary ==== | ||
<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> | ||
Line 67: | Line 68: | ||
<TD>ACKT<TD>GBLCHOICE<TD>No<TD>11<TD>Yes<TD>No<TD>No<TD> <TR> | <TD>ACKT<TD>GBLCHOICE<TD>No<TD>11<TD>Yes<TD>No<TD>No<TD> <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 ==== | ||
<TABLE BORDER="1"><TH>Name<TH>Summary<TH>Description<TR> | <TABLE BORDER="1"><TH>Name<TH>Summary<TH>Description<TR> | ||
Line 78: | Line 81: | ||
<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>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> | ||
=== Device Fields === | === Device Fields === | ||
Line 84: | Line 88: | ||
==== Field Summary ==== | ==== Field Summary ==== | ||
<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> | ||
Line 90: | Line 95: | ||
<TD>DSET<TD>NOACCESS<TD>No<TD>4<TD>No<TD>No<TD>No<TD> <TR> | <TD>DSET<TD>NOACCESS<TD>No<TD>4<TD>No<TD>No<TD>No<TD> <TR> | ||
<TD>DPVT<TD>NOACCESS<TD>No<TD>4<TD>No<TD>No<TD>No<TD> </TABLE> | <TD>DPVT<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> | ||
Line 104: | Line 111: | ||
==== Field Summary ==== | ==== Field Summary ==== | ||
<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> </TABLE> | <TD>BKPT<TD>NOACCESS<TD>No<TD>1<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>TPRO<TD>Trace Processing<TD>If this field is set | <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>BKPT<TD>BreakPoint<TD>Holds a pointer to the breakpoint table specified in LINR, if any.</TABLE> | <TD>BKPT<TD>BreakPoint<TD>Holds a pointer to the breakpoint table specified in LINR, if any.</TABLE> | ||
Line 120: | Line 130: | ||
==== Field Summary ==== | ==== Field Summary ==== | ||
<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> | ||
Line 135: | Line 146: | ||
<TD>ASP<TD>NOACCESS<TD>No<TD>4<TD>No<TD>No<TD>No<TD> <TR> | <TD>ASP<TD>NOACCESS<TD>No<TD>4<TD>No<TD>No<TD>No<TD> <TR> | ||
<TD>PPN<TD>NOACCESS<TD>No<TD>4<TD>No<TD>No<TD>No<TD> <TR> | <TD>PPN<TD>NOACCESS<TD>No<TD>4<TD>No<TD>No<TD>No<TD> <TR> | ||
<TD> | <TD>PPNR<TD>NOACCESS<TD>No<TD>4<TD>No<TD>No<TD>No<TD> <TR> | ||
<TD>RDES<TD>NO_ACCESS<TD> <TD> <TD> <TD> <TD> <TD> <TR> | <TD>RDES<TD>NO_ACCESS<TD> <TD> <TD> <TD> <TD> <TD> <TR> | ||
<TD>TIME<TD>NOACCESS<TD>No<TD>8<TD>Option<TD>No<TD>No<TD>No</TABLE> | <TD>TIME<TD>NOACCESS<TD>No<TD>8<TD>Option<TD>No<TD>No<TD>No</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> | ||
Line 155: | Line 167: | ||
<TD>ASP<TD>Access Security Private<TD> <TR> | <TD>ASP<TD>Access Security Private<TD> <TR> | ||
<TD>PPN<TD>Address of putNotify<TD>Address of putNotify callback.<TR> | <TD>PPN<TD>Address of putNotify<TD>Address of putNotify callback.<TR> | ||
<TD> | <TD>PPNR<TD>Next Record for putNotify<TD>Next record for PutNotify.<TR> | ||
<TD>RDES<TD>Address of dbRecordType<TD> <TR> | <TD>RDES<TD>Address of dbRecordType<TD> <TR> | ||
<TD>TIME<TD>Time<TD>The time when this record was last processed, in standard format.</TABLE> | <TD>TIME<TD>Time<TD>The time when this record was last processed, in standard format.</TABLE> | ||
---- | ---- | ||
EPICS Record Reference Manual - 19 MAY 1998 | EPICS Record Reference Manual - 19 MAY 1998 | ||
Latest revision as of 09:03, 11 September 2007
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
Field | Type | DCT | Initial | Access | Modify | Rec Proc Monitor | PP |
---|---|---|---|---|---|---|---|
SCAN | GBLCHOICE | Yes | 0 | Yes | Yes | No | No |
PINI | GBLCHOICE | Yes | 0 | Yes | Yes | No | No |
PHAS | SHORT | Yes | 0 | Yes | Yes | No | No |
EVNT | SHORT | Yes | 0 | Yes | Yes | No | No |
PRIO | GBLCHOICE | Yes | 0 | Yes | Yes | No | No |
DISV | SHORT | Yes | 1 | Yes | Yes | No | No |
DISA | SHORT | No | 0 | Yes | Yes | No | No |
SDIS | INLINK | Yes | 0 | No | No | N/A | No |
PROC | UCHAR | No | 0 | Yes | Yes | No | Yes |
DISS | GBLCHOICE | Yes | 0 | Yes | Yes | No | No |
LSET | SHORT | No | 0 | Yes | No | No | |
LCNT | UCHAR | No | 0 | Yes | No | No | |
PACT | UCHAR | No | 0 | Yes | No | No | |
FLNK | FWDLINK | Yes | Null | No | No | N/A | No |
Field Description
Name | Summary | Description |
---|---|---|
SCAN | Scanning Algorithm | This 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 . |
PINI | Process at Initialization | 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). |
PHAS | Scan Phase Number | 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. |
EVNT | Event Number | Event 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) |
PRIO | Priority | Scheduling priority for processing I/O Event scanned records and asynchronous record completion tasks. |
DISV | Disable Value | If DISV=DISA, then the record will be disabled, i.e. dbProcess will not process the record. |
DISA | Scan Disable Input Link Value | This 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. |
SDIS | Scan Disable Input Link | An 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. |
PROC | Process Record | A record will be processed whenever a dbPutField is directed to this field. |
DISS | Disable Alarm Severity | When this record is disabled, it will be put into alarm with this severity and a status of DISABLE_ALARM. |
LSET | Lock Set | The 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. The only exception is that non-process passive input links do not force the linked record to be in the same lock set. The lock sets are determined at IOC initialization time. |
LCNT | Lock Count | 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. |
PACT | Processing Active | 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. |
FLNK | Forward Link | This field is a database link. If FLNK is specified, processing this record will force a processing of the scan passive forward link record. |
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
Field | Type | DCT | Initial | Access | Modify | Rec Proc Monitor | PP |
---|---|---|---|---|---|---|---|
STAT | GBLCHOICE | No | UDF_ALARM | Yes | No | Yes | No |
SEVR | GBLCHOICE | No | INVALID_ALARM | Yes | No | Yes | No |
NSTA | GBLCHOICE | No | 0 | Yes | No | No | No |
NSEV | GBLCHOICE | No | 0 | Yes | No | No | No |
ACKS | GBLCHOICE | No | 0 | Yes | No | No | |
ACKT | GBLCHOICE | No | 11 | Yes | No | No | |
UDF | UCHAR | No | 1 | Yes | Yes | No | Yes |
Field Description
Name | Summary | Description |
---|---|---|
STAT | Current Alarm Status | These 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. |
SEVR | Current Alarm Severity | |
NSTA | New Alarm Status | |
NSEV | New Alarm Severity | |
ACKS | Alarm Acknowledge Severity | Highest severity unacknowledged alarm |
ACKT | Alarm Acknowledge Transient | Is it necessary to acknowledge transient alarms? |
UDF | VAL Undefined | 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. |
Device Fields
These fields contain information about the device and record support used by a record.
Field Summary
Field | Type | DCT | Initial | Access | Modify | Rec Proc Monitor | PP |
---|---|---|---|---|---|---|---|
SPVT | NOACCESS | No | 4 | No | No | No | |
RSET | NOACCESS | No | 4 | No | No | No | |
DSET | NOACCESS | No | 4 | No | No | No | |
DPVT | NOACCESS | No | 4 | No | No | No |
Field Description
Name | Summary | Description |
---|---|---|
SPVT | Scan Private | This field is for private use of the scanning system. |
RSET | Address of Record Support Entry Table | See Application Developers Guide for details on usage. |
DSET | Address of Device Support Entry Table | 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. |
DPVT | Device Private | This field is for private use of the device support modules. |
Debugging Fields
These fields can aid in the debugging process.
Field Summary
Field | Type | DCT | Initial | Access | Modify | Rec Proc Monitor | PP |
---|---|---|---|---|---|---|---|
TPRO | UCHAR | No | 0 | Yes | Yes | No | No |
BKPT | NOACCESS | No | 1 | No | No | No |
Field Description
Name | Summary | Description |
---|---|---|
TPRO | Trace Processing | 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 |
BKPT | BreakPoint | Holds a pointer to the breakpoint table specified in LINR, if any. |
Miscellaneous Fields
These are miscellaneous fields common to all record types.
Field Summary
Field | Type | DCT | Initial | Access | Modify | Rec Proc Monitor | PP |
---|---|---|---|---|---|---|---|
NAME | STRING [29] | Yes | 0 | Yes | No | No | |
DESC | STRING [29] | Yes | Null | Yes | Yes | No | No |
ASG | STRING [29] | Yes | Null | Yes | Yes | No | |
TSE | SHORT | No | 0 | Yes | Yes | No | |
TSEL | INLINK | Yes | Null | No | No | N/A | No |
DTYP | DEVCHOICE | Yes | 0 | Yes | No | No | |
MLOK | NOACCESS | No | 8 | No | No | No | |
MLIS | NOACCESS | No | 12 | No | No | No | |
DISP | UCHAR | No | 0 | Yes | Yes | Yes | No |
PUTF | UCHAR | No | 0 | Yes | No | No | |
RPRO | UCHAR | No | 0 | Yes | No | No | |
ASP | NOACCESS | No | 4 | No | No | No | |
PPN | NOACCESS | No | 4 | No | No | No | |
PPNR | NOACCESS | No | 4 | No | No | No | |
RDES | NO_ACCESS | ||||||
TIME | NOACCESS | No | 8 | Option | No | No | No |
Field Description
Name | Summary | Description |
---|---|---|
NAME | Record Name | 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. |
DESC | Description | An arbitrary 28 character record description supplied by the application developer. |
ASG | Access Security Group | A character string value defining the access security group for this record. If left NULL, the record is placed in group DEFAULT. |
TSE | Time Stamp Event | The event number for time stamp. This is only meaningful if the IOC has an associated hardware event receiver. See 'er' record for details. |
TSEL | Time Stamp Event Link | An input link for obtaining the time stamp event number. |
DTYP | Device Type | 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. |
MLOK | Monitor Lock | 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. |
MLIS | Monitor List | This 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. |
DISP | Disable putFields | If 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. |
PUTF | dbPutField Process | Did dbPutField cause the current record processing? |
RPRO | Reprocess | Reprocess record when current processing completes. |
ASP | Access Security Private | |
PPN | Address of putNotify | Address of putNotify callback. |
PPNR | Next Record for putNotify | Next record for PutNotify. |
RDES | Address of dbRecordType | |
TIME | Time | The time when this record was last processed, in standard format. |
EPICS Record Reference Manual - 19 MAY 1998