OPC UA in ground-based Observatory Control

Catholic University of Leuven in Belgium is using OPC UA as communication middleware.

Mercator telescope with new instrument


Astronomical observatories are complex distributed real-time systems encompassing a wide range of technology domains. While traditionally these systems were controlled by custom hardware and software solutions, modern telescopes are increasingly benefiting from commercial off-the-shelf (COTS) components in order to keep R&D and maintenance costs manageable. The integration of industrial automation components such as Programmable Logic Controllers (PLCs) and supervisory software has long been hampered however by the lack of an adequate industrial communication technology. With the new Unified Architecture (OPC UA), these limitations are now eliminated and in addition a powerful new range of functionality has become available. The extensive OPC UA support for standard communication paradigms and information modeling offers the opportunity to the engineers of the Catholic University of Leuven to shift from their traditional custom communication solutions towards an industry standard, as they apply their research results to the Mercator Telescope based at the international observatory of La Palma on Canary Islands, Spain. OPC UA in ground-based Observatory Control Catholic University of Leuven in Belgium is using OPC UA as communication middleware.


A team of software engineers explored UA’s capabilities to serve as the backbone of a dependable and scalable observatory control system. Functional tests and performance measurements with OPC UA products and the Software Development Kit (SDK) were performed in order to verify whether the OPC UA specification can satisfy the requirements, and whether the available implementations are complete and mature enough to build a functional infrastructure. In case of a positive evaluation, the university would build two applications for the Mercator Telescope with OPC UA technology: the control of a new scientific camera and a new motion control system for the tertiary mirror of the telescope. The C++ SDK by Unified Automation was chosen, because it offered the largest set of features available on the market and because it met the stringent performance and portability requirements of the telescope infrastructure.


Researchers of the KU Leuven considered OPC UA suitable to serve as the “backbone” technology of ground-based observatory control systems. With respect to a “general purpose” middleware, OPC UA is naturally more tailored to facilitate interaction between the components of a heterogeneous and distributed control system. The engineers proceeded by implementing the control of a new scientific instrument and a new support for the tertiary mirror of the Mercator telescope on commercial PLCs with on-board OPC UA server. The C++ SDK of Unified Automation was used to integrate these PLCs within the Scientific Linux infrastructure of the observatory. The positive results have led to the decision to refurbish the whole Mercator telescope control system in the coming years with OPC UA via the Unified Automation SDK as a cornerstone.

OPC Unified Architecture

  • IEC 62541
  • Platform Independence
  • Reusability
  • Scalability
  • Communication Paradigms
  • Complex Data
  • Alarms and Events
  • Audit Logging
  • Historical Archive
  • Dependability
  • Location Transparency

OPC UA Background

OPC UA is the successor of the suite of “classic” OPC standards developed by the OPC Foundation to interface industrial PLCs with SCADA and HMI (Human Machine Interface) systems. Besides the specification, a collection of code deliverables has been released. The communication stacks in ANSI C/ C++, JAVA, and C# .NET implement common lower level functionality. Message signing and encryption is based on the WS-SecureConversation specification, and authentication is controlled by X.509 certificates. The major characteristic of OPC UA is the extensive support for information modeling. Information entities (Nodes) and relationships between them (References) can be defined, and exposed to the network in the address space while its semantics are described formally in a namespace. Not only data itself but also meta-data can be exposed and transported over the wire. A Node has several attributes and can represent an object, a variable, a method, or a type of such. Built on top of the stack, the SDK is responsible for higher level functionality such as service handling and address space management.

Performance: Read (UInt32)

nodes/call time/call
10 1.457 ms
100 1.831 ms
1000 5.868 ms

Linux 64Bit on 4Core3GHz over 1Gbit with no Security

Used Products of Unified Automation

The KU Leuven developers have used the C++ based OPC UA SDK/Toolkit to implement portable OPC UA Server and Clients. Both, Client and Server use an identical C++ UA Base Library. This library encapsulates the raw ANSI C types of the OPC UA Stack, and offers comfortable C++ classes. Therefore it provides a heavily simplified implementation and efficient integration into existing C++ applications. Besides the simplification of the UA Stack API, the SDK implements common UA functionality, that is required in all UA applications, utility and helper classes, implementation of the security handling and the SDK shows with example code the most common use cases.

About KU Leuven

The Catholic University of Leuven (or KU Leuven), founded in 1425, is Belgium’s largest university. Among its many departments and divisions is the Institute of Astronomy, an internationally recognized expertise center in stellar astrophysics. The institute exploits the semi-automatic 1.2 m Mercator Telescope at the Canary Islands and is part of several international instrumentation consortia that build the world‘s most advanced scientific instruments for ground- and space-based missions.