Konzept

Immer mehr Funktionen von Maschinen und Anlagen werden in Software umgesetzt. Diesem Umstand Rechnung tragend, arbeiten heutzutage Teams von mehreren Programmierern an der Erstellung des Steuerungscodes bzw. im weiteren Verlauf, an der Inbetriebnahme dieser Maschinen und Anlagen. Dies bringt vor allem während der Inbetriebnahme mehrere Herausforderungen mit sich:

TwinCAT Multiuser wurde entwickelt, um diesen Herausforderungen zu begegnen. Dabei handelt es sich um ein „lokales“ Source Control System auf dem Zielsystem, dessen Handhabung vollständig in den bereits existierenden Workflow integriert wurde. Somit ist kein tiefes Wissen um die genaue Funktionsweise von Source Control Systemen notwendig, um TwinCAT Multiuser zu verwenden.

TwinCAT Multiuser steht ab der Version TC3.1.4024.0 zur Verfügung. In dieser Version konzentriert sich TwinCAT Multiuser auf die gemeinsame Arbeit von mehreren Programmierern an jeweils einem SPS-Projekt. Sind mehrere SPS-Projekte in einem TwinCAT-Projekt integriert, können Sie für jedes Projekt separat die Multiuser-Funktionalität einschalten. Für jedes dieser Projekte werden dann automatisch eigene Repositories, sowohl lokal als auch auf dem Zielsystem, angelegt.
Seit der Version 3.1.4024.4.0 können mit der Multiuser-Funktion auch komplette TwinCAT-Projekte verwaltet werden. Es kann nun in den Einstellungen gewählt werden, ob komplette TwinCAT-Projekte oder nur einzelne SPS-Projekte von der Multiuser-Funktion verwaltet werden.

Das folgende Schaubild soll das Konzept verdeutlichen:

Konzept 1:

Als „Source Control Server“ während der Inbetriebnahme wird das Zielsystem gewählt, da eine Verbindung zum Zielsystem ohnehin erforderlich ist, um ein Steuerungsprogramm auf das Zielsystem zu spielen. Somit wird keine zusätzliche Infrastruktur benötigt.

Ziel der Multiuser-Integration ist zudem, dass kein spezifisches Source Control Wissen erforderlich ist. Die Source Control Funktionalität ist im Standardworkflow integriert. So erfolgt z. B. eine Übermittlung des aktuellen Projektstandes automatisiert beim Download oder beim Online-Change eines Projekts auf das Zielsystem, ohne dass dies extra angestoßen werden muss. Auch die Historie wird automatisiert erstellt. So werden alle Änderungen, inklusive Anwendername, Zeitstempel und Änderung, festgehalten. Bei Bedarf können Sie auch eine Abfrage nach einem Kommentar bei jeder Änderungsübermittlung einstellen.

Damit die so entstandene Historie auch nach der Inbetriebnahme noch verfügbar ist, wurde ein Source Control System integriert, welches mehrere Repositories erlaubt und auch die Historie vollständig in alle Repositories übernimmt. Somit ist es nach erfolgreicher Inbetriebnahme möglich, den aktiven Projektstand der Maschine / Anlage inklusive der Rückverfolgung aller erfolgten Schritte während der Inbetriebnahme in ein „Entwicklungs-Repository“ zu übermitteln. Letztes erfolgt mit den Bord-Mitteln des Source Control Systems.

Das der Multiuser-Funktionalität zugrundeliegende Source Control System ist Git.

Hinweis

Die TwinCAT 3 Multiuser-Funktion verwendet Git

Git selbst ist dabei separat und wird optional mit installiert. Ist eine Standard-Git-Installation auf einem Rechner vorhanden, kann diese für die TwinCAT 3 Multiuser-Funktion verwendet werden (siehe Referenz Server-Einstellungen).

Der TwinCAT 3 Installer ermöglicht Kunden, die keine Git-Installation auf dem Rechner haben, ein MinGit zu installieren, das nur zur Verwendung aus TwinCAT 3 Multiuser gedacht ist und deshalb auch nicht in die Path-Umgebungsvariable eingetragen wird.

Abgrenzung zur Source Control Integration von TwinCAT:

Die generelle Anbindung von TwinCAT an Source Control Systeme bleibt von der Multiuser-Funktionalität unberührt und kann unabhängig davon erfolgen. Durch die Verwendung des Standard-Interface der in TwinCAT integrierten Microsoft Visual Studio Shell stehen hierzu eine große Anzahl an Source Control Systemen zur Verfügung. Zudem können alle Aspekte eines TwinCAT-Projektes von dieser Integration gehandhabt werden.

Die TwinCAT Multiuser-Funktionalität basiert auf dem Standard-Git. Ziel dieser Funktionalität ist, wie bereits beschrieben, während der Inbetriebnahmephase die Möglichkeit zu schaffen, dass ein Team von mehreren Programmierern gemeinsam an einem Steuerungsprogramm arbeiten kann, ohne dass dafür eine spezielle Infrastruktur zur Verfügung stehen muss bzw. bei den Programmierern spezielles Wissen über Source Control Systeme vorhanden sein muss.

Wenngleich es also möglich ist, für beide Funktionalitäten verschiedene Source Control Systeme zu verwenden, erreicht man die vollen Möglichkeiten nur, wenn beide Funktionalitäten auf Git basieren. Dies bezieht sich auf die Übernahme der Historie während der Inbetriebnahme in das „Haupt“-Source Control System.