Automation Interface Unterstützung

Das Static Analysis kann teilweise über das Automation Interface (AI) bedient werden. Die AI-Unterstützung umfasst folgende Befehle/Aktionen:

Bitte beachten Sie hierzu auch die Automation Interface Dokumentation:
Produktbeschreibung

Explizite Durchführung der Statischen Analyse per Automation Interface

Sie können die Statische Analyse automatisiert ausführen lassen, indem Sie die Methode RunStaticAnalysis() per Automation Interface aufrufen.

Funktional entspricht dies den folgenden Befehlen:

Parameter:

Für die Methode RunStaticAnalysis() kann bCheckAll als optionaler Parameter angegeben werden. Die Methode kann aber auch parameterlos aufgerufen werden.

Parameter

Aufruf

RunStaticAnalysis()

Ausführung des Befehls Statische Analyse durchführen [Überprüfe alle Objekte]

RunStaticAnalysis(bCheckAll = TRUE)

RunStaticAnalysis(bCheckAll = FALSE)

Ausführung des Befehls Statische Analyse durchführen

PowerShell-Beispiel:

$p = $sysMan.LookupTreeItem("TIPC^MyPlcProject^MyPlcProject Project")
$p.RunStaticAnalysis()

C#-Beispiel für TC3.1 Version >= Build 4024:

ITcPlcIECProject3 plcIec3 = sysMan.LookupTreeItem("TIPC^Untitled1^Untitled1 Project") as ITcPlcIECProject3;
plcIec3.RunStaticAnalysis();

C#-Beispiel für TC3.1 Version >= Build 4026:

ITcPlcIECProject4 plcIec4 = sysMan.LookupTreeItem("TIPC^Untitled1^Untitled1 Project") as ITcPlcIECProject4;
plcIec4.RunStaticAnalysis();

Implizite Durchführung der Statischen Analyse per Automation Interface

Alternativ besteht die Möglichkeit, die Einstellung Statische Analyse automatisch durchführen zu aktivieren und das Projekt per Automation Interface zu erstellen, sodass bei diesem Erstellungsvorgang implizit die Statische Analyse durchgeführt wird.

Einstellungen/Konfiguration per Automation Interface speichern

Automation Interface Unterstützung 1:

Verfügbar ab TwinCAT 3.1 Build 4026

Die Einstellungen vom Static Analysis können per Automation Interface in eine *.csa-Datei gespeichert bzw. exportiert werden.

Parameter:

Für die Methode SaveStaticAnalysisSettings(string bstrFilename) muss der Zielpfad der Konfigurationsdatei als Übergabeparameter angegeben werden.

Automation Interface Unterstützung 2:

Die Methode RunStaticAnalysis ist ab dem Interface ITcPlcIECProject3 verfügbar. Die Methoden SaveStaticAnalysisSettings und LoadStaticAnalysisSettings werden ab dem Interface ITcPlcIECProject4 angeboten.

C#-Beispiel für TC3.1 Version >= Build 4026:

// Path to the location to export the SAN configuration 
string saveCsaPath = @"C:\Users\UserName\Desktop\SaveTest.csa";
[…]
 
// Navigate to PLC project
ITcPlcIECProject4 plcIec4 = sysMan.LookupTreeItem("TIPC^Untitled1^Untitled1 Project") as ITcPlcIECProject4;
 
// Save SAN configuration
plcIec4.SaveStaticAnalysisSettings(saveCsaPath);

Einstellungen/Konfiguration per Automation Interface laden

Automation Interface Unterstützung 3:

Verfügbar ab TwinCAT 3.1 Build 4026

Eine vorgefertigte Static Analysis Konfiguration (*.csa-Datei) kann per Automation Interface ins PLC-Projekt geladen werden. Die hierdurch geladenen Einstellungen können anschließend per AI überprüft werden, indem das Static Analysis ausgeführt wird (s.o.).

Parameter:

