FB_MTP_OpcUaSessionMonitoring

Der Funktionsbaustein FB_MTP_OpcUaSessionMonitoring kann für die Überwachung der aktuellen Verbindungen (Sitzungen) zu einem OPC UA-Server verwendet werden.
Verbindungseinstellungen zum OPC UA-Server
Mit der Eingangsvariablen sOpcUaServerUrl wird die Adresse des Servers angegeben. Standardmäßig ist der lokale OPC UA-Server opc.tcp://localhost:4840 ausgewählt.
Die Variable stOpcUaSessionConnectInfo beschreibt die Sicherheitseinstellungen des Servers (siehe Infosys). Die Standardeinstellungen sind:
OpcUaSessionConnectInfo : ST_UASessionConnectInfo := (
sApplicationName := 'MTP Client',
eSecurityMode := E_UASecurityMsgMode.eUASecurityMsgMode_None,
eSecurityPolicyUri := E_UASecurityPolicy.eUASecurityPolicy_None
eTransportProfileUri := eUATransportProfileUri_UATcp,
tConnectTimeout := T#1M,
tSessionTimeout := T#1M,
stUserIdentTokenType := (
eUserIdentTokenType := E_UAUserIdentityTokenType.eUAUITT_Anonymous,
sTokenParam1 := '',
sTokenParam2 := '')
);
![]() | Für den Funktionsbaustein wird der TwinCAT OPC UA Client benötigt. Für die Verbindung muss nach dem ersten Verbindungsaufbau mit dem OPC UA-Server das Zertifikat auf Dateiebene verschoben werden: Für Client Version < 2 Von C:/ProgramData/Beckhoff/TF6100-OPC UA/TcOpcUaClient/PKI/CA/rejected/Certs Nach C:/ProgramData/Beckhoff/TF6100-OPC UA/TcOpcUaClient/PKI/CA/trusted/Certs Ab Client Version 2 Von C:\Program Files (x86)\Beckhoff\TwinCAT\3.1\Target\OpcUa\Client\PKI\CA/rejected Nach C:\Program Files (x86)\Beckhoff\TwinCAT\3.1\Target\OpcUa\Client\PKI\CA\trusted\certs |
Ab der Client Version 2 benötigt der FB_MTP_OpcUaSessionMonitoring ein OPC UA Virtual Device:
Fügen Sie dem TwinCAT-Projekt ein neues I/O‑Gerät hinzu.
Als Gerätetyp verwenden Sie OPC UA Virtual Device:

Verbindungen überwachen
Über die Variable MonEn wird die Überwachung des OPC UA-Servers gestartet. Für jede Verbindung wird ein Eintrag im Ausgabearray Sessions erstellt. Das Array besteht aus Elementen des Typs ST_MTP_OpcUaSession.
![]() | Das Ausgabearray |
Das Array Sessions hat eine Größe von 100 Einträgen. IndexMin ist mit 1 fest vorgegeben und beschreibt den Anfang des verwendeten Array Bereichs. Der Wert IndexMax entspricht der Anzahl der aktuellen Verbindungen und somit das Ende des verwendeten Bereichs.
Schließt ein OPC UA-Client seine Verbindung zum Server, wird dieser aus der Liste entfernt und IndexMax wird reduziert. Verliert der Client hingegen seine Verbindung zum Server wird dieser weiterhin in der Liste aufgeführt.
IndexCur beschreibt den aktuellen Eintrag innerhalb dieser Liste. Die Werte dieses Eintrags werden auf die Ausgangsvariablen SessionName, SessionLastContact, SessionTimeout, SesSessionMonAct und SessionMonErr zyklisch geschrieben.
Der aktuelle Eintrag IndexCur der Liste kann über die Variable IndexExt geändert werden. IndexExt muss dabei innerhalb der Arraygrenzen IndexMin und IndexMax liegen. Sollte der Wert außerhalb dieser Grenzen liegen wird IndexMin als aktueller Eintrag gewählt
Die Verbindungsüberwachung des aktuellen Verbindung kann über die Variable SessionMonOn eingeschaltet bzw. über die Variable SessionMonOff ausgeschaltet werden. Bei eingeschalteter Überwachung ist SessionMonAct = TRUE.
Bei eingeschaltet Überwachung MonEn = TRUE muss mindestens eine Verbindung überwacht werde. Ist dies nicht der Fall so wird die Variable MonErr = TRUE gesetzt. Die Anzahl der Überwachten Verbindungen wird über die Variable MonCnt dargestellt.
Ein Verbindungsfehler liegt vor, wenn die Überwachung eingeschaltet ist SessionMonAct = TRUE und Differenz zwischen der Serverzeit ServerTime und dem letzten Kontakt SessionLastContact größer ist als SessionTimeout. Wenn mindestens eine Verbindung einen Verbindungsfehler hat ist MonErr = TRUE.
Eingänge
Name | Typ | Beschreibung | OPC UA Zugriff |
|---|---|---|---|
TagName | STRING | Name der Schnittstelle | - |
TagDescription | STRING | Beschreibung der Schnittstelle | - |
ServerUrl | STRNG | Url des zu überwachenden OPC UA-Servers | - |
SessionConnectInfo | ST_UASessionConnectInfo | Verbindungseinstellungen zum Server | - |
MonEn | BOOL | Aktivieren des | Lesen/schreiben |
IndexExt | UINT | Externe Indexanfrage in der Liste der verfügbaren Verbindungen | Lesen |
SessionMonOn | BOOL | 1: Monitoring für aktuelle Verbindung einschalten. | Lesen/schreiben |
SessionMonOff | BOOL | 1: Monitoring für aktuelle Verbindung ausschalten. | Lesen/schreiben |
SessionTimeOut | LREAL | Zulässiger Timeout für aktuelle Verbindung (ms). | Lesen/schreiben |
![]() | Die Variablen |
Ausgänge
Name | Typ | Beschreibung | OPC UA Zugriff |
|---|---|---|---|
MonErr | BOOL | 1: Eine der überwachten Verbindungen hat einen Timeout. | Lesen |
IndexMin | UINT | Kleinster Eintrag in der Liste aller verfügbaren Verbindungen | Lesen |
IndeMax | UINT | Größter Eintrag in der Liste aller verfügbaren Verbindungen | Lesen |
IndexCur | UINTUINT | Aktueller Index in der Liste der verfügbaren Verbindungen | Lesen |
SessionName | STRING | Name der aktuellen Verbindung (Wird vom Server ausgelesen) | Lesen |
SessionLastContact | Date_AND_TIME | Letzter Kontakt der aktuellen Verbindung (Wird vom Server ausgelesen) | Lesen |
SessionMonAct | BOOL | 1: Aktuelle Verbindung wird überwacht 0: Aktuelle Verbindung wird nicht überwacht. | Lesen |
SessionMonErr | BOOL | Aktuelle Verbindung hat einen Timeout. | Lesen |
MonCnt | SINT | Anzahl der überwachten Verbindungen | Lesen |
Sessions | ST_OpcUa_SessionMonitoring | Liste der aktuellen Verbindungen zum OPC UA Server. | - |
ServerTime | T_FileTime64 | Aktuelle Serverzeit (UCT) | - |
![]() | Die Variablen |
Externe Variablen
Name | Typ | Beschreibung | OPC UA Zugriff |
|---|---|---|---|
fbOpenConnection | UA_Connect | Funktionsbaustein für den Verbindungsaufbau (Zur Laufzeit kann hier der Zustand des Verbindungsaufbaus zum Server gesehen werden.) |
|
