Open Source

AutomationML Files

The AutomationML (AML) language is a solution for data exchange focusing on the domain of automation engineering. AutomationML uses an XML schema-based data format designed for the vendor independent exchange of plant engineering information. An AutomationML file is basically divided in four main parts: 

  1. Role Class Library, where the roles/types are defined; 
  2. Interface Class Library, where interfaces to link elements are defined; 
  3. System Unit Class Library where user-defined classes are set;
  4. Instance Hierarchy, where instances of System Unit Classes are created. 

See our deliverables D3.3 - Assessment of the Current Semantic Model Technologies and D3.7 - Common Semantic Model for more details on how AutomationML is used in the openMOS project. 

Further information:

The AutomationML Editor can be downloaded here.

Official website:


AutomationML definition file for the openMOS conveyor based demonstration system build by Masmec. This defines a number of workstations connected with a conveyor system. 


AutomationML definition file for the openMOS robotic assembly and joining demonstrators build by Introsys. This AML file defines the resources, skills and products used in this demonstration system.

Loughborough University

AutomationML definition file for the larger scale openMOS simulation system build by Loughborough University. This AML file defines a number robotic workstations connected by a mobile robot transport system to build to assembly a large product mix. 

VDMA OPC-UA Demonstrator

AutomationML definition file for the VDMA OPC-UA demonstration system at Automatica 2018.

GitHub Repositories

View all openMOS repositories here: openMOS GitHub Repositories
Open Plug-and-Produce Manufacturing Service Bus


Plug-and-produce is an information intensive process that requires from both the devices being plugged and the system a structured information exchange about the operational context and associated constraints. This service bus implementation will enable the seamless registration of the manufacturing components and support a cloud based modular deployment for the cyber representation of the same.


  • Device discovery and registration
  • OPC-UA and DDS (experimental) support
  • openMOS Semantic Model (AML) browsing
  • Skill-based execution handling
  • Cloud interaction via webservices

Device Adapter

openMOS Workshop using Java:

This repository contains the sources for the OPC UA Workshop using Java based Milo. It contains the code for machine and device.

See also the WIKI:

OPC-UA Server Information Model out of AML device description file:

The AMLParser class creates an OPC-UA server namespace based on AML file (current version is v13) this companion spec . For every skill defined in aml file we create a method node in the server to trigger the corresponding low level functions in underlying devices (see addSkill()). Currently, the mapping between opcua/aml server and corresponding low level functions are done via string metching in addSkill(), where based on the skill name the corresponding *SkillMethod is instantiated. org.fortiss.uaserver.device.lowlevel package contains classes for clients, that are created by adapter to communicate with the device's servers, subscription classes for each device and skills classes that map skill methods added to the opcua/aml server in AMLParser.addSkill(). ClientRunner should create a client for connecting to each of the underlying servers.

To start the server execute org.fortiss.uaserver.device.DeviceUaServer

Get the code here: Device Adapter Code
Human-Machine Interface Source Code
Cloud Source Code
Get the code here: Cloud Source Code