Servereinstellungen für die HTTP-Verbindung
Dieser FP-Befehl definiert die Servereinstellungen für die Verbindung zu dem in der CPU angegebenen HTTP-Client gemäß den angegebenen Parametern.
Eingang
Serveradresse (erforderlicher Parameter)
Schlüsselwort: SV
Werte: SV0–SV3 (Server 0–Server 3)
IP-Adresse oder Host-Name (erforderlicher Parameter).
IP-Adresse
Für eine IP-Adresse geben Sie am Anfang das Schlüsselwort IPv4
oder IPv6
an.
Syntax für IPv4: z.B. 'IPv4=111.122.133.144'
Syntax für IPv6: z.B. 'IPv6=1111:122:2:1555:0:0:1888'
Bitte beachten Sie, dass es für IPv4-Adressen Bereichseinschränkungen gibt. Wenn ein Befehl eine ungültige IP-Adresse enthält, tritt kein Operationsfehler auf, aber der Ausgang bError wird auf TRUE gesetzt.
Host-Name
Schlüsselwort: HOST
Syntax: z.B. 'HOST=HTTP.pidsx.com'
Portnummer (optionaler Parameter)
Schlüsselwort: 'PORT'
Syntax: 'PORT=xxxxx'
Werte: 1–65535 (Standardeinstellung: 80)
SSL3/TSL1-Authentifizierung (optionaler Parameter)
Geben Sie an, ob die SSL3/TSL1-Authentifizierung verwendet werden soll oder nicht.
Schlüsselwörter:
SSL
: SSL3/TLS1 verwenden
NON
: SSL3/TLS1 wird nicht verwendet (Standardeinstellung)
Verbindung zum HTTP-Server Nummer 0 mit der IP-Adresse 192.255.2.10, Schnittstellennummer 80, unter Verwendung von SSL3/TLS1-Authentifizierung: 'SV0,IPv4=192.255.2.10,PORT=80,SSL'
Verbindung zum HTTP-Server Nummer 1 mit der IP-Adresse 1111:1222::1555:0:0:1888, Schnittstellennummer 8080, unter Verwendung von SSL3/TLS1-Authentifizierung: 'SV1,IPv6=1111:1222::1555:0:0:1888,PORT=8080,SSL'
Verbindung zum HTTP-Server Nummer 2 mit dem Host-Namen HTTP.pidsx.com, Schnittstellennummer 80, keine Authentifizierung verwenden: 'SV2,HOST=HTTP.pidsx.com,PORT=80,NON'
Login-Daten einstellen
Benutzername (max. 32 Zeichen)
Schlüsselwort: USER
'USER=xxx'
(Standardeinstellung: root). Verwenden Sie 'USER='
, um den Benutzernamen zu löschen.Passwort (max. 32 Zeichen, Groß- und Kleinbuchstaben sind erlaubt)
Schlüsselwort: PASS
Syntax: 'PASS=passwd'
(Standardeinstellung: root). Verwenden Sie 'PASS='
, um den Benutzernamen zu löschen.
INITIAL
: Setzt den Benutzernamen und das Passwort auf die Standardeinstellungen "root" und "root" zurück.
KEEP
: Behält die aktuellen Login-Einstellungen bei.Beispiele:
Benutzernamen auf "Admin" und Passwort auf "Panasonic" einstellen: 'USER=Admin,PASS=Panasonic'
Benutzernamen auf "Supervisor“ einstellen und Passwort löschen: 'USER=Supervisor,PASS='
Setzen Sie den Benutzernamen auf "Support“, Passwort nicht verändern: 'USER=Support'
'USER=,PASS='
Benutzernamen und Passwort auf die Standardwerte zurücksetzen: 'INITIAL'
'KEEP'
Optionale Kommunikationseinstellungen nach Bedarf einstellen.
Verbindungs-Zeitüberschreitung
Schlüsselwort: TOUT
Syntax:'TOUT=xxx'
(Standardeinstellung: 60 Sekunden)
Werte: 30–300 Sekunden
Anzahl der Wiederholungen
Schlüsselwort: RTRY
Syntax: 'RTRY=x'
(Standardeinstellung: 3 Mal)
Werte: 0–3
Wiederholungsintervall
Schlüsselwort: RTTM
Syntax: 'RTTM=xxxxx'
(Standardeinstellung: 600 Sekunden)
Werte: 10–86400 Sekunden
Der Wert kann in 10 Sekunden angegeben werden. Er wird auf 10 abgerundet. Beispiel: Wenn Sie 38 Sekunden angeben, werden 30 Sekunden eingestellt.
Für diesen Parameter sind zwei zusätzliche Schlüsselwörter verfügbar:
INITIAL
: Setzt die Verbindungs-Zeitüberschreitung, die Anzahl der Wiederholungen und das Wiederholungsintervall auf die Standardeinstellungen zurück.
KEEP
: Behält die aktuellen Kommunikationseinstellungen bei.
Beispiele:
Verbindungs-Zeitüberschreitung einstellen: 30 Sekunden, Anzahl der Wiederholungen: 2, Wiederholungsintervall 500 Sekunden: 'TOUT=30,RTRY=2,RTTM=500'
Verbindungs-Zeitüberschreitung einstellen: 270 Sekunden, keine Wiederholungen, Wiederholungsintervall: 4900 Sekunden: 'TOUT=270,RTRY=0,RTTM=4900'
Verbindungs-Zeitüberschreitung einstellen: 30 Sekunden, Anzahl der Wiederholungen: 25, Wiederholungsintervall: nicht verändern: 'TOUT=30,RTRY=25'
Verbindungs-Zeitüberschreitung einstellen: nicht verändern, Anzahl der Wiederholungen: 25, Wiederholungsintervall 3000 Sekunden: ',RTRY=25,RTTM=3000'
Zurücksetzen auf Standardeinstellungen (Verbindungs-Zeitüberschreitung: 60 Sekunden, Anzahl der Wiederholungen: 3, Wiederholungsintervall 600 Sekunden): 'INITIAL'
Beibehalten aller aktuellen Einstellungen: 'KEEP'
Ausgang
Wird unter den folgenden Bedingungen auf TRUE gesetzt:
wenn eine Zeitüberschreitung der Verbindung überschritten wird,
wenn eine IP-Adresse ungültig ist
Wenn ein Fehler auftritt, prüfen Sie die Systemvariable sys_iEthernetConnectionErrorCode auf die Fehlercodenummer.
Trennen Sie alle Schlüsselwörter durch Komma, z.B. 'NAME=abcd,FROM=sender@server.com'
Die Zeichenanzahl für Zeichenfolgen darf 256 nicht überschreiten.
Dieser Befehl ist in Interrupt-Programmen nicht verfügbar.
Reihenfolge der Schlüsselwörter nicht verändern. Geben Sie die Schlüsselwörter und ihre Einstellparameter in der Reihenfolge an, in der sie hier aufgeführt sind.
Ein Teil der Parametersyntax kann fehlen. Die Einstellungen werden nicht geändert, wenn Parameter teilweise fehlen.
Wenn der Teil vor einem angegebenen Schlüsselwort fehlt, darf nur das Schlüsselwort, aber nicht das Komma "," fehlen, das die Schlüsselwörter trennt: ',RTRY=25,RTTM=3000'
.
Wenn der Teil nach einem angegebenen Schlüsselwort fehlt, dürfen das Komma "," und das Schlüsselwort fehlen: 'TOUT=30,RTRY=25'
.
Geben Sie das Schlüsselwort nicht mehr als einmal an. Wenn dasselbe Schlüsselwort mehr als einmal angegeben ist, tritt ein Fehler auf.
Groß- und Kleinbuchstaben können für Operanden verwendet werden, für die eine Zeichenkonstante angegeben werden kann. "Abcd", "ABCD" und "abcd" sind gleichbedeutend, bei Dateinamen wird jedoch zwischen Groß- und Kleinschreibung unterschieden.
Bevor Sie den Befehl ausführen, stellen Sie sicher, dass sys_bIsEthernetInitializing FALSE ist. sys_bIsEthernetInitializing wird auf TRUE gesetzt, wenn der Befehl ausgeführt wird. Wenn Sie den Befehl ausführen, während sys_bIsEthernetInitializing TRUE ist, tritt ein Fehler auf.
Der Befehl kann nur ausgeführt werden, wenn der Datenübertragungsmerker für die angegebene Datenübertragungseinstellung "FALSE: Kein Datenübertragungsauftrag“ ist. Wenn der Datenübertragungsmerker "TRUE: Datenübertragung beauftragt“ ist, tritt ein Operationsfehler auf.
Wenn dieser Befehl erfolgreich ausgeführt wurde, werden die Systemvariablen sys_bIsCarry und sys_iEthernetConnectionErrorCode zurückgesetzt.
Wenn ein Fehler auftritt, prüfen Sie die Systemvariable sys_iEthernetConnectionErrorCode auf die Fehlercodenummer.
wenn ein für einen Parameter angegebener Wert außerhalb des zulässigen Bereichs liegt.
wenn dasselbe Schlüsselwort mehr als einmal angegeben ist
wenn der Merker Datenübertragungsauftrag für die angegebene Datenübertragungseinstellung "TRUE: Datenübertragung angefordert" ist, wenn der Befehl ausgeführt wird.
wenn Servernummern nicht in aufsteigender Folge angegeben werden.
wenn der Befehl in einem Interrupt-Programm ausgeführt wird
wenn die Zeichenanzahl für Zeichenfolgendaten 256 überschreitet.
wenn ein für einen Parameter angegebener Wert außerhalb des zulässigen Bereichs liegt.
wenn dasselbe Schlüsselwort mehr als einmal angegeben ist
wenn der Merker Datenübertragungsauftrag für die angegebene Datenübertragungseinstellung "TRUE: Datenübertragung angefordert" ist, wenn der Befehl ausgeführt wird.
wenn Servernummern nicht in aufsteigender Folge angegeben werden.
wenn der Befehl in einem Interrupt-Programm ausgeführt wird
wenn die Zeichenanzahl für Zeichenfolgendaten 256 überschreitet.
wenn der Befehl mit einer inkorrekten IP-Adresse ausgeführt wird, wird sys_iEthernetConnectionErrorCode eingestellt auf "1: Falsche IP-Adresse angegeben"
wenn der Befehl während der Initialisierung des Ethernets ausgeführt wird, wird sys_iEthernetConnectionErrorCode auf "11: Ethernet wird initialisiert“ gesetzt.
Im POE-Kopf werden alle Ein- und Ausgangsvariablen deklariert, die für die Programmierung dieser Funktion verwendet werden. Für alle Programmiersprachen wird der gleiche POE-Kopf verwendet.
VAR
bSetConnectionError: BOOL:=FALSE;
bSetConnection: BOOL:=FALSE;
wErrorCode: WORD:=0;
bSetConnectionOK: BOOL:=FALSE;
END_VAR
Wenn bSetConnection von FALSE auf TRUE wechselt, und sys_bIsEthernetInitializing FALSE ist, wird der Befehl ausgeführt.
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 10 ;
NETWORK_BODY
B(B_VARIN,,'SV1~IPv4=192.255.2.10~PORT=21~OPEN=act~SSL',20,6,22,8,);
B(B_VARIN,,'USER=root~PASS=passwd',20,7,22,9,);
B(B_VARIN,,'TOUT=30~RTRY=2~RTTM=500',20,8,22,10,);
B(B_CONTACT,,bSetConnection,4,1,6,3,R);
B(B_VAROUT,,bSetConnectionError,36,6,38,8,);
B(B_CONTACT,,sys_bIsEthernetInitializing,17,1,19,3,N);
B(B_F,FP_HTTP_SET_CONNECTION!,,22,4,36,10,,?DEN?DsServer?DsLogin?DsCommunication?AENO?CbError);
L(1,2,4,2);
L(6,2,17,2);
L(19,2,19,6);
L(19,6,22,6);
L(1,0,1,10);
END_NETWORK_BODY
END_NET_WORK
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 4 ;
NETWORK_BODY
B(B_CONTACT,,bSetConnectionError,4,1,6,3,);
B(B_F,E_MOVE!,,25,0,31,4,,?DEN?D?AENO?C);
B(B_VARIN,,sys_iEthernetConnectionErrorCode,23,2,25,4,);
B(B_VAROUT,,wErrorCode,31,2,33,4,);
L(6,2,25,2);
L(1,2,4,2);
L(1,0,1,4);
END_NETWORK_BODY
END_NET_WORK
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 3 ;
NETWORK_BODY
B(B_CONTACT,,bSetConnectionError,4,1,6,3,N);
B(B_COIL,,bSetConnectionOK,28,1,30,3,);
L(6,2,28,2);
L(1,2,4,2);
L(1,0,1,3);
END_NETWORK_BODY
END_NET_WORK
END_BODY
If DF(bSetConnection) AND NOT sys_bIsEthernetInitializing then
FP_HTTP_SET_CONNECTION(sServer := 'SV1,IPv4=192.255.2.10,PORT=21,OPEN=act,SSL',
sLogin := 'USER=root,PASS=passwd',
sCommunication := 'TOUT=30,RTRY=2,RTTM=500',
bError => bSetConnectionError);
End_if;
If (bSetConnectionError) then
wErrorCode := sys_iEthernetConnectionErrorCode;
Else
bSetConnectionOK := True;
End_if;