Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  <20042005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  <20042005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017 
<== Date ==> <== Thread ==>

Subject: Re: list of *all* EPICS records -- summary (long)
From: Tim Mooney <mooney@aps.anl.gov>
To: "'tech-talk@aps.anl.gov'" <tech-talk@aps.anl.gov>
Date: Mon, 18 Oct 2004 16:59:41 -0500
Dear folks,

Here's a summary of replies to my recent request for EPICS-record
information, with my thanks to all who've contributed so far.

One purpose of this exercise is to construct a sort of cross-reference
between EPICS records and the notions new EPICS developers might bring with
them from previous experience.  As many of you know, it takes quite a
long time, and quite a lot of effort, to discover some of the hidden
capabilities of EPICS records -- who would guess from the name, for example,
that the 'seq' record can function as a data multiplexer, a data demultiplexer,
a lookup table, a programmable pulse generator, and a fanout?  And how would
a new developer guess that they should use an mbbo record to put a custom menu
on a display  screen?

So, appended to the list is my first shot at that cross reference of records
and capabilities.  I'd be grateful for any corrections, additions, or other
improvements to the list or to the web references.

===========================================================================
EPICS records with brief descriptions and names of the organization that
developed or uses/used the record (or [BASE], if the record is/was in EPICS
base). Some guesswork was involved in compiling this list.  Not all of these
records are currently maintained.

aai array analog input [BASE]

aao array analog output [BASE]

ai analog input [BASE]

ao analog output [BASE]

bi binary input [BASE]

bo binary output [BASE]

calc calculation [BASE]

calcout calculation and conditional output [BASE]

compress compress [BASE]

dfanout data fanout [BASE]

eg event-generator (custom hardware) [BASE]

egevent event-generator (custom hardware) event [BASE]

er event-receiver (custom hardware) [BASE]

erevent event-receiver (custom hardware) event [BASE]

event event [BASE]

fanout sequence of forward links [BASE]

histogram bin a series of PV values into an array [BASE]

longin integer input [BASE]

longout integer output [BASE]

mbbiDirect multi-bit binary input variant [BASE]

mbbi multi-bit binary input [BASE]

mbboDirect multi-bit binary output variant [BASE]

mbbo multi-bit binary output [BASE]

permissive      for communicating state information [i.e., for handshaking]
                between a server and a channel-access client [BASE]

sel select a value based on criteria [BASE]

seq sequence of reads/delays/writes [BASE]

state           place for a state program [SNL program] to write a string that
                a channel-access client can read [BASE]

stringin string input [BASE]

stringout string output [BASE]

subArray get part of an array [BASE]

sub subroutine [BASE]

waveform array [BASE]

--------------------------------------------------------------------------------

asyn Generic interface to asyn port [ANL]

scaler Control a bank of counters [synApps]

sseq            string sequence (cf. seq record) - Execute a sequence of EPICS
                writes to a set of EPICS PVs; optionally, wait for completion
                after write. [synApps]

epid Enhanced PID record [synApps]

timestamp Timestamp record, exports its timestamp as a string [SLAC]

genSub Multi-I/O subroutine, handles arrays [OSL]

transform       Like 'calcout', but supports 16 sets of (inlink, expression,
                value, outlink), named *A -- *P, executed in order.
                Expressions can use the results of any previously evaluated
                expression in the record. [synApps]

swait           mostly superceded by calcout record Evaluate a numeric
                expression; write the result to an EPICS PV; optionally wait
                for completion. [synApps]

sCalcout string-calc-output (cf. calcout record) [synApps]

busy            database interface to putNotify() - make a complex device
                useable by ca_put_callback() [synApps]

scanparm scan parameters for sscan record [synApps]

sscan           Programmatically set conditions and acquire data (cf. scan
                record) [synApps]

table Control a six-degree-of-freedom optical table [synApps]

mca Supports multichannel analyzers [synApps]

gpib Probes GPIB [synApps]

motor           Replacement for steppermotor record - also supports servo
                motors; different device and driver support; user/dial
                coordinates; backlash takeout; encoders [synApps]

dxp XIA dxp custom [synApps]

vme Probes VMEbus [synApps]

camac Probes CAMAC [synApps]

abDcm Allen Bradley [ANL]

ab1771IX Allen Bradley [ANL]

ab1771IFE Allen Bradley [ANL]

