Anwendungssoftware- und Framework-Entwicklung für Open-Source-Datenerfassungs- und Messplattform

Denis Petronenko

 

Von Denis Petronenko

Leiter der Telekommunikationsabteilung bei Promwad 

Projekt in Kürze: Wir entwickelten Open-Source-Software basierend auf dem OPC UA-Protokoll für die Datenerfassungs- und Messplattform, mit der unser Kunde sein eigenes Ökosystem von Steuergeräten verschiedener Hersteller aufbauen und eine führende Position auf dem Markt einnehmen konnte.  

Kunde & Herausforderung

Ein Hersteller von Test- und Messgeräten wandte sich an uns, um ein Framework und eine Anwendungssoftware für eine offene, anbieterunabhängige Datenerfassungs-Plattform zu entwickeln.

Unser Kunde wollte sich von der Vendor-Lock-In-Strategie lösen, bei der Hardware und Software auf denselben Anbieter beschränkt sind. Um dieses Problem zu lösen, gingen sie eine Partnerschaft mit mehreren Unternehmen ein, um Open-Source-Software für Test- und Messgeräte basierend auf dem OPC UA-Protokoll zu erstellen.
 

Lösung

Das Projekt umfasste zwei Ingenieurteams, die unterschiedliche Aufgaben übernahmen: die Entwicklung von Anwendungssoftware für die Geräte des Kunden und die SDK-Generierung für die Plattform. Beide Teams arbeiteten in der Infrastruktur des Kunden.

1. Entwicklung von Anwendungssoftware

Wir nutzten die Open-Source-Bibliothek des Kunden zur Entwicklung von Anwendungssoftware mit den folgenden Vorteilen: 

  • Eine modulare Architektur zur Verwendung derselben Module auf verschiedenen Geräten. 
  • Plattformübergreifende Kompatibilität, bei der der Code des Benutzers unabhängig vom Betriebssystem und den Treibern ist. 


Während des Projekts haben wir folgende Themen behandelt: 

  • Wir untersuchten die potenziellen Fähigkeiten der Bibliothek und ihre Kompatibilitätsprobleme auf verschiedenen Plattformen. Dies war besonders wichtig, da eine der Hauptaufgaben der Bibliothek darin besteht, den Benutzer-Code vom Kern des Betriebssystems oder den Gerätetreibern zu trennen. 
  • Wir testeten die Software, um sicherzustellen, dass sie korrekt mit anderen Komponenten funktioniert. Wir haben Mängel schnell behoben und entwickelten aktualisierte Versionen der Software.
     
  • Wir entwickelten Best Practices und Ansätze für die Integration der Bibliothek in den Code: Wir identifizierten typische Probleme, auf die Benutzer stoßen könnten, und entwickelten Szenarien für die effektive Nutzung der Bibliothek. 


Die offene Plattform vereinfacht die Arbeit des Ingenieurs erheblich: Er muss keinen Code mehr schreiben, um die Kommunikation zwischen dem Programm und dem Betriebssystem zu ermöglichen, z.B. über das OPC UA-Protokoll. So funktioniert es ohne die Nutzung einer offenen Plattform:
 

Der Ingenieur schreibt eigenständig Geschäftslogik, Programme, die mit Treibern interagieren, Programme, die mit dem Betriebssystem interagieren, und Programme, die mit dem Netzwerk interagieren

In der neuen Lösung verwaltet das Framework die Interaktion zwischen der Software und dem Betriebssystem automatisch, sodass sich Ingenieure auf die Geschäftslogik und die Klassen konzentrieren können, die die Basisschicht verwalten. Der Module-Manager findet, verbindet und verwaltet automatisch die kompilierten Module, was den Entwicklungsprozess vereinfacht. Die untenstehenden Diagramme zeigen, wie es funktioniert:
 

Blockdiagramm des Workflows des Open-Platform-Frameworks

Um die Aufgaben dieser Phase zu lösen, verwendeten wir den folgenden Technologie-Stack: 

  • Programmiersprache: C++17; 
  • Modulare Testbibliothek: Google Testing Framework (GTest); 
  • Build-System: CMake; 
  • Versionskontrollsystem: Git. 

