EPICS Overview September 8-10, 2009 Panda XXX th Collaboration Meeting, Jülich Peter Zumbruch, GSI/EE-KS.

Slides:



Advertisements
Similar presentations
Operating System.
Advertisements

1 1999/Ph 514: Channel Access Concepts EPICS Channel Access Concepts Bob Dalesio LANL.
EPICS Base R and beyond Andrew Johnson Computer Scientist, AES Controls Group.
EPICS Noboru Yaamamoto Jan 27, 2009 for EPICS seminar at RRCAT, Indore Installing EPICS.
Channel Access Protocol Andrew Johnson Computer Scientist, AES Controls Group.
EPICS Overview EPICS Seminar/Workshop Raja Ramanna Centre For Advanced Technology Indore India January Overview Presented by: Marty Kraimer.
Linux IOC Operations at NSTX - An Overview P. Sichta 28Mar2005.
9-12 Oct 2000PCaPAC 2000, DESY Hamburg Epics to TINE translator Matthias Clausen, DESY Hamburg Phil Duval, DESY Hamburg Zoltan Kakucs, DESY Hamburg.
16 - Nov. 2000EPICS Workshop Oak Ridge1 Epics to TINE translator Matthias Clausen, DESY Hamburg Phil Duval, DESY Hamburg Zoltan Kakucs, DESY Hamburg.
Pete Owens MICE Controls & Monitoring Workshop 25th September 2006 MICE Control and Monitoring: General Architecture Subsystem Integration User Interface.
V4 – Executive Summary 1.Provide online add/delete of I/O to support continuous operation. 2.Provide redundant control of remote I/O to support improved.
OPC Overview OPC Device Support (PLC Gateway for 3.14) Ralph Lange – EPICS Collaboration Meeting at SLAC, April 2005.
Diagnostics and Controls K. Gajewski ESS Spoke RF Source Accelerator Internal Review.
EPICS Spring 2012 Collaboration Meeting April 23rd, 2012 Matt Boyes
ORNL is managed by UT-Battelle for the US Department of Energy EPICS State Notation Language (SNL), “Sequencer” Kay Kasemir, SNS/ORNL Many slides from.
EPICS and EDM Overview 03 October 2008 Matt Boyes EPICS and EDM Overview Lecture 1 Matt Boyes.
EPICS Overview 2006 O AK R IDGE N ATIONAL L ABORATORY U. S. D EPARTMENT OF E NERGY 2 What is EPICS?
ACM 511 Chapter 2. Communication Communicating the Messages The best approach is to divide the data into smaller, more manageable pieces to send over.
Imperial College Tracker Slow Control & Monitoring.
A U.S. Department of Energy Office of Science Laboratory Operated by The University of Chicago Argonne National Laboratory Office of Science U.S. Department.
Ralph Lange: OPC Gateway (Device Support) OPC Gateway (Device Support) Ralph Lange – EPICS Collaboration Meeting March SSRF.
EPICS and Peter Zumbruch Experiment control systems group GSI (KS/EE)
IRMIS 2 Overview Andrew Johnson Computer Scientist, AES Controls.
GSI Embedded systems and Controls Peter Zumbruch Experiment control systems group GSI (KS/EE)
Introduction to EPICS (Ned Arnold, John Maclean).
EPICS Overview 25 August 2009 Matt Boyes EPICS Overview Lecture 1 Matt Boyes.
Dec 8-10, 2004EPICS Collaboration Meeting – Tokai, Japan MicroIOC: A Simple Robust Platform for Integrating Devices Mark Pleško
EPICS Direction to Support Large Projects and Incorporate New Technology Leo R. Dalesio 09/21/99.
A U.S. Department of Energy Office of Science Laboratory Operated by The University of Chicago Argonne National Laboratory Office of Science U.S. Department.
Running EPICS on NI CompactRIO Initial Experience Eric Björklund (LA-UR )
1/15 G. Manduchi EPICS Collaboration Meeting, Aix-en-Provence, Spring 2010 INTEGRATION OF EPICS AND MDSplus G. Manduchi, A. Luchetta, C. Taliercio, R.
Elliott Wolin Hall D Online Meeting 4-Mar  A few weeks ago Elke asked how long it would take to get an EPICS system going  I didn’t know  I had.
GSI new developments and status Peter Zumbruch Experiment control systems group GSI (KS/EE)
1 Channel Access Concepts – EPICS Training – K.Furukawa – Mar EPICS Channel Access Concepts Kazuro Furukawa, KEK, ( ) (Bob Dalesio, LANL,
Managed by UT-Battelle for the Department of Energy Kay Kasemir ORNL/SNS Jan Control System Studio, CSS Overview.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
Issues in Accelerator Control Bob Dalesio, December 23, 2002.
Writing a Channel Access Client in EPICS Bob Dalesio, April 5, 2000.
Writing a Channel Access Client in EPICS Bob Dalesio, April 5, 2000.
EPICS EPICS Limitations Bob Dalesio Marty Kraimer.
Fast Fault Finder A Machine Protection Component.
EPICS Release 3.15 Bob Dalesio May 19, Features for 3.15 Support for large arrays - done for rsrv in 3.14 Channel access priorities - planned to.
GSI new developments and status Peter Zumbruch Experiment control systems group GSI (KS/EE)
1 1999/Ph 514: Flow of Control EPICS Flow of Control Marty Kraimer APS.
Interfacing EPICS and MonALISA Peter Zumbruch Experiment control systems group GSI (KS/EE)
1. LabVIEW and EPICS Workshop EPICS Collaboration Meeting Fall 2011.
Controls & Monitoring Overview J. Leaver 03/06/2009.
EPICS Release 3.15 Bob Dalesio May 19, Features for 3.15 Support for large arrays Channel access priorities Portable server replacement of rsrv.
Connecting LabVIEW to EPICS network
B. Dalesio, N. Arnold, M. Kraimer, E. Norum, A. Johnson EPICS Collaboration Meeting December 8-10, 2004 Roadmap for IOC.
11 th February 2008Brian Martlew EPICS for MICE Status of the MICE slow control system Brian Martlew STFC, Daresbury Laboratory.
EPICS Noboru Yaamamoto July 11, 2006 for EPICS seminar at VECC,Kolkata Installing EPICS.
CEA DSM Irfu SIS LDISC 18/04/2012 Paul Lotrus 1 Control Command Overview GBAR Collaboration Meeting Paul Lotrus CEA/DSM/Irfu/SIS.
1 Channel Access Concepts – IHEP EPICS Training – K.F – Aug EPICS Channel Access Concepts Kazuro Furukawa, KEK (Bob Dalesio, LANL)
EPICS and LabVIEW Tony Vento, National Instruments
1 EPICS Flow of Control: EPICS Workshop at IHEP, Beijing, August 2001 EPICS Flow of Control Marty Kraimer APS.
Managed by UT-Battelle for the Department of Energy Kay Kasemir Jan Experimental Physics and Industrial Control System.
Control System Overview J. Frederick Bartlett Fermilab June 1,1999.
EPICS Overview EPICS Training INFN October 13, 2008 Presented by: Andrew Johnson Based on previous versions by Marty Kraimer, Ned Arnold, John Maclean,
XFEL The European X-Ray Laser Project X-Ray Free-Electron Laser Wojciech Jalmuzna, Technical University of Lodz, Department of Microelectronics and Computer.
ICS WP3 – Software Core Components Suzanne Gysin Work Package Lead November 25, 2014.
An Introduction to Epics/Tango Steve Hunt Alceli EPICS Meeting 2008 INFN Legnaro 15 Oct 17:15.
January 2010 – GEO-ISC KickOff meeting Christian Gräf, AEI 10 m Prototype Team State-of-the-art digital control: Introducing LIGO CDS.
Fermilab Control System Jim Patrick - AD/Controls MaRIE Meeting March 9, 2016.
Monitoring Dynamic IOC Installations Using the alive Record Dohn Arms Beamline Controls & Data Acquisition Group Advanced Photon Source.
JavaIOC Overview and Update
Presented by Li Gang Accelerator Control Group
Channel Access Concepts
EPICS: Experimental Physics and Industrial Control System
Channel Access Concepts
Presentation transcript:

EPICS Overview September 8-10, 2009 Panda XXX th Collaboration Meeting, Jülich Peter Zumbruch, GSI/EE-KS

September 2009EPICS Overview - EPICS Tutorial - PANDA XXXth Collaboration Meeting, Jülich Acknowledgements and References Originally completely taken from the classes given at the EPICS Training INFN October 13, 2008 Originally presented by: Andrew Johnson Based on previous versions by Marty Kraimer, Ned Arnold, John Maclean, Kay Kasemir, Bob Dalesio and probably a few other people too, thanks.

September 2009EPICS Overview - EPICS Tutorial - PANDA XXXth Collaboration Meeting, Jülich Sources Main WWW site Documents/Training This talk taken from the following training presentations SSRF, APS, PSI, SNS, USPAS2007, USPAS2003 Marty Kraimer, Ned Arnold, John Maclean, Kay Kasemir, Bob Dalesio The talk from PSI did not list authors.

September 2009EPICS Overview - EPICS Tutorial - PANDA XXXth Collaboration Meeting, Jülich What is EPICS? A Collaboration A Control System Architecture A Software Toolkit

September 2009EPICS Overview - EPICS Tutorial - PANDA XXXth Collaboration Meeting, Jülich What is EPICS? A Collaboration Began in 1989 between LANL/GTA & ANL/APS (Bob Dalesio & Marty Kraimer)‏ Over 150 license agreements were signed before EPICS became “open source” Recent EPICS collaboration meetings 100+ Attendees 30+ Institutions 75+ Presentations List server; tech-talk: the collaboration in action Collaborative efforts vary Assist in finding bugs Share tools, schemes, and advice

September 2009EPICS Overview - EPICS Tutorial - PANDA XXXth Collaboration Meeting, Jülich What is EPICS? Early Major Collaborators America ANL, LANL, LBL, ORNL, SLAC, JLAB Europe DESY, BESSY, PSI Asia KEK Recent Major Collaborators America TRIUMF, CLS, BNL Europe DIAMOND Light Source Asia/Australia J-PARC, Australian Synchrotron, IHEP, SSRF, TLS Many Other Collaborators/Users

September 2009EPICS Overview - EPICS Tutorial - PANDA XXXth Collaboration Meeting, Jülich …by the way: ITER will also use EPICS

September 2009EPICS Overview - EPICS Tutorial - PANDA XXXth Collaboration Meeting, Jülich What is EPICS? EPICS For EPICS, client and server speak of their Channel Access role i.e. Channel Access Client & Channel Access Server Client Server CA A Collaboration A Control System Architecture Network-based “client/server” model (hence the EPICS logo)‏

September 2009EPICS Overview - EPICS Tutorial - PANDA XXXth Collaboration Meeting, Jülich What is EPICS? Channel Access clients are programs that require access to Process Variables to carry out their purpose The “service” that a Channel Access server provides is access to a Process Variable* StripToolMEDM Process Variables Process Variables CAS CAC * A Process Variable (PV) is a named piece of data.

September 2009EPICS Overview - EPICS Tutorial - PANDA XXXth Collaboration Meeting, Jülich What is EPICS? Vocabulary EPICS Experimental Physics and Industrial Control System Channel Access The communication protocol used by EPICS Process Variable A piece of named data referred to by its PV name The primary object of the Channel Access Protocol Channel A synonym for Process Variable Channel Access Server Software that provides access to a Process Variable using the Channel Access Protocol Channel Access Client Software that requests access to a Process Variable using the Channel Access Protocol

September 2009EPICS Overview - EPICS Tutorial - PANDA XXXth Collaboration Meeting, Jülich What is EPICS? Vocabulary IOC – Input Output Controller A computer running iocCore, a set of EPICS routines used to define process variables and implement real-time control algorithms iocCore uses database records to define process variables and their behavior Soft IOC An instance of iocCore running as a process on a “non-dedicated” computer (i.e. a computer that is performing other functions as well)‏ Record The mechanism by which a Process Variable is defined in an IOC (using iocCore )‏ Dozens of record types exist, each with it’s own attributes and processing routine that describe its functionality

September 2009EPICS Overview - EPICS Tutorial - PANDA XXXth Collaboration Meeting, Jülich What is EPICS: Vocabulary EPICS Base IOC, 'hard' and 'soft' Database (records)‏ Channel Access: Server and Client Previously Driver/Device support: Now available as modules Previously Sequencer: Now unbundled. Extensions Client tool that is not part of base EDM, StripTool, … Module IOC support that is not part of base. Mostly device/driver support AsynDriver, etc, etc.

September 2009EPICS Overview - EPICS Tutorial - PANDA XXXth Collaboration Meeting, Jülich What is EPICS? Process Variable A Process Variable (PV) is a named piece of data associated with the machine (e.g. status, readback, setpoint, parameter)‏ Examples of PV names and values: S1:VAC:reading 3.2e-08 torr LINAC:BPM4:xPosition mm BOOSTER:gateValvePosition ‘OPEN’ S3:DIPOLE:PS:setPoint Amps APS:Mode ‘Stored Beam’ BL3:HISTOGRAM {3, 8, 1, 2, 56, 44, 32, 43, 3, 5, 1}

September 2009EPICS Overview - EPICS Tutorial - PANDA XXXth Collaboration Meeting, Jülich 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)‏

