FB_ReadTc3Events
Verfügbar ab TwinCAT 3.1 Build 4026 |
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.
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:
|
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. |
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. |
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. |
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 |