Vorhandene Konfiguration öffnen und aktivieren
Um eine vorhandene TwinCAT-Konfiguration zu aktivieren, werden drei Schritte ausgeführt: Eine DTE-Instanz wird erstellt, die Solution wird geöffnet, und anschließend werden ActivateConfiguration und StartRestartTwinCAT auf dem ITcSysManager-Objekt aufgerufen.
Das ITcSysManager-Objekt wird aus dem ersten Projekt der Solution bezogen. Die ProgID bestimmt, welche Visual-Studio-Version gestartet wird. Dem Projekt müssen Verweise auf „Microsoft Developer Environment" und „Beckhoff TwinCAT XAE Base" hinzugefügt sein.
Visual Studio Version | ProgID |
|---|---|
Visual Studio 2022 |
|
Visual Studio 2019 |
|
Visual Studio 2017 |
|
TcXaeShell 2022 |
|
C#-Beispiel
Type t = System.Type.GetTypeFromProgID("VisualStudio.DTE.17.0");
EnvDTE.DTE dte = (EnvDTE.DTE)System.Activator.CreateInstance(t);
dte.SuppressUI = false;
dte.MainWindow.Visible = true;
EnvDTE.Solution sol = dte.Solution;
sol.Open(@"C:\Temp\SolutionFolder\MySolution1\MySolution1.sln");
EnvDTE.Project pro = sol.Projects.Item(1);
ITcSysManager sysMan = pro.Object;
sysMan.ActivateConfiguration();
sysMan.StartRestartTwinCAT();
PowerShell-Beispiel
$prjDir = "C:\tmp\TestSolution\"
$prjName = "TestSolution.sln"
$prjPath = $prjDir += $prjName
$dte = new-object -com VisualStudio.DTE.17.0
$dte.SuppressUI = $false
$dte.MainWindow.Visible = $true
$sln = $dte.Solution
$sln.Open($prjPath)
$project = $sln.Projects.Item(1)
$systemManager = $project.Object
$systemManager.ActivateConfiguration()
$systemManager.StartRestartTwinCAT()