The project demonstrates how relations between processes, products, and resources (PPR) can be extracted from AML files. The connections are extracted in the form of triples (product,process,resource).
- xPPU.aml - AML file for the extended Pick and Place Unit, includes products, processes, and resources
- Queries - xQueries for extracting PPR-connections
- QueryOutput - expected query outputs
- CSV - query outputs transformed to more readable csv files
- src/converter.py - convert xml query outputs to csv
Visualization: AutomationML Software Filter for software to get the latest release
Software:
- BaseX 9.4.6+ for running xQueries
- Python 3.6+ recommended for converting query results to CSV
AutomationML Documentation:
AutomationML Homepage
Recommended articles:
Whitepaper AutomationML Edition 2.1 2018
The extended Pick and Place Unit (xPPU) works as a demonstrator for complex industrial plants. It stamps and sorts different kinds of workpieces. For every workpiece different processes require different resources.
All products, processes, and resources are stored in the InstanceHierarchy of the xPPU.aml file as InternalElements. The AutomationML Editor helps to get familiar with the structure of the xPPU. The connections between products, processes, and resources are modeled with Connectors, which are specified in the RoleClassLib. For instance, the connector "Connector_Product_Proces_instance_1" connects products to processes. It is possible to see all connections by activationg the XML-Viewer (PlugIns/XMLViewer/activate) The InternalLinks from line 28-31 show one connection of the BlackPlasticWP. Every Connection consists of a Name, a RefPartnerSideA, and a RefPartnerSideB. RefPartnerSideA is a unique ID, which identifies the InternalElement. The screenshot shows the connections of the BlackPlasticWP and therefore the ID of RefPartnerSideB is always the ID of the BlackPlasticWP.
The queries extract connections by looping over the products, processes, and resources and collect all InternalLinks. For better usability Name and ID are extracted. The output can only be structured as an xml file and therefore has to be preprocessed afterwards. The Queries can be run in BaseX or any other Query tool.
src/converter.py converts the output from BaseX to csv for better readability
Please use the following bibtex entry:
@incollection{vog2021aml,
address = {Berlin},
author = {Vogel-Heuser, Birgit and Ocker, Felix and Gehlen, Lukas},
booktitle = {AutomationML – The Industrial Cookbook},
doi = {https://doi.org/10.1515/9783110745979},
editor = {Drath, Rainer},
isbn = {978-3-11-074592-4},
publisher = {De Gruyter Oldenbourg},
title = {{Concept to refine and computationally evaluate PPR information in AutomationML}},
year = {2021}
}