# Presentation: 511925

## Experimental Physics and Industrial Control System (EPICS)Overview

- Bob Dalesio, May 11, 2000

## Outline

- Introduction: What is EPICS
- The Collaboration
- Architecture
- Tool-Kit
- IOC Core
- Channel Access
- Process Database
- Conclusions

## 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

## What is EPICS? The Collaboration

- Over 100 independent projects in North America, Europe and Asia
- Applications in particle physics, astronomy, and industrial control
- Distribute software over the network
- Independent development, co-development and incremental development of code done by members
- Problem reporting and resolution via e-mail exploders
- Documentation available on WWW sites
- Large collaboration meetings to report new work, discuss future directions, explore new applications, and explore new requirements for existing codes
- Small design groups from multiple labs meet to discuss design issues on significant codes: Channel Access, Archiving and MMI

## What is EPICS? Partial List of Collaboration Members

- Argonne National
- Laboratory

- Los Alamos National
- Laboratory

- Jefferson
- Laboratory

- Berliner
- Elekronenspeicherring-
- Gesellschaft fur
- Synchrontronsrahlung

- W. M. Keck
- Observatory

- Stanford Linear
- Accelerator Center

- KEK (Koh ehnerugii
- Kencuesho)

- Commissariat a l’Energie
- Atomique (SACLAY)

- Deutches Elektronen-
- Synchrotron

- Lawrence Berkeley
-  National
- Laboratory

- Paul Scherrer
- Institut

- Gemini
- Telescope

- Shanghai Syncrotron
- Radiation Facility

- RIKEN

- Oakridge National
- Laboratory

- Institute of High Energy
- Physics (Beijing)

- Fermilab D0
- Experiment

- Budker Institute of Nuclear
- Physics

## What is EPICS? Project Status Throughout the Collaboration

- APS	              300,000	170 IOC	20 ws	reliable operation*
- Tesla Test Inj	    600	4 IOCs	2 ws	reliable operation
- KeckII	  1,500	2 IOCs	2 ws	reliable operation
- PSR		  2,500	4 IOCs	6 ws	reliable operation
- Duke FEL	  2,500	6 IOCs	3 ws	reliable operation
- PEP II RF	  8,400	8 IOCs	2 ws	reliable operation
- BESSY	 15,000	15 IOCs	4 ws	reliable operation
- 1APS Beamline	 15,000	22 IOCs	10 ws	reliable operation
- LEDA	 26,000	 8 IOCs     8 ws	reliable opeartion
- Jlab                   180,000	81 IOCs	30 ws	reliable operation*
- *APS  has one of 24 BPM IOCs lost once per month (MV172s). These IOCs are very heavily loaded VXI crates that are running the 3 KHz closed loop control. They are using MXI bus extenders and are connected through a shared memory bus.

## What is EPICS? Distributed Architecture

- EPICS is physically a flat architecture of front-end controllers and operator workstations that communicate  via TCP/IP and UDP
- System scales through the addition of new computers
- Physical  hierarchy  is made through bridges,  routers, or a gateway
- Network bandwidth is the primary limiting factor
- EPICS software architecture is client/server based - with independent data stores providing read/write access directly between any two points
- Local  name services mean automatic integration of new components
- Point-to-point communication supports automation

## What is EPICS? “Standard” Hardware Configuration

- Workstations:
-         Sun
-         Hp
-         DEC/Alpha
-         Silicon Graphics
-         PC

- I/O Controllers
-         VME/VXI/PCI

- Field I/O

- Remote I/O and Signal
- Conditioning
-         CAN-Bus, Industry Pack
-         VME, VXI, PCI, ISA
-         CAMAC, GPIB
-         Profibus, Bitbus, Serial,
-         Allen-Bradley, Modbus

- Field I/O

- Field I/O

- Field I/O

## What is EPICS? Standard Operating System Support

- Workstations OS:
-         SunOS, Solaris
-         LINUX
-         DEC-UNIX
-         SGIX, HPUX
-         Windows NT*

- I/O Controllers
-         vxWorks
- (being made portable)
- testing on:
-         RTEMS, Solaris,
-         LINUX, WinNT

- Field I/O

- Field I/O

- Field I/O

- Field I/O

## What Is EPICS? Distributed Software Architecture

- ca-server

- process DB

**device sup**

**ca-client**

-  **   ****CDEV**

- vxWorks, UNIX
- WindowsNT, VMS

- UNIX

- ca-client

- CORBA

- ACE

- CASR:
-   vxWorks
- Portable Server:
-   WindowsNT
-   VMS
-   Solaris

**ca-server**

- vxWorks currently
-   Process DB is tested on:
-        RTEMS, Solaris,
-        LINUX, WinNT
-   CA Server is in process.

## What Is EPICS? A Collection of Tools

**Visualization**: EDD/DM, DM2K, ***MEDM***,
-     Dataviews,  SL-GMS, Visual Basic, JAVA
-     Visual C++, Labview, IDL, SAMMI, JPT,
-     Correlation Plots, Probe, ***Striptool***
**Alarm Manager**: ***ALH***
**State Programming**: ***SNL***, FSQT
**Archiving**: ***Channel  Archiver***, BURT**, **Save/Restore,
-     DESY archive, BESSY archive
**Script Interfaces**: Python, SDDS, tcl, PV-Wave,
-     Mathmatica, Matlab,
**Other Clients**:
-     Orbit Lock,X-Orbit, SAD, CNLS-net, ARTEMIS