ab1771N Allen Bradley [ANL]

ab1791 Allen Bradley [ANL]

cad             Implements Gemini Command/Action Layer between IOC's [OSL]
car
sir
apply

hiv Access LeCroy or CAEN HV mainframes [JLAB]

interp General-purpose interpolation [KECK]

pal Emulates PAL-type IC [LANL]

serial Probes Serial [synApps]

pulseCounter Control hardware that counts pulses [ANL]

pulseDelay Control hardware that generates a triggered pulse [ANL]

pulseTrain generate a pulse train, or control hardware that does this [ANL]

timer Configure timing outputs of a pulse generator [ANL]

spectrum        spectrum-analyzer - Calculate the one-dimensional FFT of a
                waveform. [ANL/LANL]

waveAnl         waveform analysis - Compute simple statistics on a region of
                interest. [ANL/LANL]

digitel For Digitel 500/1500 and new MPC vacuum controllers [ANL]

gp307 Vacuum gauge from Granville Philips [ANL]

vacScan Spectra VacScan RGA (MKS - pretty much obsolete) [ANL]

satRga Spectra Satallite RGA (now MKS) - Superset of vacScan. [ANL]

archive         store the values of a PV for use by an EPICS archiving client
                [?]

wait early version of calcout [ANL]

cpid CEBAF PID record [JLAB]

lseq long seq (16 outputs instead of 10) [JACH]

ps              For Bates integrated BitBus power supply controller. 1 DAC, 3
                ADCs, DC control, interlock status/reset, ramping, cycling,
                many alarms.  Set/read in Amps, kG, MeV for calibrated magnets
                [Bates]

bates_bpm       High-level control and processing for BPMs using Bates
                flash-ADC board.  Supports multiple sampling modes, trigger
                delay, sample window width, two layers of sample averaging, RMS
                and standard deviation, alarms, reference and delta values.
                Heavily integrated with driver/device support. [Bates]

beamLife calculates storage ring beam lifetime [KEK]

strInMon        just like a stringin, but produce a monitor every time a new
                string is received, EVEN IF IT IS THE SAME as the previous
                string.  Greatly simplifies monitor driven control of string
                input systems.  There's no need to write NULL's back into
                records so you will receive the next input (which create
                monitors themselves, that you have to handle!) [CFHT]

bigGenSub       based on gensub with the following differences:
                47 inputs
                26 outputs
                the user definable subroutines for initialization of data
                size for each input and output have been eliminated [CFHT]

aiTrip          Standard records with two additional fields: TLNK and TREN.
biTrip          TLNK is a link that gets processed if a MAJOR severity condition
mbbiTrip        is reached.  TREN is an enable/disable field for this link.
(etc.)          Used at IPNS for software level trips to shut the beam off.
                [IPNS]

joinArray the opposite of a subArrayRecord. [SLS]

? support for the ECDR-814 digital receiver board [SPEAR]

ornlAo          AO for custom knob box: contains a percent field; knob gain
                field; saved value field; two fields to manage assignment to a
                knob; two scan rate fields - when assigned, SCAN is set to the
                fast rate; when deassigned, SCAN is set to the slow rate [ORNL]

ornlAi*         AI for assignment to meters: percent field; two assignment
                fields; two scan rate fields [ORNL]

mbbi32Direct 32-bit version of mbbiDirect [ORNL]

mbbo32Direct 32-bit version of mbboDirect [ORNL]

ornlSub         A modified sub record that adds a void pointer that may hold a
                structure allocated at init. The subroutine uses this to keep
                track of state info. [ORNL]

rt              ramptable. Used to generate the ramps for the booster ramped
                power supplies.  Works in conjunction with custom hardware.
                [ANL]

runcontrol      a process that runs somewhere can register itself through this
                record, and for instance you could use it to avoid starting the
                same process twice in different machines. [ANL]

beamh beam history Module Control [ANL]

beamhchan beam history Module channel [ANL]

bpm             BPM with averaging, position calculations, and some user-
                interface controls [ANL]

cm              originally written to support the (custom) AT5 Diagnostic
                module, now a soft record - combination of calc with
                current-monitor trigger controls [ANL]

datalog for logging data arrays [ANL]

ddlypulse digital-delay pulse generator control [ANL]

ddlypulsevme digital-delay pulse generator control [ANL]

