Die HTTP-Schnittstelle ermöglicht es, Telegramme per URL zu senden und zu empfangen.
Info: Die Schnittstelle synchronisiert automatisch mit dem langsamsten Zyklus der zugeordneten SPS. Die Telegramme werden vom System gepuffert, sodass kein Telegramm verloren geht.
Achtung: Wird ein ausgehendes Port bei einem Client gewählt, so muss gewartet werden, bis die Verbindung geschlossen wurde. Es wird daher empfohlen, den Port auf dem Standardwert 0 zu belassen.
Die URL wird dabei so aufgebaut:
http://url:port/variable?wert
Mit dem Funktionsblock HTTP_REQUEST können mehr Details und anderen Methoden gesendet werden. Wählen Sie dazu den Datentyp RAW zum Senden.
Tipp: Ein vollständiges Beispiel ist hier zu finden.
| Variable | Inhalt |
|---|---|
| method | HTTP-Methode (GET, POST, PUT, DELETE usw.) |
| query | URL-Parameter nach dem ? |
| header | Header als Array |
| content | POST/PUT-Inhalt |
| timeout | Sende-Timeout (Standard 300 Sekunden) |
| source | Quelle: SEND=Senden, RESP=Antwort, RECV=Empfangen |
Die Antwort des Requests kommt via $RESPONSE als Zeichenkette.
Hinweis: Beachten Sie die Sicherheit der Schnittstelle. Die Daten sollten nie direkt übers Internet übertragen werden. Hier fehlen die Authentifizierung und die Verschlüsselung via SSL oder TLS.
Normalerweise werde ältere Telegramme bei schnell aufeinander folgenden Anfragen verworfen. Falls dies nicht gewünscht wird, kann ein ! vor der URL hinzugefügt werden, um jede Anfrage nacheinander auszuführen.
Die HTTP-Schnittstelle unterstützt sowohl einen HTTP-Client als auch einen HTTP-Server.
| Typen | Protokolle | Version |
|---|---|---|
| Client | HTTP, HTTPS | HTTP/1.1, HTTP/2 (ab Core 2) |
| Server | HTTP, HTTPS (ab Core 2) | HTTP/1.1, HTTP/2 (ab Core 2) |
Für eingehende HTTP-Anfragen werden ausschliesslich textbasierte Inhalte unterstützt, die in UTF-8 kodiert sind. Die Übertragung von Binärdaten wird nicht unterstützt. Sollen Binärdaten übertragen werden, wird die Kodierung mit BASE64 empfohlen. Dadurch können Binärdaten zuverlässig als Text übertragen werden. Beachten Sie jedoch, dass sich die Datenmenge durch die BASE64-Kodierung um rund 33 % erhöht.
Hinweis: Der HTTPS-Server steht ab Core 2 zur Verfügung.