Difference between revisions of "Experiment Control System Choice"

From GlueXWiki
Jump to: navigation, search
m
m
Line 6: Line 6:
 
'''Introduction'''
 
'''Introduction'''
  
The system controlling an experiment can loosely be divided into three layers:  the experiment control layer (ECS), slow controls layer (aka SCADA or DCS), and the field-bus level that actually communicates with sensors and actuators.  Here I discuss the ECS, the level that has overall control of the entire running environment.  See [[Slow Controls Framework Choice]] and [[Slow Controls Specifications]] for discussions of the two lower layers.
+
The system controlling an experiment can loosely be divided into three layers:  the experiment control layer (ECS), slow controls layer (aka SCADA or DCS), and the field-bus level that actually communicates with sensors and actuators.  Here I discuss the ECS, the level that has overall control of the entire running environment.  See [[Slow Controls Framework Choice]] and [[Field Bus and Controller Specifications]] for discussions of the two lower layers.
  
 
The LHCb web page nicely describes the role of the ECS:  "(The) Experiment Control System is in charge of the configuration, control and monitoring of all the components of the online system. This includes all devices in the areas of: data acquisition, detector control (ex slow controls), trigger, timing and the interaction with the outside world."
 
The LHCb web page nicely describes the role of the ECS:  "(The) Experiment Control System is in charge of the configuration, control and monitoring of all the components of the online system. This includes all devices in the areas of: data acquisition, detector control (ex slow controls), trigger, timing and the interaction with the outside world."

Revision as of 10:07, 31 January 2008

(in preparation...ejw)



Introduction

The system controlling an experiment can loosely be divided into three layers: the experiment control layer (ECS), slow controls layer (aka SCADA or DCS), and the field-bus level that actually communicates with sensors and actuators. Here I discuss the ECS, the level that has overall control of the entire running environment. See Slow Controls Framework Choice and Field Bus and Controller Specifications for discussions of the two lower layers.

The LHCb web page nicely describes the role of the ECS: "(The) Experiment Control System is in charge of the configuration, control and monitoring of all the components of the online system. This includes all devices in the areas of: data acquisition, detector control (ex slow controls), trigger, timing and the interaction with the outside world."


State Machines

ECS's often involve use of software state machines that step through a pre-defined sequence in order to move the experiment from one state to another (e.g. booted --> configured --> downloaded --> whatever). These state machines change often, unlike those in factories, which remain fairly stable once they are tuned. Thus in factories the state machines usually reside in PLC's and are programmed by process engineers. In contrast, it is impractical to deploy many of our state machines in PLC's due to their rapidly evolving nature and the need for physicists to modify them, so we use high-level software instead.


AFECS from the JLab DAQ Group

The JLab DAQ group has been working on experimental controls for some time, first as a framework for DAQ run control, and then as a complete ECS. Although stand-alone state machine software is available (SMI++/DIM from CERN, others), the DAQ group product AFECS seems to meet all our needs. AFECS stands for Agent Framework for Experimental Control Systems, and the main innovation is that agent-based techniques are used throughout. Agents are software constructs that represent real outside entities. To communicate with an outside entity you simply talk to its representative agent in the software world in a standard way, and the agent takes care of the actual communication (via Ethernet, through a bus or controller, via a special protocol, etc).

AFECS uses an xml-based language developed at JLab (COOL, or Control Oriented Ontology Language) to describe state machines, allowable transitions, etc. AFECS also accepts SMI++, a state machine language used extensively at CERN.


ECS vs Slow Controls

It is not clear where the dividing line between the ECS and slow controls (DCS) systems should be drawn. Each can do part of what the other does. E.g. AFECS can talk to devices directly, without the need for a DCS layer. And DCS systems such as EPICS can be used to some extent for experiment controls. AFECS is designed to take over much if not all of what DCS's do. But most DCS's provide suites of applications and utilities that are not available in AFECS yet.

Although we could write all the utilities missing in AFECS, it seems to me that we might as well take advantage of what is provided by DCS's, particularly as many of them have large development bases, and AFECS only exists at JLab.