fbuffer buffer record for floats [ANL]

image           Intended to transfer a digitized image [i.e., 2D array of 1- or
                2-byte integers] over channel access. [ANL]

iq ai variant with hardware specific fields [ANL]

memscan Memory Scanner Module Control [ANL]

msbpm monitored BPM with averaging [ANL]

msbpmX monitored BPM with averaging [ANL]

rf ai variant with hardware specific fields [ANL]

sddsLaunch      ControlLaw Launch Record - used to start sdds epics tasks in the
                ioc [ANL]

tsub            transform subroutine - a 'subroutine' record with lots of
                inputs and outputs [ANL/ECT]

status like 'longin' with forward links for each bit [ANL/ECT]

swf             scaled waveform record - same as waveform but with raw offset
                and vertical scale factor and offset.  Used in reading scopes.
                [BESSY]

wftime          waveform with both time and Y, assumes both are double, for
                input waveforms only.  PREC, EGU, HOPR, LOPR provided for both
                time and Y.  ESLO and EOFF provided for Y.  NORD monitor goes
                off when changed (unlike waveform which I think is a bug). Used
                in reading time/value arrays from Keithley DVMs. [SLAC/SPEAR]

sSub            special subroutine, same as sub except with 26 inputs (A to Z)
                [SLAC/SPEAR]

?monsterVXI?    One custom record per six custom RF VXI modules which are
                loaded with features and have very large address maps plus DSP
                interfaces - each record can be thought of as a combination of
                many ai/ao/bi/bo/sub/seq/waveform records where the bulk of the
                processing is done in device support.  These records are
                monsters but I think new people assigned to maintain them come
                up to speed more quickly - it's easier to match the hardware
                documentation and address maps with the software. [SLAC/SPEAR]

mosub multiple-output sub (precursor to genSub) [OSL]

watchDog [KEK]

vxSymbol based on vmeReocrd. Can be replaced by symb lib. [KEK]

bpmKek based on BPM record from JLAB [KEK]

aConcat Join the several waveform into one. [KEK]

aRaw pick up every N element from waveform. [KEK]

findPeak find a peak in waveform, based on a compress record. [KEK]

BeamLife calculate a decay life time. [KEK]

LongMbbiDirect Multi-bit binary reocrd for LONG(32bits) data. [KEK]

waveout output waveform to a device. [KEK]

wfselector [KEK]

?encoder? custom encoder [Keck]

?servo? servo [Keck]

?trajectory? trajectory control [Keck]

?command? command shaper [Keck]

bpt             Breakpoint table lookup record (like what is used in ai, but
                uses double rather then int for raw value). [Duke]

nmr             Hardware specific record for interface to NMR probes used for
                measuring magnet field. [Duke]


------------------------------------------------------------------------------- Links to entities named above:

[BASE]          EPICS base
                http://www.aps.anl.gov/epics

[ANL]           Argonne National Lab.; APS Accelerator Controls
                http://www.aps.anl.gov/epics

[ANL/ECT]       Argonne National Lab.; Electronics and Computing Technologies
                (Division no longer exists)

[synApps]       APS Beamline Controls
                http://www.aps.anl.gov/aod/bcda/synApps

[SLAC]          Stanford Linear Accelerator
                http://www.slac.stanford.edu/comp/unix/package/epics

[OSL]           Observatory Scoences, Ltd.
                http://www.observatorysciences.co.uk/epics.htm

[JLAB]          Jefferson Lab.
                http://www.jlab.org/accel/controls/controls.html

[Keck]          Keck Observatory
                http://www2.keck.hawaii.edu:3636/realpublic/epics/

[LANL]          Los Alamos National Lab.
                http://lansce.lanl.gov/lansce8/Epics/epics.htm

[JACH]          Joint Astronomy Centre
                http://www.jach.hawaii.edu/JACpublic/UKIRT/software/epics/

[Bates]         MIT Bates Linear Accelerator Center
                http://mitbates.mit.edu/

[KEK] KEK, National Laboratory for High Energy Physics, Japan

http://www-acc.kek.jp/WWW-ACC-exp/KEKB/control/KEKB-Control-home.html

[CFHT]          Canada-France-Hawaii Telescope
                http://cfht.hawaii.edu/

[IPNS]          Argonne National Lab.; Intense Pulsed Neutron Source
                http://www.pns.anl.gov/computing/

