<?xml version="1.0" encoding="utf-8"?>
<CAEXFile FileName="Topology.aml" SchemaVersion="2.15" xsi:noNamespaceSchemaLocation="./Source/CAEX_ClassModel_V2.15.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<AdditionalInformation AutomationMLVersion="2.0"/>
<AdditionalInformation>
<WriterHeader>
<WriterName>AutomationML e.V.</WriterName>
<WriterID>AutomationML e.V.</WriterID>
<WriterVendor>AutomationML e.V.</WriterVendor>
<WriterVendorURL>www.AutomationML.org</WriterVendorURL>
<WriterVersion>1.0</WriterVersion>
<WriterRelease>1.0</WriterRelease>
<LastWritingDateTime>2012-02-20
</LastWritingDateTime>
<WriterProjectTitle>AutomationML Tutorial Examples</WriterProjectTitle>
<WriterProjectID>AutomationML Tutorial Examples
</WriterProjectID>
</WriterHeader>
</AdditionalInformation>
<ExternalReference Path="Libs/RoleClass Libraries/AutomationMLBaseRoleClassLib.aml" Alias="BaseRoleClassLib"/>
<ExternalReference Path="Libs/InterfaceClass Libraries/AutomationMLInterfaceClassLib.aml" Alias="BaseInterfaceClassLib"/>
<InstanceHierarchy Name="ManufacturingSystem">
<InternalElement Name="firstScrewdriver" ID="{788eb291-f103-4fdc-aba0-4893b599f556}" RefBaseSystemUnitPath="LibOfCommonTools/ElectricScrewdriver">
<Attribute Name="New Attribute"/>
<ExternalInterface Name="EnergySupply" ID="{5f535d4c-dd46-4c1c-898c-4e58419048b6}" RefBaseClassPath="MyInterfaces/Energy"/>
<SupportedRoleClass RefRoleClassPath="ManufacturingRoleClasses/Tool"/>
<RoleRequirements RefBaseRoleClassPath="ManufacturingRoleClasses/Tool"/>
</InternalElement>
<InternalElement Name="secondScrewdriver" ID="{19dcf818-4716-4fc1-a85f-28e1938c4c3a}" RefBaseSystemUnitPath="LibOfCommonTools/ElectricScrewdriver">
<ExternalInterface Name="EnergySupply" ID="50e10905-ac18-413c-afab-ad8ed1569fff" RefBaseClassPath="MyInterfaces/Energy"/>
<SupportedRoleClass RefRoleClassPath="ManufacturingRoleClasses/Tool"/>
<RoleRequirements RefBaseRoleClassPath="ManufacturingRoleClasses/Tool"/>
</InternalElement>
</InstanceHierarchy>
<InterfaceClassLib Name="MyInterfaces">
<Version>1.0</Version>
<InterfaceClass Name="Energy" RefBaseClassPath="BaseInterfaceClassLib@AutomationMLInterfaceClassLib/AutomationMLBaseInterface"/>
</InterfaceClassLib>
<RoleClassLib Name="ManufacturingRoleClasses">
<Version>1.0</Version>
<RoleClass Name="Tool" RefBaseClassPath="BaseRoleClassLib@AutomationMLBaseRoleClassLib/AutomationMLBaseRole"/>
</RoleClassLib>
<SystemUnitClassLib Name="LibOfCommonTools">
<Version>1.0</Version>
<SystemUnitClass Name="ElectricScrewdriver">
<ExternalInterface Name="EnergySupply" ID="dd0e0dfe-10f8-4068-845b-9c29699ac79b" RefBaseClassPath="MyInterfaces/Energy"/>
<SupportedRoleClass RefRoleClassPath="ManufacturingRoleClasses/Tool"/>
</SystemUnitClass>
</SystemUnitClassLib>
</CAEXFile>
Figure 21 – AutomationML XML text
<?xml version="1.0" encoding="utf-8"?>
<UANodeSet xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://opcfoundation.org/UA/2011/03/UANodeSet.xsd">
<NamespaceUris>
<Uri>http://opcfoundation.org/UA/AML/</Uri>
<Uri>http://www.iosb.fraunhofer.de/Topology.aml</Uri>
</NamespaceUris>
<Aliases>
<Alias Alias="Boolean">i=1</Alias>
<Alias Alias="SByte">i=2</Alias>
<Alias Alias="Byte">i=3</Alias>
<Alias Alias="Int16">i=4</Alias>
<Alias Alias="UInt16">i=5</Alias>
<Alias Alias="Int32">i=6</Alias>
<Alias Alias="UInt32">i=7</Alias>
<Alias Alias="Int64">i=8</Alias>
<Alias Alias="UInt64">i=9</Alias>
<Alias Alias="Float">i=10</Alias>
<Alias Alias="Double">i=11</Alias>
<Alias Alias="DateTime">i=13</Alias>
<Alias Alias="String">i=12</Alias>
<Alias Alias="ByteString">i=15</Alias>
<Alias Alias="Guid">i=14</Alias>
<Alias Alias="XmlElement">i=16</Alias>
<Alias Alias="NodeId">i=17</Alias>
<Alias Alias="ExpandedNodeId">i=18</Alias>
<Alias Alias="QualifiedName">i=20</Alias>
<Alias Alias="LocalizedText">i=21</Alias>
<Alias Alias="StatusCode">i=19</Alias>
<Alias Alias="Structure">i=22</Alias>
<Alias Alias="Number">i=26</Alias>
<Alias Alias="Integer">i=27</Alias>
<Alias Alias="UInteger">i=28</Alias>
<Alias Alias="HasComponent">i=47</Alias>
<Alias Alias="HasProperty">i=46</Alias>
<Alias Alias="Organizes">i=35</Alias>
<Alias Alias="HasEventSource">i=36</Alias>
<Alias Alias="HasNotifier">i=48</Alias>
<Alias Alias="HasSubtype">i=45</Alias>
<Alias Alias="HasTypeDefinition">i=40</Alias>
<Alias Alias="HasModellingRule">i=37</Alias>
<Alias Alias="HasEncoding">i=38</Alias>
<Alias Alias="HasDescription">i=39</Alias>
<Alias Alias="Duration">i=290</Alias>
</Aliases>
<UAObject NodeId="ns=2;i=1" BrowseName="ManufacturingSystem">
<DisplayName>ManufacturingSystem</DisplayName>
<Description></Description>
<References>
<Reference ReferenceType="HasTypeDefinition">i=61</Reference>
<Reference ReferenceType="Organizes" IsForward="false">ns=1;i=5005</Reference>
<Reference ReferenceType="HasComponent" IsForward="false">ns=2;i=25</Reference>
<Reference ReferenceType="HasComponent">ns=2;i=8</Reference>
<Reference ReferenceType="HasComponent">ns=2;i=10</Reference>
</References>
</UAObject>
<UAObject NodeId="ns=2;i=2" BrowseName="MyInterfaces">
<DisplayName>MyInterfaces</DisplayName>
<Description></Description>
<References>
<Reference ReferenceType="HasProperty">ns=2;i=3</Reference>
<Reference ReferenceType="HasTypeDefinition">i=61</Reference>
<Reference ReferenceType="Organizes" IsForward="false">ns=1;i=5008</Reference>
<Reference ReferenceType="HasComponent" IsForward="false">ns=2;i=28</Reference>
<Reference ReferenceType="ns=1;i=4002">ns=2;i=17</Reference>
</References>
</UAObject>
<UAObject NodeId="ns=2;i=4" BrowseName="ManufacturingRoleClasses">
<DisplayName>ManufacturingRoleClasses</DisplayName>
<Description></Description>
<References>
<Reference ReferenceType="HasProperty">ns=2;i=5</Reference>
<Reference ReferenceType="HasTypeDefinition">i=61</Reference>
<Reference ReferenceType="Organizes" IsForward="false">ns=1;i=5009</Reference>
<Reference ReferenceType="HasComponent" IsForward="false">ns=2;i=27</Reference>
<Reference ReferenceType="ns=1;i=4002">ns=2;i=18</Reference>
</References>
</UAObject>
<UAObject NodeId="ns=2;i=6" BrowseName="LibOfCommonTools">
<DisplayName>LibOfCommonTools</DisplayName>
<Description></Description>
<References>
<Reference ReferenceType="HasProperty">ns=2;i=7</Reference>
<Reference ReferenceType="HasTypeDefinition">i=61</Reference>
<Reference ReferenceType="Organizes" IsForward="false">ns=1;i=5010</Reference>
<Reference ReferenceType="HasComponent" IsForward="false">ns=2;i=26</Reference>
<Reference ReferenceType="ns=1;i=4002">ns=2;i=19</Reference>
</References>
</UAObject>
<UAObject NodeId="ns=2;i=8" BrowseName="firstScrewdriver">
<DisplayName>firstScrewdriver</DisplayName>
<Description></Description>
<References>
<Reference ReferenceType="HasProperty">ns=2;i=9</Reference>
<Reference ReferenceType="HasComponent" IsForward="false">ns=2;i=1</Reference>
<Reference ReferenceType="HasTypeDefinition">ns=2;i=19</Reference>
<Reference ReferenceType="ns=1;i=4001">ns=2;i=18</Reference>
<Reference ReferenceType="ns=1;i=4001">ns=2;i=18</Reference>
<Reference ReferenceType="HasComponent">ns=2;i=12</Reference>
<Reference ReferenceType="HasComponent">ns=2;i=13</Reference>
</References>
</UAObject>
<UAObject NodeId="ns=2;i=10" BrowseName="secondScrewdriver">
<DisplayName>secondScrewdriver</DisplayName>
<Description></Description>
<References>
<Reference ReferenceType="HasProperty">ns=2;i=11</Reference>
<Reference ReferenceType="HasComponent" IsForward="false">ns=2;i=1</Reference>
<Reference ReferenceType="HasTypeDefinition">ns=2;i=19</Reference>
<Reference ReferenceType="ns=1;i=4001">ns=2;i=18</Reference>
<Reference ReferenceType="ns=1;i=4001">ns=2;i=18</Reference>
<Reference ReferenceType="HasComponent">ns=2;i=15</Reference>
</References>
</UAObject>
<UAObject NodeId="ns=2;i=13" BrowseName="EnergySupply" ParentNodeId="ns=2;i=8">
<DisplayName>EnergySupply</DisplayName>
<Description></Description>
<References>
<Reference ReferenceType="HasProperty">ns=2;i=14</Reference>
<Reference ReferenceType="HasComponent" IsForward="false">ns=2;i=8</Reference>
<Reference ReferenceType="HasTypeDefinition">ns=2;i=17</Reference>
</References>
</UAObject>
<UAObject NodeId="ns=2;i=15" BrowseName="EnergySupply" ParentNodeId="ns=2;i=10">
<DisplayName>EnergySupply</DisplayName>
<Description></Description>
<References>
<Reference ReferenceType="HasProperty">ns=2;i=16</Reference>
<Reference ReferenceType="HasComponent" IsForward="false">ns=2;i=10</Reference>
<Reference ReferenceType="HasTypeDefinition">ns=2;i=17</Reference>
</References>
</UAObject>
<UAObject NodeId="ns=2;i=20" BrowseName="EnergySupply" ParentNodeId="ns=2;i=19">
<DisplayName>EnergySupply</DisplayName>
<Description></Description>
<References>
<Reference ReferenceType="HasProperty">ns=2;i=21</Reference>
<Reference ReferenceType="HasComponent" IsForward="false">ns=2;i=19</Reference>
<Reference ReferenceType="HasTypeDefinition">ns=2;i=17</Reference>
</References>
</UAObject>
<UAObject NodeId="ns=2;i=22" BrowseName="Topology.aml">
<DisplayName>Topology.aml</DisplayName>
<Description></Description>
<References>
<Reference ReferenceType="HasTypeDefinition">ns=1;i=1005</Reference>
<Reference ReferenceType="HasProperty">ns=2;i=23</Reference>
<Reference ReferenceType="HasProperty">ns=2;i=24</Reference>
<Reference ReferenceType="HasComponent">ns=2;i=25</Reference>
<Reference ReferenceType="HasComponent">ns=2;i=26</Reference>
<Reference ReferenceType="HasComponent">ns=2;i=27</Reference>
<Reference ReferenceType="HasComponent">ns=2;i=28</Reference>
<Reference ReferenceType="Organizes" IsForward="false">ns=1;i=5006</Reference>
</References>
</UAObject>
<UAObject NodeId="ns=2;i=25" BrowseName="InstanceHierarchies" ParentNodeId="ns=2;i=22">
<DisplayName>InstanceHierarchies</DisplayName>
<References>
<Reference ReferenceType="HasComponent" IsForward="false">ns=2;i=22</Reference>
<Reference ReferenceType="HasTypeDefinition">i=61</Reference>
<Reference ReferenceType="HasComponent">ns=2;i=1</Reference>
</References>
</UAObject>
<UAObject NodeId="ns=2;i=26" BrowseName="SystemUnitClassLibs" ParentNodeId="ns=2;i=22">
<DisplayName>SystemUnitClassLibs</DisplayName>
<References>
<Reference ReferenceType="HasComponent" IsForward="false">ns=2;i=22</Reference>
<Reference ReferenceType="HasTypeDefinition">i=61</Reference>
<Reference ReferenceType="HasComponent">ns=2;i=6</Reference>
</References>
</UAObject>
<UAObject NodeId="ns=2;i=27" BrowseName="RoleClassLibs" ParentNodeId="ns=2;i=22">
<DisplayName>RoleClassLibs</DisplayName>
<References>
<Reference ReferenceType="HasComponent" IsForward="false">ns=2;i=22</Reference>
<Reference ReferenceType="HasTypeDefinition">i=61</Reference>
<Reference ReferenceType="HasComponent">ns=2;i=4</Reference>
</References>
</UAObject>
<UAObject NodeId="ns=2;i=28" BrowseName="InterfaceClassLibs" ParentNodeId="ns=2;i=22">
<DisplayName>InterfaceClassLibs</DisplayName>
<References>
<Reference ReferenceType="HasComponent" IsForward="false">ns=2;i=22</Reference>
<Reference ReferenceType="HasTypeDefinition">i=61</Reference>
<Reference ReferenceType="HasComponent">ns=2;i=2</Reference>
</References>
</UAObject>
<UAVariable NodeId="ns=2;i=3" BrowseName="Version" ParentNodeId="ns=2;i=2" DataType="String">
<DisplayName>Version</DisplayName>
<References>
<Reference ReferenceType="HasTypeDefinition">i=68</Reference>
</References>
<Value>
<String xmlns="http://opcfoundation.org/UA/2008/02/Types.xsd">1.0</String>
</Value>
</UAVariable>
<UAVariable NodeId="ns=2;i=5" BrowseName="Version" ParentNodeId="ns=2;i=4" DataType="String">
<DisplayName>Version</DisplayName>
<References>
<Reference ReferenceType="HasTypeDefinition">i=68</Reference>
</References>
<Value>
<String xmlns="http://opcfoundation.org/UA/2008/02/Types.xsd">1.0</String>
</Value>
</UAVariable>
<UAVariable NodeId="ns=2;i=7" BrowseName="Version" ParentNodeId="ns=2;i=6" DataType="String">
<DisplayName>Version</DisplayName>
<References>
<Reference ReferenceType="HasTypeDefinition">i=68</Reference>
</References>
<Value>
<String xmlns="http://opcfoundation.org/UA/2008/02/Types.xsd">1.0</String>
</Value>
</UAVariable>
<UAVariable NodeId="ns=2;i=9" BrowseName="ID" ParentNodeId="ns=2;i=8" DataType="String">
<DisplayName>ID</DisplayName>
<References>
<Reference ReferenceType="HasTypeDefinition">i=68</Reference>
</References>
<Value>
<String xmlns="http://opcfoundation.org/UA/2008/02/Types.xsd">{788eb291-f103-4fdc-aba0-4893b599f556}</String>
</Value>
</UAVariable>
<UAVariable NodeId="ns=2;i=11" BrowseName="ID" ParentNodeId="ns=2;i=10" DataType="String">
<DisplayName>ID</DisplayName>
<References>
<Reference ReferenceType="HasTypeDefinition">i=68</Reference>
</References>
<Value>
<String xmlns="http://opcfoundation.org/UA/2008/02/Types.xsd">{19dcf818-4716-4fc1-a85f-28e1938c4c3a}</String>
</Value>
</UAVariable>
<UAVariable NodeId="ns=2;i=12" BrowseName="New Attribute" ParentNodeId="ns=2;i=8" DataType="String" AccessLevel="15" UserAccessLevel="15">
<DisplayName>New Attribute</DisplayName>
<Description></Description>
<References>
<Reference ReferenceType="HasTypeDefinition">i=63</Reference>
<Reference ReferenceType="HasComponent" IsForward="false">ns=2;i=8</Reference>
</References>
<Value>
<String xmlns="http://opcfoundation.org/UA/2008/02/Types.xsd" />
</Value>
</UAVariable>
<UAVariable NodeId="ns=2;i=14" BrowseName="ID" ParentNodeId="ns=2;i=13" DataType="String">
<DisplayName>ID</DisplayName>
<References>
<Reference ReferenceType="HasTypeDefinition">i=68</Reference>
</References>
<Value>
<String xmlns="http://opcfoundation.org/UA/2008/02/Types.xsd">{5f535d4c-dd46-4c1c-898c-4e58419048b6}</String>
</Value>
</UAVariable>
<UAVariable NodeId="ns=2;i=16" BrowseName="ID" ParentNodeId="ns=2;i=15" DataType="String">
<DisplayName>ID</DisplayName>
<References>
<Reference ReferenceType="HasTypeDefinition">i=68</Reference>
</References>
<Value>
<String xmlns="http://opcfoundation.org/UA/2008/02/Types.xsd">50e10905-ac18-413c-afab-ad8ed1569fff</String>
</Value>
</UAVariable>
<UAVariable NodeId="ns=2;i=21" BrowseName="ID" ParentNodeId="ns=2;i=20" DataType="String">
<DisplayName>ID</DisplayName>
<References>
<Reference ReferenceType="HasTypeDefinition">i=68</Reference>
</References>
<Value>
<String xmlns="http://opcfoundation.org/UA/2008/02/Types.xsd">dd0e0dfe-10f8-4068-845b-9c29699ac79b</String>
</Value>
</UAVariable>
<UAVariable NodeId="ns=2;i=23" BrowseName="FileName" ParentNodeId="ns=2;i=22" DataType="String">
<DisplayName>FileName</DisplayName>
<References>
<Reference ReferenceType="HasTypeDefinition">i=68</Reference>
</References>
<Value>
<String xmlns="http://opcfoundation.org/UA/2008/02/Types.xsd">Topology.aml</String>
</Value>
</UAVariable>
<UAVariable NodeId="ns=2;i=24" BrowseName="CAEXSchemaVersion" ParentNodeId="ns=2;i=22" DataType="String">
<DisplayName>CAEXSchemaVersion</DisplayName>
<References>
<Reference ReferenceType="HasTypeDefinition">i=68</Reference>
</References>
<Value>
<String xmlns="http://opcfoundation.org/UA/2008/02/Types.xsd">2.15</String>
</Value>
</UAVariable>
<UAObjectType NodeId="ns=2;i=17" BrowseName="Energy">
<DisplayName>Energy</DisplayName>
<Description></Description>
<References>
<Reference ReferenceType="ns=1;i=4002" IsForward="false">ns=2;i=2</Reference>
<Reference ReferenceType="HasSubtype" IsForward="false">ns=1;i=1001</Reference>
</References>
</UAObjectType>
<UAObjectType NodeId="ns=2;i=18" BrowseName="Tool">
<DisplayName>Tool</DisplayName>
<Description></Description>
<References>
<Reference ReferenceType="ns=1;i=4002" IsForward="false">ns=2;i=4</Reference>
<Reference ReferenceType="HasSubtype" IsForward="false">ns=1;i=1001</Reference>
</References>
</UAObjectType>
<UAObjectType NodeId="ns=2;i=19" BrowseName="ElectricScrewdriver">
<DisplayName>ElectricScrewdriver</DisplayName>
<Description></Description>
<References>
<Reference ReferenceType="ns=1;i=4002" IsForward="false">ns=2;i=6</Reference>
<Reference ReferenceType="HasSubtype" IsForward="false">ns=1;i=1001</Reference>
<Reference ReferenceType="ns=1;i=4001">ns=2;i=18</Reference>
<Reference ReferenceType="HasComponent">ns=2;i=20</Reference>
</References>
</UAObjectType>
</UANodeSet>