Application Software & Framework Development for Open-Source Data Acquisition & Measurement Platform

Denis Petronenko

 

By Denis Petronenko

Head of the Telecom Unit at Promwad 

Project in Nutshell: We developed open-source software based on the OPC UA protocol for the data acquisition and measurement platform, helping our client create their own ecosystem of multi-vendor control devices and take a leading position in the market.  

Client & Challenge

A test and measurement equipment manufacturer approached us to develop a framework and application user software for an open, vendor-independent data collection platform.

Our client aimed to move away from the vendor lock-in strategy, where hardware and software are limited to the same supplier. To address this issue, they partnered with several companies to create open-source software for test and measurement equipment based on the OPC UA protocol.
 

Solution

The project involved two engineering teams tackling different tasks: application software development for the client's devices and SDK generation for the platform. Both teams worked in the client's infrastructure.

1. Application software development

We used the client's open-source library to develop application software with the following advantages: 

  • A modular architecture for using the same modules across different devices. 
  • Cross-platform compatibility, where the user's code is independent of the operating system and drivers. 


During the project, we addressed the following issues: 

  • We explored the potential capabilities of the library and its compatibility issues across different platforms. This was particularly important as one of the library's main tasks is to separate the user code from the core of the operating system or device drivers. 
  • We tested the software to ensure it worked correctly with other components. We quickly rectified shortcomings and developed updated versions of the software.
     
  • We developed best practices and approaches for incorporating the library into code: we identified typical problems users may encounter and devised scenarios for effective use of the library. 


The open platform greatly simplifies the engineer's work: they no longer need to write code to enable communication between the programme and the operating system, for example via the OPC UA protocol. Here's how it works without using an open platform:

The engineer independently writes business logic, programs interaction with drivers, programs with the OS, and program interaction with the network

In the new solution, the framework manages the interaction between the software and the OS automatically, allowing engineers to focus on the business logic and classes that manage the base layer. ModuleManager automatically finds, connects and manages compiled modules, simplifying the development process. The diagrams below show how it works:

Block diagram of the open platform framework workflow

To solve the tasks of this stage, we used the following technology stack: 

  • Programming language: C++17; 
  • Modular testing library: Google Testing Framework (GTest); 
  • Build system: CMake; 
  • Version control system: Git. 

2. Framework development

Here are the tasks our software engineers solved in the development of the framework based on the customer's open-source library: 

  • Added automatic package building for all current Python versions across all platforms except MacOS;
  • Improved the user documentation with examples of SDK usage; 
  • Improved the SDK components related to Python usage; 
  • Revised the software interfaces to comply with Python standards; 
  • Redesigned the benchmark application; 
  • Integrated new functionality into the code generator; 
  • Expanded the test coverage, ensuring that new features are now accompanied by tests. 
  • Set up continuous integration for GitHub. 


In this project, we also utilised CMake and Git systems, employed the GitHub actions service for test automation, and worked with several programming languages: 

  • Python 3.8–3.12; 
  • C++17; 
  • C#. 

Business Value 

Our client has gained a competitive edge by leading the development of open-source software based on the OPC UA protocol in the test and measurement equipment market. With suppliers locked into vendor-specific systems, having such universal software is essential to staying competitive. 
 
With the open standard, the measurement ecosystem will include devices from various manufacturers who will be able to focus on improving their equipment rather than expanding their product lines. This approach will allow them to focus more on product quality than quantity, ultimately leading to better results for manufacturers and their clients. 
 
As more manufacturers adopt the open standard, a vendor-independent market is created, where customers have access to a wider range of compatible products, contributing to growth and innovation in the industry.
 

More of What We Do for Measuring Equipment:

Engineering Notes

The OPC UA protocol (Open Platform Communications Unified Architecture) is a machine-to-machine communication protocol developed for industrial automation applications. It ensures secure and reliable data exchange in industrial environments, facilitating interaction between various systems and devices regardless of the manufacturer. 

The protocol features a platform-independent architecture, allowing it to function across different operating systems and hardware platforms. 

OPC UA supports complex data types and object-oriented architecture. Thanks to this feature, it is suitable for modern industrial applications that require the exchange of complex data structures, such as measurements, status information, and commands between devices and control systems. 

Due to its scalability, standardisation, and integration capabilities with other industrial standards, the OPC UA protocol has become the foundation for ensuring compatibility and data exchange between various devices and systems involved in data collection, monitoring, and analysis. 

Other Case Studies

Tell us about your project!

All submitted information will be kept confidential.