Zugriff auf Alarme und Events
Beim Subscriben auf das Objekt und den Empfang von Alarmen oder Events muss ein Client berücksichtigen, dass hierbei spezielle Objekttypen verwendet werden. Die jeweiligen Typen sind wie folgt definiert:
TcEventLoggerEventType
Der TcEventLoggerEventType ist abgeleitet vom BaseEventType und erweitert diesen mit TwinCAT-Eventlogger-spezifischen Properties:

NodeID: i=4200
NamespaceName: urn:BeckhoffAutomation:Ua:Types:GlobalTypes
TcEventLoggerAlarmConditionType
Der TcEventLoggerAlarmConditionType ist abgeleitet vom AlarmConditionType und erweitert diesen mit TwinCAT-Eventlogger-spezifischen Properties:

NodeID: i=4000
NamespaceName: urn:BeckhoffAutomation:Ua:Types:GlobalTypes
Beispiel
Das folgende Beispiel basiert auf dem Standard-Code-Sample vom TwinCAT Eventlogger, welches aus dem Beckhoff Information System bezogen werden kann. Dieses Sample beinhaltet Code Snippets für die SPS, mit welchen man sowohl ein Event als auch einen Alarm feuern kann.
Schritt 1: Konfiguration des Servers
TwinCAT OPC UA Server und die SPS laufen in diesem Beispiel nun lokal auf demselben System. Dementsprechend wurde auch die TcEventLogConfig.xml erstellt:
<TcUaEventLogConfig>
<EventLoggerDevice Name="LocalEventLogger" AmsAddr="127.0.0.1.1.1"/>
</TcUaEventLogConfig>
Schritt 2: Aktivieren des TwinCAT Eventlogger Samples
Vor dem Aktivieren des TwinCAT Eventlogger Samples wurde das automatische Feuern eines Events bzw. Alarms zunächst deaktiviert. In der vorliegenden Sample-Version erfolgt dies durch das Initialisieren von bSend und bAlmRaise mit dem Wert FALSE. Anschließend wird das Projekt aktiviert und in der lokalen SPS-Laufzeit ausgeführt.
Schritt 3: Verbinden eines OPC UA Clients mit dem Server
Als OPC UA Client wurde der UA Expert gewählt. Nach dem Aufbau einer Verbindung mit dem Server fügen Sie im UA Expert ein neues „Event View“ Dokument hinzu. Anschließend ziehen Sie per Drag-and-Drop das konfigurierte TwinCAT-Eventlogger-Gerät in das Event View.

Damit die TwinCAT-Eventlogger-spezifischen Properties empfangen werden können, muss der UA Expert den entsprechend Event- bzw. AlarmType filtern. Sie finden den TcEventLoggerEventType bzw. TcEventLoggerAlarmConditionType in der Typliste des Event Views. Beispiel:


Durch einen Klick auf den Apply-Button werden diese Filter übernommen.
Schritt 4: Feuern eines Events
Im TwinCAT Eventlogger Sample setzen wir die Variable bSend auf den Wert TRUE, um ein Event abzufeuern. Der UA Expert empfängt dieses Event automatisch und zeigt es im Event View mitsamt der TwinCAT-Eventlogger-spezifischen Properties an.


Schritt 5: Feuern eines Alarms
Im TwinCAT Eventlogger Sample setzen wir die Variable bAlmRaise auf den Wert TRUE, um einen Alarm abzufeuern. Der UA Expert empfängt diesen Alarm automatisch und zeigt ihn im Event View mitsamt der TwinCAT-Eventlogger-spezifischen Properties an. Zusätzlich wird der Alarm als eigenes Objekt im Namespace unterhalb des Eventlogger-Geräts angezeigt.

Schritt 6: Quittieren eines Alarms
Zusätzlich zum Empfang eines Alarms kann dieser auch quittiert werden. Die Quittierung wird hierbei vom Server auch an den TwinCAT Eventlogger zurückgemeldet. Im UA Expert lässt sich ein Alarm über das Kontextmenü im Event View quittieren.

![]() | Acknowledge und Confirm Bitte beachten Sie, dass nur ein Confirm zurück an den TwinCAT Eventlogger gemeldet wird. Die Information zu einem Acknowledge bleibt hierbei im Server, da der TwinCAT Eventlogger aktuell nur das Konzept eines Confirms vorsieht. |
Nach einem Confirm wird die entsprechende Variable eConfirmationState in der TwinCAT-Eventlogger-Instanz vom Typ FB_TcAlarm gesetzt.
