Setting TwinCAT target platform
Dieser Artikel beschreibt, wie die TwinCAT Zielplattform über Automation Interface Code eingestellt wird. Die Zielplattform bestimmt, für welches Ziel die TwinCAT-Konfiguration kompiliert werden soll, z. B. TwinCAT x86 oder TwinCAT x64, und wird normalerweise von einer TwinCAT XAE Toolbar in Visual Studio aus eingestellt.
Der folgende Code-Ausschnitt geht davon aus, dass Sie bereits über eine DTE-Instanz verfügen, die zu einer TwinCAT-Konfiguration verbindet. Er überprüft die aktuell eingestellte Zielplattform und stellt sie zu einer anderen Plattform um.
Code-Ausschnitt (C#):
ITcSysManager systemManager = pro.Object;
ITcSysManager7 sysManPlatform = (ITcSysManager7) systemManager;
ITcConfigManager configManager = (ITcConfigManager) sysManPlatform.ConfigurationManager;
if (configManager.ActiveTargetPlatform == "TwinCAT RT (x86)")
configManager.ActiveTargetPlatform = "TwinCAT RT (x64)";
else
configManager.ActiveTargetPlatform = "TwinCAT RT (x86)";
Code-Ausschnitt (Powershell):
$configManager = $systemManager.ConfigurationManager
if ($configManager.ActiveTargetPlatform -eq "TwinCAT RT (x86)"){
$configManager.ActiveTargetPlatform = "TwinCAT RT (x64)"} else {$configManager.ActiveTargetPlatform = "TwinCAT RT (x86)"}
Hinweis | |
Zielhardwareplattform oder Zielgerät mit TwinCAT-Konfiguration ändern? Dieser Artikel beschreibt, wie die Zielhardwareplattform geändert werden kann. Wenn Sie das tatsächliche Zielgerät ändern möchten, auf das die TwinCAT-Konfiguration geschrieben werden soll, verwenden Sie bitte die Methode ITcSysManager::SetTargetNetId(). |
Der folgende Code-Ausschnitt zeigt, wie Sie Zugriff auf den Visual Studio Configuration Manager erhalten und einzelne TwinCAT-Teilprojekte (SPS, C++ …) für den Build-Prozess aktivieren oder deaktivieren. Der Ausschnitt geht davon aus, dass das derzeit geöffnete TwinCAT-Projekt als „TwinCAT-Projekt1” bezeichnet wird und dieses ein SPS-Projekt „Untitled1” enthält. Er deaktiviert anschließend das SPS-Projekt für den Build-Prozess.
Code-Ausschnitt (C#):
EnvDTE.SolutionContexts solutionContexts = solution.SolutionBuild.ActiveConfiguration.SolutionContexts;
foreach (EnvDTE.SolutionContext solutionContext in solutionContexts)
{
switch(solutionContext.ProjectName)
{
case "TwinCAT Project13\\Untitled1\\Untitled1.plcproj":
solutionContext.ShouldBuild = false;
break;
}
}
Code-Ausschnitt (Powershell):
$solutionContexts = $sln.SolutionBuild.ActiveConfiguration.SolutionContexts
foreach ($solutionContext in $solutionContexts)
{
if($solutionContext.ProjectName -eq "TestSolution\\Untitled1\\Untitled1.plcproj")
{
$solutionContext.ShouldBuild = $false
}
}