Die Methode ConnectToServer initialisiert eine TCP-Verbindung zum Server.
Diese Methode löst den Aufbau einer TCP-Verbindung zum Server aus, die über die zugehörige IPv4-Adresse und den entsprechenden Port vorgegeben wird. Die Standardports für HTTP sind 80 und 443 (gesichert, HTTPS). Stellen Sie den Parameter i_xUseTls auf TRUE ein, um anzugeben, dass eine gesicherte Verbindung hergestellt wurde.
Der Rückgabewert der Methode gibt nur an, ob die Verbindung erfolgreich initialisiert werden konnte. Der Status der Verbindung muss über die Eigenschaft State geprüft werden. Werten Sie die Diagnoseausgänge der Methode aus, wenn der Rückgabewert FALSE sein sollte. Ein von diesen Ausgängen signalisierter Fehler braucht nicht zurückgesetzt zu werden.
Hinweise zur Verwendung mit einem HTTP-Proxy
Wenn zwischen Ihrer Steuerung und dem dezentralen HTTP-Server ein HTTP-Proxy zwischengeschaltet ist, müssen Sie die Verbindungsparameter des Proxys in der Methode ConnectToServer angeben. Wenn der Client mit einem Proxy verbunden ist, wird der HTTP-Datenverkehr zwischen dem Client und dem dezentralen Server über den Proxy-Server weitergeleitet. Die Adresse und der Port werden vom Proxy-Server aus dem Header der gesendeten HTTP-Anfrage abgerufen. Sie entsprechen dem Parameter i_sHost der zugeordneten Methode zum Senden einer HTTP-Anfrage.
Hinweise zu gesicherten Verbindungen mit TLS
TLS dient der Verschlüsselung der Kommunikation zwischen Client und Server. Zusätzlich zur Verschlüsselung bietet TLS die Möglichkeit, die Identität des Kommunikationspartners anhand von Zertifikaten zu prüfen.
Zertifikate werden beim Aufbau einer Verbindung ausgetauscht, beim TLS-Handshake. Das Senden von Zertifikaten während des TLS-Handshakes ist optional, wenn aber der Kommunikationspartner ein Zertifikat benötigt, dann muss ein Zertifikat gesendet werden. Nur bei einem positiven Ergebnis der Zertifikatprüfung kann eine Verbindung zum Kommunikationspartner hergestellt ewrden. Wenn die Ausführung der Methode ConnectToServer mit xUseTls = TRUE im Zustand Error mit ErrorResult = ConnectFailed endet, kann das darauf zurückzuführen sein, dass ein Problem mit dem Zertifikat vorliegt.
In diesem Fall müssen Sie die TLS-Konfiguration für den Server und Client überprüfen.
Wenn... |
Dann... |
---|---|
der Server zur Prüfung des Client-Zertifikats konfiguriert wurde, |
müssen Sie sicherstellen, dass der Parameter i_stTlsSettings.xSendClientCertificate auf TRUE eingestellt ist. |
der Client zur Prüfung des Server-Zertifikats konfiguriert wurde, unterscheidet sich i_stTlsSettings.etCertVerifyMode von NotVerified, |
müssen Sie sicherstellen, dass der Server sein Zertifikat sendet. |
der Client zur Annahme ausschließlich vertrauenswürdiger Zertifikate konfiguriert wurde, i_stTlsSettings.etCertVerifyMode = TrustedOnly, |
müssen Sie sicherstellen, dass das Server-Zertifikat als vertrauenswürdig eingestuft wird. Dazu müssen die Zertifikate auf Ihrer Steuerung manuell verwaltet werden. Das kann mithilfe des Editors Security-Screen in Machine Expert Logic Builder erfolgen. |
Weitere Informationen zur Zertifikatverwaltung auf der Steuerung finden Sie im Kapitel zur Zertifikatverwaltung auf der Steuerung im EcoStruxure Machine Expert - Benutzerhandbuch.
Schritt |
Beschreibung |
---|---|
1 |
Ausgangszustand: Idle |
2 |
Funktionsaufruf |
3 |
Zustand: Connecting, andernfalls wird ein Fehler erkannt. |
4 |
Endzustand: Connected, andernfalls wird ein Fehler erkannt. |
Eingabe |
Datentyp |
Beschreibung |
---|---|---|
i_sServerIP |
STRING[15] |
Gibt die IP-Adresse des Servers an, zu dem eine Verbindung hergestellt werden soll. |
i_uiServerPort |
UINT |
Gibt die Portadresse des Servers an. |
i_xUseTls |
BOOL |
Auf TRUE gesetzt, um auf die Verwendung einer gesicherten Verbindung mit TLS zu verweisen. |
i_stTlsSettings |
TlsSettings |
Gibt die TLS-Eisntellungen für die gesicherte Verbindung an. |
Ausgang |
Datentyp |
Beschreibung |
---|---|---|
q_xError |
BOOL |
Wenn dieser Ausgang auf TRUE gesetzt wird, wurde ein Fehler identifiziert. Für weitere Informationen, siehe q_etResult und q_etResultMsg, |
q_etResult |
Stellt Diagnose- und Statusinformationen in Form numerischer Werte bereit. |
|
q_sResultMsg |
STRING[80] |
Stellt zusätzliche Diagnose- und Statusinformationen in Form von Textmeldungen bereit. |