ELSA control system
Most modern accelerator control systems build on the same principles: a distributed architecture and standardization towards open systems. The ELSA control system is specially designed for high bandwidth on all layers and, due to envisaged future upgrades and expansions, seamless extension in capacity and capability. It combines control, simulation and modelling together with online beam diagnostics in one homogeneous environment. The following guidelines were set for the design:
At present (March 2017), 25 VME processors, 15 Linux PCs, 17 PLCs and approximately 45 MACS fieldbus computers are attached to the system.
The process control and the fieldbus layer together form the process system.
The communication system between the control and the process system is based on Ethernet (IEEE 802.3). The consistent realization of the process system with VME components and a uniform operating system allow for a homogeneous communication system based on standard protocols (TCP and UDP on top of IP) for the complete control system. The remote inter-process communication on all layers is realized through synchroneous and/or asynchroneous message exchange. High bandwidth data paths will be realized exclusively by using TCP socket data transfers or by ONC-RPC calls.
The efficiency and flexibility of a control system is mainly determined by its software. The software of the control system performs tasks which in many ways resemble the duties of a distributed operating system. The results arising from research in the field of distributed systems are therefore fundamental for the design of such an accelerator operating system.
The process system contains applications for data acquisition, equipment control, monitoring and alarms and for complex real-time tasks like feedbacks and magnet ramping. Each application consists of a set of one or more concurrent threads synchronized by the VME operating system kernel. These applications send data to the control layer in regular intervals (e.g. tune monitoring), triggered by observed parameter changes (e.g. status conditions) or perform a task on request (e.g. image acquisition and processing).
Each computer of the control layer is managing a memory resident online database representing one part of the accelerator complex. The set of online databases on the individual computers is linked via horizontal communication paths, such that only a single, distributed database is seen which allows for transparent access to all the informations pertaining the accelerator. The relation of given parameters to individual computers is not explicitly seen by high level applications and process layer software alike.
On the control computer runs a "rule engine" (i.e. a set of processes fed with patterns of accelerator parameter changes) which elaborates abstract rules and correlates machine parameters. A set of rules will handle the algorithmic mapping from hardware dependent parameter sets to machine physics parameters. Other rules will implement heuristic recipes for easy management of complete subsystems. Rules may be activated or deactivated during normal operation. The control system itself uses the concept of rule engines to monitor and survey its own performance and utilization. Whenever bottlenecks in CPU load or network traffic are observed, warning or notice events are generated and distributed to the log system.
The man machine interface is the interactive tool from which the individual components of the ELSA accelerator are controlled. In order to avoid confusion and to minimize the learning time, the interface builds on ergonomic and logical concepts which allow for an intuitive understanding of its operation and of the operation of the devices it controls.
Some menus of the ELSA control system
Virtual control menus allow users to operate on the graphical representations of a large set of devices like switches, knobs, sliders, digital and analog indicators, whose behaviour is equivalent to that of the real instrumental devices. The menus can be generated interactively by means of a graphical editor in a menu driven way without writing a line of code. The connection with the online database and the underlying servers on the lower layers is automatic and completely transparent.