September 2009EPICS Overview - EPICS Tutorial - PANDA XXXth Collaboration Meeting, Jülich 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 Process Variables CAS Process Variables CAS Process Variables CAS Process Variables CAS Process Variables CAS Process Variables CAS Process Variables CAS Process Variables CAS Process Variables CAS Process Variables CAS

September 2009EPICS Overview - EPICS Tutorial - PANDA XXXth Collaboration Meeting, Jülich What is EPICS? By default, Channel Access traffic is constrained to a single subnet, but configuration options can direct traffic elsewhere Physical hierarchies can be implemented using switches, routers, and gateways Gateway

September 2009EPICS Overview - EPICS Tutorial - PANDA XXXth Collaboration Meeting, Jülich What is EPICS? Any tool/program/application that abides by the Channel Access protocol could be described as “EPICS Compliant”. My Accelerator Simulator Code (PVs)‏ CAS My Special Data Collection Program 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. StripToolMEDM CAC iocCore (PVs)‏ LabView (PVs)‏ CASCACCASCAC

September 2009EPICS Overview - EPICS Tutorial - PANDA XXXth Collaboration Meeting, Jülich Power Supply Beam Position Monitor Vacuum Gauge Computer Interface Process Variables: Channel Access Server S1A:H1:CurrentAO S1:P1:x S1:P1:y S1:G1:vacuum Channel Access Client How does it do it?

