0d301e978d0e79c756be286a374e6757.ppt
- Количество слайдов: 52
Using EPICS for Beamline Control and Data Acquisition Mark Rivers Geo. Soil. Enviro. CARS, Advanced Photon Source University of Chicago
Acknowledgements • Many slides borrowed from the “Getting Started with EPICS” lecture series held over past year at APS. All talks are online – Ned Arnold, APS, Introduction to EPICS – Ken Evans, APS, MEDM – Tim Mooney, APS, Beamline controls Geo. Soil. Enviro. CARS Australian Synchrotron Beamline Control Workshop April 18 -19, 2005
Outline • Goals for Beamline Control and Data Acquisition (BCDA) systems • Brief Overview of EPICS • Advantages of using EPICS for BCDA • Where is EPICS being used for BCDA today • What’s available for EPICS BCDA – The syn. Apps module from APS – Cover some basics today – More details in talks on detectors, feedback tomorrow • What needs to be done
Characteristics of an Ideal Beamline Control and Data Acquisition System 1. Easy to use • • 2. Fast, efficient • 3. 4. 5. 6. Intuitive Graphical User Interface (GUI) Customized for the specific experiment Expert users don’t want to navigate GUI Powerful, able to accomplish any task, even if it has never been done before Able to use existing applications that have substantial development and user familiarity (Blu-Ice, SPEC, Photon Factory EXAFS program, etc. ) Can use different applications to run the same equipment for different experiments (i. e. not tied into Labview or SPEC drivers) Available off-the-shelf, no development required (you wish!) Geo. Soil. Enviro. CARS Australian Synchrotron Beamline Control Workshop April 18 -19, 2005
Introduction: What is EPICS? • A collaboration of the controls groups of many research organizations that use the EPICS tool-kit. • A distributed architecture that supports a wide range of solutions from small test stands to large integrated facilities. • A set of tools that reduces software application and maintenance costs by providing: Configuration tools in place of programming A large installed base of tested software A modular design that supports incremental upgrades Well defined interfaces for extensions at every level Geo. Soil. Enviro. CARS Australian Synchrotron Beamline Control Workshop April 18 -19, 2005
What is EPICS? • A Collaboration • A Control System Architecture – Network-based “client/server” model (hence the EPICS logo) CA Client CA Server – For EPICS, client and server speak of their Channel Access role • i. e. Channel Access Client & Channel Access Server Geo. Soil. Enviro. CARS Australian Synchrotron Beamline Control Workshop April 18 -19, 2005
What is EPICS? • Channel Access clients are programs that require access to Process Variables to carry out their purpose Strip. Tool MEDM CAC CAS Process Variables • The “service” that a Channel Access server provides is access to a Process Variable* CAS Variables * A Process Variable (PV) is a named piece of data. Geo. Soil. Enviro. CARS Australian Synchrotron Beamline Control Workshop April 18 -19, 2005
What is EPICS? • Process Variable – A Process Variable (PV) is a named piece of data associated with the beamline (e. g. status, readback, setpoint, parameter) – Examples of PV names and values: • • • 13 IDA: cc 4 3. 2 e-08 torr (Cold cathode gauge 4) 2 IDA: m 1. RBV 0. 323 mm (Motor 1 actual position) 13 IDA: Mono. Energy 12. 454 ke. V (Mono energy set point) S: Sr. Current. Ai 101. 2 m. A (APS ring current) APS: Mode ‘Stored Beam’ (APS storage ring mode) 13 IDC: mca 1 {0, 0, 1, 102, 210, 262, 0, 0, …} (MCA spectrum) Geo. Soil. Enviro. CARS Australian Synchrotron Beamline Control Workshop April 18 -19, 2005
What is EPICS? • Process Variable – A Process Variable is a named piece of data with a set of attributes – Examples of Attributes: • • Alarm Severity (e. g. NO_ALARM, MINOR, MAJOR, INVALID) Alarm Status (e. g. LOW, HI, LOLO, HIHI, READ_error) Timestamp Number of elements (array) Normal Operating Range Control Limits Engineering Unit Designation (e. g. degrees, mm, MW) Geo. Soil. Enviro. CARS Australian Synchrotron Beamline Control Workshop April 18 -19, 2005
What is EPICS? • A Control System Architecture – Network-based “client/server” model where the basic data element is a Process Variable – The Channel Access Protocol defines how Process Variable data is transferred between a server and client – The entire set of Process Variables establish a Distributed Real-time Database of machine status, information and control parameters CAS CAS Process Process Variables Variables Geo. Soil. Enviro. CARS Australian Synchrotron Beamline Control Workshop April 18 -19, 2005
What is EPICS? • Any tool/program/application that abides by the Channel Access protocol could be described as “EPICS Compliant”. My Special Data Collection Program MEDM CAC • EPICS can be viewed as a “toolkit” of EPICS compliant programs. One can select the appropriate tool for their need or develop their own. Strip. Tool CAC CAS My Accelerator Simulator Code CAC CAS CAC ioc. Core Lab. View (PVs) Geo. Soil. Enviro. CARS Australian Synchrotron Beamline Control Workshop April 18 -19, 2005
Typical Realizations of an EPICS System Driving a motor with EPICS circa 1995 circa 2002 IOC CAS IOC IOC Commercial Custom Instruments Chassis/Panels Technical Equipment Geo. Soil. Enviro. CARS Australian Synchrotron Beamline Control Workshop April 18 -19, 2005
Channel Access in One Slide “connection request” or “search request” “get” or “ca. Get” “set a monitor” Change its value to 30. 5 Who has a PV named “S 1 A: H 1: Current. AO”? “put” or “ca. Put” Notify me when the value changes What is its value? Channel Access Client CA Server CA Client Channel Access Server Process Variables: I do. 25. 5 AMPS “put complete” S 1 A: H 1: Current. AO S 1: P 1: x or 30. 5 is too high. It is now set to the maximum value of 27. 5. or Geo. Soil. Enviro. CARS It is now 20. 5 AMPS 10. 5 AMPS It is now 0. 0023 AMPS “post an event” or “post a monitor” You are not authorized to change this value S 1: P 1: y S 1: G 1: vacuum OK, it is now 30. 5 Australian Synchrotron Beamline Control Workshop April 18 -19, 2005
IOC Software in One Slide Network (Channel Access) [IOC Software] EPICS “ioc. Core” services and routines Application Specific Database Record [of Records] Record Record Record Record [EPICS-supplied] Record Record Device/Driver Support [EPICS-supplied/user-extensible] “Supported” Instruments Shared/Provided Required Geo. Soil. Enviro. CARS Application Specific Programs [e. g. State Notation Language] New Device Support “New” Equipment Optional Australian Synchrotron Beamline Control Workshop April 18 -19, 2005
Standalone CA Clients (from EPICS Website) • • • • • ADT: Array Display Tool ALH: Alarm Handler AR: Data Archiver (the original, deprecated) BURT: Backup and Restore Tool CAEX: Channel Access Examples CASR: Host-based Save/Restore CAU: Channel Access Utility Channel Archiver (SNS) Channel Watcher (SLAC) DM 2 K: Display Manager 2000 (BESSY) EDD/DM: Editor and Display Manager (LANL) EDM: Extensible Display Manager (ORNL) Hist. Tool: Data Histogramming Tool Joi. Mint: Java Operator Interface and Management INtegration Toolkit (DESY) Jprobe: Java Version of Probe, a Channel Monitoring Program MEDM: Motif Editor and Display Manager Probe: Motif Channel Monitoring Program Strip. Tool: Strip-chart Plotting Tool Yviewer: Data Visualization Tool Geo. Soil. Enviro. CARS Australian Synchrotron Beamline Control Workshop April 18 -19, 2005
EPICS Programming/Scripting/Display Languages • • • C, C++ tcl/TK Visual Basic Labview IDL Python JAVA Matlab Unix shells Any other language with the ability to call C functions in a shared library or DLL Geo. Soil. Enviro. CARS Australian Synchrotron Beamline Control Workshop April 18 -19, 2005
Key Features of IOC software … • Two primary application specific components: – The real-time database of records (required) – State Notation Language programs used to implement state oriented programs (finite-state machine) • Machine status, information and control parameters are defined as “records” in the application specific database. • The data within a record is accessible via Process Variables. • Records have some functionality associated with them (scaling, filtering, alarm detection, calculations, etc). Different record types have different functions and uses. • Records are frequently associated with I/O equipment that requires unique “device support” for that instrument. Geo. Soil. Enviro. CARS Australian Synchrotron Beamline Control Workshop April 18 -19, 2005
Ten really neat things about EPICS • • • It’s free It’s Open Source There are lots of users All a client needs to know to access data is a PV name You can pick the best tools out there … … or build your own The boring stuff is already done A good contribution becomes internationally known By following a few simple rules, you get a lot for free Geo. Soil. Enviro. CARS Australian Synchrotron Beamline Control Workshop April 18 -19, 2005
Ten really neat things about EPICS for BCDA • There are lots of beamlines using it (next slide) • Most record types for beamline components and common operations already exist – Motors, monochromators, multi-channel analysers, A/D, D/A, digital I/O, scanning, save/restore, save_data, etc. • Lots of device support and drivers for commercial devices in these classes already exists • There are high-level applications available for free (e. g. EXAFS) or commercially (e. g. SPEC) • There is a lot of expertise available close by because Australian Synchrotron accelerator will use EPICS • You can have a basic beamline up and running very quickly with supported hardware, add features as time permits – I converted 4 NSLS beamlines from CAMAC/VMS to EPICS in less than 1 week Geo. Soil. Enviro. CARS Australian Synchrotron Beamline Control Workshop April 18 -19, 2005
Synchrotron Beamlines Using EPICS • Almost all beamlines (> 30) at the Advanced Photon Source • Growing number of beamlines at NSLS (>10) • All beamlines at the Swiss Light Source (? ) • Probable for beamlines at Diamond • Canadian Light Source (just beginning, not using APS beamline code) • A few beamlines at the ALS at Berkeley (? ) Geo. Soil. Enviro. CARS Australian Synchrotron Beamline Control Workshop April 18 -19, 2005
EPICS Software Architecture for I/O Control Client Tool CA Client CA Server DB Common Record Support Device Support Driver Support IO bus Hardware device Geo. Soil. Enviro. CARS Optional Australian Synchrotron Beamline Control Workshop April 18 -19, 2005
Record Support • Provides implementation for a record type • Lots of records come with standard EPICS • Some have been added in the syn. Apps beamline control package Example records • ai (analog input, . VAL field is single number) • ao (analog output, . VAL field is a single number) • motor (lots of fields, e. g. ) – – . VAL = target position. RBV = readback position. VELO = desired velocity. DMOV = done moving flag • MCA (multichannel analyser, lots of fields, e. g. ) – – . VAL = histogram array. PRTM = preset real time. STRT = start acquisition when set to 1. ACQG = acquire busy flag Geo. Soil. Enviro. CARS Australian Synchrotron Beamline Control Workshop April 18 -19, 2005
Overview of syn. Apps • A collection of EPICS applications for synchrotron-beamline users. Collaboration between APS BCDA group and other beamlines at APS and elsewhere http: //www. aps. anl. gov/aod/bcda/syn. Apps • EPICS modules and build/configuration tools: – Modules: autosave, calc, camac, ccd, dac 128 V, dxp, ip 330, ip. Unidig, love, mca, motor, optics, quad. EM, sscan, std, vme, xxx – Build/config: config and utils directories – 160, 000 lines of code (C, SNL, databases), hundreds of medm screens • Related clients, libraries, and visualization tools: • IDL: scan. See, mca display, ezca. IDL, ezca. Scan, ez_fit, HDF translator/browser, Ascii-format plotter, image processors, etc. • CA-Server based CCD control Geo. Soil. Enviro. CARS Australian Synchrotron Beamline Control Workshop April 18 -19, 2005
syn. Apps modules • Modules contain the following kinds of support: – Compiled code; libraries • • E. g. , record and device support State-Notation-Language programs – EPICS databases and autosave-request files • • • A database is a program written in a high-level language. One or more copies of a database can be run, each with its own private variables (PV’s). The database designer recommends PV’s to be autosaved by naming them in a. req file; you can override with a private copy of the file. – MEDM-display files • The default user interface – Documentation Geo. Soil. Enviro. CARS Australian Synchrotron Beamline Control Workshop April 18 -19, 2005
Other EPICS modules used by syn. Apps • • • asyn (driver/device support) ipac (Industry Pack support) seq (State Notation Compiler) gen. Sub (General subroutine record) vx. Stats (IOC statistics) allen. Bradley (PLC support) Geo. Soil. Enviro. CARS Australian Synchrotron Beamline Control Workshop April 18 -19, 2005
autosave module • Records latest values of selected EPICS PVs; restores those values when the ioc restarts. – not an archiver; only the latest value is saved – not the same as save. Data, which writes scan data – When a list of PV’s is saved, the entire list is written, even if only one PV has changed. • Can save/restore any scalar or array-valued PV Geo. Soil. Enviro. CARS Australian Synchrotron Beamline Control Workshop April 18 -19, 2005
. . . autosave module • PV lists can use include files (e. g. , <database_name>. req), include path. – Database developer can supply default include file with database. – User can override with custom include file. • Save triggers: – – on change of any PV in the list periodically on change of a trigger PV manual • User can reload save sets. • User can choose to save redundant files. Autosave reports status via EPICS PV’s Geo. Soil. Enviro. CARS Australian Synchrotron Beamline Control Workshop April 18 -19, 2005
calc module • Support for evaluation of string or numeric expressions entered at run time (or at database-configure time) • Records – s. Calcout – like calcout, but also supports string expressions; user can specify wait-for-completion. – swait – like calcout, but uses rec. Dyn. Link (no “PP MS” link attributes) – transform – like 16 calcout records that share a PV data pool • Other code – – string-calc engine s. Calcout soft device support (with wait-for-completion option) interpolation routines for gen. Sub record (yet another) averaging routine for sub record Geo. Soil. Enviro. CARS Australian Synchrotron Beamline Control Workshop April 18 -19, 2005
ccd module • Support for area detectors (CCD’s and image plates) • Supported devices – MAR 165 CCD – MAR 345 image-plate reader – Roper (all Win. View-supported CCD’s, including former Princeton and most former Photometrics devices) – Bruker SMART CCD • Can control, at minimum – – – exposure time file name data-acquisition start wait for acquisition to complete much more for most devices • Details in talk tomorrow Geo. Soil. Enviro. CARS Australian Synchrotron Beamline Control Workshop April 18 -19, 2005
dac 128 V module • device support, database, and MEDM displays for dac 128 V Industry. Pack module – 8 -channel, 12 -bit DAC – Support exists to run a DAC channel manually, or according to an algorithm written at run time, or as a scan positioner, or as part of a PID feedback loop. • Good model for D/A converter support, even if you use different hardware Geo. Soil. Enviro. CARS Australian Synchrotron Beamline Control Workshop April 18 -19, 2005
dxp module • record, device support, databases, and MEDM displays for XIA DXP and Saturn spectroscopy systems • dxp record for setting DXP parameters • device support for the mca record • More details in talk tomorrow Geo. Soil. Enviro. CARS Australian Synchrotron Beamline Control Workshop April 18 -19, 2005
ip module • device support, SNL code, databases, and MEDM displays for many messagebased devices • Supports lots of benchtop RS-232/GPIB instruments, e. g. – – – Keithley multimeters Stanford Research Systems current amplifiers MKS ion gauge controllers Physical Instruments ion pump controllers, TSPs Lakeshore temperature controllers … • device. Cmd. Reply – – Used to write support at run time for one command/reply message s. Calcout to format output string asyn record to write/read device s. Calcout record to parse reply • dev. Xx. Str. Parm device support – Generic support for many record types (ai, ao, bi, bo, etc. ) with message based devices Geo. Soil. Enviro. CARS Australian Synchrotron Beamline Control Workshop April 18 -19, 2005
ip 330 module • device support, databases, and MEDM displays for the IP 330 ADC Industry. Pack module • 16/32 channel, 16 -bit ADC – ip 330 Scan for periodic, averaged reads of ADC channels – ip 330 Sweep, with the MCA record, for using ip 330 as a waveform-digitizer – ip 330 PID for using the ip 330 in a fast-feedback loop • Good model for A/D converter support, even if you use different hardware Geo. Soil. Enviro. CARS Australian Synchrotron Beamline Control Workshop April 18 -19, 2005
ip. Unidig module • device support, databases, and MEDM displays for the IPUnidig digital I/O Industry. Pack module • Interrupt can call any driver, which is useful for devices that do not have interrupts themselves • Good model for digital I/O modules, even if you use different hardware Geo. Soil. Enviro. CARS Australian Synchrotron Beamline Control Workshop April 18 -19, 2005
mca module • Support for multichannel analyzers, multichannel scalers, and other array-valued detectors • mca record • device support – – – – Canberra 556 AIM module (MCA and ICB controller) DSA-2000 Ethernet MCA various Canberra-ICB modules for spectroscopy SIS 3801 (Struck STR 7201) MCS (DXP support in dxp module) (IP 330 support in ip 330 module) (quad. EM support in quad. EM module) • More details in talk tomorrow Geo. Soil. Enviro. CARS Australian Synchrotron Beamline Control Workshop April 18 -19, 2005
motor module • Motor record and device support • Motors are the single most important component of beamline control • Provides: – stepper and servo motors • VME, CAMAC, RS-232, GPIB, Ethernet controllers • More than 20 types at present – soft-motor support • Put motor “face” on, e. g. , a DAC channel • Drive a hard motor through a nonlinear transform of 1 or more real motors – – user/dial/raw coordinates backlash-takeout algorithm pre/post move commands many more features Geo. Soil. Enviro. CARS Australian Synchrotron Beamline Control Workshop April 18 -19, 2005
optics module • Slits and mirrors – Four virtual positioners; two real motors – Automatic sync to motor positions – Completion reporting • Monochromators – Nondispersive double-crystal • • Geometries: (Y 1, Z 2), (Y 2, Z 2) Crystal species: Si, Ge, Diamond, Si (77 K) Miller indices, allowed reflections Operational modes: – Use/Set – Manual/Auto • Managing the vertical beam offset • Automatic sync to motor positions Geo. Soil. Enviro. CARS Australian Synchrotron Beamline Control Workshop April 18 -19, 2005
…optics module • …Monochromators – Spherical grating • Geometrical variables: – – 1) Grating line density; radius 2) Tangent-arm length 3) Diffraction order 4) Input/output slit distances • Operational modes: – Use/Set – Manual/Auto • Grating-stripe list • Manual sync to motor positions Geo. Soil. Enviro. CARS Australian Synchrotron Beamline Control Workshop April 18 -19, 2005
…optics module • Optical table – Table record supports a six-degree-of-freedom optical table. – User/client can write either to (x, y, z, q. X, q. Y, q. Z), or to underlying motor records. – Table rotates about user-specified point. – Table database includes a list of rotation points, selected by menu. – Can recover table position from motor positions – Partial support for fewer than six degrees of freedom Geo. Soil. Enviro. CARS Australian Synchrotron Beamline Control Workshop April 18 -19, 2005
• Optical table …optics module – Geometries • • SRI Geo. CARS Newport PNC SRI GEOCARS PNC NEWPORT - Calibration/sync - Use/Set – changes to [X, Y, . . ]. move table / change calibration - Zero – redefine current [X, Y, …] as zero - Sync – update [X, Y, …] from motors, honoring calibration - Init – clear calibration and sync to motors - Table record sets motor speeds so that motors start/stop together. Geo. Soil. Enviro. CARS Australian Synchrotron Beamline Control Workshop April 18 -19, 2005
sscan module • Support for user-programmable data-acquisition – sscan and busy records – save. Data – rec. Dyn. Link • A one-dimensional scan: – Do NPTS times: • Set conditions e. g. , move motors; wait for completion • Trigger detectorse. g. , start scaler; wait for completion • Acquire data read detector signals; store in arrays – Write data to NFS file • Multidimensional scan: – Same as a 1 -D, but detector trigger executes inner-loop scan. – save. Data monitors a set of sscan records, determines scan dimension when scan starts, and writes data as it is acquired. Geo. Soil. Enviro. CARS Australian Synchrotron Beamline Control Workshop April 18 -19, 2005
sscan module Geo. Soil. Enviro. CARS Australian Synchrotron Beamline Control Workshop April 18 -19, 2005
. . . sscan module • scan features: – – – – Three 1 -D scan types: constant-step-size, table-driven, fly Unlimited number of data points, scan dimensions 0 -4 positioners, 0 -4 detector triggers, 0 -70 detector signals Acquisition from scalar and 1 -D-array-valued PV's Detector/client wait, data-storage wait Pause/resume, abort Double buffered: can write 1 -D acquired data during next 1 -D scan save. Data writes self-describing XDR-format (“. mda") files to NFSmounted disk (vx. Works only, at present). – A positioner can have private scan parameters (scanparm record). – After-scan actions include move to peak, valley, and edge. – scanparm record + after-scan action = automated 1 -D alignment, so you can easily implement an “Align” button. Geo. Soil. Enviro. CARS Australian Synchrotron Beamline Control Workshop April 18 -19, 2005
…sscan module • The sscan record – – – – performs 1 -D scan before-scan link – optional completion callback positioner: any writable, numeric, scalar PV (menus, enums are ok) detector trigger: any writable, numeric, scalar PV detector signal: any readable, numeric, scalar or 1 D array PV array detectors: exactly <scan. Record>. NPTS elements are acquired array trigger: callback indicates array data are ready to read after-scan link – optional completion callback pause/resume abort (<scan. Record>. EXSC -> 0) wait for callbacks, cleanup kill (two aborts in a row) abandon callbacks handshake with multiple display / data-acquisition clients handshake with data-storage client Geo. Soil. Enviro. CARS Australian Synchrotron Beamline Control Workshop April 18 -19, 2005
Other data-acquisition-related software • Data-visualization tools for use with syn. Apps – – – Run-time look at scan data Offline tools for data-file manipulation Supports 1 -3 dimensional data Distributed independently of ioc software See lecture “Data Visualization. ” • CCD data-acquisition tools 1) CCD module (see lecture “Detectors and Feedback”) 2) Portable CA Server based CCD support, and related software • http: //www. aps. anl. gov/aod/bcda/data. Acq/index. php – Both of these solutions allow an EPICS CA client to drive data acquisition. – Both support ca_put_callback(), as required by the sscan record. Geo. Soil. Enviro. CARS Australian Synchrotron Beamline Control Workshop April 18 -19, 2005
• Epid record std module – Extended PID record – more details tomorrow • Scaler record – Controls a set of counters with a common clock, gate, and trigger • String-sequence record – Like the seq record in base, but works for strings and numbers – Can choose to wait for completion after each step in sequence • Soft-motor database – Run-time programmable soft-motor/transform/hard-motor database – Quick solution for driving a motor through a nonlinear transform • Timestamp record [SLAC] – needed by SNS’ vx. Stats; currently not available in a module • 4 -step database – Up to four steps of (set condition; read data) with an end calculation – Originally developed for dichroism experiments Geo. Soil. Enviro. CARS Australian Synchrotron Beamline Control Workshop April 18 -19, 2005
vme module • VME record – Provides run-time access to VME bus – Great for testing hardware – Run-time programmed control of an unsupported VME board • Device support for VME hardware, includes: – – – – Joerger scaler APS bunch-clock generator APS machine-status interface Heidenhain encoder interpolator Generic A 32 VME interface HP Laser interferometer VMI 4116 16 -bit DAC Acromag 9440 16 -bit digital input Geo. Soil. Enviro. CARS Australian Synchrotron Beamline Control Workshop April 18 -19, 2005
xxx module • Prototype user directory – – Builds everything in syn. Apps into a load module Contains command files to load/configure everything in syn. Apps Contains sample top-level MEDM-display file Contains sample script to set environment variables and start up the sample user interface – Contains table of recommended address/interrupt configuration for selected VME and Industry. Pack hardware • Two ways to use this module 1) Make copies; run change. Prefix; build; customize; run a beamline - this is the recommended use detailed instructions in support/documentation 2) Reference/grab bag Geo. Soil. Enviro. CARS Australian Synchrotron Beamline Control Workshop April 18 -19, 2005
A Couple of Anecdotes • • Single-crystal energy dispersive diffraction at high pressure Good programmer, EPICS novice, IDL novice Wanted to write code to collect single-crystal Laue diffraction with area detector, then rotate sample to put Laue spots into energydispersive detector Got job done in weeks, amazed how easy to move motors, trigger CCD detector, read energy-dispersive detector MCA spectrum. He could concentrate on scientific problem It runs at APS and at NSLS, since they both use EPICS, motor record, mca record Geo. Soil. Enviro. CARS Australian Synchrotron Beamline Control Workshop April 18 -19, 2005
A Couple of Anecdotes • • • Stress/strain measurements at high-pressure Novice programmer, EPICS novice Wanted to script a common operation that was keeping users at beamline overnight Remove slits, install imaging CCD detector, take strain CCD image Install slits, remove imaging CCD detector, take diffraction CCD pattern with diffractio CCD detector Repeat above hundreds of times Got job done in an hour, amazed how easy to move motors, trigger CCD detectors, saving data to user-specified file names, etc. Geo. Soil. Enviro. CARS Australian Synchrotron Beamline Control Workshop April 18 -19, 2005
Some Advice • Put the functionality in the server, resist the temptation to put it in the client if possible – Then any client can use it, not just your favorite client du jour • Purchase devices that already have support if they will meet the need. Resist temptation to save a few $$ on hardware if it means debugging a new device. – Check on tech-talk@aps. anl. gov to see if the work has already been done Geo. Soil. Enviro. CARS Australian Synchrotron Beamline Control Workshop April 18 -19, 2005
Quick Summary of EPICS for BCDA Advantages Distributed Many workstations can talk to the same IOC and devices Scales well As one CPU gets overloaded or IOC gets full, add another. Share development with other beamline groups Good tools for creating operator interfaces (MEDM) with no programming Time-critical code (e. g. feedback) can run in IOC Can run many applications (IDL, SPEC, SMART, Visual Basic) to talk to IOCs. Choose the best application for the task Can get quick-start using syn. Apps Disadvantages Relatively complex Geo. Soil. Enviro. CARS Australian Synchrotron Beamline Control Workshop April 18 -19, 2005
0d301e978d0e79c756be286a374e6757.ppt