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.

Why?

The project is initiated by a dedicated team with 15+ years of experience in automation projects and virtual commissioning across automotive, logistics and other industries. Having worked extensively with various tools and vendor-locked solutions, it is now the time to establish an open framework for virtual commissioning.

The key objectives are:

  • Developing and using a state-of-the-art open virtual commissioning solution
  • Collaborating and using knowledge-sharing culture
  • Avoiding vendor lock and boosting your automation workflow

Concept

The Open Commissioning framework is built on three core technologies:

  • Unity Package: Geometry, kinematics and product transport are replicated in a Unity scene with suitable sensors and actuators in order to reproduce the mechanic behaviour of a real machine.
  • TwinCAT Library: 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 can run on isolated cores with 1 ms cycle time and provides a stable environment for Soft-/Hardware-in-the-loop simulations.
  • Assistant Application: The Assistant application is used as an engineering tool and features various functions such as project generation and configuration scanning. It also handles communication between TwinCAT and third-party interfaces and serves as a bridge for data connectivity, which can be extended via plugins.

OS_System OS_System

Note

More detailed information can be found in the corresponding repositories.

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

  • Public Discussions:
    For general questions, feedback, or public topics, feel free to start a discussion in the Discussions section

  • Personal Support & Project Enquiries:
    For personal assistance, support, or project-related enquiries, please mail to opencommissioning@spiratec.com

Pinned Loading

  1. OC_TwinCAT_Core OC_TwinCAT_Core Public

    Open Commissioning TwinCAT Library

    17 3

  2. OC_Unity_Core OC_Unity_Core Public

    Open Commissioning Unity Package

    C# 16 3

  3. OC_Assistant OC_Assistant Public

    Open Commissioning Assistant

    C# 16 3

Repositories

Showing 8 of 8 repositories
  • OC_TwinCAT_Core Public

    Open Commissioning TwinCAT Library

    OpenCommissioning/OC_TwinCAT_Core’s past year of commit activity
    17 BSD-3-Clause 3 0 0 Updated Dec 20, 2024
  • OC_Unity_Core Public

    Open Commissioning Unity Package

    OpenCommissioning/OC_Unity_Core’s past year of commit activity
    C# 16 BSD-3-Clause 3 0 0 Updated Dec 19, 2024
  • OC_Assistant Public

    Open Commissioning Assistant

    OpenCommissioning/OC_Assistant’s past year of commit activity
    C# 16 BSD-3-Clause 3 0 0 Updated Dec 11, 2024
  • .github Public
    OpenCommissioning/.github’s past year of commit activity
    1 MIT 0 0 0 Updated Nov 26, 2024
  • OpenCommissioning/OC_Assistant_Theme’s past year of commit activity
    C# 0 BSD-3-Clause 0 0 0 Updated Nov 22, 2024
  • OpenCommissioning/OC_Assistant_Sdk’s past year of commit activity
    C# 1 BSD-3-Clause 0 0 0 Updated Nov 21, 2024
  • OpenCommissioning/OC_TwinCAT_EtherCAT’s past year of commit activity
    0 BSD-3-Clause 0 0 0 Updated Nov 20, 2024
  • OpenCommissioning/OC_Assistant_PlcSimAdvanced’s past year of commit activity
    C# 1 BSD-3-Clause 0 0 0 Updated Nov 20, 2024

People

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

Top languages

Loading…