Format | |
---|---|
BibTeX | |
MARCXML | |
TextMARC | |
MARC | |
DublinCore | |
EndNote | |
NLM | |
RefWorks | |
RIS |
Files
Abstract
The Karabo software framework* is a pluggable, distributed control system that offers rapid control feedback to meet the complex requirements of the European X-ray Free Electron Laser facility. Programmable Logic Controllers (PLC) using Beckhoff technology are the main hardware control interface system within the Karabo Control System. The communication between Karabo and PLC currently uses an in-house developed TCP/IP protocol using the same port for operational-related communications and self-description (the description of all available devices sent by PLC). While this simplifies the interface, it creates a notable load on the client and lacks certain features, such as a textual description of each command, property names coherent with the rest of the control system as well as state-awareness of available commands and properties**. To address these issues and to improve user experience, the new implementation will provide a comprehensive self-description, all delivered via a dedicated TCP port and serialized in a JSON format. A Python Asyncio implementation of the Karabo device responsible for message decoding, dispatching to and from the PLC, and establishing communication with relevant software devices in Karabo incorporates lessons learned from prior design decisions to support new updates and increase developer productivity.