TC_CpuUsage
Mit dem Funktionsbaustein "TC_CpuUsage" kann die aktuelle CPU-Auslastung eines TwinCAT-Systems ermittelt werden. Die Funktion entspricht der Anzeige der CPU-Auslastung im TwinCAT-System Menü unter den Echtzeiteinstellungen. Intern wird eine Instanz des ADSREAD-Funktionsbausteins aufgerufen.
VAR_INPUT
VAR_INPUT
NETID :T_AmsNetId;
START :BOOL;
TMOUT :TIME := DEFAULT_ADS_TIMEOUT;
END_VAR
NETID: Hier kann die AmsNetId des TwinCAT-Rechners angegeben werden, dessen CPU-Auslastung ermittelt werden soll. Für den lokalen Rechner kann auch ein Leerstring angegeben werden.
START: Über eine positive Flanke an diesem Eingang wird der Baustein aktiviert.
TMOUT: Gibt die Timeout-Zeit an, die bei der Ausführung des ADS-Kommandos nicht überschritten werden darf.
VAR_OUTPUT
VAR_OUTPUT
BUSY :BOOL;
ERR :BOOL;
ERRID :UDINT;
USAGE :UDINT;
END_VAR
BUSY: Bei der Aktivierung des Funktionsbausteins wird dieser Ausgang gesetzt und bleibt gesetzt, bis eine Rückmeldung erfolgt.
ERR: Sollte ein ADS-Fehler bei der Übertragung des Kommandos erfolgen, dann wird dieser Ausgang gesetzt, nachdem der BUSY-Ausgang zurückgesetzt wurde.
ERRID: Liefert bei einem gesetzten ERR-Ausgang die ADS-Fehlernummer.
USAGE: Die aktuelle CPU-Auslastung eines TwinCAT-Systems in %.
Beispiel für einen Aufruf in FUP
TC_CpuUsage1 : TC_CpuUsage;
Start_TC_CpuUsage : BOOL;
TC_CpuUsage_Busy : BOOL;
TC_CpuUsage_Err : BOOL;
TC_CpuUsage_ErrId : UDINT;
CpuUsage : UDINT;
In dem Beispiel benutzt das TwinCAT-System 35% von der gesamten zur Verfügung stehenden CPU-Rechenzeit.
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken |
---|---|---|
TwinCAT v2.7.0 | PC or CX (x86) | TcPlcUtilities.Lib; Standard.Lib; PLCSystem.Lib; TcPLCAds.Lib; PLCHelper.Lib; |
TwinCAT v2.8.0 | PC or CX (x86) | TcUtilities.Lib |
TwinCAT v2.10.0 Build >= 1301 | CX (ARM) |