Hochschule Kempten

Erste Erfahrungen mit OPC UA PubSub

4. Februar 2021, 8:39 Uhr | Meinrad Happacher

Fortsetzung des Artikels von Teil 2

Die PubSub-Umsetzung

Prof. Dr. rer. nat. Josef Griesbauer ist Professor für Automatisierung und Messtechnik an  der Hochschule Kempten.
Prof. Dr. rer. nat. Josef Griesbauer ist Professor für Automatisierung und Messtechnik an der Hochschule Kempten.
© Hochschule Kempten

Für den Einstieg in die Datenübertragungssysteme bietet Codesys mit OPC UA PubSub ein System, das sich mit etwas Einarbeitungszeit auch für Einsteiger eignet. Allerdings sind Vorkenntnisse in objektorientierter Programmierung notwendig. Sind diese nicht vorhanden, schlägt sich das in der Projektierungszeit des Erstprojekts nieder. So ist es für fortgeschrittene Programmierer mit Erfahrungen in der objektorientierten Programmierung durchaus möglich, innerhalb weniger Stunden die Anforderungen zu verstehen und in einem Grundprojekt umzusetzen. Für Anfänger kann dies hingegen durchaus mehrere Tage in Anspruch nehmen. Hilfreich ist in jedem Falle das in der Bibliothek mitgelieferte Beispielprojekt, das einen grundsätzlichen Aufbau für Publisher und Subscriber beinhaltet. Die professionelle, durchwegs objektorientierte Umsetzung dieses Beispielprojekts kann für Neueinsteiger auf diesem Gebiet fordernd und zum Teil aufwendig sein.

Florian Kast ist nichtwissenschaftlicher  Mitarbeiter (ehemaliger Masterstudent) an der Hochschule Kempten.
Florian Kast ist nichtwissenschaftlicher Mitarbeiter (ehemaliger Masterstudent) an der Hochschule Kempten.
© Hochschule Kempten

Etwas gewöhnungsbedürftig ist die Namensgebung der internen Variablen der Funktionsbausteine der Bibliothek. So ist etwa im Baustein Connection nicht immer auf den ersten Blick erkennbar, welche IP-Adresse welcher Variablen zugeordnet werden muss. Hilfreich erweisen sich in diesem Falle die zugeordneten Kommentare. 
Empfehlenswert ist, die Kommunikation separat zu erstellen und zu testen, da die Bibliothek den Namensraum NBS verwendet, der auch bei der Datenübertragung mittels TCP/IP in Codesys zum Einsatz kommt. Damit kann es bei gleichzeitiger Verwendung von PubSub und TCP/IP zu Überlagerungen und damit zu Fehlern kommen.

Ist beim eigentlichen Test eines PubSub-Projektes etwa der Kommunikationsaufbau fehlerhaft, ist dies einfach an den genutzten PubSub-Bausteinen zu erkennen. Diese besitzen drei Ausgangs-Variablen, die den Status, die Aktivität sowie einen Fehlerzustand anzeigen. Hier sei angemerkt, dass ein Fehlerzustand im Subscriber nicht grundsätzlich im Subscriber-Programm seinen Ursprung haben muss. So kann ein weiterer falsch parametrierter Publisher, der selbst eine korrekte Aktivität meldet, in einem Subscriber zu Verbindungsproblemen führen. Das separate Testen jeder Übertragung kann aber eine Falschinterpretation eines Kommunikationsproblems vermeiden. 

Ein Resümee

Die Möglichkeit zur einfachen, schnellen Übertragung von Daten zwischen einem Publisher und beliebig vielen Subscribern macht OPC UA PubSub zu einem mächtigen Werkzeug. Insbesondere wenn es gilt, Projekte zu realisieren, die den Anspruch haben, das Internet of Things in der Industrie umzusetzen. 

Die erstmalige Verwendung der Objektorientierung bringt sicherlich Schwierigkeiten bei der Umsetzung eines Codesys-PubSub-Projektes mit sich. Der etwas höhere und objektorientierte Programmieraufwand im ersten Projekt lässt sich in Folgeprojekten dank der guten Wiederverwendbarkeit des Codes kompensieren. Abschließend bleibt anzumerken: Momentan ist die Umsetzung von PubSub in Codesys alternativlos und: sie funktioniert!


  1. Erste Erfahrungen mit OPC UA PubSub
  2. Wie ist PubSub in Codesys anzuwenden?
  3. Die PubSub-Umsetzung

Das könnte Sie auch interessieren

Verwandte Artikel

Hochschule Kempten, CODESYS GmbH

TSN & OPC UA