Für die Methode LoadStaticAnalysisSettings(string bstrFilename) muss der Pfad der zu ladenden Konfigurationsdatei als Übergabeparameter angegeben werden. 

Automation Interface Unterstützung 4:

Die Methode RunStaticAnalysis ist ab dem Interface ITcPlcIECProject3 verfügbar. Die Methoden SaveStaticAnalysisSettings und LoadStaticAnalysisSettings werden ab dem Interface ITcPlcIECProject4 angeboten.

C#-Beispiel für TC3.1 Version >= Build 4026:

// Path to load a SAN configuration
string loadCsaPath = @"C:\Users\UserName\Desktop\LoadTest.csa";
[…]
 
// Navigate to PLC project
ITcPlcIECProject4 plcIec4 = sysMan.LookupTreeItem("TIPC^Untitled1^Untitled1 Project") as ITcPlcIECProject4;
 
// Load SAN configuration
plcIec4.LoadStaticAnalysisSettings(loadCsaPath);
 
// Optionally run SAN afterwards
plcIec4.RunStaticAnalysis();

Metriken exportieren

Automation Interface Unterstützung 5:

Verfügbar ab TwinCAT 3.1 Build 4026.4

Die Standard-Metriken können per Automation Interface in eine Textdatei (*.csv) exportiert werden. Dabei findet implizit eine aktuelle Berechnung der Metriken statt. Eine manuelle Ausführung dieses Vorgangs würde die beiden folgenden Befehle beinhalten:

Parameter:

Für die Methode ExportStandardMetrics(string bstrFilename) muss der Zielpfad der resultierenden Exportdatei als Übergabeparameter angegeben werden.

Automation Interface Unterstützung 6:

Die Methode ExportStandardMetrics ist ab dem Interface ITcPlcIECProject5 verfügbar.

C#-Beispiel für TC3.1 Version >= Build 4026.4:

// Path to save the csv file
string savePath = @"C:\Users\UserName\Desktop\Metrics.csv";
[…]
 
// Navigate to PLC project
ITcPlcIECProject5 plcIec5 = sysMan.LookupTreeItem("TIPC^Untitled1^Untitled1 Project") as ITcPlcIECProject5;
 
// Export standard metrics
plcIec5.ExportStandardMetrics(savePath);

Statische Analyse starten und in Sarif-Datei exportieren

Automation Interface Unterstützung 7:

Verfügbar ab TwinCAT 3.1.4026.20

Die statische Codeanalyse kann per Automation Interface gestartet und das Ergebnis in einer SARIF-Datei gespeichert werden.

Funktional entspricht dies dem folgenden Befehl:

Parameter:

Für die Methode ExportToSarif(string exportPath) kann der Zielpfad der resultierenden Sarif-Datei als Übergabeparameter angegeben werden. Wenn Sie keinen Pfad angeben, wird die Datei im Ordner des aktuellen Projekts gespeichert.

Hinweis:

Vor der Ausführung der Methode ExportToSarif() – und damit vor der Ausführung der Analyse und der Speicherung der SARIF-Datei – können Sie durch Aufruf der Methode LoadStaticAnalysisSettings() die gewünschte SAN-Konfiguration laden. Weitere Informationen zu dem Laden der Konfiguration per Automation Interface finden Sie hier:

C#-Beispiel für TC3.1 Version >= Build 4026.20:

// Path to load a SAN configuration
string loadCsaPath = @"C:\Users\UserName\Desktop\LoadTest.csa";
 
// Path to save the Sarif file
string sarifExportPath = @"C:\Users\UserName\Desktop\SarifFolder\SarifExpotViaAutomationInterface.sarif.json";
 
// Navigate to PLC project
ITcPlcIECProject7 plcIec7 = sysMan.LookupTreeItem("TIPC^Untitled1^Untitled1 Project") as ITcPlcIECProject7;
 
// Load desired SAN configuration
plcIec7.LoadStaticAnalysisSettings(loadCsaPath);
 
// Run SAN and save results in Sarif file
plcIec7.ExportToSarif(sarifExportPath);