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

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)
Statische Code-Analyse ausführen 1:

Das PowerShell-Beispiel zeigt nur RunStaticAnalysis. CheckAllObjects aus ITcPlcIECProject2 steht über Late Binding analog zur Verfügung.