September 2009EPICS Overview - EPICS Tutorial - PANDA XXXth Collaboration Meeting, Jülich Where does it do it? Power Supply Beam Position Monitor Vacuum Gauge Computer Interface Process Variables: Channel Access Server S1A:H1:CurrentAO S1:P1:x S1:P1:y S1:G1:vacuum iocCore Channel Access Client Remote Control & Monitoring Access SecurityAlarm Detection Data Trending/Archiving Automatic Sequencing Alarm Logging/Reporting Data Conversion/Filtering Closed-loop Control Operational Constraints Data Trending/Archiving Modeling/ Simulation/Analysis Automatic Sequencing Configuration Control

September 2009EPICS Overview - EPICS Tutorial - PANDA XXXth Collaboration Meeting, Jülich Canonical Form of an EPICS Control System Commercial Instruments IOC CAS Channel Access IOC Software EPICS Database Sequence Programs Custom Programs Real-time Control Client Software MEDM ALH StripTool TCL/TK Perl Scripts CSS Many, many others CA Server Application Custom Chassis/Panels Technical Equipment Process Variables

September 2009EPICS Overview - EPICS Tutorial - PANDA XXXth Collaboration Meeting, Jülich Typical Realizations of an EPICS System IOC CAS Commercial Instruments Custom Chassis/Panels Technical Equipment All IOCs were based on vxWorks (mostly VME)‏ Most CAS Apps were based on Unix or Windows

