Einführung
Der TcEventLogger ist Beckhoffs Standardmechanismus zum Verwalten von Meldungen aus der SPS. Mithilfe des TcEventLoggers können Warnungen, Fehlermeldungen, Informationen oder Statusmeldungen in einem SPS Programm ausgelöst und durch Visualisierungen angezeigt werden. Durch die Verwendung des TcEventLoggers können sie folgende Anforderungen realisieren:
- Meldungen und Alarme in der SPS auslösen oder zurücksetzen
- Meldungen durch den Eventlogger verwalten lassen
- COM APIs zur HMI Entwicklung
- Umfangreiches ActiveX Control zur Anzeige von Meldungen
- Unterstützung für die Realisierung verteilter Systeme: Das HMI kann mühelos die Meldungen eines remote Systems anzeigen
- Meldungstexte werden sprachabhängig aus einer Datenbank geladen
Das TwinCAT Meldungs-Konzept
Meldungen (Events)
Die Meldungen des TcEventLoggers werden anhand einer Source- und einer EventID identifiziert. Hierdurch wird eine möglichst realitätsnahe Sicht auf Meldungen ermöglicht. Die SourceID wird einer Maschine und die EventID einer Meldung dieser Maschine zugeordnet.
Zusätzlich können zu jeder Meldung beliebig viele DocLinks gespeichert werden.
Ein DocLink wird durch einen Namen identifiziert und enthält einen Link zu einer Datei. Diese verlinkten Dateien können zusätzliche Informationen enthalten, z.B. Maßnahmen zum Beheben von Fehlern . Der TcEventlogger verarbeitet diese DocLinks nicht! Es bleibt letztlich den Clients überlassen die DocLinks abzufragen und zu verarbeiten. Die DocLinks werden mit den Meldungstexten gespeichert und durch den entsprechenden Formatter (siehe 'Formatieren von Meldungen') verarbeitet.
Auslösen von Meldungen
Aus einem SPS Programm heraus kann ein einfacher Funktionsbaustein aufgerufen werden, welcher dem TcEventlogger intern eine Meldung signalisiert. Diese Meldung wird nur anhand ihrer Source- und EventID identifiziert
Sobald der TcEventLogger eine Meldung erhält, informiert er alle verbundenen Clients hierüber und verarbeitet die Meldung intern. Die Clients erhalten mit dem Rückruf ein Meldungsobjekt - ein COM-Objekt von Typ TcEvent.
Die Visualisierung erhält nun das Meldungsobjekt, welches die Event- und SourceID enthält. Sie kann an dem Event Objekt den zugehörigen Meldungstext abfragen. Der Meldungstext wird dann in der gewünschten Sprache aus einer Datenbank geladen.
Formatieren von Meldungen
Zum Laden der Meldungstexte bietet der TcEventlogger das TcEventFormatter Konzept:
Ein Formatter ist für das Laden der Meldungstexte aus der entsprechenden Datenbank zuständig.
Formatter können kundenspezifisch implementiert und in das System integriert werden. Mit dem TcEventlogger werden zwei Standardlösungen angeboten:
Formatter | Beschreibung |
---|---|
TcEventFormatter | Laden von Meldungstexten aus dem Projekt Storage. |
TcXMLFormatter | Datensätze werden aus XML Dateien geladen. |
Der zu verwendende Formatter wird schon beim Auslösen der Meldung (am PLC Baustein) ausgewählt.
Der Formatter ist auch für das Laden der entsprechenden DocLinks verantwortlich.
Konfigurieren von Meldungen
Um Meldungstexte aus einer Datenbank zu laden, muss die Datenbank zunächst gefüllt werden. Hierfür bietet Beckhoff den TcEventKonfigurator als grafische Benutzeroberfläche an.
Der TcEventKonfigurator unterstützt die Formate der beiden Standard-Formatter sowie ein Plain Text Format. Dieses Plain Text Format kann z.B. an Übersetzungsbüros weitergegeben werden.
Mithilfe des TcEventkonfigurators kann der gesamte Vorgang zum Generieren von Meldungen realisiert werden:
- Meldungen werden konfiguriert
- Daten werden in einem wählbaren Format gespeichert
- SPS Sample Code wird generiert.
Der Funktionskern des TcEventKonfigurators ist in Form von COM Komponenten realisiert, so dass er auch in eine Kundenapplikation integriert werden kann.
Visualisierungen
Wenn sich auch eine minimale Implementierung einer Visualisierung mit einigen wenigen Zeilen Quellcode erreichen lässt, so fällt für die Implementierung einer voll funktionalen Visualisierung trotzdem ein verhältnismäßig großer Programmieraufwand an.
Da sich die Implementierungen oft ähneln, bietet Beckhoff seinen Kunden hier eine Standard Implementierung zur Anzeige von Meldungen an : den TcEventViewer. Der TcEventViewer ist ein umfassend konfigurierbares ActiveX Control zur Einbindung in die Kundenapplikation.
Als beispielhafte Implementierung und zum Betrachten von Meldungen bietet Beckhoff die TcEventbar an. Die TcEventbar ist eine Visualisierung, die den TcEventViewer nutzt um Meldungen anzuzeigen.
Die TcEventBar liegt im 'TwinCAT/EventLogger' Verzeichniss.
Einstellungen der TcEventBar
Die TcEventBar nutzt (seit der v.2.9.0.11) einen Registry Key (HKEY_CURRENT_USER\Software\TwinCAT\TcEventBar
), um die Einstellungen des Kontext Menüs zu speichern. Die folgenden Flags können in "ContextMenuFlags" gesetzt werden um die Menü Einträge zu deaktivieren.
TcEventView: | Beschreibung |
---|---|
0x00000001 | "Aktive Meldungen löschen" |
0x00000002 | "Logbuch löschen" |
0x00000004 | "Filter setzen" |
0x00000008 | "Quittieren" |
0x00000010 | "Rücksetzen" |
0x00000020 | "Details" |
0x0000FFFF | Deaktivierung des gesamten Kontextmenüs |
Hauptfenster Kontextmenü: | Beschreibung |
---|---|
0x00010000 | "Always on top" |
0x00020000 | "Autohide" |
0x00040000 | "Exit" |
0xFFFF0000 | Deaktivierung des gesamten Kontextmenüs |
Connectivity
Der TcEventLogger bietet zwei Wege zur Realisierung von verteilten Systemen:
DCOM
DCOM wird nur auf NT / XP Plattformen unterstützt. Die Konfiguration von DCOM ist oft problematisch in Hinblick auf Konfiguration und Netzwerk-Timeouts
ADS Stream Interface
The TcEventLogger bietet ein binäres ADS basiertes Netzwerk Interface.
Um den Aufwand zur Entwicklung gering zu halten bietet Beckhoff eine Proxy Implementierung welche binäre Codierung und Datenaustauch kapselt. Die TcEventLogAdsProxy Klasse bietet alle Methoden der TcEventLogger COM API, benutzt statt DCOM jedoch ADS um die Verbindung zu remote Systemen herzustellen.