FB_CXProfiler
Mit dem Funktionsbaustein FB_CXProfiler können unter Microsoft Windows CE Messungen der Ausführungszeit vom SPS-Code durchgeführt werden.
![]() | Für andere Betriebssysteme beachten Sie den Funktionsbaustein Profiler in der Tc2_Utilities Bibliothek. |
Intern wird eine Instanz des GETCPUCOUNTER-Funktionsbausteines aufgerufen. Über eine steigende Flanke an dem bStart-Eingang wird der Messvorgang gestartet und bei einer fallenden Flanke gestoppt. Die Messungen werden intern ausgewertet und stehen am stData-Ausgang in einer Struktur vom Typ ST_CX_ProfilerStruct für weitere Verarbeitung zur Verfügung. Neben der aktuellen, minimalen und maximalen Ausführungszeit wird von dem Funktionsbaustein die mittlere Ausführungszeit der letzten 100 Messungen berechnet. Die gemessenen Zeiten werden in Mikrosekunden ausgegeben. Die Ausgangsvariable stData.dwMeasureCycle gibt Auskunft über die gesamte Anzahl der bereits durchgeführten Messungen. Um die Ausführungszeit von einem bestimmten Programmabschnitt der SPS zu messen, muss der Messvorgang über eine steigende START-Flanke am Anfang des zu messenden Programmabschnitts gestartet und am Ende über eine fallende START-Flanke gestoppt werden. Alle Werte am DATA-Ausgang können zurückgesetzt werden, wenn gleichzeitig mit der steigenden Flanke am START auch eine steigende Flanke am RESET-Eingang erzeugt wird. Die bereits ermittelten Messwerte der DATA-Struktur werden dann ungültig und aus den folgenden Aufrufen des Funktionsbausteins neu berechnet.
Bemerkung:
Die ermittelten Zeiten können von den tatsächlichen Werten abweichen, da bereits für die Aufrufe des GETCPUCOUNTER-Funktionsbausteins einige Zeit benötigt wird. Diese Zeit ist rechnerabhängig und in den ermittelten Zeiten enthalten. Taskunterbrechungen z.B. durch die NC werden nicht erkannt und führen zu größeren Messzeiten.
Eingänge
VAR_INPUT
bStart : BOOL;
bReset : BOOL;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
bStart | BOOL | Über eine positive Flanke an diesem Eingang wird die Messung der Ausführungszeit gestartet. Über eine negative Flanke an diesem Eingang wird die Messung gestoppt und die aktuelle, minimale, maximale und mittlere Ausführungszeit neu berechnet. Die Variable stData.dwMeasureCycle wird dabei inkrementiert. |
bReset | BOOL | Wenn gleichzeitig mit einer steigenden Flanke am START-Eingang auch eine steigende Flanke an diesem Eingang erzeugt wurde, dann werden alle Variablen am DATA-Ausgang zurückgesetzt. Die alten Werte für die aktuelle, minimale, maximale und mittlere Ausführungszeit werden dabei zurückgesetzt und für die nächsten Messungen neu berechnet. |
Ausgänge
VAR_OUTPUT
bBusy : BOOL;
stData : ST_CX_ProfilerStruct;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
bBusy | BOOL | Beim Starten des Messvorgangs wird dieser Ausgang gesetzt und bleibt gesetzt, bis die Zeitmessung abgeschlossen wurde. Nachdem der bBusy-Ausgang zurückgesetzt wurde, stehen die aktuellen Zeiten am stData-Ausgang zur Verfügung. |
stData | ST_CX_ProfilerStruct | Struktur vom Typ ST_CX_ProfilerStruct mit den gemessenen Zeiten in [µs]. |
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS- Bibliotheken |
---|---|---|
TwinCAT v3.1 | CX (WEC6/7: TC RT x86, WEC7: TC CE7 ARMV7) | Tc2_SystemCX |