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 |
|---|---|
| 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. |
| Entfernt den PLC Profiler aus dem SPS-Projekt. |
| Aktiviert (true) oder deaktiviert (false) den PLC Profiler. |
| Fügt eine Profiler-Konfiguration hinzu. Der Parameter json ist optional (null für Standardkonfiguration). Das JSON-Format wird im folgenden Abschnitt beschrieben. |
| Setzt die angegebene Konfiguration als aktive Konfiguration. |
| Gibt den Namen der aktuell aktiven Konfiguration zurück. |
| Startet die Profiler-Messung. |
| Erstellt einen Snapshot der aktuellen Messung. Die Messwerte werden gespeichert, die Messung wird fortgesetzt. |
| Beendet die Profiler-Messung. |
| Gibt den aktuellen Status des Profilers zurück (z. B. 1 = Aufnahme aktiv). |
| 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 |
|---|---|---|
|
| Schaltet die Funktion frei, die eine Profiler-Messmarke mit misst. |
|
| Gibt den Konfigurationsmodus an: "Blacklist" oder "Whitelist". |
|
| Liste der Elementtypen, die auf der Black- oder Whitelist stehen (z. B. "PROGRAM", "METHOD", "FUNCTION_BLOCK", "ACTION"). |
|
| 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();