Eigene Event-Logs erstellen und im Eventgrid darstellen - TwinCAT HMI (TE2000)

Privatprogramm

Level-1
Beiträge
17
Reaktionspunkte
3
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Zusammen,

ich möchte gerne das Eventgrid verwenden, möchte aber eigene Eventlogs erstellen und nicht die Quelle TcHmiEventLogger verwenden.

Ich möchte abhängig von OPC-UA Daten, die ich per TcHmiOpcUa empfange, meine Eigenen Events erzeugen und in dem Eventgrid laden.

Beispiel:
Ich erzeuge mir ein Serversymbol des Datentyps "TcHmi.Controls.beckhoff.TcHmiEventGrid.ColumnList":
1650526710352.png
Ich füge eine OPC-UA variable zu einem Custom-Event eines Elements hinzu. Wenn der Wert sich ändert, wird das Custom-Event ausgelöst.
Das ruft eine Funktion auf, in der ich das TcHmiSrv-Symbol "GS03_Events" mit einem neuen Eintrag fülle:
1650526945964.png
--- Wie die Funktion jetzt genau funktioniert, überlege ich mir noch ---

Anschließend möchte ich in meinem Eventgrid den Filter so anpassen, dass genau nur meine eigenen Events geladen werden:
1650527076803.png

Ist das irgendwie möglich?

LG
Stefan
 
Die TcHmi.Controls.Beckhoff.TcHmiEventGrid.ColumnList beschreibt ja nur was von den Events dargestellt werden soll. Das willst/musst du nicht auf dem Server generieren. Damit könntest du je nach UA Daten die Spaltenansicht tauschen (eher nicht sinnvoll).

Deine PrivatprogrammExt c# Extension kann einfach Events generieren:

C#:
                var evt = new TcHmiSrv.Core.Event();
                evt.Name = "MyUA_EVENT1";
                evt.Domain = "PrivatprogrammExt";

Dein Filter am EventGrid muss wahrscheinlich nur die Zeile "domain == PrivatprogrammExt" beinhalten. Optional bei name noch auf "MyUA_EVENT1" einschränken.

 
Verschicken musst du es über diese Send funktion:

Beispielcode dafür findest du in den Beckhoff Beispielen auf github:


Gespeichert wird es im Server, aber auf jeden Fall wird es an alle verteilt, die sich dafür angemeldet haben (also das EventGrid im oben genannten Beispiel).
 
@zuse danke für deine Antwort, ich habs leider in letzter Zeit nicht geschafft zu antworten. Sorry dafür !

Ich habe jetzt eine Lösung für mich gefunden, bei der ich keinen weiteren Code implementieren muss.
Tatsächlich ist Beckhoff gerade dabei genau so eine Alarm-Extension zu entwickeln, die aktuell noch im Beta-Stadium ist.1652185976091.png
Das macht genau das was ich wollte. Ist zwar noch etwas buggy, aber fürs Erste reichts.

Viele Grüße
Stefan
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke für den Hinweis! Hast du auch ein Stück Doku dazu gefunden? Oder kannst kurz beschreiben, was man damit machen kann? Ich finde dazu leider nichts.
 
Danke für den Hinweis! Hast du auch ein Stück Doku dazu gefunden? Oder kannst kurz beschreiben, was man damit machen kann? Ich finde dazu leider nichts.

Hi @malloc ich habe dir mal eine Fotostrecke hinterlegt. Da es noch im Beta-Stadium ist, gibt es dafür noch keine Dokumentation.
Ich denke damit wird klar, wie das ungefähr funktioniert:

1652360169596.png

1652360202953.png

1652361073601.png

1652360435104.png


Jetzt im EventGrid unter "Common-->Filter" den Namen von des Alarms eintragen:

1652360590438.png

So habe ich es gemacht. Die Extension ist noch etwas buggy. Für Localizations (Sprachumschaltung) musst du die Einträge direkt in der Extension machen:
1652360886456.png
 
Zurück
Oben