Verteiltes Steuerungssystem - DOME

Das Distributed Object Model EnvironmentDOME - ist ein Konzept, Objekte über Rechnergrenzen hinweg miteinander zu verbinden.

Zu DOME gehört neben dem Konzept natürlich auch eine portable Laufzeitumgebung. Neben Unix-artigen Betriebssystemen kann DOME auch unter Windows ausgeführt werden. DOME wurde für den Einsatz in automatisierungstechnischen Anlagen konzipiert und läuft daher auf einer Vielzahl von Rechnerplattformen - auch mit Realtime Anforderungen.

Für das Engineering steht ein graphisches Werkzeug zur Verfügung, in dem sowohl der Objekt-Code in einer Hochsprache, zum Beispiel C++, implementiert als auch die Verschaltung der Objekte und deren Verteilung auf die Rechner vorgenommen werden können.

Optional kann der Applikationsentwurf auch mit Hilfe von Zustandsmaschinen vorgenommen werden.

Technologie

Die Einführung erster Ansätze objektorientierter Programmierung in der Automatisierung geht auf das Funktionsblock-Konzept zurück. Damit lassen sich Algorithmen sehr gut kapseln, jedoch ist der Zeitpunkt der Codeabarbeitung aus dem Funktionsblockdiagramm nicht direkt ersichtlich und variiert von Steuerungssystem zu Steuerungssystem, das in der Regel die Funktionsblöcke zyklisch abarbeitet. Dieses Paradigma erschwert jedoch die Zusammenarbeit mit gleichrangigen Komponente, z.B. zwischen den Steuerungen. Hierfür muss meistens zusätzlicher Engineering­aufwand eingeplant werden, da diese Beziehungen explizit modelliert werden müssen.

Abhilfe schaffen Ansätze der ereignisorientierten Aktivierung der Funktionsblöcke, jedoch werden hier Daten und Ereignisfluss weitgehend getrennt geplant. Eine Interoperabilität von Steuerungskomponenten verschiedener Hersteller ist damit allerdings auch noch nicht gegeben.

Das Engineering kooperierender Komponenten kann wesentlich vereinfacht werden, wenn Aspekte verteilter Systeme in die Automation einfließen. Dadurch wird die Integrationsfähigkeit aller beteiligten Komponenten entscheidend verbessert.

Der Applikationsentwurf kann zudem auch vollkommen losgelöst von Hardwarerestriktionen erfolgen und vorab durch vereinfachte Simulationsmodelle überprüft und anschließend virtuell in Betrieb genommen werden. In einem zweiten Schritt kann dann eine Instrumentierung, d.h. eine Zuordnung der Automatisierungsfunktion zu einer Hardwarekomponente, erfolgen.

 

Eigenschaften
  • Einfachheit der Applikationen
  • Flexibilität durch späte Bindung  ⇒ Voraussetzung für Plug & Play
  • Typsicherer Daten- und Informationsfluss
  • Portabilität & Effizienz
  • Verschiedene Kopplungsgrade zwischen den applikativen Objekten
  • Objektorientierter Ansatz Unterstützung von Echtzeiteigenschaften der Hard- und Firmware
  • Introspektion / Browsen der Applikation / Steuerungen
  • Anwendbarkeit des Funktionsblock-Ansatzes, d.h. von Modularisierung Skalierbarkeit des Gesamtsystems
  • Uhrzeitsynchronisation mittels IEEE 1588 (PTP) auch unter Microsoft Windows
  • Verteiltes Exception-Handling
Architektur

Der Ansatz DOME – Distributed Object Model Environment – beschreibt ein Modell für ein verteiltes System, das speziell auf die Belange der Automation ausgerichtet ist. Neben dem Verteilungsaspekt wird eine Objektorientierung der Applikation verfolgt, wodurch ein hoher Grad an Wiederverwendbarkeit der umgesetzten Algorithmen auf einem hohen Abstraktionsniveau ermöglicht wird.

