-

TLS_RECEIVE

Hinweis
Für diesen Funktionsbaustein ist eine neue Implementierung verfügbar, der die Firmware-Version 2021.3 oder neuer erfordert. Der neue FB kombiniert die Handhabung von TCP- und TLS-Kommunikation. Außerdem ermöglicht er die Kommunikation eines TCP/TLS-Servers mit mehreren Clients. Weitere Informationen finden Sie im Thema "TLS_RECEIVE_2".

TypFunktionsbaustein
BeschreibungDer Funktionsbaustein wird für den Datenempfang über TLS (Transport Layer Security) von einem TLS-fähigen Ethernet-Gerät verwendet. Dies erfolgt mit Hilfe eines TLS-Sockets. Der Socket muss zuerst mit Hilfe des Funktionsbausteins TLS_SOCKET 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 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 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 geöffnete TLS-Socket kann nur für den Aufruf des Funktionsbausteins TLS_RECEIVE verwendet werden, solange der Ausgang ACTIVE des Funktionsbausteins TLS_SOCKET gesetzt ist. Der Aufruf des Funktionsbausteins TLS_RECEIVE während ACTIVE = FALSE ist, führt zu einem Fehler am Funktionsbaustein TLS_RECEIVE (ERROR = TRUE und STATUS-Code = 0xC210 ausgegeben).
  • Das mit dem Funktionsbaustein TLS_SOCKET erzeugte TLS-Sockethandle ist nicht kompatibel mit dem TCP-Sockethandle, das mit dem Baustein TCP_SOCKET erzeugt wird. Das TLS-Sockethandle kann nur mit den Funktionsbausteinen TLS_SEND und TLS_RECEIVE verwendet werden, das TCP-Sockethandle nur mit den FBs TCP_SEND und TCP_RECEIVE.
  • 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

EN_R

HANDLE

EXP_DATA_CNT

RECEIVE_SECURE

Ein-/Ausgang

DATA

Ausgänge

NDR

ERROR

STATUS

SOURCE_IP

SOURCE_PORT

DATA_CNT