Standalone System Manager einrichten
Der Standalone System Manager ermöglicht das Automatisieren von TwinCAT-Projekten ohne Visual Studio. Statt über die DTE wird er direkt per COM über die ProgID TcSysManagerRM instanziiert. Das Einstiegsobjekt ITcSysManagerRM erzeugt anschließend über CreateSysManager15 ein ITcSysManager-Objekt. Dieser Ansatz eignet sich für Skripte, Dienste und CI/CD-Pipelines, die ein TwinCAT-Projekt ohne vollständiges XAE bearbeiten sollen.
Voraussetzungen
- TwinCAT XAE ist installiert.
- Der Aufruf erfolgt in einem STA-Thread.
- Für den Service-Betrieb unter dem Konto
LocalSystemsind die Registry-Schlüssel für den COM-Zugriff konfiguriert.
C# Beispiel
Über Activator.CreateInstance wird das ITcSysManagerRM-Objekt anhand der ProgID erzeugt. CreateSysManager15 liefert das ITcSysManager-Objekt, über das die Konfiguration geöffnet und bearbeitet wird.
using TCatSysManagerLib;
// Instantiate standalone SysMan
var sysManagerRM = Activator.CreateInstance(
Type.GetTypeFromProgID("TcSysManagerRM", throwOnError: true)!)
as ITcSysManagerRM;
// Create ITcSysManager object
ITcSysManager sysManager = sysManagerRM.CreateSysManager15();
// Open solution and work
sysManager.OpenConfiguration(@"C:\Projects\MyProject\MyProject.tsproj");
PowerShell Beispiel
In PowerShell wird das Objekt über New-Object -ComObject mit derselben ProgID erzeugt.
$rm = new-object -com TcSysManagerRM
$sysManager = $rm.CreateSysManager15()
$sysManager.OpenConfiguration("C:\Projects\MyProject\MyProject.tsproj")