SMI++ - Object oriented framework for designing Control systems for HEP experiments

Paper: 201
Session: B (talk)
Speaker: Gaspar, Clara, CERN, Geneva
Keywords: communication, control systems, development environments, object-oriented methods, programming languages

SMI++ - Object oriented framework for designing Control systems for
HEP experiments

Author name(s) come here
Institutional affiliation should be put here, together with address
This field is for the Collaboration name (if needed)

Boda Franek, Rutherford Appleton Laboratory
Chilton, Didcot, OXON
OX11 0XQ, United Kingdom.

Clara Gaspar, CERN, 1211 Geneva 23, Switzerland.


Fill in here the abstract contents
(300-500 words summary which highlights
the scope and significance of the paper,
including a statement of the current status of the work).

SMI++ - Object oriented framework for designing Control systems for
HEP experiments

SMI++ is beeing developed for the Babar experiment at SLAC and is based
on the original State Manager concept which was developed by
the DELPHI experiment in collaboration with the OC group of CERN.

In this concept, an experiment is viewed as a collection of objects behaving
as finite state machines. Objects can represent concrete entities, for example
hardware devices or software tasks, or they can represent logical abstract
entities describing sub-systems of an experiment. The objects representing
the concrete entities interact with the hardware they model and control through
so called associated processes or proxies. These proxies encapsulate the
complexity and behaviour of the specific 'hardware' component.

The main attribute of an SMI object is its state. Commands sent to an object
trigger actions that can bring about a change in its state. During the
execution of an action the object can send commands to other objects.
Objects can also spontaneously respond to state changes of other objects.
The objects are typically organised in hierarchical structures called domains.
A full automation of the experiment can be achieved by a top-level domain
controlling all underlying domains.

The object model of the experiment is described using State Manager Language
(SML). This language allows detailed specification of the objects such as their
states, actions and associated conditions. The SML is then parsed and
translated into a database that is then used by a generic 'Logic Engine'.

The Logic Engine has been designed using an Object oriented design tool
(RoseC++) and coded in the C++ language. It uses the translated SML
representation of the experiment to instantiate the required objects and then
responds to external events such as an operator commands to drive the
computer model of the experiment.

The experiment control does not have to be performed just by one Logic Engine,
it is often advantageous to have a collection of cooperating Logic Engines
running on different computer platforms. The communication among the Logic
Engines is handled by the underlying communication system DIM which takes
care of all the issues related to distribution and heterogeneity of platforms.

The design of the projects is completed and the implementation is in progress.
The first prototype should be working by the end of the year.