September 2009EPICS Overview - EPICS Tutorial - PANDA XXXth Collaboration Meeting, Jülich RTEMS IOC CAS With Release 3.14, the operating system limitations for iocCore have been removed. Commercial Instruments Custom Chassis/Panels Technical Equipment Typical Realizations of an EPICS System

September 2009EPICS Overview - EPICS Tutorial - PANDA XXXth Collaboration Meeting, Jülich Introducing the IOC Input Output Controller A computer running software called “IOC Core” The computer can be: VME based, running vxWorks (only choice until Release 3.14) or RTEMS PC running Windows, Linux, RTEMS Apple Mac running OSX UNIX Workstation running Solaris, OSF Usually has Input and/or Output devices attached An EPICS control system must contain at least one Channel Access Server (usually an IOC)‏ An IOC loads one or more databases, which tell it what to do What Process Variables to serve What I/O devices to connect to What other PVs to connect to What processing to do

September 2009EPICS Overview - EPICS Tutorial - PANDA XXXth Collaboration Meeting, Jülich IOC Database Configuration instead of Coding 'iocCore' software loads and executes 'Records' Example Assignment:  Read some temperature sensor  Open/close a valve when value is above / below some threshold

September 2009EPICS Overview - EPICS Tutorial - PANDA XXXth Collaboration Meeting, Jülich The Example in simplified Code Sensor temp = open_device(…); Valve valve = open_device(…); Loop: if (temp.value() > 10) valve.open(); else valve.close(); delay(1.0);

