
| INPUTS | ALGORITHMS | OUTPUTS |
|---|---|---|
| Analog Input | Calculation | Analog Output | Binary Input | PID | Binary Output | Muli-bit Binary Input | Signal Select | Multi-bit Binary Output | Digitized Analog Input | Data Compression | Stepper Motor | State | Subroutine | Timing Signal | String Input | Fanout | Permissive | Long Input | Histogram | String Output | Pulse Counter | Long Output | Pulse Train | Pulse Delay |
struct aiRecord {
/* start of record common fields*/
char name[28]; /* Record Name */
char desc[28]; /* Descriptor */
unsigned short scan; /* Scan Mechanism */
unsigned short pini; /* Process at iocInit */
short phas; /* Scan Phase */
short evnt; /* Event Number */
struct link sdis; /* Scanning Disable */
unsigned short dtyp; /* Device Type */
short disv; /* Disable Value */
short disa; /* Disable */
unsigned char disp; /* Disable putField */
unsigned char proc; /* Force Processing */
FAST_LOCK mlok; /* Monitor fastlock */
LIST mlis; /* Monitor List */
unsigned short stat; /* Alarm Status */
unsigned short sevr; /* Alarm Severity */
unsigned short nsta; /* New Alarm Status */
unsigned short nsev; /* New Alarm Severity */
char p001[4]; /* Created Pad */
TS_STAMP time; /* Time */
short lset; /* Lock Set */
unsigned char lcnt; /* Lock Count */
unsigned char pact; /* Record active */
caddr_t spvt; /* Scan Private */
caddr_t rset; /* Address of RSET */
struct dset *dset; /* DSET address */
caddr_t dpvt; /* Device Private */
unsigned char tpro; /* Trace Processing */
unsigned char udf; /* Undefined */
unsigned short prio; /* Scheduling Priority */
struct link flnk; /* Forward Process Link */
/* start of ai specific fields */
double val; /* Current EGU Value */
struct link inp; /* Input Specification */
short prec; /* Display Precision */
unsigned short linr; /* Linearization */
float eguf; /* Engineer Units Full */
float egul; /* Engineer Units Low */
char egu[16]; /* Engineering Units */
float hopr; /* High Operating Range */
float lopr; /* Low Operating Range */
float aoff; /* Adjustment Offset */
float aslo; /* Adjustment Slope */
float smoo; /* Smoothing */
float hihi; /* Hihi Alarm Limit */
float lolo; /* Lolo Alarm Limit */
float high; /* High Alarm Limit */
float low; /* Low Alarm Limit */
unsigned short hhsv; /* Hihi Severity */
unsigned short llsv; /* Lolo Severity */
unsigned short hsv; /* High Severity */
unsigned short lsv; /* Low Severity */
double hyst; /* Alarm Deadband */
double adel; /* Archive Deadband */
double mdel; /* Monitor Deadband */
double lalm; /* Last Value Alarmed */
double alst; /* Last Value Archived */
double mlst; /* Last Val Monitored */
double eslo; /* Rawto EGU Slope */
long roff; /* Raw Offset */
caddr_t pbrk; /* Ptrto brkTable */
short init; /* Initialized? */
short lbrk; /* LastBreak Point */
long rval; /* Current Raw Value */
long oraw; /* Previous Raw Value */
};
Links between records may represent ...








