TC_CpuUsage

TC_CpuUsage 1:

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;

TC_CpuUsage 2:

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)