Grundlagen
Profiling ist ein Verfahren zur Analyse des Laufzeitverhaltens einer Softwareanwendung. Ziel ist es, Leistungsengpässe und ineffizienten Code zu identifizieren, um die Performance der Anwendung zu verbessern.
Der TwinCAT 3 PLC Profiler basiert auf der Technologie des TE1010 | TC3 Realtime Monitor und ist speziell auf die Anforderungen der SPS-Entwicklung zugeschnitten. Das Profiling liefert Antworten auf Fragen wie:
- Welche POUs verbrauchen den größten Teil der Zyklusausführungszeit?
- Welche minimale, maximale und durchschnittliche Ausführungszeit hat eine POU?
- Wie hoch ist die Ausführungszeit in µs und in Prozent im Verhältnis zur Zyklusausführungszeit?
- Welchen Aufrufbaum hat eine maximale Ausführungszeit einer bestimmten POU?
Messprinzip: Instrumentierung
Für den TwinCAT 3 PLC Profiler wird das Messprinzip "Instrumentieren" verwendet. Dabei werden beim Kompilieren automatisch Messmarken (Eintritts- und Austrittsmethoden) in den kompilierten Code eingefügt. Der SPS-Quellcode wird nicht verändert. Die Messmarken erfassen die Ausführungszeiten einzelner Bausteine und ermöglichen so die genaue Zuordnung von Laufzeiten zu Programmelementen.
Durch das Entfernen der Profiler-Datei aus dem SPS-Projekt werden alle Instrumentierungen entfernt.
Wichtige Begriffe
Begriff | Bedeutung |
|---|---|
Total Time | Die verbrauchte Zeit eines Elements inklusive der verbrauchten Zeit aller Unterelemente. |
Own Time | Die verbrauchte Zeit eines Elements exklusive der verbrauchten Zeit aller Unterelemente. Gibt an, wie viel Zeit im Element selbst verbraucht wird. |
Taskausführungszeit | Die Gesamtzeit, die für alle Programmbausteine aufgewendet wird, die über eine Task aufgerufen werden. |
Einfluss der Messmarken auf die Messergebnisse
Die Messmarken, die bei der Instrumentierung in den Code eingefügt werden, verursachen einen zusätzlichen Laufzeitaufwand. Dieser kann die gemessenen Ausführungszeiten beeinflussen. Bereiche des Codes mit vielen instrumentierten Elementen können in der Analyse überrepräsentiert erscheinen, da die Messmethoden selbst Zeit in Anspruch nehmen.
Der Profiler bietet zwei Korrekturmodi, um den Laufzeitanteil der Messmarken von den Messwerten abzuziehen:
- Automatische Korrektur: Über die Option Add Measure Method in der Profiler-Konfiguration wird eine zusätzliche Messmarke eingefügt, die den Overhead pro Zyklus misst. Mit der Eigenschaft Automatic Correction Value wird der gemessene Wert automatisch von den Ergebnissen abgezogen (siehe Fenster Eigenschaften).
- Feste Korrektur: Über die Eigenschaft Default Correction Value kann ein fester Korrekturwert in Nanosekunden konfiguriert werden, der für alle Zyklen verwendet wird.
Variabilität der Messwerte
Die Messwerte können zwischen den Zyklen variieren. Ursachen hierfür sind unter anderem dynamische CPU-Taktung und andere Systemfaktoren. Die Variabilität kann durch folgende Maßnahmen reduziert werden:
- Verwendung isolierter CPU-Kerne für die Echtzeitaufgaben.
- Deaktivierung von Stromsparmechanismen des Prozessors.
Auswirkungen auf das System
Berücksichtigen Sie bei der Verwendung des Profilers die folgenden Auswirkungen auf das System:
- Echtzeitauslastung: Die Instrumentierung erhöht die Ausführungszeit der SPS-Zyklen. Der Aufrufbaum wird in jedem Zyklus gemessen, was die Echtzeitauslastung erhöht.
- Netzwerkauslastung: Die Messwerte werden über ADS an die Entwicklungsumgebung übermittelt. Bei hoher Informationsdichte (viele instrumentierte Elemente, hohe Zyklusfrequenz) kann die Netzwerkauslastung steigen.