FB_CXProfiler

FB_CXProfiler 1:

Mit dem Funktionsbaustein FB_CXProfiler können unter Microsoft Windows CE Messungen der Ausführungszeit vom SPS-Code durchgeführt werden.

FB_CXProfiler 2:

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.

FB_CXProfiler 3: 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.

FB_CXProfiler 4: 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