Last modified: Thu May 3 17:21:25 CEST 2012
EPICS V4
|
|
Features
and Solutions
|
|
This page describes features of EPICS Version 4, and how
EPICS V4 may be used to solve various architectural problems of modern control systems.
EPICS V4 Features
This section lists some of the features of EPICS V4, which make it suitable as
a platform for a unified controls and services environment for large experimental facilities:
- Structured Data
- pvData (Process Variable Data) defines and implements an efficient way
to store and remotely interact with structured data
- Open, well defined, channel access protocol
- pvAccess implements a version of channel access that provides network support
for transferring PVData, is documented and may be independently implemented and
developed
- Well defined interface definitions
- The Java package org.epics.pvData.pv has Java interface definitions
that define pvData. Package org.epics.pvaccess.client has java interface
definitions that define channelAccess. pvDataCPP provides the C++
definitions
- Implementation interop
- Projects pvData and pvDataCPP each provide a complete implementation of
pvData. Projects pvAccess and pvAccessCPP provides network support for
pvData. The network protocol for the two languages is identical. Project
pvIOC implements a smart memory resident soft real time database. Each
field of each record can optionally have attached support code which is
called when a record is processed. The java version (javaIOC) has much
more functionality than pvIOCCP, which is in its early stages of
development
- Efficient
- Small memory footprint, low cpu overhead, and concise code base
- Efficient Complex Data Interconnect
- PVData defines separate introspection and data interfaces. The
introspection interfaces provide access to immutable objects, which
allows introspection instances to be freely shared. The introspection
interface for a process variable can be accessed without requiring access
to the data, and what data is transferred is done efficiently because
the metadata of the data need not also be transferred
- Functional Data Types
- Client code can access PVData via the introspection and data
interfaces. For "well known" data, such as timeStamp, or table of orbit data,
specialised interfaces can be provided without requiring any changes
to the core software
EPICS V4 Solutions
This section outlines some general "solutions" provided by EPICS Version 4 (in
marketing-speak - basically, what might you use EPICS version 4, for):
- Scientific or "high level" Services
- This is the current emphasis. An example is the gather service. It
allows a gather client to get/put/monitor the values of a set of V3
records. The data is given to the client as an array. Another example might be a
accelerator modelling service, in which the optics of an entire accelerator may be
computed and returned as a single table to the client. Other examples are
synchronised beam orbit acquisition, synchronised magnet setting, relational database I/O.
Such services are characterised by two things: large payload I/O (eg whole tables),
and the need to ask for the value of a "PV" subject to arguments. These two characteristics
are supported by pvData and pvAccess.
- I/O Controller
- The pvIOC can be used as a soft real-time Input/Output controller. It
implements portDriver, which is a facility for accessing hardware I/O
devices such as Analog, Digital, Serial, GPIB, etc. However, much work remains on
implementing low level drivers.
- Distributed Control System
- EPICS PvData provides a toolkit for building a DCS.
- SCADA
- EPICS PVData can be used to implement Supervisory Control And Data
Acquisition (SCADA) applications.
- Data Server
- An application can use the pvIOC or just channelAccess/pvData to serve
data to network clients.
- Gateway
- A pvIOC can be the basis for transferring data between different types
of control systems.
- Separation of Time Domains
- A pvIOC hosted service, or pvManager, can be used to make acquisitions at a
rate suitable for one component, such as a client display, independently of the
refresh or change rate of the events.
- Aggregated Data Acquisition
- A pvIOC hosted service may be used to collect data from a large number of PVs in
a coordinated way, process it as a whole, such as fitting, or tabulating, and pass these
data on to consumers
- OLAP, OLTP, ETL
- In general, EPICS V4 services allow the EPICS site to include host level architecture patterns.
Marty Kraimer for EPICS V4 Working Group