2. Framework-Entwicklung

Hier sind die Aufgaben, die unsere Softwareingenieure bei der Entwicklung des Frameworks auf Basis der Open-Source-Bibliothek des Kunden gelöst haben: 

  • Automatischer Paketaufbau für alle aktuellen Python-Versionen über alle Plattformen außer MacOS hinzugefügt;
  • Verbesserung der Benutzerdokumentation mit Beispielen zur Nutzung des SDK; 
  • Verbesserung der SDK-Komponenten im Zusammenhang mit der Python-Nutzung; 
  • Überarbeitung der Software-Schnittstellen zur Einhaltung der Python-Standards; 
  • Neugestaltung der Benchmark-Anwendung; 
  • Integration neuer Funktionalitäten in den Code-Generator; 
  • Erweiterung der Testabdeckung, um sicherzustellen, dass neue Funktionen jetzt von Tests begleitet werden; 
  • Einrichtung von Continuous Integration für GitHub. 


In diesem Projekt haben wir auch CMake- und Git-Systeme verwendet, den GitHub-Actions-Dienst für die Testautomatisierung eingesetzt und mit mehreren Programmiersprachen gearbeitet: 

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

Geschäftswert 

Unser Kunde hat einen Wettbewerbsvorteil erlangt, indem er die Entwicklung von Open-Source-Software basierend auf dem OPC UA-Protokoll im Markt für Test- und Messgeräte anführt. Da Lieferanten an herstellerspezifische Systeme gebunden sind, ist eine solche universelle Software entscheidend, um wettbewerbsfähig zu bleiben. 
 
Mit dem offenen Standard wird das Mess Ökosystem Geräte verschiedener Hersteller umfassen, die sich darauf konzentrieren können, ihre Geräte zu verbessern, anstatt ihre Produktlinien zu erweitern. Dieser Ansatz ermöglicht es ihnen, sich mehr auf die Produktqualität als auf die Quantität zu konzentrieren, was letztlich zu besseren Ergebnissen für Hersteller und ihre Kunden führt. 
 
Da immer mehr Hersteller den offenen Standard übernehmen, entsteht ein herstellerunabhängiger Markt, auf dem Kunden Zugang zu einer größeren Auswahl an kompatiblen Produkten haben, wodurch Wachstum und Innovation in der Branche fördert wird.
 

Mehr von dem, was wir für Messgeräte tun:

Ingenieurnotizen

Das OPC UA-Protokoll (Open Platform Communications Unified Architecture) ist ein Maschinen-zu-Maschinen-Kommunikationsprotokoll, das für Anwendungen in der industriellen Automatisierung entwickelt wurde. Es gewährleistet einen sicheren und zuverlässigen Datenaustausch in industriellen Umgebungen und erleichtert die Interaktion zwischen verschiedenen Systemen und Geräten unabhängig vom Hersteller. 

Das Protokoll verfügt über eine plattformunabhängige Architektur, die es ihm ermöglicht, auf verschiedenen Betriebssystemen und Hardwareplattformen zu funktionieren. 

OPC UA unterstützt komplexe Datentypen und eine objektorientierte Architektur. Dank dieser Funktion eignet es sich für moderne industrielle Anwendungen, die den Austausch komplexer Datenstrukturen wie Messungen, Statusinformationen und Befehle zwischen Geräten und Steuerungssystemen erfordern. 

Aufgrund seiner Skalierbarkeit, Standardisierung und Integrationsfähigkeit mit anderen Industriestandards hat sich das OPC UA-Protokoll zur Grundlage für die Gewährleistung der Kompatibilität und des Datenaustauschs zwischen verschiedenen Geräten und Systemen entwickelt, die an der Datenerfassung, Überwachung und Analyse beteiligt sind. 

Andere Fallstudien

Erzählen Sie uns von Ihrem Projekt

Alle übermittelten Informationen werden vertraulich behandelt.