Remote Zugriff auf den Eventlogger mittels PLC

Auf den Eventlogger eines Systems kann von einem anderen, entfernten System zugegriffen werden.

Dieses bietet die unter „Usermode API“ beschriebene Schnittstelle an. Hierbei erstellen Nutzer eigene (Usermode-)Programme, die über eine ADS-Route (und damit ggf. auch über Netzwerk) mit dem Eventlogger eines anderen Systems kommunizieren.

Remote Zugriff auf den Eventlogger mittels PLC 1:

Verfügbar mit TwinCAT 3.1 4026

Die folgende Funktionalität steht ab TwinCAT 3.1 Build 4026 bereit.

Die SPS bietet zusätzlich die Möglichkeit des Zugriffs über Netzwerk mittels der Funktionsbausteine in dem Ordner „RemoteEventlogger“ der SPS-Bibliothek. Die bereitstehenden Funktionen werden hier beschrieben.

Verbindungsaufbau

Zuerst wird eine Verbindung zum entfernten System aufgebaut:

VAR
  sNetIdTarget : T_AmsNetID; //the AmsNetId of the remote system
  fbRemoteLogger : FB_TcRemoteEventLogger;
END_VAR
hr := fbRemoteLogger.Connect(sNetId:=sNetIdTarget);

Dieses kann zyklisch erfolgen, was bei einem Verbindungsabbruch den Wiederaufbau initiiert.

Die Verbindung kann wieder beendet werden:

VAR
  fbRemoteLogger : FB_TcRemoteEventLogger;
END_VAR
hr := fbRemoteLogger.Disconnect();

Der Zustand kann überwacht werden:

hr := fbRemoteLOgger.hrConnect;

Um Nachrichten von einem entfernten System zu empfangen, muss ein Funktionsbaustein implementiert werden, der FB_RemoteListenerBase erweitert:

FUNCTION_BLOCK FB_RemoteListener EXTENDS FB_RemoteListenerBase

Neben den aus dem FB_ListenerBase2 bekannten Callback-Methoden OnMessageSent usw. erhält dieser Funktionsbaustein folgende Methoden, die speziell für die Remotefunktionalität zuständig sind:

Mithilfe eines solchen Bausteins können die Nachrichten empfangen werden, indem eine Anmeldung stattfindet:

hr := fbListener.Subscribe(fbRemoteLogger, 0);

Entsprechend gibt es auch eine Möglichkeit diese Anmeldung rückgängig zu machen:

hrUnsubscribe:= fbListener.Unsubscribe();

Der Funktionsbaustein FB_TcRemoteEventLogger stellt ansonsten äquivalente Funktionen zu der lokalen Variante FB_TcEventLogger bereit. Überwachen Sie bei der Nutzung den Verbindungszustand.