AutomationML-Programmierung

Serie AutomationML Teil 3: Effizientes Programmieren mit der AutomationML-Engine
Ziel von AutomationML [1] ist der Datenaustausch zwischen Werkzeugen der Anlagenplanung. Als herstellerneutrales, standardisiertes und XML-basiertes Datenformat kann es derzeit Planungsinformationen bezüglich Anlagentopologie/Struktur, Geometrie/Kinematik sowie Logik/Verhalten abbilden. Dabei bildet CAEX [2] das Objektmodell der Engineeringdaten ab. Die Integration von AutomationML in die Schnittstellen von Werkzeugen wirft jedoch immer wieder die Frage auf: Wie aufwändig ist die Programmierung von Ex- und Importern? Dieser Beitrag beleuchtet dies anhand verschiedener Programmierszenarien.

Parallel zu AutomationML entwickelte der AutomationML e.V. eine freie Software für Entwickler – die AutomationML-Engine [3]. Sie spiegelt das CAEX-Datenmodell in Form einer C#-Klassenstruktur exakt wider und enthält alle Klassen und Methoden, um CAEX-Objekte (Klassen und Instanzen) manipulieren zu können. Der Softwareentwickler wird durch diese Software befreit, die Einhaltung des CAEX-Schemas zu überwachen. Stattdessen operiert er auf Klassenebene, während die Engine im Hintergrund konforme CAEX-Dateien erzeugt oder liest. Entwicklungsvoraussetzung zur Nutzung der AutomationML-Engine ist das Betriebssystem WindowsXP oder höher sowie Visual Studio Version 2008 oder höher. Die Einbindung der Engine in eigene Projekte erfolgt über die Referenzierung der Engine-dlls.

AutomationML-Programmierung

Bild 1 zeigt das Basisszenario: Der Datenaustausch zwischen zwei Werkzeugen benötigt einen Exporter und einen Importer. Sowohl Exporter als auch Importer müssen AutomationML-Dateien erzeugen, lesen und manipulieren können. Daraus lassen sich Basisfunktionen und erweiterte Funktionen ableiten, die im Folgenden schrittweise beleuchtet werden.

CAEX-Basisprogrammierung

1. Erzeugen eines CAEX-Dokumentes

Für das Erzeugen eines leeren CAEX-Dokumentes genügt eine Zeile Quelltext (siehe Bild 2). Im Hintergrund, für den Anwender verborgen, erzeugt die AutomationML-Engine alle benötigten XML-Knoten [4].

2. Öffnen/Speichern einer CAEX-Datei

Das Öffnen und Speichern eines CAEX-Dokumentes erfordert ebenfalls jeweils nur eine einzige Zeile Quelltext (siehe Bild 3 und Bild 4). Dies funktioniert mit beliebig komplexen CAEX-Dateien.

3. Erzeugen von CAEX-Hierarchien

CAEX unterstützt vier Arten von Hierarchien: eine Instanz-Hierarchie für die eigentlichen Projektdaten sowie drei Bibliotheksarten. Im AutomationML-Editor [3] kann jede dieser Hierarchien mit einem einzigen Mausklick erzeugt werden (siehe Bild 5). Bild 6 zeigt den zugehörigen C#-Quelltext, um alle vier Hierarchien zu erzeugen. Dieses Beispiel unterstreicht eine Erfahrung des Autors: Das Programmieren eines einfachen CAEX-Browsers gelingt innerhalb von 30min.

4. Erzeugen von Hierarchie-Elementen

Im nächsten Schritt wird die Instanz-Hierarchie mit Objekten gefüllt. Ihre Architektur ermöglicht das Modellieren beliebig tiefer Objektstrukturen. Bild 7 zeigt dies beispielhaft anhand von zwei Objekten Tank und Nozzle im AutomationML-Editor sowie drei Attributen des Tanks. Bild 8 zeigt den zugehörigen C#-Code: Zunächst werden Variablen IE1 und IE2 deklariert. Anschließend werden beide Objekte Tank und Nozzle erzeugt, der Tank wird mit Attributen versehen.

Zwischenfazit

Der Aufwand für die grundlegenden Schritte beim Programmieren von AutomationML/CAEX ist tatsächlich gering. Dies ist nicht auf die beschriebenen Basisanforderungen beschränkt, auch komplexere Funktionen wie das Löschen von Objekten, das Ändern von Attributen, das Referenzieren von Objekten, Funktionen zum Kopieren und Klonen ganzer Teilhierarchien zwischen verschiedenen CAEX-Dokumenten gelingen ähnlich einfach.

Erweiterte Techniken

1. Umgang mit semantischer Viel-falt

AutomationML führte 2011 ein neues Konzept zur Beherrschung semantischer Vielfalt ein. Dies ermöglicht die Realisierung von Datenaustausch zwischen Planungswerkzeugen, ohne dass hierzu ein standardisiertes Datenmodell existieren muss. Das Konzept basiert auf der Idee, proprietäre Daten-Teilmodelle in ihrer ursprünglichen Semantik in CAEX abzubilden. Dazu wird die AutomationML-Datei mit einem Etikett versehen, das Auskunft über den Urspung der Datei gibt. Importer können diese Informationen nutzen, um quelltoolspezifische Sub-Routinen zum Import aufzurufen. Das Konzept wird in [5] im Detail beschrieben, im Folgenden soll die Programmierung erläutert werden. Einzige Voraussetzung für die Anwendung dieses Konzeptes ist die Offenheit der adressierten Planungswerkzeuge [6].