- Operator Interface

**Channel Access Client**

- LAN

- Operator Interface

**Channel Access Client**

- Data Stores

**Channel Access Server**

- LAN

**Data Manipulation**: IDL, ***ActiveX***
**Data Servers**: ***Process Database***,
- Gateway, BPM Server
**Interface to Existing Systems**: Lansce
- Control System, SLC at SLAC, KEKB
- Injector Interface

## IOC Core

- Channel Access Client/Server Protocol
- Used to communicate between EPICS datastores and EPICS client tools
- Version is represented by the first digit of a release _**3**_.13
- All matching versions communicate to support incremental upgrades
- Process Database
- Primary data server in EPICS systems
- Provides a configuration approach to interface to instrumentation
- Supports data acquisition and steady state control

##  IOC Core: Channel Access Client/Server Libraries

- Sequencer

**Channel Access Client**

- LAN/WAN

- Operator Interface

**Channel Access Client**

- Database Links

**Channel Access Client**

**Channel Access Server**

- EPICS Process Database

- Client: Provides read/write connections to any subsystem on the network with a channel
- 	access server

- Server: Provides read/write connections to information in this node to any client on
- 	the network through channel access client calls. The data resides here!

- Services: Dynamic Channel Location, Get, Put, Monitor
- 	Access Control, Connection Monitoring, Automatic Reconnect
- 	Conversion to client types, Composite Data Structures

- Platforms: UNIX, vxWorks, VMS (Client only), Windows NT

- TCP/IP & UDP

## 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:
- 68040 over 10 Mbit Ethernet
- Gets
- 	Propagation Delay		2  mS
- 	Throughput		7.8K /sec
- Puts
- 	Propagation Delay		1 mS
- 	Throughput		17K /sec
- Monitors
- 	Propagation Delay	 	Dependent
- 	Throughput		10K / sec
- 	(Typically 10% channels have monitors)
- 	(memory use in IOC - 2 Meg / 60 connections)
- 	(30% network load for 10K monitors / second)
- Increase bandwidth with Routers, Bridges, Higher speed networks and EPICS gateway

- TCP/IP & UDP

## IOC Core: Process Database

- ca-server

**process DB**

- dev support

- ca-client

- Process Blocks are the basic elements: AI, AO, BI, BO, Motor, CALC, PID,  SUB, etc....
- Process Blocks consist of fields for: SCHEDULE, I/O, CONVERT, ALARM, MONITOR
- They hold runtime values: VALUE, TIMESTAMP, ALARM CONDITION, etc....
- New process block are easily added
- Configured  using CAPFAST, GDCT, Relational DB, Text Editor at the workstation
- Loaded as ASCII records into vxWorks at boot time
- All fields can be read/written through the channel access client interface during operation

- LAN

- A Channel Access server provides connection, get, put,
- and monitor services to this database
- A Channel Access client provides access to process DBs
- in other IOCs

## IOC Core: Process Database

- ca-server

**process DB**

- dev support

- ca-client

- Process Block execution time varies from block type to block type
- 	AI on a 68060 is ~18,000/second  (50% idle)
- 	AI on a 68040 is ~6,000/second  (50% idle)
- Fastest periodic scan rate is dependent on vxWorks clock tick - 60 Hz
- Interrupt scanning is limited by the CPU bandwidth (interrupt delay ~33usec)
- Name resolution - 10,000/second - runs at  the lowest priority
- 2,500 Process blocks use around 1 Megabyte of memory
- Support to particular physical I/O is distinct from process logic - ASCII device type

- LAN

## Conclusions: 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.

##  Conclusions: New Developments Take Advantage of Changes in Technology and Improve Functionality, Ease of Use, and Performance While Reducing Cost

- Port the EPICS database to other operating systems  (ANL,LANL)
-  Upgrade channel access to support an improved protocol, new monitor options, OO interfaces, and an optimized server for both the database and other data stores (LANL/ANL/SLAC)
- Provide the ability to add/delete records in the process database during operation  to support continuous operations (ANL/LANL)
- Provide native windows NT capabilities to lower cost and provide data to every desktop (LANL)
-  Provide extensions required to scale to 1 million channels for Next Linear Collider (SLAC/LANL)
- Provide a distributed archiving/archive retrieval capability to better support analysis and operations (LANL/JLAB/DESY/BESSY)

## Conclusions: EPICS Continues to Meet the Needs of Its Members Through Cooperative Development of a Scaleable, Flexible Tool-kit

- The fundamental performance and functionality is scaleable and easily configured.
- Clean interfaces for clients, new record types, data stores and hardware promote independent development, support ease of reintegration, and protect against obsolescence.
- Open software development supports cooperative  collaboration and gives members laboratories a larger pool of talent to support their controls requirements.
- Continual improvements allow members to expand functionality, performance, reliability and function while taking advantage of latest technology.