-

TLS_SEND

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_SEND_2".

TypFunktionsbaustein
BeschreibungDer Funktionsbaustein wird für das Senden von Daten über TLS (Transport Layer Security) an ein TLS-fähiges Ethernet-Gerät verwendet. Dies erfolgt mit Hilfe eines TLS-Sockets. Der IP-Socket muss zuerst mit Hilfe des Funktionsbausteins TLS_SOCKET geöffnet werden, bevor Daten gesendet werden können.

Nachdem der Socket erfolgreich geöffnet und eine Verbindung aufgebaut wurde, sendet der Funktionsbaustein die Daten entweder über eine reine TCP-Verbindung oder über eine TLS-gesicherte Verbindung an den Kommunikationspartner. 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 senden.
  • Bei START_TLS = TRUE sendet 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 SEND_SECURE-Eingangs mit dem Wert, der am Eingang START_TLS des Funktionsbausteins TLS_SOCKET anliegt. Werden Inkonsistenzen zwischen den Eingangswerten festgestellt, zum Beispiel bei SEND_SECURE = TRUE (IEC-Anwendung erfordert sichere Datenübertragung) und START_TLS = FALSE (TLS-Protokoll noch nicht initialisiert), wird der Ausgang ERROR auf TRUE gesetzt und am Ausgang STATUS der Fehlercode 16#C1510 ausgegeben.

Jeder einzelne Sendevorgang wird durch eine steigende Flanke am Eingang REQ angestoßen. In diesem Zyklus kopiert der Funktionsbaustein die Werte der an DATA angeschlossenen Variable in einen internen Buffer. Der Ausgang BUSY wird auf TRUE gesetzt, solange Daten aus dem internen Buffer gesendet werden. Solange BUSY = TRUE ist, wird der Eingang REQ ignoriert. Das Übertragen von neuen Daten, die während des laufenden Übertragungszyklus an DATA verfügbar sind, kann nur mit einer steigenden Flanke am Eingang REQ angestoßen werden, nachdem der Ausgang BUSY auf FALSE gesetzt wurde.

Falls die Verbindung abgebrochen wurde und der Kommunikationspartner nicht mehr erreicht werden kann, wird der Ausgang ERROR für die Dauer eines Zyklus auf TRUE gesetzt. Der zugehörige Fehlercode wird in diesem Zyklus am Ausgang STATUS 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_SEND verwendet werden, solange der Ausgang ACTIVE des Funktionsbausteins TLS_SOCKET TRUE ist. Das Aufrufen des Bausteins TLS_SEND während ACTIVE = FALSE ist, führt zu einem Fehler am Funktionsbaustein TLS_SEND (ERROR = TRUE und STATUS-Code = 0xC210).
  • 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

REQ

HANDLE

DATA_CNT

SEND_SECURE

Ein-/Ausgang

DATA

Ausgänge

DONE

BUSY

ERROR

STATUS