2. Etikettierung von CAEX-Dateien

Bild 9 zeigt, wie das Etikettieren erfolgt: Zunächst wird exemplarisch ein Objekt m vom Typ Metainformation erzeugt. Dann werden die von AutomationML definierten Informationen festgelegt und abschließend wird das Objekt m im CAEX-Dokument eingebunden.

3. Lesen von CAEX-Etiketten

Bild 10 illustriert, wie das vorhandene Etikett einer CAEX-Datei ausgewertet werden kann. Die Intellisense-Funktion von Visual Studio hilft, die relevanten Properties zu sichten.

Fehlersuche in CAEX-Dateien

AutomationML-Dokumente sollen fehlerfrei sein. Fehler sind stets auf das Quellwerkzeug oder den Exporter zurückzuführen. Beim Entwickeln von Exportern treten typische Fehler auf: ID\’s werden doppelt vergeben, referenzierte Klassen oder externe Dateien existieren nicht. Die AutomationML-Engine bietet Funktionen, um solche Fehler leicht zu finden. Bild 11 zeigt, wie diese Fehlerprüfroutinen aufgerufen werden können. Die Fehler werden in Listen gespeichert, deren Einträge jeweils eine menschenlesbare Fehlerbeschreibung sowie einen Pointer auf das fehlerhafte Objekt enthalten.

Weitere Funktionen

Basierend auf der praktischen Nutzung der AutomationML-Engine wurde diese in 2011 um eine Vielzahl weiterer Funktionen erweitert. Dazu gehören Funktionen zum Importieren von CAEX-Daten aus anderen CAEX-Dateien, Funktionen für das Klonen, Ersetzen und Kopieren von CAEX-Daten, Festlegen von Meta-Daten sowie erweiterte Funktionen zum Splitten und Zusammenführen von CAEX-Dateien.

Zusammenfassung

Die AutomationML-Engine vereinfacht die Arbeit mit CAEX-Dateien erheblich und wird beispielsweise vom AutomationML-Editor bereits verwendet [7]. Der realistische Aufwand zum Programmieren eines AutomationML-Exporters wird auf wenige Tage reduziert, der Hauptaufwand liegt in der Kommunikation mit dem Engineeringwerkzeug. Das Programmieren von Importern ist aufwändiger und erfordert das Mappen der empfangenen Daten mit dem Datenmodell des Zielwerkzeuges. Diese Funktionalität liegt jedoch außerhalb der AutomationML-Programmierung und wird in einem weiteren Beitrag dieser AutomationML-Serie beleuchtet.

Seiten: 1 2Auf einer Seite lesen

AutomationML e.V. c/o IAF
http://www.automationml.org

Das könnte Sie auch Interessieren

Weitere Beiträge

Bild: Ceratizit Deutschland GmbH
Bild: Ceratizit Deutschland GmbH
Werkzeuge – immer passend

Werkzeuge – immer passend

Eine digitalisierte Fertigung hat viele Gesichter… und Recker Technik aus Eschweiler setzt ihr auf jeden Fall einen Smiley auf. Dort bringt die Produktion mit digitalen Zwillingen mehr Effizienz in den Alltag sowie gleichzeitig mehr Überblick über das Toolmanagement und die Werkzeugkosten. Mit dabei: Zwei Tool-O-Maten, die intelligenten Werkzeugausgabesysteme von Ceratizit – dank denen immer das passende Werkzeug für den Job zur Hand ist.

mehr lesen
Bild: Hainbuch GmbH
Bild: Hainbuch GmbH
„Wie passende Spanntechnik die Automation voranbringt“

„Wie passende Spanntechnik die Automation voranbringt“

Zunehmend individuellere Kundenanforderungen, mehr Schwankungen im Auftragseingang und weniger Fachkräfte – diese Faktoren beeinflussen die Fertigungsplanung zunehmend. Gerade bei kleinen Herstellungschargen mit Losgrößen unter 100 macht in diesem Spannungsfeld die Automatisierung, etwa von Hainbuch, den Unterschied. Ein entscheidender Ansatzpunkt in der Umsetzung ist neben Maschine, Roboter und Bediener der Rüst- und Spannprozess.

mehr lesen
Bild: Schunk SE & Co. KG Spanntechnik
Bild: Schunk SE & Co. KG Spanntechnik
Futter für die Ewigkeit

Futter für die Ewigkeit

Siemens Energy setzt für die Präzisionsbearbeitung an einer Horizontaldrehmaschine Magnos Elektropermanent-Magnetspannfutter von Schunk ein. Dank der gleichmäßig dauerhaft wirkenden Magnetspannkraft erfolgt das Spannen der Werkstücke deformations- und vibrationsarm – für eine ausgezeichnete Bearbeitungs- und Oberflächenqualität. Mit der zugehörigen App lässt sich die Spannsituation simulieren und sicher parametrieren.

mehr lesen