September 2009EPICS Overview - EPICS Tutorial - PANDA XXXth Collaboration Meeting, Jülich What we omitted Error checking Code comments Apply some smoothing to the temperature reading to filter noise. Send current temperature and valve state to network clients (operator display). Attach a time stamp to the data, so that network clients can see for example when the valve was last opened. Send warnings if the temperature is close to the threshold, or an alarm when way above. Allow runtime changes of the threshold from the remote operator interface. Allow runtime changes to the scan rate. Maybe allow runtime changes to the device address? …

September 2009EPICS Overview - EPICS Tutorial - PANDA XXXth Collaboration Meeting, Jülich This IOC 'Database’ does all that At first glance, this might look much worse than the code, but… that was simplified code. there's no way the full source code for the above would fit on one screen. after learning more about the database, this becomes much more readable than somebody else's custom code for the same functionality.

September 2009EPICS Overview - EPICS Tutorial - PANDA XXXth Collaboration Meeting, Jülich Some Detail on an EPICS 'Record' Configuration instead of Programming "SCAN=1 second" instead of starting periodic thread, delaying until next multiple of 1 second, locking required resources, … "SMOO=0.5" configures the smoothing algorithm. Almost any field in any record is accessible via network at runtime –Change scan rate, smoothing – … record(ai, "temp") { field(DESC, "Read Temperature") field(SCAN, "1 second") field(DTYP, "XYZ ADC") field(INP, "#C1 S4") field(PREC, "1") field(LINR, "typeJdegC") field(EGUF, "100") field(EGUL, "0") field(EGU, "deg C") field(SMOO, "0.5") field(HIGH, "15") field(HSV, "MAJOR") field(MDEL, "0.1") }

September 2009EPICS Overview - EPICS Tutorial - PANDA XXXth Collaboration Meeting, Jülich IOC Database  A single record often handles the scanning, signal conditioning, alarming of a temperature, pressure, or similar analogue reading.  Combined with binary and computational records, it can express most of the data flow logic for a front-end computer –Avoiding the pitfalls of real-time, multi-threaded and networked programming. One can have thousands of records in one IOC. –Well suited for systems with high signal counts, like vacuum or water systems with relatively simple logic but many, many sensors and valves.  kHz-rate processing with record chains is doable –Of course limited by CPU. Not 1000s of kHz rate-records…

