Beispiel Listener
Dieses Beispiel zeigt die Verwendung des TwinCAT 3 EventLoggers in Bezug auf Nachrichten und Alarme.
Es besteht aus einem Modul, das eine Nachricht und einen Alarm senden kann und einem Modul, das diese Nachrichten empfängt.
Download des Beispiels: https://github.com/Beckhoff/Tc3Eventlogger_Samples/tree/main/C%2B%2B(RT)/Tc3EventLogger_CppListener_Sample
Publisher-Modul
Im Publisher-Modul werden einfache BOOL-Variablen als Trigger an der Input-Data-Area verwendet:
- bSendMessage, um eine Nachricht abzusetzen
- bRaiseAlarm, um einen Alarm zu setzen
- bClearAlarm, um einen Alarm zurückzunehmen
- bConfirmAlarm, um einen Alarm zu quittieren
Zusätzlich gibt es die Möglichkeit das JSON-Attribut zu setzen und zu entfernen, um bei beiden Nachrichten dieses mitzusenden.
Listener-Modul
Das Listener-Modul implementiert sowohl die ITCMessageListener- als auch die ITcAlarmListener-Schnittstelle Die hierdurch spezifizierten Methoden werden als Callback vom EventLogger aufgerufen.
- OnMessageSent: Wenn eine Nachricht versendet wurde, wird der EventLogger diese Methode als Callback aufrufen. Die Methode zählt die Anzahl der Nachrichten mit.
- OnAlarmRaised/OnAlarmCleared/OnAlarmConfirmed: Wenn der Alarm den Zustand ändert, wird der EventLogger diese Methode als Callback aufrufen. Die Methoden zählen jeweils die Anzahl der Zustandsänderungen mit.
Das Listener-Modul registriert sich dabei beim Starten in der Methode SetObjStateSO() beim EventLogger für die entsprechenden Ereignisklassen.