# Presentation: 265047

## 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 atomic read/write of multiple fields in **_***a***_** record**
**Remove limitations on string lengths, device states, number of input links to support arbitrary sizes.**
**Record Library to provide pluggable functionality**
*Provide hierarchical devices to support higher level view of application in the front-end processors.*
*write with read-back*
*Provide channel access diagnostics*
- _Provide a Channel Access Server to Sequences and their diagnostic information_
- _Revisit Database Library_
- _Alternate protocols_
- Provide automatic backup and restore to support bump-less reboot and synchronization of redundant controllers.
- Support international users with uni-code and time.
**Bold – Must do**_, _*italic – would like to do*_, underline – someone else can do in parallel _plain – lower priority/no effort

## 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 – 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 – 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
- Indexed array access
- Reduces the amount of network and client CPU usage
- Specify priority for circuit - QOS

## 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 – Automatic Backup and Restore

- Provide a standard tool to backup all fields that are changed as a result of channel access puts.
- Provide a restore utility that replaces these fields into the IOC on reboot.
- May use same mechanism used by redundant IOCs to provide the backup and restore capability.
- Provide a mechanism to determine if the automatic restore should be disabled (such as time passed)
- Should SNL programs also be supported?

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

## V4 – CA Server with the Sequencer

- Provide access to variables that are defined in SNL
- State
- Variables defined in the SNL Program
- Last State
- Time in State
- Etc...
- SNL Diagnostics
- Number of external channels defined
- Number of external channels connected
- Number of tcp/ip connections
- Etc.....

## V4 – Channel Access Diagnostics

- Server Diagnostics – available from ca clients
- Connections
- Channels
- Events per second
- State of Health
- Beacon Periodicity
- Etc...
- Client Diagnostics
- Number of connections per server per client
- Number of channels
- Events per second
- State of connection
- Etc.....

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