Statische Code-Analyse ausführen
Ab TwinCAT Build 4023.103 lässt sich die statische Code-Analyse über das Automation Interface starten. Das ermöglicht die Integration in CI/CD-Pipelines unabhängig davon, ob die Analyse im Projekt aktiviert ist.
Die Analyse wird über ITcPlcIECProject3.RunStaticAnalysis aufgerufen. Der boolesche Parameter bCompile steuert, ob das Projekt vor der Analyse neu kompiliert wird. Fehler und Warnungen erscheinen in der Error-List und im Output-Fenster von Visual Studio. Zusätzlich steht ITcPlcIECProject2.CheckAllObjects zur Verfügung, das eine vollständige Compile-und-Check-Routine ausführt und unabhängig von der Static-Analysis-Konfiguration des Projekts ist.
Voraussetzungen
- TwinCAT XAE ist installiert und gestartet.
- Eine DTE-Verbindung zur Zielinstanz ist aktiv.
-
ITcSysManagerist in einem STA-Thread initialisiert. - Ein PLC-Projekt ist in der Solution vorhanden.
- TwinCAT Build 4023.103 oder neuer.
C# Beispiel
Das PLC-Projekt-Tree-Item wird per Cast auf ITcPlcIECProject3 umgewandelt. Mit RunStaticAnalysis(true) wird zuerst kompiliert, mit RunStaticAnalysis(false) wird der Build übersprungen und nur die Analyse durchgeführt.
ITcSmTreeItem plcProject = sysManager.LookupTreeItem(@"TIPC^PLC1^PLC1 Project");
// Cast to ITcPlcIECProject3 for RunStaticAnalysis
ITcPlcIECProject3 plcProject3 = (ITcPlcIECProject3)plcProject;
// true = compile first; false = analysis only, no build
plcProject3.RunStaticAnalysis(true);
// Check all objects (compile + check, available via ITcPlcIECProject2)
ITcPlcIECProject2 plcProject2 = (ITcPlcIECProject2)plcProject;
plcProject2.CheckAllObjects();
PowerShell Beispiel
In PowerShell steht RunStaticAnalysis über Late Binding direkt auf dem Tree-Item zur Verfügung, ohne expliziten Cast.
$plcProject = $sysManager.LookupTreeItem("TIPC^PLC1^PLC1 Project")
# Call RunStaticAnalysis directly (late binding)
$plcProject.RunStaticAnalysis($true)
![]() | Das PowerShell-Beispiel zeigt nur |
