This repository contains the Model.xml files for a generic Hardware-Agnostic OPC UA Skill Model.
Further details on the Model.xml format can be found here: https://opcua.rocks/custom-information-models/
The model is based on the publication:
S. Profanter, A. Breitkreuz, M. Rickert, and A. Knoll, "A Hardware-Agnostic OPC UA Skill Model for Robot Manipulators and Tools," in Proceedings of the IEEE International Conference on Emerging Technologies And Factory Automation (ETFA), Zaragoza, Spain, Sep. 2019
The full-text PDF is available here: https://mediatum.ub.tum.de/1507596
There's currently an official VDMA and OPC Foundation joint working group for a skill concept which can be used inside OPC UA.
Service-Oriented Architectures and real-time Control (SOArc)
We as fortiss are involved in that joint working group with the goal to publish an easy-to-use skill model for any system components.
This repository is a first draft of a possible skill model, which acts as a basis for further improvement inside the working group.
Therefore we are happy for any feedback. Just create a new issue inside this repository, or contact me directly: https://www.fortiss.org/en/about-us/people/stefan-profanter/
The master
branch only contains the *Model.xml
files, not the compiled NodeSet2.xml files.
On every push to a branch, an automatic build is executed and the resultin model files are pushed back to the branch 'master-published'.
Have a look at the resulting files here: https://github.com/Pro/opcua-device-skills/tree/master-published/Published
If you like to manually build the files on your machine, follow these steps: (as executed by the automatic build in the .drone.yml file)
This build process is using a pre-built docker container based on the official UA-ModelCompiler source code. There's currently an open pull-request (OPCFoundation/UA-ModelCompiler#36) to add the necessary docker files to the official repository. In the meantime you can use my docker container: sailavid/ua-modelcompiler.
- Install docker on your machine
- Clone this repository
cd opcua-device-skills
- Then run the docker container for
fortiss_di
:docker run \ --mount type=bind,source=$(pwd),target=/model/src \ --entrypoint "/app/PublishModel.sh" \ sailavid/ua-modelcompiler \ /model/src/fortiss_di/fortissDiModel fortiss_di /model/src/Published
- Then
fortiss_robotics
:docker run \ --mount type=bind,source=$(pwd),target=/model/src \ --entrypoint "/app/PublishModel.sh" \ sailavid/ua-modelcompiler \ /model/src/fortiss_robotics/fortissRoboticsModel fortiss_robotics /model/src/Published
- And
kuka_iiwa
:docker run \ --mount type=bind,source=$(pwd),target=/model/src \ --entrypoint "/app/PublishModel.sh" \ sailavid/ua-modelcompiler \ /model/src/kuka_iiwa/kukaIiwaModel kuka_iiwa /model/src/Published
This will create all the compiled NodeSet2.xml files inside the Published
folder.
With this command you can also compiler your own model files, just adapt the last line accordingly.