Evolution of EPICS Core

From EPICSWIKI
Revision as of 13:41, 20 April 2006 by AndrewJohnson (talk | contribs)

VERY OLD DOCUMENT

This document is very old, and should not be relied on for any purpose. The evolution of EPICS core is not likely to follow the path shown here, although it does give an idea of some of the things that we would like EPICS to support at some point in the future.


V4 – Executive Summary

  • Provide online add/delete of I/O to support continuous operation.
  • Provide redundant control of remote I/O to support improved reliability.
  • Provide name introspection and domain control in support of seamless *integration of large control systems
  • Provide triggers, filters, and rate limits to improve resource use of network and client side processing
  • Provide hierarchical devices to support higher level view of application in the front-end processors.
  • Provide automatic backup and restore to support bump-less reboot and synchronization of redundant controllers.
  • Provide atomic read, write, and write with read-back to multiple channels to support synchronized access of arbitrary sets of channels.
  • Support international users with uni-code and time.
  • Remove limitations on string lengths, device states, number of input links to support arbitrary sizes.
  • Internationalize Time Stamps

V4 – Structure and Array Support

  • Allows definition and access to complex devices and multi-dimensional arrays
  • Name hierarchy in Channel Access
    • <arbitrary string>.structure. Element[n]
    • e.g. Arc3PwrSupply.readback.status, ArcPwrSupply.readback.value
  • Device description in database
  • Support arbitrary number of inputs to calculations and subroutines.
  • Support multi-state devices of an arbitrary number of states

V4 – Data Acquisition Capabilities

  • New subscription parameters
    • Rate limit
    • Value changes (as before but also % change)
    • Triggers
    • Filters
    • Examples
    • Send BPM at 1 Hz (where 1 Hz across IOCs is the same)
    • Send BPM when trigger specifies that this pulse is e-
    • Send RF reading when filter says that vacuum is higher than 10e-6 torr
  • Allows more accurate requests for data on client applications
  • Reduces the amount of network and client CPU usage
  • Specify priority for circuit - QOS

V4 – Device Read/Write Operations

  • Allows multiple fields to be read/written as an atomic operation
  • Reads/Writes can be triggered
    • e.g. Put( Corr1.K, Corr2.K, Corr3.K, on trigger event)
    • All puts take place when the trigger event occurs
  • Write with return data support (Command/Response)
  • Ramping/arb function outputs – given two end points

V4 – Name Resolution Extensions

  • Allow wildcard searches
  • Allow request to send all names supported in the IOC
  • Support redundancy by allowing connections to specify that they are not active
  • Support multiple name servers by allowing connections to specify how close to the source they are.
  • Name aliasing supported.

V4 – Online Add / Delete

  • Support hardware address change during operation
  • Allow new record instances to be loaded at any time
  • Support addition of hardware of an already supported type (64x)
  • Support addition of new hardware during operation.
  • Remove records during operation.

V4 – Redundancy: Multiple masters of remote I/O

  • Support name responses from multiple controllers of the same database.
  • Support request for all fields from a primary database to its backup.
  • Support a request for all fields that have changed since the last synchronization of the backup to the primary.
  • Support a mechanism for switching from the primary to the backup.
  • Provide a mechanism for synchronizing primary and the backup.
  • Support multiple communication paths that provide
    • an isolated network for synchronization traffic
    • redundant checks to synchronize switch over behavior.
  • Provide a mechanism to start/stop scanning
  • Provide a mechanism to start/stop sequences
  • Provide a mechanism to start/stop drivers from scanning

V4 – Support Large / Multi-segmented Control System

  • Support load balancing between multiple data sources (1st order gateway, 2nd order gateway, IOC, and load).
  • Support domain control independent of network topology
    • Beamline data is not available to the control room
    • Only insertion gap and beam quality information is available to the beamline controls from the ring control room.

V4 – Extendable Metadata / Properties

  • Metadata can be extendable –
    • Add array dimensions
    • Add time base to an array
    • Application programmers can add metadata
  • Specify metadata by field rather than record
    • Only get metadata when it is meaningful
    • No display limits for the high display limit
  • Calc and subroutine records have arrays of inputs
    • No limit to the number of variables

V4 – Channel Access Diagnostics

  • Server Diagnostics
    • Connections
    • Channels
    • Events per second
    • State of Health
    • Beacon Periodicity
    • Etc…
  • Client Diagnostics
    • Number of connections/server per client
    • Number of channels
    • Events per second
    • State of connection
    • Etc…..

V4 – Limitations Remediation

  • Multi-line text
  • Variable length strings
    • Removes current limitations of 40 characters
    • Reduces size of memory use in most cases
    • Reduces network traffic in most cases
  • Unicode
    • Support alternate character sets
  • Multidimensional arrays
  • Variable size arrays

V4 – Time Stamp Internationalization

  • Support ISO 8601 Format
    • Year-month-date-hours-minutes-seconds-fractional seconds
    • Country specific time stamps
  • Support Locale Settings for conversions
    • ,02 as 2 hundreds of a second

V???? – Access Security Upgrades

  • Kerberos style authentication
  • User specific CA client resource consumption quotas in access security system
  • Confirmation requested hint (no mods w/o poping an are-you-sure dialog box)