September 2009EPICS Overview - EPICS Tutorial - PANDA XXXth Collaboration Meeting, Jülich EPICS Base: IOC Toolkit Database, Sequencer, ChannelAccess. Plus: portability libraries Linux, OS X, Win32, vxWorks, RTEMS, others. Basis for most of the "extensions" Technically, the sequencer is provided separately. Probably the main difference between EPICS and other systems, where the support for front-end computers is often only helper libraries.

September 2009EPICS Overview - EPICS Tutorial - PANDA XXXth Collaboration Meeting, Jülich Record types Classified into four general types Input: e.g. Analog In (AI)‏ Binary In (BI)‏ String In (SI)‏ Algorithm/control: e.g. Calculation (CALC)‏ Subroutine (SUB, genSub, aSub)‏ Output: e.g. Analog Out (AO)‏ Binary Out (BO)‏ Custom: e.g. Beam Position Monitor Multi Channel Analyzer

September 2009EPICS Overview - EPICS Tutorial - PANDA XXXth Collaboration Meeting, Jülich Some record types Analog in Analog out Binary in Binary out Calculation Calculation out Compression Data fanout Event Fanout Histogram Motor Multi bit binary input Multi bit binary output PID control Pulse counter Pulse delay Scan Select Sequence String in String out Subarray Subroutine Waveform

September 2009EPICS Overview - EPICS Tutorial - PANDA XXXth Collaboration Meeting, Jülich Record Processing Record processing can be periodic or event driven Periodic –Standard scan rates are… 10, 5, 2, 1, 0.5, 0.2 and 0.1 seconds –Custom scan rates can be configured up to speeds allowed by operating system and hardware Event driven –Events include Hardware interrupts Request from another record via links EPICS Events Channel Access Puts

September 2009EPICS Overview - EPICS Tutorial - PANDA XXXth Collaboration Meeting, Jülich IOC Summary Channel Access LAN Sequencer Device/Driver Support I/O Hardware IOC Database

September 2009EPICS Overview - EPICS Tutorial - PANDA XXXth Collaboration Meeting, Jülich Device/Driver Support Software layer that interfaces records to hardware –EPICS web site lists many existing support modules. –Well defined Interfaces allow adaptation of new or custom hardware. –A recordType can interface to many different types of devices. AsynDriver is a facility that supports many different devices –Robust support for GPIB and Serial devices. –Also supports synchronous devices.

September 2009EPICS Overview - EPICS Tutorial - PANDA XXXth Collaboration Meeting, Jülich The Sequencer Runs programs written in State Notation Language (SNL)‏ SNL is a ‘C’ like language to facilitate programming of sequential operations Fast execution - compiled code Programming interface to extend EPICS in the real-time environment Common uses - Provide automated start-up sequences like vacuum or RF where subsystems need coordination - Provide fault recovery or transition to a safe state - Provide automatic calibration of equipment