Eine DOME-Applikation besteht aus einem Netzwerk von Objekten, die über explizite Schnittstellen in Form von Ports verfügen. Ein Objekt bietet Dienste über sogenannte Service-Ports an; Dienst-nutzende Schnittstellen werden als Required-Ports bezeichnet.

Die Link-Objekte werden im Applikationsentwurf zunächst als Platzhalter eingesetzt und erst zur Laufzeit der Applikation automatisch instantiiert. Dadurch wird gewährleistet, dass die Automations-Objekte nahezu beliebig auf den beteiligten Hardware-Komponenten platziert werden können.

Ein weiteres Merkmal des DOME-Ansatzes ist die Introspektion der Teil-Applikation auf jedem Hardware-Knoten. Dadurch kann die Struktur der gesamten verteilten Applikation, d.h. alle Objekte und deren Verbindungen, ergründet werden.

Die Objekte werden auf einem Hardware-Knoten in einem oder mehreren Rechenprozessen abgearbeitet, wobei sie untereinander entsprechend der automatisierungstechnischen Bedürfnisse verbunden werden. Folgende Kopplungsgrade werden unterstützt:

Prozess-lokal

  • Synchron (aufrufender Port blockiert, Rückgabewerte auswertbar)
  • Asynchron (aufrufender Port wartet nicht)

Interprozess (auch über Knoten hinweg)

  • Synchron
  • Asynchron

Engineering

Das Engineering einer DOME-Applikation unterscheidet die Erstellung eines Automations-Objekts (analog zu einem Funktionsblock) und der eigentlichen Applikation. Ein Automations-Objekt wird in einer Sprache DOME-L geschrieben, die auf objektorientierten Sprachen wie C++ oder Java basiert und lediglich die Besonderheiten wie die Portdefinitionen, Nutzerdokumentation etc. verarbeitet. Zur Inbetriebnahme und ggf. Fehlerdiagnose können daher Standardwerkzeuge eingesetzt werden.

Eine DOME-Applikation besteht nur aus Automations-Objekten und deren Verbindungen untereinander.

Daher ist die Beschreibung einer DOME-Applikation auch sehr einfach und lässt sich mit einer DOME-C genannten Konfigurationssprache hinreichend genau ausdrücken. Je beteiligtem Prozess an einer verteilten Applikation wird eine solche Konfigurationsdatei aus dem Engineeringsystem heraus erzeugt bzw. kann manuell editiert werden.

Eine weitere wichtige Komponente stellt der DOME-Manager dar, der auf jedem Hardware-Knoten ausgeführt wird. An diesem Manager melden sich alle DOME-Prozesse an bzw. wieder ab. Er ist weiterhin der erste Anlaufpunkt bei der Introspektion bzw. für die Etablierung der Kommunikation zwischen den Prozessen, die eine Applikation bilden.

Werkzeuge

Die Inbetriebnahme und der Zugriff auf eine DOME-Applikation können vollständig auf Basis der offengelegten Schnittstellen erfolgen. Hilfreich hierfür ist das Werkzeug ‚reperio’, das sich auf den verschiedenen Hardware-Knoten zunächst mit dem DOME-Manager verbindet und mit Hilfe dieser Informationen alle DOME-Prozesse inspizieren kann. Es lassen sich z.B. alle Link-Objekte und die dadurch verbundenen Automations-Objekte graphisch darstellen.

Eine komplette Engineeringumgebung (IDE), die neben der Entwicklung der Algorithmen der Automations-Objekte auch eine Konfiguration der Steuerungen, auf denen die Applikation abgearbeitet wird, vornehmen kann, steht ebenfalls zur Verfügung. Dieses Werkzeug ‚DOME Engineering‘ arbeitet allerdings nur unter Microsoft Windows und enthält Cross-Compiler für die Zielsteuerungen. Zudem erlaubt die IDE, Applikationen in Form von State Machines zu entwickeln und anschließend auf die Steuerungen zu verteilen.