Wenn Systeme über AutomationML gekoppelt werden, muss jedes System einen entsprechenden Exporter bzw. Importer besitzen, der dessen spezifische Datenobjekte auf die standardisierten AutomationML-Objekte abbildet. Dieser Zuordnungs- und Transformationsprozess wird von AutomationML durch Rollenbibliotheken unterstützt. Rollen sind semantische Definitionen für AutomationML-Objekte und sorgen beim Datenaustausch dafür, dass die Objektdefinition von einem importierenden System korrekt verarbeitet wird. Hierzu definiert AutomationML Bibliotheken mit abstrakten Rollen. Spezifische System-Datenobjekte können aber oftmals auf der angebotenen Abstraktionsebene nicht ausreichend genau beschrieben werden. Aus diesem Grund werden für bestimmte Anwendungsdomänen detailliertere Rollenbibliotheken entwickelt. Eine eindeutige Zuordnung zu einem Datenobjekt des Zielsystems kann dadurch verbessert, aber nicht garantiert werden. In einigen Fällen benötigt der Importer daher eine Zuordnungsstrategie und eine Abbildungsvorschrift für die semantisch eindeutige Transformation des AutomationML-Objektes in das Zielsystem, um eine verlustfreie Datenübertragung zu gewährleisten.
Externalisierung der Systemdatenmodelle
Wie wird ein Datenobjekt eines spezifischen Systems zu einem AutomationML-Objekt und umgekehrt? Eine Möglichkeit besteht in der Externalisierung der systemeigenen Klassen in Form einer AutomationML-SystemUnit-Klassenbibliothek. Von diesen systemeigenen Klassen leiten sich in der Regel die exportierbaren Datenobjekte, welche ausgetauscht werden sollen, ab. Ein Export- bzw. Importprozess müsste mit einer entsprechenden Externalisierung starten (Phase 1, vgl. Bild 1). Das Ergebnis ist eine systemspezifische AutomationML-Datei, die den austauschrelevanten Ausschnitt des Systemdatenmodells abbildet. Anschließend kann diese systembeschreibende AutomationML-Datei zukünftig bei jedem Datenimport und Datenexport (Phase 2) wieder Verwendung finden.
Datentransformation und Datenaustausch
Die Transformation eines System-Datenobjektes in ein AutomationML-Objekt beim Import und Export erfolgt nach unterschiedlichen Strategien, wobei die Zuordnungsstrategien eines Importers in der Regel komplexer sind als die eines Exporters, da der Importer gegebenfalls auf Objekte, für die es keine eins zu eins Entsprechungen gibt, interpretieren und auf das Systemobjektmodell abbilden muss. Sowohl Exporter als auch Importer nutzen das für ihr System externalisierte Systemdatenmodell und stellen Zuordnungen zwischen den Datenobjekten und den SystemUnit-Klassen her. Der Exporter realisiert dies für die zu exportierenden Datenobjekte und erzeugt anhand der zugeordneten SystemUnit-Klasse ein AutomationML-Objekt (ein CAEX – \’InternalElement\‘). Beim Importer verhalten sich die Dinge genau umgekehrt. Er stellt eine Zuordnung zwischen den vom Quellsystem gelieferten AutomationML-Objekten und den eigenen SystemUnit-Klassen her und erzeugt anhand der zugeordneten SystemUnit-Klasse ein Datenobjekt im Zielsystem.
Zuordnungsstrategien – Zuordnungen anhand von Rollen
Rollen werden dazu verwendet, die Semantik von AutomationML-Objekten zu definieren. Im konkreten Fall muss ein Exporter jedem erzeugten AutomationML-Objekt mindestens eine Rolle zuordnen. Die SystemUnit-Klassen des Quellsystems, die vom Exporter für die Generierung der AutomationML-Objekte verwendet werden, definieren die Menge der zulässigen Rollen für das jeweils generierte AutomationML-Objekt. Wenn ein Importer ein AutomationML-Objekt von einem Quellsystem erhält, interpretiert er die zugeordneten Rollen und versucht seinerseits nun unter den SystemUnit-Klassen des Zielsystems diejenigen zu finden, die diese Rollen unterstützen (Bild 2). Er kann diesen Schritt nur ausführen, wenn sowohl die SystemUnit-Klassen des Quellsystems als auch die SystemUnit-Klassen des Zielsystems dieselben Rollenbibliotheken benutzen bzw. Rollenbibliotheken mit demselben \’Stammbaum\‘ (Rollen können in Vererbungsbeziehungen stehen). Findet der Importer mehr als eine passende SystemUnit-Klasse, benötigt er eine Strategie, um den Konflikt zu lösen. Eine Möglichkeit besteht darin, dass der Exporter bereits im Vorfeld bei der Zuordnung einer Rolle zu einem AutomationML-Objekt zusätzliche Bedingungen definiert. In diesen können bestimmte Werte oder Wertebereiche für spezielle Objekteigenschaften gefordert sein, die der Importer dann zur Interpretation nutzen kann. Wenn die Interpretation auch damit noch nicht möglich ist, müssen zusätzliche Regeln und Strategien definiert werden.