-

TLS_RECEIVE_2

Der Funktionsbaustein TLS_RECEIVE_2 ist eine neuere Implementierung des TLS_RECEIVE-FB, kombiniert mit dem FB TCP_RECEIVE (welche in diesem Hilfethema als "ältere Implementierungen" bezeichnet werden). Im Unterschied zur älteren Implementierung unterstützen die TLS_*_2-FBs die beiden Protokolle TCP und TLS und kombinieren deren Handhabung. Außerdem unterstützen sie TCP/TLS-Server, die mit mehreren TCP/TLS-Clients kommunizieren können. TLS_RECEIVE_2 kann nur mit dem FB TLS_SEND_2 verwendet werden, basierend auf einem Socket, der vom FB TLS_SOCKET_2 erzeugt wurde.

Hinweis
Dieser Funktionsbaustein erfordert die Firmware-Version 2021.3 oder neuer.

Hinweis
Um in einem bestehenden Projekt Instanzen der früheren FB-Implementierung durch neuere FBs zu aktualisieren, ersetzen Sie diese wie folgt: Editieren Sie die Deklaration der Instanzvariablen und (nur in FBD) aktualisieren Sie den Instanzaufruf im Code. Formalparameter mit gleichem Namen bleiben verbunden, neu hinzugefügte Formalparameter müssen verbunden werden (falls deren Funktion benötigt wird).

TypFunktionsbaustein
BeschreibungDer Funktionsbaustein wird zum Empfangen von Daten über TCP (Transmission Control Protocol) oder TLS (Transmission Layer Security) von einem TCP/TLS-fähigen Ethernet-Gerät verwendet. Dies erfolgt über einen TCP/TLS-Socket. Der Socket muss zuerst mit Hilfe des Funktionsbausteins TLS_SOCKET_2 geöffnet werden, bevor Daten empfangen werden können.

Nachdem der Socket erfolgreich geöffnet und eine Verbindung aufgebaut wurde, empfängt der Funktionsbaustein die Daten vom Kommunikationspartner entweder über eine reine TCP-Verbindung oder über eine TLS-gesicherte Verbindung. Welcher Verbindungstyp verwendet wird, hängt davon ab, welcher Wert am Eingang START_TLS des Funktionsbausteins TLS_SOCKET_2 anliegt:

  • Bei START_TLS = FALSE verwendet der Funktionsbaustein eine reine TCP-Verbindung, um Daten zu empfangen.
  • Bei START_TLS = TRUE empfängt der FB die Daten über eine TLS-gesicherte Verbindung.
Der Funktionsbaustein führt eine Sicherheitsprüfung durch um festzustellen, ob die IEC-Anwendung einen Datenaustausch über eine unsichere (TCP) oder über eine sichere (TLS-gesicherte) Verbindung erwartet. Für die Sicherheitsprüfung vergleicht der Baustein den Wert seines RECEIVE_SECURE-Eingangs mit dem Wert, der am Eingang START_TLS des Funktionsbausteins TLS_SOCKET_2 anliegt. Werden Inkonsistenzen zwischen den Eingangswerten festgestellt, zum Beispiel bei RECEIVE_SECURE = TRUE (IEC-Anwendung erfordert sicheren Datenempfang) und START_TLS = FALSE (TLS-Protokoll noch nicht initialisiert), wird der Ausgang ERROR auf TRUE gesetzt und am Ausgang STATUS der Fehlercode 16#C150 ausgegeben.

Der Funktionsbaustein empfängt Daten, wenn der Eingang EN_R (EN_R = ENable_Receive) TRUE ist. Wenn Daten erfolgreich empfangen wurden, wird der Ausgang NDR (NDR = NewDataReceived) in jedem Zyklus auf TRUE gesetzt, in dem die spezifizierte Datenmenge in den DATA-Buffer kopiert wurden. Falls bei gesetztem Eingang EN_R im nächsten Zyklus erneut Daten empfangen werden, bleibt NDR = TRUE und die neuen Daten werden in die an Parameter DATA angeschlossene Variable kopiert. Wenn keine neuen Daten empfangen werden, wird NDR auf FALSE gesetzt.

Die IP-Adresse und die Portnummer des Geräts (Absenders) werden an den Ausgängen SOURCE_IP (IP-Adresse des Absenders) und SOURCE_PORT (IP-Port des Absenders) angezeigt.

WARNUNG
Unbeabsichtigter Betriebszustand des Geräts
Stellen Sie sicher, dass das Ändern der Ausgangsdaten nicht zu einem ungewollten oder gefährlichen Verhalten des Gesamtsystems führen kann.

Hinweise
  • Der mit dem Funktionsbaustein TLS_SOCKET_2 geöffnete Socket kann nur für den Aufruf des Funktionsbausteins TLS_RECEIVE_2 verwendet werden, solange der Ausgang ACTIVE von TLS_SOCKET_2 = TRUE ist. Der Aufruf des Funktionsbausteins TLS_RECEIVE_2 während ACTIVE = FALSE ist, führt zu einem Fehler an TLS_RECEIVE_2 (ERROR = TRUE und STATUS-Code = 0xC210).
  • Das mit dem Funktionsbaustein TLS_SOCKET_2 erzeugte-Sockethandle ist nicht kompatibel mit dem Sockethandle, das mit TCP_SOCKET oder TLS_SOCKET erzeugt wird. Das-Sockethandle kann nur mit den FBs TLS_SEND_2/TLS_RECEIVE_2 verwendet werden.
  • Stellen Sie bei Steuerungen mit integrierter Firewall sicher, dass die Firewall nicht die für die Kommunikation benötigten Ports blockiert. Andernfalls kann keine Verbindung hergestellt werden.
  • Funktionsbausteine müssen instanziiert werden.
    Der FB-Instanzname muss in der 'Variablen'-Tabelle der POE deklariert werden, in welcher der FB verwendet werden soll. Der Instanzname muss innerhalb der POE eindeutig sein.
ParameterEingänge

Hinweis
Der für den Aufbau der TLS-Kommunikation auf Basis (d.h."on top") der TCP-Kommunikation relevante Parameter ist RECEIVE_SECURE. Die übrigen Eingänge spezifizieren TCP-Funktionalität.

EN_R

HANDLE

EXP_DATA_CNT

RECEIVE_SECURE

Ein-/Ausgang

DATA

Ausgänge

NDR

ERROR

STATUS

SOURCE_IP

SOURCE_PORT

DATA_CNT