Next: The Event Channel Interface
Up: CORBA OBJECTS FOR SLS
Previous: The CORBA TRACY Interface
The SLS accelerator device control system[12]
is based on the Experimental Physics and
Industrial Controls System (EPICS)[13] whose
communications protocol is channel access[14].
The Common DEVice (CDEV) C++ class library
(version 1.7.3)[15]
provides the API to channel access, supplying
functionality for both synchronous and asynchronous
interaction with the control system.
The CDEV interface takes the form of
a device/message paradigm whereby a message
constructed from a `verb' and `attribute'
is routed to a `device' through channel access.
The CORBA CDEV server responds to CDEV type verbs
such as `set', `get', `monitorOn'
to respectively download set-points, readback
device attribute values and monitor selected channels.
A change in value of a monitored channel invokes
the CDEV callback function, wherein the new
data value is both stored in memory and
supplied to a CORBA event channel.
Clients can either retrieve data from memory
through the invocation of a CORBA method
or be informed of updated values by subscribing
as a consumer to the appropriate event channel.
The software architecture allows
several clients to connect to the CDEV
server. However only a single monitor per channel
need ever be enabled, thereby reducing the
load on the SLS network and the low-level
hardware.
The CORBA CDEV interface handles
a variety of EPICS records, including analogue
and digital input/output records, waveforms
and arrays. Use is also made of CDEV collections
which serve to present related devices
as a logical software entity.
Table 2 shows a Java client
performing remote method invocations on the
CDEV server. A sequence of `slow control objects',
consisting of CDEV device names, attributes,
datatypes and values is first loaded with pertinent data
from a configuration file or database.
A subsequent method invocation employs
the CDEV `get' verb to retrieve the
corresponding set of controls data.
A local function then prints the corresponding
set of results.
Data from the real-time control system, however,
typically requires recalibration and/or analysis before
being displayed by the client. Such tasks are assigned
to the Analysis Server which distributes recalibrated
data to interested clients through the CORBA Event Channel
interface, as illustrated in Fig. 2.
Next: The Event Channel Interface
Up: CORBA OBJECTS FOR SLS
Previous: The CORBA TRACY Interface
Jan Chrin
2000-11-13