Skip to content
@OpenCommissioning

Open Commissioning

Welcome to Open Commissioning

OC_Demo.png

Open Commissioning is an open source framework for virtual commissioning. The goal is to provide an open platform for testing and commissioning of PLC code using a virtual model.

The project is based on Unity and TwinCAT. Unity provides a modern 3D Editor with a physics engine to create an interactive 3D environment and physics simulation. TwinCAT is used as a simulation unit that is able to emulate industrial bus systems and behaviour models of actuators and sensors close to real time. These two platforms are connected to form the model for virtual commissioning

On the basis of this technology chain, it is possible to realize a Soft-/Hardware-in-the-loop simulation with a PLC, focusing on achieving no code difference between virtual and real commissioning.

Here are the reasons and goals of this project:

  • Develop and use a state-of-the-art open virtual commissioning solution
  • Collaborate and use knowledge-sharing culture
  • Avoid vendor lock and boost your automation workflow

Description

1. Packages

The Open Commissioning has three main parts:

  1. Unity Package: Scripts, Tools and Assets for creating virtual models and an environment within the Unity Editor.
  2. TwinCAT Library: Pre-built behavior models for actors, sensors and various industrial devices.
  3. Assistant: Application that orchestrates the parts of the model running in Unity and TwinCAT, and provides an interface for connecting the model to external industrial systems.

Note

More detailed information about those parts can be found in their repositories

2. Concept

The virtual commissioning project consists of the following parts:

  • Unity Project: The geometry, kinematics and material flow of the machine are replicated in a unity scene and parameterised with suitable sensors and actuators in order to reproduce the behaviour of the real machine.
  • TwinCAT PLC Project: All actuators, sensors and other industrial devices are listed in the TwinCAT project according to the hierarchical structure from the Unity Scene and linked to control signals. The TwinCAT Project will run on isolated cores with 1 ms cycle time and provides a stable environment for Soft-/Hardware-in-the-loop simulations.
  • Assistant: The Assistant application is used as an engineering tool and features various functions such as project generation, configuration scanning, etc., which can be extended using a SDK. In addition, the Assistant handles communication between TwinCAT, Unity and third-party interfaces and serves as a bridge for data connectivity.

OS_System OS_System

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

We extend our gratitude to all our numerous contributors who create plugins, assist with issues and pull requests, and respond to questions in GitHub Discussions.

Check our contribution guide.

Open Commissioning is a community-driven project, and your contributions continually improve it.

Note

Further information about contributing can be found in the corresponding repositories

Credits for third-party software components and developers 🤝

  1. Used in Unity Package:

    • Beckhoff ADS - Beckhoff protocol to communicate with TwinCAT devices
    • NaughtyAttributes - NaughtyAttributes is an extension for the Unity Inspector
    • UniTask - Provides an efficient allocation free async/await integration for Unity
    • ookii-dialogs-winforms - A class library for Windows Forms applications providing several common dialogs
    • ShellFileDialogs - File Open, File Save and Folder Browser dialogs
  2. Used in TwinCAT Library:

    • Beckhoff ADS - Beckhoff protocol to communicate with TwinCAT devices
    • TcUnit - TwinCAT unit testing framework
  3. Used in Assistant:

    • TcPnScanner - Tool written in C#/.NET, that scans for Profinet packets on a network interface
    • Beckhoff ADS - Beckhoff protocol to communicate with TwinCAT devices
    • TCatSysManagerLib - TwinCAT System Manager Library

License

Open Commissioning Project is distributed under the BSD 3-Clause License.

Note

This package contains third-party software components that are subject to the licence(s) specified in their repositories

Initiative

This open source project is initiated and supported by SpiraTec AG.

SpiraTec AG is a globally active company for industrial engineering and high-tech solutions for digital transformation in the process industry, specializing in engineering, robotics, automation, and industrial IT systems. With a team across 40+ locations, we deliver end-to-end solutions, from consulting and system engineering to commissioning and optimization.

Contact

For help and support, please contact us in GitHub Discussions or by opencommissioning@spiratec.com.

Pinned Loading

  1. OC_TwinCAT_Core OC_TwinCAT_Core Public

    Open Commissioning TwinCAT Library

    15 3

  2. OC_Unity_Core OC_Unity_Core Public

    Open Commissioning Unity Package

    C# 12 3

  3. OC_Assistant OC_Assistant Public

    Open Commissioning Assistant

    C# 14 3

Repositories

Showing 5 of 5 repositories
  • OC_Assistant Public

    Open Commissioning Assistant

    OpenCommissioning/OC_Assistant’s past year of commit activity
    C# 14 BSD-3-Clause 3 0 0 Updated Nov 18, 2024
  • OpenCommissioning/OC_Assistant_Sdk’s past year of commit activity
    C# 0 BSD-3-Clause 0 0 0 Updated Nov 18, 2024
  • OC_Unity_Core Public

    Open Commissioning Unity Package

    OpenCommissioning/OC_Unity_Core’s past year of commit activity
    C# 12 BSD-3-Clause 3 0 0 Updated Nov 18, 2024
  • OC_TwinCAT_Core Public

    Open Commissioning TwinCAT Library

    OpenCommissioning/OC_TwinCAT_Core’s past year of commit activity
    15 BSD-3-Clause 3 0 0 Updated Nov 14, 2024
  • .github Public
    OpenCommissioning/.github’s past year of commit activity
    1 MIT 0 0 0 Updated Nov 11, 2024

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

C#

Most used topics

Loading…