FB_ReadTc3Events

FB_ReadTc3Events 1:

Verfügbar ab TwinCAT 3.1 Build 4026

FB_ReadTc3Events 2:

Der Funktionsbaustein ermöglicht es, die Ereignisse des TwinCAT 3 EventLoggers im Visualisierungselement Event-Tabelle anzeigen zu lassen. FB_ReadTc3Events ist in der Bibliothek VisuElemEventTable enthalten, die mit der Aktivierung der Event-Tabelle automatisch zum Projekt hinzugefügt wird (siehe Konfiguration der Event-Tabelle). Um FB_ReadTc3Events nutzen zu können, müssen Sie ein TargetVisualization- oder WebVisualization-Objekt zum Projekt hinzufügen.

Der Funktionsbaustein FB_ReadTc3Events erfragt die auftretenden Ereignisse des TC3 EventLoggers und stellt sie in Form des Arrays aEvents zur Verfügung. Intern wird dafür eine Implementierung des FB_ListenerBase2 genutzt. Damit die Meldungen in der Event-Tabelle angezeigt werden, muss das Array aEvents in dessen Eigenschaft Meldungsdatenarray eingetragen werden.

FB_ReadTc3Events 3: Eingänge

VAR_INPUT
    bReadEvents         : BOOL;
    nLanguageID         : DINT;
    eDateAndTimeFormat  : E_DateAndTimeFormat;
    bClearTable         : BOOL;
    eMinSeverity        : TcEventSeverity;
END_VAR

Name

Typ

Beschreibung

bReadEvents

BOOL

Mit diesem Eingang wird die Freigabe zum Auslesen der Ereignisse gegeben.

nLanguageID

DINT

Definiert, welche Übersetzung des Ereignistextes abgefragt werden soll.

eDateAndTimeFormat

E_DateAndTimeFormat

Definiert, welches Format die Zeitstempel haben sollen. Zur Auswahl stehen:

  • de_DE – deutsche Schreibweise: dd.MM.yyyy hh:mm:ss (24 h)
  • en_GB – britische Schreibweise: dd/MM/yyyy hh:mm:ss (24 h)
  • en_US – amerikanische Schreibweise: MM/dd/yyyy hh:mm:ss (12 h)

bClearTable

BOOL

Über eine positive Flanke an diesem Eingang wird die Event-Tabelle geleert. Nicht bestätigte oder nicht zurückgesetzte Alarme werden nicht aus der Tabelle entfernt.

eMinSeverity

TcEventSeverity

Nur Ereignisse, deren Severity mindestens so hoch ist wie die hier angegebene Severity, werden in der Event-Tabelle angezeigt.

FB_ReadTc3Events 4: Ausgänge

VAR_OUTPUT
    aEvents            : ARRAY [1..80] OF ST_ReadEventW;
    nNumberOfEvents    : UDINT;
    bError             : BOOL;
    hrErrorCode        : HRESULT;
END_VAR

Name

Typ

Beschreibung

aEvents

ARRAY [1..80] OF ST_ReadEventW

Über dieses Array stellt der Funktionsbaustein die ausgewerteten Ereignisse zur Verfügung. In dem Array können maximal 80 Meldungen gespeichert werden. Bei einer größeren Zahl von Ereignissen werden alte Meldungen überschrieben.

nNumberOfEvents

UDINT

Gibt an, wie viele Ereignisse ausgelöst wurden.

bError

BOOL

Dieser Ausgang wird gesetzt, wenn bei der Abfrage oder Verarbeitung der Ereignisse ein Fehler auftritt.

hrErrorCode

HRESULT

Gibt den Fehlercode des aufgetretenen Fehlers an.

FB_ReadTc3Events 5: Methoden

SetFilter

Dieser Methode kann ein zuvor konfigurierter Filter vom Typ FB_TcEventFilter (Link) übergeben werden, um festzulegen, welche Ereignisse ausgewertet und in der Event-Tabelle angezeigt werden sollen. Die Filterung gilt dabei ab dem Zeitpunkt, zudem die „SetFilter“ Methode aufgerufen wird, und hat keinen Einfluss auf bereits aufgetretene Ereignisse. Die Filterung kann aufgehoben werden, indem die Methode „SetFilter“ mit „NULL“ als Eingangsparameter aufgerufen wird. Auch in diesem Fall gilt das Aufheben der Filterung für neu auftretende Ereignisse.

Wird die Methode nicht aufgerufen, zeigt die Event-Tabelle alle Ereignisse an.

VAR_INPUT
    ipEventFilter    : I_TcEventFilter;
END_VAR

Name

Typ

Beschreibung

ipEventFilter

I_TcEventFilter

Filterkonfiguration, über die festgelegt wird, welche Ereignisse des TwinCAT 3 EventLoggers der Funktionsbaustein FB_ReadTc3Events verarbeiten soll.

FB_ReadTc3Events 6:

Sie können zwischen verschiedenen Filteransichten umschalten, indem Sie mehrere Instanzen von FB_ReadTc3Events anlegen und die Event-Tabelle mit einer Referenz auf aEvents verknüpfen, die jeweils der gewünschten Instanz zugewiesen wird.

Beispiel:

PROGRAM MAIN
VAR
    // FB_ReadTc3Events
    fbReadTc3Events     : FB_ReadTc3Events;
    bReadEvents         : BOOL := TRUE;
    nLanguage           : DINT := 1031;
    eDateAndTimeFormat  : Tc2_Utilities.E_DateAndTimeFormat := Tc2_Utilities.E_DateAndTimeFormat.de_DE;
    bClear              : BOOL;
    eSeverityMin        : TcEventSeverity;
    bError              : BOOL;
    hr                  : HRESULT;
    hrOccuredErrorCode  : HRESULT;

    // EventFilter
    bFilterInit         : BOOL;
    fbEventFilter       : FB_TcEventFilter;
END_VAR
// Configure EventFilter (filter possibility one, not necessary for use of FB_ReadTc3Events)
IF NOT bFilterInit THEN
    bFilterInit := TRUE;
    fbEventFilter.Clear();
    fbEventFilter.EventClass.EqualTo(TC_EVENTS.EventClass1.Message1.uuidEventClass).OR_OP().EventClass.EqualTo(TC_EVENTS.EventClass2.Alarm2.uuidEventClass).AND_OP().Severity.GreaterThan(0);
    hr := fbReadTc3Events.SetFilter(ipEventFilter := fbEventFilter);
    IF FAILED(hr) THEN
        hrOccuredErrorCode := hr;
    END_IF
END_IF

// Call fbReadTc3Events
fbReadTc3Events (
    bReadEvents         := bReadEvents,
    nLanguageID         := nLanguage,
    eDateAndTimeFormat  := eDateAndTimeFormat,
    bClearTable         := bClear,
    eMinSeverity        := eSeverityMin,          // Set event filter for severity via input (filter possibility two)
    nNumberOfEvents     => nEvents1,
    bError              => bError1,
    hrErrorCode         => );
IF fbReadTc3Events.bError THEN
    hrOccuredErrorCode  := fbReadTc3Events.hrErrorCode;
END_IF

Voraussetzungen

Entwicklungsumgebung

Zielplattform

Einzubindende SPS-Bibliotheken

TwinCAT v3.1.4026

PC or CX (x86, x64, ARM)

VisuElemEventTable