EPICS What is an EPICS Database Andrew Johnson
EPICS What is an EPICS Database? Andrew Johnson APS (modified by Philip Taylor & Andy Foster 2004 -2009) January 2009 What is an EPICS Database 1
Outline u u u u u EPICS Records Fields and field types Record Scanning Input and Output record types Hardware support Links Chaining Records together Protection mechanisms Alarms, deadbands, simulation and security January 2009 What is an EPICS Database 2
Database = Records + Fields + Links u u EPICS A control system using EPICS will contain one or more IOCs Each IOC loads one or more Databases telling it what to do A Database is a collection of Records of various types A Record is an object with: u u u A unique name A behaviour defined by its record type (class) Controllable properties (fields) Optional associated hardware I/O (device support) Links to other records January 2009 What is an EPICS Database 3
Record Activity u Records are active — they can do things: u u u u EPICS Get data from other records or from hardware Perform calculations Check values are in range & raise alarms Put data to other records or to hardware Activate or disable other records Wait for hardware signals (interrupts) What a record does depends upon its record type and the settings of its fields No action occurs unless a record is processed January 2009 What is an EPICS Database 4
How is a Record implemented? u u A ‘C’ structure with both data storage and pointers to record type information A record definition within a database provides u u Record name The record’s type Values for each design field A record type provides u u u EPICS Definitions of all the fields Code which implements the record behaviour New record types can be added to an application as needed January 2009 What is an EPICS Database 5
One view of a Record: Capfast EPICS The small Cap. Fast symbol for an Analogue Output record January 2009 What is an EPICS Database 6
Another view January 2009 What is an EPICS Database EPICS 7
Latest View (Visual DCT) January 2009 What is an EPICS Database EPICS 8
The IOC’s view EPICS The full. db file entry for an Analogue Output Record record(ao, "Demand. Temp") { field(DESC, "Temperature") field(ASG, "") field(SCAN, "Passive") field(PINI, "NO") field(PHAS, "0") field(EVNT, "0") field(DTYP, "VMIC 4100") field(DISV, "1") field(SDIS, "") field(DISS, "NO_ALARM") field(PRIO, "LOW") field(FLNK, "") field(OUT, "#C 0 S 0") field(OROC, "0. 0 e+00") field(DOL, "") field(OMSL, "supervisory") field(OIF, "Full") field(PREC, "1") field(LINR, "NO CONVERSION") field(EGUF, "100") field(EGUL, "0") field(EGU, "Celcius") field(DRVH, "100") field(DRVL, "0") field(HOPR, "80") field(LOPR, "10") field(HIHI, "0. 0 e+00") field(LOLO, "0. 0 e+00") field(HIGH, "0. 0 e+00") field(LOW, "0. 0 e+00") field(HHSV, "NO_ALARM") field(LLSV, "NO_ALARM") field(HSV, "NO_ALARM") field(LSV, "NO_ALARM") field(HYST, "0. 0 e+00") field(ADEL, "0. 0 e+00") field(MDEL, "0. 0 e+00") field(SIOL, "") field(SIMS, "NO_ALARM") field(IVOA, "Continue normally") field(IVOV, "0. 0 e+00") } This shows only the design fields, there are other fields which are used at run-time January 2009 What is an EPICS Database 9
Fields are for. . . u Defining u u u u EPICS What causes a record to process Where to get/put data from/to How to turn raw I/O data into a numeric engineering value Limits indicating when to report an alarm When to notify value changes to a client monitoring the record A Processing algorithm Anything else which needs to be set for each record of a given type Holding run-time data u u Input or output values Alarm status, severity and acknowledgements Processing timestamp Other data for internal use January 2009 What is an EPICS Database 10
Field types u EPICS Fields can contain u Integers u u u Floating-point numbers u u select one from several strings stored as a short integer Links u u max length 40 characters or less (CA restriction) Long strings at 3. 14. 11 (add $ to end of string or link fields forces it to be array of char) Menu choices u u float or double Strings u u char, short or long signed or unsigned to other records in this or other IOCs to hardware signals (device support) provide a means of getting or putting a value Other private data u January 2009 not directly accessible What is an EPICS Database 11
All Records have these fields EPICS Design fields NAME 61 Character unique name (increased from 29 at 3. 14. 1) DESC Description string ASG Access security group SCAN Scan mechanism PHAS Scan order (phase) PINI Process at startup? PRIO Scheduling priority SDIS Scan disable input link DISV Scan disable value DISS Disabled severity FLNK Forward link Run-time fields PROC PACT STAT SEVR TPRO UDF TIME January 2009 Force processing Process active Alarm status Alarm severity Trace processing Set if record value undefined Time when last processed What is an EPICS Database 12
Record Scanning u SCAN field is a menu choice from u u u Passive (default) Periodic — 0. 1 seconds. . 10 seconds Hardware I/O Interrupt (only if the device supports this) Soft event — EVNT field The number in the PHAS field allows processing order to be set within a scan u u u EPICS Records with PHAS=0 are processed first Then those with PHAS=1 , PHAS=2 etc. Records with PINI=YES are processed once at startup PINI now also supports values RUN and PAUSE u u PRIO field selects Low/Medium/High priority for Soft event and I/O Interrupts A record is also processed whenever any value is written to its PROC field January 2009 What is an EPICS Database 13
Preventing records from processing u u u EPICS It is useful to be able to stop an individual record from processing on some condition Before record-specific processing is called, a value is read through the SDIS input link into DISA If DISA=DISV, the record will not be processed A disabled record is alarmed by giving the desired severity in the DISS field The FLNK of a disabled record is not triggered January 2009 What is an EPICS Database 14
Input records often have these fields INP DTYP RVAL LOPR HOPR u EPICS Input link Device type Raw data value Engineering value Low operator range High operator range Analogue I/O records have these fields: LINR Unit conversion control Ä No conversion, Linear, breakpoint tables… EGUL EGUF EGU January 2009 Low engineering value High engineering value Engineering unit string What is an EPICS Database 15
Periodic Input u u EPICS Analogue Input “Temperature” Reads from the Xycom XY 566 ADC Card 0 Signal 0 Gets a new value every 0. 1 seconds Data is converted from ADC range to 0. . 120 Celsius January 2009 What is an EPICS Database 16
Interrupt Input u u u EPICS Binary Input “Vent. Valve” Reads from Allen-Bradley TTL I/O Link 2, Adaptor 0, Card 3, Signal 5 Processed whenever value changes 0 = “Closed”, 1 = “Open” Major alarm when valve open January 2009 What is an EPICS Database 17
Output records often have these fields OUT DTYP VAL RVAL DOL OMSL Ä LOPR HOPR u EPICS Output link Device type Engineering value Raw output value Input link to fetch output value Output mode select Supervisory, Closed Loop Low operator range High operator range Analogue outputs also have these fields: OROC OIF OVAL DRVH DRVL IVOA IVOV RBV January 2009 Output rate of change Incremental or Full output Output value Drive high limit Drive low limit Invalid output action Invalid output value Read-back value What is an EPICS Database 18
Passive Output u u u EPICS Binary Output “Solenoid” Controls Xycom XY 220 Digital output Card 2 Signal 12 Record’s SCAN field is set to Passive – it is processed according to the rules below January 2009 What is an EPICS Database 19
Links EPICS A link is a type of field, and is one of u Input link u u Output link u u Fetches data Writes data Forward link u Points to the record to be processed once this record finishes processing January 2009 What is an EPICS Database 20
Input and Output links may be. . . u EPICS Constant numeric value, eg: 0 3. 1415926536 1. 6 e-19 u Hardware link A hardware I/O signal selector, the format of which depends on the device support layer u Process Variable link — the name of a record, which at run-time is resolved into u Database link Named record is in this IOC u Channel Access link Named record not found in this IOC January 2009 What is an EPICS Database 21
Database links EPICS These comprise: u The name of a record in this IOC my. Db: my. Record u An optional field name. VAL u Process Passive attribute. NPP. PP u (default) (default on INP and OUT links) (default forward links) Maximize Severity attribute. NMS. MSI. MSS (default) (Maximize Severity Invalid only) (Maximize Severity and Status) For example: M 1: current. RBV. NPP. MS January 2009 What is an EPICS Database 22
Scan Passive Records 1. Forward Link u u u EPICS The default scan method for a record is Passive A Passive record will not process without some external action A Passive record can be processed using a Forward Link from another record. See following example. January 2009 What is an EPICS Database 23
Scan Passive Example: Forward Link u u EPICS In this example, the CALC record is Scan Passive and is triggered by forward links from two AI records The CALC record will be processed every 2 seconds as well as when an I/O interrupt occurs January 2009 What is an EPICS Database 24
Scan Passive Records 2. Channel Access Put EPICS EDM CAC CAS Process Variable u u u A field in a record is defined to be either a PP or non-PP field. This attribute is only used by Channel Access ‘puts’. A Passive record will be processed using a Channel Access ‘put’ to a field with the PP attribute set (e. g. . VAL field) A Channel Access put is not visible on a schematic – data source is outside IOC. January 2009 What is an EPICS Database 25
Scan Passive Records 3. Database Link EPICS u A Passive record will also be processed when another record reads from or writes to a field with the Process Passive (. PP)attribute set on the database link. u See following example. January 2009 What is an EPICS Database 26
Scan Passive Example: Database Link u u EPICS Both records are Scan Passive Record_1 retrieves its output value from Record_2 via its DOL link The DOL link has the. PP attribute specified, so when Record_1 processes it will trigger processing of Record_2 When Record_2 has finished processing, the value in its VAL field will be retrieved via DOL; Record_1 will then finish processing January 2009 What is an EPICS Database 27
Channel Access Links u u u EPICS Specified like a database link Name is not a record found in this IOC Use Channel Access protocol to communicate with remote IOC May include a field name (default. VAL) Input CA links don’t cause destination record processing Output CA links obey PP attribute of destination field January 2009 What is an EPICS Database 28
Channel Access Database Link Flags u EPICS Additional database link flags: u u u Forces a “local” database link to use Channel Access. Applies to both input and output links. . CP Input link only. Use Channel Access. Process this record when destination value changes. CPP Input link only. Use Channel Access. Process this record when destination value changes, but only if this record is Scan Passive. CA January 2009 What is an EPICS Database 29
Soft Device Support u u EPICS Input and Output records are designed to perform hardware I/O via device support They can also access other records via DB or CA links, using soft device support. The default device support is Soft Channel. 2 kinds of support are provided: u Soft Channel u u Get/Put VAL through link, no conversion Raw Soft Channel u Inputs u Get RVAL via input link u Convert RVAL to VAL (device specific) u Outputs u Convert VAL to RVAL (device specific) u Put RVAL to output link January 2009 What is an EPICS Database 30
Forward Links u u EPICS Usually a database link referring to a record in same IOC Destination record must have SCAN = Passive u u for it to be processed Does not pass a value, just causes subsequent processing Channel Access forward links are possible by naming the PROC field of a remote record as the destination of the link January 2009 What is an EPICS Database 31
Processing Chains January 2009 What is an EPICS Database EPICS 32
Which record is never processed? January 2009 What is an EPICS Database EPICS 33
Which record is processed twice? January 2009 What is an EPICS Database EPICS 34
How are records given CPU time? EPICS Several tasks are used: u callback (3 priorities) — I/O Interrupt u scan. Event — Soft Event u scan. Period — Periodic u u u A separate task is used for each scan period Faster scan rates are given higher task priority Channel Access tasks use lower priority than record processing u If a CPU spends all the time doing I/O and processing, you will be unable to control or monitor the IOC via the network January 2009 What is an EPICS Database 35
Lock-sets u u EPICS Prevent a record from being processed simultaneously from two scan tasks A lock-set is a group of records interconnected by: u u Output Database links Forward links Input links Arrays (because not an atomic operation) Lock-sets are determined automatically by the IOC at start-up You can split a lock set with u Channel Access links, using. CA flag u January 2009 What is an EPICS Database 36
Alarms u Every record has the fields SEVR Ä STAT Ä u u EPICS Alarm Severity NONE, MINOR, MAJOR, INVALID Alarm Status (reason) READ, WRITE, UDF, HIGH, LOW, STATE, COS, CALC, DISABLE, etc. Most numeric records check VAL against HIHI, HIGH, LOW and LOLO fields after the value has been determined The HYST field prevents alarm chattering u A separate severity can be set for each numeric limit (HHSV, LSV, LLSV) u Discrete (binary) records can raise alarms on entering a particular state, or on a change of state (COS) January 2009 What is an EPICS Database 37
Change notification: Monitor deadbands EPICS Channel Access notifies clients which are monitoring a numeric record when u VAL changes by more than the value in field: MDEL Value monitors ADEL Archive monitors u Record’s Alarm Status changes HYST Alarm hysteresis u Analogue Input record provides smoothing filter to reduce input noise (SMOO) January 2009 What is an EPICS Database 38
Breakpoint Tables u u EPICS Analogue Input and Output records can do non-linear conversions from/to the hardware data Breakpoint tables interpolate from given table To use, set the record’s LINR field to the name of the breakpoint table you want to use Example breakpoint table (in your. dbd file) breaktable(attenuator 1_1) { 504 0 795 1. 25 909 2. 5 1012 3. 75. . . } January 2009 What is an EPICS Database 39
Simulation u Input and output record types often allow simulation of hardware interfaces SIMM SIML SIOL SIMS u u u EPICS Simulation mode (YES/NO) Simulation mode link (sets SIMM) Simulated data value input link Simulation alarm severity Before using its device support, a record reads SIMM through the SIML link If SIMM=YES, device support is ignored; record I/O uses the SIOL link instead An alarm severity can be set whenever simulating, given by SIMS field January 2009 What is an EPICS Database 40
- Slides: 40