| Type Funktionsbaustein |
|
| IN_OUT URL_DATA |
URL (Daten von STRING_TO_URL) |
| IP_C |
IP_C (Parametrierungsdaten) |
| S_BUF |
NETWORK_BUFFER (Sendedaten) |
| R_BUF |
NETWORK_BUFFER (Empfangsdaten) |
| INPUT IP4 |
DWORD (IP-Adresse des HTTP-Servers) |
| GET |
BOOL (Startet die HTTP Abfrage) |
| MODE |
BYTE (Version der HTTP-GET Abfrage) |
| UNLOCK_BUF |
BOOL (Freigabe des Empfangs-Datenbuffers) |
| OUTPUT HTTP_STATUS |
STRING (ermittelter HTTP Statuscode) |
| HTTP_START |
UINT (Start-Position des Message-Headers) |
| HTTP_STOP |
UINT (Stopp-Position des Message-Headers) |
| BODY_START |
UINT (Start-Position des Message-Body) |
| BODY_STOP |
UINT (Stopp-Position des Message-Body) |
| DONE |
BOOL (Aufgabe ohne Fehler durchgeführt) |
| ERROR |
DWORD (Fehlercode) |
|
HTTP_GET führt nach positiver Flanke von GET ein GET-Kommando auf einem HTTP-Server durch. Mittels MODE kann die HTTP Protokollversion vorgegeben werden. Die gewünschte URL (Web-Link) muss vorab in der URL_DATA Struktur fertig aufbereitet vorliegen. Die vollständige URL sollte darum vor dem Bausteinaufruf mittels „STRING_TO_URL“ aufbereitet werden. Nach erfolgreicher Abfrage wird DONE = TRUE ausgegeben, und die Parameter HTTP_START und HTTP_STOP zeigen auf den Datenbereich in dem die Message-Header Daten zur weiteren Bearbeitung und Auswertung vorzufinden sind. Im Normalfall ist auch ein Message-Body vorhanden, der wiederum mittels BODY_START und BODY_STOP übermittelt wird. Weiters wird auf HTTP_STATUS der zurückgemeldete HTTP-Statuscode als String ausgegeben. Eine der Schwierigkeiten beim HTTP Empfang ist das erkennen vom Ende des Datenstream. Dabei werden vom Baustein mehrere Strategien verfolgt. Bei Anwendung von HTTP/1.0 wird das Ende des Datenempfangs über einen Verbindungsabbau seitens des Host erkannt. Weiters wird immer geprüft ob sich im Header die Info „Content-Length“ befindet, damit kann dann eindeutig erkannt werden ob alle Daten empfangen wurden. Trifft keines der vorigen Varianten zu, so wird über einen einfachen Receive-Timeout Error das Ende der Datenübertragung festgestellt und beendet. Einziger Nachteil dabei ist, das dies je nach eingestellte Timeout Zeit mitunter länger dauert als gewünscht. Darum ist es nicht schlecht wenn eine vernünftiger Timeout-Wert am IP_CONTROL gewählt wird. ERROR liefert im Fehlerfall die genaue Ursache (Siehe Baustein IP_CONTROL). |
| Das „Chunked transfer encoding“ wird vom Baustein nicht unterstützt (https |
//en.wikipedia.org/wiki/Chunked_transfer_encoding) |
| HTTP-Authentifizierung |
|
|
Der Baustein unterstützt die Authentifizierung über Basic Authentication |
| wie z.B. benutzername |
password@serveradresse/login/main.php |
|
SSL/TLS Verschlüsselung |
|
SSL steht für Secure Socket Layer |
|
TLS bedeutet Transport Layer Security |
|
SSL |
|
Die Kommunikation zwischen Client und Server beginnt sofort verschlüsselt. Der meistens benutzte Standardport ist Port 443 |
|
Hinweis ! |
|
Die SSL/TLS Verschlüsselung wird aktuell nur für Steuerungen von Fa. Phoenix Contact unterstützt. Um diese Funktionalität nutzen zu können muss die SPS eine Firmware haben die SSL/TLS unterstützt. |
|
Für die Aktivierung muss dieURL Adresse mit HTTPS beginnen |
|
z.B. |
| https |
//benutzername:password@serveradresse/login/main.php |
| Https |
//serveradresse/login/main.php |
| HTTPS |
//serveradresse.at |
| Folgende MODE können verwendet werden |
|