[SLS]           Swiss Light Source at the Paul Scherrer Institute
                http://www.sls.psi.ch/controls/

[SPEAR]         Spear at SLAC
                http://www.slac.stanford.edu/~spear/epics/

[ORNL]          Oak Ridge National Lab.; Spallation Neutron Source
                http://ics-web1.sns.ornl.gov/

[BESSY]         BESSY (Berlin synchrotron facility)
                http://www-csr.bessy.de/control

[Duke]          Duke Free Electron Laser
                http://www.fel.duke.edu/epics/

-------------------------------------------------------------------------------
CROSS REFERENCE: record capabilities and common notions from software
and electronic engineering.

Records implementing notions from existing programming languages
================================================================

	scalar data type or simple structure
	------------------------------------
	ai, ao, bi, bo, longin, longout, timestamp, vxSymbol,
	ornlAi, ornlAo, aiTrip, biTrip

	bit map
	-------
	mbbi, mbbiDirect, mbbi32Direct, LongMbbiDirect, mbbo, mbbo32Direct,
	status, mbbiTrip, seq, sseq, lseq

	array data type
	---------------
	aai, aao, histogram, state, stringin, stringout, strInMon, subArray,
	waveform, mca, joinArray, fbuffer, image, wtfime, aConcat, waveout,
	swf, wftime, datalog

	array index
	-----------
	sel, seq, lseq, sCalcout, transform

	event - software interrupt, exception
	-------------------------------------
	eg, egevent, er, erevent, event, aiTrip, biTrip, mbbiTrip, watchDog,
	wait, swait, strInMon

	algebraic/logical expression
	----------------------------
	calc, calcout, transform, sCalcout, wait, swait

	string expression
	-----------------
	sCalcout

	control structure (e.g., loop, if-then)
	---------------------------------------
	fanout, dfanout, seq, sseq, transform, lseq, scan, sscan, calcout, swait
	
	fixed algorithm
	---------------
	ai, ao, compress, histogram, pid, epid, cpid, table, interp, spectrum,
	waveAnl, aRaw, findPeak, beamLife, ai, ao , bpt
	
	subroutine
	----------
	sub, mosub, genSub, tsub, bigGenSub, ornlSub, sSub
	
	semaphore
	---------
	permissive, busy, runcontrol
	
	menu
	----
	mbbi, mbbo
	
Records implementing notions from digital electronics
=====================================================

	multiplexer/demultiplexer
	-------------------------
	fanout, dfanout, sel, status, wfselector, seq, sseq, calc, calcout,
	sCalcout, transform
	
	handshake
	---------
	permissive, busy, runcontrol
	
	flip-flop, logic gate, ALU, etc.
	--------------------------------
	calc, calcout, transform, sCalcout, wait, swait
	
	programmable logic
	------------------
	pal
	

Records to connect with a named port, device, or service
========================================================
	asyn

Records specific to a hardware bus
==================================
	gpib, serial, vme, camac
	
Records specific to a hardware class
====================================
	scaler, table, mca, motor, hiv, pulseCounter, pulseDelay, pulseTrain,
	timer, steppermotor, ddlypulse, swf, wftime, servo, trajectory
	
Records specific to a particular piece or collection of hardware
================================================================
	er, erevent, eg, egevent, dxp, ab*, digitel, gp307, vacScan, satRGA,
	ps, bates_bpm, rt, beamh, beamhchan, bpm, cm, ddlypulsevme, iq,
	memscan, msbpm, rf, monsterVXI, bpmKek, nmr

--
Tim Mooney (mooney@aps.anl.gov; 630-252-5417)
Advanced Photon Source
APS Operations Division
Beamline Controls & Data Acquisition Group


Replies:
Re: list of *all* EPICS records -- summary (long) Noboru Yamamoto
References:
RE: list of *all* EPICS records Allison, Stephanie

Navigate by Date:
Prev: RE: list of *all* EPICS records Andy Foster
Next: Re: list of *all* EPICS records -- summary (long) Noboru Yamamoto
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  <20042005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017 
Navigate by Thread:
Prev: Re: list of *all* EPICS records Till Straumann
Next: Re: list of *all* EPICS records -- summary (long) Noboru Yamamoto
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  <20042005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017 
ANJ, 10 Aug 2010 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·