240 likes | 451 Views
EPICS at APS Beamlines. Tim Mooney Advanced Photon Source Argonne National Laboratory. synApps overview. EPICS applications for synchrotron beamlines (synApps). Standard EPICS base & extensions Standard EPICS modules (e.g., MPF) synApps modules (std, motor, MCA)
E N D
EPICS at APS Beamlines Tim Mooney Advanced Photon Source Argonne National Laboratory
synApps overview EPICS applications for synchrotron beamlines(synApps) • Standard EPICS base & extensions • Standard EPICS modules (e.g., MPF) • synApps modules (std, motor, MCA) • synApps-compatible clients (e.g., scan-data display)
synApps overview synApps • Custom EPICS records • Custom EPICS device-support modules • Other custom infrastructure (e.g., autosave, recDynLink, saveData) • Custom EPICS databases, MEDM displays • Custom clients (e.g., scanSee) • Matched to a version of EPICS base
synApps overview Just to clarify… • We didn’t write everything in synApps • One function of synApps is to bundle compatible versions of selected EPICS software – wherever developed – into a single tar file that can easily be built and configured to run ~80% of a beamline • Second function is to provide generic tools that have proven themselves useful in the development of custom support
Motor Scaler Multichannel analyzer Multichannel scaler Serial (RS-232) GPIB ADC’s DAC’s Encoders Optical table String calc, sequence Complex expressions Enhanced PID Scan Scan parameter Generic VME synApps overview Basic record/device support
Optical tables Slits Mirrors Monochromators Piezo controller Digital Multimeter Current preamplifier Interpolation N-step measurement Serial I/O block GPIB I/O block Autocollimator Temperature controller X-ray microscope Insertion device Filter/shutter synApps overview Layered devices, techniques(databases, SNL programs, …)
synApps overview Other support • Autosave (save parameters through reboot) • saveData (store scan data to disk) • Clients to display scan/MCA data • Programs to handle MDA, NeXus data files • recDynLink (adds notify-when-done link) • used by sscan, swait records
synApps overview Motors • Stepper, servo • Oregon Microsystems • Newport • Intelligent Motion Systems • McClennan • Soft support
synApps overview Scalers • Multiple preset scalers • Background count interrupted by data-acquisition count • User-programmable end calculations • Joerger, Struck hardware
synApps overview Multichannel analyzer • Canberra AIM • XIA DXP • 32 regions of interest • Halt acquisition on ROI preset • Background subtraction for ROI sums • Also supports sampling ADC (Acromag IP-330)
synApps overview Serial O/I Block • Combination of • string calc to construct output message • serial record to send and/or receive • string calc to parse reply • Intended for run-time programming • Similar GPIB support
synApps overview Optical table • 5/6-motor optical table • User specifies point about which table rotates • Exact virtual-to-motor and motor-to-virtual • Specific geometries (adding a new geometry is hard)
synApps overview Monochromators • Nondispersive (standard) • Dispersive (high resolution) • Nested, in-line • Spherical grating (low energy)
synApps overview Miscellaneous • Slit • Sample Wheel • 4-step measurement
synApps overview String Expressions • Extends CALC record to combine string and numeric expressions • Useful for run-time programming of serial devices • EPICS links are programmable at run time
synApps overview Scans • Multidimensional • 4 positioners, 4 detector triggers, 70 signals • saveData client writes to NFS disk • Can acquire arrays (e.g., MCA spectra) • ~300 Hz on MV162 • Start/end, table, on-the-fly • Also for 1-dimensional automated alignment
MCA display (IDL program) scanSee (IDL program for 1D, 2D, 3D data) Plot.py (Python demonstration) PVMail (send email when PV value violates boundary) Misc. experiment-specific user interfaces in tcl/tk, python/tk, Igor, IDL, java Channel Archiver BackUp/Restore Tool StripTool (strip chart) … synApps overview Clients
Saves PV values (e.g., motor positions, scan config) through reboot Defends against crash during save operation Typically 80 values saved every 5 s, 3000 values every 30 s Include files Macro substitution Dated backups Choose save/restore directories Request-file path Can put request files in same directory as database files synApps overview Autosave/restore
CCD support • CA server on CCD’s native platform • Calls vendor-supplied software • Stores images to local disk (HDF format) • Some simple image analysis • Hosts EPICS PV’s for control
Recent progress String calculations • Operators >? and <? (max, min) • Example: A<?B • Variable # of args for MAX, MIN functions • Example: MAX(A,B,C,MIN(D,E)) • Much faster that previous versions • Numeric op’s are 1-4 ms (~10%) slower than calcPerform (on MV162) • (compare to ~4 ms added for isnan/isinf check) • No memory fragmentation
Can put standard request files with databases Database developer writes default request file Easy version control Can override a standard request file with a local copy (at any include level) Recent progress Save_restore request-file path
Recent progress Conversion to 3.14 • In progress, collaborators: • Mark Rivers (CARS-CAT) • Jens Eden (BESSY) • Kate Feng (NSLS) • Till Straumann (SLAC) • Most of synApps compiles at least, some has been tested, some is even OSI
Recent progress Python tools • We use caPython • Geoff Savage (FNAL) • mcaDisplay.py mcaPeakFit.py • Mark Rivers (CARS) • plot.py
For more information: www.aps.anl.gov/xfd/bcda cars.uchicago.edu/gsecars/index.html