ReportEvent

ITcEventLog::ReportEvent

Diese Methode wird verwendet, um von einem COM Client (z.B. ein HMI Programm) ein neues Event auszugeben (an den TcEventLogger).

HRESULT ReportEvent([in] SAFEARRAY(VARIANT)* eventHead,
                    [in] SAFEARRAY(VARIANT)* eventData)
);

Parameter

eventHead

[in] Pointer auf ein Safearray mit den Grenzen 0 bis 9, dass den Event Header darstellt. Das Array besitzt die gleiche Information wie der TcEventHeader. Die Punkte des Arrays sind in der folgenden Tabelle erklärt.

Index

TcEventHeader Punkt

Datentyp

Beschreibung

0

nClass

TcEventClass

Die Klasse des Events, wie Alarm, Warnung, Hinweis.

1

nPriority

TcEventPriority (long)

Die Eventpriorität. Ab jetzt ist die Priorität immer: TcEventPriority.TCEVENTPRIO_IMPLICIT=0

2

dwFlags

TcEventFlags (long)

Die Merker regeln das Verhalten des Alarms. Dies kann mit einer OR Verknüpfung kombiniert werden.

3

dwUserData

long

Reservevariable, die vom Benutzer verwendet werden kann.

4

nId

long

Die Event Id, die eindeutig den Eventtyp für diesen einzelnen Event Source darstellt.

5

nInvokeId

long

 

6

fDate

VARIANT-DATE

Datum und Zeit des Fehlerauftritts.

7

nMs

long

Der Millisekunden Anteil des Event Datums.

8

varSource

variant

Source id und Source Name. Die Event Source wird zu Kennzeichnung verschiedener Geräte verwendet ( z. B. I/O Event, oder verschiedene Teile des SPS Programms.)

9

szFmtProgId

BSTR string

Die PrgId des Formatters. Wenn der Standard XML Formatter verwendet werden soll, muss der String auf "TcEventFormatter.TcXmlFormatter" gesetzt werden.

 

eventData

[in] Pointer auf ein Safearray, das die Event Argumente darstellt. In der Konfiguration des Event Formatters ist definiert, wie die Event Argumente in der angezeigten Event Meldung darzustellen sind. Die folgenden Datentypen werden durch den Standard Formatter unterstützt: int (16bit), long (32bit), float(32bit), double(64bit), string(BSTR).

Rückgabe Werte

S_OK

Funktion wurde erfolgreich aufgerufen.

TCEVENTERR_ISSIGNALED

 Das Event mit dieser Source Id und Event Id wurde bereits angezeigt. 

Visual Basic Beispielcode

' get the one and only event logger
Dim evtLogger As TCEVENTLOGGERLib.TcEventLog
Set evtLogger = New TCEVENTLOGGERLib.TcEventLog

' create event header
Dim arrHeader(0 To 9) As Variant
arrHeader(0) = TcEventClass.TCEVENTCLASS_ALARM ' event class
arrHeader(1) = TcEventPriority.TCEVENTPRIO_IMPLICIT ' event priority
arrHeader(2) = TcEventFlags.TCEVENTFLAG_LOG ' event flags
arrHeader(3) = 0 'user data
arrHeader(4) = 1 ' event id
arrHeader(5) = 0 'invoke id
arrHeader(6) = Now ' event date and time
arrHeader(7) = 123 ' millisecond part of the event date and time
arrHeader(8) = 1 ' event soruce id
arrHeader(9) = "TcEventFormatter.TcXmlFormatter" 'XML formatter ProgId

' create event parameters
Dim arrParam(0 To 1) As Variant
arrParam(0) = 1234 ' first parameter as long
arrParam(1) = 1234.777 ' second parameter as double

' log the event
Call evtLogger.ReportEvent(arrHeader, arrParam)

Anmerkungen

Nach diesem Methodenaufruf wird der Event Logger das Event OnNewEvent auf allen Clients, die die Event-Schnittstelle _ITcEventLogEvents (VB: Dim WithEvents) implementieren, erhöhen.

Für C++ und Visual Basic Programmierer ist es bequemer, die Methode ITcEventLogC::ReportEvent oder ITcEventC3::ReportEventEx zu benutzen.