September 2009EPICS Overview - EPICS Tutorial - PANDA XXXth Collaboration Meeting, Jülich EPICS Sequencer Adds state-machine behavior to the IOC program Elevator_Simulation ss Elevator { state floor1 { when (floor2_call)‏ { } state goto2 } state goto2 { …

September 2009EPICS Overview - EPICS Tutorial - PANDA XXXth Collaboration Meeting, Jülich Channel Access CA Client CA Server Workstation IOC Network Allows other programs (CA Clients) to see and change values of Process Variables in an IOC (CA Server) CA Clients may –Put (write) –Get (read) –Monitor data of Process Variables IOCs are both –CA clients and CA servers. They can interact with data in other IOCs A CA Client can connect to many servers A CA Server may serve many clients A very efficient and reliable protocol

September 2009EPICS Overview - EPICS Tutorial - PANDA XXXth Collaboration Meeting, Jülich Channel Access Commands Process Variables: Channel Access Server S1A:H1:CurrentAO S1:P1:x S1:P1:y S1:G1:vacuum Channel Access Client Who has a PV named “S1A:H1:CurrentAO”? I do. What is its value? 25.5 AMPS Change its value to 30.5 “connection request” or “search request” OK, it is now is too high. It is now set to the maximum value of You are not authorized to change this value Notify me when the value changes It is now 20.5 AMPS It is now 10.5 AMPS It is now AMPS “put” or “caput” “get” or “caget” “set a monitor” “post an event” or “post a monitor” “put complete” or CA Server CA Client

September 2009EPICS Overview - EPICS Tutorial - PANDA XXXth Collaboration Meeting, Jülich Some CA Clients (from the EPICS Website - incomplete)‏ ALH: Alarm Handler BURT: Backup and Restore Tool CASR: Host-based Save/Restore CAU: Channel Access Utility Channel Archiver (SNS) Channel Watcher (SLAC) EDM: Extensible Display Manager (ORNL) JoiMint: Java Operator Interface and Management INtegration Toolkit (DESY) Knobs: Knob Manager und KnobConfig, eine Schnittstelle zu SunDials MEDM: Motif Editor und Display Manager StripTool: Strip-chart Plotting Tool and many more …

September 2009EPICS Overview - EPICS Tutorial - PANDA XXXth Collaboration Meeting, Jülich Example: ALH

September 2009EPICS Overview - EPICS Tutorial - PANDA XXXth Collaboration Meeting, Jülich Alarms and Colours Record not known White block or Pink Not connected Device not reachableWhiteINVALID ErrorRedMAJOR WarningYellowMINOR Everything okGreenNO_ALARM

September 2009EPICS Overview - EPICS Tutorial - PANDA XXXth Collaboration Meeting, Jülich Example: ALH

September 2009EPICS Overview - EPICS Tutorial - PANDA XXXth Collaboration Meeting, Jülich Some CA Clients (from the EPICS Website - incomplete)‏ ALH: Alarm Handler BURT: Backup and Restore Tool CASR: Host-based Save/Restore CAU: Channel Access Utility Channel Archiver (SNS) Channel Watcher (SLAC) EDM: Extensible Display Manager (ORNL) JoiMint: Java Operator Interface and Management INtegration Toolkit (DESY) Knobs: Knob Manager und KnobConfig, eine Schnittstelle zu SunDials MEDM: Motif Editor und Display Manager StripTool: Strip-chart Plotting Tool and many more …

September 2009EPICS Overview - EPICS Tutorial - PANDA XXXth Collaboration Meeting, Jülich Examples: StripTool

September 2009EPICS Overview - EPICS Tutorial - PANDA XXXth Collaboration Meeting, Jülich Popular CA Server Applications IOC Core PV Gateway CA Server Interface to LabVIEW CA Server Interface to PC Image Acquisition Systems Gateway CAS CAC (PVs)‏ LabVIEW CASCAC (PVs)‏ PC Image Capture CASCAC

September 2009EPICS Overview - EPICS Tutorial - PANDA XXXth Collaboration Meeting, Jülich How fast is EPICS? Can be fast or slow, it depends how you use it! Use the correct tool for the job; Database, sequencer, custom code (ioc) or custom code (client)‏ Ultimately speed depends upon hardware Some benchmarks*: 253,00033MHz68040vxWorksMVME ,000450MHzPPC750vxWorksMVME ,0002.4GHzP4LinuxPC 233MHz 300MHz Speed 10,000 20,000 Rec/sec 27PIILinuxPC 20PPC604vxWorksMVME 2306 %CPUCPUOSMachine Database design and periodic scanning effect apparent system speed * Extrapolated from benchmark figures courtesy of Steve Hunt (PSI) and L.Hoff, (BNL)‏

September 2009EPICS Overview - EPICS Tutorial - PANDA XXXth Collaboration Meeting, Jülich IOC Core: Channel Access Services Sequencer Channel Access Client LAN/WAN Operator Interface Channel Access Client Database Links Channel Access Client Channel Access Server EPICS Process Database Performance: over 10 Mbit Ethernet Gets Propagation Delay2 mS Throughput7.8K /sec Puts Propagation Delay1 mS Throughput17K /sec Monitors Propagation Delay Dependent Throughput15K / sec (Typically 10% channels have monitors)‏ (memory use in IOC - 2 Meg / 60 connections)‏ (30% network load for 15K monitors / second)‏ Increase bandwidth with Routers, Bridges, Higher speed networks and EPICS gateway TCP/IP & UDP

September 2009EPICS Overview - EPICS Tutorial - PANDA XXXth Collaboration Meeting, Jülich The Learning Curve for EPICS is difficult Installing EPICS Setting up the application environment to automatically build databases Setting up the IOC to boot from the workstation Installing the new drivers Knowledge of how to debug the application - is needed by everyone Learning to use the process database Choosing and learning which client tools to use This learning curve can be eased by receiving training from other laboratories, having one of your employees work and train at an EPICS site, or reading the documents and using the software support document to determine the collaboration member supporting your platform.

September 2009EPICS Overview - EPICS Tutorial - PANDA XXXth Collaboration Meeting, Jülich … some more slides to summarize

September 2009EPICS Overview - EPICS Tutorial - PANDA XXXth Collaboration Meeting, Jülich What is EPICS? …short answer: EPICS: Experimental Physics and Industrial Control System …a bit more elaborate: EPICS is a set of Open Source software tools, libraries and applications developed collaboratively and used worldwide to create distributed soft real-time control systems for scientific instruments such as particle accelerators, telescopes and other large scientific experiments. (From the EPICS Home Page: Home Page …striking - is three things at once: A collaboration of major scientific laboratories and industry ( > 100) A world wide collaboration that shares designs, software tools and expertise for implementing large-scale control systems An architecture for building scalable control systems A client/server model with an efficient communication protocol (Channel Access) for passing data The entire set of Process Variables establish a Distributed Real-time Database of machine status, information and control parameters A Software Toolkit of Open Source code and documentation A collection of software tools collaboratively developed which can be integrated to provide a comprehensive and scalable control system

September 2009EPICS Overview - EPICS Tutorial - PANDA XXXth Collaboration Meeting, Jülich For EPICS, client and server speak of their Channel Access role i.e. Channel Access Client & Channel Access Server Client Server CA A Control System Architecture Network-based “client/server” model (hence the EPICS logo) What is EPICS? (Getting Started with EPICS: Introductory Session I)

September 2009EPICS Overview - EPICS Tutorial - PANDA XXXth Collaboration Meeting, Jülich Displays and Controls (1-3) Examples from HADES

September 2009EPICS Overview - EPICS Tutorial - PANDA XXXth Collaboration Meeting, Jülich CSS at CBM With courtesy of Burkhard Kolb (HADES/CBM)

September 2009EPICS Overview - EPICS Tutorial - PANDA XXXth Collaboration Meeting, Jülich CSS at CBM (2) With courtesy of Burkhard Kolb (HADES/CBM)

September 2009EPICS Overview - EPICS Tutorial - PANDA XXXth Collaboration Meeting, Jülich CSS at CBM (3) With courtesy of Burkhard Kolb (HADES/CBM)

September 2009EPICS Overview - EPICS Tutorial - PANDA XXXth Collaboration Meeting, Jülich So What Does it Do? EPICS tools are available to accomplish almost any typical Distributed Control System (DCS) functionality, such as: –Remote Control & Monitoring of Technical Equipment –Data Conversion/Filtering –Access Security –Equipment Operation Constraints –Alarm Detection/Reporting/Logging –Data Trending/Archiving/Retrieval/Plotting –Automatic Sequencing –Mode & Facility Configuration Control (save/restore) –Modeling/Simulation –Data Acquisition –Data Analysis

September 2009EPICS Overview - EPICS Tutorial - PANDA XXXth Collaboration Meeting, Jülich Ten really neat things about EPICS (Getting Started with EPICS: Introductory Session I) 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 There is a lot of expertise available close by A good contribution becomes internationally known By following a few simple rules, you get a lot for free