Automation Interface Unterstützung

Der TwinCAT 3 PLC Profiler stellt ein Automation Interface bereit, über das Profiler-Funktionen programmatisch über die TwinCAT Automation Interface Schnittstelle (ITcPlcProfiler) angesteuert werden können.

Zugriff auf das Automation Interface

Der Zugriff auf das Automation Interface erfolgt über das SPS-Projektobjekt im TwinCAT-Projektbaum. Das Interface ITcPlcProfiler wird vom SPS-Projektobjekt bereitgestellt.

// Zugriff auf das SPS-Projektobjekt
ITcSmTreeItem plcProjectItem = systemManager.LookupTreeItem("TIPC^PlcProject^PlcProject Project");
ITcPlcProfiler profiler = (ITcPlcProfiler)plcProjectItem;

Verfügbare Befehle

Die folgende Tabelle beschreibt die verfügbaren Befehle des Automation Interface:

Befehl

Beschreibung

AddProfiler(string relativePath)

Fügt den PLC Profiler dem SPS-Projekt hinzu. Über den Parameter relativePath kann der Ordner im Projektbaum angegeben werden. Bei null wird der Profiler auf der obersten Ebene hinzugefügt.

RemoveProfiler()

Entfernt den PLC Profiler aus dem SPS-Projekt.

SetProfiler(bool enabled)

Aktiviert (true) oder deaktiviert (false) den PLC Profiler.

AddConfiguration(string name, string json)

Fügt eine Profiler-Konfiguration hinzu. Der Parameter json ist optional (null für Standardkonfiguration). Das JSON-Format wird im folgenden Abschnitt beschrieben.

SetActiveConfig(string name)

Setzt die angegebene Konfiguration als aktive Konfiguration.

GetActiveConfig()

Gibt den Namen der aktuell aktiven Konfiguration zurück.

StartProfiling()

Startet die Profiler-Messung.

SnapshotProfiling()

Erstellt einen Snapshot der aktuellen Messung. Die Messwerte werden gespeichert, die Messung wird fortgesetzt.

StopProfiling()

Beendet die Profiler-Messung.

GetProfilerStatus()

Gibt den aktuellen Status des Profilers zurück (z. B. 1 = Aufnahme aktiv).

GetResults(string configName, uint format, uint flags)

Gibt die Ergebnisse der Profiler-Messung für die angegebene Konfiguration zurück. Der Rückgabewert ist ein String-Array mit den Dateipfaden der Aufnahmedateien.

JSON-Konfigurationsformat

Beim Anlegen einer Konfiguration über AddConfiguration kann optional ein JSON-String übergeben werden, der die Konfiguration beschreibt. Das folgende Beispiel zeigt das Format:

{
  "AddMeasureMethod": true,
  "ActiveProfilerRecordConfigMode": "Blacklist",
  "List": ["METHOD", "FUNCTION_BLOCK"],
  "ListLibrary": ["tc2_system.F_CmpLibVersion"]
}

Die folgende Tabelle beschreibt die verfügbaren JSON-Eigenschaften:

Eigenschaft

Typ

Beschreibung

AddMeasureMethod

bool

Schaltet die Funktion frei, die eine Profiler-Messmarke mit misst.

ActiveProfilerRecordConfigMode

string

Gibt den Konfigurationsmodus an: "Blacklist" oder "Whitelist".

List

string[]

Liste der Elementtypen, die auf der Black- oder Whitelist stehen (z. B. "PROGRAM", "METHOD", "FUNCTION_BLOCK", "ACTION").

ListLibrary

string[]

Liste der Bibliotheksbausteine im Format "Bibliotheksname.Bausteinname".

C#-Beispiel: Profiling über das Automation Interface

Das folgende Beispiel zeigt den Ablauf einer Profiler-Messung über das Automation Interface:

// Zugriff auf das SPS-Projektobjekt
ITcSmTreeItem plcProjectItem = systemManager.LookupTreeItem("TIPC^PlcProject^PlcProject Project");
ITcPlcProfiler profiler = (ITcPlcProfiler)plcProjectItem;

// 1. Profiler hinzufügen
profiler.AddProfiler(null);

// 2. Konfiguration anlegen
profiler.AddConfiguration("MeineKonfiguration", null);

// 3. Konfiguration aktivieren
profiler.SetActiveConfig("MeineKonfiguration");

// 4. SPS-Projekt kompilieren, herunterladen und starten (über TwinCAT Automation Interface)

// 5. Messung starten
profiler.StartProfiling();

// 6. Messung beenden
profiler.StopProfiling();

// 7. Ergebnisse abrufen
string[] results = profiler.GetResults("MeineKonfiguration", 0, 0);

// 8. Profiler entfernen (optional)
profiler.RemoveProfiler();