Introduction
This document serves as a general guide for the ICS Framework (IFW) version 2026, aiming to provide an updated ELT software stack for instrument developers. The framework is intended as a toolkit to assist instrument developers in implementing their control systems. The IFW has been validated with the following ELT packages:
ELT Development Environment 7.0.1 (AlmaLinux 10.2)
CII MAL 6.1.0
CII Services 6.0.0
Note
From version 2024 onward, IFW changed the versioning scheme from a correlative number to a version based on the year.
Scope
This document is the transfer document for the ELT ICS Framework version 2026. The intended audience are ELT users, consortia developers, software quality assurance engineers or general users of this framework.
Acronyms
DB |
Database |
CCF |
Camera Control Framework |
CCS |
Central Control System |
DAQ |
Data Acquisition |
DDT |
Data Display Tool |
ELT |
Extremely Large Telescope |
ETR |
Extensible Test Runner |
FCF |
Function Control Framework |
FCS |
Function Control System |
GUI |
Graphical User Interface |
HLCC |
High Level Coordination and Control |
ICS |
Instrument Control System |
IFW |
ICS Framework |
ODP |
Online Data Processing |
OLDB |
Online DB |
OTTO |
The new observing tool: Otto Tackles Telescope Observations |
PLC |
Programmable Logic Controller |
RAD |
Rapid Application Development |
SEQ |
Sequencer |
SLM |
Secondary Loop Manager |
SUP |
Supervisor |
Overview
The framework components included in version 2026 are listed in the release notes Release Notes.
Components by Layer
The IFW is divided into several RPM packages built from independent Git repositories located under the same group in the ESO GitLab. IFW repositories could be organized by architectural layers. Components may depend on components from the same layers or beneath them.
IFW Git Packages.
Foundation and Infrastructure The base libraries and application frameworks that all other components build upon.
rad |
Rapid Application Development framework. Event-driven applications based on callbacks or state machines. This is the base for all C++ servers. |
ifw-core |
Core shared libraries (ctd, dit, stoo), utility libraries, logger, and core definitions. Central foundation for all IFW components. |
ifw-fnd |
Fundamental shared definitions. Includes iComm adapter interfaces and the log4cplus bridge used across the framework. |
ifw-rtmslib |
RTMS Library for LLNETIO communication. Used by ifw-ccf and ifw-fgf. |
ddt |
Data Display Tool. Libraries and tools for detector data transfer, display, and manipulation. Includes DDT broker and DDT Viewer. |
ifw-wdglib |
Reusable GUI widget library for representing physical or logical system functions in panels. |
uatools |
OPC UA wrapper library (ualib) and tools, including the UaExplorer browser. Replaces the old OPC UA base in ifw-core. |
Device and Function Control Components for controlling instrument hardware devices via OPC UA communication with PLCs.
ifw-fcf |
Function Control Framework core. Device Manager controlling hardware devices. |
ifw-fcfif |
CII interface definitions for FCF. Separated from ifw-fcf to provide a standalone interface module. |
ifw-fcfui |
FCF user interfaces and Python client library. Separated from ifw-fcf. |
ifw-fcfsim |
New device simulator framework for FCF. Replaces the simulator framework in ifw-fcfif. |
ifw-ll |
PLC libraries code and Visual Studio source projects for TwinCAT 3.1 (4024, 4026). |
ifw-resource |
PLC libraries and tools (4024, 4026). |
Note
The ifw-ll stores mainly PLC Visual Studio projects.
Camera and Detector Control Components for camera data acquisition and detector communication.
ifw-ccf |
Camera Control Framework. GenICam/GigE Vision and ENVision OPC UA adapters, ROI control, and DDT publishing. |
ifw-ccfui |
CCF Engineering GUI (ccfGui). Separated from ifw-ccf. |
ifw-fgf |
Frame Grabber Framework for detector data acquisition hardware. |
camcom |
Camera Communication Toolkit. Simplifies implementation of camera communication interfaces. |
Observation Coordination High-level coordination of observations, template library and image analysis.
ifw-daq |
Data Acquisition component. Includes daqOcmServer, daqDpmServer, data history, and MAL resource management. |
ifw-daqif |
Interface definitions and libraries for the Data Acquisition component. |
ifw-sup |
System Supervisor. High-level coordination manager for all ICS subsystems. |
ifw-supif |
Interface definitions and libraries for the System Supervisor. Separated from ifw-sup. |
ifw-slm |
Secondary Loop Manager. Eases implementation of slow loops, especially in adaptive optics systems. |
ifw-slmif |
Interface definitions for Secondary Loop Manager. |
ifw-tpl |
Template Library. Common interface for instrument templates. |
ifw-odp |
Online Data Processing for real-time science data processing. Integrates with DDT and CPL. |
Scripting, and Tooling General purpose tools and observatory scripting.
seq |
Sequencer engine for executing observation blocks and engineering scripts. Includes CLI and GUI (seqtool). |
etr |
Extensible Test Runner. Supports Robot Framework tests, Jinja2 templating, and Nomad deployment. |
ifw-rtmstools |
RTMS tools for instrument control and communication utilities. |
ifw-calob |
Calibration Framework for instrument calibration observation handling. |
ifw-iptool |
Instrument Package Tool for preparing template signature files and instrument packages. |
xarch |
Cross-Architecture Archive Facility. Organizes data products and provides web-based retrieval interface. |
Warning
Disclaimer: ESO does not warrant that the functions contained in version 2026 of the ICS Framework will meet all requirements or that the operation of their components and libraries will be flawless.
ESO does not ensure that solutions included in version 2026 are not subject to changes in future releases.
While every precaution has been taken in the development of the ICS Framework software and in the preparation of the documentation, ESO assumes no responsibility for errors or omissions, or for damage resulting from the use of the software or of the information contained in the documentation.
Note
Starting with version 2026, the ICS Framework is distributed under the GNU Lesser General Public License v3.0 (LGPL v3.0). A LICENSE file containing the full terms is included in each IFW repository.
The rights of third party products, whose software is for convenience included in the development environment, are ruled by their copyright notice included in their software.