Experiment Control System (Afecs)

Documentation for the AFECS experiment control package.
Other pages in this section:

Developers Guide
 Modern high energy and nuclear physics experiments require sophisticated control systems which are crucial to successful operation of an experiment.  Advanced control is a key enabling technology underpinning enhanced scientific data production quality, and higher safety margins. Success in designing complex control systems depends on taking a holistic viewpoint. Current market is full of quality control gadget/system suppliers providing high quality, ready key control solutions, suitable for specific system components of the experiment (for e.g. gas control system, high voltage control systems, data readout systems, etc). Successful complex experiment control system cannot be guaranteed by simply using commercially available high quality sub-control system components.  Commercially available control systems require different interfaces and communication protocols.  In the recent years many industrial, proprietary control systems, with their specific hardware and software solutions, were being used in high energy and nuclear physics experiments. Inevitably control and data production systems for the future experiments will face problems in areas such as interoperability, scalability, and standard user interface. Interoperability and coordination of these system components in side of the unified control environment, and under control of robust control state machine is the answer.
    Agent Framework for Experiment Control Systems (AFECS) is developed to ease design and deployment of large scale, hierarchical experiment control systems. The unique feature which sets this framework apart from conventional control systems is its incorporation of intelligent agent concepts.

The Multi-Agent Framework for Experiment Control Systems (AFECS) is a Java based software framework for designing and implementing distributed control systems. AFECS creates a control system environment as a collection of software agents behaving as finite state machines. These agents can represent real entities, such as hardware devices, software tasks, or control subsystems. 
AFECS agents can be distributed over a variety of platforms. Agents communicate with their associated physical components using range of communication protocols, including tcl-DP, cMsg (publish-subscribe communication system developed at Jefferson Lab), SNMP (simple network management protocol), EPICS channel access protocol, etc.