39th Tango Community Meeting at INAF
Hosted as a hybrid meeting by INAF (Italian National Institute for Astrophysics) and INAF - OAAb (Osservatorio Astronomico d'Abruzzo)
Dates: May 21–23, 2025 (The meeting will take place all day on May 21 and 22, while on May 23, sessions will be held only in the morning.)
Location: Giulianova, Province of Teramo, Italy
Welcome to the 39th Tango Community Meeting at OAAb. We are excited to bring together our international community for three days of inspiring sessions and networking opportunities in the beautiful town of Giulianova.
The agenda is finalized.
The main Zoom room for the entire Tango Collaboration Meeting will be:
https://us02web.zoom.us/j/86213502238?pwd=f3qUswuECkL6XemSvLMwa6aqlBF4CO.1
Meeting ID: 862 1350 2238
Access code: 228383
Parallel sessions links:
Introductory Workshop to the PANIC Alarm System, led by Sergi Rubio (ALBA):
https://us02web.zoom.us/j/89315189832?pwd=hmk46IctMj0GkbIuFtVpQ2a3VjGYoT.1
Meeting ID: 893 1518 9832
Access code: 908357
Developing Device Servers in Kubernetes, led by Matteo Di Carlo (INAF):
https://us02web.zoom.us/j/86889865586?pwd=u0TnJNobxzuVjmPV1XfPdzVNHwaS5Z.1
Meeting ID: 868 8986 5586
Access code: 092915
All sessions will be recorded and later published on the event's Indico page.
In-Person Participation:
Important Dates:
Please note that physical attendance is limited to 50 participants. Should this limit be reached, we will work with the venue to explore additional capacity, but no extra spots are guaranteed.
Meeting Venue:
The meeting will be held at Hotel Europa in Giulianova.
Accommodation Details:
Travel Tip:
Giulianova is a popular tourist destination. Although we are not in peak season, a considerable number of visitors are expected. To avoid higher prices or unavailability of accommodations nearby, we recommend booking as early as possible.
SOLEIL Status:
SOLEIL II status (upgrade plans)
Current usage of our Web applications
Archiving status at SOLEIL
Taurus usage at SOLEIL
Highlights
Ongoing developments and solutions
The Square Kilometre Array (SKA) is moving rapidly from conceptual designs to tangible construction, with trenches being dug and dishes being installed. The highly anticipated AA0.5 milestone has produced the first image from the SKA-Low telescope demonstrating the system's operational viability; the system works! This significant accomplishment has provided invaluable insights, prompting a retrospective review of our control system. Since the control systems for both telescopes have a shared architecture, we are confident in our ability to produce the first image from SKA-Mid within this year, marking another critical milestone. This talk will delve into these key developments and showcase how the TANGO control system framework has been crucial in enabling the advancement of the Telescope Control System.
LOFAR is the LOw Frequency ARray comprising of
54 stations across Europe with the majority
located around Exloo in the Netherlands. This
radio telescope is currently undergoing a major
upgrade including a drastically redesigned
monitoring and control design leveraging (Py)Tango.
In this presentation we show the current state
of this LOFAR2.0 monitoring and control system across
its various layers and technologies including how we
use PyTango. The contents show various interesting
technologies and standards such as OPCUA, gRPC,
Prometheus, and Grafana as well as how these
services are spread across our stations and central
facilities. Next we show our current roadmap and our
envisioned future directions.
The National Synchrotron Radiation Centre SOLARIS has been in operation since 2015 and has since undergone substantial development. This presentation outlines the current status of the facility, highlighting its expanding infrastructure and growing user base. It also focuses on the ongoing upgrade of the control system, with particular emphasis on modernization efforts aimed at improving maintainability, upgrading operating systems, and ensuring long-term sustainability.
We are integrating Tango Controls into a high-intensity laser system currently operated by standalone actor model based LabVIEW applications on Windows. Our goal is a smooth step-by-step migration toward a fully open-source control infrastructure, gradually phasing out proprietary software. A key objective is to enable highly automated data acquisition in accordance with the F.A.I.R. principles (Findable, Accessible, Interoperable and Reusable).
We will share our experiences from this transition process and also present our newly initiated collaboration with the company S2Innovation, which may be of interest to the wider Tango community. This includes the migration of the HIJ-Vision library tailored for laser laboratory, the revision of the Tango thread locking mechanism, the extension of Sardana with custom commands and the customization of the Sardana for typical workflow during high-intensity laser experiments.
At the Centre for Advanced Laser Applications (CALA) near Munich, Germany, a multi-petawatt short pulse laser system and several experimental endstations are operated within a university research environment. Unlike large-scale user facilities, CALA must function within limited financial and staffing resources. These constraints have strongly influenced the design of our Tango-based control and data acquisition system, leading us to prioritize simplicity, robustness, and low complexity to ensure reliable and maintainable operation. In my presentation, I will first provide a brief overview of the facility, followed by a walkthrough of our Tango infrastructure. The focus will be on selected in-house solutions that may be of interest to the broader Tango community. These include tools like our Tango-based GitMonitor, which helps maintain consistent updates across distributed Git repositories, as well as more advanced developments such as a modular, automated laser drift stabilization system—also built on the Tango framework.
The status of Elettra 2.0 project is presented
Over the past decades cppTango, i.e. The Kernel, has come a long way and it has finally arrived at the ominous version 10. We look at how it turned out and the new features that we have implemented for you since the last community meeting.
This presentation will cover the latest developments in the Taurus projects (taurus and taurus_pyqtgraph). We will review the key highlights and improvements introduced in the current 5.2 release, and provide an outlook on the upcoming 5.3 release.
A special focus will be placed on the ongoing Taurus Performance Optimization (TPO) efforts, including an analysis of the results achieved so far, lessons learned, and the ongoing work to adapt the new asynchronous event subscription feature from Tango.
This presentation will cover the current developments in the Sardana project and its community. Current work is focused on improving Continuous Scans with support for multiple synchronization descriptions, as well as enhancements to components such as shutter control, the MacroServer environment, the configuration tool, and the support for archiving events.
News from HDB++ on the past year.
Recent developments, news from HDB installation in the institutes using it and so on.
A big effort has been made over the last year to update and improve the current Tango documentation available on Read the Docs. This involved an initial review of the material to identify specific sections that were in need of updating or were no longer relevant. This was followed by a complete restructure to follow the Diataxis documentation approach (i.e. assigning content to one of the four sections: Tutorials, How-tos, Explanations or References) . A workshop was held in October 2024 to stimulate effort for the initial restructure and since then work has been continuing to update the document content and improve the user experience. This presentation will highlight the work of the Tango community and detail some of the more significant changes and features that have been added to the documentation.
The official Tango Database is written in C++ and requires MariaDB as backend.
PyTango contains its own Database implementation, which should work as a drop-in replacement. It stores data using SQLite so it has no external dependencies, making it easier to run.
This implementation isn't new but didn't get much support in the past years and was in a broken state. In the past month, there was some effort to update it. A fork was even created to move it outside PyTango repository for faster development: pytango-db.
This talk will go through a few use cases for local development and CI.
Client-Server Authentication and Validation of Messages for Tango Control System Using Asymmetric Cryptography and Digital Signatures
All Tango messages exchanged over the network include a digital signature which authenticates the client performing given operation and contents of the message. The key pair used for signing messages can be generated per host, user or application. This can be configured e.g. in /etc/tangorc, environment variables or on command line.
Device Server has access to a security policy (e.g. stored in Tango database) which specifies which clients are allowed to interact with which elements of the control system and which operations are allowed. The clients are recognized based on their public key.
The policy can be configured per server, device, attribute/command, or for the whole control system instance.
Conversely, the device server can also sign it's messages in order for the client to be able to verify them.
Ophyd-Async is the asynchronous successor to the device layer of the Bluesky experiment orchestration system. Ophyd-Async is in development and is expected to see its 1.0 release later this year. It has been designed to be control system agnostic and as of its most recent development release, natively supports the Tango control system. This support will better enable the Tango community to make use of tools developed by the Bluesky and EPICS communities, creating opportunities for cross-system collaboration.
Roadmap for next features to implement in panic and an invitation for collaboration to merge the existing panic branches in Tango community (ALBA, MaxIV, Solaris, S2I, ...).
DESY MSK provides a large back catalogue of hardware for accelerator control and diagnostics.
The hardware comes with an established set of control applications for a range of use-cases such as LLRF control, motion control, oscillators, and many more.
In order to be able to provide control system integration of those control servers to our collaboration partners at Helmholtz and beyond, we have created the ChimeraTK framework for hardware and control system abstraction.
In this oral I will give a short introduction to ChimeraTK and will describe how we recently extended it to also support Tango as a target control system framework.
Tango Controls features a client-side access control system that verifies users through system accounts and can restrict access based on IP addresses. However, this method lacks flexibility, as it relies on system accounts and is relatively easy to bypass.
In addition to the existing access control, a server-side authorization system was developed at JINR, allowing roles and sessions to be managed while logging all actions of authorized users.
The presentation covers the current usage of the system, its limitations, and potential starting points for discussion and integration of this system into Tango Controls.
Evolving control systems can benefit from seamless integration of embedded devices while maintaining scalability and maintainability. This work, done the MAX IV Laboratory in Lund, Sweden, presents a solution for incorporating custom hardware into the TANGO control system.
This is achieved by selecting a widely available microcontroller, to limit reliance on a single manufacturer, and defining a library that simplifies firmware development and abstracts direct interaction with TANGO.
The microcontroller communicates with TANGO through the library using the MQTT protocol, enabling efficient messaging and real-time updates in both directions. It supports over-the-air (OTA) firmware upgrades, self-description of the firmware capabilities, and hosting of a web server for easy configuration. A paired TANGO device server dynamically interprets the microcontroller’s self-description, automatically generating TANGO attributes and commands based on its capabilities. This dynamic approach reduces development effort, ensures consistency across deployments, and enhances interoperability within TANGO-based infrastructures.
This approach provides flexibility, modularity, and ease of maintenance, making it a robust solution for embedded control in large-scale scientific and industrial applications.
With OpenTelemetry support added to cppTango and PyTango since version 10.0.0, we tried it out operationally at MAX IV. We provide some examples of the traces, trends, and other data available when running at scale. We report on the compute and performance impact for clients and servers, as well as practical issues. For the backend servers that receive and query all the telemetry data (Grafana Tempo for traces and Grafana Loki for logs) we also look at the compute resources required.
Advanced materials such as energy materials, catalysts, and biological materials like bone have complex hierarchical structures spanning several length scales where chemical elements are organized in a spatial heterogeneous fashion. Understanding these materials requires the ability to map both their structural and elemental composition with high spatial resolution. The current meshct scan in Sardana enables users to perform continuous scanning over relatively large sample areas. However, its functionality is limited to rectangular scan geometries, which is inefficient when the region of interest within a sample has an arbitrary shape. As a result, significant time is spent scanning both the sample and irrelevant surrounding areas, with total scan duration often ranging from one to several hours. To address this limitation and enhance scanning efficiency, a new scan macro, imeshct, has been developed based on the existing meshct. This improved version allows scientists to define and scan custom-shaped areas tailored to specific experimental needs. The implementation of imeshct has demonstrated a potential reduction in scan time by up to 50%, significantly increasing the overall efficiency of experimental workflows.
National Synchrotron Radiation Centre SOLARIS is a Polish light source next to Jagiellonian University, currently operating with seven beam-lines and two new beam-lines under development.
Such facilities employ constant monitoring of all systems and sensors in order to provide the best and uninterrupted service to our users.
Tango archiving database provides an insight into performance of many various parts of the synchrotron ring, linear accelerator, beam-lines and other systems and elements.
Historical data is used to analyse certain events in order to understand and fix technical issues, improve operation and import most recent data to a few applications. Historical data has also been used or is planned to be used to train experimental AI models.
Numerous internal tools have been developed to keep track of the archiving process, to provide fixes for any encountered issues and for importing, exporting or transferring large amounts of data.
National Synchrotron Radiation Centre SOLARIS is a third generation light source with seven fully operational beamlines.
Big science facilities like SOLARIS are obligated to provide the best possible conditions for conducting research. Building robust and extensible environment for developed application is a warranty to continuous delivering precise tools for stable and safe operation purposes.
Coherent and standardized toolset widely used across many different teams, simplify maintenance as well as offers more resource-balanced solution.
The constantly evolving infrastructure and increasing sensorization pose new challenges to control systems departments.
Solution for smooth handling plenty of diagnostic signals should offer easily point-to-point connections, filter/computation layers and convenient interface for integration with applications.
The system that was created in SOLARIS and is still actively developed aims to meet these requirements.
Currently streaming system was successfully deployed in beam anomaly detection subsystem.
Additionally control layer was implemented in PyTango to perform management and error handling actions in more convenient way.
The application is a web-based tool designed to automate the generation of device server code within the Tango Controls environment, focusing on Python code generation. Accessible from any device with an internet connection, the web app requires no local installation, making it highly convenient for developers.
The application's key strength lies in its documentation integration system. It uses an LLM model to extract commands and settings from device manuals and convert them into functional code, eliminating the need for manual documentation lookup and speeding up the device integration workflow.
The ska-tango-exporter is a Diagnostic tool that extract every possible information from a TANGO system in order to assist in the analysis of interconnected problems difficult made to run in a kubernetes environment. It use existing data sources such as the TANGO and the kubernetes database (etcd) together with internal data sources such as prometheus (to collect attributes in a polling fashon) and InfluxDB (to collect events).
It uses Grafana to display data with a specific plugin to display TANGO attributes (ska-tango-attributes).
The availability of historical data on a complex control system
is essential to understanding it and aids greatly in being able
to resolve issues. The process of collecting and storing
these data as well as visualization is collectively
known as Monitoring. This paradigm is often extended with
event conditions and autonomous or manual actions based on these
events in a process called Alarming. Both are often realized
by operating on time-series data retrieved using time range
queries. These data can be served by specialized databases such
as Prometheus, providing efficient and high throughput data access.
But how could such a database be integrated into the Tango controls
ecosystem?
In this presentation we demonstrate the device_metrics
decorator. A single Python class decorator to automatically export Tango
device attributes to a Prometheus database. The decorator
automatically handles the conversion between data dimensionality
and types as well as offering control over included attributes.
To illustrate we will show some of the inner workings of the decorator
as well as the technical challenges that we had to address.
In the up coming cppTango 10.1.0 release we are introducing a couple of new DServer commands based on tools developed by SKAO to debug issues with the Tango ZMQ event system. Here we demonstrate what information can be collected about the ZMQ event system using this new tool and discuss how it has been used to track down issues in Tango devices at SKAO.
In environments where numerous identical devices are deployed, each consisting of a main Tango device plus individual Tango devices for each channel, managing development, installation, and configuration becomes increasingly complex. We explore how Tango's Multiclasses provide an elegant solution to streamline these processes while significantly reducing configuration errors.
Polka is a WebAstor.
Features:
1. Added support for multiple Tango databases.
2. Enabled renaming of branches.
3. Enabled the option to move Starters between branches
4. Added functionality to add a Starter to a Tango database.
5. Added pooling configuration for servers.
6. Added a pooling profiler with two basic charts.
7. Introduced a feature to check pooling status.
8. Added a pooling thread manager.
9. Enabled editing Starter properties.
10. Added functionality to view Starter and server statistics.
Performance improvements:
1. Polka now uses TangoGQL WebSockets.
Taranta Status update
Tango executive commitee report