The Experimental Physics and Industrial Control System (EPICS) (1) is a widely used particle accelerators control system. Being a product of a large scientific based collaboration, the required knowledge and experience to start working with EPICS represents a significant entry barrier. Furthermore, the traditional VME hardware is very costly for small, dedicated applications. By introducing a product which serves as a plug&play, PC- based Input Output Controller (IOC) and provides effortless integration in the control system, the microIOC together with its driver set and configuration software signals a significant step forward in making EPICS more user-friendly and accessible. microIOC, a package consisting of industrial hardware, popular control system (apart from EPICS, we can offer also variations with ACS or TINE) and Cosylab's significant software contribution, is ideal for integration of "problematic" protocol based devices (serial and GPIB) where there is important to isolate such devices from interfering with the rest of the control system. In addition, microIOC offers a wide range of communication and I/O modules and is currently installed at the Swiss Light Source and will also be used for the Australian Synchrotron Project.
The Experimental Physics and Industrial Control System (EPICS) [1] is a widely used particle accelerators control system. Being a product of a large scientific based collaboration, the required knowledge and experience to start working with EPICS represents a significant entry barrier. Furthermore, the traditional VME hardware is very costly for small, dedicated applications. By introducing a product which serves as a plug&play, PCbased Input Output Controller (IOC) and provides effortless integration in the control system, the microIOC together with its driver set and configuration software signals a significant step forward in making EPICS more user-friendly and accessible. microIOC, a package consisting of industrial hardware, popular control system (apart from EPICS, we can offer also variations with ACS or TINE) and Cosylab's significant software contribution, is ideal for integration of “problematic” protocol based devices (serial and GPIB) where there is important to isolate such devices from interfering with the rest of the control system. In addition, microIOC offers a wide range of communication and I/O modules and is currently installed at the Swiss Light Source and will also be used for the Australian Synchrotron Project.
Cosylab has created Abeans, a Java™ API for easy development and deployment of Control System applications. Abeans is a result of a continuous five-year development process. It consists of visual and non-visual libraries that support retrieval of remote data, offer various graphical visualization components and provide commonly used application services. In collaboration with DESY, a data acquisition module was implemented to use the TINE control system, accessing its device servers, properties, their characteristics, history data and the TINE archive servers. Many new graphical components, such as charting components and tables, have been included and adapted for use in rapid application development tools. Some general-purpose applications, as well as prototypes of specific accelerator control applications were developed. The main benefits of Abeans at DESY are its portability, which allows running the same applications in all the different operating systems that are used at DESY, and the flexible deployment of the applications enabled by the Java™ Web Start technology. The system has been recently upgraded to allow remote access to the DESY control system using Web Services technology.
GSI will upgrade the control system in the near future and is therefore examining new technologies, such as the possibility to use CORBA middleware and Java on the client level. GSI has implemented UFC, the interface to the device server level, primarily on the OpenVMS operating system. For other platforms, a subset of UFC is available by a thin server t h a t r u n s o n a n O p e n V M S machine. Based on the Java interface to this server a proof-of-principle integration of Abeans and UFC libraries was demonstrated – the UFC Abeans plug. Abeans is a library that provides simple Java beans for connection with the control system. At the same time, it provides several useful services: logging, exception handling, configuration and data resource loaders, authentication, and policy management. In this article we will describe the details of the upgrade to Abeans and discuss possible further steps, including migration to a CORBA based middle layer, the Advanced Control System (ACS). ACS is a platform independent control system nucleus for writing servers based on an objectoriented model of distributed devices. Like Abeans, ACS hides all details of the underlying mechanisms, which use many complex features of CORBA, queuing, asynchronous communication, thread pooling, life-cycle management, etc.
Databush, a collection of Java classes and utilities for machine physics, serves well at the synchrotron light source ANKA. Machine physics applications with a visu- ally appealing user interface can be written with Databush quickly and efficiently and thanks to Java they are cross- platform. Modular architecture and use of Abeans, a com- munication and application Java framework, has extended the usability of Databush even across different control sys- tems. With improvements and upgrade to latest Abeans R3 libraries the Databush applications have been tested on EPICS based control system at SNS. Additional applica- tions for specific needs of the SNS have been written in short time. Lattice data was obtained through the XAL Java library of SNS. Databush applications have kept ro- bust and appealing user interface, which was polished up at ANKA in order to be used by operators without back- ground in physics. We plan to use the same applications also for the upcoming SESAME light source.
Databush, a collection of Java classes and utilities for machine physics, serves well at the synchrotron light source ANKA. Machine physics applications with a visually appealing user interface can be written with Databush quickly and efficiently and thanks to Java they are crossplatform. Modular architecture and use of Abeans, a communication and application Java framework, has extended the usability of Databush even across different control systems. With improvements and upgrade to latest Abeans R3 libraries the Databush applications have been tested on EPICS based control system at SNS. Additional applications for specific needs of the SNS have been written in short time. Lattice data was obtained through the XAL Java library of SNS. Databush applications have kept robust and appealing user interface, which was polished up at ANKA in order to be used by operators without background in physics. We plan to use the same applications also for the upcoming SESAME light source.
The ACS is a CORBA-based control system framework with all features expected from a modern control system. It has been recently installed at the ANKA light source in Karlsruhe, Germany and is being used to develop the ALMA control system. ALMA is a joint project between astronomical organisations in Europe, USA and Japan and will consist of 64 12-meter sub-millimetre radio telescopes. ACS provides a powerful XML-based configuration database, synchronous and asynchronous communication, configurable monitors and alarms that automatically reconnect after a server crash, run-time name/location resolution, archiving, error system and logging system. Furthermore, ACS has built-in management, which allows centralized control over processes with commands such as start/stop/reload, send message, disconnect client, etc. and is fine-grained to the level of single devices. ACS comes with all necessary generic GUI applications and tools for management, display of logs and alarms and a generic object explorer, which discovers all CORBA objects, their attributes and commands at run-time and allows the user to invoke any command. A Visual configuration database editor is under development. An XML/XSLT generator creates an Abeans plug for each controlled object, giving access to all Abeans applications such as snapshot, table, GUI panels, and allowing one to use the CosyBeans GUI components for creating Java applications. For those that write their own control system, ACS allows to define own types of controlled data and own models of communication, yet use powerful support libraries as long as one adheres to some rules in the form of programming patterns. ACS users several standard CORBA services such as notification service, naming service, interface repository and implementation repository. ACS hides all details of the underlying mechanisms, which use many complex features of CORBA, queuing, asynchronous communication, thread pooling, life-cycle management, etc. Written in C++ and using the free ORB TAO, which is based on the operating system abstraction platform ACE, ACS has been ported to Windows, Linux, Solaris and VxWorks. The applications are written in Java and run on any JVM -enabled platform. ACS is based on the experience accumulated with similar projects in the astronomical and particle accelerator communities, reusing and extending concepts and components of implementation. Although designed for ALMA, ACS has the potential for being reused in other new control systems, as proven by the nearly seamless installation at the ANKA this spring.
Abeans is the next generation of Cosylab's Java based client framework for building control system applications. It has been ported, plugged to such different CS as those of DESY (TINE), SNS (EPICS) and GSI. At the moment we are working on the installations for ALMA project by ESO and for Data Acquisition group at JLab. Abeans consists of two parts, Abeans for control and CosyBeans. Abeans for control provide application services and the mechanisms that allow simple implementation of data flow between the local application and the remote control system. This task is realized in two layers. Firstly, Abeans define a model that is a layer of Java Beans components that represents controlled objects. Secondly, Abeans define a plug which is a driver layer, specific to a given model and an underlying communication system. In addition, Abeans provide several useful services: logging, exception handling, configuration and data resource loaders, authentication, and policy management. CosyBeans provide clear and consistent visualization of dynamic data with standardized presentation of alarms, monitors and connection status. In this article we present the basic concepts of Abeans and latest developments, such as the BACI model, developed for ESO, the possibility to write CosyBeans GUI components as JADE agents for JLab and AbeansDirectory, an Abeans service that is an implementation of JNDI DirContext. We continue by outlining some use cases where we show how these technical solutions help solve concrete problems the application programmer is facing in the real life. We will look at a generic application Object Explorer that is able to display and modify any value that is accessible by a given control system. This means that the same application can be used to explore TINE, EPICS or ACS CORBA based system. Second example will be a specialized panel that displays and controls values of a remote physical device. We will show that by using Abeans, the application developer just needs to take care of the user interface – by means of CosyBeans graphical displayers, he can construct a fully functional application in a visual editor without writing a single line of code, the lifecycle of remote entities and the installation of services is performed by the Abeans. As a third example, we will show how to make use of the Abeans when developing a complex application for machine physics that interacts with a large number of physical devices and depends heavily on the services provided by the framework.