HTTP-Datenübertragungsmodus einstellen
Dieser FP-Befehl speichert die HTTP-Client-Datenübertragungseinstellungen von sOperation, sPLCDataFormat und sHTTPServerURL in dem Datenübertragungs-Speicherbereich für Einstellungen, die angegeben sind durch nTransferID.
Eingang
Einstellen der Datenübertragungs-Einstellungs-ID.
Werte: 0–15 (Werte müssen in aufsteigender Folge angegeben werden)
Einstellen der Datenübertragungs-Verfahrensparameter.
Serveradresse
Schlüsselwort: SV
Werte: SV0–SV3 (Server 0–Server 3)
Geben Sie den Speicherbereich und die Art der Übertragung (Senden oder Abrufen von Daten) an.
Verwenden Sie das Schlüsselwort UPLOAD
zum Senden von Daten.
Verwenden Sie das Schlüsselwort DOWNLOAD
zum Abrufen von Daten.
Verwenden Sie das Schlüsselwort UPDOWN
zum Senden und Beziehen von Daten.
Geben Sie den Befehl an, der für die Datenübertragung verwendet werden soll.
Verwenden Sie das Schlüsselwort POST
zum Senden von Daten (nur verfügbar für die Übertragungstypen UPLOAD und UPDOWN).
Verwenden Sie das Schlüsselwort GET
zum Abrufen von Daten.
Beispiel: Laden von Daten vom Speicher zum HTTP-Server 3: 'SV3,UPDOWN,POST'
Geben Sie die zu übertragenden Daten an. Vewenden Sie alternativ den Befehl FP_HTTP_GET_DATA_FORMAT.
Beispiel: Speicherbereich: DT100000, Anzahl von Bytes: 250 Bytes, maximale Anzahl von Erfassungen: 250 Byte: 'DT100000,250,250'
Geben Sie die Server-URL an.
Beispiel: '\data.csv'
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.
Die Zeichenanzahl für Zeichenfolgen darf 256 nicht überschreiten.
Dieser Befehl ist in Interrupt-Programmen nicht verfügbar.
Bevor Sie den Befehl ausführen, müssen Sie den HTTP-Server unter Verwendung von FP_HTTP_SET_CONNECTION oder dem Einstellungsdialog des FTP-Clients angeben.
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.
Nachdem die Datenübertragungseinstellungen des HTTP-Clients konfiguriert sind, werden Daten erst dann gesendet oder erfasst, wenn der Befehl FP_HTTP_TRANSFER_REQUEST ausgeführt wird.
Die Anzahl der Bytes, die gleichzeitig übertragen werden können, beträgt 1 MB für alle 16 Übertragungs-IDs.
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 Datenübertragungs-IDs 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 HTTP-Server angegeben ist, der nicht mit dem Befehl FP_HTTP_SET_CONNECTION oder dem Einstellungsdialog des HTTP-Clients konfiguriert wurde.
wenn der Merker Datenübertragungsauftrag für die angegebene Datenübertragungseinstellung "TRUE: Datenübertragung angefordert" ist, wenn der Befehl ausgeführt wird.
wenn ein für einen Parameter angegebener Wert außerhalb des zulässigen Bereichs liegt.
wenn Datenübertragungs-IDs 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 HTTP-Server angegeben ist, der nicht mit dem Befehl FP_HTTP_SET_CONNECTION oder dem Einstellungsdialog des HTTP-Clients konfiguriert wurde.
wenn der Merker Datenübertragungsauftrag für die angegebene Datenübertragungseinstellung "TRUE: Datenübertragung angefordert" ist, wenn der Befehl ausgeführt wird.
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
sDestURL: STRING[32]:='\data.csv';
sStringData: STRING[32767]:='';
iID5: INT:=5;
bSetModeAsciiDataArea: BOOL:=FALSE;
bSetModeStringData: BOOL:=FALSE;
bErrorModeStringData: BOOL:=FALSE;
bErrorModeAsciiDataArea: BOOL:=FALSE;
END_VAR
In dem ersten Beispiel wird eine source Zeichenfolge verwendet, die ein Maximum von 32767 Zeichen enthält, in dem zweiten Beispiel wird eine DT-Adresse zum Speichern der source-Zeichenfolge mit mehr als 32767 Zeichen verwendet.
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 5 ;
NETWORK_BODY
B(B_COMMENT,, ^Set mode to transfer HTTP data stored in string variable (strings can only contain max. of 32767 characters),4,1,45,4,);
L(1,0,1,5);
END_NETWORK_BODY
END_NET_WORK
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 7 ;
NETWORK_BODY
B(B_VARIN,,iID5,40,2,42,4,);
B(B_VARIN,,'SV0~DOWNLOAD,GET',40,3,42,5,);
B(B_CONTACT,,bSetModeStringData,5,1,7,3,R);
B(B_VARIN,,'/data.csv',40,5,42,7,);
B(B_VAROUT,,bErrorModeStringData,53,2,55,4,);
B(B_VARIN,,sStringData,8,4,10,6,);
B(B_CONTACT,,sys_bIsEthernetInitializing,16,1,18,3,N);
B(B_F,MAX_LEN!,,10,5,16,7,,?D?C);
B(B_F,FP_HTTP_GET_DATA_FORMAT!,,16,3,31,7,,?D@'Var'?DnNumberOfCharacters?CsDataFormat);
B(B_F,FP_HTTP_SET_MODE!,,42,0,53,7,,?DEN?DnTransferID?DsOperation?DsPLCDataFormat?DsHTTPServerURL?AENO?CbError);
L(1,2,5,2);
L(7,2,16,2);
L(10,5,10,6);
L(10,5,16,5);
L(31,5,42,5);
L(18,2,42,2);
L(1,0,1,7);
END_NETWORK_BODY
END_NET_WORK
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 5 ;
NETWORK_BODY
B(B_COMMENT,, ^Set mode to transfer HTTP data stored in memory area > 32767 characters,4,1,34,4,);
L(1,0,1,5);
END_NETWORK_BODY
END_NET_WORK
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 8 ;
NETWORK_BODY
B(B_VARIN,,iID5,39,3,41,5,);
B(B_VARIN,,'SV0~UPDOWN,POST',39,4,41,6,);
B(B_VARIN,,'DT100000~102345~12345',39,5,41,7,);
B(B_CONTACT,,bSetModeAsciiDataArea,5,2,7,4,R);
B(B_VARIN,,sDestURL,39,6,41,8,);
B(B_VAROUT,,bErrorModeAsciiDataArea,52,3,54,5,);
B(B_CONTACT,,sys_bIsEthernetInitializing,16,2,18,4,N);
B(B_F,FP_HTTP_SET_MODE!,,41,1,52,8,,?DEN?DnTransferID?DsOperation?DsPLCDataFormat?DsHTTPServerURL?AENO?CbError);
L(1,3,5,3);
L(7,3,16,3);
L(18,3,41,3);
L(1,0,1,8);
END_NETWORK_BODY
END_NET_WORK
END_BODY
(* Set mode to transfer HTTP data stored in string variable (strings can only contain max. of 32767 characters) *)
If DF(bSetModeStringData) And not sys_bIsEthernetInitializing then
FP_HTTP_SET_MODE(nTransferID := iID5,
sOperation := 'SV0,DOWNLOAD,GET',
sPLCDataFormat := FP_HTTP_GET_DATA_FORMAT(sStringData, LEN(sStringData)),
sHTTPServerURL := '/data.csv',
bError => bErrorModeStringData);
End_if;
(* Set mode to transfer HTTP data stored in memory area > 32767 characters *)
If DF(bSetModeAsciiDataArea) And not sys_bIsEthernetInitializing then
FP_HTTP_SET_MODE(nTransferID := iID5,
sOperation := 'SV0,UPDOWN,POST',
sPLCDataFormat := 'DT100000,102345,12345',
sHTTPServerURL := sDestURL,
bError => bErrorModeAsciiDataArea);
End_if;