Last modified: Thu May 3 17:21:25 CEST 2012
Features and Solutions
HOME DEVELOPMENT DOWNLOAD DOCUMENTATION FEATURES WORKING GROUP SOURCEFORGE PROJECT FAQ

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